Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/SegmentEditor/angularjs/segment-generator/segmentgenerator.directive.js')
-rw-r--r--plugins/SegmentEditor/angularjs/segment-generator/segmentgenerator.directive.js64
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