diff --git a/ext/tagger/images/active.png b/ext/tagger/images/active.png
deleted file mode 100644
index 4e4942c8..00000000
Binary files a/ext/tagger/images/active.png and /dev/null differ
diff --git a/ext/tagger/images/add-tag.png b/ext/tagger/images/add-tag.png
deleted file mode 100644
index dccedf8d..00000000
Binary files a/ext/tagger/images/add-tag.png and /dev/null differ
diff --git a/ext/tagger/images/inactive.png b/ext/tagger/images/inactive.png
deleted file mode 100644
index 20fb1139..00000000
Binary files a/ext/tagger/images/inactive.png and /dev/null differ
diff --git a/ext/tagger/images/rem-tag.png b/ext/tagger/images/rem-tag.png
deleted file mode 100644
index 5fb9827a..00000000
Binary files a/ext/tagger/images/rem-tag.png and /dev/null differ
diff --git a/ext/tagger/images/tag-img.psd b/ext/tagger/images/tag-img.psd
deleted file mode 100644
index 4404dfee..00000000
Binary files a/ext/tagger/images/tag-img.psd and /dev/null differ
diff --git a/ext/tagger/info.php b/ext/tagger/info.php
deleted file mode 100644
index 3eedce9d..00000000
--- a/ext/tagger/info.php
+++ /dev/null
@@ -1,12 +0,0 @@
-"artanis.00@gmail.com"];
- public $dependencies = [TaggerXMLInfo::KEY];
- public $description = "Advanced Tagging v2";
-}
diff --git a/ext/tagger/main.php b/ext/tagger/main.php
deleted file mode 100644
index 645d3a19..00000000
--- a/ext/tagger/main.php
+++ /dev/null
@@ -1,28 +0,0 @@
-can(Permissions::EDIT_IMAGE_TAG) && ($event->image->is_locked() || $user->can(Permissions::EDIT_IMAGE_LOCK))) {
- $this->theme->build_tagger($page, $event);
- }
- }
-
- public function onSetupBuilding(SetupBuildingEvent $event)
- {
- $sb = new SetupBlock("Tagger");
- $sb->add_int_option("ext_tagger_search_delay", "Delay queries by ");
- $sb->add_label(" milliseconds.");
- $sb->add_label("
Limit queries returning more than ");
- $sb->add_int_option("ext_tagger_tag_max");
- $sb->add_label(" tags to ");
- $sb->add_int_option("ext_tagger_limit");
- $event->panel->add_block($sb);
- }
-}
diff --git a/ext/tagger/script.js b/ext/tagger/script.js
deleted file mode 100644
index 1a72e04e..00000000
--- a/ext/tagger/script.js
+++ /dev/null
@@ -1,221 +0,0 @@
-/*jshint forin:false, nonew:true, undef:true, strict:false, browser:true, jquery:true */
-
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\
-* Tagger - Advanced Tagging v2 *
-* Author: Artanis (Erik Youngren ) *
-* Do not remove this notice. *
-\* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-function byId(id) {
- return document.getElementById(id);
-}
-
-var Tagger = {
- initialize : function (image_id) {
- // object navigation
- this.tag.parent = this;
- this.position.parent = this;
- // components
- this.editor.container = byId('tagger_parent');
- this.editor.titlebar = byId('tagger_titlebar');
- this.editor.toolbar = byId('tagger_toolbar');
- //this.editor.menu = byId('tagger_p-menu');
- this.editor.body = byId('tagger_body');
- this.editor.tags = byId('tagger_tags');
- this.editor.form = this.editor.tags.parentNode;
- this.editor.statusbar = byId('tagger_statusbar');
- // initial data
- this.tag.image = image_id;
- this.tag.query = config.make_link("tagger/tags");
- this.tag.list = null;
- this.tag.suggest = null;
- this.tag.image_tags();
-
- // reveal
- this.editor.container.style.display = "";
-
- // dragging
- DragHandler.attach(this.editor.titlebar);
-
- // positioning
- this.position.load();
-
- // events
- window.onunload = function () { Tagger.position.save(); };
- },
-
- alert : function (type,text,timeout) {
- var id = "tagger_alert-"+type;
- var t_alert = byId(id);
- if (t_alert) {
- if(text === false) {
- // remove
- t_alert.parentNode.removeChild(t_alert);
- } else {
- // update
- t_alert.innerHTML = text;
- }
- } else if (text) {
- // create
- t_alert = document.createElement("div");
- t_alert.setAttribute("id",id);
- t_alert.appendChild(document.createTextNode(text));
- this.editor.statusbar.appendChild(t_alert);
- if(timeout>1) {
- console.log("Tagger.alert('"+type+"',false,0)");
- setTimeout("Tagger.alert('"+type+"',false,0)",timeout);
- }
- }
- },
-
- editor : {},
-
- tag : {
- submit : function () {
- var l = this.list.childNodes.length;
- var tags = [];
- for(var i=0; i 0) {
- var tag = document.createElement("tag");
- tag.setAttribute("count","0");
- tag.setAttribute("id","newTag_"+tag_name);
- tag.setAttribute("title","New - 0 uses");
- tag.onclick = function() {
- Tagger.tag.toggle(this);
- };
- tag.appendChild(document.createTextNode(tag_name));
- Tagger.tag.list.appendChild(tag);
- }
- },
-
- toggle : function (tag) {
- if(tag.parentNode == this.list) {
- this.list.removeChild(tag);
- } else {
- this.list.appendChild(tag);
- }
- },
-
- ajax : function (url, callback) {
- var http = new XMLHttpRequest();
- http.open("GET",url,true);
- http.onreadystatechange = function () {
- if(http.readyState == 4) { callback(http); }
- };
- http.send(null);
- }
- },
-
- position : {
- set : function (x,y) {
- if (!x || !y) {
- this.parent.editor.container.style.top = "25px";
- this.parent.editor.container.style.left = "";
- this.parent.editor.container.style.right = "25px";
- this.parent.editor.container.style.bottom = "";
-
- var xy = this.get();
- x = xy[0];
- y = xy[1];
- }
- this.parent.editor.container.style.top = y+"px";
- this.parent.editor.container.style.left = x+"px";
- this.parent.editor.container.style.right = "";
- this.parent.editor.container.style.bottom = "";
- },
-
- get : function () {
- // https://www.quirksmode.org/js/findpos.html
- var left = 0;
- var top = 0;
- var obj = this.parent.editor.container;
- if(obj.offsetParent) {
- left = obj.offsetLeft;
- top = obj.offsetTop;
- while (obj = obj.offsetParent) {
- left += obj.offsetLeft;
- top += obj.offsetTop;
- }
- }
- return [left,top];
- },
-
- save : function (x,y) {
- if (!x || !y) {
- var xy = this.get();
- x = xy[0];
- y = xy[1];
- }
- Cookies.set(config.title+"_tagger-position", x+" "+y, {expires: 14});
- },
-
- load : function () {
- var p = Cookies.get(config.title+"_tagger-position");
- if(p) {
- var xy = p.split(" ");
- this.set(xy[0],xy[1]);
- } else {
- this.set();
- }
- }
- }
-};
diff --git a/ext/tagger/style.css b/ext/tagger/style.css
deleted file mode 100644
index ba9f8407..00000000
--- a/ext/tagger/style.css
+++ /dev/null
@@ -1,103 +0,0 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * Tagger - Advanced Tagging v2 *
- * Author: Artanis (Erik Youngren ) *
- * Do not remove this notice. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-#tagger_parent {
- text-align:left;
- position:fixed;
- max-width:300px;
-
-}
-#tagger_parent * {
- background-color:#EEE;
-}
-
-#tagger_titlebar {
- background-color:#ddd;
- border:2px solid;
- cursor:move;
- font-weight:bold;
- -moz-border-radius:5px 5px 0 0;
- padding:.25em;
- text-align:center;
-}
-
-#tagger_toolbar, #tagger_body {
- padding:2px 2px 0 2px;
- border-style:solid;
- border-width: 0 2px 0 2px;
-}
-#tagger_body {
- max-height:175px;
- overflow-x:hidden;
- overflow-y:auto;
-}
-
-#tagger_statusbar {
- background-color:#ddd;
- border:2px solid;
- font-weight: bold;
- min-height:16px;
- -moz-border-radius:0 0 5px 5px;
- padding:.25em;
-} #tagger_statusbar * { background-color:#ddd; }
-
-#tagger_body div {
- padding-top:2px;
- margin-top:2px;
- border-top:1px solid;
-}
-
-/* Tagger Styling
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-#tagger_parent form {
- display:inline;
-}
-#tagger_parent input {
- width:auto;
-}
-#tagger_parent input[type=text] {
- background-color:white;
-}
-
-/* Custom Element Base Styles
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-#tagger_parent list {
- display: block;
-}
-#tagger_parent tag {
- font-size:1.25em;
- display:block;
-}
-
-#tagger_parent list[id=image] tag:before {
- content:url('./images/active.png');
-}
-
-#tagger_parent list[id=search] tag:before {
- content:url('./images/inactive.png');
-}
-/* Hovering */
-#tagger_parent tag:hover {
- cursor:pointer;
- background-color:#ddd;
-}
-
-/*#tagger_parent list[id=image] tag:hover {
- background-color:#faa;
-}
-
-#tagger_parent list[id=search] tag:hover {
- background-color:#afa;
-}*/
-
-#tagger_parent list[id=image] tag:hover:before {
- content:url('./images/rem-tag.png');
-}
-
-#tagger_parent list[id=search] tag:hover:before {
- content:url('./images/add-tag.png');
-}
diff --git a/ext/tagger/theme.php b/ext/tagger/theme.php
deleted file mode 100644
index a8fa9407..00000000
--- a/ext/tagger/theme.php
+++ /dev/null
@@ -1,75 +0,0 @@
-) *
- * Do not remove this notice. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-class TaggerTheme extends Themelet
-{
- public function build_tagger(Page $page, DisplayingImageEvent $event)
- {
- // Initialization code
- $base_href = get_base_href();
- // TODO: AJAX test and fallback.
-
- $page->add_html_header("");
- $page->add_block(new Block(
- null,
- "",
- "main",
- 1000
- ));
-
- // Tagger block
- $page->add_block(new Block(
- null,
- (string)$this->html($event->get_image()),
- "main"
- ));
- }
- private function html(Image $image)
- {
- global $config;
- $h_query = isset($_GET['search'])? $h_query= "search=".url_escape($_GET['search']) : "";
-
- $delay = $config->get_string("ext_tagger_search_delay", "250");
-
- // TODO: option for initial Tagger window placement.
- return DIV(
- ["id"=>"tagger_parent", "style"=>"display:none; top:25px; right:25px;"],
- DIV(["id"=>"tagger_titlebar"], "Tagger"),
- DIV(
- ["id"=>"tagger_toolbar"],
- INPUT(["type"=>"text", "value"=>"", "id"=>"tagger_filter", "onkeyup"=>"Tagger.tag.search(this.value, $delay);"]),
- INPUT(["type"=>"button", "value">"Add", "onclick"=>"Tagger.tag.create(byId('tagger_filter').value);"]),
- FORM(
- ["action"=>make_link("tag_edit/set"), "method"=>"POST", "onsubmit"=>"Tagger.tag.submit();"],
- INPUT(["type"=>"hidden", "name"=>"image_id", "value"=>$image->id, "id"=>"image_id"]),
- INPUT(["type"=>"hidden", "name"=>"query", "value"=>$h_query, "id"=>""]),
- INPUT(["type"=>"hidden", "name"=>"source", "value"=>$image->source, "id"=>""]),
- INPUT(["type"=>"hidden", "name"=>"tags", "value"=>"", "id"=>"tagger_tags"]),
- INPUT(["type"=>"", "value"=>"Set"]),
- ),
- # UL(["id"=>"tagger_p-menu"]),
- # BR(["style"=>"clear:both;"]),
- ),
- DIV(
- ["id"=>"tagger_body"],
- DIV(["id"=>"tagger_p-search", "name"=>"Searched Tags"]),
- DIV(["id"=>"tagger_p-applied", "name"=>"Applied Tags"]),
- ),
- DIV(
- ["id"=>"tagger_statusbar"],
- ),
- );
- }
-}
diff --git a/ext/tagger/webtoolkit.drag.js b/ext/tagger/webtoolkit.drag.js
deleted file mode 100644
index 68d48f4a..00000000
--- a/ext/tagger/webtoolkit.drag.js
+++ /dev/null
@@ -1,87 +0,0 @@
-/*jshint bitwise:true, curly:true, forin:false, noarg:true, noempty:true, nonew:true, undef:true, strict:false, browser:true, jquery:true */
-
-/**
-*
-* Crossbrowser Drag Handler
-* http://www.webtoolkit.info/
-*
-* Modified by Erik Youngren to move parent node
-**/
-
-var DragHandler = {
-
-
- // private property.
- _oElem : null,
-
-
- // public method. Attach drag handler to an element.
- attach : function(oElem) {
- oElem.onmousedown = DragHandler._dragBegin;
-
- // callbacks
- oElem.dragBegin = function () {};
- oElem.drag = function () {};
- oElem.dragEnd = function () {};
-
- return oElem;
- },
-
-
- // private method. Begin drag process.
- _dragBegin : function(e) {
- var oElem = DragHandler._oElem = this;
-
- if (isNaN(parseInt(oElem.parentNode.style.left))) { oElem.parentNode.style.left = '0px'; }
- if (isNaN(parseInt(oElem.parentNode.style.top))) { oElem.parentNode.style.top = '0px'; }
-
- var x = parseInt(oElem.parentNode.style.left);
- var y = parseInt(oElem.parentNode.style.top);
-
- e = e ? e : window.event;
- oElem.mouseX = e.clientX;
- oElem.mouseY = e.clientY;
-
- oElem.dragBegin(oElem, x, y);
-
- document.onmousemove = DragHandler._drag;
- document.onmouseup = DragHandler._dragEnd;
- return false;
- },
-
-
- // private method. Drag (move) element.
- _drag : function(e) {
- var oElem = DragHandler._oElem;
-
- var x = parseInt(oElem.parentNode.style.left);
- var y = parseInt(oElem.parentNode.style.top);
-
- e = e ? e : window.event;
- oElem.parentNode.style.left = x + (e.clientX - oElem.mouseX) + 'px';
- oElem.parentNode.style.top = y + (e.clientY - oElem.mouseY) + 'px';
-
- oElem.mouseX = e.clientX;
- oElem.mouseY = e.clientY;
-
- oElem.drag(oElem, x, y);
-
- return false;
- },
-
-
- // private method. Stop drag process.
- _dragEnd : function() {
- var oElem = DragHandler._oElem;
-
- var x = parseInt(oElem.parentNode.style.left);
- var y = parseInt(oElem.parentNode.style.top);
-
- oElem.dragEnd(oElem, x, y);
-
- document.onmousemove = null;
- document.onmouseup = null;
- DragHandler._oElem = null;
- }
-
-};