/[webpac2]/Webpacus/root/editor/quicktags.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

Diff of /Webpacus/root/editor/quicktags.js

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 196 by dpavlin, Tue Nov 29 13:21:41 2005 UTC revision 197 by dpavlin, Tue Nov 29 15:30:03 2005 UTC
# Line 109  new edButton('ed_td' Line 109  new edButton('ed_td'
109  ,'e'  ,'e'
110  );  );
111    
112  function edShowButton(button, i) {  function edShowButton(name, button, i) {
113          if (button.id == 'ed_img') {          if (button.id == 'ed_link') {
114                  return('<input type="button" id="' + button.id + '" accesskey="' + button.access + '" class="ed_button" onclick="edInsertImage(edCanvas);" value="' + button.display + '" />');                  return('<input type="button" id="' + name + '_' + button.id + '" accesskey="' + button.access + '" class="ed_button" onclick="edInsertLink(\''+name+'\', ' + i + ');" value="' + button.display + '" />');
         }  
         else if (button.id == 'ed_link') {  
                 return('<input type="button" id="' + button.id + '" accesskey="' + button.access + '" class="ed_button" onclick="edInsertLink(edCanvas, ' + i + ');" value="' + button.display + '" />');  
115          }          }
116          else {          else {
117                  return('<input type="button" id="' + button.id + '" accesskey="' + button.access + '" class="ed_button" onclick="edInsertTag(edCanvas, ' + i + ');" value="' + button.display + '"  />');                  return('<input type="button" id="' + name + '_' + button.id + '" accesskey="' + button.access + '" class="ed_button" onclick="edInsertTag(\''+name+'\', ' + i + ');" value="' + button.display + '"  />');
118          }          }
119  }  }
120    
121  function edAddTag(button) {  function edAddTag(name, button) {
122          if (edButtons[button].tagEnd != '') {          if (edButtons[button].tagEnd != '') {
123                  edOpenTags[edOpenTags.length] = button;                  edOpenTags[name][ edOpenTags[name].length ] = button;
124                  $( edButtons[button].id ).value = '/' + $( edButtons[button].id ).value;                  $( name + '_' + edButtons[button].id ).value = '/' + $( name + '_' + edButtons[button].id ).value;
125          }          }
126  }  }
127    
128  function edRemoveTag(button) {  function edRemoveTag(name, button) {
129          for (i = 0; i < edOpenTags.length; i++) {          for (i = 0; i < edOpenTags[name].length; i++) {
130                  if (edOpenTags[i] == button) {                  if (edOpenTags[name][i] == button) {
131                          edOpenTags.splice(i, 1);                          edOpenTags[name].splice(i, 1);
132                          $( edButtons[button].id ).value = $( edButtons[button].id ).value.replace('/', '');                          $( name + '_' + edButtons[button].id ).value = $( name + '_' + edButtons[button].id ).value.replace('/', '');
133                  }                  }
134          }          }
135  }  }
136    
137  function edCheckOpenTags(button) {  function edCheckOpenTags(name, button) {
138          var tag = 0;          var tag = 0;
139          for (i = 0; i < edOpenTags.length; i++) {          for (i = 0; i < edOpenTags[name].length; i++) {
140                  if (edOpenTags[i] == button) {                  if (edOpenTags[name][i] == button) {
141                          tag++;                          tag++;
142                  }                  }
143          }          }
# Line 152  function edCheckOpenTags(button) { Line 149  function edCheckOpenTags(button) {
149          }          }
150  }  }
151    
152  function edCloseAllTags() {  function edCloseAllTags( name ) {
153          var count = edOpenTags.length;          var count = edOpenTags[name].length;
154            Logger.info('edCloseAllTags '+name+' count:'+count);
155          for (o = 0; o < count; o++) {          for (o = 0; o < count; o++) {
156                  edInsertTag(edCanvas, edOpenTags[edOpenTags.length - 1]);                  edInsertTag(name, edOpenTags[name][ edOpenTags[name].length - 1 ]);
157          }          }
158  }  }
159    
# Line 178  function edToolbar( name ) { Line 176  function edToolbar( name ) {
176          var toolbar = '';          var toolbar = '';
177    
178          for (var i = 0; i < edButtons.length; i++) {          for (var i = 0; i < edButtons.length; i++) {
179                  toolbar += edShowButton(edButtons[i], i);                  toolbar += edShowButton(name, edButtons[i], i);
180          }          }
181          toolbar += '&nbsp;&nbsp';          toolbar += '&nbsp;&nbsp';
182          toolbar += '<input type="button" id="ed_close" class="ed_button" onclick="edCloseAllTags();" title="Close all open tags" value="Close Tags" />';          toolbar += '<input type="button" id="ed_close" class="ed_button" onclick="edCloseAllTags(\''+name+'\');" title="Close all open tags" value="Close Tags" />';
183    
184          div.innerHTML = toolbar;          div.innerHTML = toolbar;
185          Logger.debug('before: '+edActiveToolbar[name]);  
186          edActiveToolbar[name] = 1;          edActiveToolbar[name] = 1;
187          Logger.debug('after: '+edActiveToolbar[name]);          edOpenTags[name] = new Array();
188    
189            Logger.debug('edActiveToolbar['+name+'] = '+edActiveToolbar[name]);
190          return false;          return false;
191  }  }
192    
193  // insertion code  // insertion code
194    
195  function edInsertTag(myField, i) {  function edInsertTag(name, i) {
196    
197            myField = $( name );
198            if (! myField) {
199                    Logger.error("can't find "+name);
200                    return false;
201            }
202    
203          var pos = myField.scrollTop;          var pos = myField.scrollTop;
204          Logger.debug('edInsertTag "'+i+'", scrollTop='+pos);          Logger.debug('edInsertTag '+name+','+i+'; scrollTop='+pos);
205    
206          //IE support          //IE support
207          if (document.selection) {          if (document.selection) {
# Line 205  function edInsertTag(myField, i) { Line 211  function edInsertTag(myField, i) {
211                          sel.text = edButtons[i].tagStart + sel.text + edButtons[i].tagEnd;                          sel.text = edButtons[i].tagStart + sel.text + edButtons[i].tagEnd;
212                  }                  }
213                  else {                  else {
214                          if (!edCheckOpenTags(i) || edButtons[i].tagEnd == '') {                          if (!edCheckOpenTags(name, i) || edButtons[i].tagEnd == '') {
215                                  sel.text = edButtons[i].tagStart;                                  sel.text = edButtons[i].tagStart;
216                                  edAddTag(i);                                  edAddTag(name, i);
217                          }                          }
218                          else {                          else {
219                                  sel.text = edButtons[i].tagEnd;                                  sel.text = edButtons[i].tagEnd;
220                                  edRemoveTag(i);                                  edRemoveTag(name, i);
221                          }                          }
222                  }                  }
223                  myField.focus();                  myField.focus();
# Line 232  function edInsertTag(myField, i) { Line 238  function edInsertTag(myField, i) {
238                          cursorPos += edButtons[i].tagStart.length + edButtons[i].tagEnd.length;                          cursorPos += edButtons[i].tagStart.length + edButtons[i].tagEnd.length;
239                  }                  }
240                  else {                  else {
241                          if (!edCheckOpenTags(i) || edButtons[i].tagEnd == '') {                          if (!edCheckOpenTags(name, i) || edButtons[i].tagEnd == '') {
242                                  myField.value = myField.value.substring(0, startPos)                                  myField.value = myField.value.substring(0, startPos)
243                                                                    + edButtons[i].tagStart                                                                    + edButtons[i].tagStart
244                                                                    + myField.value.substring(endPos, myField.value.length);                                                                    + myField.value.substring(endPos, myField.value.length);
245                                  edAddTag(i);                                  edAddTag(name, i);
246                                  cursorPos = startPos + edButtons[i].tagStart.length;                                  cursorPos = startPos + edButtons[i].tagStart.length;
247                          }                          }
248                          else {                          else {
249                                  myField.value = myField.value.substring(0, startPos)                                  myField.value = myField.value.substring(0, startPos)
250                                                                    + edButtons[i].tagEnd                                                                    + edButtons[i].tagEnd
251                                                                    + myField.value.substring(endPos, myField.value.length);                                                                    + myField.value.substring(endPos, myField.value.length);
252                                  edRemoveTag(i);                                  edRemoveTag(name, i);
253                                  cursorPos = startPos + edButtons[i].tagEnd.length;                                  cursorPos = startPos + edButtons[i].tagEnd.length;
254                          }                          }
255                  }                  }
# Line 253  function edInsertTag(myField, i) { Line 259  function edInsertTag(myField, i) {
259                  myField.scrollTop = scrollTop;                  myField.scrollTop = scrollTop;
260          }          }
261          else {          else {
262                  if (!edCheckOpenTags(i) || edButtons[i].tagEnd == '') {                  if (!edCheckOpenTags(name, i) || edButtons[i].tagEnd == '') {
263                          myField.value += edButtons[i].tagStart;                          myField.value += edButtons[i].tagStart;
264                          edAddTag(i);                          edAddTag(name, i);
265                  }                  }
266                  else {                  else {
267                          myField.value += edButtons[i].tagEnd;                          myField.value += edButtons[i].tagEnd;
268                          edRemoveTag(i);                          edRemoveTag(name, i);
269                  }                  }
270                  myField.focus();                  myField.focus();
271          }          }
# Line 297  function edInsertContent(myField, myValu Line 303  function edInsertContent(myField, myValu
303          if (pos && myField.scrollTop != pos) myField.scrollTop = pos;          if (pos && myField.scrollTop != pos) myField.scrollTop = pos;
304  }  }
305    
306  function edInsertLink(myField, i, defaultValue) {  function edInsertLink(name, i, defaultValue) {
307    
308            myField = $( name );
309            if (! myField) {
310                    Logger.error("can't find "+name);
311                    return false;
312            }
313    
314          if (!defaultValue) {          if (!defaultValue) {
315                  defaultValue = 'http://';                  defaultValue = 'http://';
316          }          }
317          if (!edCheckOpenTags(i)) {          if (!edCheckOpenTags(name, i)) {
318                  var URL = prompt('Enter the URL' ,defaultValue);                  var URL = prompt('Enter the URL' ,defaultValue);
319                  if (URL) {                  if (URL) {
320                          edButtons[i].tagStart = '<a href="' + URL + '">';                          edButtons[i].tagStart = '<a href="' + URL + '">';
321                          edInsertTag(myField, i);                          edInsertTag(name, i);
322                  }                  }
323          }          }
324          else {          else {
325                  edInsertTag(myField, i);                  edInsertTag(name, i);
326          }          }
327  }  }
328    

Legend:
Removed from v.196  
changed lines
  Added in v.197

  ViewVC Help
Powered by ViewVC 1.1.26