source: trunk/plugins/SetId/set-id.js @ 893

Last change on this file since 893 was 893, checked in by ray, 11 years ago
  • #1079 Plugin DynamicCSS lists Xinha internal CSS
  • #1080 Some plugins leave behind stylesheet links in fullpage mode
  • Property svn:keywords set to LastChangedDate LastChangedRevision LastChangedBy HeadURL Id
File size: 2.4 KB
Line 
1function SetId(editor) {
2  this.editor = editor;
3  var cfg = editor.config;
4  var self = this;
5
6  // register the toolbar buttons provided by this plugin
7  cfg.registerButton({
8    id       : "setid",
9    tooltip  : this._lc("Set Id and Name"),
10    image    : editor.imgURL("set-id.gif", "SetId"),
11    textMode : false,
12    action   : function(editor) {
13                 self.buttonPress(editor);
14               }
15  });
16  cfg.addToolbarElement("setid", "createlink", 1);
17}
18
19SetId._pluginInfo = {
20  name          : "SetId",
21  version       : "2.0",
22  developer     : "Udo Schmal",
23  developer_url : "http://www.schaffrath-neuemedien.de",
24  c_owner       : "Udo Schmal",
25  sponsor       : "L.N.Schaffrath NeueMedien",
26  sponsor_url   : "http://www.schaffrath-neuemedien.de",
27  license       : "htmlArea"
28};
29
30SetId.prototype._lc = function(string) {
31  return Xinha._lc(string, 'SetId');
32};
33
34
35SetId.prototype.onGenerate = function() {
36  this.editor.addEditorStylesheet(_editor_url + 'plugins/SetId/set-id.css');
37};
38
39SetId.prototype.buttonPress = function(editor) {
40  var outparam = null;
41  var html = editor.getSelectedHTML();
42  var sel  = editor._getSelection();
43  var range  = editor._createRange(sel);
44  var node = editor._activeElement(sel);
45  if (node)
46    outparam = { name : node.id };
47  else
48    outparam = { name : '' };
49
50  editor._popupDialog( "plugin://SetId/set_id", function( param ) {
51    if ( param ) {
52      var name = param["name"];
53      if (name == "" || name == null) {
54        if (node) {
55          node.removeAttribute("name");
56          node.removeAttribute("id");
57          node.removeAttribute("title");
58          if (node.className == "hasid") {
59            node.removeAttribute("class");
60          }
61        }
62        return;
63      }
64      try {
65        var doc = editor._doc;
66        if (!node) {
67          node = doc.createElement("span");
68          node.id = name;
69          node.name = name;
70          node.title = name;
71          node.className = "hasid";
72          node.innerHTML = html;
73          if (Xinha.is_ie) {
74            range.pasteHTML(node.outerHTML);
75          } else {
76            editor.insertNodeAtSelection(node);
77          }
78        } else {
79          node.id = name;
80          node.name = name;
81          node.title = name;
82          node.className = "hasid";
83        }
84      }
85      catch (e) { }
86    }
87  }, outparam);
88};
Note: See TracBrowser for help on using the repository browser.