diff options
Diffstat (limited to 'sdnr/wireless-transport/code-Carbon-SR1/ux/odlChat/odlChat-module/src/main')
7 files changed, 327 insertions, 0 deletions
diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/odlChat/odlChat-module/src/main/resources/odlChat/logo_chat.gif b/sdnr/wireless-transport/code-Carbon-SR1/ux/odlChat/odlChat-module/src/main/resources/odlChat/logo_chat.gif Binary files differnew file mode 100644 index 00000000..deb44fd2 --- /dev/null +++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/odlChat/odlChat-module/src/main/resources/odlChat/logo_chat.gif diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/odlChat/odlChat-module/src/main/resources/odlChat/odlChat-custom.css b/sdnr/wireless-transport/code-Carbon-SR1/ux/odlChat/odlChat-module/src/main/resources/odlChat/odlChat-custom.css new file mode 100644 index 00000000..4d9f8d24 --- /dev/null +++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/odlChat/odlChat-module/src/main/resources/odlChat/odlChat-custom.css @@ -0,0 +1,3 @@ +/** + * Add your application related css here + */
\ No newline at end of file diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/odlChat/odlChat-module/src/main/resources/odlChat/odlChat.controller.js b/sdnr/wireless-transport/code-Carbon-SR1/ux/odlChat/odlChat-module/src/main/resources/odlChat/odlChat.controller.js new file mode 100644 index 00000000..310e05d5 --- /dev/null +++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/odlChat/odlChat-module/src/main/resources/odlChat/odlChat.controller.js @@ -0,0 +1,69 @@ +/* + * Copyright (c) 2016 highstreet technologies GmbH and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ + +define( + [ 'app/odlChat/odlChat.module', 'app/odlChat/odlChat.services' ], + function(odlChatApp) { + + var main = function($scope, $rootScope, $odlChat) { + + $rootScope.section_logo = 'src/app/odlChat/odlChat.png'; + + $scope.collection = []; + $scope.chat = { + nickname : 'anonymous', + message : "Hey, what's up?!" + }; + + var listenToNotifications = function(socketLocation) { + try { + var notificatinSocket = new WebSocket(socketLocation); + + notificatinSocket.onmessage = function(event) { + // we process our received event here + $odlChat.getData(event, function(info, tweet) { + $scope.collection.push(tweet); + if ($scope.collection.length > 20) { + $scope.collection.shift(); + } + + $scope.chat.message = info; + }); + }; + notificatinSocket.onerror = function(error) { + console.log("Socket error: " + JSON.stringify(error)); + }; + notificatinSocket.onopen = function(event) { + console.log("Socket connection opened."); + }; + notificatinSocket.onclose = function(event) { + console.log("Socket connection closed."); + }; + // if there is a problem on socket creation we get + // exception (i.e. when socket address is incorrect) + } catch (e) { + alert("Error when creating WebSocket" + e); + } + }; + + $scope.send = function(chat) { + $odlChat.send(chat, function(info) { + console.log(info); + }); + }; + + var path = "/opendaylight-inventory:nodes/opendaylight-inventory:node[opendaylight-inventory:id='odlChat']"; + $odlChat.register(path, function(socketLocation) { + listenToNotifications(socketLocation); + }); + }; + + odlChatApp.register.controller('odlChatCtrl', [ '$scope', '$rootScope', + '$odlChat', main ]); + + });
\ No newline at end of file diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/odlChat/odlChat-module/src/main/resources/odlChat/odlChat.module.js b/sdnr/wireless-transport/code-Carbon-SR1/ux/odlChat/odlChat-module/src/main/resources/odlChat/odlChat.module.js new file mode 100644 index 00000000..6bd5387f --- /dev/null +++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/odlChat/odlChat-module/src/main/resources/odlChat/odlChat.module.js @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2016 highstreet technologies GmbH and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ + +define(['angularAMD', 'app/routingConfig', 'app/core/core.services', 'common/config/env.module'], function(ng) { + var odlChatApp = angular.module('app.odlChat', ['app.core', 'ui.router.state','config']); + + odlChatApp.config(function($stateProvider, $compileProvider, $controllerProvider, $provide, NavHelperProvider, $translateProvider) { + odlChatApp.register = { + controller : $controllerProvider.register, + directive : $compileProvider.directive, + factory : $provide.factory, + service : $provide.service + + }; + + + NavHelperProvider.addControllerUrl('app/odlChat/odlChat.controller'); + NavHelperProvider.addToMenu('odlChat', { + "link" : "#/odlChat", + "active" : "main.odlChat", + "title" : "Chat", + "icon" : "fa-comments", // Add navigation icon css class here + "page" : { + "title" : "Chat", + "description" : "odlChat" + } + }); + + var access = routingConfig.accessLevels; + + $stateProvider.state('main.odlChat', { + url: 'odlChat', + access: access.admin, + views : { + 'content' : { + templateUrl: 'src/app/odlChat/odlChat.tpl.html', + controller: 'odlChatCtrl' + } + } + }); + + }); + + return odlChatApp; +}); diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/odlChat/odlChat-module/src/main/resources/odlChat/odlChat.png b/sdnr/wireless-transport/code-Carbon-SR1/ux/odlChat/odlChat-module/src/main/resources/odlChat/odlChat.png Binary files differnew file mode 100755 index 00000000..3b79097e --- /dev/null +++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/odlChat/odlChat-module/src/main/resources/odlChat/odlChat.png diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/odlChat/odlChat-module/src/main/resources/odlChat/odlChat.services.js b/sdnr/wireless-transport/code-Carbon-SR1/ux/odlChat/odlChat-module/src/main/resources/odlChat/odlChat.services.js new file mode 100644 index 00000000..1a137f5c --- /dev/null +++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/odlChat/odlChat-module/src/main/resources/odlChat/odlChat.services.js @@ -0,0 +1,103 @@ +/* + * Copyright (c) 2016 highstreet technologies GmbH and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ + +define(['app/mwtnCommons/mwtnCommons.module', 'app/odlChat/odlChat.module'],function(odlChatApp) { + + odlChatApp.register.factory('$odlChat', function($http, $mwtnCommons) { + + var createStream = function(streamName, callback) { + var request = { + method : 'GET', + url : [ service.base, 'streams/stream/', streamName ].join('') + }; + $http(request).then(function successCallback(response) { + console.log(response.headers('Location')); + callback(response.headers('Location')); + }, function errorCallback(response) { + console.error(JSON.stringify(response)); + callback(); + }); + }; + + var service = { + base : window.location.origin + "/restconf/", + }; + + + service.getData = function(event, callback) { + + var request = { + method : 'GET', + url : [ service.base, + 'config/opendaylight-inventory:nodes/node/odlChat/' ].join('') + }; + $http(request).then(function successCallback(response) { + tweet = { + nickname : response.data.node[0]['flow-node-inventory:manufacturer'], + message : response.data.node[0]['flow-node-inventory:description'], + time : JSON.stringify(new Date()).split('T')[1].substring(0, 5) + }; + callback('', tweet); + }, function errorCallback(response) { + console.error(JSON.stringify(response)); + callback('ERROR while sending ;('); + }); + + }; + + service.register = function(path, callback) { + var request = { + method : 'POST', + url : [ service.base, + 'operations/sal-remote:create-data-change-event-subscription' ] + .join(''), + data : { + "input" : { + "path" : path, + "sal-remote-augment:datastore" : "CONFIGURATION", + "sal-remote-augment:scope" : "SUBTREE" + } + } + }; + $http(request).then( + function successCallback(response) { + createStream(response.data.output['stream-name'], function( + socketLocation) { + callback(socketLocation); + }); + }, function errorCallback(response) { + console.error(JSON.stringify(response)); + }); + }; + + service.send = function(chat, callback) { + var request = { + method : 'PUT', + url : [ service.base, + 'config/opendaylight-inventory:nodes/node/odlChat' ].join(''), + data : { + "node" : [ { + "id" : "odlChat", + "flow-node-inventory:manufacturer" : chat.nickname, + "flow-node-inventory:software" : "", + "flow-node-inventory:serial-number" : "", + "flow-node-inventory:hardware" : "", + "flow-node-inventory:description" : chat.message + } ] + } + }; + $http(request).then(function successCallback(response) { + callback('send successfully'); + }, function errorCallback(response) { + console.error(JSON.stringify(response)); + callback('ERROR while sending ;('); + }); + }; + return service; + }); +});
\ No newline at end of file diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/odlChat/odlChat-module/src/main/resources/odlChat/odlChat.tpl.html b/sdnr/wireless-transport/code-Carbon-SR1/ux/odlChat/odlChat-module/src/main/resources/odlChat/odlChat.tpl.html new file mode 100644 index 00000000..c3d90ae3 --- /dev/null +++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/odlChat/odlChat-module/src/main/resources/odlChat/odlChat.tpl.html @@ -0,0 +1,102 @@ +<!-- This is the landing page of you application, Update the content as per your requirements --> +<div class="owl container" style="width: 800px"> + + <div class="row"> + <div class="col-md-11"> + <h4>Simple chat application based on (ODL) WebSockets</h4> + </div> + </div> + + <div class="row"> + <div class="col-md-11"> + <hr/ > + </div> + </div> + + <div class="row"> + <div class="col-md-11"> + <p> + <span class="white">The beauty of WebSockets within OpenDaylight.</span> + </p> + <p> + <span class="white">Useful links:</span> + <ul> + <li> + <a href="https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL:Restconf:Change_event_notification_subscription"> + <span class="white">https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL:Restconf:Change_event_notification_subscription</span> + </a> + </li> + <li> + <a href="https://wiki.opendaylight.org/view/OpenDaylight_DLUX:Create_application_with_archetype"> + <span class="white">https://wiki.opendaylight.org/view/OpenDaylight_DLUX:Create_application_with_archetype</span> + </a> + </li> + </ul> + </p> + <p> + <span class="white">Code:</span> + <ul> + <li> + <a href="https://github.com/OpenNetworkingFoundation/CENTENNIAL/tree/master/code/ux/odlChat"> + <span class="white">https://github.com/OpenNetworkingFoundation/CENTENNIAL/tree/master/code/ux/odlChat</span> + </a> + </li> + </ul> + </p> + + + </div> + </div> + + <div class="row"> + <div class="col-md-11"> + <hr/ > + </div> + </div> + + <div class="row" ng-repeat="tweet in collection"> + <div class="col-md-2 text-right"> + <span class="white">{{tweet.nickname}}:</span> + </div> + <div class="col-md-8"> + <span class="white"> + <b>{{tweet.message}}</b> + </span> + </div> + <div class="col-md-1"> + <span>{{tweet.time}}</span> + </div> + </div> + + <div class="row"> + <div class="col-md-11"> + <hr/ > + </div> + </div> + + <div class="row"> + <div class="col-md-2 text-right"> + <input class="form-control" type="text" step="1" ng-model="chat.nickname" /> + </div> + <div class="col-md-8 text-right"> + <input class="form-control" type="text" step="1" ng-model="chat.message" /> + </div> + <div class="col-md-1"> + <button class="btn btn-primary" type="submit" ng-click="send(chat)">{{'MWTN_SEND' | translate}}</button> + </div> + </div> + + <div class="row"> + <div class="col-md-2 text-right"> + <span class="white">{{'MWTN_NICKNAME' | translate}} </span> + </div> + <div class="col-md-8 text-right"> + <span class="white">{{'MWTN_MESSAGE' | translate}} </span> + </div> + <div class="col-md-1"></div> + </div> +</div> +<hr /> +<div class="owl"> + <span class="white">ONAP SDN-R | ONF Wireless for @distversion@ - Build: @buildtime@</span> +</div> |