SGW Item Modification Helper

Improves the modification page

当前为 2017-12-28 提交的版本,查看 最新版本

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

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

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name        SGW Item Modification Helper
// @namespace   greasyfork.org
// @version     1.3.2
// @grant       none
// @require     https://greasyfork.org/scripts/23449-gm-api-script/code/GM%20API%20script.js?upDate=2016_09_23
// @include     https://sellers.shopgoodwill.com/sellers/modifyItem.asp*
// @description Improves the modification page
// ==/UserScript==

$('*[name]').not('[id]').each(function(){
  $(this).attr('id', $(this).attr('name'));
});



$('#itemTitle').parent().parent().parent().hide();
$('#itemTitle').parent().parent().parent().before("<tr><td valign='top' width='10' bgcolor='#2045A3'><img src='../images/spacer.gif' height=' 0' width='10'></td><td id='contentTD'></td></tr>");

$('#contentTD').append("<p id='itemTitleContainer'><b>Item Title:</b> </p>");
$('#itemTitleContainer').append($('#itemTitle'));

$('#contentTD').append("<p id='itemCategoryContainer'><b>Category:</b> </p>");
$('#itemCategoryContainer').append($('#s1'));

$('#contentTD').append("<p id='itemDescriptionContainer'><b>Description:</b> </p>");
$('#itemDescriptionContainer').append($('#colourPalette').parent());

// TODO: Shipping calculator?
$('#contentTD').append("<div id='itemShippingDetailsContainer'></div>");
$('#itemShippingDetailsContainer').append("<p id='itemShippingWeightContainer'><b>Shipping Weight:</b> </p>");
$('#itemShippingWeightContainer').append($('#itemWeight'));
$('#itemShippingDetailsContainer').append("<p id='itemDisplayWeightContainer'><b>Display (Actual) Weight:</b> </p>");
$('#itemDisplayWeightContainer').append($('#itemDisplayWeight'));
$('#itemShippingDetailsContainer').append("<p id='itemShippingPriceContainer'><b>Shipping Charge:</b><br></p>");
$('#itemShippingPriceContainer').append($('#itemShippingPrice'));
$('#itemShippingDetailsContainer').append("<p id='itemShipMethodContainer'><b>Shipping Method:</b> <br></p>");
$('#itemShipMethodContainer').append($('#itemShipMethod'));
$('#itemShippingDetailsContainer').append("<p id='itemNoCombineShippingContainer'><b>Item Shipment Combining:</b><br></p>");
$('#itemNoCombineShippingContainer').append($('#itemNoCombineShipping'));
$('#itemNoCombineShippingContainer').append(" Select this option if the buyer of this item should not be allowed to combine this item with shipment of other items.");
$('#itemShippingDetailsContainer').append("<p id='itemAutoInsuranceContainer'><b>Auto Include Insurance (USPS Only):</b></p>");
$('#itemAutoInsuranceContainer').append($('#itemAutoInsurance'));

$('#contentTD').append("<p id='itemsellerstoreContainer'><b>Seller Store:</b> </p>");
$('#itemsellerstoreContainer').append($('#itemsellerstore'));

$('#itemSellerInventoryLocationID').parent().attr('id', 'itemSellerInventoryLocationIDContainer').appendTo($('#contentTD'));

$('#contentTD').append("<p id='itemSellerInfoContainer'><b>Seller Private Description:</b><br></p>");
$('#itemSellerInfoContainer').append($('#itemSellerInfo'));

$('#contentTD').append("<p style='position:relative; left: 10px; padding-bottom:4px;'><span class='fakeButton' onclick='$(\"#hiddenJunk\").toggle();'>Show/hide hidden fields/etc.</span></p>");


$('#contentTD').parent().after("<tr style='display:none;' id='hiddenJunk'><td valign='top' width='10' bgcolor='#2045A3'><img src='../images/spacer.gif' height=' 0' width='10'></td><td id='hiddenJunkTD'></td></tr>");

$('#hiddenJunkTD').append("<p id='itemQuantityContainer'><b>Item Quantity: </b></p>");
$('#itemQuantityContainer').append($('#itemQuantity').parent());

$('#hiddenJunkTD').append("<p id='itemMinimumBidContainer'><b>Minimum Bid: </b></p>");
$('#itemMinimumBidContainer').append($('#itemMinimumBid').parent());

$('#hiddenJunkTD').append("<p id='itemBidIncrementContainer'><b>Bid Increment: </b></p>");
$('#itemBidIncrementContainer').append($('#itemBidIncrement').parent());

$('#hiddenJunkTD').append("<p id='itemReserveContainer'><b>Reserve Price: </b></p>");
$('#itemReserveContainer').append($('#itemReserve').parent());
$('#itemReserve').parent().children().first().remove();

$('#hiddenJunkTD').append("<p id='itemBuyNowPriceContainer'><b>Buy Now Price: </b></p>");
$('#itemBuyNowPriceContainer').append($('#itemBuyNowPrice').parent());
$('#itemBuyNowPrice').parent().children().first().remove();

$('#hiddenJunkTD').append("<p id='itemActualDimensionsContainer'></p>");
$('#itemActualDimensionsContainer').append($('#itemLength').parent().parent().parent());

$('#hiddenJunkTD').append("<p id='itemShippingDimensionsContainer'></p>");
$('#itemShippingDimensionsContainer').append('<font face="Arial" size="2"><strong>Shipping Dimension - Length x Width x Height in inches (optional)</font><font face="arial" color="#a3223a" size="4"></font>:</strong>');
$('#itemShippingDimensionsContainer').append($('#itemShipLength'));
$('#itemShippingDimensionsContainer').append(" <font face='Arial' size='2'>(Numbers and decimal point '.' only) Used for shipping optimization and prevention of oversized charges.</font>");

$('#hiddenJunkTD').append("<p id='itemShippingContainer'><b>Shipping: </b><p>");
$('#itemShippingContainer').append($('#itemShipping'));
$('#itemShippingContainer').append($('select[name="itemShipping"]'));

$('#hiddenJunkTD').append("<p id='itemHandlingPriceContainer'><b>Handling Charge: </b></p>");

$('#itemHandlingPriceContainer').append($('#itemHandlingPrice').parent());
$('#itemHandlingPrice').parent().children().first().remove();

$('#hiddenJunk').after("<tr><td valign='top' width='10' bgcolor='#2045A3' height='10px'><img src='../images/spacer.gif' height=' 0' width='10'></td><td id='hiddenJunkTD'></td></tr>");

$('#itemShipMethod option[value="3"]').text('Post Office');


$('#itemTitleContainer').after('<div id="counterContainer"><font face="Arial" size="4">You have <b><span id="myCounter"></span></b> characters remaining.</font></div>');
$("#myCounter").html(50-$('#itemTitle').val().length);
$('#itemTitle').bind('keyup', function(){
  $("#myCounter").html(50-$('#itemTitle').val().length);
});

// --------- Shipping calculator --------------------------------------------

if ($('#shipCalcContainer').length > 0) {
  // Doesn't do these things if the user doesn't have the new shipping calculator script installed.

//  $("#itemSellerInfo").after("<b>Note to shipping:</b><br><textarea id='noteToShipping' rows='2' cols='40'></textarea><br>");
//  $('#itemSellerInfo').hide();
  
  $("b:contains('Shipping Charge')").before($('.shippingOptions').first());
  $('.shippingOptions').eq(1).remove();
  // I have NO IDEA why the shippingOptions div gets duplicated, rather than just moved!
  
  $('#itemDescriptionContainer').after($('#shipCalcContainer').css({'margin-top' : '15px', 'margin-bottom' : '20px'}));

  var sgwTimeouts = window.setTimeout(function(){
      

  //    $('#myCounter').bind('change', function(){
  //        var len49 = Math.ceil($('#myCounter').html());
  //        $('#myCounter2').html(len49 + 1);
  //    })

      function dummyWeight() {
          if ($('#itemWeight').val().length < 1) {
             $('#itemWeight').val(1);
          }
          if ($('#itemDisplayWeight').val().length < 1) {
              $('#itemDisplayWeight').val(1);
          }
      }
// disabling this due to conflicts
/*      
      $('#submit1').bind('click', function(e){
          e.preventDefault();
          var submitForm = true;
          while ($('#itemTitle').val().length < 1) {
              $('#itemTitle').val(prompt('Item title?'));
          }
          if ($('#itemWeight').val().length < 1) {
              if ($('#currentShipCalcType').val() == 'USPS') {
                  while ($('#itemWeight').val().length < 1) {
                      var weight = prompt("Item's weight?");
                      $('#itemWeight').val(weight);
                      $('#itemDisplayWeight').val(weight);
                  }
              } else if ($('#currentShipCalcType').val() == 'pickup') {
                  $('#itemWeight').val(150);
              } else {
                  alert('Please enter shipping information!');
                  $('.calcInput:empty').first().focus();
                  submitForm = false;
              }
          }
          while ($('#itemDisplayWeight').val().length < 1) {
              $('#itemDisplayWeight').val(prompt('Item\'s actual weight?'));
          }
          if ($('#itemDescription').val().length < 1) {
  //            alert('Please enter a description!');
  //            submitForm = false;
  // Doesn't work. Huh.
          }
          if (submitForm === true) {
              if ($('#itemsellerstore').val() == '999') {
                  $('#itemsellerstore').val('999 - Mixed Locations');
              }
              var shipString = '<<';
              if ($('#Clothing').css('background-color') == 'rgb(170, 170, 170)') {
                  shipString += 'clth:'+$('#actualWeight').val()+'#';
                  if ($('#itemShipMethod').val() == 2) {
                      shipString += '/' + $('#dim1').val() + 'x' + $('#dim2').val() + 'x' + $('#dim3').val();
                  }
              } else if ($('#Media').css('background-color') == 'rgb(170, 170, 170)') {
                  shipString += 'mdia+'+$('#actualWeight').val()+'#';
              } else {
                  if ($('#currentShipCalcType').val() == 'general') {
                      shipString += 'gen:';
                  } else if ($('#currentShipCalcType').val() == 'guitar') {
                      shipString += 'guit:';
                  } else if ($('#currentShipCalcType').val() == 'art') {
                      shipString += 'art:';
                  } else if ($('#currentShipCalcType').val() == 'long') {
                      shipString += 'long:';
                  }
                  if ($('#dim1').val().length > 0 && $('#dim2').val().length > 0 && $('#dim3').val().length > 0) {
                    shipString += $('#actualWeight').val() + '#/' + $('#dim1').val() + 'x' + $('#dim2').val() + 'x' + $('#dim3').val();
                  }
              }
              shipString += '>>';
              console.log(shipString);
              $('#itemSellerInfo').val($('#itemSellerInfo').val()+shipString);
              if ($('#noteToShipping').val().length > 0) {
                  $('#itemSellerInfo').val($('#itemSellerInfo').val()+'<br><br><b>Note from ' + $('#posterName').html() + ': </b>' + $('#noteToShipping').val());
              }
              $('#form1').submit();
          }
      });
*/
      function validateCombineCat(cat) {
          noCombine = ['Sculpture', 'Figurine', 'Cookie Jar', 'Music Box', 'Glass', 'Grabbag', 'Barware', 'China', 'Cookware', 'Serving Piece', 'Wedding Dress', 'Gown',];
          combine = true;
  //        $.each()
  // I don't think I want it to automatically do this.
      }

      $('.upsButton').bind('click', function(){
          useSuggestion('UPS');
      });
      $('.uspsButton').bind('click', function(){
          useSuggestion('USPS');
      });
      $('.pickupOnlyButton').bind('click', function(){
          useSuggestion('pickup');
      });

      function buttonClickAnimate(button) {
          button.css('background-color', '#AAA').animate({
              'background-color' : '#EEE',
          }, 500);
      }

      function weightPrompt() {
          var displayWeight = Math.ceil($('#addPounds').html());
          while ($('#actualWeight').val().length < 1) {
             var actualWeight = prompt('Item\'s actual weight?');
             actualWeight = actualWeight.replace(/[^\d.-]/g,'');
             $('#actualWeight').val(actualWeight);
            displayWeight += Math.ceil(actualWeight);
             $('#calc-'+$('#currentShipCalcType').val()).trigger("click");
          }

          $('#itemDisplayWeight').val(displayWeight);
      }

      $('#calc-media').bind('click', function(){
          buttonClickAnimate($(this));
          $('#Media') .trigger('click');
      });

      $('#calc-clothing').bind('click', function(){
          buttonClickAnimate($(this));
          weightPrompt();
          var weight = parseFloat($('#actualWeight').val());
          $('#itemDisplayWeight').val(weight);
          calculateUSPS(weight);
      });

      $('.shipCharge').bind('click', function(){
          $('.shipType').css('background-color', '#EEE');
          $(this).css('background-color', '#AAA');
          var thisBox = $(this).text();
          var boxData = $('#boxDefinitions').data()[thisBox];
          weightPrompt();
          if (thisBox == 'Media') {
              doMedia($('#actualWeight').val());

          } else if (thisBox == 'Clothing' || thisBox == 'Small&light') {
              $('#calc-clothing').trigger('click');
          } else if (boxData['method'] == 'USPS') {
              $('#itemDisplayWeight').val($('#actualWeight').val());
              $('#itemWeight').val($('#actualWeight').val());
              $('#itemShippingPrice').val(boxData['price']);
              $('#shipTypeNote').val(thisBox);
          } else if (boxData['method'] == 'UPS') {
              $('#itemDisplayWeight').val($('#actualWeight').val());
              realWeight = Math.ceil($('#actualWeight').val())+Math.ceil($('#addInches').html());
              if (realWeight > boxData['weight']) {
                  $('#itemWeight').val(realWeight);
              } else {
                 $('#itemWeight').val(boxData['weight']);
              }
              $('#shipTypeNote').val(boxData['note']);
          }
          if (boxData['method'].length > 0) {
  //            console.log('.shipCharge():'+boxData['method']);
              shippingMethod(boxData['method']);
          }
      });

      function useSuggestion(type)   {
          buttonClickAnimate($('.'+type+'Button:visible'));
          if (type == 'pickupOnly') {
              type = 'pickup';
          }
  //        console.log('useSuggestion():'+type);
          shippingMethod(type);
          weightPrompt();
          $('#itemDisplayWeight').val($('#actualWeight').val());
          if (type == 'UPS') {
              $('#itemWeight').val($('#shipCalcShippingWeight').html());
          } else if (type == 'USPS') {
              $('#itemWeight').val($('#actualWeight').val());
              $('#itemShippingPrice').val($('#uspsSuggPrice').html());
          } else if (type == 'pickup') {
              $('#itemWeight').val(150);
          }
      }

      $('#UPS').bind('click', function(){
         weightPrompt();
         dimList = [$('#dim1').val(), $('#dim2').val(), $('#dim3').val()];
         $.each(dimList, function(index, dim){
             index+=1;
             while (dim.length < 1) {
                 dim = prompt('Dimension ' + index);
                 $('#dim'+index).val(dim);
             }
         });
         $('#calc-'+$('#currentShipCalcType').val()).trigger('click'); 
         if($('.upsButton:visible').length > 0) {
            useSuggestion('UPS');
         } else {
            useSuggestion('pickup');
         }
      });

      $('#pickupOnly').bind('click', function(){
         weightPrompt();
         shippingMethod('pickup');
      });

      function shippingMethod(method)  {
   //       console.log('shippingMethod() '+method);
          $('#UPS, #pickup').css('background-color', '#EEE');
          $('#itemShipMethod > option').removeAttr('selected');
          if (method == 'UPS') {
             $('#itemShipMethod').val(2);
             $('#itemAutoInsurance').removeProp('checked');
             $('#itemShippingPrice').val(0);
             $('#UPS').css('background-color', '#AAA');
          } else if (method =='pickup') {
  //            console.log('a');
             $('#itemShipMethod').val(0);
             $('#itemAutoInsurance').removeProp('checked');
             $('#itemShippingPrice').val(0);
             $('#itemWeight').val(150);
             $('#pickupOnly').css('background-color', '#AAA');
          } else if (method == 'USPS') {
  //            console.log('???');
             $('#itemShipMethod').val(3);
             $('#itemAutoInsurance').prop('checked', true);
             $('#itemWeight').val(Math.ceil($('#actualWeight').val()) + Math.ceil($('#addPounds').html()));
          }
      }

      function getCharge(myWeight) {
          console.log('getCharge:'+myWeight);
          if (myWeight <= 3) {
              return '3.99';
          } else if (myWeight <= 6) {
              return '5.99';
          } else if (myWeight <= 10) {
              return '7.99';
          } else if (myWeight <= 13) {
              return '8.99';
          } else if (myWeight <= 15) {
              return '9.99';
          } else if (myWeight <= 19) {
              return '11.99';
          } else if (myWeight <= 25) {
              return '15.99';
          } else if (myWeight <= 27) {
              return '16.99';
          } else if (myWeight <= 29) {
              return '17.99';
          } else if (myWeight <= 31) {
              return '18.99';
          } else if (myWeight <= 33) {
              return '19.99';
          } else if (myWeight <= 35) {
              return '20.99';
          } else if (myWeight <= 37) {
              return '21.99';
          } else if (myWeight <= 39) {
              return '22.99';
          } else if (myWeight <= 41) {
              return '23.99';
          } else if (myWeight <= 43) {
              return '24.99';
          } else if (myWeight <= 45) {
              return '25.99';
          } else if (myWeight <= 47) {
              return '26.99';
          } else if (myWeight <= 49) {
              return '27.99';
          } else if (myWeight <= 51) {
              return '28.99';
          } else if (myWeight <= 53) {
              return '29.99';
          } else if (myWeight <= 55) {
              return '30.99';
          } else if (myWeight <= 57) {
              return '31.99';
          } else if (myWeight <= 59) {
              return '32.99';
          } else if (myWeight <= 61) {
              return '33.99';
          } else if (myWeight <= 63) {
              return '34.99';
          } else if (myWeight <= 65) {
              return '35.99';
          } else if (myWeight <= 67) {
              return '36.99';
          } else if (myWeight <= 68) {
              return '37.99';
          } else if (myWeight <= 69) {
              return '38.99';
          } else if (myWeight <= 70) {
              return '39.99';
          }
    }
      function doMedia(weight) {    
          console.log('media:'+weight);
          var myCharge;
          if (weight < 50) {
              myCharge = getCharge(weight);
          } else if (weight < 70) {
              myCharge = 2 * getCharge(weight/2);
          } else {
              if (weight <= 140) {
                  weight /= 2;
                  myCharge = 2.25 * getCharge(weight);
              } else if (weight <= 210) {
                  weight /= 3;
                  myCharge = 3.5 * getCharge(weight);
              }
              myCharge = (Math.ceil(myCharge) - .01)
          }

          $('#itemDisplayWeight').val(weight);
          $('#itemWeight').val(weight);
          $('#itemShippingPrice').val(myCharge);
          $('#shipTypeNote').val('Media');
          shippingMethod('USPS');
      }
  }, 1100);

}

$('.fakeButton').css({
  'border' : '1px solid #CCC',
  'background-color' : '#EEE',
  'padding' : '3px',
  'margin' : '3px',
});

// don't forget checkboxes! also #table does not have a val()...

// can I touch $('body.WebWizRTEtextarea')???