/[webpac2]/Webpacus/root/editor/editor.js
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Annotation of /Webpacus/root/editor/editor.js

Parent Directory Parent Directory | Revision Log Revision Log


Revision 357 - (hide annotations)
Sat Jan 7 23:43:38 2006 UTC (18 years, 4 months ago) by dpavlin
File MIME type: application/javascript
File size: 5703 byte(s)
 r381@llin:  dpavlin | 2006-01-08 00:35:45 +0100
 resize textarea and store it's size into cookie, added log link at top [0.30]

1 dpavlin 134 /*
2     Webpacus template editor
3     */
4    
5     var rec = null;
6     var url = null;
7     var template_filename = null;
8    
9 dpavlin 175 var pending_js = null;
10    
11 dpavlin 134 var css_rnd = 0;
12    
13 dpavlin 175 function _ts(text) {
14     var el = $('div_template_status');
15 dpavlin 134 if (el) el.innerHTML = text;
16     }
17    
18 dpavlin 175 function _cs(text) {
19     var el = $('div_css_status');
20     if (el) el.innerHTML = text;
21     }
22    
23 dpavlin 187 function load_rec(nr, tmp_template_filename) {
24 dpavlin 165
25 dpavlin 187 if (! nr) {
26     Logger.error('load_rec called without nr');
27     return false;
28     }
29    
30 dpavlin 244 var rec_uri = $F('rec_uri_prefix');
31     if (! rec_uri) Logger.error('rec_uri_prefix field not found in form!');
32     rec_uri += '/' + nr;
33    
34 dpavlin 187 if (! tmp_template_filename) tmp_template_filename = template_filename;
35 dpavlin 244 Logger.info('load_rec '+rec_uri+' in '+tmp_template_filename);
36 dpavlin 187
37 dpavlin 165 if (loading.record) {
38 dpavlin 244 Logger.info('loading of record '+rec_uri+' skipped, load in progress');
39 dpavlin 191 return false;
40 dpavlin 165 }
41    
42 dpavlin 170 show_working();
43     $('record_nr').disabled = 'true';
44    
45 dpavlin 134 if (nr == 1) {
46 dpavlin 166 Element.addClassName('a_left_arr', 'nav_disable');
47 dpavlin 134 } else {
48 dpavlin 166 Element.removeClassName('a_left_arr', 'nav_disable');
49 dpavlin 134 }
50 dpavlin 165
51 dpavlin 244 var args = '?record_uri='+rec_uri+'&template_filename='+tmp_template_filename;
52 dpavlin 165
53     new Ajax.Updater( 'div_record', url+'record'+args, {
54     asynchronous: 1,
55     onLoading: function(request) {
56     loading.record = 1;
57     Logger.info('load_rec.onLoading: '+nr);
58     },
59     onLoaded: function(request) {
60     loading.record = 0;
61 dpavlin 170 hide_working();
62     $('record_nr').value = nr;
63     $('record_nr').disabled = '';
64     rec = nr;
65 dpavlin 165 Logger.info('load_rec.onLoaded: '+nr);
66     }
67     } ) ;
68    
69 dpavlin 191 return false;
70 dpavlin 134 }
71    
72     function inc_rec() {
73 dpavlin 170 show_working();
74 dpavlin 134 rec++;
75     load_rec(rec);
76 dpavlin 170 hide_working();
77 dpavlin 134 return false;
78     }
79    
80     function dec_rec() {
81     if (rec > 1) {
82 dpavlin 170 show_working();
83 dpavlin 134 rec--;
84     load_rec(rec);
85 dpavlin 170 hide_working();
86 dpavlin 134 }
87     return false;
88     }
89    
90     function reload_rec() {
91 dpavlin 170 show_working();
92 dpavlin 134 load_rec(rec);
93 dpavlin 170 hide_working();
94 dpavlin 134 return false;
95     }
96    
97 dpavlin 163 var current_edit = '';
98    
99 dpavlin 134 function edit_template() {
100 dpavlin 193 Element.hide('row_css');
101    
102 dpavlin 163 Element.removeClassName('a_css', 'tab_selected');
103     Element.addClassName('a_template', 'tab_selected');
104 dpavlin 193
105     Element.show('row_template');
106    
107 dpavlin 163 Logger.debug("switched to template editor");
108 dpavlin 164 var c = $('template_content');
109     if (c) c.focus();
110 dpavlin 193 Logger.debug('zIndex template:'+$('row_template').style.zIndex+' css:'+$('row_css').style.zIndex);
111 dpavlin 134 return false;
112     }
113    
114     function edit_css() {
115 dpavlin 193
116     Element.hide('row_template');
117    
118 dpavlin 163 Element.removeClassName('a_template', 'tab_selected');
119     Element.addClassName('a_css', 'tab_selected');
120 dpavlin 193
121     Element.show('row_css');
122    
123 dpavlin 163 Logger.debug("switched to CSS editor");
124 dpavlin 164 var c = $('css_content');
125     if (c) c.focus();
126 dpavlin 193 Logger.debug('zIndex template:'+$('row_template').style.zIndex+' css:'+$('row_css').style.zIndex);
127 dpavlin 134 return false;
128     }
129    
130 dpavlin 168 function switch_template(new_template_filename) {
131 dpavlin 134
132 dpavlin 168 Logger.info('switch_template to '+new_template_filename);
133 dpavlin 170 show_working();
134 dpavlin 168
135 dpavlin 134 Logger.debug('load template editor');
136 dpavlin 168 template_filename = new_template_filename;
137     load_template(new_template_filename);
138 dpavlin 134
139     Logger.debug('refresh record');
140     load_rec(rec);
141 dpavlin 168
142 dpavlin 175 edKill('template_content');
143    
144 dpavlin 170 hide_working();
145    
146 dpavlin 168 return false;
147 dpavlin 134 }
148    
149     var loading = {
150     template: 0,
151     css: 0,
152 dpavlin 169 record: 0
153     };
154 dpavlin 134
155 dpavlin 167 function load_template( template_filename ) {
156 dpavlin 134
157     if (loading.template) {
158 dpavlin 167 Logger.info('loading of template '+template_filename+' skipped, load in progress');
159 dpavlin 134 return;
160     }
161    
162 dpavlin 172 show_working();
163    
164 dpavlin 165 var args = '?template_filename='+template_filename;
165    
166 dpavlin 193 new Ajax.Updater( 'row_template', url+'template'+args, {
167 dpavlin 134 asynchronous: 1,
168     onLoading: function(request) {
169     loading.template = 1;
170 dpavlin 167 Logger.info('load_template.onLoading: '+template_filename);
171 dpavlin 134 },
172     onLoaded: function(request) {
173     loading.template = 0;
174 dpavlin 170 hide_working();
175 dpavlin 167 Logger.info('load_template.onLoaded: '+template_filename);
176 dpavlin 134 }
177     } ) ;
178     }
179    
180 dpavlin 194 function load_css( css_filename ) {
181 dpavlin 134
182     if (loading.css) {
183 dpavlin 167 Logger.info('loading of css '+css_filename+' skipped, load in progress');
184 dpavlin 134 return;
185     }
186    
187 dpavlin 194 var css_url = url + 'css?css_filename='+css_filename;
188 dpavlin 193
189 dpavlin 194 Logger.info('load_css '+css_url);
190    
191 dpavlin 172 show_working();
192    
193 dpavlin 194 new Ajax.Updater( 'row_css', css_url, {
194 dpavlin 134 asynchronous: 1,
195     onLoading: function(request) {
196     loading.css = 1;
197 dpavlin 167 Logger.info('load_css.onLoading: '+css_filename);
198 dpavlin 134 },
199     onLoaded: function(request) {
200     loading.css = 0;
201 dpavlin 170 hide_working();
202 dpavlin 167 Logger.info('load_css.onLoaded: '+css_filename);
203 dpavlin 193 reload_css( css_filename );
204 dpavlin 134 }
205     } ) ;
206     };
207    
208 dpavlin 193 function reload_css( css_filename ) {
209 dpavlin 172
210 dpavlin 193 if (! css_filename) css_filename = 'user.css';
211    
212 dpavlin 172 css_rnd++;
213 dpavlin 194 var css_url = '/css/' + css_filename + '?' + css_rnd;
214 dpavlin 191 Logger.info('reload_css from '+css_url);
215     $('user_css_link').href = css_url;
216 dpavlin 172
217 dpavlin 170 return false;
218     }
219    
220     var working_count = 0;
221    
222     function show_working() {
223     working_count++;
224     if (working_count > 1) Element.show('working');
225     Logger.debug('show_working, count = '+working_count);
226     }
227    
228     function hide_working() {
229     working_count--;
230     if (working_count < 1) Element.hide('working');
231     Logger.debug('hide_working, count = '+working_count);
232     }
233    
234 dpavlin 357 /* called body.onLoad */
235    
236 dpavlin 134 function init_page() {
237 dpavlin 170 show_working();
238 dpavlin 134
239 dpavlin 357 textarea_reset_size( 'template_content' );
240     textarea_reset_size( 'css_content' );
241    
242 dpavlin 164 edit_template();
243    
244 dpavlin 170 hide_working();
245 dpavlin 134 }
246    
247 dpavlin 357 /* resize textarea */
248    
249     function textarea_reset_size( id ) {
250     var textarea = $( id );
251     if (! textarea) {
252     Logger.error('can\'t reset size to non-existant textarea '+id);
253     return;
254     }
255     var hgt = Cookie.get('webpacus_ta_'+id);
256     if (! hgt) hgt='20em';
257     textarea.style.height = hgt;
258     Logger.debug('reset textarea '+id+' height to '+hgt);
259     }
260    
261     function textarea_resize( id, val ){
262     var textarea = $( id );
263     var height = parseInt(textarea.style.height.substr(0,textarea.style.height.length-2));
264     height += val;
265     Logger.debug('resize_textarea('+id+','+val+') '+textarea.style.height+' '+height);
266     textarea.style.height = height+'px';
267     Cookie.set('webpacus_ta_'+id,textarea.style.height,365);
268     }

  ViewVC Help
Powered by ViewVC 1.1.26