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] changelog2009-06-14 06:32 pm

[dw-free] Post image link broken on update page

[commit: http://hg.dwscoalition.org/dw-free/rev/212232c35417]

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

Disable Photobucket tab, remove Fotobilder support, remove 'upload from
disk' item to make the 'insert image' dialog actually reflect what a user
can do right now.

Patch by [personal profile] afuna.

Files modified:
  • cgi-bin/weblib.pl
  • htdocs/imgupload.bml
  • htdocs/imguploadrte.bml
  • htdocs/js/entry.js
  • htdocs/stc/fck/editor/dialog/fck_image/fck_image.js
  • htdocs/stc/imgupload.css
--------------------------------------------------------------------------------
diff -r 7cf587aedb52 -r 212232c35417 cgi-bin/weblib.pl
--- a/cgi-bin/weblib.pl	Sun Jun 14 18:25:13 2009 +0000
+++ b/cgi-bin/weblib.pl	Sun Jun 14 18:32:25 2009 +0000
@@ -2946,6 +2946,10 @@ sub rte_js_vars {
     foreach my $key (keys %$rte_disabled) {
         $ret .= "    RTEdisabled['$key'] = true;" if $rte_disabled->{$key};
     }
+
+    # detect whether image upload and photobucket are set up
+    my $photobucket_is_setup = $LJ::PHOTOBUCKET_JWIDGET_ID ? "true" : "false";
+
     $ret .= qq^
         var canmakepoll = $canmakepoll;
 
@@ -2956,6 +2960,9 @@ sub rte_js_vars {
                 }
             }
         }
+        
+        var SiteConfig = new Object();
+        SiteConfig.ImagePhotobucket = $photobucket_is_setup;
     </script>^;
 
     return $ret;
diff -r 7cf587aedb52 -r 212232c35417 htdocs/imgupload.bml
--- a/htdocs/imgupload.bml	Sun Jun 14 18:25:13 2009 +0000
+++ b/htdocs/imgupload.bml	Sun Jun 14 18:32:25 2009 +0000
@@ -13,8 +13,9 @@
 
     LJ::need_res('stc/lj_base-app.css',
                  'stc/imgupload.css',
-                 'stc/display_none.css',
-                 'js/photobucket_jw.js');
+                 'stc/display_none.css');
+
+    LJ::need_res( 'js/photobucket_jw.js' ) if $LJ::PHOTOBUCKET_JWIDGET_ID;
 
     if ($GET{upload_count} || LJ::did_post()) {
         my $js = "";
@@ -53,13 +54,10 @@
     }
 
     my $step = 1;
-    my $fbenabled = LJ::get_cap($u, 'fb_account') && LJ::get_cap($u, 'fb_can_upload');
     my $ret = '';
 
-    $$head .= qq{
+    $$head .= qq~
         <script type="text/javascript">
-            var fileaction = '$LJ::FB_SITEROOT/interface/webupload';
-            var fbroot     = '$LJ::SITEROOT/__using/$LJ::FB_DOMAIN';
             var urlaction  = 'imgupload.bml';
 
             function onCancel () {
@@ -71,18 +69,23 @@
                 \$(tab).className = 'on';
             }
             function clearTabs() {
-                \$('tabInsert').className = '';
-                \$('tabPhotobucket').className = '';
+                \$('tabInsert').className = '';~;
+    $$head .= qq~ 
+                \$('tabPhotobucket').className = '';~
+                    if $LJ::PHOTOBUCKET_JWIDGET_ID;
+    $$head .= qq~
             }
         </script>
-        };
+        ~;
 
     $ret .= "<div class='insob-wrapper'>";
     $ret .= "<div class='insobjOuter' id='insobjOuter'>";
     $ret .= "<form id='insobjform' enctype='multipart/form-data' action='imgupload.bml' method='post' onsubmit='return window.parent.InOb.onSubmit()' >";
     $ret .= "<div class='tabs'><ul><li id='tabInsert' class='on'><a href='javascript: void(0);' onclick='window.parent.InOb.showSelectorPage();setTab(\"tabInsert\");return false;'>Insert Image</a></li>";
-    $ret .= "<li id='tabPhotobucket'><a href='javascript: void(0);' onclick='window.parent.InOb.photobucket(seedurl,pb_affsite_id);setTab(\"tabPhotobucket\");return false;'>Photobucket</a></li></ul></div>";
-    $ret .= "<div id='close'><a href='#close' onclick='onCancel();return false;'>close</a></div>";
+
+    $ret .= "<li id='tabPhotobucket'><a href='javascript: void(0);' onclick='window.parent.InOb.photobucket(seedurl,pb_affsite_id);setTab(\"tabPhotobucket\");return false;'>Photobucket</a></li>" if $LJ::PHOTOBUCKET_JWIDGET_ID;
+
+    $ret .= "</ul></div><div id='close'><a href='#close' onclick='onCancel();return false;'>close</a></div>";
 
     # content
     $ret .= "<div class='insobjContent' id='img_iframe_holder' style='display: none; margin: 0px 0px 0px 0px;'></div><div id='img_fromwhere' class='insobjContent'>";
@@ -113,50 +116,6 @@
     $ret .= "</p>";
     $ret .= "<p class='ex'><strong>Example:</strong> http://www.example.com/some-picture.jpg</p>";
 
-    # from file
-    $ret .= "<p class='inputs pkg'>";
-    $ret .= LJ::html_check({
-        'type'     => 'radio',
-        'name'     => 'method',
-        'id'       => 'fromfile',
-        'class'    => 'check',
-        'value'    => 'file',
-        'disabled' => $fbenabled ? 0 : 1,
-    });
-    $ret .= " <label for='fromfile' class='left'>Image from file:</label>";
-    $ret .= LJ::html_hidden('redir_to_auth_base', '1', 'sec1', '255');
-
-    my $disabled = $fbenabled ? '' : "disabled='1'";
-
-    $ret .= "<span class='inputcontainer'>";
-    $ret .= "<span id='filediv'><input type='file' name='file1' id='fromfileentry' size='50' $disabled /></span>";
-    $ret .= "</span>";
-    $ret .= "</p>";
-    if ($u) {
-        my $msg = LJ::run_hook('update_insobj_fb', $fbenabled) || "Upload a file from your computer";
-        $ret .= "<p class='ex'>$msg</p>";
-    } else {
-        $ret .= "<?warningbar $ML{'.login.message2'} warningbar?>";
-    }
-
-    # from Fotobilder
-    if ($fbenabled) {
-        $ret .= "<p class='inputs pkg'>";
-        $ret .= LJ::html_check({
-            'type'     => 'radio',
-            'name'     => 'method',
-            'id'       => 'fromfb',
-            'class'    => 'check',
-            'value'    => 'fb',
-        });
-
-        $ret .= " <label for='fromfb' class='left extended'>$ML{'.gallery.label'}</label>";
-        $ret .= "</p>";
-    }
-
-    if ($u) {
-        $ret .= "<p class='ex extended'>$ML{'.size'}</p>\n";
-    }
     $ret .= "</div><!-- end #formcontent -->";
     $ret .= "<div class='insobjNav' id='insobjNav'>";
     $ret .= "<input type='button' name='btn:prev' id='btnPrev' style='display:none' value='&lt;-- Back' />";
@@ -167,8 +126,10 @@
 
     $$body = $ret;
 
-    $$head .= "<script type='text/javascript'>var seedurl='$LJ::SITEROOT/photobucket_cb.bml';";
-    $$head .= "var pb_affsite_id = $LJ::PHOTOBUCKET_JWIDGET_ID;</script>\n";
+    if ( $LJ::PHOTOBUCKET_JWIDGET_ID ) {
+        $$head .= "<script type='text/javascript'>var seedurl='$LJ::SITEROOT/photobucket_cb.bml';";
+        $$head .= "var pb_affsite_id = $LJ::PHOTOBUCKET_JWIDGET_ID;</script>\n";
+    }
     $$head .= LJ::res_includes();
     return;
 }
diff -r 7cf587aedb52 -r 212232c35417 htdocs/imguploadrte.bml
--- a/htdocs/imguploadrte.bml	Sun Jun 14 18:25:13 2009 +0000
+++ b/htdocs/imguploadrte.bml	Sun Jun 14 18:32:25 2009 +0000
@@ -11,9 +11,9 @@
     my $u = LJ::User->remote;
     return "<?needlogin?>" unless $u;
 
-    LJ::need_res("stc/display_none.css",
-                 "js/photobucket_jw.js",
-                 "js/browserdetect.js");
+    LJ::need_res( "stc/display_none.css",
+                 "js/browserdetect.js" );
+    LJ::need_res( "js/photobucket_jw.js" ) if $LJ::PHOTOBUCKET_JWIDGET_ID;
     my $js = "";
     if ($GET{upload_count} || LJ::did_post()) {
 
@@ -32,7 +32,6 @@
     }
 
     my $step = 1;
-    my $fbenabled = LJ::get_cap($u, 'fb_account') && LJ::get_cap($u, 'fb_can_upload');
     my $ret = '';
 
     $$head .= qq{
@@ -46,17 +45,14 @@
         .insobjOuter div.ex { font: 8pt sans-serif; color: #888; font-style: italic;}
           .img_error { color: red; font-weight: bold; text-align: center; }
         </style>
-        <script>
-        var fileaction = '$LJ::FB_SITEROOT/interface/webupload';
-        var fbroot     = '$LJ::SITEROOT/__using/$LJ::FB_DOMAIN';
-        </script>
-                <script src="$LJ::STATPREFIX/fck/editor/dialog/common/fck_dialog_common.js" type="text/javascript"></script>
-                <script src="$LJ::STATPREFIX/fck/editor/dialog/fck_image/fck_image.js" type="text/javascript"></script>
-                $js
-                <link href="$LJ::STATPREFIX/fck/editor/dialog/common/fck_dialog_common.css" rel="stylesheet" type="text/css" />
+        <script src="$LJ::STATPREFIX/fck/editor/dialog/common/fck_dialog_common.js" type="text/javascript"></script>
+        <script src="$LJ::STATPREFIX/fck/editor/dialog/fck_image/fck_image.js" type="text/javascript"></script>
+        $js
+        <link href="$LJ::STATPREFIX/fck/editor/dialog/common/fck_dialog_common.css" rel="stylesheet" type="text/css" />
         };
 
     #taken from the original fck_image.html    
+    #insert HTML for an image tag, given an image URL and assorted metadata (alt text, dimensions, etc)
     $ret .= qq{
                 <div id="divInfo">
                         <table cellspacing="1" cellpadding="1" border="0" width="99%" height="99%">
@@ -133,67 +129,12 @@
                        </table></td></tr>
                        </table>
                        </div>
-                       <div id="divUpload" style="DISPLAY: none">
                    };
 
-        # taken from imgupload.bml with customization for rte
-        $ret .= "<div class='insobjOuter' id='insobjOuter'>";
-        $ret .= "<form style='display:inline' id='insobjform' enctype='multipart/form-data' action='imguploadrte.bml' method='post' onsubmit='return InObFCK.onSubmit()' >";
-        
-        $ret .= "<table width='99%' height='99%' border='0' cellpadding='0' cellspacing='0'><tr height='20' class='insObjTitle' id='insObjTitle'><td align='left' colspan='2'><p class='wintitle' id='wintitle'>Insert Image</p></td></tr>";
-        
-# content
-        $ret .= "<tr><td colspan='2'><div class='insobjContent' id='img_iframe_holder' style='display: none; margin: 0px 0px 0px 0px;'></div><div id='img_fromwhere' class='insobjContent'>";
-        
-        $ret .= "<table cellspacing='8' valign='top'>";
-
-        $ret .= "<tr><td id='img_error' class='img_error' colspan='2'></td></tr>";
-
-        # from file
-        $ret .= "<tr valign='top' colspan='2'><td>";
-        $ret .= LJ::html_check({
-            'type'=> 'radio',
-            'name'=> 'method',
-            'id'=> 'fromfile',
-            'value' => 'file',
-            'disabled' => $fbenabled ? 0 : 1,
-        });
-        $ret .= " <label for='fromfile'>Image from file</label>:</td></tr><tr><td colspan='2'>";
-        $ret .= LJ::html_hidden('redir_to_auth_base', '2', 'sec1', '255');
-
-        my $disabled = $fbenabled ? '' : "disabled='1'";
-
-        $ret .= "<div id='filediv'><input type='file' name='file1' id='fromfileentry' size='50' $disabled /></div>";
-
-        my $msg = LJ::run_hook('update_insobj_fb', $fbenabled) || "Upload a file from your computer";
-        $ret .= "<div class='ex'>$msg</div>";
-        $ret .= "</td></tr>";
-
-        # from Fotobilder
-        if ($fbenabled) {
-            $ret .= "<tr><td colspan='2'>";
-            $ret .= LJ::html_check({
-                'type' => 'radio',
-                'name' => 'method',
-                'id' => 'fromfb',
-                'value'=> 'fb',
-            });
-
-            $ret .= " <label for='fromfb'>$ML{'/imgupload.bml.gallery.label'}</label></td></tr>";
-}
-        $ret .= "</table>";
-
-        $ret .= "<br /><font size='1' color='gray'><i>$ML{'.size'}</i></font></div></td></tr><tr height='20' class='insobjNav' id='insobjNav'><td align='left'><div style='margin-left: 10px'>";
-        $ret .= "<input type='button' name='btn:prev' id='btnPrev' style='display:none' value='&lt;-- Back' />";
-        $ret .= "</div></td>";
-        $ret .= "<td align='right'><div style='margin-right: 10px'>";
-        $ret .= LJ::html_submit('btn:next', 'Insert', { 'id' => 'btnNext' });
-        $ret .= "</div></td></tr></table>";
-        $ret .= "</form></div><script>InObFCK.setupIframeHandlers();</script>";
-
         # taken from orig fck_image.html
+        # link tab
         $ret .= qq{
-                </div>
+                <script>InObFCK.setupIframeHandlers();</script>
                 <div id="divLink" style="DISPLAY: none">
                 <table cellspacing="1" cellpadding="1" border="0" width="100%">
                 <tr>
@@ -255,25 +196,32 @@
                 <span fckLang="DlgGenStyle">Style</span><br />
                 <input id="txtAttStyle" style="WIDTH: 100%" type="text">
                 </div>
-                <div id="divPhotobucket" style="DISPLAY: none">
-                <script type="text/javascript">
-                    // Safari can't use the advanced JWidget integration so the callback
-                    // URL is set to nothing
-                    var cb_url = "&url=" + escape(seedurl);
-                    var inRTE = true;
-                    var browser = new BrowserDetectLite();
-                    if (browser.isSafari) cb_url = '';
-
-                    document.write('<iframe name="jwidget" id="jwidget" src="http://photobucket.com/svc/jwidget.php?width=360&height=400&largeThumb=true&pbaffsite='+pb_affsite_id+'&bg=%23F7F7F7&border=false&bordercolor=%23000000'+cb_url+'&linkType=url&textcolor=%23000000&linkcolor=%230000FF&media=image&btntxt=Paste&dimensions=false&promo=false" bgcolor="transparent" width="99%" height="440" frameborder="0" scrolling="no"></iframe>');
-                </script>
-                </div>
             };
-
-        $$body = $ret;
-        $$head .= "<script type='text/javascript'>var seedurl='$LJ::SITEROOT/photobucket_cb.bml';";
-        $$head .= "var pb_affsite_id = $LJ::PHOTOBUCKET_JWIDGET_ID;</script>\n";
-        $$head .= LJ::res_includes();
-        return;
+    
+        # photobucket tab
+        if ( $LJ::PHOTOBUCKET_JWIDGET_ID ) {
+            $ret .= qq{
+                    <div id="divPhotobucket" style="DISPLAY: none">
+                    <script type="text/javascript">
+                        // Safari can't use the advanced JWidget integration so the callback
+                        // URL is set to nothing
+                        var cb_url = "&url=" + escape(seedurl);
+                        var inRTE = true;
+                        var browser = new BrowserDetectLite();
+                        if (browser.isSafari) cb_url = '';
+    
+                        document.write('<iframe name="jwidget" id="jwidget" src="http://photobucket.com/svc/jwidget.php?width=360&height=400&largeThumb=true&pbaffsite='+pb_affsite_id+'&bg=%23F7F7F7&border=false&bordercolor=%23000000'+cb_url+'&linkType=url&textcolor=%23000000&linkcolor=%230000FF&media=image&btntxt=Paste&dimensions=false&promo=false" bgcolor="transparent" width="99%" height="440" frameborder="0" scrolling="no"></iframe>');
+                    </script>
+                    </div>
+                };
+    
+            $$head .= "<script type='text/javascript'>var seedurl='$LJ::SITEROOT/photobucket_cb.bml';";
+            $$head .= "var pb_affsite_id = $LJ::PHOTOBUCKET_JWIDGET_ID;</script>\n";
+        }
+    
+    $$body = $ret;
+    $$head .= LJ::res_includes();
+    return;
 }
 _code?>
 <html>
diff -r 7cf587aedb52 -r 212232c35417 htdocs/js/entry.js
--- a/htdocs/js/entry.js	Sun Jun 14 18:25:13 2009 +0000
+++ b/htdocs/js/entry.js	Sun Jun 14 18:32:25 2009 +0000
@@ -613,7 +613,8 @@ InOb.selectRadio = function (which) {
 
     if (which != 'fromfile') {
         var filediv = currentPopupWindow.document.getElementById('filediv');
-        filediv.innerHTML = filediv.innerHTML;
+        if (filediv)
+            filediv.innerHTML = filediv.innerHTML;
     }
 
     // focus and change next button
diff -r 7cf587aedb52 -r 212232c35417 htdocs/stc/fck/editor/dialog/fck_image/fck_image.js
--- a/htdocs/stc/fck/editor/dialog/fck_image/fck_image.js	Sun Jun 14 18:25:13 2009 +0000
+++ b/htdocs/stc/fck/editor/dialog/fck_image/fck_image.js	Sun Jun 14 18:32:25 2009 +0000
@@ -39,11 +39,11 @@ if ( !bImageButton && !FCKConfig.ImageDl
 if ( !bImageButton && !FCKConfig.ImageDlgHideLink )
 	dialog.AddTab( 'Link', FCKLang.DlgImgLinkTab ) ;
 
-if ( FCKConfig.ImageUpload )
+if ( FCKConfig.ImageUpload && top.SiteConfig.ImageUpload )
 	dialog.AddTab( 'Upload', FCKLang.DlgLnkUpload ) ;
 
 // LJ SPECIFIC
-if ( FCKConfig.ImagePhotobucket)
+if ( FCKConfig.ImagePhotobucket && top.SiteConfig.ImagePhotobucket )
     dialog.AddTab( 'Photobucket', 'Photobucket' ) ;
 
 if ( !FCKConfig.ImageDlgHideAdvanced )
diff -r 7cf587aedb52 -r 212232c35417 htdocs/stc/imgupload.css
--- a/htdocs/stc/imgupload.css	Sun Jun 14 18:25:13 2009 +0000
+++ b/htdocs/stc/imgupload.css	Sun Jun 14 18:32:25 2009 +0000
@@ -100,6 +100,7 @@ div.insobjOuter p.wintitle {
 #formcontent { 
     padding: 5px 10px 0px 10px;
     margin: 0px;
+    min-height: 160px;
 }
 * html #formcontent {
     padding-top: 0px;
--------------------------------------------------------------------------------