View "Open Orders" on Amazon.co.jp
// ==UserScript==
// @name amzShowOpenOrders
// @name:ja 未発送の注文を表示
// @namespace https://furyutei.work
// @license MIT
// @version 0.1.0
// @description View "Open Orders" on Amazon.co.jp
// @description:ja Amazon.co.jpにて「未発送の注文」を表示します
// @author furyu
// @match https://www.amazon.co.jp/*
// @noframes
// @grant none
// @compatible chrome
// @compatible firefox
// @supportURL https://github.com/furyutei/amzShowOpenOrders/issues
// @contributionURL https://memo.furyutei.work/about#send_donation
// ==/UserScript==
(() => {
const
SCRIPT_NAME = 'amzShowOpenOrders';
if (! /\/order-history/.test(location.href)) return;
let open_orders_text = '未発送の注文';
switch (document.documentElement.lang) {
case 'en-us' :
open_orders_text = 'Open Orders';
break;
case 'zh-cn' :
open_orders_text = '未发出的订单';
break;
}
let tablist = document.querySelector('#orderTypeMenuContainer ul[role="tablist"]'); // TODO: 「再び購入」メニューだとこの要素が存在しない(現状は未対応)
if (! tablist) return;
let open_orders_tab = tablist.querySelector('li[role="tab"] a.a-link-normal[href*="orderFilter=open"]')?.closest('li[role="tab"]');
if ( open_orders_tab ) return;
let order_tab = tablist.querySelector('li[role="tab"] a.a-link-normal[href*="ref=ppx_yo_dt_b_orders"]')?.closest('li[role="tab"]'),
selected_tab = tablist.querySelector('li[role="tab"].selected'),
before_tab = order_tab ?? selected_tab;
if (! before_tab) return;
let is_open_orders_page = ( new URL(location.href).searchParams.get('orderFilter') == 'open' ),
item_html = is_open_orders_page ? open_orders_text : `<a class="a-link-normal item" href="/gp/your-account/order-history/?ie=UTF8&orderFilter=open">${open_orders_text}</a>`;
before_tab.insertAdjacentHTML('afterend', `
<li role="tab" ${ is_open_orders_page ? 'class="selected"' : '' }>
<span class="a-list-item">
${item_html}
</span>
</li>
`);
})();