--- Webpacus/root/editor/editor.js 2005/11/26 23:26:45 168 +++ Webpacus/root/editor/editor.js 2005/11/29 14:31:26 193 @@ -6,96 +6,127 @@ var url = null; var template_filename = null; +var pending_js = null; + var css_rnd = 0; -function iwfRequest( url, div ) { - Logger.info('iwfRequest('+url+','+div+')'); - return; +function _ts(text) { + var el = $('div_template_status'); + if (el) el.innerHTML = text; } -function update_status(text) { - var el = $('div_record_nr'); +function _cs(text) { + var el = $('div_css_status'); if (el) el.innerHTML = text; } -function load_rec(nr) { - Logger.debug('load_rec '+nr); +function load_rec(nr, tmp_template_filename) { + + if (! nr) { + Logger.error('load_rec called without nr'); + return false; + } + + if (! tmp_template_filename) tmp_template_filename = template_filename; + Logger.info('load_rec '+nr+' in '+tmp_template_filename); if (loading.record) { Logger.info('loading of record '+nr+' skipped, load in progress'); - return; + return false; } + show_working(); + $('record_nr').disabled = 'true'; + if (nr == 1) { Element.addClassName('a_left_arr', 'nav_disable'); } else { Element.removeClassName('a_left_arr', 'nav_disable'); } - var args = '?mfn='+nr+'&template_filename='+template_filename; + var args = '?mfn='+nr+'&template_filename='+tmp_template_filename; new Ajax.Updater( 'div_record', url+'record'+args, { asynchronous: 1, onLoading: function(request) { loading.record = 1; - update_status(nr+'...'); Logger.info('load_rec.onLoading: '+nr); }, onLoaded: function(request) { loading.record = 0; - update_status('# '+nr); + hide_working(); + $('record_nr').value = nr; + $('record_nr').disabled = ''; + rec = nr; Logger.info('load_rec.onLoaded: '+nr); } } ) ; + return false; } function inc_rec() { + show_working(); rec++; load_rec(rec); + hide_working(); return false; } function dec_rec() { if (rec > 1) { + show_working(); rec--; load_rec(rec); + hide_working(); } return false; } function reload_rec() { + show_working(); load_rec(rec); + hide_working(); return false; } var current_edit = ''; function edit_template() { - $('div_css').style.visibility = "hidden"; + Element.hide('row_css'); + Element.removeClassName('a_css', 'tab_selected'); Element.addClassName('a_template', 'tab_selected'); - $('div_template').style.visibility = "visible"; + + Element.show('row_template'); + Logger.debug("switched to template editor"); var c = $('template_content'); if (c) c.focus(); + Logger.debug('zIndex template:'+$('row_template').style.zIndex+' css:'+$('row_css').style.zIndex); return false; } function edit_css() { - $('div_template').style.visibility = "hidden"; + + Element.hide('row_template'); + Element.removeClassName('a_template', 'tab_selected'); Element.addClassName('a_css', 'tab_selected'); - $('div_css').style.visibility = "visible"; + + Element.show('row_css'); + Logger.debug("switched to CSS editor"); var c = $('css_content'); if (c) c.focus(); + Logger.debug('zIndex template:'+$('row_template').style.zIndex+' css:'+$('row_css').style.zIndex); return false; } function switch_template(new_template_filename) { Logger.info('switch_template to '+new_template_filename); + show_working(); Logger.debug('load template editor'); template_filename = new_template_filename; @@ -104,14 +135,18 @@ Logger.debug('refresh record'); load_rec(rec); + edKill('template_content'); + + hide_working(); + return false; } var loading = { template: 0, css: 0, - record: 0, -} + record: 0 +}; function load_template( template_filename ) { @@ -120,9 +155,11 @@ return; } + show_working(); + var args = '?template_filename='+template_filename; - new Ajax.Updater( 'div_template', url+'template'+args, { + new Ajax.Updater( 'row_template', url+'template'+args, { asynchronous: 1, onLoading: function(request) { loading.template = 1; @@ -130,7 +167,7 @@ }, onLoaded: function(request) { loading.template = 0; - Position.clone('div_template', 'div_css'); + hide_working(); Logger.info('load_template.onLoaded: '+template_filename); } } ) ; @@ -143,7 +180,11 @@ return; } - new Ajax.Updater( 'div_css', url+'css', { + Logger.info('load_css '+css_filename); + + show_working(); + + new Ajax.Updater( 'row_css', url+'css', { asynchronous: 1, onLoading: function(request) { loading.css = 1; @@ -151,17 +192,42 @@ }, onLoaded: function(request) { loading.css = 0; + hide_working(); Logger.info('load_css.onLoaded: '+css_filename); + reload_css( css_filename ); } } ) ; }; -function init_page() { +function reload_css( css_filename ) { -// Element.hide('div_css'); -// Element.show('div_template'); + if (! css_filename) css_filename = 'user.css'; + + css_rnd++; + var css_url = url + 'css/' + css_filename + '?' + css_rnd; + Logger.info('reload_css from '+css_url); + $('user_css_link').href = css_url; + + return false; +} -// Position.clone('div_template', 'div_css'); +var working_count = 0; + +function show_working() { + working_count++; + if (working_count > 1) Element.show('working'); + Logger.debug('show_working, count = '+working_count); +} + +function hide_working() { + working_count--; + if (working_count < 1) Element.hide('working'); + Logger.debug('hide_working, count = '+working_count); +} + +function init_page() { + + show_working(); edit_template(); @@ -171,5 +237,7 @@ // load template editor and record switch_template(template_filename); + hide_working(); + }