OSDN Git Service

Implemeted Console service
authorhimetani_cafe <fumifumi@yasunaga-lab.bio.kyutech.ac.jp>
Sun, 3 Apr 2016 09:19:38 +0000 (18:19 +0900)
committerhimetani_cafe <fumifumi@yasunaga-lab.bio.kyutech.ac.jp>
Sun, 3 Apr 2016 09:19:38 +0000 (18:19 +0900)
 Please enter the commit message for your changes. Lines starting
 with '' will be ignored, and an empty message aborts the commit.
 On branch master
 Changes to be committed:
modified:   app/scripts/App.ts
modified:   app/scripts/directives/Command.ts
modified:   app/scripts/entry.ts
modified:   app/scripts/reference.ts
new file:   app/scripts/services/Console.ts
deleted:    app/scripts/util.ts
modified:   dist/bundle.js

 Changes not staged for commit:
deleted:    ../test/mocha/hoge.js

front-end/app/scripts/App.ts
front-end/app/scripts/directives/Command.ts
front-end/app/scripts/entry.ts
front-end/app/scripts/reference.ts
front-end/app/scripts/services/Console.ts [new file with mode: 0644]
front-end/app/scripts/util.ts [deleted file]
front-end/dist/bundle.js

index d6a9d6a..6c9d5ce 100644 (file)
@@ -38,6 +38,7 @@ namespace app {
     zephyr.service('APIEndPoint', services.APIEndPoint);
     zephyr.service('MyModal', services.MyModal);
     zephyr.service('WebSocket', services.WebSocket);
+    zephyr.service('Console', services.Console);
 
 
     zephyr.filter('Tag', filters.Tag);
index 150e3ad..edfca2b 100644 (file)
@@ -45,7 +45,7 @@ namespace app.directives {
 
     export class CommandController {
 
-        public static $inject = ['APIEndPoint', '$scope', 'MyModal', 'WebSocket', '$window', '$rootScope'];
+        public static $inject = ['APIEndPoint', '$scope', 'MyModal', 'WebSocket', '$window', '$rootScope', 'Console'];
 
         // From parent directive bindToController property
         private index: string;
@@ -64,12 +64,15 @@ namespace app.directives {
         private dirs: any;
         private messages: any;
 
+        private uuid: string; // uuid of Instance of Command directive
+
         constructor(private APIEndPoint: services.APIEndPoint, 
                     private $scope: ng.IScope, 
                     private MyModal: services.MyModal, 
                     private WebSocket: services.WebSocket,
                     private $window: ng.IWindowService,
-                    private $rootScope: ng.IRootScopeService
+                    private $rootScope: ng.IRootScopeService,
+                    private Console: services.Console
                    ) {
                        var controller = this;
 
@@ -97,14 +100,6 @@ namespace app.directives {
                            controller.isOpen = false;
                        });
 
-                       /** Add EventHandler
-                        * ここではCommandディレクティブが受け取る可能性のあるイベントを登録する。
-                        * 例えば、コマンドのヘルプやEosコマンドの実行時のCLIの出力はWebSocketサービスで受け取るので、
-                        WebSocketサービスからこのCommandディレクティブに対してemitされたメッセージをこのイベントハンドラで受け取る。
-
-                        イベントネームは生成されたCommandディレクティブにユニークなidをディレクティブが生成されるたびに生成し、
-                        Commandディレクティブが削除されるたびにそのイベントハンドラを破棄することとする。
-                        */
                        function guid() {
                            function s4() {
                                return Math.floor((1 + Math.random()) * 0x10000)
@@ -115,19 +110,15 @@ namespace app.directives {
                                s4() + '-' + s4() + s4() + s4();
                        }
 
-                       var uuid = guid();
+                       this.uuid = guid();
 
+                       this.Console.addDirective(this.uuid);
+                       this.Console.showIDs();
                        /*
-                       this.WebSocket.add(uuid);
                        this.$rootScope.on(uuid, function(msg) {
                            console.log(msg);
-                           /*
-                              var messages = msg.split('\n');
-                              if(messages[0].substr(0,6) === 'Usage:') {
-                              controller.messages = msg.split('\n');
-                              }
                        });
-                            */
+                       */
                    }
 
                    public submit() {
@@ -170,7 +161,9 @@ namespace app.directives {
 
                    public removeMySelf(index:number) {
                        this.$scope.$destroy();
+                       this.Console.removeDirective(this.uuid);
                        this.remove()(index,this.list);
+                       this.Console.showIDs();
                    }
 
                    private reloadFiles() {
@@ -189,8 +182,6 @@ namespace app.directives {
                    }
 
                    public debug() {
-                       console.log(this.$rootScope);
-
                        /*   Create console area
                         * 
                         */
index c91ec98..56eea81 100644 (file)
@@ -11,6 +11,7 @@ import './declares.ts';
 import './services/APIEndPoint.ts';
 import './services/MyModal.ts';
 import './services/WebSocket.ts';
+import './services/Console.ts';
 
 // directives
 import './directives/Option.ts';
index 0536f4d..f5815b9 100644 (file)
@@ -6,6 +6,7 @@
 /// <reference path="./services/APIEndPoint.ts" />
 /// <reference path="./services/MyModal.ts" />
 /// <reference path="./services/WebSocket.ts" />
+/// <reference path="./services/Console.ts" />
 
 /// <reference path="./directives/Command.ts" />
 /// <reference path="./directives/HeaderMenu.ts" />
diff --git a/front-end/app/scripts/services/Console.ts b/front-end/app/scripts/services/Console.ts
new file mode 100644 (file)
index 0000000..384a490
--- /dev/null
@@ -0,0 +1,42 @@
+namespace app.services{
+    export class Console {
+        private directiveIDs: string[];
+
+        constructor(private WebSocket: services.WebSocket,
+                    private $rootScope: ng.IRootScopeService
+                   ) {
+            this.WebSocket = WebSocket;
+            this.$rootScope = $rootScope;
+            this.directiveIDs = [];
+
+            const directiveIDs = this.directiveIDs;
+
+            this.WebSocket.on('console', (d) => {
+                const id = d.id;
+                const message = d.message;
+                
+
+                if(directiveIDs.indexOf(id) > -1) {
+                    $rootScope.$emit(id, message);
+                }
+            });
+        }
+
+        public addDirective(id: string) {
+            if(!(this.directiveIDs.indexOf(id) > -1)) {
+                this.directiveIDs.push(id); 
+            }
+        }
+
+        public removeDirective(id: string) {
+            const i = this.directiveIDs.indexOf(id);
+            if(i > -1) {
+                this.directiveIDs.splice(i,1);
+            }
+        }
+
+        public showIDs() {
+            console.log(this.directiveIDs);
+        }
+    }
+}
diff --git a/front-end/app/scripts/util.ts b/front-end/app/scripts/util.ts
deleted file mode 100644 (file)
index 1c4f6a7..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-export class CommandInfo{
-    name: string;
-
-    constructor(name: string) {
-        this.name = name;
-    }
-}
index b06e5c4..5d54595 100644 (file)
@@ -62,6 +62,7 @@
        __webpack_require__(19);
        __webpack_require__(20);
        __webpack_require__(21);
+       __webpack_require__(22);
 
 
 /***/ },
        })(app || (app = {}));
        var app;
        (function (app) {
+           var services;
+           (function (services) {
+               var Console = (function () {
+                   function Console(WebSocket, $rootScope) {
+                       this.WebSocket = WebSocket;
+                       this.$rootScope = $rootScope;
+                       this.WebSocket = WebSocket;
+                       this.$rootScope = $rootScope;
+                       this.directiveIDs = [];
+                       var directiveIDs = this.directiveIDs;
+                       this.WebSocket.on('console', function (d) {
+                           var id = d.id;
+                           var message = d.message;
+                           if (directiveIDs.indexOf(id) > -1) {
+                               $rootScope.$emit(id, message);
+                           }
+                       });
+                   }
+                   Console.prototype.addDirective = function (id) {
+                       if (!(this.directiveIDs.indexOf(id) > -1)) {
+                           this.directiveIDs.push(id);
+                       }
+                   };
+                   Console.prototype.removeDirective = function (id) {
+                       var i = this.directiveIDs.indexOf(id);
+                       if (i > -1) {
+                           this.directiveIDs.splice(i, 1);
+                       }
+                   };
+                   Console.prototype.showIDs = function () {
+                       console.log(this.directiveIDs);
+                   };
+                   return Console;
+               })();
+               services.Console = Console;
+           })(services = app.services || (app.services = {}));
+       })(app || (app = {}));
+       var app;
+       (function (app) {
            var directives;
            (function (directives) {
                var Command = (function () {
                })();
                directives.Command = Command;
                var CommandController = (function () {
-                   function CommandController(APIEndPoint, $scope, MyModal, WebSocket, $window, $rootScope) {
+                   function CommandController(APIEndPoint, $scope, MyModal, WebSocket, $window, $rootScope, Console) {
                        this.APIEndPoint = APIEndPoint;
                        this.$scope = $scope;
                        this.MyModal = MyModal;
                        this.WebSocket = WebSocket;
                        this.$window = $window;
                        this.$rootScope = $rootScope;
+                       this.Console = Console;
                        var controller = this;
                        this.APIEndPoint
                            .getOptionControlFile(this.name)
                            return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
                                s4() + '-' + s4() + s4() + s4();
                        }
-                       var uuid = guid();
+                       this.uuid = guid();
+                       this.Console.addDirective(this.uuid);
+                       this.Console.showIDs();
                    }
                    CommandController.prototype.submit = function () {
                        var opt = [];
                    };
                    CommandController.prototype.removeMySelf = function (index) {
                        this.$scope.$destroy();
+                       this.Console.removeDirective(this.uuid);
                        this.remove()(index, this.list);
+                       this.Console.showIDs();
                    };
                    CommandController.prototype.reloadFiles = function () {
                        var _this = this;
                        });
                    };
                    CommandController.prototype.debug = function () {
-                       console.log(this.$rootScope);
                        var div = angular.element(this.$window.document).find("div");
                        var consoleTag;
                        var parametersTag;
                            console.log(result);
                        });
                    };
-                   CommandController.$inject = ['APIEndPoint', '$scope', 'MyModal', 'WebSocket', '$window', '$rootScope'];
+                   CommandController.$inject = ['APIEndPoint', '$scope', 'MyModal', 'WebSocket', '$window', '$rootScope', 'Console'];
                    return CommandController;
                })();
                directives.CommandController = CommandController;
            app.zephyr.service('APIEndPoint', app.services.APIEndPoint);
            app.zephyr.service('MyModal', app.services.MyModal);
            app.zephyr.service('WebSocket', app.services.WebSocket);
+           app.zephyr.service('Console', app.services.Console);
            app.zephyr.filter('Tag', filters.Tag);
            app.zephyr.controller('selectCommandController', app.controllers.SelectCommand);
            app.zephyr.controller('previewController', app.controllers.Preview);
        })(app || (app = {}));
        var app;
        (function (app) {
+           var services;
+           (function (services) {
+               var Console = (function () {
+                   function Console(WebSocket, $rootScope) {
+                       this.WebSocket = WebSocket;
+                       this.$rootScope = $rootScope;
+                       this.WebSocket = WebSocket;
+                       this.$rootScope = $rootScope;
+                       this.directiveIDs = [];
+                       var directiveIDs = this.directiveIDs;
+                       this.WebSocket.on('console', function (d) {
+                           var id = d.id;
+                           var message = d.message;
+                           if (directiveIDs.indexOf(id) > -1) {
+                               $rootScope.$emit(id, message);
+                           }
+                       });
+                   }
+                   Console.prototype.addDirective = function (id) {
+                       if (!(this.directiveIDs.indexOf(id) > -1)) {
+                           this.directiveIDs.push(id);
+                       }
+                   };
+                   Console.prototype.removeDirective = function (id) {
+                       var i = this.directiveIDs.indexOf(id);
+                       if (i > -1) {
+                           this.directiveIDs.splice(i, 1);
+                       }
+                   };
+                   Console.prototype.showIDs = function () {
+                       console.log(this.directiveIDs);
+                   };
+                   return Console;
+               })();
+               services.Console = Console;
+           })(services = app.services || (app.services = {}));
+       })(app || (app = {}));
+       var app;
+       (function (app) {
+           var directives;
+           (function (directives) {
+               var Command = (function () {
+                   function Command() {
+                       this.restrict = 'E';
+                       this.replace = true;
+                       this.scope = true;
+                       this.controller = 'commandController';
+                       this.controllerAs = 'ctrl';
+                       this.bindToController = {
+                           index: '=',
+                           name: '=',
+                           remove: '&',
+                           list: '='
+                       };
+                       this.templateUrl = 'templates/command.html';
+                   }
+                   Command.Factory = function () {
+                       var directive = function () {
+                           return new Command();
+                       };
+                       directive.$inject = [];
+                       return directive;
+                   };
+                   return Command;
+               })();
+               directives.Command = Command;
+               var CommandController = (function () {
+                   function CommandController(APIEndPoint, $scope, MyModal, WebSocket, $window, $rootScope, Console) {
+                       this.APIEndPoint = APIEndPoint;
+                       this.$scope = $scope;
+                       this.MyModal = MyModal;
+                       this.WebSocket = WebSocket;
+                       this.$window = $window;
+                       this.$rootScope = $rootScope;
+                       this.Console = Console;
+                       var controller = this;
+                       this.APIEndPoint
+                           .getOptionControlFile(this.name)
+                           .$promise
+                           .then(function (result) {
+                           controller.options = result.info;
+                       });
+                       this.APIEndPoint
+                           .getDirectories()
+                           .$promise
+                           .then(function (result) {
+                           controller.dirs = result.info;
+                       });
+                       this.heading = "[" + this.index + "]: dcdFilePrint";
+                       this.isOpen = true;
+                       this.$scope.$on('close', function () {
+                           controller.isOpen = false;
+                       });
+                       function guid() {
+                           function s4() {
+                               return Math.floor((1 + Math.random()) * 0x10000)
+                                   .toString(16)
+                                   .substring(1);
+                           }
+                           return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
+                               s4() + '-' + s4() + s4() + s4();
+                       }
+                       this.uuid = guid();
+                       this.Console.addDirective(this.uuid);
+                       this.Console.showIDs();
+                   }
+                   CommandController.prototype.submit = function () {
+                       var opt = [];
+                       angular.forEach(this.options, function (option) {
+                           var obj = {
+                               name: option.option,
+                               arguments: []
+                           };
+                           angular.forEach(option.arg, function (arg) {
+                               if (arg.input) {
+                                   if (typeof arg.input === 'object') {
+                                       obj.arguments.push(arg.input.name);
+                                   }
+                                   else {
+                                       obj.arguments.push(arg.input);
+                                   }
+                               }
+                           });
+                           if (obj.arguments.length > 0) {
+                               opt.push(obj);
+                           }
+                       });
+                       var execObj = {
+                           command: this.name,
+                           workspace: this.workspace.fileId,
+                           options: opt
+                       };
+                       this.APIEndPoint
+                           .execute(JSON.stringify(execObj))
+                           .then(function (result) {
+                           console.log(result);
+                       });
+                   };
+                   CommandController.prototype.removeMySelf = function (index) {
+                       this.$scope.$destroy();
+                       this.Console.removeDirective(this.uuid);
+                       this.remove()(index, this.list);
+                       this.Console.showIDs();
+                   };
+                   CommandController.prototype.reloadFiles = function () {
+                       var _this = this;
+                       var fileId = this.workspace.fileId;
+                       this.APIEndPoint
+                           .getFiles(fileId)
+                           .$promise
+                           .then(function (result) {
+                           var status = result.status;
+                           if (status === 'success') {
+                               _this.files = result.info;
+                           }
+                           else {
+                               console.log(result.message);
+                           }
+                       });
+                   };
+                   CommandController.prototype.debug = function () {
+                       var div = angular.element(this.$window.document).find("div");
+                       var consoleTag;
+                       var parametersTag;
+                       angular.forEach(div, function (v) {
+                           if (v.className === "panel-body console") {
+                               consoleTag = v;
+                           }
+                           else if (v.className === "row parameters-console") {
+                               parametersTag = v;
+                           }
+                       });
+                       var consoleHeight = parseInt(parametersTag.clientHeight.toString().replace('px', '')) - 150 + 'px';
+                       var consoleWidth = parseInt(parametersTag.clientWidth.toString().replace('px', '')) / 3 * 2 - 150 + 'px';
+                       consoleTag.style.height = consoleHeight;
+                       consoleTag.style.width = consoleWidth;
+                   };
+                   CommandController.prototype.help = function () {
+                       this.APIEndPoint
+                           .help(this.name)
+                           .then(function (result) {
+                           console.log(result);
+                       });
+                   };
+                   CommandController.$inject = ['APIEndPoint', '$scope', 'MyModal', 'WebSocket', '$window', '$rootScope', 'Console'];
+                   return CommandController;
+               })();
+               directives.CommandController = CommandController;
+           })(directives = app.directives || (app.directives = {}));
+       })(app || (app = {}));
+       var app;
+       (function (app) {
+           var directives;
+           (function (directives) {
+               var HeaderMenu = (function () {
+                   function HeaderMenu() {
+                       this.restrict = 'E';
+                       this.replace = true;
+                       this.templateUrl = 'templates/header-menu.html';
+                       this.controller = 'HeaderMenuController';
+                       this.controllerAs = 'hmc';
+                       this.scope = true;
+                   }
+                   HeaderMenu.Factory = function () {
+                       var directive = function () {
+                           return new HeaderMenu();
+                       };
+                       return directive;
+                   };
+                   return HeaderMenu;
+               })();
+               directives.HeaderMenu = HeaderMenu;
+               var HeaderMenuController = (function () {
+                   function HeaderMenuController($state) {
+                       this.$state = $state;
+                       this.isExecution = this.$state.current.name === 'execution';
+                       this.isWorkspace = this.$state.current.name === 'workspace';
+                       this.isHistory = this.$state.current.name === 'history';
+                   }
+                   HeaderMenuController.prototype.transit = function (state) {
+                       this.$state.go(state);
+                   };
+                   HeaderMenuController.$inject = ['$state'];
+                   return HeaderMenuController;
+               })();
+               directives.HeaderMenuController = HeaderMenuController;
+           })(directives = app.directives || (app.directives = {}));
+       })(app || (app = {}));
+       var app;
+       (function (app) {
+           var directives;
+           (function (directives) {
+               var Option = (function () {
+                   function Option() {
+                       this.restrict = 'E';
+                       this.replace = true;
+                       this.controller = 'optionController';
+                       this.bindToController = {
+                           info: '=',
+                           files: '='
+                       };
+                       this.scope = true;
+                       this.templateUrl = 'templates/option.html';
+                       this.controllerAs = 'ctrl';
+                   }
+                   Option.Factory = function () {
+                       var directive = function () {
+                           return new Option();
+                       };
+                       directive.$inject = [];
+                       return directive;
+                   };
+                   return Option;
+               })();
+               directives.Option = Option;
+               var OptionController = (function () {
+                   function OptionController() {
+                       var controller = this;
+                       angular.forEach(controller.info.arg, function (arg) {
+                           if (arg.initialValue) {
+                               if (arg.formType === 'number') {
+                                   arg.input = parseInt(arg.initialValue);
+                               }
+                               else {
+                                   arg.input = arg.initialValue;
+                               }
+                           }
+                       });
+                   }
+                   OptionController.$inject = [];
+                   return OptionController;
+               })();
+               directives.OptionController = OptionController;
+           })(directives = app.directives || (app.directives = {}));
+       })(app || (app = {}));
+       var app;
+       (function (app) {
+           var directives;
+           (function (directives) {
+               var Directory = (function () {
+                   function Directory() {
+                       this.restrict = 'E';
+                       this.replace = true;
+                       this.controller = 'directoryController';
+                       this.controllerAs = 'ctrl';
+                       this.bindToController = {
+                           info: '=',
+                           add: '&',
+                           list: '=',
+                           files: '='
+                       };
+                       this.templateUrl = 'templates/directory.html';
+                   }
+                   Directory.Factory = function () {
+                       var directive = function () {
+                           return new Directory();
+                       };
+                       return directive;
+                   };
+                   return Directory;
+               })();
+               directives.Directory = Directory;
+               var DirectoryController = (function () {
+                   function DirectoryController(APIEndPoint, $scope) {
+                       this.APIEndPoint = APIEndPoint;
+                       this.$scope = $scope;
+                       var controller = this;
+                       this.APIEndPoint
+                           .getFiles(this.info.fileId)
+                           .$promise
+                           .then(function (result) {
+                           if (result.status === 'success') {
+                               controller.files = result.info;
+                               angular.forEach(result.info, function (file) {
+                                   if (file.fileType === '0') {
+                                       var o = file;
+                                       if (controller.info.path === '/') {
+                                           o.path = '/' + file.name;
+                                       }
+                                       else {
+                                           o.path = controller.info.path + '/' + file.name;
+                                       }
+                                       controller.add()(o, controller.list);
+                                   }
+                               });
+                           }
+                           ;
+                       });
+                   }
+                   DirectoryController.$inject = ['APIEndPoint', '$scope'];
+                   return DirectoryController;
+               })();
+               directives.DirectoryController = DirectoryController;
+           })(directives = app.directives || (app.directives = {}));
+       })(app || (app = {}));
+       var app;
+       (function (app) {
+           var controllers;
+           (function (controllers) {
+               var Execution = (function () {
+                   function Execution(MyModal, $scope) {
+                       this.MyModal = MyModal;
+                       this.$scope = $scope;
+                       this.commandInfoList = [];
+                   }
+                   ;
+                   Execution.prototype.add = function () {
+                       this.$scope.$broadcast('close');
+                       var commandInfoList = this.commandInfoList;
+                       var commandInstance = this.MyModal.selectCommand();
+                       commandInstance
+                           .result
+                           .then(function (command) {
+                           commandInfoList.push(new app.declares.CommandInfo(command));
+                       });
+                   };
+                   Execution.prototype.open = function () {
+                       var result = this.MyModal.open('SelectCommand');
+                       console.log(result);
+                   };
+                   Execution.prototype.remove = function (index, list) {
+                       list.splice(index, 1);
+                   };
+                   Execution.prototype.close = function () {
+                       console.log("close");
+                   };
+                   Execution.$inject = ['MyModal', '$scope'];
+                   return Execution;
+               })();
+               controllers.Execution = Execution;
+           })(controllers = app.controllers || (app.controllers = {}));
+       })(app || (app = {}));
+       var app;
+       (function (app) {
+           var controllers;
+           (function (controllers) {
+               var Workspace = (function () {
+                   function Workspace($scope, APIEndPoint, MyModal) {
+                       this.$scope = $scope;
+                       this.APIEndPoint = APIEndPoint;
+                       this.MyModal = MyModal;
+                       this.directoryList = [];
+                       var controller = this;
+                       var directoryList = this.directoryList;
+                       var o = {
+                           fileId: '1f83f620-c1ed-11e5-9657-7942989daa00',
+                           name: '',
+                           parentId: '',
+                           fileType: '',
+                           createdAt: '',
+                           updatedAt: '',
+                           path: '/'
+                       };
+                       directoryList.push(o);
+                   }
+                   Workspace.prototype.addDirectory = function (info, directoryList) {
+                       directoryList.push(info);
+                   };
+                   Workspace.prototype.debug = function () {
+                       this.MyModal.preview();
+                   };
+                   Workspace.$inject = ['$scope', 'APIEndPoint', 'MyModal'];
+                   return Workspace;
+               })();
+               controllers.Workspace = Workspace;
+           })(controllers = app.controllers || (app.controllers = {}));
+       })(app || (app = {}));
+       var app;
+       (function (app) {
+           var controllers;
+           (function (controllers) {
+               var History = (function () {
+                   function History($scope) {
+                       this.page = "History";
+                   }
+                   History.$inject = ['$scope'];
+                   return History;
+               })();
+               controllers.History = History;
+           })(controllers = app.controllers || (app.controllers = {}));
+       })(app || (app = {}));
+       var app;
+       (function (app) {
+           var controllers;
+           (function (controllers) {
+               var SelectCommand = (function () {
+                   function SelectCommand($scope, APIEndPoint, $modalInstance) {
+                       this.APIEndPoint = APIEndPoint;
+                       this.$modalInstance = $modalInstance;
+                       var controller = this;
+                       this.APIEndPoint
+                           .getTags()
+                           .$promise.then(function (result) {
+                           controller.tags = result.info;
+                       });
+                       this.APIEndPoint
+                           .getCommands()
+                           .$promise.then(function (result) {
+                           controller.commands = result.info;
+                       });
+                       this.currentTag = 'all';
+                   }
+                   SelectCommand.prototype.changeTag = function (tag) {
+                       this.currentTag = tag;
+                   };
+                   SelectCommand.prototype.selectCommand = function (command) {
+                       this.$modalInstance.close(command);
+                   };
+                   SelectCommand.$inject = ['$scope', 'APIEndPoint', '$uibModalInstance'];
+                   return SelectCommand;
+               })();
+               controllers.SelectCommand = SelectCommand;
+           })(controllers = app.controllers || (app.controllers = {}));
+       })(app || (app = {}));
+       var app;
+       (function (app) {
+           var controllers;
+           (function (controllers) {
+               var Preview = (function () {
+                   function Preview($scope, APIEndPoint, $modalInstance) {
+                       this.APIEndPoint = APIEndPoint;
+                       this.$modalInstance = $modalInstance;
+                       var controller = this;
+                       console.log('preview');
+                   }
+                   Preview.$inject = ['$scope', 'APIEndPoint', '$uibModalInstance'];
+                   return Preview;
+               })();
+               controllers.Preview = Preview;
+           })(controllers = app.controllers || (app.controllers = {}));
+       })(app || (app = {}));
+       var filters;
+       (function (filters) {
+           function Tag() {
+               return function (commands, tag) {
+                   var result = [];
+                   angular.forEach(commands, function (command) {
+                       var flag = false;
+                       angular.forEach(command.tags, function (value) {
+                           if (tag === value)
+                               flag = true;
+                       });
+                       if (flag)
+                           result.push(command);
+                   });
+                   return result;
+               };
+           }
+           filters.Tag = Tag;
+       })(filters || (filters = {}));
+       var app;
+       (function (app) {
+           'use strict';
+           var appName = 'zephyr';
+           app.zephyr = angular.module(appName, ['ui.router', 'ngResource', 'ui.bootstrap']);
+           app.zephyr.config(function ($stateProvider, $urlRouterProvider, $locationProvider) {
+               $urlRouterProvider.otherwise('/execution');
+               $locationProvider.html5Mode({
+                   enabled: true,
+                   requireBase: false
+               });
+               $stateProvider
+                   .state('execution', {
+                   url: '/execution',
+                   templateUrl: 'templates/execution.html',
+                   controller: 'executionController',
+                   controllerAs: 'c'
+               })
+                   .state('workspace', {
+                   url: '/workspace',
+                   templateUrl: 'templates/workspace.html',
+                   controller: 'workspaceController',
+                   controllerAs: 'c'
+               })
+                   .state('history', {
+                   url: '/history',
+                   templateUrl: 'templates/history.html',
+                   controller: 'historyController',
+                   controllerAs: 'c'
+               });
+           });
+           app.zephyr.service('APIEndPoint', app.services.APIEndPoint);
+           app.zephyr.service('MyModal', app.services.MyModal);
+           app.zephyr.service('WebSocket', app.services.WebSocket);
+           app.zephyr.service('Console', app.services.Console);
+           app.zephyr.filter('Tag', filters.Tag);
+           app.zephyr.controller('selectCommandController', app.controllers.SelectCommand);
+           app.zephyr.controller('previewController', app.controllers.Preview);
+           app.zephyr.controller('executionController', app.controllers.Execution);
+           app.zephyr.controller('workspaceController', app.controllers.Workspace);
+           app.zephyr.controller('historyController', app.controllers.History);
+           app.zephyr.controller('commandController', app.directives.CommandController);
+           app.zephyr.controller('optionController', app.directives.OptionController);
+           app.zephyr.controller('directoryController', app.directives.DirectoryController);
+           app.zephyr.controller('HeaderMenuController', app.directives.HeaderMenuController);
+           app.zephyr.directive('headerMenu', app.directives.HeaderMenu.Factory());
+           app.zephyr.directive('command', app.directives.Command.Factory());
+           app.zephyr.directive('option', app.directives.Option.Factory());
+           app.zephyr.directive('directory', app.directives.Directory.Factory());
+       })(app || (app = {}));
+
+
+/***/ },
+/* 10 */
+/***/ function(module, exports) {
+
+       var app;
+       (function (app) {
+           var declares;
+           (function (declares) {
+               var CommandInfo = (function () {
+                   function CommandInfo(name) {
+                       this.name = name;
+                   }
+                   return CommandInfo;
+               })();
+               declares.CommandInfo = CommandInfo;
+           })(declares = app.declares || (app.declares = {}));
+       })(app || (app = {}));
+       var app;
+       (function (app) {
+           var services;
+           (function (services) {
+               var APIEndPoint = (function () {
+                   function APIEndPoint($resource, $http) {
+                       this.$resource = $resource;
+                       this.$http = $http;
+                   }
+                   APIEndPoint.prototype.resource = function (endPoint, data) {
+                       var customAction = {
+                           method: 'GET',
+                           isArray: false
+                       };
+                       var execute = {
+                           method: 'POST',
+                           headers: { 'Content-Type': undefined, enctype: 'multipart/form-data' }
+                       };
+                       return this.$resource(endPoint, {}, { execute: execute });
+                   };
+                   APIEndPoint.prototype.getOptionControlFile = function (command) {
+                       var endPoint = '/api/v1/optionControlFile/' + command;
+                       return this.resource(endPoint, {}).get();
+                   };
+                   APIEndPoint.prototype.getFiles = function (fileId) {
+                       var endPoint = '/api/v1/workspace';
+                       if (fileId) {
+                           endPoint += '/' + fileId;
+                       }
+                       return this.resource(endPoint, {}).get();
+                   };
+                   APIEndPoint.prototype.getDirectories = function () {
+                       var endPoint = '/api/v1/all/workspace/directory';
+                       return this.resource(endPoint, {}).get();
+                   };
+                   APIEndPoint.prototype.getTags = function () {
+                       var endPoint = '/api/v1/tagList';
+                       return this.resource(endPoint, {}).get();
+                   };
+                   APIEndPoint.prototype.getCommands = function () {
+                       var endPoint = '/api/v1/commandList';
+                       return this.resource(endPoint, {}).get();
+                   };
+                   APIEndPoint.prototype.execute = function (data) {
+                       var endPoint = '/api/v1/execution';
+                       var fd = new FormData();
+                       fd.append('data', data);
+                       return this.$http.post(endPoint, fd, {
+                           headers: { 'Content-Type': undefined },
+                           transformRequest: angular.identity
+                       });
+                   };
+                   APIEndPoint.prototype.debug = function () {
+                       var endPoint = '/api/v1/debug';
+                       return this.$http.get(endPoint);
+                   };
+                   APIEndPoint.prototype.help = function (command) {
+                       var endPoint = '/api/v1/help/' + command;
+                       return this.$http.get(endPoint);
+                   };
+                   return APIEndPoint;
+               })();
+               services.APIEndPoint = APIEndPoint;
+           })(services = app.services || (app.services = {}));
+       })(app || (app = {}));
+       var app;
+       (function (app) {
+           var services;
+           (function (services) {
+               var MyModal = (function () {
+                   function MyModal($uibModal) {
+                       this.$uibModal = $uibModal;
+                       this.modalOption = {
+                           backdrop: true,
+                           controller: null,
+                           templateUrl: null,
+                           size: null
+                       };
+                   }
+                   MyModal.prototype.open = function (modalName) {
+                       if (modalName === 'SelectCommand') {
+                           this.modalOption.templateUrl = 'templates/select-command.html';
+                           this.modalOption.size = 'lg';
+                       }
+                       return this.$uibModal.open(this.modalOption);
+                   };
+                   MyModal.prototype.selectCommand = function () {
+                       this.modalOption.templateUrl = 'templates/select-command.html';
+                       this.modalOption.controller = 'selectCommandController';
+                       this.modalOption.controllerAs = 'c';
+                       this.modalOption.size = 'lg';
+                       return this.$uibModal.open(this.modalOption);
+                   };
+                   MyModal.prototype.preview = function () {
+                       this.modalOption.templateUrl = 'templates/preview.html';
+                       this.modalOption.controller = 'previewController';
+                       this.modalOption.controllerAs = 'c';
+                       this.modalOption.size = 'lg';
+                       return this.$uibModal.open(this.modalOption);
+                   };
+                   MyModal.$inject = ['$uibModal'];
+                   return MyModal;
+               })();
+               services.MyModal = MyModal;
+           })(services = app.services || (app.services = {}));
+       })(app || (app = {}));
+       var app;
+       (function (app) {
+           var services;
+           (function (services) {
+               var WebSocket = (function () {
+                   function WebSocket($rootScope) {
+                       this.$rootScope = $rootScope;
+                       this.socket = io.connect();
+                   }
+                   WebSocket.prototype.on = function (eventName, callback) {
+                       var socket = this.socket;
+                       var rootScope = this.$rootScope;
+                       socket.on(eventName, function () {
+                           var args = arguments;
+                           rootScope.$apply(function () {
+                               callback.apply(socket, args);
+                           });
+                       });
+                   };
+                   WebSocket.prototype.emit = function (eventName, data, callback) {
+                       var socket = this.socket;
+                       var rootScope = this.$rootScope;
+                       this.socket.emit(eventName, data, function () {
+                           var args = arguments;
+                           rootScope.$apply(function () {
+                               if (callback)
+                                   callback.apply(socket, args);
+                           });
+                       });
+                   };
+                   return WebSocket;
+               })();
+               services.WebSocket = WebSocket;
+           })(services = app.services || (app.services = {}));
+       })(app || (app = {}));
+       var app;
+       (function (app) {
+           var services;
+           (function (services) {
+               var Console = (function () {
+                   function Console(WebSocket, $rootScope) {
+                       this.WebSocket = WebSocket;
+                       this.$rootScope = $rootScope;
+                       this.WebSocket = WebSocket;
+                       this.$rootScope = $rootScope;
+                       this.directiveIDs = [];
+                       var directiveIDs = this.directiveIDs;
+                       this.WebSocket.on('console', function (d) {
+                           var id = d.id;
+                           var message = d.message;
+                           if (directiveIDs.indexOf(id) > -1) {
+                               $rootScope.$emit(id, message);
+                           }
+                       });
+                   }
+                   Console.prototype.addDirective = function (id) {
+                       if (!(this.directiveIDs.indexOf(id) > -1)) {
+                           this.directiveIDs.push(id);
+                       }
+                   };
+                   Console.prototype.removeDirective = function (id) {
+                       var i = this.directiveIDs.indexOf(id);
+                       if (i > -1) {
+                           this.directiveIDs.splice(i, 1);
+                       }
+                   };
+                   Console.prototype.showIDs = function () {
+                       console.log(this.directiveIDs);
+                   };
+                   return Console;
+               })();
+               services.Console = Console;
+           })(services = app.services || (app.services = {}));
+       })(app || (app = {}));
+       var app;
+       (function (app) {
            var directives;
            (function (directives) {
                var Command = (function () {
                })();
                directives.Command = Command;
                var CommandController = (function () {
-                   function CommandController(APIEndPoint, $scope, MyModal, WebSocket, $window, $rootScope) {
+                   function CommandController(APIEndPoint, $scope, MyModal, WebSocket, $window, $rootScope, Console) {
                        this.APIEndPoint = APIEndPoint;
                        this.$scope = $scope;
                        this.MyModal = MyModal;
                        this.WebSocket = WebSocket;
                        this.$window = $window;
                        this.$rootScope = $rootScope;
+                       this.Console = Console;
                        var controller = this;
                        this.APIEndPoint
                            .getOptionControlFile(this.name)
                            return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
                                s4() + '-' + s4() + s4() + s4();
                        }
-                       var uuid = guid();
+                       this.uuid = guid();
+                       this.Console.addDirective(this.uuid);
+                       this.Console.showIDs();
                    }
                    CommandController.prototype.submit = function () {
                        var opt = [];
                    };
                    CommandController.prototype.removeMySelf = function (index) {
                        this.$scope.$destroy();
+                       this.Console.removeDirective(this.uuid);
                        this.remove()(index, this.list);
+                       this.Console.showIDs();
                    };
                    CommandController.prototype.reloadFiles = function () {
                        var _this = this;
                        });
                    };
                    CommandController.prototype.debug = function () {
-                       console.log(this.$rootScope);
                        var div = angular.element(this.$window.document).find("div");
                        var consoleTag;
                        var parametersTag;
                            console.log(result);
                        });
                    };
-                   CommandController.$inject = ['APIEndPoint', '$scope', 'MyModal', 'WebSocket', '$window', '$rootScope'];
+                   CommandController.$inject = ['APIEndPoint', '$scope', 'MyModal', 'WebSocket', '$window', '$rootScope', 'Console'];
                    return CommandController;
                })();
                directives.CommandController = CommandController;
            app.zephyr.service('APIEndPoint', app.services.APIEndPoint);
            app.zephyr.service('MyModal', app.services.MyModal);
            app.zephyr.service('WebSocket', app.services.WebSocket);
+           app.zephyr.service('Console', app.services.Console);
            app.zephyr.filter('Tag', filters.Tag);
            app.zephyr.controller('selectCommandController', app.controllers.SelectCommand);
            app.zephyr.controller('previewController', app.controllers.Preview);
 
 
 /***/ },
-/* 10 */
+/* 11 */
 /***/ function(module, exports) {
 
        var app;
        })(app || (app = {}));
        var app;
        (function (app) {
+           var services;
+           (function (services) {
+               var Console = (function () {
+                   function Console(WebSocket, $rootScope) {
+                       this.WebSocket = WebSocket;
+                       this.$rootScope = $rootScope;
+                       this.WebSocket = WebSocket;
+                       this.$rootScope = $rootScope;
+                       this.directiveIDs = [];
+                       var directiveIDs = this.directiveIDs;
+                       this.WebSocket.on('console', function (d) {
+                           var id = d.id;
+                           var message = d.message;
+                           if (directiveIDs.indexOf(id) > -1) {
+                               $rootScope.$emit(id, message);
+                           }
+                       });
+                   }
+                   Console.prototype.addDirective = function (id) {
+                       if (!(this.directiveIDs.indexOf(id) > -1)) {
+                           this.directiveIDs.push(id);
+                       }
+                   };
+                   Console.prototype.removeDirective = function (id) {
+                       var i = this.directiveIDs.indexOf(id);
+                       if (i > -1) {
+                           this.directiveIDs.splice(i, 1);
+                       }
+                   };
+                   Console.prototype.showIDs = function () {
+                       console.log(this.directiveIDs);
+                   };
+                   return Console;
+               })();
+               services.Console = Console;
+           })(services = app.services || (app.services = {}));
+       })(app || (app = {}));
+       var app;
+       (function (app) {
            var directives;
            (function (directives) {
                var Command = (function () {
                })();
                directives.Command = Command;
                var CommandController = (function () {
-                   function CommandController(APIEndPoint, $scope, MyModal, WebSocket, $window, $rootScope) {
+                   function CommandController(APIEndPoint, $scope, MyModal, WebSocket, $window, $rootScope, Console) {
                        this.APIEndPoint = APIEndPoint;
                        this.$scope = $scope;
                        this.MyModal = MyModal;
                        this.WebSocket = WebSocket;
                        this.$window = $window;
                        this.$rootScope = $rootScope;
+                       this.Console = Console;
                        var controller = this;
                        this.APIEndPoint
                            .getOptionControlFile(this.name)
                            return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
                                s4() + '-' + s4() + s4() + s4();
                        }
-                       var uuid = guid();
+                       this.uuid = guid();
+                       this.Console.addDirective(this.uuid);
+                       this.Console.showIDs();
                    }
                    CommandController.prototype.submit = function () {
                        var opt = [];
                    };
                    CommandController.prototype.removeMySelf = function (index) {
                        this.$scope.$destroy();
+                       this.Console.removeDirective(this.uuid);
                        this.remove()(index, this.list);
+                       this.Console.showIDs();
                    };
                    CommandController.prototype.reloadFiles = function () {
                        var _this = this;
                        });
                    };
                    CommandController.prototype.debug = function () {
-                       console.log(this.$rootScope);
                        var div = angular.element(this.$window.document).find("div");
                        var consoleTag;
                        var parametersTag;
                            console.log(result);
                        });
                    };
-                   CommandController.$inject = ['APIEndPoint', '$scope', 'MyModal', 'WebSocket', '$window', '$rootScope'];
+                   CommandController.$inject = ['APIEndPoint', '$scope', 'MyModal', 'WebSocket', '$window', '$rootScope', 'Console'];
                    return CommandController;
                })();
                directives.CommandController = CommandController;
            app.zephyr.service('APIEndPoint', app.services.APIEndPoint);
            app.zephyr.service('MyModal', app.services.MyModal);
            app.zephyr.service('WebSocket', app.services.WebSocket);
+           app.zephyr.service('Console', app.services.Console);
            app.zephyr.filter('Tag', filters.Tag);
            app.zephyr.controller('selectCommandController', app.controllers.SelectCommand);
            app.zephyr.controller('previewController', app.controllers.Preview);
 
 
 /***/ },
-/* 11 */
+/* 12 */
 /***/ function(module, exports) {
 
        var app;
        })(app || (app = {}));
        var app;
        (function (app) {
+           var services;
+           (function (services) {
+               var Console = (function () {
+                   function Console(WebSocket, $rootScope) {
+                       this.WebSocket = WebSocket;
+                       this.$rootScope = $rootScope;
+                       this.WebSocket = WebSocket;
+                       this.$rootScope = $rootScope;
+                       this.directiveIDs = [];
+                       var directiveIDs = this.directiveIDs;
+                       this.WebSocket.on('console', function (d) {
+                           var id = d.id;
+                           var message = d.message;
+                           if (directiveIDs.indexOf(id) > -1) {
+                               $rootScope.$emit(id, message);
+                           }
+                       });
+                   }
+                   Console.prototype.addDirective = function (id) {
+                       if (!(this.directiveIDs.indexOf(id) > -1)) {
+                           this.directiveIDs.push(id);
+                       }
+                   };
+                   Console.prototype.removeDirective = function (id) {
+                       var i = this.directiveIDs.indexOf(id);
+                       if (i > -1) {
+                           this.directiveIDs.splice(i, 1);
+                       }
+                   };
+                   Console.prototype.showIDs = function () {
+                       console.log(this.directiveIDs);
+                   };
+                   return Console;
+               })();
+               services.Console = Console;
+           })(services = app.services || (app.services = {}));
+       })(app || (app = {}));
+       var app;
+       (function (app) {
            var directives;
            (function (directives) {
                var Command = (function () {
                })();
                directives.Command = Command;
                var CommandController = (function () {
-                   function CommandController(APIEndPoint, $scope, MyModal, WebSocket, $window, $rootScope) {
+                   function CommandController(APIEndPoint, $scope, MyModal, WebSocket, $window, $rootScope, Console) {
                        this.APIEndPoint = APIEndPoint;
                        this.$scope = $scope;
                        this.MyModal = MyModal;
                        this.WebSocket = WebSocket;
                        this.$window = $window;
                        this.$rootScope = $rootScope;
+                       this.Console = Console;
                        var controller = this;
                        this.APIEndPoint
                            .getOptionControlFile(this.name)
                            return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
                                s4() + '-' + s4() + s4() + s4();
                        }
-                       var uuid = guid();
+                       this.uuid = guid();
+                       this.Console.addDirective(this.uuid);
+                       this.Console.showIDs();
                    }
                    CommandController.prototype.submit = function () {
                        var opt = [];
                    };
                    CommandController.prototype.removeMySelf = function (index) {
                        this.$scope.$destroy();
+                       this.Console.removeDirective(this.uuid);
                        this.remove()(index, this.list);
+                       this.Console.showIDs();
                    };
                    CommandController.prototype.reloadFiles = function () {
                        var _this = this;
                        });
                    };
                    CommandController.prototype.debug = function () {
-                       console.log(this.$rootScope);
                        var div = angular.element(this.$window.document).find("div");
                        var consoleTag;
                        var parametersTag;
                            console.log(result);
                        });
                    };
-                   CommandController.$inject = ['APIEndPoint', '$scope', 'MyModal', 'WebSocket', '$window', '$rootScope'];
+                   CommandController.$inject = ['APIEndPoint', '$scope', 'MyModal', 'WebSocket', '$window', '$rootScope', 'Console'];
                    return CommandController;
                })();
                directives.CommandController = CommandController;
            app.zephyr.service('APIEndPoint', app.services.APIEndPoint);
            app.zephyr.service('MyModal', app.services.MyModal);
            app.zephyr.service('WebSocket', app.services.WebSocket);
+           app.zephyr.service('Console', app.services.Console);
            app.zephyr.filter('Tag', filters.Tag);
            app.zephyr.controller('selectCommandController', app.controllers.SelectCommand);
            app.zephyr.controller('previewController', app.controllers.Preview);
 
 
 /***/ },
-/* 12 */
+/* 13 */
 /***/ function(module, exports) {
 
        var app;
        })(app || (app = {}));
        var app;
        (function (app) {
+           var services;
+           (function (services) {
+               var Console = (function () {
+                   function Console(WebSocket, $rootScope) {
+                       this.WebSocket = WebSocket;
+                       this.$rootScope = $rootScope;
+                       this.WebSocket = WebSocket;
+                       this.$rootScope = $rootScope;
+                       this.directiveIDs = [];
+                       var directiveIDs = this.directiveIDs;
+                       this.WebSocket.on('console', function (d) {
+                           var id = d.id;
+                           var message = d.message;
+                           if (directiveIDs.indexOf(id) > -1) {
+                               $rootScope.$emit(id, message);
+                           }
+                       });
+                   }
+                   Console.prototype.addDirective = function (id) {
+                       if (!(this.directiveIDs.indexOf(id) > -1)) {
+                           this.directiveIDs.push(id);
+                       }
+                   };
+                   Console.prototype.removeDirective = function (id) {
+                       var i = this.directiveIDs.indexOf(id);
+                       if (i > -1) {
+                           this.directiveIDs.splice(i, 1);
+                       }
+                   };
+                   Console.prototype.showIDs = function () {
+                       console.log(this.directiveIDs);
+                   };
+                   return Console;
+               })();
+               services.Console = Console;
+           })(services = app.services || (app.services = {}));
+       })(app || (app = {}));
+       var app;
+       (function (app) {
            var directives;
            (function (directives) {
                var Command = (function () {
                })();
                directives.Command = Command;
                var CommandController = (function () {
-                   function CommandController(APIEndPoint, $scope, MyModal, WebSocket, $window, $rootScope) {
+                   function CommandController(APIEndPoint, $scope, MyModal, WebSocket, $window, $rootScope, Console) {
                        this.APIEndPoint = APIEndPoint;
                        this.$scope = $scope;
                        this.MyModal = MyModal;
                        this.WebSocket = WebSocket;
                        this.$window = $window;
                        this.$rootScope = $rootScope;
+                       this.Console = Console;
                        var controller = this;
                        this.APIEndPoint
                            .getOptionControlFile(this.name)
                            return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
                                s4() + '-' + s4() + s4() + s4();
                        }
-                       var uuid = guid();
+                       this.uuid = guid();
+                       this.Console.addDirective(this.uuid);
+                       this.Console.showIDs();
                    }
                    CommandController.prototype.submit = function () {
                        var opt = [];
                    };
                    CommandController.prototype.removeMySelf = function (index) {
                        this.$scope.$destroy();
+                       this.Console.removeDirective(this.uuid);
                        this.remove()(index, this.list);
+                       this.Console.showIDs();
                    };
                    CommandController.prototype.reloadFiles = function () {
                        var _this = this;
                        });
                    };
                    CommandController.prototype.debug = function () {
-                       console.log(this.$rootScope);
                        var div = angular.element(this.$window.document).find("div");
                        var consoleTag;
                        var parametersTag;
                            console.log(result);
                        });
                    };
-                   CommandController.$inject = ['APIEndPoint', '$scope', 'MyModal', 'WebSocket', '$window', '$rootScope'];
+                   CommandController.$inject = ['APIEndPoint', '$scope', 'MyModal', 'WebSocket', '$window', '$rootScope', 'Console'];
                    return CommandController;
                })();
                directives.CommandController = CommandController;
            app.zephyr.service('APIEndPoint', app.services.APIEndPoint);
            app.zephyr.service('MyModal', app.services.MyModal);
            app.zephyr.service('WebSocket', app.services.WebSocket);
+           app.zephyr.service('Console', app.services.Console);
            app.zephyr.filter('Tag', filters.Tag);
            app.zephyr.controller('selectCommandController', app.controllers.SelectCommand);
            app.zephyr.controller('previewController', app.controllers.Preview);
 
 
 /***/ },
-/* 13 */
+/* 14 */
 /***/ function(module, exports) {
 
        var app;
        })(app || (app = {}));
        var app;
        (function (app) {
+           var services;
+           (function (services) {
+               var Console = (function () {
+                   function Console(WebSocket, $rootScope) {
+                       this.WebSocket = WebSocket;
+                       this.$rootScope = $rootScope;
+                       this.WebSocket = WebSocket;
+                       this.$rootScope = $rootScope;
+                       this.directiveIDs = [];
+                       var directiveIDs = this.directiveIDs;
+                       this.WebSocket.on('console', function (d) {
+                           var id = d.id;
+                           var message = d.message;
+                           if (directiveIDs.indexOf(id) > -1) {
+                               $rootScope.$emit(id, message);
+                           }
+                       });
+                   }
+                   Console.prototype.addDirective = function (id) {
+                       if (!(this.directiveIDs.indexOf(id) > -1)) {
+                           this.directiveIDs.push(id);
+                       }
+                   };
+                   Console.prototype.removeDirective = function (id) {
+                       var i = this.directiveIDs.indexOf(id);
+                       if (i > -1) {
+                           this.directiveIDs.splice(i, 1);
+                       }
+                   };
+                   Console.prototype.showIDs = function () {
+                       console.log(this.directiveIDs);
+                   };
+                   return Console;
+               })();
+               services.Console = Console;
+           })(services = app.services || (app.services = {}));
+       })(app || (app = {}));
+       var app;
+       (function (app) {
            var directives;
            (function (directives) {
                var Command = (function () {
                })();
                directives.Command = Command;
                var CommandController = (function () {
-                   function CommandController(APIEndPoint, $scope, MyModal, WebSocket, $window, $rootScope) {
+                   function CommandController(APIEndPoint, $scope, MyModal, WebSocket, $window, $rootScope, Console) {
                        this.APIEndPoint = APIEndPoint;
                        this.$scope = $scope;
                        this.MyModal = MyModal;
                        this.WebSocket = WebSocket;
                        this.$window = $window;
                        this.$rootScope = $rootScope;
+                       this.Console = Console;
                        var controller = this;
                        this.APIEndPoint
                            .getOptionControlFile(this.name)
                            return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
                                s4() + '-' + s4() + s4() + s4();
                        }
-                       var uuid = guid();
+                       this.uuid = guid();
+                       this.Console.addDirective(this.uuid);
+                       this.Console.showIDs();
                    }
                    CommandController.prototype.submit = function () {
                        var opt = [];
                    };
                    CommandController.prototype.removeMySelf = function (index) {
                        this.$scope.$destroy();
+                       this.Console.removeDirective(this.uuid);
                        this.remove()(index, this.list);
+                       this.Console.showIDs();
                    };
                    CommandController.prototype.reloadFiles = function () {
                        var _this = this;
                        });
                    };
                    CommandController.prototype.debug = function () {
-                       console.log(this.$rootScope);
                        var div = angular.element(this.$window.document).find("div");
                        var consoleTag;
                        var parametersTag;
                            console.log(result);
                        });
                    };
-                   CommandController.$inject = ['APIEndPoint', '$scope', 'MyModal', 'WebSocket', '$window', '$rootScope'];
+                   CommandController.$inject = ['APIEndPoint', '$scope', 'MyModal', 'WebSocket', '$window', '$rootScope', 'Console'];
                    return CommandController;
                })();
                directives.CommandController = CommandController;
            app.zephyr.service('APIEndPoint', app.services.APIEndPoint);
            app.zephyr.service('MyModal', app.services.MyModal);
            app.zephyr.service('WebSocket', app.services.WebSocket);
+           app.zephyr.service('Console', app.services.Console);
            app.zephyr.filter('Tag', filters.Tag);
            app.zephyr.controller('selectCommandController', app.controllers.SelectCommand);
            app.zephyr.controller('previewController', app.controllers.Preview);
 
 
 /***/ },
-/* 14 */
+/* 15 */
 /***/ function(module, exports) {
 
        var app;
        })(app || (app = {}));
        var app;
        (function (app) {
+           var services;
+           (function (services) {
+               var Console = (function () {
+                   function Console(WebSocket, $rootScope) {
+                       this.WebSocket = WebSocket;
+                       this.$rootScope = $rootScope;
+                       this.WebSocket = WebSocket;
+                       this.$rootScope = $rootScope;
+                       this.directiveIDs = [];
+                       var directiveIDs = this.directiveIDs;
+                       this.WebSocket.on('console', function (d) {
+                           var id = d.id;
+                           var message = d.message;
+                           if (directiveIDs.indexOf(id) > -1) {
+                               $rootScope.$emit(id, message);
+                           }
+                       });
+                   }
+                   Console.prototype.addDirective = function (id) {
+                       if (!(this.directiveIDs.indexOf(id) > -1)) {
+                           this.directiveIDs.push(id);
+                       }
+                   };
+                   Console.prototype.removeDirective = function (id) {
+                       var i = this.directiveIDs.indexOf(id);
+                       if (i > -1) {
+                           this.directiveIDs.splice(i, 1);
+                       }
+                   };
+                   Console.prototype.showIDs = function () {
+                       console.log(this.directiveIDs);
+                   };
+                   return Console;
+               })();
+               services.Console = Console;
+           })(services = app.services || (app.services = {}));
+       })(app || (app = {}));
+       var app;
+       (function (app) {
            var directives;
            (function (directives) {
                var Command = (function () {
                })();
                directives.Command = Command;
                var CommandController = (function () {
-                   function CommandController(APIEndPoint, $scope, MyModal, WebSocket, $window, $rootScope) {
+                   function CommandController(APIEndPoint, $scope, MyModal, WebSocket, $window, $rootScope, Console) {
                        this.APIEndPoint = APIEndPoint;
                        this.$scope = $scope;
                        this.MyModal = MyModal;
                        this.WebSocket = WebSocket;
                        this.$window = $window;
                        this.$rootScope = $rootScope;
+                       this.Console = Console;
                        var controller = this;
                        this.APIEndPoint
                            .getOptionControlFile(this.name)
                            return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
                                s4() + '-' + s4() + s4() + s4();
                        }
-                       var uuid = guid();
+                       this.uuid = guid();
+                       this.Console.addDirective(this.uuid);
+                       this.Console.showIDs();
                    }
                    CommandController.prototype.submit = function () {
                        var opt = [];
                    };
                    CommandController.prototype.removeMySelf = function (index) {
                        this.$scope.$destroy();
+                       this.Console.removeDirective(this.uuid);
                        this.remove()(index, this.list);
+                       this.Console.showIDs();
                    };
                    CommandController.prototype.reloadFiles = function () {
                        var _this = this;
                        });
                    };
                    CommandController.prototype.debug = function () {
-                       console.log(this.$rootScope);
                        var div = angular.element(this.$window.document).find("div");
                        var consoleTag;
                        var parametersTag;
                            console.log(result);
                        });
                    };
-                   CommandController.$inject = ['APIEndPoint', '$scope', 'MyModal', 'WebSocket', '$window', '$rootScope'];
+                   CommandController.$inject = ['APIEndPoint', '$scope', 'MyModal', 'WebSocket', '$window', '$rootScope', 'Console'];
                    return CommandController;
                })();
                directives.CommandController = CommandController;
            app.zephyr.service('APIEndPoint', app.services.APIEndPoint);
            app.zephyr.service('MyModal', app.services.MyModal);
            app.zephyr.service('WebSocket', app.services.WebSocket);
+           app.zephyr.service('Console', app.services.Console);
            app.zephyr.filter('Tag', filters.Tag);
            app.zephyr.controller('selectCommandController', app.controllers.SelectCommand);
            app.zephyr.controller('previewController', app.controllers.Preview);
 
 
 /***/ },
-/* 15 */
+/* 16 */
 /***/ function(module, exports) {
 
        var app;
        })(app || (app = {}));
        var app;
        (function (app) {
+           var services;
+           (function (services) {
+               var Console = (function () {
+                   function Console(WebSocket, $rootScope) {
+                       this.WebSocket = WebSocket;
+                       this.$rootScope = $rootScope;
+                       this.WebSocket = WebSocket;
+                       this.$rootScope = $rootScope;
+                       this.directiveIDs = [];
+                       var directiveIDs = this.directiveIDs;
+                       this.WebSocket.on('console', function (d) {
+                           var id = d.id;
+                           var message = d.message;
+                           if (directiveIDs.indexOf(id) > -1) {
+                               $rootScope.$emit(id, message);
+                           }
+                       });
+                   }
+                   Console.prototype.addDirective = function (id) {
+                       if (!(this.directiveIDs.indexOf(id) > -1)) {
+                           this.directiveIDs.push(id);
+                       }
+                   };
+                   Console.prototype.removeDirective = function (id) {
+                       var i = this.directiveIDs.indexOf(id);
+                       if (i > -1) {
+                           this.directiveIDs.splice(i, 1);
+                       }
+                   };
+                   Console.prototype.showIDs = function () {
+                       console.log(this.directiveIDs);
+                   };
+                   return Console;
+               })();
+               services.Console = Console;
+           })(services = app.services || (app.services = {}));
+       })(app || (app = {}));
+       var app;
+       (function (app) {
            var directives;
            (function (directives) {
                var Command = (function () {
                })();
                directives.Command = Command;
                var CommandController = (function () {
-                   function CommandController(APIEndPoint, $scope, MyModal, WebSocket, $window, $rootScope) {
+                   function CommandController(APIEndPoint, $scope, MyModal, WebSocket, $window, $rootScope, Console) {
                        this.APIEndPoint = APIEndPoint;
                        this.$scope = $scope;
                        this.MyModal = MyModal;
                        this.WebSocket = WebSocket;
                        this.$window = $window;
                        this.$rootScope = $rootScope;
+                       this.Console = Console;
                        var controller = this;
                        this.APIEndPoint
                            .getOptionControlFile(this.name)
                            return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
                                s4() + '-' + s4() + s4() + s4();
                        }
-                       var uuid = guid();
+                       this.uuid = guid();
+                       this.Console.addDirective(this.uuid);
+                       this.Console.showIDs();
                    }
                    CommandController.prototype.submit = function () {
                        var opt = [];
                    };
                    CommandController.prototype.removeMySelf = function (index) {
                        this.$scope.$destroy();
+                       this.Console.removeDirective(this.uuid);
                        this.remove()(index, this.list);
+                       this.Console.showIDs();
                    };
                    CommandController.prototype.reloadFiles = function () {
                        var _this = this;
                        });
                    };
                    CommandController.prototype.debug = function () {
-                       console.log(this.$rootScope);
                        var div = angular.element(this.$window.document).find("div");
                        var consoleTag;
                        var parametersTag;
                            console.log(result);
                        });
                    };
-                   CommandController.$inject = ['APIEndPoint', '$scope', 'MyModal', 'WebSocket', '$window', '$rootScope'];
+                   CommandController.$inject = ['APIEndPoint', '$scope', 'MyModal', 'WebSocket', '$window', '$rootScope', 'Console'];
                    return CommandController;
                })();
                directives.CommandController = CommandController;
            app.zephyr.service('APIEndPoint', app.services.APIEndPoint);
            app.zephyr.service('MyModal', app.services.MyModal);
            app.zephyr.service('WebSocket', app.services.WebSocket);
+           app.zephyr.service('Console', app.services.Console);
            app.zephyr.filter('Tag', filters.Tag);
            app.zephyr.controller('selectCommandController', app.controllers.SelectCommand);
            app.zephyr.controller('previewController', app.controllers.Preview);
 
 
 /***/ },
-/* 16 */
+/* 17 */
 /***/ function(module, exports) {
 
        var app;
        })(app || (app = {}));
        var app;
        (function (app) {
+           var services;
+           (function (services) {
+               var Console = (function () {
+                   function Console(WebSocket, $rootScope) {
+                       this.WebSocket = WebSocket;
+                       this.$rootScope = $rootScope;
+                       this.WebSocket = WebSocket;
+                       this.$rootScope = $rootScope;
+                       this.directiveIDs = [];
+                       var directiveIDs = this.directiveIDs;
+                       this.WebSocket.on('console', function (d) {
+                           var id = d.id;
+                           var message = d.message;
+                           if (directiveIDs.indexOf(id) > -1) {
+                               $rootScope.$emit(id, message);
+                           }
+                       });
+                   }
+                   Console.prototype.addDirective = function (id) {
+                       if (!(this.directiveIDs.indexOf(id) > -1)) {
+                           this.directiveIDs.push(id);
+                       }
+                   };
+                   Console.prototype.removeDirective = function (id) {
+                       var i = this.directiveIDs.indexOf(id);
+                       if (i > -1) {
+                           this.directiveIDs.splice(i, 1);
+                       }
+                   };
+                   Console.prototype.showIDs = function () {
+                       console.log(this.directiveIDs);
+                   };
+                   return Console;
+               })();
+               services.Console = Console;
+           })(services = app.services || (app.services = {}));
+       })(app || (app = {}));
+       var app;
+       (function (app) {
            var directives;
            (function (directives) {
                var Command = (function () {
                })();
                directives.Command = Command;
                var CommandController = (function () {
-                   function CommandController(APIEndPoint, $scope, MyModal, WebSocket, $window, $rootScope) {
+                   function CommandController(APIEndPoint, $scope, MyModal, WebSocket, $window, $rootScope, Console) {
                        this.APIEndPoint = APIEndPoint;
                        this.$scope = $scope;
                        this.MyModal = MyModal;
                        this.WebSocket = WebSocket;
                        this.$window = $window;
                        this.$rootScope = $rootScope;
+                       this.Console = Console;
                        var controller = this;
                        this.APIEndPoint
                            .getOptionControlFile(this.name)
                            return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
                                s4() + '-' + s4() + s4() + s4();
                        }
-                       var uuid = guid();
+                       this.uuid = guid();
+                       this.Console.addDirective(this.uuid);
+                       this.Console.showIDs();
                    }
                    CommandController.prototype.submit = function () {
                        var opt = [];
                    };
                    CommandController.prototype.removeMySelf = function (index) {
                        this.$scope.$destroy();
+                       this.Console.removeDirective(this.uuid);
                        this.remove()(index, this.list);
+                       this.Console.showIDs();
                    };
                    CommandController.prototype.reloadFiles = function () {
                        var _this = this;
                        });
                    };
                    CommandController.prototype.debug = function () {
-                       console.log(this.$rootScope);
                        var div = angular.element(this.$window.document).find("div");
                        var consoleTag;
                        var parametersTag;
                            console.log(result);
                        });
                    };
-                   CommandController.$inject = ['APIEndPoint', '$scope', 'MyModal', 'WebSocket', '$window', '$rootScope'];
+                   CommandController.$inject = ['APIEndPoint', '$scope', 'MyModal', 'WebSocket', '$window', '$rootScope', 'Console'];
                    return CommandController;
                })();
                directives.CommandController = CommandController;
            app.zephyr.service('APIEndPoint', app.services.APIEndPoint);
            app.zephyr.service('MyModal', app.services.MyModal);
            app.zephyr.service('WebSocket', app.services.WebSocket);
+           app.zephyr.service('Console', app.services.Console);
            app.zephyr.filter('Tag', filters.Tag);
            app.zephyr.controller('selectCommandController', app.controllers.SelectCommand);
            app.zephyr.controller('previewController', app.controllers.Preview);
 
 
 /***/ },
-/* 17 */
+/* 18 */
 /***/ function(module, exports) {
 
        var app;
        })(app || (app = {}));
        var app;
        (function (app) {
+           var services;
+           (function (services) {
+               var Console = (function () {
+                   function Console(WebSocket, $rootScope) {
+                       this.WebSocket = WebSocket;
+                       this.$rootScope = $rootScope;
+                       this.WebSocket = WebSocket;
+                       this.$rootScope = $rootScope;
+                       this.directiveIDs = [];
+                       var directiveIDs = this.directiveIDs;
+                       this.WebSocket.on('console', function (d) {
+                           var id = d.id;
+                           var message = d.message;
+                           if (directiveIDs.indexOf(id) > -1) {
+                               $rootScope.$emit(id, message);
+                           }
+                       });
+                   }
+                   Console.prototype.addDirective = function (id) {
+                       if (!(this.directiveIDs.indexOf(id) > -1)) {
+                           this.directiveIDs.push(id);
+                       }
+                   };
+                   Console.prototype.removeDirective = function (id) {
+                       var i = this.directiveIDs.indexOf(id);
+                       if (i > -1) {
+                           this.directiveIDs.splice(i, 1);
+                       }
+                   };
+                   Console.prototype.showIDs = function () {
+                       console.log(this.directiveIDs);
+                   };
+                   return Console;
+               })();
+               services.Console = Console;
+           })(services = app.services || (app.services = {}));
+       })(app || (app = {}));
+       var app;
+       (function (app) {
            var directives;
            (function (directives) {
                var Command = (function () {
                })();
                directives.Command = Command;
                var CommandController = (function () {
-                   function CommandController(APIEndPoint, $scope, MyModal, WebSocket, $window, $rootScope) {
+                   function CommandController(APIEndPoint, $scope, MyModal, WebSocket, $window, $rootScope, Console) {
                        this.APIEndPoint = APIEndPoint;
                        this.$scope = $scope;
                        this.MyModal = MyModal;
                        this.WebSocket = WebSocket;
                        this.$window = $window;
                        this.$rootScope = $rootScope;
+                       this.Console = Console;
                        var controller = this;
                        this.APIEndPoint
                            .getOptionControlFile(this.name)
                            return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
                                s4() + '-' + s4() + s4() + s4();
                        }
-                       var uuid = guid();
+                       this.uuid = guid();
+                       this.Console.addDirective(this.uuid);
+                       this.Console.showIDs();
                    }
                    CommandController.prototype.submit = function () {
                        var opt = [];
                    };
                    CommandController.prototype.removeMySelf = function (index) {
                        this.$scope.$destroy();
+                       this.Console.removeDirective(this.uuid);
                        this.remove()(index, this.list);
+                       this.Console.showIDs();
                    };
                    CommandController.prototype.reloadFiles = function () {
                        var _this = this;
                        });
                    };
                    CommandController.prototype.debug = function () {
-                       console.log(this.$rootScope);
                        var div = angular.element(this.$window.document).find("div");
                        var consoleTag;
                        var parametersTag;
                            console.log(result);
                        });
                    };
-                   CommandController.$inject = ['APIEndPoint', '$scope', 'MyModal', 'WebSocket', '$window', '$rootScope'];
+                   CommandController.$inject = ['APIEndPoint', '$scope', 'MyModal', 'WebSocket', '$window', '$rootScope', 'Console'];
                    return CommandController;
                })();
                directives.CommandController = CommandController;
            app.zephyr.service('APIEndPoint', app.services.APIEndPoint);
            app.zephyr.service('MyModal', app.services.MyModal);
            app.zephyr.service('WebSocket', app.services.WebSocket);
+           app.zephyr.service('Console', app.services.Console);
            app.zephyr.filter('Tag', filters.Tag);
            app.zephyr.controller('selectCommandController', app.controllers.SelectCommand);
            app.zephyr.controller('previewController', app.controllers.Preview);
 
 
 /***/ },
-/* 18 */
+/* 19 */
 /***/ function(module, exports) {
 
        var app;
        })(app || (app = {}));
        var app;
        (function (app) {
+           var services;
+           (function (services) {
+               var Console = (function () {
+                   function Console(WebSocket, $rootScope) {
+                       this.WebSocket = WebSocket;
+                       this.$rootScope = $rootScope;
+                       this.WebSocket = WebSocket;
+                       this.$rootScope = $rootScope;
+                       this.directiveIDs = [];
+                       var directiveIDs = this.directiveIDs;
+                       this.WebSocket.on('console', function (d) {
+                           var id = d.id;
+                           var message = d.message;
+                           if (directiveIDs.indexOf(id) > -1) {
+                               $rootScope.$emit(id, message);
+                           }
+                       });
+                   }
+                   Console.prototype.addDirective = function (id) {
+                       if (!(this.directiveIDs.indexOf(id) > -1)) {
+                           this.directiveIDs.push(id);
+                       }
+                   };
+                   Console.prototype.removeDirective = function (id) {
+                       var i = this.directiveIDs.indexOf(id);
+                       if (i > -1) {
+                           this.directiveIDs.splice(i, 1);
+                       }
+                   };
+                   Console.prototype.showIDs = function () {
+                       console.log(this.directiveIDs);
+                   };
+                   return Console;
+               })();
+               services.Console = Console;
+           })(services = app.services || (app.services = {}));
+       })(app || (app = {}));
+       var app;
+       (function (app) {
            var directives;
            (function (directives) {
                var Command = (function () {
                })();
                directives.Command = Command;
                var CommandController = (function () {
-                   function CommandController(APIEndPoint, $scope, MyModal, WebSocket, $window, $rootScope) {
+                   function CommandController(APIEndPoint, $scope, MyModal, WebSocket, $window, $rootScope, Console) {
                        this.APIEndPoint = APIEndPoint;
                        this.$scope = $scope;
                        this.MyModal = MyModal;
                        this.WebSocket = WebSocket;
                        this.$window = $window;
                        this.$rootScope = $rootScope;
+                       this.Console = Console;
                        var controller = this;
                        this.APIEndPoint
                            .getOptionControlFile(this.name)
                            return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
                                s4() + '-' + s4() + s4() + s4();
                        }
-                       var uuid = guid();
+                       this.uuid = guid();
+                       this.Console.addDirective(this.uuid);
+                       this.Console.showIDs();
                    }
                    CommandController.prototype.submit = function () {
                        var opt = [];
                    };
                    CommandController.prototype.removeMySelf = function (index) {
                        this.$scope.$destroy();
+                       this.Console.removeDirective(this.uuid);
                        this.remove()(index, this.list);
+                       this.Console.showIDs();
                    };
                    CommandController.prototype.reloadFiles = function () {
                        var _this = this;
                        });
                    };
                    CommandController.prototype.debug = function () {
-                       console.log(this.$rootScope);
                        var div = angular.element(this.$window.document).find("div");
                        var consoleTag;
                        var parametersTag;
                            console.log(result);
                        });
                    };
-                   CommandController.$inject = ['APIEndPoint', '$scope', 'MyModal', 'WebSocket', '$window', '$rootScope'];
+                   CommandController.$inject = ['APIEndPoint', '$scope', 'MyModal', 'WebSocket', '$window', '$rootScope', 'Console'];
                    return CommandController;
                })();
                directives.CommandController = CommandController;
            app.zephyr.service('APIEndPoint', app.services.APIEndPoint);
            app.zephyr.service('MyModal', app.services.MyModal);
            app.zephyr.service('WebSocket', app.services.WebSocket);
+           app.zephyr.service('Console', app.services.Console);
            app.zephyr.filter('Tag', filters.Tag);
            app.zephyr.controller('selectCommandController', app.controllers.SelectCommand);
            app.zephyr.controller('previewController', app.controllers.Preview);
 
 
 /***/ },
-/* 19 */
+/* 20 */
 /***/ function(module, exports) {
 
        var app;
        })(app || (app = {}));
        var app;
        (function (app) {
+           var services;
+           (function (services) {
+               var Console = (function () {
+                   function Console(WebSocket, $rootScope) {
+                       this.WebSocket = WebSocket;
+                       this.$rootScope = $rootScope;
+                       this.WebSocket = WebSocket;
+                       this.$rootScope = $rootScope;
+                       this.directiveIDs = [];
+                       var directiveIDs = this.directiveIDs;
+                       this.WebSocket.on('console', function (d) {
+                           var id = d.id;
+                           var message = d.message;
+                           if (directiveIDs.indexOf(id) > -1) {
+                               $rootScope.$emit(id, message);
+                           }
+                       });
+                   }
+                   Console.prototype.addDirective = function (id) {
+                       if (!(this.directiveIDs.indexOf(id) > -1)) {
+                           this.directiveIDs.push(id);
+                       }
+                   };
+                   Console.prototype.removeDirective = function (id) {
+                       var i = this.directiveIDs.indexOf(id);
+                       if (i > -1) {
+                           this.directiveIDs.splice(i, 1);
+                       }
+                   };
+                   Console.prototype.showIDs = function () {
+                       console.log(this.directiveIDs);
+                   };
+                   return Console;
+               })();
+               services.Console = Console;
+           })(services = app.services || (app.services = {}));
+       })(app || (app = {}));
+       var app;
+       (function (app) {
            var directives;
            (function (directives) {
                var Command = (function () {
                })();
                directives.Command = Command;
                var CommandController = (function () {
-                   function CommandController(APIEndPoint, $scope, MyModal, WebSocket, $window, $rootScope) {
+                   function CommandController(APIEndPoint, $scope, MyModal, WebSocket, $window, $rootScope, Console) {
                        this.APIEndPoint = APIEndPoint;
                        this.$scope = $scope;
                        this.MyModal = MyModal;
                        this.WebSocket = WebSocket;
                        this.$window = $window;
                        this.$rootScope = $rootScope;
+                       this.Console = Console;
                        var controller = this;
                        this.APIEndPoint
                            .getOptionControlFile(this.name)
                            return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
                                s4() + '-' + s4() + s4() + s4();
                        }
-                       var uuid = guid();
+                       this.uuid = guid();
+                       this.Console.addDirective(this.uuid);
+                       this.Console.showIDs();
                    }
                    CommandController.prototype.submit = function () {
                        var opt = [];
                    };
                    CommandController.prototype.removeMySelf = function (index) {
                        this.$scope.$destroy();
+                       this.Console.removeDirective(this.uuid);
                        this.remove()(index, this.list);
+                       this.Console.showIDs();
                    };
                    CommandController.prototype.reloadFiles = function () {
                        var _this = this;
                        });
                    };
                    CommandController.prototype.debug = function () {
-                       console.log(this.$rootScope);
                        var div = angular.element(this.$window.document).find("div");
                        var consoleTag;
                        var parametersTag;
                            console.log(result);
                        });
                    };
-                   CommandController.$inject = ['APIEndPoint', '$scope', 'MyModal', 'WebSocket', '$window', '$rootScope'];
+                   CommandController.$inject = ['APIEndPoint', '$scope', 'MyModal', 'WebSocket', '$window', '$rootScope', 'Console'];
                    return CommandController;
                })();
                directives.CommandController = CommandController;
            app.zephyr.service('APIEndPoint', app.services.APIEndPoint);
            app.zephyr.service('MyModal', app.services.MyModal);
            app.zephyr.service('WebSocket', app.services.WebSocket);
+           app.zephyr.service('Console', app.services.Console);
            app.zephyr.filter('Tag', filters.Tag);
            app.zephyr.controller('selectCommandController', app.controllers.SelectCommand);
            app.zephyr.controller('previewController', app.controllers.Preview);
 
 
 /***/ },
-/* 20 */
+/* 21 */
 /***/ function(module, exports) {
 
        var app;
        })(app || (app = {}));
        var app;
        (function (app) {
+           var services;
+           (function (services) {
+               var Console = (function () {
+                   function Console(WebSocket, $rootScope) {
+                       this.WebSocket = WebSocket;
+                       this.$rootScope = $rootScope;
+                       this.WebSocket = WebSocket;
+                       this.$rootScope = $rootScope;
+                       this.directiveIDs = [];
+                       var directiveIDs = this.directiveIDs;
+                       this.WebSocket.on('console', function (d) {
+                           var id = d.id;
+                           var message = d.message;
+                           if (directiveIDs.indexOf(id) > -1) {
+                               $rootScope.$emit(id, message);
+                           }
+                       });
+                   }
+                   Console.prototype.addDirective = function (id) {
+                       if (!(this.directiveIDs.indexOf(id) > -1)) {
+                           this.directiveIDs.push(id);
+                       }
+                   };
+                   Console.prototype.removeDirective = function (id) {
+                       var i = this.directiveIDs.indexOf(id);
+                       if (i > -1) {
+                           this.directiveIDs.splice(i, 1);
+                       }
+                   };
+                   Console.prototype.showIDs = function () {
+                       console.log(this.directiveIDs);
+                   };
+                   return Console;
+               })();
+               services.Console = Console;
+           })(services = app.services || (app.services = {}));
+       })(app || (app = {}));
+       var app;
+       (function (app) {
            var directives;
            (function (directives) {
                var Command = (function () {
                })();
                directives.Command = Command;
                var CommandController = (function () {
-                   function CommandController(APIEndPoint, $scope, MyModal, WebSocket, $window, $rootScope) {
+                   function CommandController(APIEndPoint, $scope, MyModal, WebSocket, $window, $rootScope, Console) {
                        this.APIEndPoint = APIEndPoint;
                        this.$scope = $scope;
                        this.MyModal = MyModal;
                        this.WebSocket = WebSocket;
                        this.$window = $window;
                        this.$rootScope = $rootScope;
+                       this.Console = Console;
                        var controller = this;
                        this.APIEndPoint
                            .getOptionControlFile(this.name)
                            return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
                                s4() + '-' + s4() + s4() + s4();
                        }
-                       var uuid = guid();
+                       this.uuid = guid();
+                       this.Console.addDirective(this.uuid);
+                       this.Console.showIDs();
                    }
                    CommandController.prototype.submit = function () {
                        var opt = [];
                    };
                    CommandController.prototype.removeMySelf = function (index) {
                        this.$scope.$destroy();
+                       this.Console.removeDirective(this.uuid);
                        this.remove()(index, this.list);
+                       this.Console.showIDs();
                    };
                    CommandController.prototype.reloadFiles = function () {
                        var _this = this;
                        });
                    };
                    CommandController.prototype.debug = function () {
-                       console.log(this.$rootScope);
                        var div = angular.element(this.$window.document).find("div");
                        var consoleTag;
                        var parametersTag;
                            console.log(result);
                        });
                    };
-                   CommandController.$inject = ['APIEndPoint', '$scope', 'MyModal', 'WebSocket', '$window', '$rootScope'];
+                   CommandController.$inject = ['APIEndPoint', '$scope', 'MyModal', 'WebSocket', '$window', '$rootScope', 'Console'];
                    return CommandController;
                })();
                directives.CommandController = CommandController;
            app.zephyr.service('APIEndPoint', app.services.APIEndPoint);
            app.zephyr.service('MyModal', app.services.MyModal);
            app.zephyr.service('WebSocket', app.services.WebSocket);
+           app.zephyr.service('Console', app.services.Console);
            app.zephyr.filter('Tag', filters.Tag);
            app.zephyr.controller('selectCommandController', app.controllers.SelectCommand);
            app.zephyr.controller('previewController', app.controllers.Preview);
 
 
 /***/ },
-/* 21 */
+/* 22 */
 /***/ function(module, exports) {
 
        var app;
        })(app || (app = {}));
        var app;
        (function (app) {
+           var services;
+           (function (services) {
+               var Console = (function () {
+                   function Console(WebSocket, $rootScope) {
+                       this.WebSocket = WebSocket;
+                       this.$rootScope = $rootScope;
+                       this.WebSocket = WebSocket;
+                       this.$rootScope = $rootScope;
+                       this.directiveIDs = [];
+                       var directiveIDs = this.directiveIDs;
+                       this.WebSocket.on('console', function (d) {
+                           var id = d.id;
+                           var message = d.message;
+                           if (directiveIDs.indexOf(id) > -1) {
+                               $rootScope.$emit(id, message);
+                           }
+                       });
+                   }
+                   Console.prototype.addDirective = function (id) {
+                       if (!(this.directiveIDs.indexOf(id) > -1)) {
+                           this.directiveIDs.push(id);
+                       }
+                   };
+                   Console.prototype.removeDirective = function (id) {
+                       var i = this.directiveIDs.indexOf(id);
+                       if (i > -1) {
+                           this.directiveIDs.splice(i, 1);
+                       }
+                   };
+                   Console.prototype.showIDs = function () {
+                       console.log(this.directiveIDs);
+                   };
+                   return Console;
+               })();
+               services.Console = Console;
+           })(services = app.services || (app.services = {}));
+       })(app || (app = {}));
+       var app;
+       (function (app) {
            var directives;
            (function (directives) {
                var Command = (function () {
                })();
                directives.Command = Command;
                var CommandController = (function () {
-                   function CommandController(APIEndPoint, $scope, MyModal, WebSocket, $window, $rootScope) {
+                   function CommandController(APIEndPoint, $scope, MyModal, WebSocket, $window, $rootScope, Console) {
                        this.APIEndPoint = APIEndPoint;
                        this.$scope = $scope;
                        this.MyModal = MyModal;
                        this.WebSocket = WebSocket;
                        this.$window = $window;
                        this.$rootScope = $rootScope;
+                       this.Console = Console;
                        var controller = this;
                        this.APIEndPoint
                            .getOptionControlFile(this.name)
                            return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
                                s4() + '-' + s4() + s4() + s4();
                        }
-                       var uuid = guid();
+                       this.uuid = guid();
+                       this.Console.addDirective(this.uuid);
+                       this.Console.showIDs();
                    }
                    CommandController.prototype.submit = function () {
                        var opt = [];
                    };
                    CommandController.prototype.removeMySelf = function (index) {
                        this.$scope.$destroy();
+                       this.Console.removeDirective(this.uuid);
                        this.remove()(index, this.list);
+                       this.Console.showIDs();
                    };
                    CommandController.prototype.reloadFiles = function () {
                        var _this = this;
                        });
                    };
                    CommandController.prototype.debug = function () {
-                       console.log(this.$rootScope);
                        var div = angular.element(this.$window.document).find("div");
                        var consoleTag;
                        var parametersTag;
                            console.log(result);
                        });
                    };
-                   CommandController.$inject = ['APIEndPoint', '$scope', 'MyModal', 'WebSocket', '$window', '$rootScope'];
+                   CommandController.$inject = ['APIEndPoint', '$scope', 'MyModal', 'WebSocket', '$window', '$rootScope', 'Console'];
                    return CommandController;
                })();
                directives.CommandController = CommandController;
            app.zephyr.service('APIEndPoint', app.services.APIEndPoint);
            app.zephyr.service('MyModal', app.services.MyModal);
            app.zephyr.service('WebSocket', app.services.WebSocket);
+           app.zephyr.service('Console', app.services.Console);
            app.zephyr.filter('Tag', filters.Tag);
            app.zephyr.controller('selectCommandController', app.controllers.SelectCommand);
            app.zephyr.controller('previewController', app.controllers.Preview);