Repository: kylin
Updated Branches:
  refs/heads/2.x-staging f365a8ec1 -> c077eb4e2


KYLIN-1338, UI multiple select checkbox lose focus issue


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

Branch: refs/heads/2.x-staging
Commit: c077eb4e20bd99f7c2fa3b1343ef9671ec6f7ffd
Parents: f365a8e
Author: jian <zhongj...@apache.org>
Authored: Tue Jan 19 21:40:17 2016 +0800
Committer: jian <zhongj...@apache.org>
Committed: Tue Jan 19 21:40:17 2016 +0800

----------------------------------------------------------------------
 webapp/app/index.html                           |  3 +
 webapp/app/js/app.js                            |  2 +-
 .../cubeDesigner/advanced_settings.html         | 91 +++++++++++++-------
 webapp/app/partials/cubeDesigner/info.html      |  4 +-
 .../modelDesigner/model_dimensions.html         | 17 ++--
 .../partials/modelDesigner/model_measures.html  | 19 ++--
 webapp/bower.json                               |  8 +-
 webapp/grunt.json                               |  3 +
 8 files changed, 98 insertions(+), 49 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/c077eb4e/webapp/app/index.html
----------------------------------------------------------------------
diff --git a/webapp/app/index.html b/webapp/app/index.html
index f02c0a7..11ca283 100644
--- a/webapp/app/index.html
+++ b/webapp/app/index.html
@@ -45,6 +45,7 @@
     <link rel="stylesheet" type="text/css" 
href="components/bootstrap-sweetalert/lib/sweet-alert.css">
     <link rel="stylesheet" type="text/css" 
href="components/angular-bootstrap-nav-tree/dist/abn_tree.css">
     <link rel="stylesheet" type="text/css" 
href="components/angular-toggle-switch/angular-toggle-switch.css">
+    <link rel="stylesheet" type="text/css" 
href="components/angular-ui-select/dist/select.css">
 
     <link rel="stylesheet/less" href="less/build.less">
     <!-- endref -->
@@ -103,6 +104,8 @@
 <script src="components/jquery-ui/jquery-ui.min.js"></script>
 <script src="components/angular-ui-sortable/sortable.js"></script>
 <script 
src="components/angular-toggle-switch/angular-toggle-switch.js"></script>
+<script src="components/angular-ui-select/dist/select.js"></script>
+<script src="components/angular-sanitize/angular-sanitize.js"></script>
 
 <script src="js/app.js"></script>
 <script src="js/config.js"></script>

http://git-wip-us.apache.org/repos/asf/kylin/blob/c077eb4e/webapp/app/js/app.js
----------------------------------------------------------------------
diff --git a/webapp/app/js/app.js b/webapp/app/js/app.js
index dc9d087..817d24d 100644
--- a/webapp/app/js/app.js
+++ b/webapp/app/js/app.js
@@ -17,4 +17,4 @@
 */
 
 //Kylin Application Module
-KylinApp = angular.module('kylin', ['ngRoute', 'ngResource', 'ngGrid', 
'ui.bootstrap', 'ui.ace', 'base64', 'angularLocalStorage', 
'localytics.directives', 'treeControl', 
'nvd3ChartDirectives','ngLoadingRequest','oitozero.ngSweetAlert','ngCookies','angular-underscore',
 'ngAnimate', 'ui.sortable','angularBootstrapNavTree','toggle-switch']);
+KylinApp = angular.module('kylin', ['ngRoute', 'ngResource', 'ngGrid', 
'ui.bootstrap', 'ui.ace', 'base64', 'angularLocalStorage', 
'localytics.directives', 'treeControl', 
'nvd3ChartDirectives','ngLoadingRequest','oitozero.ngSweetAlert','ngCookies','angular-underscore',
 'ngAnimate', 
'ui.sortable','angularBootstrapNavTree','toggle-switch','ngSanitize','ui.select']);

http://git-wip-us.apache.org/repos/asf/kylin/blob/c077eb4e/webapp/app/partials/cubeDesigner/advanced_settings.html
----------------------------------------------------------------------
diff --git a/webapp/app/partials/cubeDesigner/advanced_settings.html 
b/webapp/app/partials/cubeDesigner/advanced_settings.html
index cf9fb17..09b98f9 100755
--- a/webapp/app/partials/cubeDesigner/advanced_settings.html
+++ b/webapp/app/partials/cubeDesigner/advanced_settings.html
@@ -43,12 +43,18 @@
                   </td>
                   <td class="col-xs-8">
                     <!-- Dimensions -->
-                    <select ng-if="state.mode=='edit'" style="width: 100%"
-                            ng-model="aggregation_group.includes" chosen 
multiple
-                            
ng-change="refreshAggregationGroup(cubeMetaFrame.aggregation_groups, rowIndex, 
aggregation_group)"
-                            ng-options="rowkey_column.column as 
rowkey_column.column for rowkey_column in cubeMetaFrame.rowkey.rowkey_columns">
-                      <option value=""></option>
-                    </select>
+
+                    <ui-select
+                      autofocus="true"
+                      
on-select="refreshAggregationGroup(cubeMetaFrame.aggregation_groups, rowIndex, 
aggregation_group)"
+                      
on-remove="refreshAggregationGroup(cubeMetaFrame.aggregation_groups, rowIndex, 
aggregation_group)"
+                      ng-if="state.mode=='edit'" style="width: 100%" multiple 
ng-model="aggregation_group.includes">
+                     <ui-select-match placeholder="Select 
Column...">{{$item.column}}</ui-select-match>
+                      <ui-select-choices
+                      repeat="rowkey_column.column as rowkey_column in 
cubeMetaFrame.rowkey.rowkey_columns | filter:$select.search">
+                    {{rowkey_column.column}}
+                      </ui-select-choices>
+                    </ui-select>
 
                     <p ng-if="state.mode=='view'">
                       {{aggregation_group.includes}}</p>
@@ -62,12 +68,25 @@
                   </td>
                   <td class="col-xs-8">
                     <!-- Dimensions -->
-                    <select ng-if="state.mode=='edit'" style="width: 100%"
-                            
ng-model="aggregation_group.select_rule.mandatory_dims" chosen multiple
-                            
ng-change="refreshAggregationGroup(cubeMetaFrame.aggregation_groups, rowIndex, 
aggregation_group)"
-                            ng-options="column as column for column in 
aggregation_group.includes">
-                      <option value=""></option>
-                    </select>
+                    <!--<select ng-if="state.mode=='edit'" style="width: 
100%"-->
+                            
<!--ng-model="aggregation_group.select_rule.mandatory_dims" chosen multiple-->
+                            
<!--ng-change="refreshAggregationGroup(cubeMetaFrame.aggregation_groups, 
rowIndex, aggregation_group)"-->
+                            <!--ng-options="column as column for column in 
aggregation_group.includes">-->
+                      <!--<option value=""></option>-->
+                    <!--</select>-->
+
+                    <ui-select
+                      autofocus="true"
+                      
on-select="refreshAggregationGroup(cubeMetaFrame.aggregation_groups, rowIndex, 
aggregation_group)"
+                      
on-remove="refreshAggregationGroup(cubeMetaFrame.aggregation_groups, rowIndex, 
aggregation_group)"
+                      ng-if="state.mode=='edit'" style="width: 100%" multiple 
ng-model="aggregation_group.select_rule.mandatory_dims">
+                      <ui-select-match placeholder="Select 
Column...">{{$item}}</ui-select-match>
+                      <ui-select-choices
+                        repeat="column in aggregation_group.includes | 
filter:$select.search">
+                        {{column}}
+                      </ui-select-choices>
+                    </ui-select>
+
                     <p ng-if="state.mode=='view'" style="word-wrap: 
break-word; word-break: normal;max-width: 1000px ">
                       {{aggregation_group.select_rule.mandatory_dims}}</p>
                   </td>
@@ -85,12 +104,24 @@
                       <tr class="row" ng-repeat="hierarchyDims in 
aggregation_group.select_rule.hierarchy_dims track by $index">
                         <td class="col-xs-10">
                           <!-- Dimensions -->
-                          <select ng-if="state.mode=='edit'" style="width: 
100%"
-                                  ng-model="hierarchyDims" chosen multiple
-                                  
ng-change="refreshAggregationHierarchy(cubeMetaFrame.aggregation_groups, 
rowIndex, aggregation_group,$index,hierarchyDims)"
-                                  ng-options="column as column for column in 
aggregation_group.includes">
-                            <option value=""></option>
-                          </select>
+                          <!--<select ng-if="state.mode=='edit'" style="width: 
100%"-->
+                                  <!--ng-model="hierarchyDims" chosen 
multiple-->
+                                  
<!--ng-change="refreshAggregationHierarchy(cubeMetaFrame.aggregation_groups, 
rowIndex, aggregation_group,$index,hierarchyDims)"-->
+                                  <!--ng-options="column as column for column 
in aggregation_group.includes">-->
+                            <!--<option value=""></option>-->
+                          <!--</select>-->
+
+                          <ui-select
+                            autofocus="true"
+                            
on-select="refreshAggregationHierarchy(cubeMetaFrame.aggregation_groups, 
rowIndex, aggregation_group,$index,hierarchyDims)"
+                            
on-remove="refreshAggregationHierarchy(cubeMetaFrame.aggregation_groups, 
rowIndex, aggregation_group,$index,hierarchyDims)"
+                            ng-if="state.mode=='edit'" style="width: 100%" 
multiple ng-model="hierarchyDims">
+                            <ui-select-match placeholder="Select 
Column...">{{$item}}</ui-select-match>
+                            <ui-select-choices
+                              repeat="column in aggregation_group.includes | 
filter:$select.search">
+                              {{column}}
+                            </ui-select-choices>
+                          </ui-select>
                           <p ng-if="state.mode=='view'" style="word-wrap: 
break-word; word-break: normal;max-width: 1000px ">
                             {{hierarchyDims}}</p>
 
@@ -125,12 +156,17 @@
                       <tr class="row" ng-repeat="jointDims in 
aggregation_group.select_rule.joint_dims track by $index">
                         <td class="col-xs-10">
                           <!-- Dimensions -->
-                          <select ng-if="state.mode=='edit'" style="width: 
100%"
-                                  ng-model="jointDims" chosen multiple
-                                  
ng-change="refreshAggregationJoint(cubeMetaFrame.aggregation_groups, rowIndex, 
aggregation_group,$index,jointDims)"
-                                  ng-options="column as column for column in 
aggregation_group.includes">
-                            <option value=""></option>
-                          </select>
+                          <ui-select
+                            autofocus="true"
+                            
on-select="refreshAggregationJoint(cubeMetaFrame.aggregation_groups, rowIndex, 
aggregation_group,$index,jointDims)"
+                            
on-remove="refreshAggregationJoint(cubeMetaFrame.aggregation_groups, rowIndex, 
aggregation_group,$index,jointDims)"
+                            ng-if="state.mode=='edit'" style="width: 100%" 
multiple ng-model="jointDims">
+                            <ui-select-match placeholder="Select 
Column...">{{$item}}</ui-select-match>
+                            <ui-select-choices
+                              repeat="column in aggregation_group.includes | 
filter:$select.search">
+                              {{column}}
+                            </ui-select-choices>
+                          </ui-select>
                           <p ng-if="state.mode=='view'" style="word-wrap: 
break-word; word-break: normal;max-width: 1000px ">
                             {{jointDims}}</p>
                         </td>
@@ -216,13 +252,6 @@
               </select>
               <span 
ng-if="state.mode=='view'">{{rowkey_column.isDictionary}}</span>
 
-              <!--Use Dictionary-->
-              <!--<select ng-if="state.mode=='edit'" style="width:80px;"-->
-              <!--chosen ng-model="rowkey_column.encoding"-->
-              <!--ng-change="dictionaryUpdated(rowkey_column);"-->
-              <!--ng-options="dt.name as dt.value for dt in 
cubeConfig.dictionaries">-->
-              <!--<option value=""></option>-->
-              <!--</select>-->
             </td>
             <td>
               <!--Column Length -->

http://git-wip-us.apache.org/repos/asf/kylin/blob/c077eb4e/webapp/app/partials/cubeDesigner/info.html
----------------------------------------------------------------------
diff --git a/webapp/app/partials/cubeDesigner/info.html 
b/webapp/app/partials/cubeDesigner/info.html
index a2b2996..c9fee9b 100644
--- a/webapp/app/partials/cubeDesigner/info.html
+++ b/webapp/app/partials/cubeDesigner/info.html
@@ -26,7 +26,7 @@
                     <b>Model Name</b>
                   </label>
                   <div class="col-xs-12 col-sm-6"   
ng-class="{'has-error':forms.cube_info_form.model_name.$invalid && 
(forms.cube_info_form.model_name.$dirty||forms.cube_info_form.model_name.$sbumitted)}">
-                    <select chosen ng-model="cubeMetaFrame.model_name" 
ng-if="state.mode=='edit'"
+                    <select chosen ng-model="cubeMetaFrame.model_name" 
ng-if="cubeMode=='addNewCube'"
                             ng-options="model for model in 
modelsManager.modelNameList"
                             style="width:100%;"
                             name="model_name"
@@ -37,6 +37,8 @@
                       <option value=""> -- Choose Model -- </option>
                     </select>
 
+                    <input ng-model="cubeMetaFrame.model_name" 
ng-disabled="true" class="form-control" ng-if="cubeMode=='editExistCube'"/>
+
                     <small class="help-block" 
ng-show="forms.cube_info_form.model_name.$error.required && 
(forms.cube_info_form.model_name.$dirty||forms.cube_info_form.$sbumitted)">Model
 name is required.</small>
                     <span 
ng-if="state.mode=='view'">{{cubeMetaFrame.model_name}}</span>
                   </div>

http://git-wip-us.apache.org/repos/asf/kylin/blob/c077eb4e/webapp/app/partials/modelDesigner/model_dimensions.html
----------------------------------------------------------------------
diff --git a/webapp/app/partials/modelDesigner/model_dimensions.html 
b/webapp/app/partials/modelDesigner/model_dimensions.html
index c9aa04a..9574d2b 100644
--- a/webapp/app/partials/modelDesigner/model_dimensions.html
+++ b/webapp/app/partials/modelDesigner/model_dimensions.html
@@ -69,13 +69,16 @@
                             {{dimension.table}}
                     </td>
                     <td class="col-xs-9">
-                        <!-- Dimensions -->
-                        <select ng-if="state.mode=='edit'" style="width: 100%"
-                                
ng-model="modelsManager.selectedModel.dimensions[$index].columns" chosen 
multiple
-                                ng-change=""
-                                ng-options="column.name as column.name for 
column in getColumnsByTable(dimension.table)">
-                            <option value=""></option>
-                        </select>
+                      <ui-select
+                        ng-if="state.mode=='edit'" style="width: 100%"
+                        autofocus="true"
+                        
ng-model="modelsManager.selectedModel.dimensions[$index].columns" multiple>
+                        <ui-select-match placeholder="Select 
Column...">{{$item.name}}</ui-select-match>
+                        <ui-select-choices
+                          repeat="column.name as column in 
getColumnsByTable(dimension.table) | filter:$select.search">
+                          {{column.name}}
+                        </ui-select-choices>
+                      </ui-select>
                     </td>
                 </tr>
             </table>

http://git-wip-us.apache.org/repos/asf/kylin/blob/c077eb4e/webapp/app/partials/modelDesigner/model_measures.html
----------------------------------------------------------------------
diff --git a/webapp/app/partials/modelDesigner/model_measures.html 
b/webapp/app/partials/modelDesigner/model_measures.html
index 039132d..8dc551b 100644
--- a/webapp/app/partials/modelDesigner/model_measures.html
+++ b/webapp/app/partials/modelDesigner/model_measures.html
@@ -42,12 +42,19 @@
     </table>
     <div  ng-if="state.mode=='edit'" class="form-group" style="width: 100%">
         <h3 class="box-title">Select your measures</h3>
-        <select style="width: 100%"
-                ng-model="modelsManager.selectedModel.metrics"  chosen multiple
-                ng-change=""
-                ng-options="measure.name as measure.name for measure in 
getColumnsByTable(modelsManager.selectedModel.fact_table)">
-            <option value=""></option>
-        </select>
+
+      <ui-select
+        ng-if="state.mode=='edit'"
+        style="width: 100%"
+        autofocus="true"
+        ng-model="modelsManager.selectedModel.metrics" multiple>
+        <ui-select-match placeholder="Select 
Column...">{{$item.name}}</ui-select-match>
+          <ui-select-choices
+            repeat="measure.name as measure in 
getColumnsByTable(modelsManager.selectedModel.fact_table) | 
filter:$select.search">
+            {{measure.name}}
+          </ui-select-choices>
+      </ui-select>
+
     </div>
 </div>
 

http://git-wip-us.apache.org/repos/asf/kylin/blob/c077eb4e/webapp/bower.json
----------------------------------------------------------------------
diff --git a/webapp/bower.json b/webapp/bower.json
index ab3ad28..41144f9 100755
--- a/webapp/bower.json
+++ b/webapp/bower.json
@@ -3,7 +3,7 @@
   "version": "0.0.1",
   "dependencies": {
     "angular-bootstrap": "0.10.0",
-    "angular": "1.2.15",
+    "angular": "1.2.29",
     "angular-resource": "~1.3.12",
     "angular-route": "1.2.15",
     "ng-grid": "2.0.11",
@@ -30,14 +30,16 @@
     "angular-bootstrap-nav-tree": "*",
     "components-font-awesome": "~4.3.0",
     "bootstrap-sweetalert": "~0.4.3",
-    "angular-toggle-switch":"1.3.0"
+    "angular-toggle-switch":"1.3.0",
+    "angular-ui-select": "0.13.2",
+    "angular-sanitize": "1.2.18"
   },
   "devDependencies": {
     "less.js": "~1.4.0",
     "angular-mocks-unstable": "~1.1.5"
   },
   "resolutions": {
-    "angular": "1.2.15",
+    "angular": "1.2.29",
     "nvd3": "1.1.15-beta",
     "d3": "3.4.4",
     "moment": "2.4.0",

http://git-wip-us.apache.org/repos/asf/kylin/blob/c077eb4e/webapp/grunt.json
----------------------------------------------------------------------
diff --git a/webapp/grunt.json b/webapp/grunt.json
index ef56991..3219b5e 100755
--- a/webapp/grunt.json
+++ b/webapp/grunt.json
@@ -41,6 +41,8 @@
                 "app/components/jquery-ui/jquery-ui.min.js",
                 "app/components/angular-ui-sortable/sortable.js",
                 
"app/components/angular-toggle-switch/angular-toggle-switch.js",
+                "app/components/angular-ui-select/dist/select.js",
+                "app/components/angular-sanitize/angular-sanitize.js",
                 "tmp/js/scripts.js"
             ],
             "dest": "tmp/js/scripts.min.js"
@@ -63,6 +65,7 @@
                 "app/components/bootstrap-sweetalert/lib/sweet-alert.css",
                 "app/components/angular-bootstrap-nav-tree/dist/abn_tree.css",
                 
"app/components/angular-toggle-switch/angular-toggle-switch.css",
+                "app/components/angular-ui-select/dist/select.css",
                 "tmp/css/styles.css"
             ],
             "dest": "tmp/css/styles.min.css"

Reply via email to