Updated application sources
[apps/web/sample/CallLog.git] / project / js / main.js
1 /*
2 *      Copyright 2013  Samsung Electronics Co., Ltd
3 *
4 *      Licensed under the Flora License, Version 1.1 (the "License");
5 *      you may not use this file except in compliance with the License.
6 *      You may obtain a copy of the License at
7 *
8 *              http://floralicense.org/license/
9 *
10 *      Unless required by applicable law or agreed to in writing, software
11 *      distributed under the License is distributed on an "AS IS" BASIS,
12 *      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 *      See the License for the specific language governing permissions and
14 *      limitations under the License.
15 */
16
17 /*jslint devel: true*/
18 /*global $, tizen, App  */
19
20 /**
21 * This file acts as a loader for the application and its dependencies
22 *
23 * First, the 'app.js' script is loaded .
24 * Then, scripts defined in 'app.requires' are loaded.
25 * Finally, the app is initialised - the app is instantiated ('app = new App()')
26 * and 'app.init()' is called.
27 */
28
29 var app = null;
30
31 (function () { // strict mode wrapper
32     'use strict';
33
34     ({
35         /**
36         * Loader init - load the App constructor
37         */
38         init: function init() {
39             var self = this;
40             $.getScript('js/app.js')
41                 .done(function () {
42                     // once the app is loaded, create the app object
43                     // and load the libraries
44                     app = new App();
45                     self.loadLibs();
46                 })
47                 .fail(this.onGetScriptError);
48         },
49
50         /**
51         * Load dependencies
52         */
53         loadLibs: function loadLibs() {
54             var loadedLibs = 0;
55             if ($.isArray(app.requires)) {
56                 $.each(app.requires, function (index, filename) {
57                     $.getScript(filename)
58                         .done(function () {
59                             loadedLibs += 1;
60                             if (loadedLibs >= app.requires.length) {
61                                 // all dependencies are loaded,
62                                 // initialise the app
63                                 app.init();
64                             }
65                         })
66                         .fail(this.onGetScriptError);
67                 });
68             }
69         },
70
71         /**
72         * Handle ajax errors
73         */
74         onGetScriptError: function onGetScriptError(
75             e,
76             jqxhr,
77             setting,
78             exception
79         ) {
80             console.error('An error occurred: ' + e.message);
81         }
82
83     }).init(); // run the loader
84
85 }());