Repository: ignite Updated Branches: refs/heads/ignite-843 bd46179d9 -> cc0dbfe0a
IGNITE-843: WIP preview. Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/cc0dbfe0 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/cc0dbfe0 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/cc0dbfe0 Branch: refs/heads/ignite-843 Commit: cc0dbfe0aa1cdd578b6f6ec396b88e3274d5f6db Parents: bd46179 Author: Alexey Kuznetsov <[email protected]> Authored: Thu Sep 3 11:33:39 2015 +0700 Committer: Alexey Kuznetsov <[email protected]> Committed: Thu Sep 3 11:33:39 2015 +0700 ---------------------------------------------------------------------- .../main/js/controllers/caches-controller.js | 156 +++++++++------- .../main/js/controllers/clusters-controller.js | 180 +++++++++++-------- .../src/main/js/controllers/common-module.js | 84 +++------ .../main/js/controllers/metadata-controller.js | 55 +++--- .../src/main/js/public/stylesheets/style.scss | 1 + .../js/routes/generator/generator-common.js | 11 +- .../src/main/js/views/includes/controls.jade | 4 +- 7 files changed, 258 insertions(+), 233 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/cc0dbfe0/modules/control-center-web/src/main/js/controllers/caches-controller.js ---------------------------------------------------------------------- diff --git a/modules/control-center-web/src/main/js/controllers/caches-controller.js b/modules/control-center-web/src/main/js/controllers/caches-controller.js index 65e6a33..b6b6e31 100644 --- a/modules/control-center-web/src/main/js/controllers/caches-controller.js +++ b/modules/control-center-web/src/main/js/controllers/caches-controller.js @@ -101,12 +101,6 @@ controlCenterModule.controller('cachesController', [ $scope.panels = {activePanels: [0]}; - $scope.$watchCollection('panels.activePanels', function () { - $timeout(function() { - $common.previewHeightUpdate(); - }) - }); - $scope.general = []; $scope.advanced = []; @@ -224,6 +218,86 @@ controlCenterModule.controller('cachesController', [ return true; }; + // Fill cache previews. + function generatePreview(val) { + if ($common.isDefined(val)) { + var qryMeta = _.reduce($scope.queryMetadata, function(memo, meta){ + if (_.contains(val.queryMetadata, meta.value)) { + memo.push(meta.meta); + } + + return memo; + }, []); + + var storeMeta = _.reduce($scope.storeMetadata, function(memo, meta){ + if (_.contains(val.storeMetadata, meta.value)) { + memo.push(meta.meta); + } + + return memo; + }, []); + + var varName = 'cache'; + + $scope.preview.general.xml = $generatorXml.cacheGeneral(val).join(''); + $scope.preview.general.java = $generatorJava.cacheGeneral(val, varName).join(''); + $scope.preview.general.allDefaults = $common.isEmptyString($scope.preview.general.xml); + + $scope.preview.memory.xml = $generatorXml.cacheMemory(val).join(''); + $scope.preview.memory.java = $generatorJava.cacheMemory(val, varName).join(''); + $scope.preview.memory.allDefaults = $common.isEmptyString($scope.preview.memory.xml); + + $scope.preview.query.xml = $generatorXml.cacheMetadatas(qryMeta, null, $generatorXml.cacheQuery(val)).join(''); + $scope.preview.query.java = $generatorJava.cacheMetadatas(qryMeta, null, varName, $generatorJava.cacheQuery(val, varName)).join(''); + $scope.preview.query.allDefaults = $common.isEmptyString($scope.preview.query.xml); + + $scope.preview.store.xml = $generatorXml.cacheMetadatas(null, storeMeta, $generatorXml.cacheStore(val)).join(''); + $scope.preview.store.java = $generatorJava.cacheMetadatas(null, storeMeta, varName, $generatorJava.cacheStore(val, varName)).join(''); + $scope.preview.store.allDefaults = $common.isEmptyString($scope.preview.store.xml); + + $scope.preview.concurrency.xml = $generatorXml.cacheConcurrency(val).join(''); + $scope.preview.concurrency.java = $generatorJava.cacheConcurrency(val, varName).join(''); + $scope.preview.concurrency.allDefaults = $common.isEmptyString($scope.preview.concurrency.xml); + + $scope.preview.rebalance.xml = $generatorXml.cacheRebalance(val).join(''); + $scope.preview.rebalance.java = $generatorJava.cacheRebalance(val, varName).join(''); + $scope.preview.rebalance.allDefaults = $common.isEmptyString($scope.preview.rebalance.xml); + + $scope.preview.serverNearCache.xml = $generatorXml.cacheServerNearCache(val).join(''); + $scope.preview.serverNearCache.java = $generatorJava.cacheServerNearCache(val, varName).join(''); + $scope.preview.serverNearCache.allDefaults = $common.isEmptyString($scope.preview.serverNearCache.xml); + + $scope.preview.statistics.xml = $generatorXml.cacheStatistics(val).join(''); + $scope.preview.statistics.java = $generatorJava.cacheStatistics(val, varName).join(''); + $scope.preview.statistics.allDefaults = $common.isEmptyString($scope.preview.statistics.xml); + } + else { + $scope.preview.general.xml = ' '; + $scope.preview.general.java = ' '; + + $scope.preview.memory.xml = ' '; + $scope.preview.memory.java = ' '; + + $scope.preview.query.xml = ' '; + $scope.preview.query.java = ' '; + + $scope.preview.store.xml = ' '; + $scope.preview.store.java = ' '; + + $scope.preview.concurrency.xml = ' '; + $scope.preview.concurrency.java = ' '; + + $scope.preview.rebalance.xml = ' '; + $scope.preview.rebalance.java = ' '; + + $scope.preview.serverNearCache.xml = ' '; + $scope.preview.serverNearCache.java = ' '; + + $scope.preview.statistics.xml = ' '; + $scope.preview.statistics.java = ' '; + } + } + // When landing on the page, get caches and show them. $http.post('caches/list') .success(function (data) { @@ -302,63 +376,11 @@ controlCenterModule.controller('cachesController', [ if (val) { sessionStorage.cacheBackupItem = angular.toJson(val); - var qryMeta = _.reduce($scope.queryMetadata, function(memo, meta){ - if (_.contains(val.queryMetadata, meta.value)) { - memo.push(meta.meta); - } - - return memo; - }, []); - - var storeMeta = _.reduce($scope.storeMetadata, function(memo, meta){ - if (_.contains(val.storeMetadata, meta.value)) { - memo.push(meta.meta); - } - - return memo; - }, []); - - var varName = 'cache'; - - $scope.preview.general.xml = $generatorXml.cacheGeneral(val).join(''); - $scope.preview.general.java = $generatorJava.cacheGeneral(val, varName).join(''); - $scope.preview.general.allDefaults = $common.isEmptyString($scope.preview.general.xml); - - $scope.preview.memory.xml = $generatorXml.cacheMemory(val).join(''); - $scope.preview.memory.java = $generatorJava.cacheMemory(val, varName).join(''); - $scope.preview.memory.allDefaults = $common.isEmptyString($scope.preview.memory.xml); - - $scope.preview.query.xml = $generatorXml.cacheMetadatas(qryMeta, null, $generatorXml.cacheQuery(val)).join(''); - $scope.preview.query.java = $generatorJava.cacheMetadatas(qryMeta, null, varName, $generatorJava.cacheQuery(val, varName)).join(''); - $scope.preview.query.allDefaults = $common.isEmptyString($scope.preview.query.xml); - - $scope.preview.store.xml = $generatorXml.cacheMetadatas(null, storeMeta, $generatorXml.cacheStore(val)).join(''); - $scope.preview.store.java = $generatorJava.cacheMetadatas(null, storeMeta, varName, $generatorJava.cacheStore(val, varName)).join(''); - $scope.preview.store.allDefaults = $common.isEmptyString($scope.preview.store.xml); - - $scope.preview.concurrency.xml = $generatorXml.cacheConcurrency(val).join(''); - $scope.preview.concurrency.java = $generatorJava.cacheConcurrency(val, varName).join(''); - $scope.preview.concurrency.allDefaults = $common.isEmptyString($scope.preview.concurrency.xml); - - $scope.preview.rebalance.xml = $generatorXml.cacheRebalance(val).join(''); - $scope.preview.rebalance.java = $generatorJava.cacheRebalance(val, varName).join(''); - $scope.preview.rebalance.allDefaults = $common.isEmptyString($scope.preview.rebalance.xml); - - $scope.preview.serverNearCache.xml = $generatorXml.cacheServerNearCache(val).join(''); - $scope.preview.serverNearCache.java = $generatorJava.cacheServerNearCache(val, varName).join(''); - $scope.preview.serverNearCache.allDefaults = $common.isEmptyString($scope.preview.serverNearCache.xml); - - $scope.preview.statistics.xml = $generatorXml.cacheStatistics(val).join(''); - $scope.preview.statistics.java = $generatorJava.cacheStatistics(val, varName).join(''); - $scope.preview.statistics.allDefaults = $common.isEmptyString($scope.preview.statistics.xml); + generatePreview(val); $common.markChanged($scope.ui.inputForm, 'cacheBackupItemChanged'); } }, true); - - $timeout(function () { - $common.initPreview(); - }) }) .error(function (errMsg) { $common.showError(errMsg); @@ -368,13 +390,6 @@ controlCenterModule.controller('cachesController', [ function selectItem() { $table.tableReset(); - if (backup) - $scope.backupItem = backup; - else if (item) - $scope.backupItem = angular.copy(item); - else - $scope.backupItem = undefined; - $scope.selectedItem = item; if (item) @@ -382,8 +397,15 @@ controlCenterModule.controller('cachesController', [ else sessionStorage.removeItem('cacheSelectedItem'); + generatePreview(); + $timeout(function () { - $common.previewHeightUpdate(); + if (backup) + $scope.backupItem = backup; + else if (item) + $scope.backupItem = angular.copy(item); + else + $scope.backupItem = undefined; }); $timeout(function () { http://git-wip-us.apache.org/repos/asf/ignite/blob/cc0dbfe0/modules/control-center-web/src/main/js/controllers/clusters-controller.js ---------------------------------------------------------------------- diff --git a/modules/control-center-web/src/main/js/controllers/clusters-controller.js b/modules/control-center-web/src/main/js/controllers/clusters-controller.js index a6b9dac..44f39ff 100644 --- a/modules/control-center-web/src/main/js/controllers/clusters-controller.js +++ b/modules/control-center-web/src/main/js/controllers/clusters-controller.js @@ -112,12 +112,6 @@ controlCenterModule.controller('clustersController', ['$scope', '$controller', ' $scope.panels = {activePanels: [0]}; - $scope.$watchCollection('panels.activePanels', function () { - $timeout(function() { - $common.previewHeightUpdate(); - }) - }); - var simpleTables = { addresses: {msg: 'Such IP address already exists!', id: 'IpAddress'}, regions: {msg: 'Such region already exists!', id: 'Region'}, @@ -158,6 +152,104 @@ controlCenterModule.controller('clustersController', ['$scope', '$controller', ' $common.showError(errMsg); }); + // Fill cluster previews. + function generatePreview(val) { + if ($common.isDefined(val)) { + var clusterCaches = _.reduce($scope.caches, function(caches, cache){ + if (_.contains(val.caches, cache.value)) { + caches.push(cache.cache); + } + + return caches; + }, []); + + $scope.preview.general.xml = $generatorXml.clusterCaches(clusterCaches, $generatorXml.clusterGeneral(val)).join(''); + $scope.preview.general.java = $generatorJava.clusterCaches(clusterCaches, $generatorJava.clusterGeneral(val)).join(''); + $scope.preview.general.allDefaults = $common.isEmptyString($scope.preview.general.xml); + + $scope.preview.atomics.xml = $generatorXml.clusterAtomics(val).join(''); + $scope.preview.atomics.java = $generatorJava.clusterAtomics(val).join(''); + $scope.preview.atomics.allDefaults = $common.isEmptyString($scope.preview.atomics.xml); + + $scope.preview.communication.xml = $generatorXml.clusterCommunication(val).join(''); + $scope.preview.communication.java = $generatorJava.clusterCommunication(val).join(''); + $scope.preview.communication.allDefaults = $common.isEmptyString($scope.preview.communication.xml); + + $scope.preview.deployment.xml = $generatorXml.clusterDeployment(val).join(''); + $scope.preview.deployment.java = $generatorJava.clusterDeployment(val).join(''); + $scope.preview.deployment.allDefaults = $common.isEmptyString($scope.preview.deployment.xml); + + $scope.preview.events.xml = $generatorXml.clusterEvents(val).join(''); + $scope.preview.events.java = $generatorJava.clusterEvents(val).join(''); + $scope.preview.events.allDefaults = $common.isEmptyString($scope.preview.events.xml); + + $scope.preview.marshaller.xml = $generatorXml.clusterMarshaller(val).join(''); + $scope.preview.marshaller.java = $generatorJava.clusterMarshaller(val).join(''); + $scope.preview.marshaller.allDefaults = $common.isEmptyString($scope.preview.marshaller.xml); + + $scope.preview.metrics.xml = $generatorXml.clusterMetrics(val).join(''); + $scope.preview.metrics.java = $generatorJava.clusterMetrics(val).join(''); + $scope.preview.metrics.allDefaults = $common.isEmptyString($scope.preview.metrics.xml); + + $scope.preview.p2p.xml = $generatorXml.clusterP2p(val).join(''); + $scope.preview.p2p.java = $generatorJava.clusterP2p(val).join(''); + $scope.preview.p2p.allDefaults = $common.isEmptyString($scope.preview.p2p.xml); + + $scope.preview.swap.xml = $generatorXml.clusterSwap(val).join(''); + $scope.preview.swap.java = $generatorJava.clusterSwap(val).join(''); + $scope.preview.swap.allDefaults = $common.isEmptyString($scope.preview.swap.xml); + + $scope.preview.time.xml = $generatorXml.clusterTime(val).join(''); + $scope.preview.time.java = $generatorJava.clusterTime(val).join(''); + $scope.preview.time.allDefaults = $common.isEmptyString($scope.preview.time.xml); + + $scope.preview.pools.xml = $generatorXml.clusterPools(val).join(''); + $scope.preview.pools.java = $generatorJava.clusterPools(val).join(''); + $scope.preview.pools.allDefaults = $common.isEmptyString($scope.preview.pools.xml); + + $scope.preview.transactions.xml = $generatorXml.clusterTransactions(val).join(''); + $scope.preview.transactions.java = $generatorJava.clusterTransactions(val).join(''); + $scope.preview.transactions.allDefaults = $common.isEmptyString($scope.preview.transactions.xml); + } + else { + $scope.preview.general.xml = ' '; + $scope.preview.general.java = ' '; + + $scope.preview.atomics.xml = ' '; + $scope.preview.atomics.java = ' '; + + $scope.preview.communication.xml = ' '; + $scope.preview.communication.java = ' '; + + $scope.preview.deployment.xml = ' '; + $scope.preview.deployment.java = ' '; + + $scope.preview.events.xml = ' '; + $scope.preview.events.java = ' '; + + $scope.preview.marshaller.xml = ' '; + $scope.preview.marshaller.java = ' '; + + $scope.preview.metrics.xml = ' '; + $scope.preview.metrics.java = ' '; + + $scope.preview.p2p.xml = ' '; + $scope.preview.p2p.java = ' '; + + $scope.preview.swap.xml = ' '; + $scope.preview.swap.java = ' '; + + $scope.preview.time.xml = ' '; + $scope.preview.time.java = ' '; + + $scope.preview.pools.xml = ' '; + $scope.preview.pools.java = ' '; + + $scope.preview.transactions.xml = ' '; + $scope.preview.transactions.java = ' '; + } + } + // When landing on the page, get clusters and show them. $http.post('clusters/list') .success(function (data) { @@ -212,69 +304,11 @@ controlCenterModule.controller('clustersController', ['$scope', '$controller', ' if (val) { sessionStorage.clusterBackupItem = angular.toJson(val); - var clusterCaches = _.reduce($scope.caches, function(caches, cache){ - if (_.contains(val.caches, cache.value)) { - caches.push(cache.cache); - } - - return caches; - }, []); - - $scope.preview.general.xml = $generatorXml.clusterCaches(clusterCaches, $generatorXml.clusterGeneral(val)).join(''); - $scope.preview.general.java = $generatorJava.clusterCaches(clusterCaches, $generatorJava.clusterGeneral(val)).join(''); - $scope.preview.general.allDefaults = $common.isEmptyString($scope.preview.general.xml); - - $scope.preview.atomics.xml = $generatorXml.clusterAtomics(val).join(''); - $scope.preview.atomics.java = $generatorJava.clusterAtomics(val).join(''); - $scope.preview.atomics.allDefaults = $common.isEmptyString($scope.preview.atomics.xml); - - $scope.preview.communication.xml = $generatorXml.clusterCommunication(val).join(''); - $scope.preview.communication.java = $generatorJava.clusterCommunication(val).join(''); - $scope.preview.communication.allDefaults = $common.isEmptyString($scope.preview.communication.xml); - - $scope.preview.deployment.xml = $generatorXml.clusterDeployment(val).join(''); - $scope.preview.deployment.java = $generatorJava.clusterDeployment(val).join(''); - $scope.preview.deployment.allDefaults = $common.isEmptyString($scope.preview.deployment.xml); - - $scope.preview.events.xml = $generatorXml.clusterEvents(val).join(''); - $scope.preview.events.java = $generatorJava.clusterEvents(val).join(''); - $scope.preview.events.allDefaults = $common.isEmptyString($scope.preview.events.xml); - - $scope.preview.marshaller.xml = $generatorXml.clusterMarshaller(val).join(''); - $scope.preview.marshaller.java = $generatorJava.clusterMarshaller(val).join(''); - $scope.preview.marshaller.allDefaults = $common.isEmptyString($scope.preview.marshaller.xml); - - $scope.preview.metrics.xml = $generatorXml.clusterMetrics(val).join(''); - $scope.preview.metrics.java = $generatorJava.clusterMetrics(val).join(''); - $scope.preview.metrics.allDefaults = $common.isEmptyString($scope.preview.metrics.xml); - - $scope.preview.p2p.xml = $generatorXml.clusterP2p(val).join(''); - $scope.preview.p2p.java = $generatorJava.clusterP2p(val).join(''); - $scope.preview.p2p.allDefaults = $common.isEmptyString($scope.preview.p2p.xml); - - $scope.preview.swap.xml = $generatorXml.clusterSwap(val).join(''); - $scope.preview.swap.java = $generatorJava.clusterSwap(val).join(''); - $scope.preview.swap.allDefaults = $common.isEmptyString($scope.preview.swap.xml); - - $scope.preview.time.xml = $generatorXml.clusterTime(val).join(''); - $scope.preview.time.java = $generatorJava.clusterTime(val).join(''); - $scope.preview.time.allDefaults = $common.isEmptyString($scope.preview.time.xml); - - $scope.preview.pools.xml = $generatorXml.clusterPools(val).join(''); - $scope.preview.pools.java = $generatorJava.clusterPools(val).join(''); - $scope.preview.pools.allDefaults = $common.isEmptyString($scope.preview.pools.xml); - - $scope.preview.transactions.xml = $generatorXml.clusterTransactions(val).join(''); - $scope.preview.transactions.java = $generatorJava.clusterTransactions(val).join(''); - $scope.preview.transactions.allDefaults = $common.isEmptyString($scope.preview.transactions.xml); + generatePreview(val); $common.markChanged($scope.ui.inputForm, 'clusterBackupItemChanged'); } }, true); - - $timeout(function () { - $common.initPreview(); - }) }) .error(function (errMsg) { $common.showError(errMsg); @@ -286,20 +320,20 @@ controlCenterModule.controller('clustersController', ['$scope', '$controller', ' $scope.selectedItem = item; - if (backup) - $scope.backupItem = backup; - else if (item) - $scope.backupItem = angular.copy(item); - else - $scope.backupItem = undefined; - if (item) sessionStorage.clusterSelectedItem = angular.toJson(item); else sessionStorage.removeItem('clusterSelectedItem'); + generatePreview(); + $timeout(function () { - $common.previewHeightUpdate(); + if (backup) + $scope.backupItem = backup; + else if (item) + $scope.backupItem = angular.copy(item); + else + $scope.backupItem = undefined; }); $timeout(function () { http://git-wip-us.apache.org/repos/asf/ignite/blob/cc0dbfe0/modules/control-center-web/src/main/js/controllers/common-module.js ---------------------------------------------------------------------- diff --git a/modules/control-center-web/src/main/js/controllers/common-module.js b/modules/control-center-web/src/main/js/controllers/common-module.js index e04fb69..921cff5 100644 --- a/modules/control-center-web/src/main/js/controllers/common-module.js +++ b/modules/control-center-web/src/main/js/controllers/common-module.js @@ -481,37 +481,6 @@ controlCenterModule.service('$common', [ return false; } - function resizePreview (el) { - var left = $('#' + el.id + '-left'); - - if (left.height() > 0) { - var right = $('#' + el.id + '-right'); - - var parent = right.parent(); - - var hScroll = right.find('.ace_scrollbar-h'); - - var scrollHeight = hScroll.length > 0 ? hScroll.height() : 0; - - var marginTop = parent.css('marginTop'); - - var minHeight = right.attr('min-height'); - - if (isDefined(minHeight) && minHeight.length > 0) - minHeight = minHeight.replace('px', ''); - else - minHeight = 0; - - var parentHeight = Math.max(minHeight, 75, left.height() - 2 * (isDefined(marginTop) ? marginTop.replace('px', '') : 0)); - - parent.outerHeight(parentHeight); - - right.height(parentHeight - scrollHeight * 3 / 4); - - right.resize(); - } - } - function formChanged (form) { return isDefined(form) && form.$dirty; } @@ -665,26 +634,6 @@ controlCenterModule.service('$common', [ if (popover) popover.hide(); }, - previewHeightUpdate: function () { - $('.panel-collapse').each(function (ix, el) { - resizePreview(el); - }) - }, - initPreview: function () { - MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver; - - $('.panel-collapse').each(function (ix, el) { - var observer = new MutationObserver(function(mutations, observer) { - resizePreview(el); - }); - - observer.observe(el, { - childList: true, - subtree: true, - attributeFilter: ['class'] - }); - }); - }, markChanged: function (form, item) { sessionStorage.setItem(item, 'true'); @@ -1006,24 +955,29 @@ controlCenterModule.service('$preview', ['$timeout', function ($timeout) { var previewPrevContent = []; - var clearPromise = null; - function previewChanged (ace) { var content = ace[0]; + var editor = ace[1]; + + var clearPromise = editor.clearPromise; + + var previewNewContent = content.lines; + if (content.action == 'remove') previewPrevContent = content.lines; - else { + // Do not mark the text changes for special marker value: ' '. + else if (previewPrevContent.length > 0 && previewNewContent.length > 0 && previewNewContent[0] != ' ' + && previewPrevContent[0] != ' ') { if (clearPromise) $timeout.cancel(clearPromise); - var previewNewContent = content.lines; - var start = -1; var end = -1; var prevLen = previewPrevContent.length; var newLen = previewNewContent.length; + // Find an index of a first line with different text. for (var i = 0; (i < newLen || i < prevLen) && start < 0; i++) { if (previewNewContent[i] != previewPrevContent[i]) { start = i; @@ -1033,8 +987,10 @@ controlCenterModule.service('$preview', ['$timeout', function ($timeout) { } if (start >= 0) { + // Find an index of a last line with different text by checking last string of old and new content in reverse order. for (i = 1; (i <= newLen || i <= prevLen) && end < 0; i++) { - if (previewNewContent[newLen - i] != previewPrevContent[prevLen - i]) { + // Also check when difference added in end of content. + if (previewNewContent[newLen - i] != previewPrevContent[prevLen - i] || prevLen - i < start) { end = newLen - i + 1; break; @@ -1044,15 +1000,15 @@ controlCenterModule.service('$preview', ['$timeout', function ($timeout) { if (end < 0) end = start + 1; - var editor = ace[1]; - - editor.selection.setSelectionRange(new Range(start, 0, end, 0), false); + if (start <= end) { + editor.selection.setSelectionRange(new Range(start, 0, end, 0), false); - clearPromise = $timeout(function () { - editor.clearSelection(); + editor.clearPromise = $timeout(function () { + editor.clearSelection(); - clearPromise = null; - }, 3000); + editor.clearPromise = null; + }, 3000); + } } previewPrevContent = []; http://git-wip-us.apache.org/repos/asf/ignite/blob/cc0dbfe0/modules/control-center-web/src/main/js/controllers/metadata-controller.js ---------------------------------------------------------------------- diff --git a/modules/control-center-web/src/main/js/controllers/metadata-controller.js b/modules/control-center-web/src/main/js/controllers/metadata-controller.js index 400104f..9e418bf 100644 --- a/modules/control-center-web/src/main/js/controllers/metadata-controller.js +++ b/modules/control-center-web/src/main/js/controllers/metadata-controller.js @@ -168,11 +168,6 @@ controlCenterModule.controller('metadataController', [ $scope.panels = {activePanels: [0, 1]}; - $scope.$watchCollection('panels.activePanels', function () { - $timeout(function() { - $common.previewHeightUpdate(); - }) - }); $scope.metadatas = []; $scope.isJavaBuildInClass = function () { @@ -204,11 +199,12 @@ controlCenterModule.controller('metadataController', [ function setSelectedAndBackupItem() { $table.tableReset(); - $scope.backupItem = bak; $scope.selectedItem = sel; + generatePreview(); + $timeout(function () { - $common.previewHeightUpdate(); + $scope.backupItem = bak; }); $timeout(function () { @@ -489,6 +485,35 @@ controlCenterModule.controller('metadataController', [ $scope.loadMeta.action = 'connect'; }; + function generatePreview(val) { + if ($common.isDefined(val)) { + $scope.preview.general.xml = $generatorXml.metadataGeneral(val).join(''); + $scope.preview.general.java = $generatorJava.metadataGeneral(val).join(''); + $scope.preview.general.allDefaults = $common.isEmptyString($scope.preview.general.xml); + + $scope.preview.query.xml = $generatorXml.metadataQuery(val).join(''); + $scope.preview.query.java = $generatorJava.metadataQuery(val).join(''); + $scope.preview.query.allDefaults = $common.isEmptyString($scope.preview.query.xml); + + $scope.preview.store.xml = $generatorXml.metadataStore(val).join(''); + $scope.preview.store.java = $generatorJava.metadataStore(val).join(''); + $scope.preview.store.allDefaults = $common.isEmptyString($scope.preview.store.xml); + } + else { + $scope.preview.general.xml = ' '; + $scope.preview.general.java = ' '; + $scope.preview.general.allDefaults = ' '; + + $scope.preview.query.xml = ' '; + $scope.preview.query.java = ' '; + $scope.preview.query.allDefaults = ' '; + + $scope.preview.store.xml = ' '; + $scope.preview.store.java = ' '; + $scope.preview.store.allDefaults = ' '; + } + } + // When landing on the page, get metadatas and show them. $http.post('metadata/list') .success(function (data) { @@ -540,25 +565,11 @@ controlCenterModule.controller('metadataController', [ if (val) { sessionStorage.metadataBackupItem = angular.toJson(val); - $scope.preview.general.xml = $generatorXml.metadataGeneral(val).join(''); - $scope.preview.general.java = $generatorJava.metadataGeneral(val).join(''); - $scope.preview.general.allDefaults = $common.isEmptyString($scope.preview.general.xml); - - $scope.preview.query.xml = $generatorXml.metadataQuery(val).join(''); - $scope.preview.query.java = $generatorJava.metadataQuery(val).join(''); - $scope.preview.query.allDefaults = $common.isEmptyString($scope.preview.query.xml); - - $scope.preview.store.xml = $generatorXml.metadataStore(val).join(''); - $scope.preview.store.java = $generatorJava.metadataStore(val).join(''); - $scope.preview.store.allDefaults = $common.isEmptyString($scope.preview.store.xml); + generatePreview(val); $common.markChanged($scope.ui.inputForm, 'metadataBackupItemChanged'); } }, true); - - $timeout(function () { - $common.initPreview(); - }); }) .error(function (errMsg) { $common.showError(errMsg); http://git-wip-us.apache.org/repos/asf/ignite/blob/cc0dbfe0/modules/control-center-web/src/main/js/public/stylesheets/style.scss ---------------------------------------------------------------------- diff --git a/modules/control-center-web/src/main/js/public/stylesheets/style.scss b/modules/control-center-web/src/main/js/public/stylesheets/style.scss index 0b9e4ae..ed274a5 100644 --- a/modules/control-center-web/src/main/js/public/stylesheets/style.scss +++ b/modules/control-center-web/src/main/js/public/stylesheets/style.scss @@ -1188,6 +1188,7 @@ a { color: $input-color-placeholder; display: table; width: 100%; + height: 26px; label { display: table-cell; http://git-wip-us.apache.org/repos/asf/ignite/blob/cc0dbfe0/modules/control-center-web/src/main/js/routes/generator/generator-common.js ---------------------------------------------------------------------- diff --git a/modules/control-center-web/src/main/js/routes/generator/generator-common.js b/modules/control-center-web/src/main/js/routes/generator/generator-common.js index 9a7dfa0..5789506 100644 --- a/modules/control-center-web/src/main/js/routes/generator/generator-common.js +++ b/modules/control-center-web/src/main/js/routes/generator/generator-common.js @@ -74,13 +74,14 @@ $generatorCommon.builder = function () { }; res.line = function (s) { - if (this.needEmptyLine) { - this.push('\n'); - this.needEmptyLine = false; - } + if (s) { + if (this.needEmptyLine) + this.push('\n'); - if (s) this.append(s); + } + + this.needEmptyLine = false; this.push('\n'); this.lineStart = true; http://git-wip-us.apache.org/repos/asf/ignite/blob/cc0dbfe0/modules/control-center-web/src/main/js/views/includes/controls.jade ---------------------------------------------------------------------- diff --git a/modules/control-center-web/src/main/js/views/includes/controls.jade b/modules/control-center-web/src/main/js/views/includes/controls.jade index 58eda61..b9dbfa7 100644 --- a/modules/control-center-web/src/main/js/views/includes/controls.jade +++ b/modules/control-center-web/src/main/js/views/includes/controls.jade @@ -466,8 +466,8 @@ mixin preview(preview, id) .preview-legend(ng-show='!preview[#{preview}].allDefaults') a(ng-class='{active: !#{previewState}, inactive: #{previewState}}' ng-click='#{previewState} = false') XML a(ng-class='{active: #{previewState}, inactive: !#{previewState}}' ng-click='#{previewState} = true') Java - .preview-content(ng-if='!preview[#{preview}].allDefaults && !#{previewState}' id='#{id}' ui-ace='{onLoad: previewInit, onChange: previewChanged, mode: "xml"}' ng-model='preview[#{preview}].xml' min-height='{{::group.minHeight}}') - .preview-content(ng-if='!preview[#{preview}].allDefaults && #{previewState}' id='#{id}' ui-ace='{onLoad: previewInit, onChange: previewChanged, mode: "java"}' ng-model='preview[#{preview}].java' min-height='{{::group.minHeight}}') + .preview-content(ng-if='!preview[#{preview}].allDefaults && !#{previewState}' id='#{id}' ui-ace='{onLoad: previewInit, onChange: previewChanged, mode: "xml", advanced: {autoScrollEditorIntoView: true, minLines: 3, maxLines: 50}}' ng-model='preview[#{preview}].xml' min-height='{{::group.minHeight}}') + .preview-content(ng-if='!preview[#{preview}].allDefaults && #{previewState}' id='#{id}' ui-ace='{onLoad: previewInit, onChange: previewChanged, mode: "java", advanced: {autoScrollEditorIntoView: true, minLines: 3, maxLines: 50}}' ng-model='preview[#{preview}].java' min-height='{{::group.minHeight}}') .preview-content-empty(ng-if='preview[#{preview}].allDefaults' id='#{id}') label All Defaults
