Some more l10n strings
[ajatus.git] / js / ajatus.widgets.js
blobbc451d232f737fc1b29b852777fc4e4bb67ee47c
1 /*
2 * This file is part of
4 * Ajatus - Distributed CRM
5 * @requires jQuery v1.2.1
6 *
7 * Copyright (c) 2007 Jerry Jalava <jerry.jalava@gmail.com>
8 * Copyright (c) 2007 Nemein Oy <http://nemein.com>
9 * Website: http://ajatus.info
10 * Licensed under the GPL license
11 * http://www.gnu.org/licenses/gpl.html
15 (function($){
16 $.ajatus = $.ajatus || {};
17 $.ajatus.widgets = $.ajatus.widgets || {};
19 $.ajatus.widgets.core = {
20 available: [
21 'text',
22 'wiki',
23 'tags',
24 'date',
25 'boolean',
26 'integer',
27 'tag',
28 'selection'
31 $.ajatus.widgets.loaded_widgets = [];
33 $.ajatus.widget = function(widget, config)
35 if (typeof($.ajatus.widgets[widget]) == 'undefined') {
36 $.ajatus.debug("widget '"+widget+"' not installed! Using text widget");
37 wdgt = $.ajatus.utils.object.clone($.ajatus.widgets.text);
38 } else {
39 wdgt = $.ajatus.utils.object.clone($.ajatus.widgets[widget]);
42 if (typeof wdgt == 'undefined') {
43 throw("FATAL: Couldn't init widget "+widget);
46 if (typeof config != 'undefined') {
47 wdgt.set_config(config);
50 return wdgt;
53 $.ajatus.widgets.widget_loaded = function(widget) {
54 $.ajatus.widgets[widget] = $.ajatus.widgets.core[widget];
56 $.ajatus.widgets[widget].loaded();
57 $.ajatus.widgets.loaded_widgets.push(widget);
59 $.ajatus.events.lock_pool.decrease();
62 $.ajatus.widgets.init = function()
64 $.ajatus.widgets.loaded_widgets = new Array();
66 if ($.browser.safari) {
67 $.ajatus.widgets.core.available = $.ajatus.widgets.core.available.reverse();
70 $.each($.ajatus.widgets.core.available, function(i,cw){
71 var widget_url = $.ajatus.preferences.client.application_url + 'js/widgets/'+cw+'.js';
73 $.ajatus.events.lock_pool.increase();
75 if ($.browser.safari) {
76 $('head').append('<script type="text/javascript" src="'+widget_url+'"></script>');
77 setTimeout("$.ajatus.widgets.widget_loaded('"+cw+"');", 200);
78 } else {
79 $.getScript(widget_url, function(){
80 $.ajatus.widgets.widget_loaded(cw);
81 });
83 });
85 // console.log("Loaded widgets:");
86 // console.log($.ajatus.widgets.loaded_widgets);
88 if ($.ajatus.preferences.client.custom_widgets.length > 0)
90 $.each($.ajatus.preferences.client.custom_widgets, function(i,cw){
91 $.ajatus.events.lock_pool.increase();
93 $.getScript($.ajatus.preferences.client.application_url + 'js/widgets/custom/'+cw+'.js', function(){
94 $.ajatus.widgets[cw] = $.ajatus.widgets.custom[cw];
95 $.ajatus.widgets[cw].loaded();
96 $.ajatus.widgets.loaded_widgets.push(cw);
98 $.ajatus.events.lock_pool.decrease();
99 });
104 $.ajatus.widgets.generate_settings_form = function(wdgt_sett, curr_sett)
106 var settings = $.extend(wdgt_sett, curr_sett);
107 var holder = $('<div class="settings_holder"/>');
108 var rows = $('<ul/>');
110 $.each(settings, function(i,s){
111 // console.log("i: "+i+" s: ");
112 // console.log(s);
113 var s_type = typeof(s);
114 // console.log('type: '+s_type);
115 var wdgt = null;
116 var normalized_name = i.toString().replace('_', ' ');
118 switch(s_type) {
119 case 'boolean':
120 wdgt = $.ajatus.widget('boolean');
121 break;
122 case 'number':
123 wdgt = $.ajatus.widget('integer');
124 break;
125 case 'string':
126 default:
127 wdgt = $.ajatus.widget('text');
130 rows.createAppend(
131 'li', { id: '_setting_'+i, className: 'row' }, [
132 'label', { id: '_setting_'+i+'_label' }, $.ajatus.i10n.get(normalized_name),
133 'div', { id: '_setting_'+i+'_widget', className: wdgt.name }, wdgt.get_create_tpl(i, s),
134 'br', { className: 'clear_fix' }, ''
137 wdgt.init($('#_setting_'+i+'_widget',rows), true);
139 rows.appendTo(holder);
141 $('li:first', rows).addClass('first');
142 $('li:last', rows).addClass('last');
144 return holder;
147 })(jQuery);