Skip to content

Commit

Permalink
chore: move dialog inline script to js
Browse files Browse the repository at this point in the history
  • Loading branch information
onemen committed Sep 17, 2024
1 parent 52bfe95 commit ea2f974
Show file tree
Hide file tree
Showing 9 changed files with 19 additions and 37 deletions.
6 changes: 5 additions & 1 deletion addon/chrome/content/dialogs/promptservice.js
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,11 @@ function prompt_init() {
}
documentElement = document.documentElement;

const dialog = documentElement;
dialog.addEventListener("dialogaccept", prompt_deinit.bind(dialog, 0));
dialog.addEventListener("dialogcancel", prompt_deinit.bind(dialog, 1));
dialog.addEventListener("dialogextra1", prompt_extra1.bind(dialog, 2));

dialogParams = window.arguments[0].QueryInterface(Ci.nsIDialogParamBlock);
document.title = dialogParams.GetString(0);

Expand Down Expand Up @@ -127,7 +132,6 @@ function prompt_init() {

// Set and focus default button
var dButton = buttons[dialogParams.GetInt(0)] ?? "accept";
var dialog = documentElement;
dialog.defaultButton = dButton;
if (gHideElmParam == TMP_HIDE_MENUANDTEXT) { // hide menulist & text box and set focus to default Button
document.getElementById("space_before_checkbox").hidden = true;
Expand Down
15 changes: 3 additions & 12 deletions addon/chrome/content/dialogs/promptservice.xhtml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://browser/skin/" type="text/css"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>

<!DOCTYPE dialog [
<!ENTITY % pref-tabmixDTD SYSTEM "chrome://tabmixplus/locale/pref-tabmix.dtd">
Expand All @@ -12,21 +13,11 @@
resizable="no"
onload="prompt_init();"
buttons="accept, cancel, extra1"
ondialogaccept="return prompt_deinit(0);"
ondialogcancel="return prompt_deinit(1);"
ondialogextra1="return prompt_extra1(2);"
buttonpack="center"
style="-moz-user-focus: ignore; padding: 8px 10px 10px 8px;">

<script type="text/javascript"><![CDATA[
let t = document.getElementsByTagName("dialog")[0];
let f = new Function("event", t.getAttribute("ondialogaccept"));
t.addEventListener("dialogaccept", event => f.call(t, event));
t.addEventListener("dialogcancel", event => f.call(t, event));
t.addEventListener("dialogextra1", event => f.call(t, event));
]]></script>
<script type="application/javascript" src="chrome://tabmixplus/content/utils.js"/>
<script type="application/javascript" src="chrome://tabmixplus/content/dialogs/promptservice.js"/>
<script type="application/javascript" src="chrome://tabmixplus/content/utils.js"/>
<script type="application/javascript" src="chrome://tabmixplus/content/dialogs/promptservice.js"/>

<hbox >
<hbox align="start">
Expand Down
1 change: 1 addition & 0 deletions addon/chrome/content/overlay/autoReload.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ const {TabmixSvc} = ChromeUtils.import("chrome://tabmix-resource/content/TabmixS
const gPref = TabmixSvc.prefBranch;

function load() {
document.documentElement.addEventListener("dialogaccept", accept.bind(null));
const customReloadTime = gPref.getIntPref("reload_time");
document.getElementById("autoreload_minutes").value = String(Math.floor(customReloadTime / 60));
document.getElementById("autoreload_seconds").value = String(customReloadTime % 60);
Expand Down
6 changes: 0 additions & 6 deletions addon/chrome/content/overlay/autoReload.xhtml
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,11 @@
<dialog id="reloadevery_custom_dialog"
title="&specifyreload.label;"
buttons="accept,cancel"
ondialogaccept="accept();"
onload="load();"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
xmlns:html="http://www.w3.org/1999/xhtml"
tabindex="0">

<script type="text/javascript"><![CDATA[
let t = document.getElementsByTagName("dialog")[0];
let f = new Function("event", t.getAttribute("ondialogaccept"));
t.addEventListener("dialogaccept", event => f.call(t, event));
]]></script>
<script type="application/javascript" src="chrome://tabmixplus/content/preferences/numberinput.js"/>
<script type="application/javascript" src="chrome://tabmixplus/content/overlay/autoReload.js"/>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,11 @@ const tabstyles = {
$("stylestabs").selectedIndex = Tabmix.prefs.prefHasUserValue(this.pref) ?
Tabmix.prefs.getIntPref(this.pref) : 0;

window.addEventListener("dialogcancel", () => tabstyles.cancel());
window.addEventListener("dialogaccept", () => tabstyles.save());
window.addEventListener("dialogextra1", () => tabstyles.openHelp());
window.addEventListener("dialogextra2", () => tabstyles.toggleRGB_visibility());

const dialog = document.querySelector("dialog");
if (!window.opener && !Tabmix.getTopWin()) {
dialog.getButton("extra1").disabled = true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,19 +18,8 @@
xmlns:html="http://www.w3.org/1999/xhtml"
title="&styles.label;"
persist="screenX screenY hide-RGB"
onload="tabstyles.init();"
ondialogcancel="tabstyles.cancel();"
ondialogaccept="tabstyles.save();"
ondialogextra2="tabstyles.toggleRGB_visibility();">
onload="tabstyles.init();">
<dialog buttons="accept,cancel,extra1,extra2">

<script type="text/javascript"><![CDATA[
/* global tabstyles */
this.addEventListener("dialogcancel", () => tabstyles.cancel());
this.addEventListener("dialogaccept", () => tabstyles.save());
this.addEventListener("dialogextra1", () => tabstyles.openHelp());
this.addEventListener("dialogextra2", () => tabstyles.toggleRGB_visibility());
]]></script>
<script type="application/javascript" src="chrome://tabmixplus/content/preferences/subdialogs/pref-appearance-ce.js"/>
<script type="application/javascript" src="chrome://tabmixplus/content/preferences/checkbox_tmp-ce.js"/>
<script type="application/javascript" src="chrome://tabmixplus/content/utils.js"/>
Expand Down
3 changes: 3 additions & 0 deletions addon/chrome/content/preferences/subdialogs/pref-filetype.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@ var del;
var add;

function Init() {
window.addEventListener("dialogaccept", () => Save());
window.addEventListener("dialogextra1", () => window.opener.openHelp('links#file-type-editor'));

const prefwindow = window.opener.document.querySelector("prefwindow");
const button = document.querySelector('[dlgtype="extra1"]');
prefwindow.setButtonLabel("help", button);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,6 @@
onload="Init()"
persist="screenX screenY">
<dialog buttons="accept,cancel,extra1">
<script type="text/javascript"><![CDATA[
/* global Save */
this.addEventListener("dialogaccept", () => Save());
this.addEventListener("dialogextra1", () => window.opener.openHelp('links#file-type-editor'));
]]></script>
<script type="application/javascript" src="chrome://tabmixplus/content/utils.js"/>
<script type="application/javascript" src="chrome://tabmixplus/content/preferences/subdialogs/pref-filetype.js"/>

Expand Down
2 changes: 1 addition & 1 deletion types/preferences.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -602,7 +602,7 @@ interface PanelItemButton extends HTMLButtonElement {
interface QuerySelectorMap {
".content-box": HTMLElement;
deck: HTMLElement;
dialog: HTMLDialogElement;
dialog: HTMLDialogElement & {ownerGlobal: Window};
description: HTMLElement;
'panel-item[action="preferences"]': HTMLElement & {button: PanelItemButton};
prefwindow: PrefWindowClass;
Expand Down

0 comments on commit ea2f974

Please sign in to comment.