var LearningDashboard = function ($) { 'use strict'; var me = { settings: { frontendTechnology: 'vue' }, storage: { dashboardData: null }, elem: { container: '#learning-dashboard-container' }, init: function () { me.getDashboardData().then(me.runDashboard); }, getDashboardData: function () { return $.ajax({ url: 'index.php?module=learningdashboard&action=ajax&cmd=get_content', method: 'get', success: function (data) { me.storage.dashboardData = data; }, error: function (xhr, status, httpStatus) { $(me.elem.container).html('Fehler beim Abrufen der Daten: ' + httpStatus); } }); }, runDashboard: function () { if (me.storage.dashboardData === null) { $(me.elem.container).html('No data - dashboard could not be loaded'); return; } if (me.settings.frontendTechnology === 'vue') { var vueConstructor = { el: me.elem.container, data: me.storage.dashboardData, created: function () { if (this.wording === undefined) { return; } Vue.prototype.$wording = this.wording; } }; new Vue(vueConstructor); } } }; return { init: me.init }; }(jQuery); $(document).ready(function () { LearningDashboard.init(); });