Merge branch '2015.11' into 2015.11-develop
[tine20] / tine20 / Setup / js / init.js
1 /*
2  * Tine 2.0
3  * 
4  * @package     Setup
5  * @license     http://www.gnu.org/licenses/agpl.html AGPL Version 3
6  * @author      Cornelius Weiss <c.weiss@metaways.de>
7  * @copyright   Copyright (c) 2009 Metaways Infosystems GmbH (http://www.metaways.de)
8  *
9  */
10
11 /*global Ext, Tine*/
12
13 Ext.ns('Tine', 'Tine.Setup');
14
15 /**
16  * local storage prefix for Setup
17  */
18 Tine.Tinebase.tineInit.initAjax.lsPrefix = Tine.Tinebase.common.getUrl('path') + 'TineSetup';
19
20 /**
21  * init ajax
22  */
23 Tine.Tinebase.tineInit.initAjax = Tine.Tinebase.tineInit.initAjax.createInterceptor(function () {
24     // setup calls can take quite a while
25     Ext.Ajax.timeout = 900000; // 15 mins
26     Tine.Tinebase.tineInit.requestUrl = 'setup.php';
27     
28     return true;
29 });
30
31 /**
32  * init registry
33  */
34 Tine.Tinebase.tineInit.initRegistry = Tine.Tinebase.tineInit.initRegistry.createInterceptor(function () {
35     Tine.Tinebase.tineInit.clearRegistry();
36     Tine.Tinebase.tineInit.getAllRegistryDataMethod = 'Setup.getAllRegistryData';
37     Tine.Tinebase.tineInit.jsonKeyCookieId = 'TINE20SETUPJSONKEY';
38     Tine.Tinebase.tineInit.stateful = false;
39     
40     return true;
41 });
42
43 Tine.Tinebase.tineInit.onRegistryLoad = Tine.Tinebase.tineInit.onRegistryLoad.createInterceptor(function () {
44     // fake a setup user
45     var setupUser = {
46         accountId           : 1,
47         accountDisplayName  : Tine.Setup.registry.get('currentAccount'),
48         accountLastName     : 'Admin',
49         accountFirstName    : 'Setup',
50         accountFullName     : 'Setup Admin'
51     };
52     Tine.Tinebase.registry.add('currentAccount', setupUser);
53
54     // enable setup app
55     Tine.Tinebase.registry.add('userApplications', [{
56         name:   'Setup',
57         status: 'enabled'
58     }]);
59     Tine.Tinebase.MainScreenPanel.prototype.defaultAppName = 'Setup';
60     Tine.Tinebase.MainScreenPanel.prototype.hideAppTabs = true;
61
62     return true;
63 });
64
65 /**
66  * render window
67  */
68 Tine.Tinebase.tineInit.renderWindow = Tine.Tinebase.tineInit.renderWindow.createInterceptor(function () {
69     var mainCardPanel = Tine.Tinebase.viewport.tineViewportMaincardpanel;
70     
71     // if a config file exists, the admin needs to login!        
72     if (Tine.Setup.registry.get('configExists') && !Tine.Setup.registry.get('currentAccount')) {
73         Tine.loginPanel = new Tine.Tinebase.LoginPanel({
74             loginMethod: 'Setup.login',
75             loginLogo: 'images/tine_logo_setup.png',
76             scope: this,
77             onLogin: function (response) {
78                 Tine.Tinebase.tineInit.initRegistry(true, function() {
79                     Ext.MessageBox.hide();
80                     Tine.Tinebase.tineInit.renderWindow();
81                 });
82             }
83         });
84         mainCardPanel.layout.container.add(Tine.loginPanel);
85         mainCardPanel.layout.setActiveItem(Tine.loginPanel.id);
86         Tine.loginPanel.doLayout();
87         
88         return false;
89     }
90 });
91