diff --git a/zun_ui/content/container/containers/views.py b/zun_ui/content/container/containers/views.py index 158b042..f9eb128 100644 --- a/zun_ui/content/container/containers/views.py +++ b/zun_ui/content/container/containers/views.py @@ -15,7 +15,7 @@ from zun_ui.api import client class SerialConsoleView(generic.TemplateView): - template_name = 'console.html' + template_name = 'project/instances/serial_console.html' def get_context_data(self, **kwargs): context = super(SerialConsoleView, self).get_context_data(**kwargs) diff --git a/zun_ui/static/dashboard/container/containers/details/serialConsole.js b/zun_ui/static/dashboard/container/containers/details/serialConsole.js deleted file mode 100644 index ea73123..0000000 --- a/zun_ui/static/dashboard/container/containers/details/serialConsole.js +++ /dev/null @@ -1,106 +0,0 @@ -/* -Copyright 2017, NEC Corporation. -Copyright 2014, Rackspace, US, Inc. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -/*global Terminal,Blob,FileReader,gettext,interpolate */ -(function() { - 'use strict'; - - angular.module('serialConsoleApp', []) - .constant('states', [ - gettext('Connecting'), - gettext('Open'), - gettext('Closing'), - gettext('Closed') - ]) - - /** - * @ngdoc directive - * @ngname serialConsole - * - * @description - * The serial-console element creates a terminal based on the widely-used term.js. - * The "connection" attribute is input to a WebSocket object, which connects - * to a server. In Horizon, this directive is used to connect to docker, - * opening a serial console to container set interactive mode. - * Each key the user types is transmitted to the instance, and each character - * the instance reponds with is displayed. - */ - .directive('serialConsole', serialConsole); - - serialConsole.$inject = ['states']; - - function serialConsole(states) { - return { - scope: true, - template: '

{{statusMessage()}}', - restrict: 'E', - link: function postLink(scope, element, attrs) { - - var connection = scope.$eval(attrs.connection); - var protocols = attrs.protocols ? scope.$eval(attrs.protocols) : null; - var term = new Terminal(); - var socket = new WebSocket(connection, protocols); - - socket.onerror = function() { - scope.$apply(scope.status); - }; - socket.onopen = function() { - scope.$apply(scope.status); - // initialize by "hitting enter" - socket.send(String.fromCharCode(13)); - }; - socket.onclose = function() { - scope.$apply(scope.status); - }; - - // turn the angular jQlite element into a raw DOM element so we can - // attach the Terminal to it - var termElement = angular.element(element)[0]; - term.open(termElement.ownerDocument.getElementById('terminalNode')); - - term.on('data', function(data) { - socket.send(data); - }); - - socket.onmessage = function(e) { - if (e.data instanceof Blob) { - var f = new FileReader(); - f.onload = function() { - term.write(f.result); - }; - f.readAsText(e.data); - } else { - term.write(e.data); - } - }; - - scope.status = function() { - return states[socket.readyState]; - }; - - scope.statusMessage = function() { - return interpolate(gettext('Status: %s'), [scope.status()]); - }; - - scope.$on('$destroy', function() { - socket.close(); - }); - } - }; - } - -}()); diff --git a/zun_ui/templates/console.html b/zun_ui/templates/console.html deleted file mode 100644 index 9d1632f..0000000 --- a/zun_ui/templates/console.html +++ /dev/null @@ -1,24 +0,0 @@ -{% load i18n %} - - - - - - {{container_name}} ({{container_id}}) - - - - - - - - - - {% if error_message %} - {{ error_message }} - {% else %} - - {% endif %} - - - \ No newline at end of file