diff --git a/build.go b/build.go index 948305e80..4640ac143 100644 --- a/build.go +++ b/build.go @@ -410,7 +410,7 @@ func xdr() { } func translate() { - os.Chdir("gui/assets/lang") + os.Chdir("gui/default/assets/lang") runPipe("lang-en-new.json", "go", "run", "../../../script/translate.go", "lang-en.json", "../../") os.Remove("lang-en.json") err := os.Rename("lang-en-new.json", "lang-en.json") @@ -421,7 +421,7 @@ func translate() { } func transifex() { - os.Chdir("gui/assets/lang") + os.Chdir("gui/default/assets/lang") runPrint("go", "run", "../../../script/transifexdl.go") os.Chdir("../../..") assets() diff --git a/cmd/syncthing/gui.go b/cmd/syncthing/gui.go index 1f328e26e..38b9672e0 100644 --- a/cmd/syncthing/gui.go +++ b/cmd/syncthing/gui.go @@ -52,6 +52,7 @@ type apiService struct { id protocol.DeviceID cfg *config.Wrapper assetDir string + themes []string model *model.Model eventSub *events.BufferedSubscription discoverer *discover.CachingMux @@ -79,6 +80,15 @@ func newAPIService(id protocol.DeviceID, cfg *config.Wrapper, assetDir string, m systemLog: systemLog, } + seen := make(map[string]struct{}) + for file := range auto.Assets() { + theme := strings.Split(file, "/")[0] + if _, ok := seen[theme]; !ok { + seen[theme] = struct{}{} + service.themes = append(service.themes, theme) + } + } + var err error service.listener, err = service.getListener(cfg.GUI()) return service, err @@ -198,10 +208,16 @@ func (s *apiService) Serve() { mux.HandleFunc("/qr/", s.getQR) // Serve compiled in assets unless an asset directory was set (for development) - mux.Handle("/", embeddedStatic{ - assetDir: s.assetDir, - assets: auto.Assets(), - }) + assets := &embeddedStatic{ + theme: s.cfg.GUI().Theme, + lastModified: time.Now(), + mut: sync.NewRWMutex(), + assetDir: s.assetDir, + assets: auto.Assets(), + } + mux.Handle("/", assets) + + s.cfg.Subscribe(assets) guiCfg := s.cfg.GUI() @@ -690,6 +706,7 @@ func (s *apiService) getSystemStatus(w http.ResponseWriter, r *http.Request) { res["pathSeparator"] = string(filepath.Separator) res["uptime"] = int(time.Since(startTime).Seconds()) res["startTime"] = startTime + res["themes"] = s.themes sendJSON(w, res) } @@ -1015,8 +1032,11 @@ func (s *apiService) getSystemBrowse(w http.ResponseWriter, r *http.Request) { } type embeddedStatic struct { - assetDir string - assets map[string][]byte + theme string + lastModified time.Time + mut sync.RWMutex + assetDir string + assets map[string][]byte } func (s embeddedStatic) ServeHTTP(w http.ResponseWriter, r *http.Request) { @@ -1039,13 +1059,21 @@ func (s embeddedStatic) ServeHTTP(w http.ResponseWriter, r *http.Request) { } } - bs, ok := s.assets[file] + s.mut.RLock() + theme := s.theme + modified := s.lastModified + s.mut.RUnlock() + + bs, ok := s.assets[theme+"/"+file] if !ok { - http.NotFound(w, r) - return + bs, ok = s.assets[config.DefaultTheme+"/"+file] + if !ok { + http.NotFound(w, r) + return + } } - if r.Header.Get("If-Modified-Since") == auto.AssetsBuildDate { + if modifiedSince, err := time.Parse(r.Header.Get("If-Modified-Since"), http.TimeFormat); err == nil && modified.Before(modifiedSince) { w.WriteHeader(http.StatusNotModified) return } @@ -1064,7 +1092,7 @@ func (s embeddedStatic) ServeHTTP(w http.ResponseWriter, r *http.Request) { gr.Close() } w.Header().Set("Content-Length", fmt.Sprintf("%d", len(bs))) - w.Header().Set("Last-Modified", auto.AssetsBuildDate) + w.Header().Set("Last-Modified", modified.Format(http.TimeFormat)) w.Header().Set("Cache-Control", "public") w.Write(bs) @@ -1097,6 +1125,27 @@ func (s embeddedStatic) mimeTypeForFile(file string) string { } } +// VerifyConfiguration implements the config.Committer interface +func (s *embeddedStatic) VerifyConfiguration(from, to config.Configuration) error { + return nil +} + +// CommitConfiguration implements the config.Committer interface +func (s *embeddedStatic) CommitConfiguration(from, to config.Configuration) bool { + s.mut.Lock() + if s.theme != to.GUI.Theme { + s.theme = to.GUI.Theme + s.lastModified = time.Now() + } + s.mut.Unlock() + + return true +} + +func (s *embeddedStatic) String() string { + return fmt.Sprintf("embeddedStatic@%p", s) +} + func (s *apiService) toNeedSlice(fs []db.FileInfoTruncated) []jsonDBFileInfo { res := make([]jsonDBFileInfo, len(fs)) for i, f := range fs { diff --git a/gui/assets/css/overrides.css b/gui/default/assets/css/overrides.css similarity index 100% rename from gui/assets/css/overrides.css rename to gui/default/assets/css/overrides.css diff --git a/gui/assets/font/raleway-500.woff b/gui/default/assets/font/raleway-500.woff similarity index 100% rename from gui/assets/font/raleway-500.woff rename to gui/default/assets/font/raleway-500.woff diff --git a/gui/assets/font/raleway.css b/gui/default/assets/font/raleway.css similarity index 100% rename from gui/assets/font/raleway.css rename to gui/default/assets/font/raleway.css diff --git a/gui/assets/img/favicon.png b/gui/default/assets/img/favicon.png similarity index 100% rename from gui/assets/img/favicon.png rename to gui/default/assets/img/favicon.png diff --git a/gui/assets/img/logo-horizontal.svg b/gui/default/assets/img/logo-horizontal.svg similarity index 100% rename from gui/assets/img/logo-horizontal.svg rename to gui/default/assets/img/logo-horizontal.svg diff --git a/gui/assets/img/safari-pinned-tab.svg b/gui/default/assets/img/safari-pinned-tab.svg similarity index 100% rename from gui/assets/img/safari-pinned-tab.svg rename to gui/default/assets/img/safari-pinned-tab.svg diff --git a/gui/assets/lang/README-FIRST.txt b/gui/default/assets/lang/README-FIRST.txt similarity index 100% rename from gui/assets/lang/README-FIRST.txt rename to gui/default/assets/lang/README-FIRST.txt diff --git a/gui/assets/lang/lang-bg.json b/gui/default/assets/lang/lang-bg.json similarity index 100% rename from gui/assets/lang/lang-bg.json rename to gui/default/assets/lang/lang-bg.json diff --git a/gui/assets/lang/lang-ca.json b/gui/default/assets/lang/lang-ca.json similarity index 100% rename from gui/assets/lang/lang-ca.json rename to gui/default/assets/lang/lang-ca.json diff --git a/gui/assets/lang/lang-ca@valencia.json b/gui/default/assets/lang/lang-ca@valencia.json similarity index 100% rename from gui/assets/lang/lang-ca@valencia.json rename to gui/default/assets/lang/lang-ca@valencia.json diff --git a/gui/assets/lang/lang-cs.json b/gui/default/assets/lang/lang-cs.json similarity index 100% rename from gui/assets/lang/lang-cs.json rename to gui/default/assets/lang/lang-cs.json diff --git a/gui/assets/lang/lang-da.json b/gui/default/assets/lang/lang-da.json similarity index 100% rename from gui/assets/lang/lang-da.json rename to gui/default/assets/lang/lang-da.json diff --git a/gui/assets/lang/lang-de.json b/gui/default/assets/lang/lang-de.json similarity index 100% rename from gui/assets/lang/lang-de.json rename to gui/default/assets/lang/lang-de.json diff --git a/gui/assets/lang/lang-el.json b/gui/default/assets/lang/lang-el.json similarity index 100% rename from gui/assets/lang/lang-el.json rename to gui/default/assets/lang/lang-el.json diff --git a/gui/assets/lang/lang-en-GB.json b/gui/default/assets/lang/lang-en-GB.json similarity index 100% rename from gui/assets/lang/lang-en-GB.json rename to gui/default/assets/lang/lang-en-GB.json diff --git a/gui/assets/lang/lang-en.json b/gui/default/assets/lang/lang-en.json similarity index 100% rename from gui/assets/lang/lang-en.json rename to gui/default/assets/lang/lang-en.json diff --git a/gui/assets/lang/lang-es-ES.json b/gui/default/assets/lang/lang-es-ES.json similarity index 100% rename from gui/assets/lang/lang-es-ES.json rename to gui/default/assets/lang/lang-es-ES.json diff --git a/gui/assets/lang/lang-es.json b/gui/default/assets/lang/lang-es.json similarity index 100% rename from gui/assets/lang/lang-es.json rename to gui/default/assets/lang/lang-es.json diff --git a/gui/assets/lang/lang-fi.json b/gui/default/assets/lang/lang-fi.json similarity index 100% rename from gui/assets/lang/lang-fi.json rename to gui/default/assets/lang/lang-fi.json diff --git a/gui/assets/lang/lang-fr-CA.json b/gui/default/assets/lang/lang-fr-CA.json similarity index 100% rename from gui/assets/lang/lang-fr-CA.json rename to gui/default/assets/lang/lang-fr-CA.json diff --git a/gui/assets/lang/lang-fr.json b/gui/default/assets/lang/lang-fr.json similarity index 100% rename from gui/assets/lang/lang-fr.json rename to gui/default/assets/lang/lang-fr.json diff --git a/gui/assets/lang/lang-fy.json b/gui/default/assets/lang/lang-fy.json similarity index 100% rename from gui/assets/lang/lang-fy.json rename to gui/default/assets/lang/lang-fy.json diff --git a/gui/assets/lang/lang-hu.json b/gui/default/assets/lang/lang-hu.json similarity index 100% rename from gui/assets/lang/lang-hu.json rename to gui/default/assets/lang/lang-hu.json diff --git a/gui/assets/lang/lang-it.json b/gui/default/assets/lang/lang-it.json similarity index 100% rename from gui/assets/lang/lang-it.json rename to gui/default/assets/lang/lang-it.json diff --git a/gui/assets/lang/lang-ja.json b/gui/default/assets/lang/lang-ja.json similarity index 100% rename from gui/assets/lang/lang-ja.json rename to gui/default/assets/lang/lang-ja.json diff --git a/gui/assets/lang/lang-ko-KR.json b/gui/default/assets/lang/lang-ko-KR.json similarity index 100% rename from gui/assets/lang/lang-ko-KR.json rename to gui/default/assets/lang/lang-ko-KR.json diff --git a/gui/assets/lang/lang-lt.json b/gui/default/assets/lang/lang-lt.json similarity index 100% rename from gui/assets/lang/lang-lt.json rename to gui/default/assets/lang/lang-lt.json diff --git a/gui/assets/lang/lang-nb.json b/gui/default/assets/lang/lang-nb.json similarity index 100% rename from gui/assets/lang/lang-nb.json rename to gui/default/assets/lang/lang-nb.json diff --git a/gui/assets/lang/lang-nl.json b/gui/default/assets/lang/lang-nl.json similarity index 100% rename from gui/assets/lang/lang-nl.json rename to gui/default/assets/lang/lang-nl.json diff --git a/gui/assets/lang/lang-nn.json b/gui/default/assets/lang/lang-nn.json similarity index 100% rename from gui/assets/lang/lang-nn.json rename to gui/default/assets/lang/lang-nn.json diff --git a/gui/assets/lang/lang-pl.json b/gui/default/assets/lang/lang-pl.json similarity index 100% rename from gui/assets/lang/lang-pl.json rename to gui/default/assets/lang/lang-pl.json diff --git a/gui/assets/lang/lang-pt-BR.json b/gui/default/assets/lang/lang-pt-BR.json similarity index 100% rename from gui/assets/lang/lang-pt-BR.json rename to gui/default/assets/lang/lang-pt-BR.json diff --git a/gui/assets/lang/lang-pt-PT.json b/gui/default/assets/lang/lang-pt-PT.json similarity index 100% rename from gui/assets/lang/lang-pt-PT.json rename to gui/default/assets/lang/lang-pt-PT.json diff --git a/gui/assets/lang/lang-ro-RO.json b/gui/default/assets/lang/lang-ro-RO.json similarity index 100% rename from gui/assets/lang/lang-ro-RO.json rename to gui/default/assets/lang/lang-ro-RO.json diff --git a/gui/assets/lang/lang-ru.json b/gui/default/assets/lang/lang-ru.json similarity index 100% rename from gui/assets/lang/lang-ru.json rename to gui/default/assets/lang/lang-ru.json diff --git a/gui/assets/lang/lang-sv.json b/gui/default/assets/lang/lang-sv.json similarity index 100% rename from gui/assets/lang/lang-sv.json rename to gui/default/assets/lang/lang-sv.json diff --git a/gui/assets/lang/lang-tr.json b/gui/default/assets/lang/lang-tr.json similarity index 100% rename from gui/assets/lang/lang-tr.json rename to gui/default/assets/lang/lang-tr.json diff --git a/gui/assets/lang/lang-uk.json b/gui/default/assets/lang/lang-uk.json similarity index 100% rename from gui/assets/lang/lang-uk.json rename to gui/default/assets/lang/lang-uk.json diff --git a/gui/assets/lang/lang-vi.json b/gui/default/assets/lang/lang-vi.json similarity index 100% rename from gui/assets/lang/lang-vi.json rename to gui/default/assets/lang/lang-vi.json diff --git a/gui/assets/lang/lang-zh-CN.json b/gui/default/assets/lang/lang-zh-CN.json similarity index 100% rename from gui/assets/lang/lang-zh-CN.json rename to gui/default/assets/lang/lang-zh-CN.json diff --git a/gui/assets/lang/lang-zh-TW.json b/gui/default/assets/lang/lang-zh-TW.json similarity index 100% rename from gui/assets/lang/lang-zh-TW.json rename to gui/default/assets/lang/lang-zh-TW.json diff --git a/gui/assets/lang/prettyprint.js b/gui/default/assets/lang/prettyprint.js similarity index 100% rename from gui/assets/lang/prettyprint.js rename to gui/default/assets/lang/prettyprint.js diff --git a/gui/assets/lang/valid-langs.js b/gui/default/assets/lang/valid-langs.js similarity index 100% rename from gui/assets/lang/valid-langs.js rename to gui/default/assets/lang/valid-langs.js diff --git a/gui/index.html b/gui/default/index.html similarity index 100% rename from gui/index.html rename to gui/default/index.html diff --git a/gui/modal.html b/gui/default/modal.html similarity index 100% rename from gui/modal.html rename to gui/default/modal.html diff --git a/gui/syncthing/app.js b/gui/default/syncthing/app.js similarity index 100% rename from gui/syncthing/app.js rename to gui/default/syncthing/app.js diff --git a/gui/syncthing/core/aboutModalDirective.js b/gui/default/syncthing/core/aboutModalDirective.js similarity index 100% rename from gui/syncthing/core/aboutModalDirective.js rename to gui/default/syncthing/core/aboutModalDirective.js diff --git a/gui/syncthing/core/aboutModalView.html b/gui/default/syncthing/core/aboutModalView.html similarity index 100% rename from gui/syncthing/core/aboutModalView.html rename to gui/default/syncthing/core/aboutModalView.html diff --git a/gui/syncthing/core/alwaysNumberFilter.js b/gui/default/syncthing/core/alwaysNumberFilter.js similarity index 100% rename from gui/syncthing/core/alwaysNumberFilter.js rename to gui/default/syncthing/core/alwaysNumberFilter.js diff --git a/gui/syncthing/core/basenameFilter.js b/gui/default/syncthing/core/basenameFilter.js similarity index 100% rename from gui/syncthing/core/basenameFilter.js rename to gui/default/syncthing/core/basenameFilter.js diff --git a/gui/syncthing/core/binaryFilter.js b/gui/default/syncthing/core/binaryFilter.js similarity index 100% rename from gui/syncthing/core/binaryFilter.js rename to gui/default/syncthing/core/binaryFilter.js diff --git a/gui/syncthing/core/durationFilter.js b/gui/default/syncthing/core/durationFilter.js similarity index 100% rename from gui/syncthing/core/durationFilter.js rename to gui/default/syncthing/core/durationFilter.js diff --git a/gui/syncthing/core/eventService.js b/gui/default/syncthing/core/eventService.js similarity index 100% rename from gui/syncthing/core/eventService.js rename to gui/default/syncthing/core/eventService.js diff --git a/gui/syncthing/core/httpErrorDialogDirective.js b/gui/default/syncthing/core/httpErrorDialogDirective.js similarity index 100% rename from gui/syncthing/core/httpErrorDialogDirective.js rename to gui/default/syncthing/core/httpErrorDialogDirective.js diff --git a/gui/syncthing/core/httpErrorDialogView.html b/gui/default/syncthing/core/httpErrorDialogView.html similarity index 100% rename from gui/syncthing/core/httpErrorDialogView.html rename to gui/default/syncthing/core/httpErrorDialogView.html diff --git a/gui/syncthing/core/identiconDirective.js b/gui/default/syncthing/core/identiconDirective.js similarity index 100% rename from gui/syncthing/core/identiconDirective.js rename to gui/default/syncthing/core/identiconDirective.js diff --git a/gui/syncthing/core/languageSelectDirective.js b/gui/default/syncthing/core/languageSelectDirective.js similarity index 100% rename from gui/syncthing/core/languageSelectDirective.js rename to gui/default/syncthing/core/languageSelectDirective.js diff --git a/gui/syncthing/core/lastErrorComponentFilter.js b/gui/default/syncthing/core/lastErrorComponentFilter.js similarity index 100% rename from gui/syncthing/core/lastErrorComponentFilter.js rename to gui/default/syncthing/core/lastErrorComponentFilter.js diff --git a/gui/syncthing/core/localeService.js b/gui/default/syncthing/core/localeService.js similarity index 100% rename from gui/syncthing/core/localeService.js rename to gui/default/syncthing/core/localeService.js diff --git a/gui/syncthing/core/majorUpgradeModalDirective.js b/gui/default/syncthing/core/majorUpgradeModalDirective.js similarity index 100% rename from gui/syncthing/core/majorUpgradeModalDirective.js rename to gui/default/syncthing/core/majorUpgradeModalDirective.js diff --git a/gui/syncthing/core/majorUpgradeModalView.html b/gui/default/syncthing/core/majorUpgradeModalView.html similarity index 100% rename from gui/syncthing/core/majorUpgradeModalView.html rename to gui/default/syncthing/core/majorUpgradeModalView.html diff --git a/gui/syncthing/core/modalDirective.js b/gui/default/syncthing/core/modalDirective.js similarity index 100% rename from gui/syncthing/core/modalDirective.js rename to gui/default/syncthing/core/modalDirective.js diff --git a/gui/syncthing/core/module.js b/gui/default/syncthing/core/module.js similarity index 100% rename from gui/syncthing/core/module.js rename to gui/default/syncthing/core/module.js diff --git a/gui/syncthing/core/naturalFilter.js b/gui/default/syncthing/core/naturalFilter.js similarity index 100% rename from gui/syncthing/core/naturalFilter.js rename to gui/default/syncthing/core/naturalFilter.js diff --git a/gui/syncthing/core/networkErrorDialogDirective.js b/gui/default/syncthing/core/networkErrorDialogDirective.js similarity index 100% rename from gui/syncthing/core/networkErrorDialogDirective.js rename to gui/default/syncthing/core/networkErrorDialogDirective.js diff --git a/gui/syncthing/core/networkErrorDialogView.html b/gui/default/syncthing/core/networkErrorDialogView.html similarity index 100% rename from gui/syncthing/core/networkErrorDialogView.html rename to gui/default/syncthing/core/networkErrorDialogView.html diff --git a/gui/syncthing/core/popoverDirective.js b/gui/default/syncthing/core/popoverDirective.js similarity index 100% rename from gui/syncthing/core/popoverDirective.js rename to gui/default/syncthing/core/popoverDirective.js diff --git a/gui/syncthing/core/restartingDialogDirective.js b/gui/default/syncthing/core/restartingDialogDirective.js similarity index 100% rename from gui/syncthing/core/restartingDialogDirective.js rename to gui/default/syncthing/core/restartingDialogDirective.js diff --git a/gui/syncthing/core/restartingDialogView.html b/gui/default/syncthing/core/restartingDialogView.html similarity index 100% rename from gui/syncthing/core/restartingDialogView.html rename to gui/default/syncthing/core/restartingDialogView.html diff --git a/gui/syncthing/core/selectOnClickDirective.js b/gui/default/syncthing/core/selectOnClickDirective.js similarity index 100% rename from gui/syncthing/core/selectOnClickDirective.js rename to gui/default/syncthing/core/selectOnClickDirective.js diff --git a/gui/syncthing/core/shutdownDialogDirective.js b/gui/default/syncthing/core/shutdownDialogDirective.js similarity index 100% rename from gui/syncthing/core/shutdownDialogDirective.js rename to gui/default/syncthing/core/shutdownDialogDirective.js diff --git a/gui/syncthing/core/shutdownDialogView.html b/gui/default/syncthing/core/shutdownDialogView.html similarity index 100% rename from gui/syncthing/core/shutdownDialogView.html rename to gui/default/syncthing/core/shutdownDialogView.html diff --git a/gui/syncthing/core/syncthingController.js b/gui/default/syncthing/core/syncthingController.js similarity index 99% rename from gui/syncthing/core/syncthingController.js rename to gui/default/syncthing/core/syncthingController.js index fd8a6cc3c..eabd4c37a 100755 --- a/gui/syncthing/core/syncthingController.js +++ b/gui/default/syncthing/core/syncthingController.js @@ -866,6 +866,7 @@ angular.module('syncthing.core') $scope.saveSettings = function () { // Make sure something changed var changed = !angular.equals($scope.config.options, $scope.tmpOptions) || !angular.equals($scope.config.gui, $scope.tmpGUI); + var themeChanged = $scope.config.gui.theme !== $scope.tmpGUI.theme; if (changed) { // Check if usage reporting has been enabled or disabled if ($scope.tmpOptions.urEnabled && $scope.tmpOptions.urAccepted <= 0) { @@ -901,6 +902,10 @@ angular.module('syncthing.core') } $('#settings').modal("hide"); + + if (themeChanged) { + document.location.reload(true); + } }; $scope.saveAdvanced = function () { diff --git a/gui/syncthing/core/uniqueFolderDirective.js b/gui/default/syncthing/core/uniqueFolderDirective.js similarity index 100% rename from gui/syncthing/core/uniqueFolderDirective.js rename to gui/default/syncthing/core/uniqueFolderDirective.js diff --git a/gui/syncthing/core/upgradingDialogDirective.js b/gui/default/syncthing/core/upgradingDialogDirective.js similarity index 100% rename from gui/syncthing/core/upgradingDialogDirective.js rename to gui/default/syncthing/core/upgradingDialogDirective.js diff --git a/gui/syncthing/core/upgradingDialogView.html b/gui/default/syncthing/core/upgradingDialogView.html similarity index 100% rename from gui/syncthing/core/upgradingDialogView.html rename to gui/default/syncthing/core/upgradingDialogView.html diff --git a/gui/syncthing/core/validDeviceidDirective.js b/gui/default/syncthing/core/validDeviceidDirective.js similarity index 100% rename from gui/syncthing/core/validDeviceidDirective.js rename to gui/default/syncthing/core/validDeviceidDirective.js diff --git a/gui/syncthing/device/editDeviceModalDirective.js b/gui/default/syncthing/device/editDeviceModalDirective.js similarity index 100% rename from gui/syncthing/device/editDeviceModalDirective.js rename to gui/default/syncthing/device/editDeviceModalDirective.js diff --git a/gui/syncthing/device/editDeviceModalView.html b/gui/default/syncthing/device/editDeviceModalView.html similarity index 100% rename from gui/syncthing/device/editDeviceModalView.html rename to gui/default/syncthing/device/editDeviceModalView.html diff --git a/gui/syncthing/device/idqrModalDirective.js b/gui/default/syncthing/device/idqrModalDirective.js similarity index 100% rename from gui/syncthing/device/idqrModalDirective.js rename to gui/default/syncthing/device/idqrModalDirective.js diff --git a/gui/syncthing/device/idqrModalView.html b/gui/default/syncthing/device/idqrModalView.html similarity index 100% rename from gui/syncthing/device/idqrModalView.html rename to gui/default/syncthing/device/idqrModalView.html diff --git a/gui/syncthing/device/module.js b/gui/default/syncthing/device/module.js similarity index 100% rename from gui/syncthing/device/module.js rename to gui/default/syncthing/device/module.js diff --git a/gui/syncthing/folder/editFolderModalDirective.js b/gui/default/syncthing/folder/editFolderModalDirective.js similarity index 100% rename from gui/syncthing/folder/editFolderModalDirective.js rename to gui/default/syncthing/folder/editFolderModalDirective.js diff --git a/gui/syncthing/folder/editFolderModalView.html b/gui/default/syncthing/folder/editFolderModalView.html similarity index 100% rename from gui/syncthing/folder/editFolderModalView.html rename to gui/default/syncthing/folder/editFolderModalView.html diff --git a/gui/syncthing/folder/editIgnoresModalDirective.js b/gui/default/syncthing/folder/editIgnoresModalDirective.js similarity index 100% rename from gui/syncthing/folder/editIgnoresModalDirective.js rename to gui/default/syncthing/folder/editIgnoresModalDirective.js diff --git a/gui/syncthing/folder/editIgnoresModalView.html b/gui/default/syncthing/folder/editIgnoresModalView.html similarity index 100% rename from gui/syncthing/folder/editIgnoresModalView.html rename to gui/default/syncthing/folder/editIgnoresModalView.html diff --git a/gui/syncthing/folder/module.js b/gui/default/syncthing/folder/module.js similarity index 100% rename from gui/syncthing/folder/module.js rename to gui/default/syncthing/folder/module.js diff --git a/gui/syncthing/settings/advancedSettingsModalDirective.js b/gui/default/syncthing/settings/advancedSettingsModalDirective.js similarity index 100% rename from gui/syncthing/settings/advancedSettingsModalDirective.js rename to gui/default/syncthing/settings/advancedSettingsModalDirective.js diff --git a/gui/syncthing/settings/advancedSettingsModalView.html b/gui/default/syncthing/settings/advancedSettingsModalView.html similarity index 100% rename from gui/syncthing/settings/advancedSettingsModalView.html rename to gui/default/syncthing/settings/advancedSettingsModalView.html diff --git a/gui/syncthing/settings/module.js b/gui/default/syncthing/settings/module.js similarity index 100% rename from gui/syncthing/settings/module.js rename to gui/default/syncthing/settings/module.js diff --git a/gui/syncthing/settings/settingsModalDirective.js b/gui/default/syncthing/settings/settingsModalDirective.js similarity index 100% rename from gui/syncthing/settings/settingsModalDirective.js rename to gui/default/syncthing/settings/settingsModalDirective.js diff --git a/gui/syncthing/settings/settingsModalView.html b/gui/default/syncthing/settings/settingsModalView.html similarity index 94% rename from gui/syncthing/settings/settingsModalView.html rename to gui/default/syncthing/settings/settingsModalView.html index f4e01ca4e..15d73ab45 100644 --- a/gui/syncthing/settings/settingsModalView.html +++ b/gui/default/syncthing/settings/settingsModalView.html @@ -136,8 +136,17 @@ Generate - +