Commit 6db46ab48e24f08d5f7592b4dbddfeb01d8bd1ce
1 parent
35943bbb
Exists in
master
and in
28 other branches
ActionItem93: removing stuff left by comatose
git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@957 3f533792-8f58-4932-b0fe-aaf55b0a4547
Showing
7 changed files
with
0 additions
and
424 deletions
Show diff stats
public/images/comatose/collapsed.gif
176 Bytes
public/images/comatose/expanded.gif
181 Bytes
public/images/comatose/no-children.gif
51 Bytes
public/images/comatose/page.gif
471 Bytes
public/images/comatose/spinner.gif
2.44 KB
public/images/comatose/title-hover-bg.gif
1.2 KB
public/javascripts/comatose_admin.js
@@ -1,424 +0,0 @@ | @@ -1,424 +0,0 @@ | ||
1 | -// CSS Browser Selector v0.2.3b (M@: added noscript support) | ||
2 | -// Documentation: http://rafael.adm.br/css_browser_selector | ||
3 | -// License: http://creativecommons.org/licenses/by/2.5/ | ||
4 | -// Author: Rafael Lima (http://rafael.adm.br) | ||
5 | -// Contributors: http://rafael.adm.br/css_browser_selector#contributors | ||
6 | -var css_browser_selector = function() { | ||
7 | - var | ||
8 | - ua = navigator.userAgent.toLowerCase(), | ||
9 | - is = function(t){ return ua.indexOf(t) != -1; }, | ||
10 | - h = document.getElementsByTagName('html')[0], | ||
11 | - b = (!(/opera|webtv/i.test(ua)) && /msie (\d)/.test(ua)) ? ((is('mac') ? 'ieMac ' : '') + 'ie ie' + RegExp.$1) | ||
12 | - : is('gecko/') ? 'gecko' : is('opera') ? 'opera' : is('konqueror') ? 'konqueror' : is('applewebkit/') ? 'webkit safari' : is('mozilla/') ? 'gecko' : '', | ||
13 | - os = (is('x11') || is('linux')) ? ' linux' : is('mac') ? ' mac' : is('win') ? ' win' : ''; | ||
14 | - var c = b+os+' js'; | ||
15 | - h.className = h.className.replace('noscript', '') + h.className?' '+c:c; | ||
16 | -}(); | ||
17 | - | ||
18 | -// List View Functions | ||
19 | -var ComatoseList = { | ||
20 | - save_node_state: true, | ||
21 | - state_store: 'cookie', // Only 'cookie' for now | ||
22 | - state_key: 'ComatoseTreeState', | ||
23 | - | ||
24 | - init: function() { | ||
25 | - var items = ComatoseList._read_state(); | ||
26 | - items.each(function(node){ | ||
27 | - ComatoseList.expand_node(node.replace('page_controller_', '')) | ||
28 | - }); | ||
29 | - }, | ||
30 | - | ||
31 | - toggle_tree_nodes : function(img, id) { | ||
32 | - if(/expanded/.test(img.src)) { | ||
33 | - $('page_list_'+ id).addClassName('collapsed'); | ||
34 | - img.src = img.src.replace(/expanded/, 'collapsed') | ||
35 | - if(ComatoseList.save_node_state) { | ||
36 | - var items = ComatoseList._read_state(); | ||
37 | - items = items.select(function(id){ return id != img.id; }) | ||
38 | - ComatoseList._write_state(items); | ||
39 | - } | ||
40 | - } else { | ||
41 | - $('page_list_'+ id).removeClassName('collapsed'); | ||
42 | - img.src = img.src.replace(/collapsed/, 'expanded') | ||
43 | - if(ComatoseList.save_node_state) { | ||
44 | - var items = ComatoseList._read_state(); | ||
45 | - items.push(img.id); | ||
46 | - ComatoseList._write_state(items); | ||
47 | - } | ||
48 | - } | ||
49 | - }, | ||
50 | - | ||
51 | - expand_node: function(id) { | ||
52 | - $('page_list_'+ id).removeClassName('collapsed'); | ||
53 | - $('page_controller_'+ id).src = $('page_controller_'+ id).src.replace(/collapsed/, 'expanded') | ||
54 | - }, | ||
55 | - | ||
56 | - collapse_node: function(id) { | ||
57 | - $('page_list_'+ id).addClassName('collapsed'); | ||
58 | - $('page_controller_'+ id).src = $('page_controller_'+ id).src.replace(/expanded/, 'collapsed') | ||
59 | - }, | ||
60 | - | ||
61 | - item_hover : function(node, state, is_delete) { | ||
62 | - if( state == 'over') { | ||
63 | - $(node).addClassName( (is_delete) ? 'hover-delete' : 'hover' ); | ||
64 | - } else { | ||
65 | - $(node).removeClassName( (is_delete) ? 'hover-delete' : 'hover' ); | ||
66 | - } | ||
67 | - }, | ||
68 | - | ||
69 | - toggle_reorder: function(node, anc, id, reorder_text, finished_text) { | ||
70 | - if( $(node).hasClassName('do-reorder') ) { | ||
71 | - $(node).removeClassName( 'do-reorder' ); | ||
72 | - $(anc).removeClassName('reordering'); | ||
73 | - $(anc).innerHTML = reorder_text; | ||
74 | - } else { | ||
75 | - $(node).addClassName( 'do-reorder' ); | ||
76 | - $(anc).addClassName('reordering'); | ||
77 | - $(anc).innerHTML = finished_text; | ||
78 | - // Make sure the children are visible... | ||
79 | - ComatoseList.expand_node(id); | ||
80 | - } | ||
81 | - }, | ||
82 | - | ||
83 | - _write_state: function(items) { | ||
84 | - var cookie = {}; var options = {}; var expiration = new Date(); | ||
85 | - cookie[ ComatoseList.state_key ] = items.join(','); | ||
86 | - expiration.setDate(expiration.getDate()+30) | ||
87 | - options['expires'] = expiration; | ||
88 | - Cookie.write( cookie, options ); | ||
89 | - }, | ||
90 | - | ||
91 | - _read_state: function() { | ||
92 | - var state = Cookie.read( ComatoseList.state_key ); | ||
93 | - return (state != "" && state != null) ? state.split(',') : []; | ||
94 | - } | ||
95 | -} | ||
96 | - | ||
97 | -// Edit Form Functions | ||
98 | -var ComatoseEditForm = { | ||
99 | - | ||
100 | - default_data: {}, | ||
101 | - last_preview: {}, | ||
102 | - last_title_slug: '', | ||
103 | - mode : null, | ||
104 | - liquid_horiz: false, // changed from true to false by terceiro | ||
105 | - width_offset: 325, | ||
106 | - | ||
107 | - // Initialize the page... | ||
108 | - init : function(mode) { | ||
109 | - this.mode = mode; | ||
110 | - this.default_data = Form.serialize(document.forms[0]); | ||
111 | - if(mode == 'new') { | ||
112 | - this.last_title_slug = $('page_title').value.toSlug(); | ||
113 | - Event.observe('page_title', 'blur', ComatoseEditForm.title_updated_aggressive); | ||
114 | - } else { | ||
115 | - Event.observe('page_title', 'blur', ComatoseEditForm.title_updated); | ||
116 | - } | ||
117 | - $('page_title').focus(); | ||
118 | - Hide.these( | ||
119 | - 'preview-area', | ||
120 | - 'slug_row', | ||
121 | - 'parent_row', | ||
122 | - 'keywords_row', | ||
123 | - 'filter_row', | ||
124 | - 'created_row' | ||
125 | - ); | ||
126 | - $('page_title').select(); | ||
127 | - // Create the horizontal liquidity of the fields | ||
128 | - if(this.liquid_horiz) { | ||
129 | - xOffset = this.width_offset; | ||
130 | - new Layout.LiquidHoriz((xOffset + 50), 'page_title'); | ||
131 | - new Layout.LiquidHoriz(xOffset, 'page_slug','page_keywords','page_parent','page_body'); | ||
132 | - } | ||
133 | - }, | ||
134 | - // For use when updating an existing page... | ||
135 | - title_updated : function() { | ||
136 | - slug = $('page_slug'); | ||
137 | - if(slug.value == "") { | ||
138 | - title = $('page_title'); | ||
139 | - slug.value = title.value.toSlug(); | ||
140 | - } | ||
141 | - }, | ||
142 | - // For use when creating a new page... | ||
143 | - title_updated_aggressive : function() { | ||
144 | - slug = $('page_slug'); | ||
145 | - title = $('page_title'); | ||
146 | - if(slug.value == "" || slug.value == this.last_title ) { | ||
147 | - slug.value = title.value.toSlug(); | ||
148 | - } | ||
149 | - this.last_title = slug.value; | ||
150 | - }, | ||
151 | - // Todo: Make the meta fields remember their visibility? | ||
152 | - toggle_extra_fields : function(anchor, more_label, less_label) { | ||
153 | - if(anchor.innerHTML == more_label) { | ||
154 | - Show.these( | ||
155 | - 'slug_row', | ||
156 | - 'keywords_row', | ||
157 | - 'parent_row', | ||
158 | - 'filter_row', | ||
159 | - 'created_row' | ||
160 | - ); | ||
161 | - anchor.innerHTML = less_label; | ||
162 | - } else { | ||
163 | - Hide.these( | ||
164 | - 'slug_row', | ||
165 | - 'keywords_row', | ||
166 | - 'parent_row', | ||
167 | - 'filter_row', | ||
168 | - 'created_row' | ||
169 | - ); | ||
170 | - anchor.innerHTML = more_label; | ||
171 | - } | ||
172 | - }, | ||
173 | - // Uses server to create preview of content... | ||
174 | - preview_content : function(preview_url, preview_label) { | ||
175 | - $('preview-area').show(); | ||
176 | - var params = Form.serialize(document.forms[0]); | ||
177 | - if( params != this.last_preview ) { | ||
178 | - $('preview-panel').innerHTML = "<span style='color:blue;'>" + preview_label + "</span>"; | ||
179 | - new Ajax.Updater( | ||
180 | - 'preview-panel', | ||
181 | - preview_url, | ||
182 | - { parameters: params } | ||
183 | - ); | ||
184 | - } | ||
185 | - this.last_preview = params; | ||
186 | - }, | ||
187 | - cancel : function(url, cancel_warning) { | ||
188 | - var current_data = Form.serialize(document.forms[0]); | ||
189 | - var data_changed = (this.default_data != current_data) | ||
190 | - if(data_changed) { | ||
191 | - if( confirm(cancel_warning) ) { | ||
192 | - location.href = url; | ||
193 | - } | ||
194 | - } else { | ||
195 | - location.href = url; | ||
196 | - } | ||
197 | - | ||
198 | - } | ||
199 | -} | ||
200 | - | ||
201 | -var Hide = { | ||
202 | - these : function() { | ||
203 | - for (var i = 0; i < arguments.length; i++) { | ||
204 | - try { | ||
205 | - $(arguments[i]).hide(); | ||
206 | - } catch (e) {} | ||
207 | - } | ||
208 | - } | ||
209 | -} | ||
210 | - | ||
211 | -var Show = { | ||
212 | - these : function() { | ||
213 | - for (var i = 0; i < arguments.length; i++) { | ||
214 | - try { | ||
215 | - $(arguments[i]).show(); | ||
216 | - } catch (e) {} | ||
217 | - } | ||
218 | - } | ||
219 | -} | ||
220 | - | ||
221 | -// Layout namespace | ||
222 | -var Layout = {}; | ||
223 | - | ||
224 | -// This class allows dom objects to stretch with the browser | ||
225 | -// (for when a good, cross-browser, CSS approach can't be found) | ||
226 | -Layout.LiquidBase = Class.create(); | ||
227 | -// Base class for all Liquid* layouts... | ||
228 | -Object.extend(Layout.LiquidBase.prototype, { | ||
229 | - enabled: true, | ||
230 | - elems: [], | ||
231 | - offset: null, | ||
232 | - // Constructor is (offset, **array_of_elements) | ||
233 | - initialize: function() { | ||
234 | - args = $A(arguments) | ||
235 | - this.offset = args.shift(); | ||
236 | - this.elems = args.select( function(elem){ return ($(elem) != null) } ); | ||
237 | - if( this.elems.length > 0 ) { | ||
238 | - this.on_resize(); // Initial size | ||
239 | - Event.observe(window, 'resize', this.on_resize.bind(this) ); | ||
240 | - Event.observe(window, 'load', this.on_resize.bind(this) ); | ||
241 | - } | ||
242 | - }, | ||
243 | - resize_in: function(timeout) { | ||
244 | - setTimeout( this.on_resize.bind(this), timeout ); | ||
245 | - }, | ||
246 | - on_resize: function() { | ||
247 | - // Need to override! | ||
248 | - alert('Override on_resize, please!'); | ||
249 | - } | ||
250 | -}); | ||
251 | - | ||
252 | - | ||
253 | -// Liquid vertical layout | ||
254 | -Layout.LiquidVert = Class.create(); | ||
255 | -Object.extend(Layout.LiquidVert.prototype, Object.extend(Layout.LiquidBase.prototype, { | ||
256 | - on_resize: function() { | ||
257 | - if( this.offset != null && this.enabled ) { | ||
258 | - var new_height = ((window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight) - this.offset) +"px"; | ||
259 | - this.elems.each(function(e){ $(e).style.height = new_height; }) | ||
260 | - } | ||
261 | - } | ||
262 | -}) ); | ||
263 | - | ||
264 | - | ||
265 | -// Liquid horizontal layout | ||
266 | -Layout.LiquidHoriz = Class.create(); | ||
267 | -Object.extend(Layout.LiquidHoriz.prototype, Object.extend(Layout.LiquidBase.prototype, { | ||
268 | - on_resize: function() { | ||
269 | - if( this.offset != null && this.enabled ) { | ||
270 | - var new_width = ((window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth) - this.offset) +"px"; | ||
271 | - this.elems.each( function(e){ $(e).style.width = new_width; }) | ||
272 | - } | ||
273 | - } | ||
274 | -}) ); | ||
275 | - | ||
276 | -// String Extensions... Yes, these are from Radiant! ;-) | ||
277 | -Object.extend(String.prototype, { | ||
278 | - upcase: function() { | ||
279 | - return this.toUpperCase(); | ||
280 | - }, | ||
281 | - downcase: function() { | ||
282 | - return this.toLowerCase(); | ||
283 | - }, | ||
284 | - strip: function() { | ||
285 | - return this.replace(/^\s+/, '').replace(/\s+$/, ''); | ||
286 | - }, | ||
287 | - toInteger: function() { | ||
288 | - return parseInt(this); | ||
289 | - }, | ||
290 | - toSlug: function() { | ||
291 | - // M@: Modified from Radiant's version, removes multple --'s next to each other | ||
292 | - // This is the same RegExp as the one on the page model... | ||
293 | - return this.strip().transliterate().downcase().replace(/[^-a-z0-9~\s\.:;+=_]/g, '').replace(/[\s\.:;=_+]+/g, '-').replace(/[\-]{2,}/g, '-'); | ||
294 | - }, | ||
295 | - transliterate: function() { | ||
296 | - var substitutions = [ | ||
297 | - { from: [ 'Á', 'À', 'À', 'Â', 'Ã', 'Ä' ], to: 'A' }, | ||
298 | - { from: [ 'á', 'à', 'à', 'â', 'ã', 'ä', 'ª' ], to: 'a' }, | ||
299 | - { from: [ 'É', 'È', 'Ê', 'Ë' ], to: 'E' }, | ||
300 | - { from: [ 'é', 'è', 'ê', 'ë' ], to: 'e' }, | ||
301 | - { from: [ 'Í', 'Ì', 'Î', 'Ï' ], to: 'I' }, | ||
302 | - { from: [ 'í', 'ì', 'î', 'ï' ], to: 'i' }, | ||
303 | - { from: [ 'Ó', 'Ò', 'Ô', 'Ö', 'Õ', 'º' ], to: 'O' }, | ||
304 | - { from: [ 'ó', 'ò', 'ô', 'ö', 'õ', 'º' ], to: 'o' }, | ||
305 | - { from: [ 'Ú', 'Ù', 'Û', 'Ü' ], to: 'U' }, | ||
306 | - { from: [ 'ú', 'ù', 'û', 'ü' ], to: 'u' }, | ||
307 | - { from: [ 'Ç' ], to: 'C' }, | ||
308 | - { from: [ 'ç' ], to: 'c' }, | ||
309 | - { from: [ 'Ñ' ], to: 'N' }, | ||
310 | - { from: [ 'ñ' ], to: 'n' }, | ||
311 | - { from: [ 'Ÿ' ], to: 'Y' }, | ||
312 | - { from: [ 'ÿ' ], to: 'y' }, | ||
313 | - ] | ||
314 | - var res = this; | ||
315 | - for (i in substitutions) { for (from in substitutions[i].from) { res = res.replace(substitutions[i].from[from], substitutions[i].to); } }; | ||
316 | - return res; | ||
317 | - } | ||
318 | -}); | ||
319 | - | ||
320 | -// Run a spinner when an AJAX request in running... | ||
321 | -var ComatoseAJAXSpinner = { | ||
322 | - busy : function () { | ||
323 | - if($('spinner') && Ajax.activeRequestCount > 0) { | ||
324 | - Effect.Appear('spinner',{duration:0.5,queue:'end'}); | ||
325 | - } | ||
326 | - }, | ||
327 | - | ||
328 | - notBusy: function() { | ||
329 | - if($('spinner') && Ajax.activeRequestCount == 0) { | ||
330 | - Effect.Fade('spinner',{duration:0.5,queue:'end'}); | ||
331 | - } | ||
332 | - } | ||
333 | -} | ||
334 | -// Register it with Prototype... | ||
335 | -Ajax.Responders.register({ | ||
336 | - onCreate: ComatoseAJAXSpinner.busy, | ||
337 | - onComplete: ComatoseAJAXSpinner.notBusy | ||
338 | -}); | ||
339 | - | ||
340 | - | ||
341 | -if(!window.Cookie) | ||
342 | - (function (){ | ||
343 | - // From Mephisto! | ||
344 | - window.Cookie = { | ||
345 | - version: '0.7', | ||
346 | - cookies: {}, | ||
347 | - _each: function(iterator) { | ||
348 | - $H(this.cookies).each(iterator); | ||
349 | - }, | ||
350 | - | ||
351 | - getAll: function() { | ||
352 | - this.cookies = {}; | ||
353 | - $A(document.cookie.split('; ')).each(function(cookie) { | ||
354 | - var seperator = cookie.indexOf('='); | ||
355 | - this.cookies[cookie.substring(0, seperator)] = | ||
356 | - unescape(cookie.substring(seperator + 1, cookie.length)); | ||
357 | - }.bind(this)); | ||
358 | - return this.cookies; | ||
359 | - }, | ||
360 | - | ||
361 | - read: function() { | ||
362 | - var cookies = $A(arguments), results = []; | ||
363 | - this.getAll(); | ||
364 | - cookies.each(function(name) { | ||
365 | - if (this.cookies[name]) results.push(this.cookies[name]); | ||
366 | - else results.push(null); | ||
367 | - }.bind(this)); | ||
368 | - return results.length > 1 ? results : results[0]; | ||
369 | - }, | ||
370 | - | ||
371 | - write: function(cookies, options) { | ||
372 | - if (cookies.constructor == Object && cookies.name) cookies = [cookies]; | ||
373 | - if (cookies.constructor == Array) { | ||
374 | - $A(cookies).each(function(cookie) { | ||
375 | - this._write(cookie.name, cookie.value, cookie.expires, | ||
376 | - cookie.path, cookie.domain); | ||
377 | - }.bind(this)); | ||
378 | - } else { | ||
379 | - options = options || {expires: false, path: '', domain: ''}; | ||
380 | - for (name in cookies){ | ||
381 | - this._write(name, cookies[name], | ||
382 | - options.expires, options.path, options.domain); | ||
383 | - } | ||
384 | - } | ||
385 | - }, | ||
386 | - | ||
387 | - _write: function(name, value, expires, path, domain) { | ||
388 | - if (name.indexOf('=') != -1) return; | ||
389 | - var cookieString = name + '=' + escape(value); | ||
390 | - if (expires) cookieString += '; expires=' + expires.toGMTString(); | ||
391 | - if (path) cookieString += '; path=' + path; | ||
392 | - if (domain) cookieString += '; domain=' + domain; | ||
393 | - document.cookie = cookieString; | ||
394 | - }, | ||
395 | - | ||
396 | - erase: function(cookies) { | ||
397 | - var cookiesToErase = {}; | ||
398 | - $A(arguments).each(function(cookie) { | ||
399 | - cookiesToErase[cookie] = ''; | ||
400 | - }); | ||
401 | - | ||
402 | - this.write(cookiesToErase, {expires: (new Date((new Date()).getTime() - 1e11))}); | ||
403 | - this.getAll(); | ||
404 | - }, | ||
405 | - | ||
406 | - eraseAll: function() { | ||
407 | - this.erase.apply(this, $H(this.getAll()).keys()); | ||
408 | - } | ||
409 | - }; | ||
410 | - | ||
411 | - Object.extend(Cookie, { | ||
412 | - get: Cookie.read, | ||
413 | - set: Cookie.write, | ||
414 | - | ||
415 | - add: Cookie.read, | ||
416 | - remove: Cookie.erase, | ||
417 | - removeAll: Cookie.eraseAll, | ||
418 | - | ||
419 | - wipe: Cookie.erase, | ||
420 | - wipeAll: Cookie.eraseAll, | ||
421 | - destroy: Cookie.erase, | ||
422 | - destroyAll: Cookie.eraseAll | ||
423 | - }); | ||
424 | - })(); |