From 2f61dfca4466661e1ea23888675a86b601b58c63 Mon Sep 17 00:00:00 2001 From: Jose Antonio Marquez Date: Mon, 30 Jan 2012 14:35:11 -0800 Subject: Setting up new file Adding base functionality to creating files. --- js/io/system/coreioapi.js | 64 ++++++++++++------ js/io/system/fileio.js | 169 +++++++++++++++++++++++++++++++++++----------- 2 files changed, 175 insertions(+), 58 deletions(-) (limited to 'js/io/system') diff --git a/js/io/system/coreioapi.js b/js/io/system/coreioapi.js index 1585fc33..a10063f5 100755 --- a/js/io/system/coreioapi.js +++ b/js/io/system/coreioapi.js @@ -7,7 +7,6 @@ No rights, expressed or implied, whatsoever to this software are provided by Mot /* ///////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// NOTES: -These methods should only be access through the file and project IO classes. //////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// */ var Montage = require("montage/core/core").Montage, @@ -20,22 +19,29 @@ exports.CoreIoApi = Montage.create(Component, { deserializedFromTemplate: { enumerable: false, value: function () { - //////////////////////////////////////////////////////////// - - //TODO: Add logic for getting rooUrl from local storage - - //////////////////////////////////////////////////////////// - - - - //Checking for status of I/O API - this.ioDetected = this.isActive(); - //TODO: Add welcome screen logic, probably externally + //Checking for local storage of URL for IO + if (window.localStorage['ioRootUrl']) { + //Getting URL from local storage + this.rootUrl = window.localStorage['ioRootUrl']; + //Checks for IO API to be active + this.ioServiceDetected = this.isIoServiceActive(); + // + console.log('FileIO: localStorage URL detected | IO Service Detected: '+ this.ioServiceDetected); + // + } else { + //TODO: Remove, automatically prompt user on welcome + this.rootUrl = 'http://localhost:16380'; + //TODO: Changed to false, welcome screen prompts user + this.ioServiceDetected = this.isIoServiceActive(); + // + console.log('FileIO: localStorage URL NOT detected | IO Service Detected: '+ this.ioServiceDetected); + // + } } }, //////////////////////////////////////////////////////////////////// //Method to check status of I/O API, will return false if not active - isActive: { + isIoServiceActive: { enumerable: false, value: function () { //Doing a directory root check, a 200 status means running @@ -47,27 +53,27 @@ exports.CoreIoApi = Montage.create(Component, { } }, //////////////////////////////////////////////////////////////////// - //Root API URL - _ioDetected: { + // + _ioServiceDetected: { enumerable: false, value: false }, //////////////////////////////////////////////////////////////////// - // - ioDetected: { + //Checking for service availability on boot + ioServiceDetected: { enumerable: false, get: function() { - return this._ioDetected; + return this._ioServiceDetected; }, set: function(value) { - this._ioDetected = value; + this._ioServiceDetected = value; } }, //////////////////////////////////////////////////////////////////// //Root API URL _rootUrl: { enumerable: false, - value: 'http://localhost:16380' + value: null }, //////////////////////////////////////////////////////////////////// // @@ -78,6 +84,24 @@ exports.CoreIoApi = Montage.create(Component, { }, set: function(value) { this._rootUrl = value; + window.localStorage["ioRootUrl"] = value; + } + }, + //////////////////////////////////////////////////////////////////// + //API service URL + _apiServiceURL: { + enumerable: false, + value: '/' + }, + //////////////////////////////////////////////////////////////////// + // + apiServiceURL: { + enumerable: false, + get: function() { + return this.rootUrl+this._apiServiceURL; + }, + set: function(value) { + this._apiServiceURL = value; } }, //////////////////////////////////////////////////////////////////// diff --git a/js/io/system/fileio.js b/js/io/system/fileio.js index 1d76a91b..b3158a68 100755 --- a/js/io/system/fileio.js +++ b/js/io/system/fileio.js @@ -3,22 +3,139 @@ This file contains proprietary software owned by Motorola Mobility, Inc.
No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.
(c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved. */ +/* ///////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +NOTES: -//Required modules -var Serializer = require("montage/core/serializer").Serializer; + For newFile, only the 'uri' is required, if contents is empty, such + empty file will be created. 'contents' should be a string to be saved + as the file. 'contentType' is the mime type of the file. + +//////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////// */ +// +var Montage = require("montage/core/core").Montage, + CoreIoApi = require("js/io/system/coreioapi").CoreIoApi; +//////////////////////////////////////////////////////////////////////// //Exporting as File I/O -exports.FileIo = (require("montage/core/core").Montage).create(Object.prototype, { - /* -create: { - enumerable: true, - value: function (type) { - // - } - }, -*/ +exports.FileIo = Montage.create(Object.prototype, { //////////////////////////////////////////////////////////////////// - // - open: { + //newFile Object (*required): {uri*, contents, contentType} + //Return codes + // 204: File exists | 400: File exists | 404: File does not exists + // 201: File succesfully created | 500: Unknown | undefined: Unknown + newFile: { + enumerable: true, + value: function(file) { + //Checking for API to be available + if (!CoreIoApi.isIoServiceActive()) { + //API not available, no IO action taken + return null; + } + //Peforming check for file to exist + var check = CoreIoApi.fileExists(file.uri), status, create; + //Upon successful check, handling results + if (check.success) { + //Handling status of check + switch (check.status) { + case 204: + //Storing status to be returned (for UI handling) + status = check.status; + break; + case 404: + //File does not exists, ready to be created + create = CoreIoApi.createFile(file); + //Storing status to be returned (for UI handling) + if (create.success) { + status = check.status; + } + break; + default: + //Unknown Error + break; + } + } else { + //Unknown Error + } + //Returning resulting code + return status; + } + }, + readFile: { + enumerable: true, + value: function() { + // + } + }, + saveFile: { + enumerable: true, + value: function() { + // + } + }, + copyFile: { + enumerable: true, + value: function() { + // + } + } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /* +open: { enumerable: true, value: function(doc, type, uri, server) { // @@ -70,32 +187,7 @@ create: { enumerable: true, value: function(type, id, components) { - /* - - GETS HTML IN LOADED DOCUMENT - document.getElementById('userDocument').contentDocument.documentElement.outerHTML - - GETS HTML IN AND OR ANYTHING INSIDE - document.getElementById('userDocument').contentDocument.documentElement.innerHTML - - THE ABOVE METHOD SEEMS TO BE BETTER JUST IN CASE PEOPLE REMOVE THE BODY TAG SINCE NOT REQUIRED IN HTML5 - - GETS HTML IN ONLY - document.getElementById('userDocument').contentDocument.body.innerHTML - HACK TO GET THE STYLES OF THE ELEMENTS ADDED WHILE DRAWING - document.getElementById('userDocument').contentDocument.styleSheets[document.getElementById('userDocument').contentDocument.styleSheets.length-1] - - CSS SEEMS TO BE RESERVED WHEN APPENDED, MEANING 0 IN THE ARRAY IS ACTUALLY THE LAST DEFINED STYLE IN THE CSS - - //GETS CSS RULES APPLIED TO ALL OBJECTS CREATED BY THE APP - document.getElementById('userDocument').contentDocument.styleSheets[document.getElementById('userDocument').contentDocument.styleSheets.length-1].cssRules - - document.getElementById('userDocument').contentDocument.getElementById('userHead').innerHTML - document.getElementById('userDocument').contentDocument.getElementById('UserContent').innerHTML - this.getCssFromRules(document.getElementById('userDocument').contentDocument.styleSheets[document.getElementById('userDocument').contentDocument.styleSheets.length-1].cssRules) - - */ // var contents, counter = 0; @@ -215,6 +307,7 @@ create: { return css; } } +*/ -- cgit v1.2.3