finish watcher rewrite
This commit is contained in:
parent
27b83bc189
commit
3d931acfe4
163
4chan_x.js
163
4chan_x.js
@ -58,7 +58,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
(function() {
|
(function() {
|
||||||
var $, $$, NAMESPACE, a, arr, as, autoWatch, callback, changeCheckbox, changeValue, clearHidden, config, d, delform, down, editSauce, el, expand, expandComment, expandThread, g, getThread, href, i, imageClick, imageExpand, imageExpandClick, imageHover, imageResize, imageThumb, imageToggle, imageType, imageTypeChange, keyModeInsert, keyModeNormal, keydown, keypress, l1, log, navbotr, navtopr, nodeInserted, omitted, onloadComment, onloadThread, option, options, parseResponse, pathname, qr, recaptcha, recaptchaListener, recaptchaReload, redirect, replyHiding, replyNav, report, request, scroll, scrollThread, span, temp, text, textContent, threadHiding, tzOffset, ui, up, updateAuto, updateCallback, updateFavicon, updateInterval, updateNow, updateTime, updateTitle, updateVerbose, updaterMake, watch, watchX, watcher, watcherUpdate, _i, _j, _k, _l, _len, _len2, _len3, _len4, _len5, _len6, _m, _ref, _ref2, _ref3, _ref4;
|
var $, $$, NAMESPACE, a, arr, as, autoWatch, callback, changeCheckbox, changeValue, clearHidden, config, d, delform, down, editSauce, el, expand, expandComment, expandThread, g, getThread, href, i, imageClick, imageExpand, imageExpandClick, imageHover, imageResize, imageThumb, imageToggle, imageType, imageTypeChange, keyModeInsert, keyModeNormal, keydown, keypress, l1, log, navbotr, navtopr, nodeInserted, omitted, onloadComment, onloadThread, option, options, parseResponse, pathname, qr, recaptcha, recaptchaListener, recaptchaReload, redirect, replyHiding, replyNav, report, request, scroll, scrollThread, span, temp, text, textContent, threadHiding, tzOffset, ui, up, updateAuto, updateCallback, updateFavicon, updateInterval, updateNow, updateTime, updateTitle, updateVerbose, updaterMake, watcher, _i, _j, _k, _l, _len, _len2, _len3, _len4, _len5, _len6, _m, _ref, _ref2, _ref3, _ref4;
|
||||||
var __slice = Array.prototype.slice;
|
var __slice = Array.prototype.slice;
|
||||||
if (typeof console != "undefined" && console !== null) {
|
if (typeof console != "undefined" && console !== null) {
|
||||||
log = console.log;
|
log = console.log;
|
||||||
@ -1554,101 +1554,99 @@
|
|||||||
return updateAuto.call($("input[name=autoL]", div));
|
return updateAuto.call($("input[name=autoL]", div));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
watch = function() {
|
|
||||||
var id, text, _base, _name;
|
|
||||||
id = this.nextSibling.name;
|
|
||||||
if (this.src === g.favEmpty) {
|
|
||||||
this.src = g.favDefault;
|
|
||||||
text = ("/" + g.BOARD + "/ - ") + $.x('following-sibling::blockquote', this).textContent.slice(0, 25);
|
|
||||||
(_base = g.watched)[_name = g.BOARD] || (_base[_name] = []);
|
|
||||||
g.watched[g.BOARD].push({
|
|
||||||
id: id,
|
|
||||||
text: text
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
this.src = g.favEmpty;
|
|
||||||
g.watched[g.BOARD] = $.slice(g.watched[g.BOARD], id);
|
|
||||||
}
|
|
||||||
GM_setValue('watched', JSON.stringify(g.watched));
|
|
||||||
return watcherUpdate();
|
|
||||||
};
|
|
||||||
watcherUpdate = function() {
|
|
||||||
var a, board, div, link, old, thread, _i, _len, _ref;
|
|
||||||
div = $.el('div');
|
|
||||||
for (board in g.watched) {
|
|
||||||
_ref = g.watched[board];
|
|
||||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
|
||||||
thread = _ref[_i];
|
|
||||||
a = $.el('a', {
|
|
||||||
textContent: 'X',
|
|
||||||
className: 'pointer'
|
|
||||||
});
|
|
||||||
$.bind(a, 'click', watchX);
|
|
||||||
link = $.el('a', {
|
|
||||||
textContent: thread.text,
|
|
||||||
href: "/" + board + "/res/" + thread.id
|
|
||||||
});
|
|
||||||
$.append(div, a, $.tn(' '), link, $.el('br'));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
old = $('#watcher div:last-child');
|
|
||||||
return $.replace(old, div);
|
|
||||||
};
|
|
||||||
watchX = function() {
|
|
||||||
var board, favicon, id, input, _, _ref;
|
|
||||||
_ref = this.nextElementSibling.getAttribute('href').substring(1).split('/'), board = _ref[0], _ = _ref[1], id = _ref[2];
|
|
||||||
g.watched[board] = $.slice(g.watched[board], id);
|
|
||||||
GM_setValue('watched', JSON.stringify(g.watched));
|
|
||||||
watcherUpdate();
|
|
||||||
if (input = $("input[name=\"" + id + "\"]")) {
|
|
||||||
favicon = input.previousSibling;
|
|
||||||
return favicon.src = g.favEmpty;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
watcher = {
|
watcher = {
|
||||||
init: function() {
|
init: function() {
|
||||||
var dialog, html, img, input, inputs, _i, _len, _results;
|
var board, dialog, favicon, html, id, input, inputs, props, src, watched, watchedBoard, _i, _len, _ref, _results;
|
||||||
html = '<div class=move>Thread Watcher</div>';
|
html = '<div class=move>Thread Watcher</div>';
|
||||||
dialog = ui.dialog('watcher', {
|
dialog = ui.dialog('watcher', {
|
||||||
top: '50px',
|
top: '50px',
|
||||||
left: '0px'
|
left: '0px'
|
||||||
}, html);
|
}, html);
|
||||||
$.append(d.body, dialog);
|
$.append(d.body, dialog);
|
||||||
|
watched = $.getValue('watched', {});
|
||||||
|
for (board in watched) {
|
||||||
|
_ref = watched[board];
|
||||||
|
for (id in _ref) {
|
||||||
|
props = _ref[id];
|
||||||
|
watcher.addLink(props, dialog);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
watchedBoard = watched[g.BOARD] || {};
|
||||||
inputs = $$('form > input[value=delete], div.thread > input[value=delete]');
|
inputs = $$('form > input[value=delete], div.thread > input[value=delete]');
|
||||||
_results = [];
|
_results = [];
|
||||||
for (_i = 0, _len = inputs.length; _i < _len; _i++) {
|
for (_i = 0, _len = inputs.length; _i < _len; _i++) {
|
||||||
input = inputs[_i];
|
input = inputs[_i];
|
||||||
img = $.el('img', {
|
id = input.name;
|
||||||
src: g.favEmpty
|
if (id in watchedBoard) {
|
||||||
|
src = g.favDefault;
|
||||||
|
} else {
|
||||||
|
src = g.favEmpty;
|
||||||
|
}
|
||||||
|
favicon = $.el('img', {
|
||||||
|
src: src,
|
||||||
|
className: 'pointer'
|
||||||
});
|
});
|
||||||
_results.push($.before(input, img));
|
$.bind(favicon, 'click', watcher.cb.toggle);
|
||||||
|
_results.push($.before(input, favicon));
|
||||||
}
|
}
|
||||||
return _results;
|
return _results;
|
||||||
/*
|
},
|
||||||
#create watcher
|
addLink: function(props, dialog) {
|
||||||
html = '<div class="move">Thread Watcher</div><div></div>'
|
var div, link, x;
|
||||||
watcher = ui.dialog 'watcher', top: '50px', left: '0px', html
|
dialog || (dialog = $('#watcher'));
|
||||||
$.append d.body, watcher
|
div = $.el('div');
|
||||||
watcherUpdate()
|
x = $.el('a', {
|
||||||
|
textContent: 'X'
|
||||||
#add buttons
|
});
|
||||||
threads = g.watched[g.BOARD] || []
|
$.bind(x, 'click', watcher.cb.x);
|
||||||
#normal, threading
|
link = $.el('a', props);
|
||||||
inputs = $$('form > input[value="delete"], div > input[value="delete"]')
|
$.append(div, x, $.tn(' '), link);
|
||||||
for input in inputs
|
return $.append(dialog, div);
|
||||||
id = input.name
|
},
|
||||||
src = (->
|
cb: {
|
||||||
for thread in threads
|
toggle: function(e) {
|
||||||
if id is thread.id
|
return watcher.toggle(e.target);
|
||||||
return g.favDefault
|
},
|
||||||
g.favEmpty
|
x: function(e) {
|
||||||
)()
|
var board, id, _, _ref;
|
||||||
img = $.el 'img',
|
_ref = e.target.nextElementSibling.getAttribute('href').substring(1).split('/'), board = _ref[0], _ = _ref[1], id = _ref[2];
|
||||||
src: src
|
return watcher.unwatch(board, id);
|
||||||
className: 'pointer'
|
}
|
||||||
$.bind img, 'click', watch
|
},
|
||||||
$.before input, img
|
toggle: function(favicon) {
|
||||||
*/
|
var id;
|
||||||
|
id = favicon.nextSibling.name;
|
||||||
|
if (favicon.src === g.favEmpty) {
|
||||||
|
return watcher.watch(id, favicon);
|
||||||
|
} else {
|
||||||
|
return watcher.unwatch(g.BOARD, id);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
unwatch: function(board, id) {
|
||||||
|
var div, favicon, href, input, watched;
|
||||||
|
href = "/" + board + "/res/" + id;
|
||||||
|
div = $("#watcher a[href=\"" + href + "\"]").parentNode;
|
||||||
|
$.remove(div);
|
||||||
|
if (input = $("input[name=\"" + id + "\"]")) {
|
||||||
|
favicon = input.previousSibling;
|
||||||
|
favicon.src = g.favEmpty;
|
||||||
|
}
|
||||||
|
watched = $.getValue('watched', {});
|
||||||
|
delete watched[board][id];
|
||||||
|
return $.setValue('watched', watched);
|
||||||
|
},
|
||||||
|
watch: function(id, favicon) {
|
||||||
|
var props, watched, _name;
|
||||||
|
favicon.src = g.favDefault;
|
||||||
|
props = {
|
||||||
|
textContent: ("/" + g.BOARD + "/ - ") + $.x('following-sibling::blockquote', favicon).textContent.slice(0, 25),
|
||||||
|
href: "/" + g.BOARD + "/res/" + id
|
||||||
|
};
|
||||||
|
watched = $.getValue('watched', {});
|
||||||
|
watched[_name = g.BOARD] || (watched[_name] = {});
|
||||||
|
watched[g.BOARD][id] = props;
|
||||||
|
$.setValue('watched', watched);
|
||||||
|
return watcher.addLink(props);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
NAMESPACE = 'AEOS.4chan_x.';
|
NAMESPACE = 'AEOS.4chan_x.';
|
||||||
@ -1660,7 +1658,6 @@
|
|||||||
favDefault: ((_ref = $('link[rel="shortcut icon"]', d)) != null ? _ref.href : void 0) || '',
|
favDefault: ((_ref = $('link[rel="shortcut icon"]', d)) != null ? _ref.href : void 0) || '',
|
||||||
favEmpty: 'data:image/gif;base64,R0lGODlhEAAQAJEAAAAAAP///9vb2////yH5BAEAAAMALAAAAAAQABAAAAIvnI+pq+D9DBAUoFkPFnbs7lFZKIJOJJ3MyraoB14jFpOcVMpzrnF3OKlZYsMWowAAOw==',
|
favEmpty: 'data:image/gif;base64,R0lGODlhEAAQAJEAAAAAAP///9vb2////yH5BAEAAAMALAAAAAAQABAAAAIvnI+pq+D9DBAUoFkPFnbs7lFZKIJOJJ3MyraoB14jFpOcVMpzrnF3OKlZYsMWowAAOw==',
|
||||||
flavors: ['http://regex.info/exif.cgi?url=', 'http://iqdb.org/?url=', 'http://saucenao.com/search.php?db=999&url=', 'http://tineye.com/search?url='].join('\n'),
|
flavors: ['http://regex.info/exif.cgi?url=', 'http://iqdb.org/?url=', 'http://saucenao.com/search.php?db=999&url=', 'http://tineye.com/search?url='].join('\n'),
|
||||||
watched: JSON.parse(GM_getValue('watched', '{}')),
|
|
||||||
xhrs: []
|
xhrs: []
|
||||||
};
|
};
|
||||||
g.favHalo = /ws/.test(g.favDefault) ? 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAZklEQVR4XrWRQQoAIQwD+6L97j7Ih9WTQQxhDqJQCk4Mranuvqod6LgwawSqSuUmWSPw/UNlJlnDAmA2ARjABLYj8ZyCzJHHqOg+GdAKZmKPIQUzuYrxicHqEgHzP9g7M0+hj45sAnRWxtPj3zSPAAAAAElFTkSuQmCC' : 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAgMAAABinRfyAAAADFBMVEUAAABmzDP///8AAABet0i+AAAAAXRSTlMAQObYZgAAAExJREFUeF4tyrENgDAMAMFXKuQswQLBG3mOlBnFS1gwDfIYLpEivvjq2MlqjmYvYg5jWEzCwtDSQlwcXKCVLrpFbvLvvSf9uZJ2HusDtJAY7Tkn1oYAAAAASUVORK5CYII=';
|
g.favHalo = /ws/.test(g.favDefault) ? 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAZklEQVR4XrWRQQoAIQwD+6L97j7Ih9WTQQxhDqJQCk4Mranuvqod6LgwawSqSuUmWSPw/UNlJlnDAmA2ARjABLYj8ZyCzJHHqOg+GdAKZmKPIQUzuYrxicHqEgHzP9g7M0+hj45sAnRWxtPj3zSPAAAAAElFTkSuQmCC' : 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAgMAAABinRfyAAAADFBMVEUAAABmzDP///8AAABet0i+AAAAAXRSTlMAQObYZgAAAExJREFUeF4tyrENgDAMAMFXKuQswQLBG3mOlBnFS1gwDfIYLpEivvjq2MlqjmYvYg5jWEzCwtDSQlwcXKCVLrpFbvLvvSf9uZJ2HusDtJAY7Tkn1oYAAAAASUVORK5CYII=';
|
||||||
@ -1708,7 +1705,7 @@
|
|||||||
div.dialog > div.move {\
|
div.dialog > div.move {\
|
||||||
cursor: move;\
|
cursor: move;\
|
||||||
}\
|
}\
|
||||||
label, a {\
|
label, a, .pointer {\
|
||||||
cursor: pointer;\
|
cursor: pointer;\
|
||||||
}\
|
}\
|
||||||
\
|
\
|
||||||
|
|||||||
141
script.coffee
141
script.coffee
@ -1191,86 +1191,86 @@ updaterMake = ->
|
|||||||
|
|
||||||
if GM_getValue 'autoG' then updateAuto.call $("input[name=autoL]", div)
|
if GM_getValue 'autoG' then updateAuto.call $("input[name=autoL]", div)
|
||||||
|
|
||||||
watch = ->
|
|
||||||
id = @nextSibling.name
|
|
||||||
if @src is g.favEmpty
|
|
||||||
@src = g.favDefault
|
|
||||||
text = "/#{g.BOARD}/ - " +
|
|
||||||
$.x('following-sibling::blockquote', this).textContent.slice(0,25)
|
|
||||||
g.watched[g.BOARD] or= []
|
|
||||||
g.watched[g.BOARD].push {
|
|
||||||
id: id,
|
|
||||||
text: text
|
|
||||||
}
|
|
||||||
else
|
|
||||||
@src = g.favEmpty
|
|
||||||
g.watched[g.BOARD] = $.slice(g.watched[g.BOARD], id)
|
|
||||||
GM_setValue('watched', JSON.stringify(g.watched))
|
|
||||||
watcherUpdate()
|
|
||||||
|
|
||||||
watcherUpdate = ->
|
|
||||||
div = $.el 'div'
|
|
||||||
for board of g.watched
|
|
||||||
for thread in g.watched[board]
|
|
||||||
a = $.el 'a',
|
|
||||||
textContent: 'X'
|
|
||||||
className: 'pointer'
|
|
||||||
$.bind a, 'click', watchX
|
|
||||||
link = $.el 'a',
|
|
||||||
textContent: thread.text
|
|
||||||
href: "/#{board}/res/#{thread.id}"
|
|
||||||
$.append div, a, $.tn(' '), link, $.el('br')
|
|
||||||
old = $('#watcher div:last-child')
|
|
||||||
$.replace(old, div)
|
|
||||||
|
|
||||||
watchX = ->
|
|
||||||
[board, _, id] = @nextElementSibling.
|
|
||||||
getAttribute('href').substring(1).split('/')
|
|
||||||
g.watched[board] = $.slice(g.watched[board], id)
|
|
||||||
GM_setValue('watched', JSON.stringify(g.watched))
|
|
||||||
watcherUpdate()
|
|
||||||
if input = $("input[name=\"#{id}\"]")
|
|
||||||
favicon = input.previousSibling
|
|
||||||
favicon.src = g.favEmpty
|
|
||||||
|
|
||||||
watcher =
|
watcher =
|
||||||
init: ->
|
init: ->
|
||||||
html = '<div class=move>Thread Watcher</div>'
|
html = '<div class=move>Thread Watcher</div>'
|
||||||
dialog = ui.dialog 'watcher', top: '50px', left: '0px', html
|
dialog = ui.dialog 'watcher', top: '50px', left: '0px', html
|
||||||
$.append d.body, dialog
|
$.append d.body, dialog
|
||||||
|
|
||||||
|
#populate watcher
|
||||||
|
watched = $.getValue 'watched', {}
|
||||||
|
for board of watched
|
||||||
|
for id, props of watched[board]
|
||||||
|
watcher.addLink props, dialog
|
||||||
|
|
||||||
|
#add watch buttons
|
||||||
|
watchedBoard = watched[g.BOARD] or {}
|
||||||
inputs = $$ 'form > input[value=delete], div.thread > input[value=delete]'
|
inputs = $$ 'form > input[value=delete], div.thread > input[value=delete]'
|
||||||
for input in inputs
|
|
||||||
img = $.el 'img',
|
|
||||||
src: g.favEmpty
|
|
||||||
$.before input, img
|
|
||||||
|
|
||||||
|
|
||||||
###
|
|
||||||
#create watcher
|
|
||||||
html = '<div class="move">Thread Watcher</div><div></div>'
|
|
||||||
watcher = ui.dialog 'watcher', top: '50px', left: '0px', html
|
|
||||||
$.append d.body, watcher
|
|
||||||
watcherUpdate()
|
|
||||||
|
|
||||||
#add buttons
|
|
||||||
threads = g.watched[g.BOARD] || []
|
|
||||||
#normal, threading
|
|
||||||
inputs = $$('form > input[value="delete"], div > input[value="delete"]')
|
|
||||||
for input in inputs
|
for input in inputs
|
||||||
id = input.name
|
id = input.name
|
||||||
src = (->
|
if id of watchedBoard
|
||||||
for thread in threads
|
src = g.favDefault
|
||||||
if id is thread.id
|
else
|
||||||
return g.favDefault
|
src = g.favEmpty
|
||||||
g.favEmpty
|
favicon = $.el 'img',
|
||||||
)()
|
|
||||||
img = $.el 'img',
|
|
||||||
src: src
|
src: src
|
||||||
className: 'pointer'
|
className: 'pointer'
|
||||||
$.bind img, 'click', watch
|
$.bind favicon, 'click', watcher.cb.toggle
|
||||||
$.before input, img
|
$.before input, favicon
|
||||||
###
|
|
||||||
|
addLink: (props, dialog) ->
|
||||||
|
dialog or= $ '#watcher'
|
||||||
|
div = $.el 'div'
|
||||||
|
x = $.el 'a',
|
||||||
|
textContent: 'X'
|
||||||
|
$.bind x, 'click', watcher.cb.x
|
||||||
|
link = $.el 'a', props
|
||||||
|
|
||||||
|
$.append div, x, $.tn(' '), link
|
||||||
|
$.append dialog, div
|
||||||
|
|
||||||
|
cb:
|
||||||
|
toggle: (e) ->
|
||||||
|
watcher.toggle e.target
|
||||||
|
x: (e) ->
|
||||||
|
[board, _, id] = e.target.nextElementSibling
|
||||||
|
.getAttribute('href').substring(1).split('/')
|
||||||
|
watcher.unwatch board, id
|
||||||
|
|
||||||
|
toggle: (favicon) ->
|
||||||
|
id = favicon.nextSibling.name
|
||||||
|
if favicon.src == g.favEmpty
|
||||||
|
watcher.watch id, favicon
|
||||||
|
else # favicon.src == g.favDefault
|
||||||
|
watcher.unwatch g.BOARD, id
|
||||||
|
|
||||||
|
unwatch: (board, id) ->
|
||||||
|
href = "/#{board}/res/#{id}"
|
||||||
|
div = $("#watcher a[href=\"#{href}\"]").parentNode
|
||||||
|
$.remove div
|
||||||
|
|
||||||
|
if input = $ "input[name=\"#{id}\"]"
|
||||||
|
favicon = input.previousSibling
|
||||||
|
favicon.src = g.favEmpty
|
||||||
|
|
||||||
|
watched = $.getValue 'watched', {}
|
||||||
|
delete watched[board][id]
|
||||||
|
$.setValue 'watched', watched
|
||||||
|
|
||||||
|
watch: (id, favicon) ->
|
||||||
|
favicon.src = g.favDefault
|
||||||
|
props =
|
||||||
|
textContent: "/#{g.BOARD}/ - " +
|
||||||
|
$.x('following-sibling::blockquote', favicon)
|
||||||
|
.textContent.slice(0,25)
|
||||||
|
href: "/#{g.BOARD}/res/#{id}"
|
||||||
|
|
||||||
|
watched = $.getValue 'watched', {}
|
||||||
|
watched[g.BOARD] or= {}
|
||||||
|
watched[g.BOARD][id] = props
|
||||||
|
$.setValue 'watched', watched
|
||||||
|
|
||||||
|
watcher.addLink props
|
||||||
|
|
||||||
#main
|
#main
|
||||||
NAMESPACE = 'AEOS.4chan_x.'
|
NAMESPACE = 'AEOS.4chan_x.'
|
||||||
@ -1287,7 +1287,6 @@ g =
|
|||||||
'http://saucenao.com/search.php?db=999&url='
|
'http://saucenao.com/search.php?db=999&url='
|
||||||
'http://tineye.com/search?url='
|
'http://tineye.com/search?url='
|
||||||
].join '\n'
|
].join '\n'
|
||||||
watched: JSON.parse(GM_getValue('watched', '{}'))
|
|
||||||
xhrs: []
|
xhrs: []
|
||||||
g.favHalo = if /ws/.test g.favDefault then 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAZklEQVR4XrWRQQoAIQwD+6L97j7Ih9WTQQxhDqJQCk4Mranuvqod6LgwawSqSuUmWSPw/UNlJlnDAmA2ARjABLYj8ZyCzJHHqOg+GdAKZmKPIQUzuYrxicHqEgHzP9g7M0+hj45sAnRWxtPj3zSPAAAAAElFTkSuQmCC' else 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAgMAAABinRfyAAAADFBMVEUAAABmzDP///8AAABet0i+AAAAAXRSTlMAQObYZgAAAExJREFUeF4tyrENgDAMAMFXKuQswQLBG3mOlBnFS1gwDfIYLpEivvjq2MlqjmYvYg5jWEzCwtDSQlwcXKCVLrpFbvLvvSf9uZJ2HusDtJAY7Tkn1oYAAAAASUVORK5CYII='
|
g.favHalo = if /ws/.test g.favDefault then 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAZklEQVR4XrWRQQoAIQwD+6L97j7Ih9WTQQxhDqJQCk4Mranuvqod6LgwawSqSuUmWSPw/UNlJlnDAmA2ARjABLYj8ZyCzJHHqOg+GdAKZmKPIQUzuYrxicHqEgHzP9g7M0+hj45sAnRWxtPj3zSPAAAAAElFTkSuQmCC' else 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAgMAAABinRfyAAAADFBMVEUAAABmzDP///8AAABet0i+AAAAAXRSTlMAQObYZgAAAExJREFUeF4tyrENgDAMAMFXKuQswQLBG3mOlBnFS1gwDfIYLpEivvjq2MlqjmYvYg5jWEzCwtDSQlwcXKCVLrpFbvLvvSf9uZJ2HusDtJAY7Tkn1oYAAAAASUVORK5CYII='
|
||||||
pathname = location.pathname.substring(1).split('/')
|
pathname = location.pathname.substring(1).split('/')
|
||||||
@ -1334,7 +1333,7 @@ $.addStyle '
|
|||||||
div.dialog > div.move {
|
div.dialog > div.move {
|
||||||
cursor: move;
|
cursor: move;
|
||||||
}
|
}
|
||||||
label, a {
|
label, a, .pointer {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user