|
|
@ -29,6 +29,8 @@ function (angular, _, $) { |
|
|
|
var $funcControls = $(funcControlsTemplate); |
|
|
|
var $funcControls = $(funcControlsTemplate); |
|
|
|
var func = $scope.func; |
|
|
|
var func = $scope.func; |
|
|
|
var funcDef = func.def; |
|
|
|
var funcDef = func.def; |
|
|
|
|
|
|
|
var scheduledRelink = false; |
|
|
|
|
|
|
|
var paramCountAtLink = 0; |
|
|
|
|
|
|
|
|
|
|
|
function clickFuncParam(paramIndex) { |
|
|
|
function clickFuncParam(paramIndex) { |
|
|
|
/*jshint validthis:true */ |
|
|
|
/*jshint validthis:true */ |
|
|
@ -51,16 +53,32 @@ function (angular, _, $) { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function scheduledRelinkIfNeeded() { |
|
|
|
|
|
|
|
if (paramCountAtLink === func.params.length) { |
|
|
|
|
|
|
|
return; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!scheduledRelink) { |
|
|
|
|
|
|
|
scheduledRelink = true; |
|
|
|
|
|
|
|
setTimeout(function() { |
|
|
|
|
|
|
|
relink(); |
|
|
|
|
|
|
|
scheduledRelink = false; |
|
|
|
|
|
|
|
}, 200); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function inputBlur(paramIndex) { |
|
|
|
function inputBlur(paramIndex) { |
|
|
|
/*jshint validthis:true */ |
|
|
|
/*jshint validthis:true */ |
|
|
|
|
|
|
|
|
|
|
|
var $input = $(this); |
|
|
|
var $input = $(this); |
|
|
|
var $link = $input.prev(); |
|
|
|
var $link = $input.prev(); |
|
|
|
|
|
|
|
|
|
|
|
if ($input.val() !== '') { |
|
|
|
if ($input.val() !== '' || func.def.params[paramIndex].optional) { |
|
|
|
$link.text($input.val()); |
|
|
|
$link.text($input.val()); |
|
|
|
|
|
|
|
|
|
|
|
func.updateParam($input.val(), paramIndex); |
|
|
|
func.updateParam($input.val(), paramIndex); |
|
|
|
|
|
|
|
scheduledRelinkIfNeeded(); |
|
|
|
|
|
|
|
|
|
|
|
$scope.$apply($scope.targetChanged);
|
|
|
|
$scope.$apply($scope.targetChanged);
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -129,9 +147,19 @@ function (angular, _, $) { |
|
|
|
$funcLink.appendTo(elem); |
|
|
|
$funcLink.appendTo(elem); |
|
|
|
|
|
|
|
|
|
|
|
_.each(funcDef.params, function(param, index) { |
|
|
|
_.each(funcDef.params, function(param, index) { |
|
|
|
|
|
|
|
if (param.optional && !func.params[index]) { |
|
|
|
|
|
|
|
return; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (index > 0) { |
|
|
|
|
|
|
|
$('<span>, </span>').appendTo(elem); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
var $paramLink = $('<a ng-click="" class="graphite-func-param-link">' + func.params[index] + '</a>'); |
|
|
|
var $paramLink = $('<a ng-click="" class="graphite-func-param-link">' + func.params[index] + '</a>'); |
|
|
|
var $input = $(paramTemplate); |
|
|
|
var $input = $(paramTemplate); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
paramCountAtLink++; |
|
|
|
|
|
|
|
|
|
|
|
$paramLink.appendTo(elem); |
|
|
|
$paramLink.appendTo(elem); |
|
|
|
$input.appendTo(elem); |
|
|
|
$input.appendTo(elem); |
|
|
|
|
|
|
|
|
|
|
@ -140,10 +168,6 @@ function (angular, _, $) { |
|
|
|
$input.keypress(_.partial(inputKeyPress, index)); |
|
|
|
$input.keypress(_.partial(inputKeyPress, index)); |
|
|
|
$paramLink.click(_.partial(clickFuncParam, index)); |
|
|
|
$paramLink.click(_.partial(clickFuncParam, index)); |
|
|
|
|
|
|
|
|
|
|
|
if (index !== funcDef.params.length - 1) { |
|
|
|
|
|
|
|
$('<span>, </span>').appendTo(elem); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (funcDef.params[index].options) { |
|
|
|
if (funcDef.params[index].options) { |
|
|
|
addTypeahead($input, index); |
|
|
|
addTypeahead($input, index); |
|
|
|
} |
|
|
|
} |
|
|
@ -200,10 +224,16 @@ function (angular, _, $) { |
|
|
|
}); |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
addElementsAndCompile(); |
|
|
|
function relink() { |
|
|
|
ifJustAddedFocusFistParam(); |
|
|
|
elem.children().remove(); |
|
|
|
registerFuncControlsToggle(); |
|
|
|
|
|
|
|
registerFuncControlsActions(); |
|
|
|
addElementsAndCompile(); |
|
|
|
|
|
|
|
ifJustAddedFocusFistParam(); |
|
|
|
|
|
|
|
registerFuncControlsToggle(); |
|
|
|
|
|
|
|
registerFuncControlsActions();
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
relink(); |
|
|
|
} |
|
|
|
} |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|