Changeset 63f0355


Ignore:
Timestamp:
Jul 28, 2018 1:47:08 PM (20 months ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
b8437cd
Parents:
2586db9
Message:

Console: Prep for removing themes (ticket #2272)

Location:
apps
Files:
6 edited

Legend:

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

    r2586db9 r63f0355  
    133133    public static final String PROP_THEME = "i2psnark.theme";
    134134    public static final String DEFAULT_THEME = "ubergine";
     135    /** From CSSHelper */
     136    private static final String PROP_DISABLE_OLD = "routerconsole.disableOldThemes";
     137    private static final boolean DEFAULT_DISABLE_OLD = false;
    135138    /** @since 0.9.32 */
    136139    public static final String PROP_COLLAPSE_PANELS = "i2psnark.collapsePanels";
     
    833836     */
    834837    public String getTheme() {
    835         String theme = _config.getProperty(PROP_THEME);
     838        String theme;
    836839        if (getUniversalTheming()) {
    837840            // Fetch routerconsole theme (or use our default if it doesn't exist)
     
    841844            boolean themeExists = false;
    842845            for (int i = 0; i < themes.length; i++) {
    843                 if (themes[i].equals(theme))
     846                if (themes[i].equals(theme)) {
    844847                    themeExists = true;
     848                    break;
     849                }
    845850            }
    846851            if (!themeExists) {
     
    852857                _config.setProperty(PROP_THEME, DEFAULT_THEME);
    853858            }
     859        } else {
     860            theme = _config.getProperty(PROP_THEME, DEFAULT_THEME);
     861        }
     862        // remap deprecated themes
     863        if (theme.equals("midnight")) {
     864            if (_context.getProperty(PROP_DISABLE_OLD, DEFAULT_DISABLE_OLD))
     865                theme = "dark";
     866        } else if (theme.equals("classic")) {
     867            if (_context.getProperty(PROP_DISABLE_OLD, DEFAULT_DISABLE_OLD))
     868                theme = "light";
    854869        }
    855870        return theme;
     
    863878         String[] themes;
    864879         if (_context.isRouterContext()) {
    865             // "docs/themes/snark/"
    866880            File dir = new File(_context.getBaseDir(), "docs/themes/snark");
    867881            FileFilter fileFilter = new FileFilter() { public boolean accept(File file) { return file.isDirectory(); } };
    868             // Walk the themes dir, collecting the theme names, and append them to the map
    869882            File[] dirnames = dir.listFiles(fileFilter);
    870883            if (dirnames != null) {
    871                 themes = new String[dirnames.length];
    872                 for(int i = 0; i < dirnames.length; i++) {
    873                     themes[i] = dirnames[i].getName();
    874                 }
     884                List<String> th = new ArrayList<String>(dirnames.length);
     885                boolean skipOld = _context.getProperty(PROP_DISABLE_OLD, DEFAULT_DISABLE_OLD);
     886                for (int i = 0; i < dirnames.length; i++) {
     887                    String name = dirnames[i].getName();
     888                    if (skipOld && (name.equals("midnight") || name.equals("classic")))
     889                        continue;
     890                    th.add(name);
     891                }
     892                themes = th.toArray(new String[th.size()]);
    875893            } else {
    876894                themes = new String[0];
    877895            }
    878896        } else {
    879             themes = new String[] { "classic", "dark", "light", "midnight", "ubergine", "vanilla" };
     897            themes = new String[] { "dark", "light", "ubergine", "vanilla" };
    880898        }
    881899        return themes;
  • apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/IndexBean.java

    r2586db9 r63f0355  
    7878    private static final UIMessages _messages = new UIMessages(100);
    7979
    80     public static final String PROP_THEME_NAME = "routerconsole.theme";
    81     public static final String DEFAULT_THEME = "light";
     80    private static final String PROP_THEME_NAME = "routerconsole.theme";
     81    private static final String DEFAULT_THEME = "light";
     82    /** From CSSHelper */
     83    private static final String PROP_DISABLE_OLD = "routerconsole.disableOldThemes";
     84    private static final boolean DEFAULT_DISABLE_OLD = false;
    8285    public static final String PROP_CSS_DISABLED = "routerconsole.css.disabled";
    8386    public static final String PROP_JS_DISABLED = "routerconsole.javascript.disabled";
     
    337340    public String getTheme() {
    338341        String theme = _context.getProperty(PROP_THEME_NAME, DEFAULT_THEME);
     342        // remap deprecated themes
     343        if (theme.equals("midnight")) {
     344            if (_context.getProperty(PROP_DISABLE_OLD, DEFAULT_DISABLE_OLD))
     345                theme = "dark";
     346        } else if (theme.equals("classic")) {
     347            if (_context.getProperty(PROP_DISABLE_OLD, DEFAULT_DISABLE_OLD))
     348                theme = "light";
     349        }
    339350        return "/themes/console/" + theme + "/";
    340351    }
  • apps/routerconsole/java/src/net/i2p/router/web/CSSHelper.java

    r2586db9 r63f0355  
    3232    /** @since 0.9.32 */
    3333    public static final String PROP_EMBED_APPS = "routerconsole.embedApps";
     34    /** @since 0.9.36 */
     35    public static final String PROP_DISABLE_OLD = "routerconsole.disableOldThemes";
     36    public static final boolean DEFAULT_DISABLE_OLD = false;
    3437
    3538    private static final String _consoleNonce = Long.toString(RandomSource.getInstance().nextLong());
     
    4548    public String getTheme(String userAgent) {
    4649        String url = BASE_THEME_PATH;
    47         if (userAgent != null && (userAgent.contains("MSIE") && !userAgent.contains("Trident/6"))) {
     50        if (userAgent != null && userAgent.contains("MSIE") && !userAgent.contains("Trident/6") &&
     51            !_context.getProperty(PROP_DISABLE_OLD, DEFAULT_DISABLE_OLD)) {
    4852            url += FORCE + "/";
    4953        } else {
     
    5256                throw new IllegalStateException("No contexts. This is usually because the router is either starting up or shutting down.");
    5357            String theme = _context.getProperty(PROP_THEME_NAME, DEFAULT_THEME);
     58            // remap deprecated themes
     59            if (theme.equals("midnight")) {
     60                if (_context.getProperty(PROP_DISABLE_OLD, DEFAULT_DISABLE_OLD))
     61                    theme = "dark";
     62            } else if (theme.equals("classic")) {
     63                if (_context.getProperty(PROP_DISABLE_OLD, DEFAULT_DISABLE_OLD))
     64                    theme = "light";
     65            }
    5466            url += theme + "/";
    5567        }
  • apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigUIHelper.java

    r2586db9 r63f0355  
    1212import net.i2p.router.web.RouterConsoleRunner;
    1313
     14/**
     15 *  Helper for /configui
     16 */
    1417public class ConfigUIHelper extends HelperBase {
    1518
     
    1821        buf.append("<div id=\"availablethemes\">");
    1922        String current = _context.getProperty(CSSHelper.PROP_THEME_NAME, CSSHelper.DEFAULT_THEME);
     23        // remap deprecated themes
     24        if (current.equals("midnight")) {
     25            if (_context.getProperty(CSSHelper.PROP_DISABLE_OLD, CSSHelper.DEFAULT_DISABLE_OLD))
     26                current = "dark";
     27        } else if (current.equals("classic")) {
     28            if (_context.getProperty(CSSHelper.PROP_DISABLE_OLD, CSSHelper.DEFAULT_DISABLE_OLD))
     29                current = "light";
     30        }
    2031        Set<String> themes = themeSet();
    2132        for (String theme : themes) {
     
    7283         if (files == null)
    7384             return rv;
     85         boolean skipOld = _context.getProperty(CSSHelper.PROP_DISABLE_OLD, CSSHelper.DEFAULT_DISABLE_OLD);
    7486         for (int i = 0; i < files.length; i++) {
     87             if (!files[i].isDirectory())
     88                 continue;
    7589             String name = files[i].getName();
    76              if (files[i].isDirectory() && ! name.equals("images"))
    77                  rv.add(name);
     90             if (name.equals("images"))
     91                 continue;
     92             if (skipOld && (name.equals("midnight") || name.equals("classic")))
     93                 continue;
     94             rv.add(name);
    7895         }
    7996         // user themes
  • apps/susidns/src/java/src/i2p/susi/dns/BaseBean.java

    r2586db9 r63f0355  
    44import java.io.FileFilter;
    55import java.io.IOException;
     6import java.util.ArrayList;
     7import java.util.List;
    68import java.util.Properties;
    79
     
    2527    private static final String DEFAULT_PRIVATE_BOOK = "../privatehosts.txt";
    2628
    27     public static final String RC_PROP_THEME_NAME = "routerconsole.theme";
    28     public static final String PROP_THEME_NAME = "theme";
    29     public static final String DEFAULT_THEME = "light";
    30     public static final String BASE_THEME_PATH = "/themes/susidns/";
     29    private static final String RC_PROP_THEME_NAME = "routerconsole.theme";
     30    private static final String PROP_THEME_NAME = "theme";
     31    private static final String DEFAULT_THEME = "light";
     32    private static final String BASE_THEME_PATH = "/themes/susidns/";
     33    /** From CSSHelper */
     34    private static final String PROP_DISABLE_OLD = "routerconsole.disableOldThemes";
     35    private static final boolean DEFAULT_DISABLE_OLD = false;
    3136    public static final String PROP_PW_ENABLE = "routerconsole.auth.enable";
    3237    private static final String ADDRESSBOOK_DIR = "addressbook";
     
    9499        // Apply any override
    95100        theme = properties.getProperty(PROP_THEME_NAME, theme);
     101        // remap deprecated themes
     102        if (theme.equals("midnight")) {
     103            if (_context.getProperty(PROP_DISABLE_OLD, DEFAULT_DISABLE_OLD))
     104                theme = "dark";
     105        } else if (theme.equals("classic")) {
     106            if (_context.getProperty(PROP_DISABLE_OLD, DEFAULT_DISABLE_OLD))
     107                theme = "light";
     108        }
    96109        // Ensure that theme exists
    97110        String[] themes = getThemes();
    98111        boolean themeExists = false;
    99112        for (int i = 0; i < themes.length; i++) {
    100             if (themes[i].equals(theme))
     113            if (themes[i].equals(theme)) {
    101114                themeExists = true;
     115                break;
     116            }
    102117        }
    103118        if (!themeExists)
     
    113128     */
    114129    public String[] getThemes() {
    115             String[] themes = null;
    116             // "docs/themes/susidns/"
     130            String[] themes;
    117131            File dir = new File(_context.getBaseDir(), "docs/themes/susidns");
    118132            FileFilter fileFilter = new FileFilter() { public boolean accept(File file) { return file.isDirectory(); } };
    119             // Walk the themes dir, collecting the theme names, and append them to the map
    120133            File[] dirnames = dir.listFiles(fileFilter);
    121134            if (dirnames != null) {
    122                 themes = new String[dirnames.length];
    123                 for(int i = 0; i < dirnames.length; i++) {
    124                     themes[i] = dirnames[i].getName();
     135                List<String> th = new ArrayList<String>(dirnames.length);
     136                boolean skipOld = _context.getProperty(PROP_DISABLE_OLD, DEFAULT_DISABLE_OLD);
     137                for (int i = 0; i < dirnames.length; i++) {
     138                    String name = dirnames[i].getName();
     139                    if (skipOld && (name.equals("midnight") || name.equals("classic")))
     140                        continue;
     141                    th.add(name);
    125142                }
     143                themes = th.toArray(new String[th.size()]);
     144            } else {
     145                themes = new String[0];
    126146            }
    127             // return the map.
    128147            return themes;
    129148    }
  • apps/susimail/src/src/i2p/susi/webmail/WebMail.java

    r2586db9 r63f0355  
    101101        private final Log _log = I2PAppContext.getGlobalContext().logManager().getLog(WebMail.class);
    102102
    103         /*
    104          * increase version number for every release
    105          */
    106         private static final int version = 13;
    107        
    108103        private static final long serialVersionUID = 1L;
    109104        private static final String LOGIN_NONCE = Long.toString(I2PAppContext.getGlobalContext().random().nextLong());
     
    259254        private static final String CONFIG_THEME = "theme";
    260255        private static final String DEFAULT_THEME = "light";
     256        /** From CSSHelper */
     257        private static final String PROP_DISABLE_OLD = "routerconsole.disableOldThemes";
     258        private static final boolean DEFAULT_DISABLE_OLD = false;
    261259
    262260        private static final String spacer = ""; /* this is best done with css */
     
    19491947                // Fetch routerconsole theme (or use our default if it doesn't exist)
    19501948                String theme = ctx.getProperty(RC_PROP_THEME, DEFAULT_THEME);
    1951                 // Apply any override
    1952                 theme = Config.getProperty(CONFIG_THEME, theme);
    19531949                boolean universalTheming = ctx.getBooleanProperty(RC_PROP_UNIVERSAL_THEMING);
    19541950                if (universalTheming) {
    1955                         // Fetch routerconsole theme (or use our default if it doesn't exist)
    1956                         theme = ctx.getProperty(RC_PROP_THEME, DEFAULT_THEME);
    19571951                        // Ensure that theme exists
    1958                         String[] themes = getThemes();
     1952                        String[] themes = getThemes(ctx);
    19591953                        boolean themeExists = false;
    19601954                        for (int i = 0; i < themes.length; i++) {
    1961                                 if (themes[i].equals(theme))
     1955                                if (themes[i].equals(theme)) {
    19621956                                        themeExists = true;
     1957                                        break;
     1958                                }
    19631959                        }
    19641960                        if (!themeExists) {
    19651961                                theme = DEFAULT_THEME;
    19661962                        }
     1963                } else {
     1964                        // Apply any override
     1965                        theme = Config.getProperty(CONFIG_THEME, theme);
     1966                }
     1967                // remap deprecated themes
     1968                if (theme.equals("midnight")) {
     1969                        if (ctx.getProperty(PROP_DISABLE_OLD, DEFAULT_DISABLE_OLD))
     1970                                theme = "dark";
     1971                } else if (theme.equals("classic")) {
     1972                        if (ctx.getProperty(PROP_DISABLE_OLD, DEFAULT_DISABLE_OLD))
     1973                                theme = "light";
    19671974                }
    19681975                boolean forceMobileConsole = ctx.getBooleanProperty(RC_PROP_FORCE_MOBILE_CONSOLE);
     
    35213528     * @return String[] -- Array of all the themes found.
    35223529     */
    3523     private static String[] getThemes() {
    3524             String[] themes = null;
    3525             // "docs/themes/susimail/"
    3526             File dir = new File(I2PAppContext.getGlobalContext().getBaseDir(), "docs/themes/susimail");
     3530    private static String[] getThemes(I2PAppContext ctx) {
     3531            String[] themes;
     3532            File dir = new File(ctx.getBaseDir(), "docs/themes/susimail");
    35273533            FileFilter fileFilter = new FileFilter() { public boolean accept(File file) { return file.isDirectory(); } };
    3528             // Walk the themes dir, collecting the theme names, and append them to the map
    35293534            File[] dirnames = dir.listFiles(fileFilter);
    35303535            if (dirnames != null) {
    3531                 themes = new String[dirnames.length];
    3532                 for(int i = 0; i < dirnames.length; i++) {
    3533                     themes[i] = dirnames[i].getName();
    3534                 }
     3536                List<String> th = new ArrayList<String>(dirnames.length);
     3537                boolean skipOld = ctx.getProperty(PROP_DISABLE_OLD, DEFAULT_DISABLE_OLD);
     3538                for (int i = 0; i < dirnames.length; i++) {
     3539                        String name = dirnames[i].getName();
     3540                        if (skipOld && (name.equals("midnight") || name.equals("classic")))
     3541                                continue;
     3542                        th.add(name);
     3543                }
     3544                themes = th.toArray(new String[th.size()]);
     3545            } else {
     3546                themes = new String[0];
    35353547            }
    3536             // return the map.
    35373548            return themes;
    35383549    }
Note: See TracChangeset for help on using the changeset viewer.