Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

MINOR fixed widget area

MINOR added select box listing anchors in text (from r94198)

git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@95592 467b73ca-7a2a-4603-9d3b-597d59a354a9
  • Loading branch information...
commit f29c0797923c0bccbfddf9231f190a9de02262d6 1 parent 6be405f
@halkyon halkyon authored
Showing with 53 additions and 0 deletions.
  1. +53 −0 javascript/tiny_mce_improvements.js
View
53 javascript/tiny_mce_improvements.js
@@ -56,7 +56,60 @@ LinkForm.prototype = {
}
},
+ getAnchors: function() {
+ var raw = tinyMCE.activeEditor.getContent().match(/name="([a-zA-Z0-9-_]+?)"/gim);
+ if (raw.length) {
+ var anchors = new Array();
+ for(var i = 0; i < raw.length; i++) {
+ anchors.push(raw[i].substr(6).replace(/"$/, ''));
+ }
+ return anchors;
+ } else { return false; }
+ },
+
+ drawAnchorHelpers: function(anchors) {
+
+ if (!$('Form_EditorToolbarLinkForm_AnchorSelector')) {
+ var fieldHolder = $('Form_EditorToolbarLinkForm_Anchor').parentNode;
+ var anchorSelector = document.createElement('select');
+ anchorSelector.id = 'Form_EditorToolbarLinkForm_AnchorSelector';
+ fieldHolder.appendChild(anchorSelector);
+ } else {
+ var anchorSelector = $('Form_EditorToolbarLinkForm_AnchorSelector');
+ if (anchorSelector.hasChildNodes()) {
+ while (anchorSelector.childNodes.length >= 1) {
+ anchorSelector.removeChild(anchorSelector.firstChild);
+ }
+ }
+ }
+
+ var opt = document.createElement('option');
+ opt.value = '';
+ opt.appendChild(document.createTextNode('Select an anchor'));
+ anchorSelector.appendChild(opt);
+
+ anchorSelector.onchange = function(e) {
+ if (!e) e = window.event;
+ $('Form_EditorToolbarLinkForm_Anchor').value = e.target.options[e.target.selectedIndex].value;
+ }
+
+ for (var i = 0; i < anchors.length; i++) {
+ var opt = document.createElement('option');
+ opt.value = anchors[i];
+ opt.appendChild(document.createTextNode(anchors[i]));
+ anchorSelector.appendChild(opt);
+ }
+
+
+ },
+
toggle: function(ed) {
+ var anchors = this.getAnchors();
+ // Change this to false to disable anchor hinting
+ if (anchors && true) {
+ // Draw anchors list
+ this.drawAnchorHelpers(anchors);
+ }
this.ToolbarForm.toggle(ed);
this.respondToNodeChange(ed);
},
Please sign in to comment.
Something went wrong with that request. Please try again.