Explorar o código

HUE-2508 [pig] Support %default parameters in the submission popup

%default are like parameters but with a default value.
The user can choose to keep the default value or override in submission
popup. We display the default value in the popup.

e.g.
%default CMD2 `$mycmd $date`;

Will prompt for CMD2 with a default value of `$mycmd $date`.
Romain Rigaux %!s(int64=10) %!d(string=hai) anos
pai
achega
a2bde97
Modificáronse 1 ficheiros con 14 adicións e 4 borrados
  1. 14 4
      apps/pig/src/pig/static/pig/js/pig.ko.js

+ 14 - 4
apps/pig/src/pig/static/pig/js/pig.ko.js

@@ -70,6 +70,7 @@ var PigScript = function (pigScript) {
     var params = {};
     var variables = this.script().match(/([^\\]|^)\$[^\d'"](\w*)/g);
     var declares = this.script().match(/%declare +([^ ])+/gi);
+    var defaults = this.script().match(/%default +([^;])+/gi);
     var macro_defines = this.script().match(/define [^ ]+ *\(([^\)]*)\)/gi); // no multiline
     var macro_returns = this.script().match(/returns +([^\{]*)/gi); // no multiline
 
@@ -81,10 +82,19 @@ var PigScript = function (pigScript) {
     }
     if (declares) {
       $.each(declares, function(index, param) {
-    	param = param.match(/(\w+)/g);
-    	if (param && param.length >= 2) {
-    	  delete params[param[1]];
-    	}
+        param = param.match(/(\w+)/g);
+        if (param && param.length >= 2) {
+          delete params[param[1]];
+        }
+      });
+    }
+    if (defaults) {
+      $.each(defaults, function(index, param) {
+        var line = param.match(/(\w+)/g);
+        if (line && line.length >= 2) {
+          var name = line[1];
+          params[name] = param.substring(param.indexOf(name) + name.length + 1);
+        }
       });
     }
     if (macro_defines) {