diff options
Diffstat (limited to 'client/js/services')
| -rw-r--r-- | client/js/services/Compute.js | 279 | ||||
| -rw-r--r-- | client/js/services/Identity.js | 329 | ||||
| -rw-r--r-- | client/js/services/Image.js | 143 | ||||
| -rw-r--r-- | client/js/services/Loading.js | 45 | ||||
| -rw-r--r-- | client/js/services/Network.js | 29 | ||||
| -rw-r--r-- | client/js/services/Test.js | 8 |
6 files changed, 466 insertions, 367 deletions
diff --git a/client/js/services/Compute.js b/client/js/services/Compute.js index 36ddc16..5e95f22 100644 --- a/client/js/services/Compute.js +++ b/client/js/services/Compute.js @@ -1,141 +1,140 @@ -mainApp.factory('Compute',[ '$http', 'Identity', function($http, Identity){ - - - // Init data - var data={}; - data.machines=null; - data.axioms={} // Contain static data - data.axioms.ram=[128,512,1024,2048,4096]; - data.axioms.disk=[1,2,5,10,25,50,100,150,200] - data.axioms.images={}; // Retrieve after - - - /** - * Parse pullMachines answer - * @param {response} the server response - * @param {boolean} false if the request as been send true else - * @return {requestParserResult} the result of parsing - */ - var parsePullMachinesAnswer=function(response, failedToSendRequest){ - - // Defined return object - var requestParserResult={}; - requestParserResult.status=1; - requestParserResult.failReason=null; - - - if (typeof response.data.Servers !== 'undefined') { - // Set status code - requestParserResult.status=0; - data.machines=response.data.Servers; - - } - else if(failedToSendRequest){ - requestParserResult.failReason="Failed to send request"; - } - else{ - requestParserResult.failReason="Error"; - } - return requestParserResult; - }; - - - /** - * Retrieve machine list - * @param {callback} function to call after request complete - */ - var pullMachines=function(callback){ - // Send listServers request - var result=$http.post('../server/index.php', - $.param({"token" : Identity.getToken(), "task" : "compute", "action":"listServers"})); - - // Wait and handle the response - result.then(function (response){ - callback(parsePullMachinesAnswer(response, false)); - },function(response){ - callback(parsePullMachinesAnswer(response, true)); - }); - }; - - - /** - * Parse pullImages answer - * @param {response} the server response - * @param {boolean} false if the request as been send true else - * @return {requestParserResult} the result of parsing - */ - var parsePullImagesAnswer=function(response, failedToSendRequest){ - - // Defined return object - var requestParserResult={}; - requestParserResult.status=1; - requestParserResult.failReason=null; - - - if (typeof response.data.Images !== 'undefined') { - // Set status code - requestParserResult.status=0; - data.axioms.images=response.data.Images; - } - else if(failedToSendRequest){ - requestParserResult.failReason="Failed to send request"; - } - else{ - requestParserResult.failReason="Error"; - } - return requestParserResult; - }; - - - - - /** - * Retrieve machine list - * @param {callback} function to call after request complete - */ - var pullImages=function(callback){ - // Send listServers request - var result=$http.post('../server/index.php', - $.param({"token" : Identity.getToken(), "task" : "compute", "action":"listImages"})); - - // Wait and handle the response - result.then(function (response){ - callback(parsePullImagesAnswer(response, false)); - },function(response){ - callback(parsePullImagesAnswer(response, true)); - }); - }; - - - /** - * Retrieve all data - * @param {callback} function to call after request complete - */ - var pullData=function(callback){ - var nextFunction=function(response){ - if(response.status==0){ - pullMachines(callback); - } - } - pullImages(nextFunction); - } - - - /** - * Get Data - * @return {data} return the data object - */ - var getData=function(){ - return data; - } - - // Return services objects - return { - pullMachines: pullMachines, - pullData: pullData, - getData: getData - }; - - -}]); +mainApp.factory('Compute', ['$http', 'Identity', function ($http, Identity) { + + + // Init data + var data = {}; + data.machines = null; + data.axioms = {} // Contain static data + data.axioms.ram = [128, 512, 1024, 2048, 4096]; + data.axioms.disk = [1, 2, 5, 10, 25, 50, 100, 150, 200] + data.axioms.images = {}; // Retrieve after + + + /** + * Parse pullMachines answer + * @param {response} the server response + * @param {boolean} false if the request as been send true else + * @return {requestParserResult} the result of parsing + */ + var parsePullMachinesAnswer = function (response, failedToSendRequest) { + + // Defined return object + var requestParserResult = {}; + requestParserResult.status = 1; + requestParserResult.failReason = null; + + + if (typeof response.data.Servers !== 'undefined') { + // Set status code + requestParserResult.status = 0; + data.machines = response.data.Servers; + + } else if (failedToSendRequest) { + requestParserResult.failReason = "Failed to send PullMachine request"; + } else { + requestParserResult.failReason = "Error"; + } + return requestParserResult; + }; + + + /** + * Retrieve machine list + * @param {callback} function to call after request complete + */ + var pullMachines = function (callback) { + // Send listServers request + var result = $http.post('../server/index.php', + $.param({"token": Identity.getToken(), "task": "compute", "action": "listServers"})); + + // Wait and handle the response + result.then(function (response) { + callback(parsePullMachinesAnswer(response, false)); + }, function (response) { + callback(parsePullMachinesAnswer(response, true)); + }); + }; + + + /** + * Parse pullImages answer + * @param {response} the server response + * @param {boolean} false if the request as been send true else + * @return {requestParserResult} the result of parsing + */ + var parsePullImagesAnswer = function (response, failedToSendRequest) { + + // Defined return object + var requestParserResult = {}; + requestParserResult.status = 1; + requestParserResult.failReason = null; + + + if (typeof response.data.Images !== 'undefined') { + // Set status code + requestParserResult.status = 0; + data.axioms.images = response.data.Images; + } else if (failedToSendRequest) { + requestParserResult.failReason = "Failed to send PullImage request"; + } else { + requestParserResult.failReason = "Error"; + } + return requestParserResult; + }; + + + + + /** + * Retrieve machine list + * @param {callback} function to call after request complete + */ + var pullImages = function (callback) { + // Send listServers request + var result = $http.post('../server/index.php', + $.param({"token": Identity.getToken(), "task": "compute", "action": "listImages"})); + + // Wait and handle the response + result.then(function (response) { + callback(parsePullImagesAnswer(response, false)); + }, function (response) { + + callback(parsePullImagesAnswer(response, true)); + }); + }; + + + /** + * Retrieve all data + * @param {callback} function to call after request complete + */ + var pullData = function (callback) { + var nextFunction = function (response) { + if (response.status == 0) { + pullMachines(callback); + } else { + callback(response); + } + }; + pullImages(nextFunction); + }; + + + /** + * Get Data + * @return {data} return the data object + */ + var getData = function () { + return data; + }; + + // Return services objects + return { + pullMachines: pullMachines, + pullData: pullData, + getData: getData + }; + + + }]); diff --git a/client/js/services/Identity.js b/client/js/services/Identity.js index db93e97..17678ed 100644 --- a/client/js/services/Identity.js +++ b/client/js/services/Identity.js @@ -1,163 +1,168 @@ -mainApp.factory('Identity',[ '$http', '$cookies', function($http, $cookies){ - - /* Create profile structure to store informations - * about current session - */ - var profile={}; - profile.username=null; - profile.projectname=null; - var token=null; - - - /* - * @returns {boolean} Return true if a cookie is found (and load it in profile) false else - */ - var isAlreadyLogin=function(){ - - // Load cookies - var profileInCookie=$cookies.getObject('profile'); - var tokenPart_0InCookie=$cookies.getObject('token.part_0'); - var tokenPart_1InCookie=$cookies.getObject('token.part_1'); - - - // Check if cookie is defined - if(typeof profileInCookie !== 'undefined' - && typeof tokenPart_0InCookie !== 'undefined' - && typeof tokenPart_1InCookie !== 'undefined' - ){ - - // If yes, put it into variables - angular.extend(profile, profileInCookie); - token=tokenPart_0InCookie+tokenPart_1InCookie; - - // Return I'm Login - return true; - } - - // Return I'm not Login - return false; - } - - - - /* - * Destroy profile cookies - */ - var logout=function(){ - $cookies.remove('profile'); - $cookies.remove('token.part_0'); - $cookies.remove('token.part_1'); - token=null; - profile.username=null; - profile.projectname=null; - - // Reload Page - location.reload(); - } - - - /** - * - * @param {string} response The response to parse - * @param {boolean} to check if the request is send or not - * @returns {requestParserResult} Formated data - */ - var parseLoginAnswer=function(response, failedToSendRequest){ - - // Defined return object - var requestParserResult={}; - requestParserResult.status=1; - requestParserResult.failReason=null; - - if (typeof response.data.token !== 'undefined') { - // Set status code - requestParserResult.status=0; - - // Find the middle of the token to split it - var middle=parseInt(response.data.token.length/2); - - // Create expire date (cookie expire in 55 mins) - var expireDate=new Date(); - expireDate.setMinutes(expireDate.getMinutes()+55); - - // Save profile - $cookies.putObject('profile', profile, {'expires': expireDate}); - // Save first part of token - $cookies.putObject('token.part_0', response.data.token.substring(0, middle), {'expires': expireDate}); - // Save second part of token - $cookies.putObject('token.part_1', response.data.token.substring(middle, response.data.token.length), {'expires': expireDate}); - - // Put token in var - token=response.data.token; - - } - else if(failedToSendRequest){ - requestParserResult.failReason="Failed to send request"; - } - else{ - requestParserResult.failReason="Please check your username, password and project name !"; - } - - - return requestParserResult; - }; - - - /** - * Function to connect to OpenStack - * - * @param {object} $http Angular $http service - * @param {string} username The user name - * @param {string} password The user password - * @param {string} projectname The user project name - * @param {function} function to call when data is avalaible - */ - var login=function(username, password,projectname,callback){ - - // Set profile information (early) - profile.username=username; - profile.projectname=projectname; - - var result=$http.post('../server/index.php', - $.param({"task" : "Authenticate", "user" : username, "password" : password, "project" : projectname})); - - // Wait and handle the response - result.then(function (response){ - callback(parseLoginAnswer(response, false)); - },function(response){ - callback(parseLoginAnswer(response, true)); - }); - }; - - - - - - /* - * Get the profile - */ - var getProfile=function(){ - return profile; - } - - /* - * Get the token - */ - var getToken=function(){ - return token; - } - - - - // Return services objects - return { - login: login, - getProfile: getProfile, - isAlreadyLogin: isAlreadyLogin, - logout:logout, - getToken:getToken - }; - - -}]); +mainApp.factory('Identity', ['$http', '$cookies', '$rootScope', function ($http, $cookies, $rootScope) { + + /* Create profile structure to store informations + * about current session + */ + var profile = {}; + profile.username = null; + profile.projectname = null; + var token = null; + + + /* + * @returns {boolean} Return true if a cookie is found (and load it in profile) false else + */ + var isAlreadyLogin = function () { + + // Load cookies + var profileInCookie = $cookies.getObject('profile'); + var tokenPart_0InCookie = $cookies.getObject('token.part_0'); + var tokenPart_1InCookie = $cookies.getObject('token.part_1'); + + + // Check if cookie is defined + if (typeof profileInCookie !== 'undefined' + && typeof tokenPart_0InCookie !== 'undefined' + && typeof tokenPart_1InCookie !== 'undefined' + ) { + + //if(token!==null){ + // If yes, put it into variables + angular.extend(profile, profileInCookie); + token = tokenPart_0InCookie + tokenPart_1InCookie; + //} + + // Return I'm Login + return true; + } + + // Show the login overlay + $rootScope.$broadcast("logoutEvent"); + + // Return I'm not Login + return false; + }; + + + + /* + * Destroy profile cookies + */ + var logout = function () { + $cookies.remove('profile'); + $cookies.remove('token.part_0'); + $cookies.remove('token.part_1'); + token = null; + profile.username = null; + profile.projectname = null; + + // Reload Page + //location.reload(); + $rootScope.$broadcast("logoutEvent"); + + }; + + + /** + * + * @param {string} response The response to parse + * @param {boolean} to check if the request is send or not + * @returns {requestParserResult} Formated data + */ + var parseLoginAnswer = function (response, failedToSendRequest) { + + // Defined return object + var requestParserResult = {}; + requestParserResult.status = 1; + requestParserResult.failReason = null; + + if (typeof response.data.token !== 'undefined') { + // Set status code + requestParserResult.status = 0; + + // Find the middle of the token to split it + var middle = parseInt(response.data.token.length / 2); + + // Create expire date (cookie expire in 55 mins) + var expireDate = new Date(); + expireDate.setMinutes(expireDate.getMinutes() + 55); + + // Save profile + $cookies.putObject('profile', profile, {'expires': expireDate}); + // Save first part of token + $cookies.putObject('token.part_0', response.data.token.substring(0, middle), {'expires': expireDate}); + // Save second part of token + $cookies.putObject('token.part_1', response.data.token.substring(middle, response.data.token.length), {'expires': expireDate}); + + // Put token in var + token = response.data.token; + + } else if (failedToSendRequest) { + requestParserResult.failReason = "Failed to send request"; + } else { + requestParserResult.failReason = "Please check your username, password and project name !"; + } + + + return requestParserResult; + }; + + + /** + * Function to connect to OpenStack + * + * @param {object} $http Angular $http service + * @param {string} username The user name + * @param {string} password The user password + * @param {string} projectname The user project name + * @param {function} function to call when data is avalaible + */ + var login = function (username, password, projectname, callback) { + + // Set profile information (early) + profile.username = username; + profile.projectname = projectname; + + var result = $http.post('../server/index.php', + $.param({"task": "Authenticate", "user": username, "password": password, "project": projectname})); + + // Wait and handle the response + result.then(function (response) { + callback(parseLoginAnswer(response, false)); + }, function (response) { + callback(parseLoginAnswer(response, true)); + }); + }; + + + + + + /* + * Get the profile + */ + var getProfile = function () { + return profile; + }; + + /* + * Get the token + */ + var getToken = function () { + return token; + }; + + + + // Return services objects + return { + login: login, + getProfile: getProfile, + isAlreadyLogin: isAlreadyLogin, + logout: logout, + getToken: getToken + }; + + + }]); diff --git a/client/js/services/Image.js b/client/js/services/Image.js index 2e8c56f..795f85e 100644 --- a/client/js/services/Image.js +++ b/client/js/services/Image.js @@ -1,59 +1,114 @@ -mainApp.factory('Image',[ '$http', 'Identity', function($http, Identity){ +mainApp.factory('Image', ['$http', 'Identity', function ($http, Identity) { - var data={}; - data.images=null; + // Data object + var data = {}; + data.images = null; // Images + /** + * Parse uploadImage anwser + * @param {type} response + * @param {type} failedToSendRequest + * @returns {Image_L2.parseUploadImageAnswer.requestParserResult} + */ + var parseUploadImageAnswer = function (response, failedToSendRequest) { - var parseUploadImageAnswer=function(response, failedToSendRequest){ + // Defined return object + var requestParserResult = {}; + requestParserResult.status = 1; + requestParserResult.failReason = null; - // Defined return object - var requestParserResult={}; - requestParserResult.status=1; - requestParserResult.failReason=null; - - if (typeof response.data.Images !== 'undefined') { - // Set status code - requestParserResult.status=0; - data.images=response.data.Images; + if (typeof response.data.Images !== 'undefined') { + // Set status code + requestParserResult.status = 0; + data.images = response.data.Images; - } - else if(failedToSendRequest){ - requestParserResult.failReason="Failed to send request"; - } - else{ - requestParserResult.failReason="Error"; - } - return requestParserResult; - }; + } else if (failedToSendRequest) { + requestParserResult.failReason = "Failed to send request"; + } else { + requestParserResult.failReason = "Error"; + } + return requestParserResult; + }; - var getImages=function(callback){ + /** + * Get images + * @param {type} callback + * @returns {undefined} + */ + var getImages = function (callback) { - var result=$http.post('../server/index.php', - $.param({"token" : Identity.getToken(), "task" : "image", 'action':'listImage'})); + var result = $http.post('../server/index.php', + $.param({"token": Identity.getToken(), "task": "image", 'action': 'listImage'})); - // Wait and handle the response - result.then(function (response){ - callback(parseUploadImageAnswer(response, false)); - },function(response){ - callback(parseUploadImageAnswer(response, true)); - }); + // Wait and handle the response + result.then(function (response) { + callback(parseUploadImageAnswer(response, false)); + }, function (response) { + callback(parseUploadImageAnswer(response, true)); + }); - - }; + }; - var getData=function(response){ - return data; - }; - - // Return services objects - return { - getImages:getImages, - getData:getData - }; + /** + * Upload an image + * @param {type} fileToUpload + * @param {type} callback + * @returns {undefined} + */ + var uploadImage = function (fileToUpload, callback) { + var form_data = new FormData(); + form_data.append('file', fileToUpload); + console.log(fileToUpload); + form_data.append("task", "image"); + form_data.append("token", Identity.getToken()); + form_data.append('action', "uploadImage"); + form_data.append('id', '6564'); + form_data.append('file_name', fileToUpload); - -}]); + $.ajax({ + url: "../server/index.php", // Url to which the request is send + type: "POST", // Type of request to be send, called as method + data: form_data, // Data sent to server, a set of key/value pairs (i.e. form fields and values) + file_name: fileToUpload, + token: Identity.getToken(), + task: "image", + action: 'uploadImage', + id: '6564', + contentType: false, // The content type used when sending data to the server. + cache: false, // To unable request pages to be cached + processData: false, // To send DOMDocument or non processed data file it is set to false + success: function (data) // A function to be called if request succeeds + { + alert("success"); + } + }); + + //var result=$http.post('../server/index.php', + // $.param({"token" : Identity.getToken(), "task" : "image", 'action':'uploadImage', 'file_name':form_data, 'id':'6564'})); + + // Wait and handle the response + /* result.then(function (response){ + callback(parseUploadImageAnswer(response, false)); + },function(response){ + callback(parseUploadImageAnswer(response, true)); + });*/ + }; + + + var getData = function (response) { + return data; + }; + + // Return services objects + return { + getImages: getImages, + getData: getData, + uploadImage: uploadImage + }; + + + }]); diff --git a/client/js/services/Loading.js b/client/js/services/Loading.js index db06194..7ea2b42 100644 --- a/client/js/services/Loading.js +++ b/client/js/services/Loading.js @@ -1,23 +1,26 @@ +/** + * Loading service + * @param {type} param1 + * @param {type} param2 + */ +mainApp.factory('Loading', [function () { + /** + * Display Loading modal + */ + var start = function () { + $('#loadingModal').modal({backdrop: 'static', keyboard: false}); + }; -mainApp.factory('Loading',[ function(){ - /** - * Display Loading modal - */ - var start=function(){ - $('#loadingModal').modal({backdrop: 'static', keyboard: false}); - }; + /** + * Hide Loading modal + */ + var stop = function () { + $('#loadingModal').modal('hide'); + }; - /** - * Hide Loading modal - */ - var stop=function(){ - $('#loadingModal').modal('hide'); - } - - - // Service returns - return { - start:start, - stop:stop - }; -}]); + // Service returns + return { + start: start, + stop: stop + }; + }]); diff --git a/client/js/services/Network.js b/client/js/services/Network.js new file mode 100644 index 0000000..a0cd5a4 --- /dev/null +++ b/client/js/services/Network.js @@ -0,0 +1,29 @@ + +mainApp.factory('Network', ['$http', 'Identity', function ($http, Identity) { + + // Data object + var data = {}; + data.networks = null; // Networks + + /** + * ListId + * @param {type} fileToUpload + * @param {type} callback + * @returns {undefined} + */ + var ListId = function (fileToUpload, callback) { + var result = $http.post('../server/index.php', + $.param({"token": Identity.getToken(), "task": "network", 'action': 'list_network_ids'})); + + // Wait and handle the response + result.then(function (response) { + callback(parseUploadImageAnswer(response, false)); + }, function (response) { + callback(parseUploadImageAnswer(response, true)); + }); + }; + + + }]); + + diff --git a/client/js/services/Test.js b/client/js/services/Test.js new file mode 100644 index 0000000..f12c6b9 --- /dev/null +++ b/client/js/services/Test.js @@ -0,0 +1,8 @@ +var app = angular.module('mainApp',[]); +app.controller('hassan', function($scope,$http){ + $http.get('http://127.0.0.1/database.json').success(function(response){ + $scope.persons = response.records; +}); + + +}); |
