Mercurial > hg > soundsoftware-site
comparison public/javascripts/application.js @ 245:051f544170fe
* Update to SVN trunk revision 4993
author | Chris Cannam |
---|---|
date | Thu, 03 Mar 2011 11:42:28 +0000 |
parents | 8661b858af72 |
children | 73ff0e6a11b1 cbce1fd3b1b7 |
comparison
equal
deleted
inserted
replaced
244:8972b600f4fb | 245:051f544170fe |
---|---|
42 | 42 |
43 function toggleFieldset(el) { | 43 function toggleFieldset(el) { |
44 var fieldset = Element.up(el, 'fieldset'); | 44 var fieldset = Element.up(el, 'fieldset'); |
45 fieldset.toggleClassName('collapsed'); | 45 fieldset.toggleClassName('collapsed'); |
46 Effect.toggle(fieldset.down('div'), 'slide', {duration:0.2}); | 46 Effect.toggle(fieldset.down('div'), 'slide', {duration:0.2}); |
47 } | |
48 | |
49 function hideFieldset(el) { | |
50 var fieldset = Element.up(el, 'fieldset'); | |
51 fieldset.toggleClassName('collapsed'); | |
52 fieldset.down('div').hide(); | |
47 } | 53 } |
48 | 54 |
49 var fileFieldCount = 1; | 55 var fileFieldCount = 1; |
50 | 56 |
51 function addFileField() { | 57 function addFileField() { |
247 | 253 |
248 Event.observe(window, 'load', f); | 254 Event.observe(window, 'load', f); |
249 Event.observe('project_enabled_module_names_issue_tracking', 'change', f); | 255 Event.observe('project_enabled_module_names_issue_tracking', 'change', f); |
250 } | 256 } |
251 | 257 |
258 /* | |
259 * Class used to warn user when leaving a page with unsaved textarea | |
260 * Author: mathias.fischer@berlinonline.de | |
261 */ | |
262 | |
263 var WarnLeavingUnsaved = Class.create({ | |
264 observedForms: false, | |
265 observedElements: false, | |
266 changedForms: false, | |
267 message: null, | |
268 | |
269 initialize: function(message){ | |
270 this.observedForms = $$('form'); | |
271 this.observedElements = $$('textarea'); | |
272 this.message = message; | |
273 | |
274 this.observedElements.each(this.observeChange.bind(this)); | |
275 this.observedForms.each(this.submitAction.bind(this)); | |
276 | |
277 window.onbeforeunload = this.unload.bind(this); | |
278 }, | |
279 | |
280 unload: function(){ | |
281 if(this.changedForms) | |
282 return this.message; | |
283 }, | |
284 | |
285 setChanged: function(){ | |
286 this.changedForms = true; | |
287 }, | |
288 | |
289 setUnchanged: function(){ | |
290 this.changedForms = false; | |
291 }, | |
292 | |
293 observeChange: function(element){ | |
294 element.observe('change',this.setChanged.bindAsEventListener(this)); | |
295 }, | |
296 | |
297 submitAction: function(element){ | |
298 element.observe('submit',this.setUnchanged.bindAsEventListener(this)); | |
299 } | |
300 }); | |
252 | 301 |
253 /* shows and hides ajax indicator */ | 302 /* shows and hides ajax indicator */ |
254 Ajax.Responders.register({ | 303 Ajax.Responders.register({ |
255 onCreate: function(){ | 304 onCreate: function(){ |
256 if ($('ajax-indicator') && Ajax.activeRequestCount > 0) { | 305 if ($('ajax-indicator') && Ajax.activeRequestCount > 0) { |