[Xfce4-commits] <midori:master> Javascript clean-up in speed dial head
Christian Dywan
noreply at xfce.org
Mon Sep 17 19:28:01 CEST 2012
Updating branch refs/heads/master
to 616633d5022c29a0a121b19079ed03fa142ad13b (commit)
from 5bb5b179866a859977970deb3143a7fb8ce24966 (commit)
commit 616633d5022c29a0a121b19079ed03fa142ad13b
Author: Paweł Forysiuk <tuxator at o2.pl>
Date: Sat Sep 15 01:21:52 2012 +0200
Javascript clean-up in speed dial head
data/speeddial-head.html | 83 +++++++++++++++++++++++++++++-------------
midori/midori-speeddial.vala | 10 +++---
2 files changed, 63 insertions(+), 30 deletions(-)
diff --git a/data/speeddial-head.html b/data/speeddial-head.html
index b40fbb7..89cb96b 100644
--- a/data/speeddial-head.html
+++ b/data/speeddial-head.html
@@ -122,43 +122,44 @@
<script type="text/javascript">
- var getAction = function (id)
- {
- var s = document.getElementById(id).childNodes[0];
- if (s.className == 'preview')
- return true;
+ function add_tile (ev) {
+ ev.preventDefault();
var url = prompt ("{enter_shortcut_address}", "http://");
- if (!url) return false;
+ if (!url)
+ return false;
+
if (url.indexOf ("://") == -1)
url = "http://" + url;
+ var id = ev.target.parentNode.parentNode.id;
console.log ("speed_dial-save-add " + id + " " + url + " ");
- return false;
}
- var renameShortcut = function (id)
- {
- var old_name = document.getElementById(id).childNodes[1].textContent;
+ function rename_tile (ev) {
+ var old_name = ev.target.textContent;
var name = prompt ("{enter_shortcut_name}", old_name);
- if (!name) return;
+ if (!name)
+ return;
+ var id = ev.target.parentNode.id;
console.log ("speed_dial-save-rename " + id + " " + name);
}
- var clearShortcut = function (id)
- {
- if(!confirm("{are_you_sure}"))
+ function delete_tile (ev) {
+ ev.preventDefault();
+
+ if (!confirm("{are_you_sure}"))
return;
+ var id = ev.target.parentNode.parentNode.id;
console.log ("speed_dial-save-delete " + id);
}
var firstNode, secondNode;
var cursor;
- var dial = document.getElementsByClassName("shortcut");
var get_dial_div = function (ele) {
var dial_div;
@@ -167,10 +168,14 @@
if (ele.className == 'title')
dial_div = ele.parentNode;
if (ele.className.indexOf ('shortcut') != -1)
- dial_dir = ele;
+ dial_div = ele;
return dial_div;
}
- var click = function (ev) {
+
+ function click (ev) {
+ if (ev == undefined)
+ return;
+
ev.preventDefault();
var ele = ev.target;
cursor = ele.style.cursor;
@@ -181,10 +186,13 @@
eparent.className = 'shortcut selected';
firstNode = eparent.id;
}
- document.RemoveEventListener('click', click, false);
};
- var up = function (ev) {
+ function up (ev) {
+ if (ev == undefined)
+ return;
+
+ ev.preventDefault();
ele = ev.target;
var eparent = get_dial_div (ele);
@@ -196,17 +204,19 @@
swap();
};
- var over = function (ev) {
+ function over (ev) {
if (ev == undefined)
return;
+ ev.preventDefault();
var ele = ev.target;
var eparent = get_dial_div (ele);
+ var dial = document.getElementsByClassName("shortcut");
if (firstNode != undefined)
{
eparent.className = 'shortcut selected';
- for (var i = 0; i <= dial.length; i++) {
+ for (var i = 0; i < dial.length; i++) {
if (eparent.id != firstNode.id && dial[i].id != eparent.id) {
dial[i].className = 'shortcut';
}
@@ -219,10 +229,33 @@
console.log ("speed_dial-save-swap " + firstNode + " " + secondNode);
};
- document.addEventListener('mousedown', click, false);
- document.addEventListener('mouseup', up, false);
- document.addEventListener('mouseover', over, false);
+ function init () {
+ var new_tile = document.getElementsByClassName ("preview new");
+ new_tile[0].addEventListener ('click', add_tile, false);
+
+ var titles = document.getElementsByClassName ("title");
+ var len = titles.length;
+ for (var i = 0; i < len; i++) {
+ if (titles[i].parentNode.childNodes[0].className != "preview new")
+ titles[i].addEventListener ('click', rename_tile, false);
+ }
+
+ var crosses = document.getElementsByClassName ("cross");
+ var len = crosses.length;
+ for (var i = 0; i < len; i++)
+ crosses[i].addEventListener ('click', delete_tile, false);
+
+ var occupied_tiles = document.getElementsByClassName ("shortcut");
+ var len = occupied_tiles.length;
+ for (var i = 0; i < len; i++) {
+ if (occupied_tiles[i].childNodes[0].className != "preview new") {
+ occupied_tiles[i].addEventListener('mousedown', click, false);
+ occupied_tiles[i].addEventListener('mouseover', over, false);
+ occupied_tiles[i].addEventListener('mouseup', up, false);
+ }
+ }
+ }
</script>
</head>
-<body>
+<body onload="init ();">
<div id="content">
diff --git a/midori/midori-speeddial.vala b/midori/midori-speeddial.vala
index ac039c8..392257d 100644
--- a/midori/midori-speeddial.vala
+++ b/midori/midori-speeddial.vala
@@ -241,11 +241,11 @@ namespace Midori {
}
markup.append_printf ("""
<div class="shortcut" id="%u"><div class="preview">
- <a class="cross" href="#" onclick='clearShortcut("%u");'></a>
+ <a class="cross" href="#"></a>
<a href="%s"><img src="data:image/png;base64,%s" title='%s'></a>
- </div><div class="title" onclick='renameShortcut("%u");'>%s</div></div>
+ </div><div class="title">%s</div></div>
""",
- slot, slot, uri, encoded ?? "", title, slot, title ?? "");
+ slot, uri, encoded ?? "", title, title ?? "");
}
else if (tile != "settings")
keyfile.remove_group (tile);
@@ -255,10 +255,10 @@ namespace Midori {
markup.append_printf ("""
<div class="shortcut" id="%u"><div class="preview new">
- <a class="add" href="#" onclick='return getAction("%u");'></a>
+ <a class="add" href="#"></a>
</div><div class="title">%s</div></div>
""",
- next_slot, next_slot, _("Click to add a shortcut"));
+ next_slot, _("Click to add a shortcut"));
markup.append_printf ("</div>\n</body>\n</html>\n");
html = markup.str;
}
More information about the Xfce4-commits
mailing list