Changeset 803 for branches


Ignore:
Timestamp:
03/28/07 17:42:42 (12 years ago)
Author:
ray
Message:

updated branch

Location:
branches/ray
Files:
1 added
1 deleted
1 edited
1 copied

Legend:

Unmodified
Added
Removed
  • branches/ray/plugins/InsertAnchor/insert-anchor.js

    r761 r803  
    1010  image    : editor.imgURL("insert-anchor.gif", "InsertAnchor"), 
    1111  textMode : false, 
    12   action   : function(editor) { 
    13                self.buttonPress(editor); 
     12  action   : function() { 
     13               self.show(); 
    1414             } 
    1515  }); 
     
    3030 
    3131InsertAnchor.prototype._lc = function(string) { 
    32     return HTMLArea._lc(string, 'InsertAnchor'); 
     32    return Xinha._lc(string, 'InsertAnchor'); 
    3333}; 
    3434 
     
    4545}; 
    4646 
    47 InsertAnchor.prototype.buttonPress = function(editor) { 
    48   var outparam = null; 
    49   var html = editor.getSelectedHTML(); 
    50   var sel  = editor._getSelection(); 
    51   var range  = editor._createRange(sel); 
    52   var  a = editor._activeElement(sel); 
    53   if(!(a != null && a.tagName.toLowerCase() == 'a')) { 
    54     a = editor._getFirstAncestor(sel, 'a');  
     47InsertAnchor.prototype.onGenerateOnce = function() 
     48{ 
     49        this._prepareDialog(); 
     50}; 
     51InsertAnchor.prototype._prepareDialog = function() 
     52{ 
     53  var self = this; 
     54  var editor = this.editor; 
     55 
     56  if(!this.html) 
     57  { 
     58    Xinha._getback(_editor_url + 'plugins/InsertAnchor/dialog.html', function(getback) { self.html = getback; self._prepareDialog(); }); 
     59    return; 
    5560  } 
    56   if (a != null && a.tagName.toLowerCase() == 'a') 
    57     outparam = { name : a.id }; 
     61   
     62  // Now we have everything we need, so we can build the dialog. 
     63  this.dialog = new Xinha.Dialog(editor, this.html, 'InsertAnchor',{width:400}); 
     64   
     65  this.dialog.getElementById('ok').onclick = function() {self.apply();} 
     66 
     67        this.dialog.getElementById('cancel').onclick = function() { self.dialog.hide()}; 
     68         
     69  this.ready = true; 
     70}; 
     71 
     72InsertAnchor.prototype.show = function() 
     73{ 
     74        if(!this.ready) // if the user is too fast clicking the, we have to make them wait 
     75        { 
     76                var self = this; 
     77                window.setTimeout(function() {self.show();},100); 
     78                return; 
     79        } 
     80        var editor = this.editor; 
     81        this.selectedHTML = editor.getSelectedHTML(); 
     82        var sel  = editor.getSelection(); 
     83  var range  = editor.createRange(sel); 
     84  this.a = editor.activeElement(sel); 
     85   
     86  if(!(this.a != null && this.a.tagName.toLowerCase() == 'a')) 
     87  { 
     88    this.a = editor._getFirstAncestor(sel, 'a');  
     89  } 
     90   
     91  if (this.a != null && this.a.tagName.toLowerCase() == 'a') 
     92  { 
     93    inputs = { name : this.a.id }; 
     94  } 
    5895  else 
    59     outparam = { name : '' }; 
     96  { 
     97    inputs = { name : '' }; 
     98  }  
    6099 
    61   editor._popupDialog( "plugin://InsertAnchor/insert_anchor", function( param ) { 
    62     if ( param ) { 
    63       var anchor = param["name"]; 
    64       if (anchor == "" || anchor == null) { 
    65         if (a) { 
    66           var child = a.innerHTML; 
    67           a.parentNode.removeChild(a); 
    68           editor.insertHTML(child); 
    69         } 
    70         return; 
    71       }  
    72       try { 
    73         var doc = editor._doc; 
    74         if (!a) { 
    75 //          editor.surroundHTML('<a id="' + anchor + '" name="' + anchor + '" title="' + anchor + '" class="anchor">', '</a>'); 
    76           a = doc.createElement("a"); 
    77           a.id = anchor; 
    78           a.name = anchor; 
    79           a.title = anchor; 
    80           a.className = "anchor"; 
    81           a.innerHTML = html; 
    82           if (HTMLArea.is_ie) { 
    83             range.pasteHTML(a.outerHTML); 
    84           } else { 
    85             editor.insertNodeAtSelection(a); 
    86           } 
    87         } else { 
    88           a.id = anchor; 
    89           a.name = anchor; 
    90           a.title = anchor; 
    91           a.className = "anchor"; 
    92         } 
    93       } 
    94       catch (e) { } 
    95     } 
    96   }, outparam); 
     100        this.dialog.show(inputs); 
     101 
     102        this.dialog.getElementById("name").focus(); 
    97103}; 
     104 
     105InsertAnchor.prototype.apply = function () 
     106{ 
     107        var editor = this.editor; 
     108        var param = this.dialog.hide(); 
     109        var anchor = param['name']; 
     110        var a = this.a; 
     111        if (anchor == "" || anchor == null) 
     112        { 
     113                if (a)  
     114                { 
     115                        var child = a.innerHTML; 
     116                        a.parentNode.removeChild(a); 
     117                        editor.insertHTML(child); 
     118                } 
     119                return; 
     120        } 
     121        try  
     122        { 
     123                var doc = editor._doc; 
     124                if (!a) 
     125                { 
     126                        a = doc.createElement("a"); 
     127                        a.id = anchor; 
     128                        a.name = anchor; 
     129                        a.className = "anchor"; 
     130                        a.innerHTML = this.selectedHTML; 
     131                        editor.insertNodeAtSelection(a); 
     132                } 
     133                else  
     134                { 
     135                        a.id = anchor; 
     136                        a.name = anchor; 
     137                        a.className = "anchor"; 
     138                } 
     139        } 
     140        catch (e) { } 
     141 
     142} 
Note: See TracChangeset for help on using the changeset viewer.