3
edits
(Version 20050809.01) |
(Fix for recent site changes which broke decimal vote) |
||
(6 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
<pre> | <pre> | ||
// AniDB-Site-Enhancements | // AniDB-Site-Enhancements: Full | ||
// - Select all files of a group | // - Select all files of a group | ||
// - Replace vote-dropdowns with textfields (enter integers from 100 to 1000) | // - Replace vote-dropdowns with textfields (enter integers from 100 to 1000) | ||
// | // | ||
// Version | // Version 20051210.01 | ||
// works with FF1.5 and greasemonkey 0.6.4 | |||
// Copyright (c) 2005, Lupin III. | // Copyright (c) 2005, Lupin III. | ||
// Released under the GPL license | // Released under the GPL license | ||
// http://www.gnu.org/copyleft/gpl.html | // http://www.gnu.org/copyleft/gpl.html | ||
// | // | ||
// Thanks to | |||
// TechNiko for the webspace | |||
// visnu for some advice on speedups for long animelists | |||
// | // | ||
// ==UserScript== | // ==UserScript== | ||
// @name AniDB-Site-Enhancer | // @name AniDB-Site-Enhancer: Full | ||
// @namespace lupin_sanseis_scripts | // @namespace lupin_sanseis_scripts | ||
// @description selects all files of a release group, replaces vote dropdowns with textfields | // @description selects all files of a release group, replaces vote dropdowns with textfields | ||
// @include http://anidb.info/* | // @include http://anidb.info/perl-bin/animedb.pl?show=anime&* | ||
// ==/UserScript== | // ==/UserScript== | ||
Line 29: | Line 33: | ||
function group_selects () { | function group_selects () { | ||
// look up the grouplist table (using the bold "Group Info:" as an anchor, as it's fast to find) | |||
var group_table = document.evaluate("//b/text()[starts-with(.,'Group') and contains(., 'Info:')]/../../../..", document, null, XPathResult.ANY_UNORDERED_NODE_TYPE, null).singleNodeValue; | |||
// when css convert of page happens // | |||
var group_table = document.evaluate("//div[class="anime_group"]/table", document, null, XPathResult.ANY_UNORDERED_NODE_TYPE, null).singleNodeValue; | |||
// will want checking though... // | |||
if (group_table == null){ | |||
return; | |||
} | |||
// search for trs of the group-list-table | // search for trs of the group-list-table | ||
var trs = document.evaluate("//tr | var trs = document.evaluate(".//tr", group_table, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null); | ||
var regexp = /gid=(\d+)"/; | var regexp = /gid=(\d+)"/; | ||
Line 47: | Line 61: | ||
input.setAttribute('type', 'checkbox'); | input.setAttribute('type', 'checkbox'); | ||
input.setAttribute('id', 'toggle_gid_'+gid); | input.setAttribute('id', 'toggle_gid_'+gid); | ||
input.setAttribute(' | input.setAttribute('value', gid); | ||
input.addEventListener('click', toggle, false); | |||
td.appendChild(input); | td.appendChild(input); | ||
} else | } else | ||
Line 90: | Line 105: | ||
// finally add the function for the checkbox onclick-handler to the document | // finally add the function for the checkbox onclick-handler to the document | ||
function toggle(_gid) { | |||
var _gid = this.getAttribute('value'); | |||
for (var i=0; i < checkbox_names[_gid].length; i++) { | for (var i=0; i < checkbox_names[_gid].length; i++) { | ||
document.getElementsByName(checkbox_names[_gid][i])[0].checked = document.getElementById('toggle_gid_'+_gid).checked; | document.getElementsByName(checkbox_names[_gid][i])[0].checked = document.getElementById('toggle_gid_'+_gid).checked; | ||
Line 105: | Line 121: | ||
function decimal_vote() { | function decimal_vote() { | ||
// replace vote-dropdowns with textfields | // replace vote-dropdowns with textfields | ||
var selects = document.evaluate("//select[ | var selects = document.evaluate("//select[@name = 'votea.rate']", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null); | ||
for (var i = 0; i < selects.snapshotLength; i++) { | for (var i = 0; i < selects.snapshotLength; i++) { | ||
var textfield = document.createElement('input'); | var textfield = document.createElement('input'); | ||
Line 118: | Line 134: | ||
window.addEventListener("load", initialize(), false); | window.addEventListener("load", initialize(), false); | ||
})();</pre> | })(); </pre> |
edits