Repository: incubator-ignite Updated Branches: refs/heads/ignite-1121 a1918517b -> 033566ee4
# ignite-843 Replace highlighter to ace-ui Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/f1c3b341 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/f1c3b341 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/f1c3b341 Branch: refs/heads/ignite-1121 Commit: f1c3b341c1b5c3f4f7c4f2817abb6e92d8a5dc0a Parents: 9cabdf6 Author: Andrey <anovi...@gridgain.com> Authored: Fri Jul 17 14:39:49 2015 +0700 Committer: Andrey <anovi...@gridgain.com> Committed: Fri Jul 17 14:39:49 2015 +0700 ---------------------------------------------------------------------- .../nodejs/controllers/common-module.js | 2 +- .../nodejs/controllers/summary-controller.js | 50 +++++--------- modules/web-control-center/nodejs/package.json | 1 + .../nodejs/public/stylesheets/style.less | 5 ++ .../nodejs/views/configuration/summary.jade | 73 +++++++------------- .../nodejs/views/templates/layout.jade | 5 +- 6 files changed, 54 insertions(+), 82 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f1c3b341/modules/web-control-center/nodejs/controllers/common-module.js ---------------------------------------------------------------------- diff --git a/modules/web-control-center/nodejs/controllers/common-module.js b/modules/web-control-center/nodejs/controllers/common-module.js index 5e1a6c1..7de47a9 100644 --- a/modules/web-control-center/nodejs/controllers/common-module.js +++ b/modules/web-control-center/nodejs/controllers/common-module.js @@ -15,7 +15,7 @@ * limitations under the License. */ -var controlCenterModule = angular.module('ignite-web-control-center', ['smart-table', 'mgcrea.ngStrap', 'ngSanitize']); +var controlCenterModule = angular.module('ignite-web-control-center', ['smart-table', 'mgcrea.ngStrap', 'ui.ace', 'ngSanitize']); // Common functions to be used in controllers. controlCenterModule.service('commonFunctions', ['$alert', function ($alert) { http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f1c3b341/modules/web-control-center/nodejs/controllers/summary-controller.js ---------------------------------------------------------------------- diff --git a/modules/web-control-center/nodejs/controllers/summary-controller.js b/modules/web-control-center/nodejs/controllers/summary-controller.js index cb21e8b..7e6f961 100644 --- a/modules/web-control-center/nodejs/controllers/summary-controller.js +++ b/modules/web-control-center/nodejs/controllers/summary-controller.js @@ -46,47 +46,29 @@ controlCenterModule.controller('summaryController', ['$scope', '$http', 'commonF $scope.oss = ['debian:8', 'ubuntu:14.10']; - $scope.cfgLangServer = 'xml'; - $scope.cfgLangClient = 'xml'; - $scope.javaClassServer = false; $scope.javaClassClient = false; $scope.os = undefined; - $scope.generated = undefined; + $scope.configServer = {}; $scope.clusters = []; - $scope.reloadServer = function() { - if (!$scope.generated) - return; - - $("<pre class='brush:xml'/>").text($scope.generated.xmlServer).appendTo($('#xmlServer').empty()); - $("<pre class='brush:java'/>").text($scope.javaClassServer ? $scope.generated.javaClassServer : $scope.generated.javaSnippetServer).appendTo($('#javaServer').empty()); - - var os = $scope.os ? $scope.os : $scope.oss[0]; - - $("<pre class='brush:plain'/>").text($scope.generated.docker.replace(new RegExp('\%OS\%', 'g'), os)).appendTo($('#docker').empty()); - + $scope.aceInit = function(editor) { + editor.setReadOnly(true); + editor.setOption("highlightActiveLine", false); - $("<pre class='brush:xml'/>").text($scope.generated.xmlClient).appendTo($('#xmlClient').empty()); - $("<pre class='brush:java'/>").text($scope.javaClassClient ? $scope.generated.javaClassClient : $scope.generated.javaSnippetClient).appendTo($('#javaClient').empty()); - - SyntaxHighlighter.highlight(); + editor.setTheme('chrome'); }; $scope.reloadServer = function() { - if (!$scope.generated) - return; - - $("<pre class='brush:xml'/>").text($scope.generated.xmlServer).appendTo($('#xmlServer').empty()); - $("<pre class='brush:java'/>").text($scope.javaClassServer ? $scope.generated.javaClassServer : $scope.generated.javaSnippetServer).appendTo($('#javaServer').empty()); - - var os = $scope.os ? $scope.os : $scope.oss[0]; + $scope.javaServer = $scope.javaClass ? $scope.configServer.javaClass : $scope.configServer.javaSnippet; - $("<pre class='brush:plain'/>").text($scope.generated.docker.replace(new RegExp('\%OS\%', 'g'), os)).appendTo($('#docker').empty()); + if ($scope.configServer.docker) { + var os = $scope.os ? $scope.os : $scope.oss[0]; - SyntaxHighlighter.highlight(); + $scope.dockerServer = $scope.configServer.docker.replace(new RegExp('\%OS\%', 'g'), os); + } }; $scope.selectItem = function(cluster) { @@ -112,7 +94,11 @@ controlCenterModule.controller('summaryController', ['$scope', '$http', 'commonF $scope.generateServer = function(cluster) { $http.post('summary/generator', {_id: cluster._id}) .success(function (data) { - $scope.generated = data; + $scope.xmlServer = data.xmlServer; + + $scope.configServer.javaClass = data.javaClassServer; + $scope.configServer.javaSnippet = data.javaSnippetServer; + $scope.configServer.docker = data.docker; $scope.reloadServer(); }).error(function (errMsg) { @@ -123,10 +109,8 @@ controlCenterModule.controller('summaryController', ['$scope', '$http', 'commonF $scope.generateClient = function() { $http.post('summary/generator', {_id: $scope.selectedItem._id, javaClass: $scope.javaClassClient, clientCache: $scope.backupItem}) .success(function (data) { - $("<pre class='brush:xml'/>").text(data.xmlClient).appendTo($('#xmlClient').empty()); - $("<pre class='brush:java'/>").text(data.javaClient).appendTo($('#javaClient').empty()); - - SyntaxHighlighter.highlight(); + $scope.xmlClient = data.xmlClient; + $scope.javaClient = data.javaClient; }).error(function (errMsg) { commonFunctions.showError('Failed to generate config: ' + errMsg); }); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f1c3b341/modules/web-control-center/nodejs/package.json ---------------------------------------------------------------------- diff --git a/modules/web-control-center/nodejs/package.json b/modules/web-control-center/nodejs/package.json index 82a3906..6d092da 100644 --- a/modules/web-control-center/nodejs/package.json +++ b/modules/web-control-center/nodejs/package.json @@ -9,6 +9,7 @@ "author": "Ignite", "license": "Apache License, Version 2.0", "dependencies": { + "angular-ui-ace": "^0.2.3", "archiver": "^0.14.4", "body-parser": "~1.12.0", "connect-flash": "^0.1.1", http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f1c3b341/modules/web-control-center/nodejs/public/stylesheets/style.less ---------------------------------------------------------------------- diff --git a/modules/web-control-center/nodejs/public/stylesheets/style.less b/modules/web-control-center/nodejs/public/stylesheets/style.less index 595e4da..69fd765 100644 --- a/modules/web-control-center/nodejs/public/stylesheets/style.less +++ b/modules/web-control-center/nodejs/public/stylesheets/style.less @@ -1054,4 +1054,9 @@ a { p { padding: 10px 0 10px 10px; } +} + +.ace_editor, #ace_document { + width: 100%; + height: 400px; } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f1c3b341/modules/web-control-center/nodejs/views/configuration/summary.jade ---------------------------------------------------------------------- diff --git a/modules/web-control-center/nodejs/views/configuration/summary.jade b/modules/web-control-center/nodejs/views/configuration/summary.jade index 848e710..68ec808 100644 --- a/modules/web-control-center/nodejs/views/configuration/summary.jade +++ b/modules/web-control-center/nodejs/views/configuration/summary.jade @@ -19,16 +19,15 @@ extends sidebar append scripts script(src='/summary-controller.js') - script(src='//cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/scripts/shCore.min.js') - script(src='//cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/scripts/shBrushXml.js') - script(src='//cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/scripts/shBrushJava.js') - script(src='//cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/scripts/shBrushPlain.js') script(src="//cdn.jsdelivr.net/angularjs/1.3.15/angular-animate.min.js") script(src="//cdn.jsdelivr.net/angularjs/1.3.15/angular-sanitize.min.js") + script(src='//cdnjs.cloudflare.com/ajax/libs/ace/1.2.0/theme-chrome.js') + script(src='//cdnjs.cloudflare.com/ajax/libs/ace/1.2.0/mode-xml.js') + script(src='//cdnjs.cloudflare.com/ajax/libs/ace/1.2.0/mode-java.js') + script(src='//cdnjs.cloudflare.com/ajax/libs/ace/1.2.0/mode-dockerfile.js') + append css - link(rel='stylesheet', href='//cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/styles/shCore.css') - link(rel='stylesheet', href='//cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/styles/shThemeDefault.css') include ../includes/controls @@ -55,7 +54,7 @@ block content tr(ng-repeat='row in clusters track by row._id') td.col-sm-6(ng-class='{active: row._id == selectedItem._id}') a(ng-click='selectItem(row)') {{$index + 1}}) {{row.name}} - div(ng-show='selectedItem && generated' role="tab" method='post' action='summary/download') + div(ng-show='selectedItem' role="tab" method='post' action='summary/download') div(bs-collapse data-start-collapsed='false') .panel.panel-default form.panel-heading(role='tab' method='post' action='summary/download') @@ -67,30 +66,18 @@ block content button.btn.btn-primary.pull-right(type='submit' style='margin-top: -5px') Download .panel-collapse(role="tabpanel" bs-collapse-target) .panel-body - .configBox(ng-show='selectedItem && !generateError') - ul.nav.nav-tabs - li(ng-class='{active: cfgLangServer == "xml"}') - a(href, ng-click='cfgLangServer = "xml"') - img(src='/images/xml.png', width='16px' height='16px') - | XML - li(ng-class='{active: cfgLangServer =="java"}') - a(href, ng-click='cfgLangServer = "java"') - img(src='/images/java.png', width='16px' height='16px') - | Java - li(ng-class="{active: cfgLangServer =='docker'}") - a(href, ng-click='cfgLangServer = "docker"') - img(src='/images/docker.png', width='16px' height='16px') - | Dockerfile - .settings-row - div(ng-show="cfgLangServer == 'xml'") - #xmlServer - div(ng-show="cfgLangServer == 'java'") + .configBox(ng-show='selectedItem' bs-tabs) + div(title='<img src="/images/xml.png" width="16px" height="16px"/> XML' bs-pane) + .configBox(ui-ace='{ onLoad: aceInit, mode: "xml" }' ng-model='xmlServer' style='margin: 0.65em 0;') + div(title='<img src="/images/java.png" width="16px" height="16px"/> Java' bs-pane) + .settings-row .col-sm-1 label Generate: .col-sm-3 button.form-control(type='button' ng-model='javaClassServer' bs-select data-placeholder='{{detail.placeholder}}' bs-options='item.value as item.label for item in javaClassItems' data-sort='false') - #javaServer - div(ng-show="cfgLangServer == 'docker'") + .configBox(ui-ace='{ onLoad: aceInit, mode: "java" }' ng-model='javaServer') + div(title='<img src="/images/docker.png" width="16px" height="16px"/> Dockerfile' bs-pane) + .settings-row p +hard-link('https://docs.docker.com/reference/builder', 'Docker') | file is a text file with instructions to create Docker image.<br/> @@ -104,7 +91,7 @@ block content label(for='os') Operation System: .col-sm-4 input#os.form-control(type='text', ng-model='os' placeholder='debian:8' data-min-length="0" data-html="1" data-auto-select="true" data-animation="am-flip-x" bs-typeahead bs-options='os for os in oss') - .settings-row#docker(style='margin-top: 15px') + div(ui-ace='{ onLoad: aceInit, mode: "dockerfile" }' ng-model='dockerServer') div(bs-collapse data-start-collapsed='false') .panel.panel-default form.panel-heading(role='tab' method='post' action='summary/download') @@ -117,24 +104,16 @@ block content button.btn.btn-primary.pull-right(type='submit' style='margin-top: -5px') Download .panel-collapse(role="tabpanel" bs-collapse-target) .panel-body - .configBox(ng-show='selectedItem && !generateError') + div(ng-show='selectedItem') .settings-row(ng-repeat='field in clientFields') +form-row-custom(['col-sm-3'], ['col-sm-3']) - ul.nav.nav-tabs - li(ng-class='{active: cfgLangClient == "xml"}') - a(href, ng-click='cfgLangClient = "xml"') - img(src='/images/xml.png', width='16px' height='16px') - | XML - li(ng-class='{active: cfgLangClient =="java"}') - a(href, ng-click='cfgLangClient = "java"') - img(src='/images/java.png', width='16px' height='16px') - | Java - .settings-row - div(ng-show="cfgLangClient == 'xml'") - #xmlClient - div(ng-show="cfgLangClient == 'java'") - .col-sm-1 - label Generate: - .col-sm-4 - button.form-control(type='button' ng-model='javaClassClient' bs-select data-placeholder='{{detail.placeholder}}' bs-options='item.value as item.label for item in javaClassItems' data-sort='false') - #javaClient + .configBox(bs-tabs) + div(title='<img src="/images/xml.png" width="16px" height="16px"/> XML' bs-pane) + .configBox(ui-ace='{ onLoad: aceInit, mode: "xml" }' ng-model='xmlClient' style='margin: 0.65em 0;') + div(title='<img src="/images/java.png" width="16px" height="16px"/> Java' bs-pane) + .settings-row + .col-sm-1 + label Generate: + .col-sm-4 + button.form-control(type='button' ng-model='javaClassClient' bs-select data-placeholder='{{detail.placeholder}}' bs-options='item.value as item.label for item in javaClassItems' data-sort='false') + div(ui-ace='{ onLoad: aceInit, mode: "java" }' ng-model='javaClient') http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f1c3b341/modules/web-control-center/nodejs/views/templates/layout.jade ---------------------------------------------------------------------- diff --git a/modules/web-control-center/nodejs/views/templates/layout.jade b/modules/web-control-center/nodejs/views/templates/layout.jade index 1bcaff7..a4191ae 100644 --- a/modules/web-control-center/nodejs/views/templates/layout.jade +++ b/modules/web-control-center/nodejs/views/templates/layout.jade @@ -41,7 +41,10 @@ html(ng-app='ignite-web-control-center', ng-init='user = #{JSON.stringify(user)} script(src='//cdnjs.cloudflare.com/ajax/libs/angular-strap/2.3.0/angular-strap.js') script(src='//cdnjs.cloudflare.com/ajax/libs/angular-strap/2.3.0/angular-strap.tpl.min.js') - script(src='https://cdnjs.cloudflare.com/ajax/libs/angular-smart-table/2.0.3/smart-table.js') + script(src='//cdnjs.cloudflare.com/ajax/libs/angular-smart-table/2.0.3/smart-table.js') + + script(src='//cdnjs.cloudflare.com/ajax/libs/ace/1.2.0/ace.js') + script(src='//angular-ui.github.io/ui-ace/dist/ui-ace.min.js') script(src='/common-module.js') script(src='/data-structures.js')