diff options
Diffstat (limited to 'module/web/static/js/app.js')
-rw-r--r-- | module/web/static/js/app.js | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/module/web/static/js/app.js b/module/web/static/js/app.js new file mode 100644 index 000000000..53af4b797 --- /dev/null +++ b/module/web/static/js/app.js @@ -0,0 +1,56 @@ +/* + * Global Application Object + * Contains all necessary logic shared across views + */ +/*jslint browser: true*/ +define([ + + // Libraries. + 'jquery', + 'underscore', + 'backbone', + 'utils/initHB', + 'utils/animations', + 'utils/lazyRequire', + 'utils/dialogs', + 'wreqr', + 'bootstrap', + 'animate' + +], function($, _, Backbone, Handlebars) { + 'use strict'; + + var Application = function(options){ + this.vent = new Backbone.Wreqr.EventAggregator(); + _.extend(this, options); + }; + + // Add Global Helper functions + _.extend(Application.prototype, Backbone.Events, { + + // Generates options dict that can be used for xhr requests + apiRequest: function(method, data, options) { + options || (options = {}); + options.url = window.pathPrefix + "/api/" + method; + options.dataType = "json"; + if (data) { + options.type = "POST"; + options.data = {}; + // Convert arguments to json + _.keys(data).map(function(key) { + options.data[key] = JSON.stringify(data[key]); + }); + } + + return options; + }, + + openWebSocket: function(path) { + return new WebSocket(window.wsAddress.replace('%s', window.location.hostname) + path); + } + }); + + + // Returns the app object to be available to other modules through require.js. + return new Application(); +});
\ No newline at end of file |