You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ak...@apache.org on 2018/04/26 08:37:16 UTC

ignite git commit: IGNITE-8235 Web Console: Implement execution of selected part of SQL query.

Repository: ignite
Updated Branches:
  refs/heads/master b3f912ffe -> 9d61a42e4


IGNITE-8235 Web Console: Implement execution of selected part of SQL query.


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

Branch: refs/heads/master
Commit: 9d61a42e4e468d6e622e39369fc852af4fa36ee7
Parents: b3f912f
Author: Alexander Kalinin <ve...@yandex.ru>
Authored: Thu Apr 26 15:37:07 2018 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Thu Apr 26 15:37:07 2018 +0700

----------------------------------------------------------------------
 .../components/queries-notebook/controller.js     | 13 ++++++++-----
 .../components/queries-notebook/template.tpl.pug  |  2 +-
 .../frontend/app/modules/ace.module.js            | 18 ++++++++++++++++--
 3 files changed, 25 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/9d61a42e/modules/web-console/frontend/app/components/page-queries/components/queries-notebook/controller.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/components/page-queries/components/queries-notebook/controller.js b/modules/web-console/frontend/app/components/page-queries/components/queries-notebook/controller.js
index fa7460f..859d1f7 100644
--- a/modules/web-console/frontend/app/components/page-queries/components/queries-notebook/controller.js
+++ b/modules/web-console/frontend/app/components/page-queries/components/queries-notebook/controller.js
@@ -1477,8 +1477,9 @@ export class NotebookCtrl {
 
             $scope.queryAvailable(paragraph) && _chooseNode(paragraph.cacheName, local)
                 .then((nid) => {
-                    Notebook.save($scope.notebook)
-                        .catch(Messages.showError);
+                    // If we are executing only selected part of query then Notebook shouldn't be saved.
+                    if (!paragraph.partialQuery)
+                        Notebook.save($scope.notebook).catch(Messages.showError);
 
                     paragraph.localQueryMode = local;
                     paragraph.prevQuery = paragraph.queryArgs ? paragraph.queryArgs.query : paragraph.query;
@@ -1487,10 +1488,12 @@ export class NotebookCtrl {
 
                     return _closeOldQuery(paragraph)
                         .then(() => {
+                            const query = paragraph.partialQuery || paragraph.query;
+
                             const args = paragraph.queryArgs = {
                                 type: 'QUERY',
                                 cacheName: $scope.cacheNameForSql(paragraph),
-                                query: paragraph.query,
+                                query,
                                 pageSize: paragraph.pageSize,
                                 maxPages: paragraph.maxPages,
                                 nonCollocatedJoins,
@@ -1499,10 +1502,10 @@ export class NotebookCtrl {
                                 lazy
                             };
 
-                            const qry = args.maxPages ? addLimit(args.query, args.pageSize * args.maxPages) : paragraph.query;
-
                             ActivitiesData.post({ action: '/queries/execute' });
 
+                            const qry = args.maxPages ? addLimit(args.query, args.pageSize * args.maxPages) : query;
+
                             return agentMgr.querySql(nid, args.cacheName, qry, nonCollocatedJoins, enforceJoinOrder, false, local, args.pageSize, lazy);
                         })
                         .then((res) => {

http://git-wip-us.apache.org/repos/asf/ignite/blob/9d61a42e/modules/web-console/frontend/app/components/page-queries/components/queries-notebook/template.tpl.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/components/page-queries/components/queries-notebook/template.tpl.pug b/modules/web-console/frontend/app/components/page-queries/components/queries-notebook/template.tpl.pug
index a163125..96c704d 100644
--- a/modules/web-console/frontend/app/components/page-queries/components/queries-notebook/template.tpl.pug
+++ b/modules/web-console/frontend/app/components/page-queries/components/queries-notebook/template.tpl.pug
@@ -309,7 +309,7 @@ mixin paragraph-query
             .col-xs-8.col-sm-9(style='border-right: 1px solid #eee')
                 .sql-editor(ignite-ace='{onLoad: aceInit(paragraph), theme: "chrome", mode: "sql", require: ["ace/ext/language_tools"],' +
                 'advanced: {enableSnippets: false, enableBasicAutocompletion: true, enableLiveAutocompletion: true}}'
-                ng-model='paragraph.query')
+                ng-model='paragraph.query' on-selection-change='paragraph.partialQuery = $event')
             .col-xs-4.col-sm-3
                 div(ng-show='caches.length > 0' style='padding: 5px 10px' st-table='displayedCaches' st-safe-src='caches')
                     lable.labelField.labelFormField Caches:

http://git-wip-us.apache.org/repos/asf/ignite/blob/9d61a42e/modules/web-console/frontend/app/modules/ace.module.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/ace.module.js b/modules/web-console/frontend/app/modules/ace.module.js
index 6a6e70a..44e51ca 100644
--- a/modules/web-console/frontend/app/modules/ace.module.js
+++ b/modules/web-console/frontend/app/modules/ace.module.js
@@ -134,8 +134,12 @@ angular
 
         return {
             restrict: 'EA',
-            require: ['?ngModel', '?^form'],
-            link: (scope, elm, attrs, [ngModel, form]) => {
+            require: ['?ngModel', '?^form', 'igniteAce'],
+            bindToController: {
+                onSelectionChange: '&?'
+            },
+            controller() {},
+            link: (scope, elm, attrs, [ngModel, form, igniteAce]) => {
                 /**
                  * Corresponds the igniteAceConfig ACE configuration.
                  *
@@ -165,6 +169,8 @@ angular
                  */
                 const session = acee.getSession();
 
+                const selection = session.getSelection();
+
                 /**
                  * Reference to a change listener created by the listener factory.
                  *
@@ -223,6 +229,14 @@ angular
                     ngModel.$render = () => session.setValue(ngModel.$viewValue);
 
                     acee.on('change', () => ngModel.$setViewValue(acee.getValue()));
+
+                    selection.on('changeSelection', () => {
+                        if (igniteAce.onSelectionChange) {
+                            const aceSelection = selection.isEmpty() ? null : acee.session.getTextRange(acee.getSelectionRange());
+
+                            igniteAce.onSelectionChange({$event: aceSelection});
+                        }
+                    });
                 }
 
                 // Listen for option updates.