afuna: Cat under a blanket. Text: "Cats are just little people with Fur and Fangs" (Default)
afuna ([personal profile] afuna) wrote in [site community profile] changelog2009-12-01 05:27 pm

[dw-free] Auto-click 'from URL/file' radio buttons when user inputs URL or browses for file

[commit: http://hg.dwscoalition.org/dw-free/rev/520d2b04e91d]

http://bugs.dwscoalition.org/show_bug.cgi?id=419

Automatically select the appropriate radio button. Also, disable the input
box for the one which is not selected, to work around some validation
issues.

Patch by [personal profile] allen.

Files modified:
  • htdocs/editpics.bml
  • htdocs/js/editpics.js
--------------------------------------------------------------------------------
diff -r 8359f11e6d86 -r 520d2b04e91d htdocs/editpics.bml
--- a/htdocs/editpics.bml	Tue Dec 01 15:21:37 2009 +0000
+++ b/htdocs/editpics.bml	Tue Dec 01 17:26:48 2009 +0000
@@ -346,13 +346,13 @@ use strict;
                                       'class' => 'radio', 'value' => 'file', 'selected' => '1', 
                                       'accesskey' => $ML{'.fromfile.key'} }) . "\n";
             $body .= "<label for='radio_file'>$ML{'.fromfile'}</label><br />\n";
-            $body .= "<input type='file' class='file' name='userpic_0' size='18' style='margin: 0em 0em 0.5em 2em;' />\n";
+            $body .= "<input type='file' class='file' name='userpic_0' id='userpic_0' size='18' style='margin: 0em 0em 0.5em 2em;' />\n";
             $body .= "</p>\n";
             $body .= "<p class='pkg'>\n";
             $body .= LJ::html_check({ 'type' => 'radio', 'name' => 'src', 'value' => 'url',
                                       'id' => 'radio_url', 'class' => 'radio', 'accesskey' => $ML{'.fromurl.key'} }) . "\n";
             $body .= "<label for='radio_url'>$ML{'.fromurl'}</label><br />\n";
-            $body .= LJ::html_text({ 'name' => 'urlpic_0', class => 'text', style => 'margin: 0em 0em 0.5em 2em;' }) . "\n";
+            $body .= LJ::html_text({ 'name' => 'urlpic_0', 'id' => 'urlpic_0', class => 'text', style => 'margin: 0em 0em 0.5em 2em;' }) . "\n";
             $body .= "</p>\n";
             $body .= "<p class='detail'>$ML{'.label.formats.desc'}</p>\n";
             $body .= "</div>\n";
diff -r 8359f11e6d86 -r 520d2b04e91d htdocs/js/editpics.js
--- a/htdocs/js/editpics.js	Tue Dec 01 15:21:37 2009 +0000
+++ b/htdocs/js/editpics.js	Tue Dec 01 17:26:48 2009 +0000
@@ -60,6 +60,11 @@ function setup () {
     pbar.init($("progressBar"));
 
   $("progressBar").className="lj_progresscontainer";
+
+  DOM.addEventListener($("radio_url"), "click", selectUrlUpload);
+  DOM.addEventListener($("radio_file"), "click", selectFileUpload);
+  DOM.addEventListener($("urlpic_0"), "keypress", keyPressUrlUpload);
+  DOM.addEventListener($("userpic_0"), "change", keyPressFileUpload);
 }
 
 function editpicsInit() {
@@ -181,4 +186,24 @@ function removeNoDefaultButton() {
   removeFromTag.removeChild(removeElement);
 }
 
+function selectUrlUpload() {
+  $("userpic_0").disabled = true;
+  $("urlpic_0").disabled = false;
+}
+
+function selectFileUpload() {
+  $("urlpic_0").disabled = true;
+  $("userpic_0").disabled = false;
+}
+
+function keyPressUrlUpload() {
+  $("radio_url").checked =true;
+  selectUrlUpload();
+}
+
+function keyPressFileUpload() {
+  $("radio_file").checked =true;
+  selectFileUpload();
+}
+
 DOM.addEventListener(window, "load", setup);
--------------------------------------------------------------------------------