Dutch from Niels Breet and Polish from Piotr Pokora
[ajatus.git] / js / ajatus.toolbar.js
blob1388ec4312afc45b27f17f9e7fc68ffc5dcc5a52
1 (function($){
2 $.ajatus = $.ajatus || {};
4 $.ajatus.toolbar = {
5 settings: {
6 enable_clone: false
7 },
8 visible: false,
9 objects: {},
10 items: []
12 $.extend($.ajatus.toolbar, {
13 init: function(settings) {
14 $.ajatus.toolbar.settings = $.extend($.ajatus.toolbar.settings, settings || {});
15 $.ajatus.toolbar.objects = {};
16 $.ajatus.toolbar.items = [];
18 var main_tb = $('#main-page_toolbar', $.ajatus.application_element).hide();
19 if (! main_tb[0]) {
20 main_tb = $.ajatus.toolbar.create_main();
21 } else {
22 $.ajatus.toolbar.prepare_main(main_tb);
25 $.ajatus.toolbar.objects['main'] = main_tb;
27 if ($.ajatus.toolbar.settings.enable_clone) {
28 var clone_tb = $('#clone-page_toolbar', $.ajatus.application_element).hide();
29 if (! clone_tb[0]) {
30 clone_tb = $.ajatus.toolbar.create_clone(main_tb);
31 } else {
32 $.ajatus.toolbar.prepare_clone();
34 $.ajatus.toolbar.objects['clone'] = clone_tb;
37 show: function(index) {
38 if (typeof index == 'undefined') {
39 $.each($.ajatus.toolbar.objects, function(i,o){
40 o.show();
41 });
42 } else {
43 if (typeof($.ajatus.toolbar.objects[index]) != 'undefined') {
44 $.ajatus.toolbar.objects[index].show();
47 $.ajatus.toolbar.visible = true;
49 hide: function(index) {
50 if (typeof index == 'undefined') {
51 $.each($.ajatus.toolbar.objects, function(i,o){
52 o.hide();
53 });
54 } else {
55 if (typeof($.ajatus.toolbar.objects[index]) != 'undefined') {
56 $.ajatus.toolbar.objects[index].hide();
59 $.ajatus.toolbar.visible = false;
61 add_item: function() {
62 if (arguments.length <= 0) {
63 return;
65 var item_obj = {
66 id: $.ajatus.utils.generate_id()
69 var title = arguments[0];
70 var icon = null;
71 var action = null;
73 var item_holder = $('ul.item_holder', $.ajatus.toolbar.objects['main']);
75 item_obj['title'] = title;
77 var item_content = [];
78 switch(arguments.length) {
79 case 2:
80 action = arguments[1];
81 item_obj['action'] = action;
82 item_content = [
83 'div', {}, title
85 break;
86 case 3:
87 icon = arguments[1];
88 action = arguments[2];
89 item_obj['icon'] = icon;
90 item_obj['action'] = action;
91 item_content = [
92 'div', {}, [
93 'img', { src: icon, alt: title, title: title }, ''
96 break;
98 item_holder.createAppend(
99 'li', { className: 'item', id: item_obj.id }, item_content
102 $('li:last', item_holder).bind('click', action);
104 if ($.ajatus.toolbar.settings.enable_clone) {
105 var item_holder = $('ul.item_holder', $.ajatus.toolbar.objects['clone']);
107 item_holder.createAppend(
108 'li', { className: 'item', id: item_obj.id+'_clone' }, item_content
111 $('li:last', item_holder).bind('click', action);
112 //$.ajatus.toolbar.clone();
115 $.ajatus.toolbar.items.push(item_obj);
116 return item_obj.id;
118 remove_item: function(id) {
119 var item_holder = $('ul.item_holder', $.ajatus.toolbar.objects['main']);
120 $('#'+id, item_holder).remove();
121 if ($.ajatus.toolbar.settings.enable_clone) {
122 var item_holder = $('ul.item_holder', $.ajatus.toolbar.objects['clone']);
123 $('#'+id+'_clone', item_holder).remove();
125 $.ajatus.toolbar.items = $.grep($.ajatus.toolbar.items, function(n,i){
126 if (n.id == id) {
127 return false;
129 return true;
132 create_main: function() {
135 create_clone: function() {
138 prepare_main: function(tb) {
139 var tb_content = $('.content', tb);
140 tb_content.html('');
141 var items_holder = $('<ul class="item_holder"/>');
142 items_holder.appendTo(tb_content);
144 prepare_clone: function(tb) {
145 var tb_content = $('.content', tb);
146 tb_content.html('');
147 var items_holder = $('<ul class="item_holder"/>');
148 items_holder.appendTo(tb_content);
150 clone: function() {
151 var main_tb_content = $('.content', $.ajatus.toolbar.objects['main']);
152 var clone_tb_content = $('.content', $.ajatus.toolbar.objects['clone']);
153 var main_items = $('ul.item_holder', main_tb_content).html();
154 $('ul.item_holder', clone_tb_content).html(main_items);
158 })(jQuery);