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) {