Changeset efe7a75


Ignore:
Timestamp:
Apr 15, 2013 6:39:59 PM (8 years ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
1746a81
Parents:
11dd7f6
Message:
  • i2psnark:
    • Add data directory configuration to GUI (ticket #768)
    • Add page size configuration to GUI
Location:
apps/i2psnark/java/src/org/klomp/snark
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java

    r11dd7f6 refe7a75  
    9393    public static final String PROP_STARTUP_DELAY = "i2psnark.startupDelay";
    9494    public static final String PROP_REFRESH_DELAY = "i2psnark.refreshSeconds";
     95    public static final String PROP_PAGE_SIZE = "i2psnark.pageSize";
    9596    public static final String RC_PROP_THEME = "routerconsole.theme";
    9697    public static final String RC_PROP_UNIVERSAL_THEMING = "routerconsole.universal.theme";
     
    106107    public static final int DEFAULT_STARTUP_DELAY = 3;
    107108    public static final int DEFAULT_REFRESH_DELAY_SECS = 60;
     109    private static final int DEFAULT_PAGE_SIZE = 50;
    108110
    109111    /**
     
    268270        } catch (NumberFormatException nfe) {
    269271            return DEFAULT_REFRESH_DELAY_SECS;
     272        }
     273    }
     274
     275    /**
     276     *  For GUI
     277     *  @since 0.9.6
     278     */
     279    public int getPageSize() {
     280        try {
     281            return Integer.parseInt(_config.getProperty(PROP_PAGE_SIZE));
     282        } catch (NumberFormatException nfe) {
     283            return DEFAULT_PAGE_SIZE;
    270284        }
    271285    }
     
    333347        if (!_config.containsKey(PROP_STARTUP_DELAY))
    334348            _config.setProperty(PROP_STARTUP_DELAY, Integer.toString(DEFAULT_STARTUP_DELAY));
     349        if (!_config.containsKey(PROP_PAGE_SIZE))
     350            _config.setProperty(PROP_PAGE_SIZE, Integer.toString(DEFAULT_PAGE_SIZE));
    335351        if (!_config.containsKey(PROP_THEME))
    336352            _config.setProperty(PROP_THEME, DEFAULT_THEME);
     
    451467   
    452468    public void updateConfig(String dataDir, boolean filesPublic, boolean autoStart, String refreshDelay,
    453                              String startDelay, String seedPct, String eepHost,
     469                             String startDelay, String pageSize, String seedPct, String eepHost,
    454470                             String eepPort, String i2cpHost, String i2cpPort, String i2cpOpts,
    455471                             String upLimit, String upBW, boolean useOpenTrackers, boolean useDHT, String theme) {
    456472        boolean changed = false;
     473        boolean interruptMonitor = false;
    457474        //if (eepHost != null) {
    458475        //    // unused, we use socket eepget
     
    522539            } catch (NumberFormatException nfe) {}
    523540        }
     541
     542        if (pageSize != null) {
     543            try {
     544                int size = Integer.parseInt(pageSize);
     545                if (size <= 0)
     546                    size = 999999;
     547                if (size != getPageSize() && size >= 5) {
     548                    changed = true;
     549                    pageSize = Integer.toString(size);
     550                    _config.setProperty(PROP_PAGE_SIZE, pageSize);
     551                    addMessage(_("Page size changed to {0}", pageSize));
     552                }
     553            } catch (NumberFormatException nfe) {}
     554        }
     555
     556        if (dataDir != null && !dataDir.equals(getDataDir().getAbsolutePath())) {
     557            File dd = new File(dataDir);
     558            if (!dd.isAbsolute()) {
     559                addMessage(_("Data directory must be an absolute path") + ": " + dataDir);
     560            } else if (!dd.exists()) {
     561                addMessage(_("Data directory does not exist") + ": " + dataDir);
     562            } else if (!dd.isDirectory()) {
     563                addMessage(_("Not a directory") + ": " + dataDir);
     564            } else if (!dd.canRead()) {
     565                addMessage(_("Unreadable") + ": " + dataDir);
     566            } else {
     567                changed = true;
     568                interruptMonitor = true;
     569                _config.setProperty(PROP_DIR, dataDir);
     570                addMessage(_("Data directory changed to {0}", dataDir));
     571            }
     572
     573        }
    524574
    525575        // Start of I2CP stuff.
     
    657707        if (changed) {
    658708            saveConfig();
     709            if (interruptMonitor)
     710                // Data dir changed. this will stop and remove all old torrents, and add the new ones
     711                _monitor.interrupt();
    659712        } else {
    660713            addMessage(_("Configuration unchanged."));
  • apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java

    r11dd7f6 refe7a75  
    6262    private static final String DEFAULT_NAME = "i2psnark";
    6363    public static final String PROP_CONFIG_FILE = "i2psnark.configFile";
    64     private static final int PAGE_SIZE = 50;
    6564 
    6665    public I2PSnarkServlet() {
     
    507506            } catch (NumberFormatException nfe) {}
    508507        }
     508        int pageSize = _manager.getPageSize();
    509509        for (int i = 0; i < snarks.size(); i++) {
    510510            Snark snark = (Snark)snarks.get(i);
    511511            boolean showPeers = showDebug || "1".equals(peerParam) || Base64.encode(snark.getInfoHash()).equals(peerParam);
    512             boolean hide = i < start || i >= start + PAGE_SIZE;
     512            boolean hide = i < start || i >= start + pageSize;
    513513            displaySnark(out, snark, uri, i, stats, showPeers, isDegraded, noThinsp, showDebug, hide);
    514514        }
     
    524524                      "    <th align=\"left\" colspan=\"6\">");
    525525            if (start > 0) {
    526                 int prev = Math.max(0, start - PAGE_SIZE);
     526                int prev = Math.max(0, start - pageSize);
    527527                out.write("&nbsp;<a href=\"" + _contextPath +  "?st=" + prev);
    528528                if (peerParam != null)
     
    533533                          "</a>&nbsp;");
    534534            }
    535             if (start + PAGE_SIZE < snarks.size()) {
    536                 int next = start + PAGE_SIZE;
     535            if (start + pageSize < snarks.size()) {
     536                int next = start + pageSize;
    537537                out.write("&nbsp;<a href=\"" + _contextPath +  "?st=" + next);
    538538                if (peerParam != null)
     
    793793            String refreshDel = req.getParameter("refreshDelay");
    794794            String startupDel = req.getParameter("startupDelay");
     795            String pageSize = req.getParameter("pageSize");
    795796            boolean useOpenTrackers = req.getParameter("useOpenTrackers") != null;
    796797            boolean useDHT = req.getParameter("useDHT") != null;
    797798            //String openTrackers = req.getParameter("openTrackers");
    798799            String theme = req.getParameter("theme");
    799             _manager.updateConfig(dataDir, filesPublic, autoStart, refreshDel, startupDel,
     800            _manager.updateConfig(dataDir, filesPublic, autoStart, refreshDel, startupDel, pageSize,
    800801                                  seedPct, eepHost, eepPort, i2cpHost, i2cpPort, i2cpOpts,
    801802                                  upLimit, upBW, useOpenTrackers, useDHT, theme);
     
    17201721
    17211722        out.write(_("Data directory"));
    1722         out.write(": <td><code>" + dataDir + "</code> <i>(");
    1723         // translators: parameter is a file name
    1724         out.write(_("Edit {0} and restart to change", _manager.getConfigFilename()));
    1725         out.write(")</i><br>\n" +
     1723        out.write(": <td><input name=\"dataDir\" size=\"80\" value=\"" + dataDir + "\"></td>\n" +
    17261724
    17271725                  "<tr><td>");
     
    17751773                  "<tr><td>");
    17761774        out.write(_("Startup delay"));
    1777         out.write(": <td><input name=\"startupDelay\" size=\"3\" class=\"r\" value=\"" + _manager.util().getStartupDelay() + "\"> ");
     1775        out.write(": <td><input name=\"startupDelay\" size=\"4\" class=\"r\" value=\"" + _manager.util().getStartupDelay() + "\"> ");
    17781776        out.write(_("minutes"));
     1777        out.write("<br>\n" +
     1778
     1779                  "<tr><td>");
     1780        out.write(_("Page size"));
     1781        out.write(": <td><input name=\"pageSize\" size=\"4\" maxlength=\"6\" class=\"r\" value=\"" + _manager.getPageSize() + "\"> ");
     1782        out.write(_("torrents"));
    17791783        out.write("<br>\n");
    17801784
     
    18021806        out.write(_("Total uploader limit"));
    18031807        out.write(": <td><input type=\"text\" name=\"upLimit\" class=\"r\" value=\""
    1804                   + _manager.util().getMaxUploaders() + "\" size=\"3\" maxlength=\"3\" > ");
     1808                  + _manager.util().getMaxUploaders() + "\" size=\"4\" maxlength=\"3\" > ");
    18051809        out.write(_("peers"));
    18061810        out.write("<br>\n" +
Note: See TracChangeset for help on using the changeset viewer.