summaryrefslogtreecommitdiffstats
path: root/module/web/static/js/app.js
diff options
context:
space:
mode:
Diffstat (limited to 'module/web/static/js/app.js')
-rw-r--r--module/web/static/js/app.js56
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