Added prev_val and required support to tag widget
[ajatus.git] / js / widgets / tag.js
blob108daad66c1c3196e1b0b821f654a1f4f1a18cbf
1 /*
2  * This file is part of
3  *
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
12  * 
13  */
15 (function($){
16     $.ajatus = $.ajatus || {};
17     $.ajatus.widgets = $.ajatus.widgets || {};
18     $.ajatus.widgets.core = typeof($.ajatus.widgets.core) == 'undefined' ? {} : $.ajatus.widgets.core;
20     $.ajatus.widgets.core.tag = {
21         name: 'tag',
22         settings: {
23             color: '8596b6',
24             context: '',
25             value: ''
26         },
27         get_create_tpl: function(name, default_value)
28         {
29             return [
30                 'input', { type: 'hidden', name: 'widget['+name+':name]', value: this.name }, '',
31                 'input', { type: 'hidden', name: 'widget['+name+':config]', value: $.ajatus.converter.toJSON(this.settings) }, '',
32                 'input', { type: 'hidden', name: 'widget['+name+':required]', value: this.required }, '',
33                 'input', { type: 'text', className: 'text', name: name, value: default_value }, ''
34             ];
35         },
36         get_edit_tpl: function(name, data)
37         {
38             data.val = this.value_on_edit(data.val);
39             return [
40                 'input', { type: 'hidden', name: 'widget['+name+':name]', value: this.name }, '',
41                 'input', { type: 'hidden', name: 'widget['+name+':config]', value: $.ajatus.converter.toJSON(this.settings) }, '',
42                 'input', { type: 'hidden', name: 'widget['+name+':required]', value: this.required }, '',
43                 'input', { type: 'hidden', name: 'widget['+name+':prev_val]', value: $.ajatus.converter.toJSON(data.val) }, '',
44                 'input', { type: 'text', className: 'text', name: name, value: data.val }, ''
45             ];
46         },
47         get_view_tpl: function(name, data)
48         {
49             data.val = this.value_on_view(data.val);
50             return [
51                 'div', { className: data._id+'_element_'+name+'_value' }, [                
52                     'span', { className: this.name + '_widget_bgcolor_block' }, data.val
53                 ]
54             ];
55         },
56         set_config: function(config)
57         {
58             this.settings = $.extend({}, this.settings, config);
59         },
60         value_on_save: function(value)
61         {
62             return value;
63         },
64         value_on_edit: function(value)
65         {
66             return value;
67         },
68         value_on_view: function(value)
69         {
70             return value;
71         },
72         loaded: function()
73         {
74         },
75         init: function(holder, form_mode)
76         {
77             if (form_mode) {
78                 this.init_form_mode(holder);
79             } else {
80                 this.init_view_mode(holder);                
81             }            
82         },
83         init_form_mode: function(holder)
84         {
85             // TODO: Append color picker widget after title field.
86             // Save value to object settings
87         },
88         init_view_mode: function(holder)
89         {
90             // TODO: Find 'tag_widget_bgcolor_block element and set its background
91             // from objects settings.color value
92         },
93     };
95 })(jQuery);