1addInitEvent(function () { 2 var links = getElementsByClass('qsub__link', document, 'img'); 3 if (links.length === 0) return; 4 5 function onclick() { 6 var overlay = $('plugin_qsub_popup'); 7 if (overlay) overlay.parentNode.removeChild(overlay); 8 9 var content = document.createElement('div'); 10 var s = this.className.match(/qsub__notsubscribed/); 11 content.className = 'content'; 12 if (s) { 13 content.innerHTML = '<p>Das Abo wird eingerichtet …</p>'; 14 var ajax = new doku_ajax('plugin_quicksubscribe_subscribe', {ns: NS + ':'}); 15 } else { 16 content.innerHTML = '<p>Sie haben diese Seite über den Namespace ' + this.title + ' abonniert.<br />' + 17 'Möchten Sie dieses Abo löschen? ' + 18 '<button class="button">' + 'Löschen' + '</button></p>'; 19 var ajax = new doku_ajax('plugin_quicksubscribe_unsubscribe', {ns: this.ns}); 20 addEvent(content.lastChild.lastChild, 'click', function () { 21 // late bind! 22 ajax.runAJAX(); 23 }); 24 } 25 26 ajax.elementObj = content.lastChild; 27 var _this = this; 28 ajax.onCompletion = function () { 29 if (this.responseStatus[0] !== 200) { 30 return; 31 } 32 _this.className = _this.className.replace(/qsub__(not)?subscribed/g, '') + 33 (s ? 'qsub__subscribed' : 'qsub__notsubscribed'); 34 if (s) { 35 _this.ns = NS + ':'; 36 } 37 _this.title = (s ? (NS ? (NS + ':*') : '*') : 'Änderungen abonnieren'); 38 }; 39 if (s) ajax.runAJAX(); 40 41 // FIXME lang 42 plugin_qsub__createOverlay('Abo', content, this); 43 return false; 44 } 45 46 for (var i = 0 ; i < links.length ; ++i) { 47 var link = links[i].parentNode; 48 link.className += ' ' + links[i].className; 49 link.ns = link.className.match(/qsubns__([^ ]+)/); 50 link.ns = link.ns ? link.ns[1] : (NS + ':'); 51 link.title = links[i].title; 52 link.innerHTML = ' '; 53 addEvent(link, 'click', onclick); 54 } 55}); 56 57function plugin_qsub__createOverlay(title, content, button) { 58 var div = document.createElement('div'); 59 div.innerHTML = '<div class="title">' + 60 '<img src="' + DOKU_BASE + 'lib/images/close.png">' + 61 title + '</div>'; 62 63 content.appendChild(document.createElement('hr')); 64 var more = document.createElement('p'); 65 more.innerHTML = 'Möchten Sie Ihre Abo-Einstellungen bearbeiten?' + 66 '<button class="button">' + 'Einstellungen' + '</button>'; 67 addEvent(more.lastChild, 'click', function () {document.location = button.href}); 68 content.appendChild(more); 69 div.appendChild(content); 70 71 div.id = 'plugin_qsub_popup'; 72 73 div.__close = function(event) { 74 div.style.display = 'none'; 75 }; 76 77 addEvent(div.firstChild.firstChild,'click',div.__close); 78 79 drag.attach(div, div.firstChild); 80 var dw = getElementsByClass('dokuwiki', document.body, 'div')[0]; 81 dw.appendChild(div); 82 // FIXME 83 div.style.top = '300px'; 84 div.style.left = '500px'; 85 return div; 86} 87