Bricklink - Wanted List: Auto-View Image

Automatically views the image when adding an item to your wanted list.

05.11.2014 itibariyledir. En son verisyonu görün.

Bu betiği kurabilmeniz için Tampermonkey, Greasemonkey ya da Violentmonkey 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 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         Bricklink - Wanted List: Auto-View Image
// @namespace    http://badwing.com/
// @version      0.1
// @description  Automatically views the image when adding an item to your wanted list.
// @author       Christopher Hiller
// @include      http://www.bricklink.com/wantedAddDetail.asp?*
// @require      //code.jquery.com/jquery-1.11.1.min.js 
// ==/UserScript==

// reference to jQuery object of the <img> tag
var img_thumb;

/**
 * Given an ID, put the image in the placeholder.
 * @param {string} id Part ID
 */
var getImage = function getImage(id) {
    var src = '/getPic.asp?itemType=P&itemNo=' + id;
    
    $.ajaxQueue(src).done(function(src) { 
        return function() {
            img_thumb.attr('src', src);
    	}; 
    }(src));
};

$(function() {
    var txt_itemId = $('input[name="p_selecteditemID"]'),
        val = txt_itemId.val();
    img_thumb = $('img[name="img1"]');
    
    // no longer necessary
    img_thumb.removeAttr('onerror');
    
    if (val) {
        getImage(val);
    }
    
    // update the img as the user types
    txt_itemId.keyup(function() {
        var val = this.value;
        if (val) {
            getImage(this.value);
        }        
    });
    
    // hide unneccessary garbage
    $('input[name="imageType"]').next().css('visibility', 'hidden');
});

/*! jQuery Ajax Queue - v0.1.2pre - 2013-03-19
* https://github.com/gnarf37/jquery-ajaxQueue
* Copyright (c) 2013 Corey Frang; Licensed MIT */
(function($) {

// jQuery on an empty object, we are going to use this as our Queue
var ajaxQueue = $({});

$.ajaxQueue = function( ajaxOpts ) {
    var jqXHR,
        dfd = $.Deferred(),
        promise = dfd.promise();

    // run the actual query
    function doRequest( next ) {
        jqXHR = $.ajax( ajaxOpts );
        jqXHR.done( dfd.resolve )
            .fail( dfd.reject )
            .then( next, next );
    }

    // queue our ajax request
    ajaxQueue.queue( doRequest );

    // add the abort method
    promise.abort = function( statusText ) {

        // proxy abort to the jqXHR if it is active
        if ( jqXHR ) {
            return jqXHR.abort( statusText );
        }

        // if there wasn't already a jqXHR we need to remove from queue
        var queue = ajaxQueue.queue(),
            index = $.inArray( doRequest, queue );

        if ( index > -1 ) {
            queue.splice( index, 1 );
        }

        // and then reject the deferred
        dfd.rejectWith( ajaxOpts.context || ajaxOpts, [ promise, statusText, "" ] );
        return promise;
    };

    return promise;
};

})(jQuery);