浏览代码

HUE-4907 [editor] Provide a default value to parameters

jdesjean 8 年之前
父节点
当前提交
7117d596a5
共有 1 个文件被更改,包括 7 次插入6 次删除
  1. 7 6
      desktop/libs/notebook/src/notebook/static/notebook/js/notebook.ko.js

+ 7 - 6
desktop/libs/notebook/src/notebook/static/notebook/js/notebook.ko.js

@@ -639,7 +639,7 @@ var EditorViewModel = (function() {
       if (self.type() == 'pig') {
         matches = self.getPigParameters();
       } else {
-        var re = /(?:^|\W)\${(\w*\=?\w*)(?!\w)}/g;
+        var re = /(?:^|\W)\${(\w*\=?[\w\s]*)}/g;
         while (match = re.exec(self.statement_raw())) {
           if (match[1].indexOf('=') > -1) {
               var splittedName = match[1].split('=');
@@ -654,11 +654,16 @@ var EditorViewModel = (function() {
         return { name: match, defaultValue: matches[match] };
       });
     });
+    self.variableValues = {};
     self.variableNames.extend({ rateLimit: 150 });
     self.variableNames.subscribe(function (newVal) {
       var diffLengthVariables = self.variables().length - newVal.length;
       var needsMore = diffLengthVariables < 0;
       var needsLess = diffLengthVariables > 0;
+      self.variableValues = self.variables().reduce(function (variableValues, variable) {
+        variableValues[variable.name()] = variable.value();
+        return variableValues;
+      }, self.variableValues);
       if (needsMore) {
         for (var i = 0, length = Math.abs(diffLengthVariables); i < length; i++) {
           self.variables.push(ko.mapping.fromJS({ 'name': '', 'value': '', 'defaultValue': '' }));
@@ -666,15 +671,11 @@ var EditorViewModel = (function() {
       } else if (needsLess) {
         self.variables.splice(self.variables().length - diffLengthVariables, diffLengthVariables);
       }
-      var variableValues = self.variables().reduce(function (variableValues, variable) {
-        variableValues[variable.name()] = variable.value();
-        return variableValues;
-      },{});
       newVal.forEach(function (item, index) {
         var variable = self.variables()[index];
         variable.name(item.name);
         variable.defaultValue(item.defaultValue);
-        variable.value(variableValues[item.name] || "");
+        variable.value(self.variableValues[item.name] || variable.value() || "");
       });
     });
     self.statement = ko.computed(function () {