UNPKG

opfplatform

Version:

The celebrated OPF Platform for buidling enterprise Private App Stores

59 lines (46 loc) 1.65 kB
require('lib/setup') Spine = require('spine') Session = require("models/session") User = require("models/standard/user") class Platform extends Spine.Controller elements: ".platformCanvas" : "platformCanvas" constructor: -> super Spine.session = Session.create @options.session if @options.session Spine.options = @options LazyLoad.js "/#{@options.app}.js?width=#{$(window).width()}", => Spine.apps = {} for path in Spine.applicationPaths Spine.apps[path.replace(/\//g,'.')] = require(path) MainController = require("mainController") Spine.mainController = new MainController(el: @el) @navigate "" @setupRoutes() @navigate "/" setupRoutes: => homeAppNameString = Spine.options.initApp || "web/home" homeAppName = require("#{homeAppNameString}") @routes "/": => @currentApp?.reset?() @currentApp = new homeAppName() @platformCanvas.html @currentApp.el @registerBackButtons("unbind") "/app/:appName/*glob": (params) => @currentApp?.reset?() @goToApp(params.appName,params.glob) "/app/:appName": (params) => @currentApp?.reset?() @goToApp(params.appName) goToApp: (appName , params = null) => appClass = Spine.apps[appName] params = JSON.parse params Spine.currentPath = appName @currentApp = new appClass(params: params ) @platformCanvas.html @currentApp.el @registerBackButtons("bind") registerBackButtons: (type) => $(".btn_goBack")[type] "click" , => @currentApp.navigate "/" module.exports = Platform