UNPKG

foam-framework

Version:
129 lines (118 loc) 2.97 kB
/** * @license * Copyright 2015 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 */ CLASS({ package: 'foam.apps.builder.administrator', name: 'AppConfig', extends: 'foam.apps.builder.AppConfig', constants: { EXISTING_SOURCES: [ 'foam.js', 'app_bg.js', 'app_view.html', ], }, properties: [ { name: 'appName', defaultValue: 'New Admin App' }, { name: 'defaultView', defaultValue: 'foam.apps.builder.administrator.AdminView', }, { name: 'targetAppConfig', }, { type: 'foam.apps.builder.AppWindow', name: 'appWindow', lazyFactory: function() { return this.AppWindow.create({ id: this.model_.id, name: 'Admin Window', }, this.Y); }, hidden: true, }, ], listeners: [ { name: 'findAppConfig', code: function() { this.masterAppDAO && this.targetAppId && this.masterAppDAO.find(this.targetAppId, { put: this.loadedAppConfig, error: function() { console.warn(this.appName,"select failed for",this.targetAppId); }.bind(this) }); } }, { name: 'loadedAppConfig', code: function(cfg) { if ( ! cfg ) { console.warn(this.appName,"Could not load",this.targetAppId); return; } if ( this.targetAppConfig.appId !== cfg.appId ) this.targetAppConfig = cfg; this.targetDAOInstance = cfg.createDAO(); this.targetModel = cfg.getDataConfig().model; this.browserConfig = this.BrowserConfig.create({ title$: this.appName$, label$: this.appName$, model$: this.targetModel$, dao$: this.targetDAOInstance$, detailView: { factory_: 'foam.ui.md.UpdateDetailView', liveEdit: true, minWidth: 600, preferredWidth: 10000 }, innerDetailView: { factory_: 'foam.apps.builder.AppConfigActionsView', delegate: 'foam.ui.md.DetailView' // per app editor view, or specialized per model? }, }); } }, ], templates: [ function toManifest() {/*{ "version": "%%version", "manifest_version": 2, "minimum_chrome_version": "43.0.0.0", "name": "%%appName", "app": { "background": { "scripts": [ "foam.js", "app_bg.js" ] } }, "permissions": [ "webview", "power", "storage", "videoCapture", "geolocation", "pointerLock", "system.display", { "fileSystem": [ "write", "retainEntries", "directory" ] }, "accessibilityFeatures.read", "accessibilityFeatures.modify" ] }*/} ], });