diff options
Diffstat (limited to 'plugins/SegmentEditor/angularjs/segment-generator/segmentgenerator.directive.js')
-rw-r--r-- | plugins/SegmentEditor/angularjs/segment-generator/segmentgenerator.directive.js | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/plugins/SegmentEditor/angularjs/segment-generator/segmentgenerator.directive.js b/plugins/SegmentEditor/angularjs/segment-generator/segmentgenerator.directive.js new file mode 100644 index 0000000000..25a0141f19 --- /dev/null +++ b/plugins/SegmentEditor/angularjs/segment-generator/segmentgenerator.directive.js @@ -0,0 +1,64 @@ +/*! + * Piwik - free/libre analytics platform + * + * @link http://piwik.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + */ + +/** + * Usage: + * <div piwik-segment-generator> + */ +(function () { + angular.module('piwikApp').directive('piwikSegmentGenerator', piwikSegmentGenerator); + + piwikSegmentGenerator.$inject = ['$document', 'piwik', '$filter', '$timeout']; + + function piwikSegmentGenerator($document, piwik, $filter, $timeout){ + var defaults = { + segmentDefinition: '', + addInitialCondition: false, + idsite: piwik.idSite + }; + + return { + restrict: 'A', + scope: { + segmentDefinition: '@', + addInitialCondition: '=', + idsite: '=' + }, + require: "?ngModel", + templateUrl: 'plugins/SegmentEditor/angularjs/segment-generator/segmentgenerator.directive.html?cb=' + piwik.cacheBuster, + controller: 'SegmentGeneratorController', + controllerAs: 'segmentGenerator', + compile: function (element, attrs) { + + for (var index in defaults) { + if (attrs[index] === undefined) { + attrs[index] = defaults[index]; + } + } + + return function (scope, element, attrs, ngModel) { + if (ngModel) { + ngModel.$render = function() { + scope.segmentDefinition = ngModel.$viewValue; + if (scope.segmentDefinition) { + scope.segmentGenerator.setSegmentString(scope.segmentDefinition); + } else { + scope.segmentGenerator.setSegmentString(''); + } + }; + } + + scope.$watch('segmentDefinition', function (newValue) { + if (ngModel) { + ngModel.$setViewValue(newValue); + } + }); + }; + } + }; + } +})();
\ No newline at end of file |