mark: A photo of Mark kneeling on top of the Taal Volcano in the Philippines. It was a long hike. (Default)
Mark Smith ([staff profile] mark) wrote in [site community profile] changelog2010-03-08 10:34 pm

[dw-free] multiple icon uploader doesn't work in IE

[commit: http://hg.dwscoalition.org/dw-free/rev/16897fd59456]

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

Fix multiple icon uploader to work with Internet Explorer.

Patch by [personal profile] allen.

Files modified:
  • htdocs/editicons.bml
  • htdocs/js/editicons.js
--------------------------------------------------------------------------------
diff -r 4f61e7788b51 -r 16897fd59456 htdocs/editicons.bml
--- a/htdocs/editicons.bml	Mon Mar 08 22:25:40 2010 +0000
+++ b/htdocs/editicons.bml	Mon Mar 08 22:33:57 2010 +0000
@@ -404,12 +404,14 @@ use strict;
             $body .= "<p class='detail'>$ML{'.label.description.desc'}</p>\n";
 
             $body .= "<p class='pkg'>\n";
+            $body .= "<span id='main_make_default'>";
             $body .= LJ::html_check({ 'type' => 'checkbox',
                                       'name' => 'make_default',
                                       'id' => 'make_default_0',
                                       'value' => '0',
                                       'selected' => @userpics ? 0 : 1,
                                       'accesskey' => $ML{'.makedefault.key'} });
+            $body .= "</span>";
 
             $body .= "<label for='make_default_0'>$ML{'.makedefault'}</label>\n";
             $body .= "</p>\n";
diff -r 4f61e7788b51 -r 16897fd59456 htdocs/js/editicons.js
--- a/htdocs/js/editicons.js	Mon Mar 08 22:25:40 2010 +0000
+++ b/htdocs/js/editicons.js	Mon Mar 08 22:33:57 2010 +0000
@@ -96,11 +96,7 @@ var allowDescriptions = false;
 var allowDescriptions = false;
 
 function addNewUpload(uploadType) {
-  if (document.forms.uploadPic.make_default instanceof HTMLInputElement) {
-    value = document.forms.uploadPic.make_default.checked;
-    document.forms.uploadPic.make_default.type = "radio";
-    document.forms.uploadPic.make_default.checked = value;
-  }
+  updateMakeDefaultType(true);
 
   insertIntoTag = document.getElementById("multi_insert");
   insertElement = document.createElement("p");
@@ -142,6 +138,7 @@ function removeAdditionalUpload(removeIn
 function removeAdditionalUpload(removeIndex) {
   if (document.forms.uploadPic.make_default.length == 3) {
     removeNoDefaultButton();
+    updateMakeDefaultType(false);
   }
 
   removeFromTag = document.getElementById("multi_insert");
@@ -152,11 +149,6 @@ function removeAdditionalUpload(removeIn
     unhideUploadButtons();
   }
 
-  if (document.forms.uploadPic.make_default instanceof HTMLInputElement) {
-    value = document.forms.uploadPic.make_default.checked;
-    document.forms.uploadPic.make_default.type = "checkbox";
-    document.forms.uploadPic.make_default.checked = value;
-  }
 }
 
 function hideUploadButtons() {
@@ -206,4 +198,23 @@ function keyPressFileUpload() {
   selectFileUpload();
 }
 
+function updateMakeDefaultType(multi) {
+  var makeDefaultInput = $('make_default_0');
+
+  if (makeDefaultInput != null) {
+    // see if we're already correct
+    if ((multi && makeDefaultInput.type != "radio") || (! multi && makeDefaultInput.type != "checkbox")) {
+      var containerElement = $('main_make_default');
+
+      value = makeDefaultInput.checked;
+      if (multi) {
+        containerElement.innerHTML = containerElement.innerHTML.replace(/checkbox/, "radio");
+      } else {
+        containerElement.innerHTML = containerElement.innerHTML.replace(/radio/, "checkbox");
+      }
+      $('make_default_0').checked = value;
+    }
+  }
+}
+
 DOM.addEventListener(window, "load", setup);
--------------------------------------------------------------------------------
ninetydegrees: Photo: octopus tentacles (tentacles)

[personal profile] ninetydegrees 2010-03-08 11:15 pm (UTC)(link)
Are you sure this is bug #967?
ninetydegrees: Art: self-portrait (Default)

[personal profile] ninetydegrees 2010-03-08 11:23 pm (UTC)(link)
Now, yes. It's bug #976. :)