mmmturkeybacon Checkpoint Creator

Adds checkboxes next to HIT links so that you can set a checkpoint.

Bu betiği kurabilmeniz için Tampermonkey, Greasemonkey ya da Violentmonkey gibi bir kullanıcı betiği eklentisini kurmanız gerekmektedir.

Bu betiği kurabilmeniz için Tampermonkey ya da Violentmonkey gibi bir kullanıcı betiği eklentisini kurmanız gerekmektedir.

Bu betiği kurabilmeniz için Tampermonkey ya da Violentmonkey gibi bir kullanıcı betiği eklentisini kurmanız gerekmektedir.

Bu betiği kurabilmeniz için Tampermonkey ya da Userscripts gibi bir kullanıcı betiği eklentisini kurmanız gerekmektedir.

You will need to install an extension such as Tampermonkey to install this script.

Bu komut dosyasını yüklemek için bir kullanıcı komut dosyası yöneticisi uzantısı yüklemeniz gerekecek.

(Zaten bir kullanıcı komut dosyası yöneticim var, kurmama izin verin!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(Zateb bir user-style yöneticim var, yükleyeyim!)

// ==UserScript==
// @name        mmmturkeybacon Checkpoint Creator
// @author      mmmturkeybacon
// @description Adds checkboxes next to HIT links so that you can set a checkpoint.
//              A checkpoint will notify you that you've already seen a HIT by
//              changing the HIT link to display the date the checkpoint was set. A
//              well-placed checkpoint is useful when browsing HITs by creation date
//              (newest first) because it will alert you that you've already seen the
//              checkpoint HIT and probably all the HITs that come after it.
//              It's best to place a checkpoint on a HIT that won't be recreated
//              because recreated HITs jump to the first page.
//              mmmturkeybacon Color Coded Search with Checkpoints has the same
//              functionality built-in. So if you have that installed you don't
//              need this script.
// @namespace   http://userscripts.org/users/523367
// @match       https://*.mturk.com/mturk/viewhits*
// @match       https://*.mturk.com/mturk/findhits*
// @match       https://*.mturk.com/mturk/sorthits*
// @match       https://*.mturk.com/mturk/searchbar*
// @match       https://*.mturk.com/mturk/viewsearchbar*
// @match       https://*.mturk.com/mturk/sortsearchbar*
// @match       https://*.mturk.com/mturk/preview?*
// @match       https://*.mturk.com/mturk/statusdetail*
// @match       https://*.mturk.com/mturk/return*
// @require     http://code.jquery.com/jquery-latest.min.js
// @version     1.3
// @grant       GM_getValue
// @grant       GM_setValue
// ==/UserScript==

//var CHECKPOINT_COLOR = "#00AAAA"; // dark green-blue
var CHECKPOINT_COLOR = "#000000"; // black
var CHECKPOINT_MESSAGE = "CHECKPOINT REACHED!";
//var CHECKPOINT_MESSAGE = "YOU SHALL NOT PASS!";

var is_HIT = $("input[type='hidden'][name='isAccepted']").length > 0;
if (is_HIT)
{
    // not on a search page so quit
    return;
}

// This script won't place a checkbox next to HITs for which you are not
// qualified that don't have a link.
$('a[href^="/mturk/preview?groupId="]').each(function()
{
    var checkbox = document.createElement('INPUT');
    checkbox.type = 'checkbox';
    checkbox.name = $(this).attr('href').slice(23); // groupId
    checkbox.checked = GM_getValue(checkbox.name+'_checked', false);
    checkbox.addEventListener('click', set_checkpoint);  
    //checkbox.addEventListener('click', (function(checkbox,$link_obj){return function(){set_checkpoint(checkbox,$link_obj);};})(checkbox,$(this)) );  
    checkbox.style.cssText ='vertical-align:middle;';
    $(this).after(checkbox);
    mark_checkpoint(checkbox, $(this));
});

function set_checkpoint(e)
{
    var caller = e.target || e.srcElement;
    var d = new Date();
    GM_setValue(caller.name+'_checked', caller.checked);
    GM_setValue(caller.name+'_date', '['+d.toLocaleDateString()+'] ');
}

function mark_checkpoint(checkbox, $link_obj)
{
    if (checkbox.checked == true)
    {
        var checkpoint_date = GM_getValue(checkbox.name+'_date');
        $link_obj.closest('table[width="100%"][cellspacing="0"][cellpadding="0"][border="0"][height="100%"]').css('border', '50px solid '+CHECKPOINT_COLOR);
        $link_obj.text(checkpoint_date+CHECKPOINT_MESSAGE);
    }
}