add cms, add todo
[ssproject1617.git] / testcms-final-anon / system / admin / theme / assets / js / custom_fields.js
1
2 (function() {
3 var a = $('create'), fields = $('fields');
4
5 var p = new Popup();
6
7 var create_field = function(key, label) {
8 var p = new Element('p', {
9 'id': 'field_' + key
10 }),
11 l = new Element('label', {
12 'html': label + ':'
13 }),
14 i = new Element('input', {
15 'name': 'field[' + key + ':' + label + ']',
16 'type': 'text'
17 });
18
19 p.grab(l);
20 p.grab(i);
21
22 fields.grab(p);
23 };
24
25 var add_field = function() {
26 // get data
27 var label = $$('input[name=field_label]').pop().get('value'),
28 key = $$('input[name=field_key]').pop().get('value'),
29 errors = [];
30
31 if(label.length == 0) {
32 errors.push('Please enter a field label');
33 }
34
35 if(key.length == 0) {
36 errors.push('Please enter a field key');
37 }
38
39 if(errors.length) {
40 // show errors
41 return false;
42 }
43
44 create_field(key, label);
45
46 p.close();
47 };
48
49 var show_add_field = function() {
50 var html = '<fieldset><legend>Custom Field</legend><em>Please enter the label and the key for your field.</em>';
51 html +='<p><label>Label</label><input name="field_label" type="text"></p>';
52 html +='<p><label>Key</label><input name="field_key" type="text"></p>';
53 html += '</fieldset>';
54 html +='<p class="buttons"><button name="create" type="button">Create</button> <a href="#close">Close</a></p>';
55
56 var box = new Element('div', {
57 'class': 'popup_wrapper',
58 'html': html
59 });
60
61 p.open({
62 'content': box
63 });
64
65 // bind popup events
66 $$('button[name=create]').addEvent('click', add_field);
67 $$('a[href$=#close]').addEvent('click', function() {
68 p.close();
69 return false;
70 });
71
72 return false;
73 };
74
75 // bind create method
76 a.addEvent('click', show_add_field);
77 }());
78