]> git.wh0rd.org - tt-rss.git/commitdiff
feed editor: allow manual replacement of feed icons
authorAndrew Dolgov <fox@bah.org.ru>
Thu, 14 Jan 2010 09:47:28 +0000 (12:47 +0300)
committerAndrew Dolgov <fox@bah.org.ru>
Thu, 14 Jan 2010 09:47:28 +0000 (12:47 +0300)
functions.js
modules/pref-feeds.php

index f0135f76a5b62bef04650fb0ade8ceb894f07520..bcb462c47f08116abd36dee6c9b704427aeb39ff 100644 (file)
@@ -2248,15 +2248,56 @@ function feedArchiveRemove() {
        }
 }
 
-function uploadIconHandler(iframe) {
+function uploadIconHandler(rc) {
        try {
-               notify_info("Icon changed!");
+               switch (rc) {
+                       case 0:
+                               notify_info("Upload complete.");
+                               if (inPreferences()) {
+                                       updateFeedList();
+                               } else {
+                                       setTimeout('updateFeedList(false, false)', 50);
+                               }
+                               break;
+                       case 1:
+                               notify_error("Upload failed: icon is too big.");
+                               break;
+                       case 2:
+                               notify_error("Upload failed.");
+                               break;
+               }
+
+       } catch (e) {
+               exception_error("uploadIconHandler", e);
+       }
+}
+
+function removeFeedIcon(id) {
+
+       try {
+
+               if (confirm(__("Remove stored feed icon?"))) {
+                       var query = "backend.php?op=pref-feeds&subop=removeicon&feed_id=" + param_escape(id);
 
-               alert("Icon changed, blah blah");
+                       debug(query);
 
+                       notify_progress("Removing feed icon...", true);
 
+                       new Ajax.Request("backend.php", {
+                               parameters: query,
+                               onComplete: function(transport) { 
+                                       notify_info("Feed icon removed.");
+                                       if (inPreferences()) {
+                                               updateFeedList();
+                                       } else {
+                                               setTimeout('updateFeedList(false, false)', 50);
+                                       }
+                               } }); 
+               }
+
+               return false;
        } catch (e) {
-               exception_error("uploadIconHandler", e);
+               exception_error("uploadFeedIcon", e);
        }
 }
 
@@ -2268,12 +2309,15 @@ function uploadFeedIcon() {
 
                if (file.value.length == 0) {
                        alert(__("Please select an image file to upload."));
-                       return false;
                } else {
-                       notify_progress("Uploading, please wait...", true);
-                       return true;
+                       if (confirm(__("Upload new icon for this feed?"))) {
+                               notify_progress("Uploading, please wait...", true);
+                               return true;
+                       }
                }
 
+               return false;
+
        } catch (e) {
                exception_error("uploadFeedIcon", e);
        }
index 85d1e3f7becb781de79eb6cc2600005473893de3..bfb178c2c47bb6c3f553fda5b10baa350bae8aa8 100644 (file)
                $quiet = $_REQUEST["quiet"];
                $mode = $_REQUEST["mode"];
 
+               if ($subop == "removeicon") {                   
+                       $feed_id = db_escape_string($_REQUEST["feed_id"]);
+
+                       $result = db_query($link, "SELECT id FROM ttrss_feeds
+                               WHERE id = '$feed_id' AND owner_uid = ". $_SESSION["uid"]);
+
+                       if (db_num_rows($result) != 0) {
+                               unlink(ICONS_DIR . "/$feed_id.ico");
+                       }
+
+                       return;
+               }
+
                if ($subop == "uploadicon") {
+                       $icon_file = $_FILES['icon_file']['tmp_name'];
+                       $feed_id = db_escape_string($_REQUEST["feed_id"]);
+
+                       if (is_file($icon_file) && $feed_id) {
+                               if (filesize($icon_file) < 2000) {
+                                       
+                                       $result = db_query($link, "SELECT id FROM ttrss_feeds
+                                               WHERE id = '$feed_id' AND owner_uid = ". $_SESSION["uid"]);
+
+                                       if (db_num_rows($result) != 0) {
+                                               unlink(ICONS_DIR . "/$feed_id.ico");
+                                               move_uploaded_file($icon_file, ICONS_DIR . "/$feed_id.ico");
+                                               $rc = 0;
+                                       } else {
+                                               $rc = 2;
+                                       }
+                               } else {
+                                       $rc = 1;
+                               }
+                       } else {
+                               $rc = 2;
+                       }
+
                        print "<script type=\"text/javascript\">";
-                       print "parent.uploadIconHandler(this);";
+                       print "parent.uploadIconHandler($rc);";
                        print "</script>";
                        return;
                }
 
                        print "<br/>";
 
-/*                     print "<div class=\"dlgSec\">".__("Icon")."</div>";
+                       print "<div class=\"dlgSec\">".__("Icon")."</div>";
                        print "<div class=\"dlgSecCont\">";
 
                        print "<iframe name=\"icon_upload_iframe\"
                        print "<form style='display : block' target=\"icon_upload_iframe\"
                                enctype=\"multipart/form-data\" method=\"POST\" 
                                action=\"backend.php\">
-                               <input id=\"icon_file\" name=\"icon_file\" type=\"file\">
+                               <input id=\"icon_file\" size=\"10\" name=\"icon_file\" type=\"file\">
                                <input type=\"hidden\" name=\"op\" value=\"pref-feeds\">
+                               <input type=\"hidden\" name=\"feed_id\" value=\"$feed_id\">
                                <input type=\"hidden\" name=\"subop\" value=\"uploadicon\">
                                <button onclick=\"return uploadFeedIcon();\"
                                        type=\"submit\">".__('Replace')."</button>
+                               <button onclick=\"return removeFeedIcon($feed_id);\"
+                                       type=\"submit\">".__('Remove')."</button>
                                </form>";
 
-                       print "</div>"; */
+                       print "</div>";
 
                        $title = htmlspecialchars($title, ENT_QUOTES);