Yangman - fix parameters import 10/42310/4
authormichal.kovacik <mikovaci@cisco.com>
Fri, 22 Jul 2016 12:11:57 +0000 (14:11 +0200)
committerDaniel Malachovsky <dmalacho@cisco.com>
Mon, 25 Jul 2016 08:43:15 +0000 (10:43 +0200)
-'on-read-file' directive added

Change-Id: Ic041f14a8f0082c5b34607c4238d2ef167f3564e
Signed-off-by: michal.kovacik <mikovaci@cisco.com>
modules/yangman-resources/src/main/resources/yangman/controllers/yangman.controller.js
modules/yangman-resources/src/main/resources/yangman/directives/read_file.directive.js [new file with mode: 0644]

index 9452c04910f3c7885a8291664d5d332fce878fb9..421c1e84a5c42c99b44a920cc67a1f3104f52f04 100644 (file)
@@ -13,6 +13,7 @@ define([
     'app/yangman/services/parameters.services',
     'app/yangman/services/plugins-unsetter.services',
     'app/yangman/directives/ui-codemirror.directive',
+    'app/yangman/directives/read_file.directive',
 ], function () {
     'use strict';
 
diff --git a/modules/yangman-resources/src/main/resources/yangman/directives/read_file.directive.js b/modules/yangman-resources/src/main/resources/yangman/directives/read_file.directive.js
new file mode 100644 (file)
index 0000000..c5a8fa3
--- /dev/null
@@ -0,0 +1,29 @@
+define([], function () {
+    'use strict';
+
+    angular.module('app.yangman').directive('onReadFile', readFileDirective);
+
+    readFileDirective.$inject = ['$parse'];
+
+    function readFileDirective($parse) {
+        return {
+            restrict: 'A',
+            scope: false,
+            link: function (scope, element, attrs) {
+                var fn = $parse(attrs.onReadFile);
+
+                element.on('change', function (onChangeEvent) {
+                    var reader = new FileReader();
+
+                    reader.onload = function (onLoadEvent) {
+                        scope.$apply(function () {
+                            fn(scope, { $fileContent: onLoadEvent.target.result });
+                        });
+                    };
+
+                    reader.readAsText((onChangeEvent.srcElement || onChangeEvent.target).files[0]);
+                });
+            },
+        };
+    }
+});