Package: webdeveloper
Severity: wishlist
Tags: patch
Modern forms that are heavily javascript-reliant often lack regular,
clickable submit buttons. It would be a nice feature for Web
Developer to have an entry in the "Forms" menu that inserts a nice
clean Submit element at the end of every form on a page.
This is especially useful for forms which submit via an "onchange"
event on a select element, if you've used webdeveloper to switch the
select element to a text input.
I'm attaching a patch which i wrote that enables this feature, based
heavily on the existing webdeveloper code. I'm licensing the patch
itself GPLv2 or later. Feel free to forward it upstream,
if that's appropriate.
Thanks for maintaining this great iceweasel extension in debian.
--dkg
-- System Information:
Debian Release: 4.0
APT prefers testing
APT policy: (500, 'testing'), (200, 'unstable'), (101, 'experimental')
Architecture: i386 (i686)
Shell: /bin/sh linked to /bin/bash
Kernel: Linux 2.6.18-3-686
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
diff -ur webdeveloper-1.0.2+0/content_common/webdeveloper/forms.js webdeveloper-1.0.2+0.dkg/content_common/webdeveloper/forms.js
--- webdeveloper-1.0.2+0/content_common/webdeveloper/forms.js 2005-12-18 16:55:36.000000000 -0500
+++ webdeveloper-1.0.2+0.dkg/content_common/webdeveloper/forms.js 2007-03-28 15:52:23.000000000 -0400
@@ -112,6 +112,60 @@
}
}
+// Inserts simple clean "submit" button in all forms
+function webdeveloper_insertCleanSubmit()
+{
+ var submitsInserted = 0;
+ var displayFormDetailsMenu = document.getElementById("webdeveloper-display-form-details-menu");
+ var documentList = webdeveloper_getDocuments(webdeveloper_getContentWindow());
+ var documentLength = documentList.length;
+ var form = null;
+ var formLength = null;
+ var formList = null;
+ var pageDocument = null;
+
+ // Loop through the documents
+ for(var i = 0; i < documentLength; i++)
+ {
+ pageDocument = documentList[i];
+ formList = pageDocument.getElementsByTagName("form");
+ formLength = formList.length;
+
+ // Loop through all the forms
+ for(var j = 0; j < formLength; j++)
+ {
+ form = formList[j];
+ var sub = pageDocument.createElement("input");
+ sub.setAttribute('type', 'submit');
+ form.appendChild(sub);
+ submitsInserted++;
+ }
+ }
+ // Reapply the display form details style sheet if it is currently on - fixes bug with form method not updating
+ if(displayFormDetailsMenu.getAttribute("checked"))
+ {
+ webdeveloper_removeStyleSheet("webdeveloper-display-form-details", false);
+ webdeveloper_displayFormDetails(displayFormDetailsMenu, false);
+ }
+
+ // If the hide informational dialogs preference is not set
+ if(!webdeveloper_getBooleanPreference("webdeveloper.informational.dialogs.hide", true))
+ {
+ var stringBundle = document.getElementById("webdeveloper-string-bundle");
+ var title = stringBundle.getString("webdeveloper_insertCleanSubmit");
+
+ // If one element was enabled
+ if(submitsInserted == 1)
+ {
+ webdeveloper_informationalDialog(title, stringBundle.getString("webdeveloper_insertCleanSubmitSingleResult"));
+ }
+ else
+ {
+ webdeveloper_informationalDialog(title, stringBundle.getFormattedString("webdeveloper_insertCleanSubmitMultipleResult", [submitsInserted]));
+ }
+ }
+}
+
// Converts select elements to text inputs
function webdeveloper_convertSelectElementsToTextInputs()
{
diff -ur webdeveloper-1.0.2+0/content_common/webdeveloper/webdeveloper.xul webdeveloper-1.0.2+0.dkg/content_common/webdeveloper/webdeveloper.xul
--- webdeveloper-1.0.2+0/content_common/webdeveloper/webdeveloper.xul 2006-01-18 01:09:37.000000000 -0500
+++ webdeveloper-1.0.2+0.dkg/content_common/webdeveloper/webdeveloper.xul 2007-03-28 14:33:22.000000000 -0400
@@ -150,6 +150,7 @@
</menupopup>
</menu>
<menuitem label="&webdeveloper.convert.select.elements.text.inputs.label;" accesskey="&webdeveloper.convert.select.elements.text.inputs.key;" oncommand="webdeveloper_convertSelectElementsToTextInputs()"/>
+ <menuitem label="&webdeveloper.insert.clean.submit.label;" accesskey="&webdeveloper.insert.clean.submit.key;" oncommand="webdeveloper_insertCleanSubmit()"/>
<menuseparator/>
<menuitem label="&webdeveloper.enable.auto.completion.label;" accesskey="&webdeveloper.enable.auto.completion.key;" oncommand="webdeveloper_enableFormAutoCompletion()"/>
<menuitem label="&webdeveloper.enable.form.fields.label;" accesskey="&webdeveloper.enable.form.fields.key;" oncommand="webdeveloper_enableFormFields()"/>
@@ -424,6 +425,7 @@
</menupopup>
</menu>
<menuitem label="&webdeveloper.convert.select.elements.text.inputs.label;" accesskey="&webdeveloper.convert.select.elements.text.inputs.key;" oncommand="webdeveloper_convertSelectElementsToTextInputs()"/>
+ <menuitem label="&webdeveloper.insert.clean.submit.label;" accesskey="&webdeveloper.insert.clean.submit.key;" oncommand="webdeveloper_insertCleanSubmit()"/>
<menuseparator/>
<menuitem label="&webdeveloper.enable.auto.completion.label;" accesskey="&webdeveloper.enable.auto.completion.key;" oncommand="webdeveloper_enableFormAutoCompletion()"/>
<menuitem label="&webdeveloper.enable.form.fields.label;" accesskey="&webdeveloper.enable.form.fields.key;" oncommand="webdeveloper_enableFormFields()"/>
@@ -696,6 +698,7 @@
</menupopup>
</menu>
<menuitem label="&webdeveloper.convert.select.elements.text.inputs.label;" accesskey="&webdeveloper.convert.select.elements.text.inputs.key;" oncommand="webdeveloper_convertSelectElementsToTextInputs()"/>
+ <menuitem label="&webdeveloper.insert.clean.submit.label;" accesskey="&webdeveloper.insert.clean.submit.key;" oncommand="webdeveloper_insertCleanSubmit()"/>
<menuseparator/>
<menuitem label="&webdeveloper.enable.auto.completion.label;" accesskey="&webdeveloper.enable.auto.completion.key;" oncommand="webdeveloper_enableFormAutoCompletion()"/>
<menuitem label="&webdeveloper.enable.form.fields.label;" accesskey="&webdeveloper.enable.form.fields.key;" oncommand="webdeveloper_enableFormFields()"/>
diff -ur webdeveloper-1.0.2+0/debian/changelog webdeveloper-1.0.2+0.dkg/debian/changelog
--- webdeveloper-1.0.2+0/debian/changelog 2007-03-28 15:55:10.000000000 -0400
+++ webdeveloper-1.0.2+0.dkg/debian/changelog 2007-03-28 14:36:39.000000000 -0400
@@ -1,3 +1,9 @@
+webdeveloper (1.0.2+0-3~dkg1) unstable; urgency=low
+
+ * added "Insert Clean Submit Buttons" to Forms menu.
+
+ -- Daniel Kahn Gillmor <[EMAIL PROTECTED]> Wed, 28 Mar 2007 14:36:39 -0400
+
webdeveloper (1.0.2+0-2) unstable; urgency=low
* Updates of packaging for Firefox/Iceweasel rename:
diff -ur webdeveloper-1.0.2+0/locale_common/en-US/webdeveloper/menu.dtd webdeveloper-1.0.2+0.dkg/locale_common/en-US/webdeveloper/menu.dtd
--- webdeveloper-1.0.2+0/locale_common/en-US/webdeveloper/menu.dtd 2006-01-18 01:09:54.000000000 -0500
+++ webdeveloper-1.0.2+0.dkg/locale_common/en-US/webdeveloper/menu.dtd 2007-03-28 14:36:13.000000000 -0400
@@ -146,6 +146,8 @@
<!ENTITY webdeveloper.populate.form.fields.key "P">
<!ENTITY webdeveloper.remove.maximum.lengths.label "Remove Maximum Lengths">
<!ENTITY webdeveloper.remove.maximum.lengths.key "L">
+<!ENTITY webdeveloper.insert.clean.submit.label "Insert Clean Submit Buttons">
+<!ENTITY webdeveloper.insert.clean.submit.key "B">
<!-- Convert Form Methods Features -->
<!ENTITY webdeveloper.gets.posts.label "GETs To POSTs">
diff -ur webdeveloper-1.0.2+0/locale_common/en-US/webdeveloper/webdeveloper.properties webdeveloper-1.0.2+0.dkg/locale_common/en-US/webdeveloper/webdeveloper.properties
--- webdeveloper-1.0.2+0/locale_common/en-US/webdeveloper/webdeveloper.properties 2006-01-18 01:09:54.000000000 -0500
+++ webdeveloper-1.0.2+0.dkg/locale_common/en-US/webdeveloper/webdeveloper.properties 2007-03-28 15:22:41.000000000 -0400
@@ -124,6 +124,11 @@
webdeveloper_convertSelectElementsToTextInputsSingleResult=1 select element has been converted to a text input.
webdeveloper_convertSelectElementsToTextInputsMultipleResult=%S select elements have been converted to text inputs.
+# Insert Clean Submit Buttons
+webdeveloper_insertCleanSubmit=Insert Clean Submit Buttons
+webdeveloper_insertCleanSubmitSingleResult=A clean submit input element has been added to 1 form.
+webdeveloper_insertCleanSubmitMultipleResult=Clean submit elements have been added to %S forms.
+
# Delete Domain Cookies
webdeveloper_deleteDomainCookies=Delete Domain Cookies
webdeveloper_deleteDomainCookiesConfirmation=Are you sure you want to delete the domain cookies?