summaryrefslogtreecommitdiffstats
path: root/sdnr/wireless-transport/code-Carbon-SR1/ux/odlChat/odlChat-module
diff options
context:
space:
mode:
Diffstat (limited to 'sdnr/wireless-transport/code-Carbon-SR1/ux/odlChat/odlChat-module')
-rw-r--r--sdnr/wireless-transport/code-Carbon-SR1/ux/odlChat/odlChat-module/pom.xml14
-rw-r--r--sdnr/wireless-transport/code-Carbon-SR1/ux/odlChat/odlChat-module/src/main/resources/odlChat/logo_chat.gifbin0 -> 2046 bytes
-rw-r--r--sdnr/wireless-transport/code-Carbon-SR1/ux/odlChat/odlChat-module/src/main/resources/odlChat/odlChat-custom.css3
-rw-r--r--sdnr/wireless-transport/code-Carbon-SR1/ux/odlChat/odlChat-module/src/main/resources/odlChat/odlChat.controller.js69
-rw-r--r--sdnr/wireless-transport/code-Carbon-SR1/ux/odlChat/odlChat-module/src/main/resources/odlChat/odlChat.module.js50
-rwxr-xr-xsdnr/wireless-transport/code-Carbon-SR1/ux/odlChat/odlChat-module/src/main/resources/odlChat/odlChat.pngbin0 -> 1862 bytes
-rw-r--r--sdnr/wireless-transport/code-Carbon-SR1/ux/odlChat/odlChat-module/src/main/resources/odlChat/odlChat.services.js103
-rw-r--r--sdnr/wireless-transport/code-Carbon-SR1/ux/odlChat/odlChat-module/src/main/resources/odlChat/odlChat.tpl.html102
8 files changed, 341 insertions, 0 deletions
diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/odlChat/odlChat-module/pom.xml b/sdnr/wireless-transport/code-Carbon-SR1/ux/odlChat/odlChat-module/pom.xml
new file mode 100644
index 00000000..730c40b1
--- /dev/null
+++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/odlChat/odlChat-module/pom.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project
+ xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>odlChat</artifactId>
+ <groupId>com.highstreet.technologies.odl.dlux</groupId>
+ <version>0.5.1-SNAPSHOT</version>
+ </parent>
+ <artifactId>odlChat-module</artifactId>
+ <name>${prefix} ${project.artifactId}</name>
+ <packaging>jar</packaging>
+</project> \ No newline at end of file
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
new 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
Binary files differ
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
new 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
Binary files differ
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>