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;
--------------------------------------------------------------------------------

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org