"use strict";
require("babel-polyfill");
+require('./dom-polyfills');
// Url retrieval function
window.baseUrl = function(path) {
return basePath + '/' + path;
};
+// Global Event System
+class EventManager {
+ constructor() {
+ this.listeners = {};
+ this.stack = [];
+ }
+
+ emit(eventName, eventData) {
+ this.stack.push({name: eventName, data: eventData});
+ if (typeof this.listeners[eventName] === 'undefined') return this;
+ let eventsToStart = this.listeners[eventName];
+ for (let i = 0; i < eventsToStart.length; i++) {
+ let event = eventsToStart[i];
+ event(eventData);
+ }
+ return this;
+ }
+
+ listen(eventName, callback) {
+ if (typeof this.listeners[eventName] === 'undefined') this.listeners[eventName] = [];
+ this.listeners[eventName].push(callback);
+ return this;
+ }
+}
+
+window.$events = new EventManager();
+
const Vue = require("vue");
const axios = require("axios");
'baseURL': window.baseUrl('')
}
});
+axiosInstance.interceptors.request.use(resp => {
+ return resp;
+}, err => {
+ if (typeof err.response === "undefined" || typeof err.response.data === "undefined") return Promise.reject(err);
+ if (typeof err.response.data.error !== "undefined") window.$events.emit('error', err.response.data.error);
+ if (typeof err.response.data.message !== "undefined") window.$events.emit('error', err.response.data.message);
+});
window.$http = axiosInstance;
+
Vue.prototype.$http = axiosInstance;
+Vue.prototype.$events = window.$events;
// AngularJS - Create application and load components
let translator = new Translations(window.translations);
window.trans = translator.get.bind(translator);
-// Global Event System
-class EventManager {
- constructor() {
- this.listeners = {};
- }
-
- emit(eventName, eventData) {
- if (typeof this.listeners[eventName] === 'undefined') return this;
- let eventsToStart = this.listeners[eventName];
- for (let i = 0; i < eventsToStart.length; i++) {
- let event = eventsToStart[i];
- event(eventData);
- }
- return this;
- }
-
- listen(eventName, callback) {
- if (typeof this.listeners[eventName] === 'undefined') this.listeners[eventName] = [];
- this.listeners[eventName].push(callback);
- return this;
- }
-}
-
-window.Events = new EventManager();
-Vue.prototype.$events = window.Events;
require("./vues/vues");
require("./components");
// Load in angular specific items
const Directives = require('./directives');
const Controllers = require('./controllers');
-Directives(ngApp, window.Events);
-Controllers(ngApp, window.Events);
+Directives(ngApp, window.$events);
+Controllers(ngApp, window.$events);
//Global jQuery Config & Extensions
};
});
+// Common jQuery actions
+$('[data-action="expand-entity-list-details"]').click(function() {
+ $('.entity-list.compact').find('p').not('.empty-text').slideToggle(240);
+});
+
+// Toggle thumbnail::hide image and reduce grid size
+$(document).ready(function(){
+ $('[data-action="expand-thumbnail"]').click(function(){
+ $('.gallery-item').toggleClass("collapse").find('img').slideToggle(50);
+ });
+});
+
+
// Detect IE for css
if(navigator.userAgent.indexOf('MSIE')!==-1
|| navigator.appVersion.indexOf('Trident/') > 0