123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 |
- function boot_spacedeck() {
- console.log("booting...");
- // custom directives
- setup_directives();
- setup_whiteboard_directives();
- setup_exclusive_audio_video_playback();
- var data = {
- active_view: null,
- online: true,
- was_offline: false,
- account: "profile",
- logged_in: false,
- guest_nickname: null,
- user: {},
- active_profile: null,
- active_profile_spaces: [],
- active_dropdown: "none",
- creating_user: false,
- signup_error: null,
- login_error: null,
- password_reset_send: false,
- password_reset_error: null,
- password_reset_email: null,
- password_reset_confirm_error: null,
- reset_token: null,
- global_spinner: false
- };
- var methods = {
- activate_dropdown: function(id, evt) {
- if (this.active_dropdown == id) {
- this.active_dropdown = "none";
- return;
- }
- this.active_dropdown = id;
- },
- close_dropdown: function(evt) {
- if (evt) {
- if ($(evt.target).parents(".dropdown").length) {
- return;
- }
- }
- this.active_dropdown = "none";
- },
- translate: function() {
- return i18n.t(arguments)
- },
- };
- // mix in functions from all Spacedeck modules
- methods = _.extend(methods, SpacedeckUsers.methods);
- methods = _.extend(methods, SpacedeckWebsockets.methods);
- methods = _.extend(methods, SpacedeckSpaces.methods);
- methods = _.extend(methods, SpacedeckTeams.methods);
- methods = _.extend(methods, SpacedeckBoardArtifacts);
- methods = _.extend(methods, SpacedeckFormatting);
- methods = _.extend(methods, SpacedeckSections.methods);
- methods = _.extend(methods, SpacedeckAvatars.methods);
- methods = _.extend(methods, SpacedeckModals.methods);
- methods = _.extend(methods, SpacedeckAccount.methods);
- methods = _.extend(methods, SpacedeckRoutes);
- data = _.extend(data, SpacedeckUsers.data);
- data = _.extend(data, SpacedeckAccount.data);
- data = _.extend(data, SpacedeckWebsockets.data);
- data = _.extend(data, SpacedeckSpaces.data);
- data = _.extend(data, SpacedeckTeams.data);
- data = _.extend(data, SpacedeckSections.data);
- data = _.extend(data, SpacedeckAvatars.data);
- data = _.extend(data, SpacedeckModals.data);
- Vue.filter('select', function (array, key, operant, value) {
- var res = _.filter(array, function(e){
- var test = eval(e[key] + " " + operant + " " + value);
- return test;
- });
- return res;
- });
- Vue.filter('date', function (value, format) {
- var day = moment(value);
- return day.format(format).replace("\'", "").replace("\'", "");
- });
- Vue.filter('exceptFilter', function (array, key) {
- var filtered = _.filter(array, function(i){
- return i[key]==undefined;
- });
- return filtered;
- });
- Vue.filter('size', function (array) {
- return array.length;
- });
- Vue.filter('empty?', function (array) {
- return array.length==0;
- });
- Vue.filter('urls_to_links', function (text) {
- return urls_to_links(text);
- });
- window.spacedeck = new Vue({
- el: "body",
- data: data,
- methods: methods
- });
- var lang = "en";
- window.refreshLocale = function() {
- if (spacedeck && spacedeck.user && spacedeck.user.preferences) {
- lang = spacedeck.user.preferences.language || "en";
- } else if (window.browser_lang) {
- lang = window.browser_lang;
- }
- }
- window.refreshLocale();
-
- i18n.init({ lng: lang, resStore: window.locales }, function(err, t) {
- console.log("i18n initialized: "+lang);
- });
- window.__ = function() {
- var params = Array.prototype.slice.call(arguments);
- params.shift();
- window.refreshLocale();
- return i18n.t(arguments[0], { postProcess: "sprintf", sprintf: params });
- };
- spacedeck.setup_section_module();
- spacedeck.load_user(function() {
- spacedeck.route();
- },function() {
- spacedeck.route();
- });
- window.addEventListener("paste", function(evt) {
- if (evt.target.nodeName=="INPUT" || (evt.target.nodeName=="TEXTAREA" && evt.target.id!="clipboard-ta") || evt.target.contenteditable) {
- // cancel
- return;
- }
- if (spacedeck.active_space) {
- spacedeck.handle_section_paste(evt);
- }
- });
- }
- document.addEventListener("DOMContentLoaded",function() {
- window.smoke = smoke;
- window.alert = smoke.alert;
-
- FastClick.attach(document.body);
- boot_spacedeck();
- });
|