You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by an...@apache.org on 2015/06/19 09:54:36 UTC

[1/2] incubator-ignite git commit: # ignite-850 Added tooltip, eviction cleanup.

Repository: incubator-ignite
Updated Branches:
  refs/heads/ignite-843 0b1d4a20a -> f0f824855


# ignite-850 Added tooltip, eviction cleanup.


Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/d9ac7884
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/d9ac7884
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/d9ac7884

Branch: refs/heads/ignite-843
Commit: d9ac788426d30b71521f2c64759c6c967fa28203
Parents: 52b4244
Author: Andrey <an...@gridgain.com>
Authored: Fri Jun 19 14:54:21 2015 +0700
Committer: Andrey <an...@gridgain.com>
Committed: Fri Jun 19 14:54:21 2015 +0700

----------------------------------------------------------------------
 .../nodejs/public/form-models/caches.json       | 18 ++++----
 .../nodejs/public/form-models/clusters.json     | 45 +++++++++++---------
 .../public/javascripts/controllers/caches.js    |  4 +-
 .../public/javascripts/controllers/clusters.js  |  5 ++-
 .../public/javascripts/controllers/common.js    | 13 ++++++
 modules/webconfig/nodejs/views/clusters.jade    |  1 +
 .../nodejs/views/includes/controls.jade         |  6 ++-
 .../nodejs/views/templates/select.jade          |  1 +
 8 files changed, 61 insertions(+), 32 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d9ac7884/modules/webconfig/nodejs/public/form-models/caches.json
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/public/form-models/caches.json b/modules/webconfig/nodejs/public/form-models/caches.json
index 5642f8c..2d47a89 100644
--- a/modules/webconfig/nodejs/public/form-models/caches.json
+++ b/modules/webconfig/nodejs/public/form-models/caches.json
@@ -71,7 +71,7 @@
           "model": "offHeapMaxMemory",
           "placeholder": "-1",
           "tip": [
-            "Sets maximum amount of memory available to off-heap storage.<br/>",
+            "Sets maximum amount of memory available to off-heap storage.",
             "Possible values are:",
             "<ul>",
             "  <li>-1 - means that off-heap storage is disabled.</li>",
@@ -189,7 +189,7 @@
           "type": "check",
           "model": "sqlEscapeAll",
           "tip": [
-            "If set then all the SQL table and field names will be escaped with double quotes.<br/>",
+            "If set then all the SQL table and field names will be escaped with double quotes.",
             "This enforces case sensitivity for field names and also allows having special characters in table and field names."
           ]
         },
@@ -265,7 +265,7 @@
           "model": "rebalanceBatchSize",
           "placeholder": "512 * 1024",
           "tip": [
-            "Size (in bytes) to be loaded within a single rebalance message.<br/>",
+            "Size (in bytes) to be loaded within a single rebalance message.",
             "Rebalancing algorithm will split total data set on every node into multiple batches prior to sending data."
           ]
         },
@@ -337,7 +337,7 @@
           "type": "check",
           "model": "invalidate",
           "tip": [
-            "Invalidation flag for near cache entries in transaction.<br/>",
+            "Invalidation flag for near cache entries in transaction.",
             "If set then values will be invalidated (nullified) upon commit in near cache."
           ]
         },
@@ -347,7 +347,7 @@
           "model": "defaultLockTimeout",
           "placeholder": "1",
           "tip": [
-            "Default lock acquisition timeout.<br/>",
+            "Default lock acquisition timeout.",
             "If 0 then lock acquisition will never timeout."
           ]
         },
@@ -378,7 +378,7 @@
           "model": "writeBehindBatchSize",
           "placeholder": "512",
           "tip": [
-            "Maximum batch size for write-behind cache store operations.<br/>",
+            "Maximum batch size for write-behind cache store operations.",
             "Store operations (get or remove) are combined in a batch of this size to be passed to cache store."
           ]
         },
@@ -436,7 +436,7 @@
           "type": "check",
           "model": "readFromBackup",
           "tip": [
-            "Flag indicating whether data can be read from backup.<br/>",
+            "Flag indicating whether data can be read from backup.",
             "If not set then always get data from primary node (never from backup)."
           ]
         },
@@ -445,7 +445,7 @@
           "type": "check",
           "model": "copyOnRead",
           "tip": [
-            "Flag indicating whether copy of of the value stored in cache should be created for cache operation implying return value.<br/>",
+            "Flag indicating whether copy of of the value stored in cache should be created for cache operation implying return value.",
             "Also if this flag is set copies are created for values passed to CacheInterceptor and to CacheEntryProcessor."
           ]
         },
@@ -455,7 +455,7 @@
           "model": "maxConcurrentAsyncOperations",
           "placeholder": "500",
           "tip": [
-            "Maximum number of allowed concurrent asynchronous operations.<br/>",
+            "Maximum number of allowed concurrent asynchronous operations.",
             "If 0 returned then number of concurrent asynchronous operations is unlimited."
           ]
         }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d9ac7884/modules/webconfig/nodejs/public/form-models/clusters.json
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/public/form-models/clusters.json b/modules/webconfig/nodejs/public/form-models/clusters.json
index 2299215..3dfc446 100644
--- a/modules/webconfig/nodejs/public/form-models/clusters.json
+++ b/modules/webconfig/nodejs/public/form-models/clusters.json
@@ -1,4 +1,12 @@
 {
+  "templateTip" : [
+    "Use following template for add cluster:",
+    "<ul>",
+    "  <li>blank - Empty configuration.</li>",
+    "  <li>local - Configuration with static ips discovery and pre-configured list of IP addresses.</li>",
+    "  <li>multicast - Configuration with multicast discovery.</li>",
+    "</ul>"
+  ],
   "general": [
     {
       "label": "Name",
@@ -51,7 +59,6 @@
                 "  <li>Hostname and port range (e.g. host1.com:47500..47510, host2:47502..47508, etc).</li>",
                 "</ul>",
                 "If port is 0 or not provided then default port will be used (depends on discovery SPI configuration).",
-                "<p>",
                 "If port range is provided (e.g. host:port1..port2) the following should be considered:",
                 "<ul>",
                 "  <li>port1 < port2 should be true;</li>",
@@ -97,7 +104,7 @@
               "model": "addressRequestAttempts",
               "placeholder": "2",
               "tip": [
-                "Number of attempts to send multicast address request.<br/>",
+                "Number of attempts to send multicast address request.",
                 "IP finder re-sends request only in case if no reply for previous request is received."
               ]
             },
@@ -106,8 +113,8 @@
               "type": "text",
               "model": "localAddress",
               "tip": [
-                "Local host address used by this IP finder.<br/>",
-                "If provided address is non-loopback then multicast socket is bound to this interface.<br/>",
+                "Local host address used by this IP finder.",
+                "If provided address is non-loopback then multicast socket is bound to this interface.",
                 "If local address is not set or is any local address then IP finder creates multicast sockets for all found non-loopback addresses."
               ]
             }
@@ -133,7 +140,7 @@
               "model": "credential",
               "placeholder": "",
               "tip": [
-                "Credential that is used during authentication on the cloud.<br/>",
+                "Credential that is used during authentication on the cloud.",
                 "Depending on a cloud platform it can be a password or access key."
               ]
             },
@@ -143,7 +150,7 @@
               "model": "credentialPath",
               "placeholder": "",
               "tip": [
-                "Path to a credential that is used during authentication on the cloud.<br/>",
+                "Path to a credential that is used during authentication on the cloud.",
                 "Access key or private key should be stored in a plain or PEM file without a passphrase."
               ]
             },
@@ -153,7 +160,7 @@
               "model": "identity",
               "placeholder": "",
               "tip": [
-                "Identity that is used as a user name during a connection to the cloud.<br/>",
+                "Identity that is used as a user name during a connection to the cloud.",
                 "Depending on a cloud platform it can be an email address, user name, etc."
               ]
             },
@@ -177,7 +184,7 @@
               "model": "projectName",
               "placeholder": "",
               "tip": [
-                "Google Cloud Platforms project name.<br/>",
+                "Google Cloud Platforms project name.",
                 "Usually this is an auto generated project number (ex. 208709979073) that can be found in 'Overview' section of Google Developer Console."
               ]
             },
@@ -187,8 +194,8 @@
               "model": "bucketName",
               "placeholder": "",
               "tip": [
-                "Google Cloud Storage bucket name.<br/>",
-                "If the bucket doesn't exist Ignite will automatically create it.<br/>",
+                "Google Cloud Storage bucket name.",
+                "If the bucket doesn't exist Ignite will automatically create it.",
                 "However the name must be unique across whole Google Cloud Storage and Service Account Id must be authorized to perform this operation."
               ]
             },
@@ -274,7 +281,7 @@
           "model": "atomicSequenceReserveSize",
           "placeholder": "1,000",
           "tip": [
-            "Default number of sequence values reserved for IgniteAtomicSequence instances.<br/>",
+            "Default number of sequence values reserved for IgniteAtomicSequence instances.",
             "After a certain number has been reserved, consequent increments of sequence will happen locally, without communication with other nodes, until the next reservation has to be made."
           ]
         }
@@ -316,7 +323,7 @@
           "model": "segmentCheckFrequency",
           "placeholder": "10,000",
           "tip": [
-            "Network segment check frequency in milliseconds.<br/>",
+            "Network segment check frequency in milliseconds.",
             "If 0, periodic segment check is disabled and segment is checked only on topology changes (if segmentation resolvers are configured)."
           ]
         },
@@ -369,7 +376,7 @@
           "placeholder": "Choose recorded event types",
           "items": "events",
           "tip": [
-            "Array of event types, which will be recorded by GridEventStorageManager#record(Event).<br/>",
+            "Array of event types, which will be recorded by GridEventStorageManager#record(Event).",
             "Note, that either the include event types or the exclude event types can be established."
           ]
         }
@@ -464,7 +471,7 @@
           "model": "peerClassLoadingLocalClassPathExclude",
           "placeholder": "[]",
           "tip": [
-            "List of packages separated by comma from the system classpath that need to be peer-to-peer loaded from task originating node.<br/>",
+            "List of packages separated by comma from the system classpath that need to be peer-to-peer loaded from task originating node.",
             "'*' is supported at the end of the package name which means that all sub-packages and their classes are included like in Java package import clause."
           ]
         },
@@ -474,7 +481,7 @@
           "model": "peerClassLoadingMissedResourcesCacheSize",
           "placeholder": "100",
           "tip": [
-            "If size greater than 0, missed resources will be cached and next resource request ignored.<br/>",
+            "If size greater than 0, missed resources will be cached and next resource request ignored.",
             "If size is 0, then request for the resource will be sent to the remote node every time this resource is requested."
           ]
         },
@@ -498,7 +505,7 @@
           "model": "clockSyncSamples",
           "placeholder": "8",
           "tip": [
-            "Number of samples used to synchronize clocks between different nodes.<br/>",
+            "Number of samples used to synchronize clocks between different nodes.",
             "Clock synchronization is used for cache version assignment in CLOCK order mode."
           ]
         },
@@ -508,7 +515,7 @@
           "model": "clockSyncFrequency",
           "placeholder": "120,000",
           "tip": [
-            "Frequency at which clock is synchronized between nodes, in milliseconds.<br/>",
+            "Frequency at which clock is synchronized between nodes, in milliseconds.",
             "Clock synchronization is used for cache version assignment in CLOCK order mode."
           ]
         },
@@ -518,7 +525,7 @@
           "model": "timeServerPortBase",
           "placeholder": "31100",
           "tip": [
-            "Time server provides clock synchronization between nodes.<br/>",
+            "Time server provides clock synchronization between nodes.",
             "Base UPD port number for grid time server. Time server will be started on one of free ports in range."
           ]
         },
@@ -630,7 +637,7 @@
           "type": "check",
           "model": "txSerializableEnabled",
           "tip": [
-            "Flag to enable/disable isolation level for cache transactions.<br/>",
+            "Flag to enable/disable isolation level for cache transactions.",
             "Serializable level does carry certain overhead and if not used, should be disabled."
           ]
         }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d9ac7884/modules/webconfig/nodejs/public/javascripts/controllers/caches.js
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/public/javascripts/controllers/caches.js b/modules/webconfig/nodejs/public/javascripts/controllers/caches.js
index 83dd8b4..becffdc 100644
--- a/modules/webconfig/nodejs/public/javascripts/controllers/caches.js
+++ b/modules/webconfig/nodejs/public/javascripts/controllers/caches.js
@@ -19,6 +19,7 @@ configuratorModule.controller('cachesController', ['$scope', '$alert', '$http',
         $scope.addSimpleItem = commonFunctions.addSimpleItem;
         $scope.addDetailSimpleItem = commonFunctions.addDetailSimpleItem;
         $scope.swapSimpleItems = commonFunctions.swapSimpleItems;
+        $scope.joinTip = commonFunctions.joinTip;
 
         $scope.templates = [
             {value: {mode: 'PARTITIONED', atomicityMode: 'ATOMIC'}, label: 'partitioned'},
@@ -52,7 +53,8 @@ configuratorModule.controller('cachesController', ['$scope', '$alert', '$http',
             {value: 'LRU', label: 'Least Recently Used'},
             {value: 'RND', label: 'Random'},
             {value: 'FIFO', label: 'FIFO'},
-            {value: 'SORTED', label: 'Sorted'}
+            {value: 'SORTED', label: 'Sorted'},
+            {value: undefined, label: 'Not set'}
         ];
 
         $scope.rebalanceModes = [

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d9ac7884/modules/webconfig/nodejs/public/javascripts/controllers/clusters.js
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/public/javascripts/controllers/clusters.js b/modules/webconfig/nodejs/public/javascripts/controllers/clusters.js
index 27d710c..efee277 100644
--- a/modules/webconfig/nodejs/public/javascripts/controllers/clusters.js
+++ b/modules/webconfig/nodejs/public/javascripts/controllers/clusters.js
@@ -19,9 +19,10 @@ configuratorModule.controller('clustersController', ['$scope', '$alert', '$http'
         $scope.addSimpleItem = commonFunctions.addSimpleItem;
         $scope.addDetailSimpleItem = commonFunctions.addDetailSimpleItem;
         $scope.swapSimpleItems = commonFunctions.swapSimpleItems;
+        $scope.joinTip = commonFunctions.joinTip;
 
         $scope.templates = [
-            {value: {}, label: 'none'},
+            {value: {}, label: 'blank'},
             {value: {discovery: {kind: 'Vm', Vm: {addresses: ['127.0.0.1:47500..47510']}}}, label: 'local'},
             {value: {discovery: {kind: 'Multicast', Multicast: {}}}, label: 'multicast'}
         ];
@@ -85,6 +86,8 @@ configuratorModule.controller('clustersController', ['$scope', '$alert', '$http'
 
         $http.get('/form-models/clusters.json')
             .success(function(data) {
+                $scope.templateTip = data.templateTip;
+
                 $scope.general = data.general;
                 $scope.advanced = data.advanced;
             });

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d9ac7884/modules/webconfig/nodejs/public/javascripts/controllers/common.js
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/public/javascripts/controllers/common.js b/modules/webconfig/nodejs/public/javascripts/controllers/common.js
index b98e654..2d39a57 100644
--- a/modules/webconfig/nodejs/public/javascripts/controllers/common.js
+++ b/modules/webconfig/nodejs/public/javascripts/controllers/common.js
@@ -40,12 +40,25 @@ configuratorModule.service('commonFunctions', function() {
 
            a[ix1] = a[ix2];
            a[ix2] = tmp;
+       },
+       joinTip: function(arr) {
+           var lines = arr.map(function(line) {
+               var rtrimmed = line.replace(/\s+$/g, '');
+
+               if(rtrimmed.indexOf('>', this.length - 1) == -1)
+                   rtrimmed = rtrimmed + '<br/>';
+
+               return rtrimmed;
+           });
+
+           return lines.join("");
        }
    }
 });
 
 configuratorModule.config(function($tooltipProvider) {
     angular.extend($tooltipProvider.defaults, {
+        container: 'body',
         placement: 'right',
         html: 'true',
         trigger: 'click hover',

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d9ac7884/modules/webconfig/nodejs/views/clusters.jade
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/views/clusters.jade b/modules/webconfig/nodejs/views/clusters.jade
index f29ba10..c0a5cea 100644
--- a/modules/webconfig/nodejs/views/clusters.jade
+++ b/modules/webconfig/nodejs/views/clusters.jade
@@ -36,6 +36,7 @@ block content
         button.btn.btn-primary(ng-click='createItem()' ng-disabled='!create.template') &nbspAdd cluster
         span(style='margin-left: 15px; margin-right: 5px') Use template:&nbsp
         button.btn.btn-default(ng-init='create.template = templates[0].value' ng-model='create.template' data-template='/select' data-placeholder='Choose cluster template' bs-options='item.value as item.label for item in templates' bs-select)
+        i.tiplabel.fa.fa-question-circle(bs-tooltip data-title='{{joinTip(templateTip)}}' type='button')
         hr
         form.form-horizontal(name='clustersForm' ng-if='backupItem')
             div(bs-collapse data-start-collapsed='false')

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d9ac7884/modules/webconfig/nodejs/views/includes/controls.jade
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/views/includes/controls.jade b/modules/webconfig/nodejs/views/includes/controls.jade
index 9b4748e..c1a60be 100644
--- a/modules/webconfig/nodejs/views/includes/controls.jade
+++ b/modules/webconfig/nodejs/views/includes/controls.jade
@@ -15,11 +15,11 @@
     limitations under the License.
 
 mixin tipField(lines)
-    i.tipField.fa.fa-question-circle(ng-if=lines data-container='body' bs-tooltip='#{lines}.join("")' type='button')
+    i.tipField.fa.fa-question-circle(ng-if=lines bs-tooltip='joinTip(#{lines})' type='button')
     i.tipField.fa.fa-question-circle.blank(ng-if='!#{lines}')
 
 mixin tipLabel(lines)
-    i.tipLabel.fa.fa-question-circle(ng-if=lines data-container='body' bs-tooltip='#{lines}.join("")' type='button')
+    i.tipLabel.fa.fa-question-circle(ng-if=lines bs-tooltip='joinTip(#{lines})' type='button')
     i.tipLabel.fa.fa-question-circle.blank(ng-if='!#{lines}')
 
 mixin details-row
@@ -67,6 +67,7 @@ mixin details-row
                             i.fa.fa-arrow-up(ng-show='$index > 0' ng-click='swapSimpleItems(#{detailMdl}, $index, $index - 1); detail.editIdx = -1;')
                             i.fa.fa-arrow-down(ng-show='$index < #{detailMdl}.length - 1' ng-click='swapSimpleItems(#{detailMdl}, $index, $index + 1); detail.editIdx = -1;')
             button.btn.btn-primary.fieldButton(ng-disabled='!newValue || #{detailMdl}.indexOf(newValue) >= 0' ng-click='detail.editIdx = -1; addDetailSimpleItem(backupItem, field, detail.model, newValue)') Add
+            +tipField('detail.tip')
             .input-tip
                 input.form-control(type='text' ng-model='newValue' ng-focus='detail.editIdx = -1' placeholder='{{detail.placeholder}}')
 
@@ -136,6 +137,7 @@ mixin form-row
                             i.fa.fa-arrow-down(ng-show='$index < #{tblMdl}.length - 1' ng-click='swapSimpleItems(#{tblMdl}, $index, $index + 1); field.editIdx = -1;')
             .col-sm-6
                 button.btn.btn-primary.fieldButton(ng-disabled='!newValue || #{tblMdl}.indexOf(newValue) >= 0' ng-click='field.editIdx = -1; addSimpleItem(backupItem, field.model, newValue)') Add
+                +tipField('field.tip')
                 .input-tip
                     input.form-control(type='text' ng-model='newValue' ng-focus='field.editIdx = -1'  placeholder='{{field.placeholder}}')
         div(ng-switch-when='indexedTypes')

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d9ac7884/modules/webconfig/nodejs/views/templates/select.jade
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/views/templates/select.jade b/modules/webconfig/nodejs/views/templates/select.jade
index 1a7a70c..4a39795 100644
--- a/modules/webconfig/nodejs/views/templates/select.jade
+++ b/modules/webconfig/nodejs/views/templates/select.jade
@@ -16,6 +16,7 @@
 
 ul.select.dropdown-menu(tabindex='-1', ng-show='$isVisible()', role='select')
     li(role='presentation', ng-repeat='match in $matches')
+        hr(ng-if='!match.value' style='margin: 5px 0')
         a(style='cursor: default;', role='menuitem', tabindex='-1', ng-class='{active: $isActive($index)}' ng-click='$select($index, $event)')
             i.pull-right(class='{{$iconCheckmark}}', ng-if='$isMultiple && $isActive($index)' ng-class='{active: $isActive($index)}' style='margin-left: 15px')
             span(ng-bind='match.label')


[2/2] incubator-ignite git commit: Merge remote-tracking branch 'origin/ignite-843' into ignite-843

Posted by an...@apache.org.
Merge remote-tracking branch 'origin/ignite-843' into ignite-843


Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/f0f82485
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/f0f82485
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/f0f82485

Branch: refs/heads/ignite-843
Commit: f0f824855a8ec022ec089e38086beba358d34d04
Parents: d9ac788 0b1d4a2
Author: Andrey <an...@gridgain.com>
Authored: Fri Jun 19 14:54:39 2015 +0700
Committer: Andrey <an...@gridgain.com>
Committed: Fri Jun 19 14:54:39 2015 +0700

----------------------------------------------------------------------
 .../nodejs/public/form-models/caches.json       | 11 +++++--
 .../public/javascripts/controllers/caches.js    |  9 +-----
 modules/webconfig/nodejs/routes/auth.js         |  2 +-
 modules/webconfig/nodejs/views/caches.jade      |  4 +--
 .../nodejs/views/includes/controls.jade         |  2 +-
 .../webconfig/nodejs/views/includes/header.jade |  6 ++--
 modules/webconfig/nodejs/views/index.jade       | 34 ++++++--------------
 .../webconfig/nodejs/views/layout-sidebar.jade  |  2 --
 modules/webconfig/nodejs/views/sql.jade         | 11 +++----
 9 files changed, 30 insertions(+), 51 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f0f82485/modules/webconfig/nodejs/public/form-models/caches.json
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f0f82485/modules/webconfig/nodejs/public/javascripts/controllers/caches.js
----------------------------------------------------------------------
diff --cc modules/webconfig/nodejs/public/javascripts/controllers/caches.js
index becffdc,b5a048b..9384d18
--- a/modules/webconfig/nodejs/public/javascripts/controllers/caches.js
+++ b/modules/webconfig/nodejs/public/javascripts/controllers/caches.js
@@@ -19,14 -19,7 +19,8 @@@ configuratorModule.controller('cachesCo
          $scope.addSimpleItem = commonFunctions.addSimpleItem;
          $scope.addDetailSimpleItem = commonFunctions.addDetailSimpleItem;
          $scope.swapSimpleItems = commonFunctions.swapSimpleItems;
 +        $scope.joinTip = commonFunctions.joinTip;
  
-         $scope.templates = [
-             {value: {mode: 'PARTITIONED', atomicityMode: 'ATOMIC'}, label: 'partitioned'},
-             {value: {mode: 'REPLICATED', atomicityMode: 'ATOMIC'}, label: 'replicated'},
-             {value: {mode: 'LOCAL', atomicityMode: 'ATOMIC'}, label: 'local'}
-         ];
- 
          $scope.atomicities = [
              {value: 'ATOMIC', label: 'ATOMIC'},
              {value: 'TRANSACTIONAL', label: 'TRANSACTIONAL'}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f0f82485/modules/webconfig/nodejs/views/includes/controls.jade
----------------------------------------------------------------------