1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- "use strict";
- // Copyright 2012 United States Government, as represented by the Secretary of Defense, Under
- // Secretary of Defense (Personnel & Readiness).
- //
- // 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.
- /// vwf/admin
- /// module to provide outside of an application context functionality
- ///
- ///
- /// @module vwf/admin
- /// @requires rsvp
- define( [ "rsvp" ] , function( rsvp ) {
- // Helper function that takes the URL from the browser and attempts to generate
- // the application path and instance ID that are in use.
- function getPathInformation( ) {
- var result = {}
- result[ "applicationPath" ] = undefined;
- result[ "instanceID" ] = undefined;
- var app = window.location.pathname;
- var pathSplit = app.split( '/' );
- if ( pathSplit[ 0 ] == "" ) {
- pathSplit.shift( );
- }
- if ( pathSplit[ pathSplit.length - 1 ] == "" ) {
- pathSplit.pop( );
- }
- if ( ( pathSplit.length > 0 ) && ( pathSplit[ pathSplit.length - 1 ].length == 16 ) ) {
- result[ "instanceID" ] = pathSplit.pop( );
- }
- if ( pathSplit.length > 0 ) {
- result[ "applicationPath" ] = "/" + pathSplit.join("/") + "/";
- }
- else {
- result[ "applicationPath" ] = "/";
- }
- return result;
- };
-
- var exports = {
- // getSaveStates: Returns all save states that have been saved for this particular instance.
- // Implemented via a jQuery getJSON call with an interface derived from the rsvp Promise implementation.
- getSaveStates: function( ) {
- var pathInformation = getPathInformation( );
- var promise = new require( 'rsvp' ).Promise( function( resolve, reject ) {
- if ( pathInformation[ "instanceID" ] ) {
- var requestURL = pathInformation[ "applicationPath" ] + pathInformation[ "instanceID" ] + "/saves";
- $.getJSON( requestURL ).done( function( data ) {
- resolve( data );
- } ).fail( function( jqxhr, textStatus, error) {
- reject( { "error": error } );
- } );
- }
- else {
- reject( { "error": "getSaveStates could not identify current instance to get save states from" } );
- }
- } );
- return promise;
- },
- application: {
- // application.getSaveStates: Returns all save states that have been saved for this application, across all instances
- // Implemented via a jQuery getJSON call with an interface derived from the rsvp Promise implementation.
- getSaveStates: function( ) {
- var pathInformation = getPathInformation( );
- var promise = new require( 'rsvp' ).Promise( function( resolve, reject ) {
- var requestURL = pathInformation[ "applicationPath" ] + "saves";
- $.getJSON( requestURL ).done( function( data ) {
- resolve( data );
- } ).fail( function( jqxhr, textStatus, error) {
- reject( { "error": error } );
- } );
- } );
- return promise;
- }
- }
- };
- return exports;
- } );
|