diff --git a/gui/default/assets/css/overrides.css b/gui/default/assets/css/overrides.css index 10ec67600..81679e0ec 100644 --- a/gui/default/assets/css/overrides.css +++ b/gui/default/assets/css/overrides.css @@ -21,7 +21,7 @@ ul+h5 { margin-top: 1.5em; } -#content { +.content { margin-bottom: 50px; } diff --git a/gui/default/index.html b/gui/default/index.html index b7cf19e9e..a779bb79c 100644 --- a/gui/default/index.html +++ b/gui/default/index.html @@ -7,7 +7,7 @@ // You can obtain one at https://mozilla.org/MPL/2.0/. --> - + @@ -29,200 +29,190 @@ - -
- - - - -
- - - -
-
-
-
-

-
- -
- Danger! -

-
-
-

- The Syncthing admin interface is configured to allow remote access without a password. - This can easily give hackers access to read and change any files on your computer. - Please set a GUI Authentication User and Password in the Settings dialog. -

-
- -
+
+ - - -
-
-
-
-

-
- -
- Restart Needed -

-
-
-

The configuration has been saved but not activated. Syncthing must restart to activate the new configuration.

-
- -
-
-
- -
- - - -
- - - -
+
+
-
+

- - New Device - {{ pendingDevice.time | date:"yyyy-MM-dd HH:mm:ss" }} +
+ +
+ Warning!

- - Device "{%name%}" ({%device%} at {%address%}) wants to connect. Add new device? - + The Syncthing admin interface requires JavaScript. Please enable JavaScript in your web browser and try again.

- +
+
+
+ + +
+ +
+ + + + +
+ + + +
+
+
+
+

+
+ +
+ Danger! +

+
+
+

+ The Syncthing admin interface is configured to allow remote access without a password. + This can easily give hackers access to read and change any files on your computer. + Please set a GUI Authentication User and Password in the Settings dialog. +

+
+
- -
-
+ + +
+
+
+
+

+
+ +
+ Restart Needed +

+
+
+

The configuration has been saved but not activated. Syncthing must restart to activate the new configuration.

+
+ +
+
+
+ +
+ + + +
+ + + +

-
- -
- New Folder - Share Folder - {{ pendingFolder.time | date:"yyyy-MM-dd HH:mm:ss" }} + + New Device + {{ pendingDevice.time | date:"yyyy-MM-dd HH:mm:ss" }}

- - {%device%} wants to share folder "{%folder%}". + + Device "{%name%}" ({%device%} at {%address%}) wants to connect. Add new device? - - {%device%} wants to share folder "{%folderlabel%}" ({%folder%}). - - Share this folder? - Add new folder?

-
-
- - - -
-
-
-
-

-
- -
- Notice -

-
-
-

- {{err.when | date:"yyyy-MM-dd HH:mm:ss"}}: - -

-
- -
-
-
- - - -
-
-
-
-

-
- -
- Filesystem Watcher Errors -

-
-
-

- For the following folders an error occurred while starting to watch for changes. It will be retried every minute, so the errors might go away soon. If they persist, try to fix the underlying issue and ask for help if you can't. Support -

- - - - -
{{folderLabel(id)}}{{err}}
-
-
-
-
- - - -
- - - -
-

Folders

-
-
- + + +
- - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 Folder ID{{folder.id}}
 Folder Path - {{folder.path}} -
 Error{{model[folder.id].invalid || model[folder.id].error}}
 Global State - -  {{model[folder.id].globalFiles | alwaysNumber | localeNumber}}  -  {{model[folder.id].globalDirectories | alwaysNumber | localeNumber}}  -  ~{{model[folder.id].globalBytes | binary}}B - -
 Local State - -  {{model[folder.id].localFiles | alwaysNumber | localeNumber}}  -  {{model[folder.id].localDirectories | alwaysNumber | localeNumber}}  -  ~{{model[folder.id].localBytes | binary}}B
Reduced by ignore patterns
-
-
 Out of Sync Items - {{model[folder.id].needTotalItems | alwaysNumber | localeNumber}} items, ~{{model[folder.id].needBytes | binary}}B -
 Scan Time Remaining - ~ {{scanRemaining(folder.id)}} -
 Failed Items - {{model[folder.id].pullErrors | alwaysNumber | localeNumber}} items -
 Locally Changed Items - {{model[folder.id].receiveOnlyTotalItems | alwaysNumber | localeNumber}} items, ~{{model[folder.id].receiveOnlyChangedBytes | binary}}B -
 Folder Type - Send Only - Receive Only -
 Ignore Permissions - Yes -
 Rescans -
- -  {{folder.rescanIntervalS | duration}}  -  Disabled - - -  {{folder.rescanIntervalS | duration}}  -  Enabled - - -  {{folder.rescanIntervalS | duration}}  -  Failed to setup, retrying - -
-
- -  Disabled  -  Disabled - - -  Disabled  -  Enabled - - -  Disabled  -  Failed to setup, retrying - -
-
 File Pull Order - Random - Alphabetic - Smallest First - Largest First - Oldest First - Newest First -
 File Versioning - Trash Can File Versioning - Staggered File Versioning - Simple File Versioning - External File Versioning -
 Shared With{{sharesFolder(folder)}}
 Last ScanNever - {{folderStats[folder.id].lastScan | date:'yyyy-MM-dd HH:mm:ss'}} -
 Latest Change - - Updated - Deleted - {{folderStats[folder.id].lastFile.filename | basename}} - -
-
-
- - - - - - -
-
+
- + - - -
-

This Device

-
- -
+
+
+
+
+

+
+ +
+ Notice +

+
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +

+ {{err.when | date:"yyyy-MM-dd HH:mm:ss"}}: + +

+ + + + + + + + +
+
+
+
+

+
+ +
+ Filesystem Watcher Errors +

+
+
+

+ For the following folders an error occurred while starting to watch for changes. It will be retried every minute, so the errors might go away soon. If they persist, try to fix the underlying issue and ask for help if you can't. Support +

+
 Download Rate - - {{connectionsTotal.inbps | binary}}B/s - {{connectionsTotal.inbps*8 | metric}}bps - ({{connectionsTotal.inBytesTotal | binary}}B) -
- Limit: - {{config.options.maxRecvKbps*1024 | binary}}B/s - {{config.options.maxRecvKbps*1024*8 | metric}}bps - -
-
-
 Upload Rate - - {{connectionsTotal.outbps | binary}}B/s - {{connectionsTotal.outbps*8 | metric}}bps - ({{connectionsTotal.outBytesTotal | binary}}B) -
- Limit: - {{config.options.maxSendKbps*1024 | binary}}B/s - {{config.options.maxSendKbps*1024*8 | metric}}bps - -
-
-
 Local State (Total) - -  {{localStateTotal.files | alwaysNumber | localeNumber}}  -  {{localStateTotal.directories| alwaysNumber | localeNumber}}  -  ~{{localStateTotal.bytes | binary}}B - -
 Listeners - - {{listenersTotal}}/{{listenersTotal}} - - - - {{listenersTotal-listenersFailed.length}}/{{listenersTotal}} - - -
 Discovery - - {{discoveryTotal}}/{{discoveryTotal}} - - - - {{discoveryTotal-discoveryFailed.length}}/{{discoveryTotal}} - - -
 Uptime{{system.uptime | duration:"m"}}
 Version - {{versionString()}} -
+ + +
{{folderLabel(id)}}{{err}}
+
- -

Remote Devices

-
-
- +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 Folder ID{{folder.id}}
 Folder Path + {{folder.path}} +
 Error{{model[folder.id].invalid || model[folder.id].error}}
 Global State + +  {{model[folder.id].globalFiles | alwaysNumber | localeNumber}}  +  {{model[folder.id].globalDirectories | alwaysNumber | localeNumber}}  +  ~{{model[folder.id].globalBytes | binary}}B + +
 Local State + +  {{model[folder.id].localFiles | alwaysNumber | localeNumber}}  +  {{model[folder.id].localDirectories | alwaysNumber | localeNumber}}  +  ~{{model[folder.id].localBytes | binary}}B
Reduced by ignore patterns
+
+
 Out of Sync Items + {{model[folder.id].needTotalItems | alwaysNumber | localeNumber}} items, ~{{model[folder.id].needBytes | binary}}B +
 Scan Time Remaining + ~ {{scanRemaining(folder.id)}} +
 Failed Items + {{model[folder.id].pullErrors | alwaysNumber | localeNumber}} items +
 Locally Changed Items + {{model[folder.id].receiveOnlyTotalItems | alwaysNumber | localeNumber}} items, ~{{model[folder.id].receiveOnlyChangedBytes | binary}}B +
 Folder Type + Send Only + Receive Only +
 Ignore Permissions + Yes +
 Rescans +
+ +  {{folder.rescanIntervalS | duration}}  +  Disabled + + +  {{folder.rescanIntervalS | duration}}  +  Enabled + + +  {{folder.rescanIntervalS | duration}}  +  Failed to setup, retrying + +
+
+ +  Disabled  +  Disabled + + +  Disabled  +  Enabled + + +  Disabled  +  Failed to setup, retrying + +
+
 File Pull Order + Random + Alphabetic + Smallest First + Largest First + Oldest First + Newest First +
 File Versioning + Trash Can File Versioning + Staggered File Versioning + Simple File Versioning + External File Versioning +
 Shared With{{sharesFolder(folder)}}
 Last ScanNever + {{folderStats[folder.id].lastScan | date:'yyyy-MM-dd HH:mm:ss'}} +
 Latest Change + + Updated + Deleted + {{folderStats[folder.id].lastFile.filename | basename}} + +
+
+ +
+
+
+ + + + + + +
+
+
+ + + + + +
+

This Device

+
+ -
+
- + - - - - - - - - - - - - - - - - - - + - - + + - - - + + + - - - + + + - + + + + + - - - - - - - - - - +
 Download Rate - {{connections[deviceCfg.deviceID].inbps | binary}}B/s - {{connections[deviceCfg.deviceID].inbps*8 | metric}}bps - ({{connections[deviceCfg.deviceID].inBytesTotal | binary}}B) -
+ {{connectionsTotal.inbps | binary}}B/s + {{connectionsTotal.inbps*8 | metric}}bps + ({{connectionsTotal.inBytesTotal | binary}}B) +
Limit: - {{deviceCfg.maxRecvKbps*1024 | binary}}B/s - {{deviceCfg.maxRecvKbps*1024*8 | metric}}bps + {{config.options.maxRecvKbps*1024 | binary}}B/s + {{config.options.maxRecvKbps*1024*8 | metric}}bps
 Upload Rate - - {{connections[deviceCfg.deviceID].outbps | binary}}B/s - {{connections[deviceCfg.deviceID].outbps*8 | metric}}bps - ({{connections[deviceCfg.deviceID].outBytesTotal | binary}}B) -
- Limit: - {{deviceCfg.maxSendKbps*1024 | binary}}B/s - {{deviceCfg.maxSendKbps*1024*8 | metric}}bps - -
-
-
 Out of Sync Items - {{completion[deviceCfg.deviceID]._needItems | alwaysNumber | localeNumber}} items, ~{{completion[deviceCfg.deviceID]._needBytes | binary}}B -
 Address - - {{deviceAddr(deviceCfg)}} - - - - {{addr}}
- {{abbreviatedError(addr)}}
-
- - {{addr}}
- {{abbreviatedError(addr)}}
-
-
 Connection Type{{connections[deviceCfg.deviceID].type}}
 Allowed Networks Upload Rate - {{deviceCfg.allowedNetworks.join(", ")}} + + {{connectionsTotal.outbps | binary}}B/s + {{connectionsTotal.outbps*8 | metric}}bps + ({{connectionsTotal.outBytesTotal | binary}}B) +
+ Limit: + {{config.options.maxSendKbps*1024 | binary}}B/s + {{config.options.maxSendKbps*1024*8 | metric}}bps + +
+
 Compression
 Local State (Total) - All Data - Off + +  {{localStateTotal.files | alwaysNumber | localeNumber}}  +  {{localStateTotal.directories| alwaysNumber | localeNumber}}  +  ~{{localStateTotal.bytes | binary}}B +
 IntroducerYes
 Listeners + + {{listenersTotal}}/{{listenersTotal}} + + + + {{listenersTotal-listenersFailed.length}}/{{listenersTotal}} + + +
 Introduced By{{ deviceName(devices[deviceCfg.introducedBy]) || deviceCfg.introducedBy.substring(0, 5) }}
 Discovery + + {{discoveryTotal}}/{{discoveryTotal}} + + + + {{discoveryTotal-discoveryFailed.length}}/{{discoveryTotal}} + + +
 Uptime{{system.uptime | duration:"m"}}
 Version{{connections[deviceCfg.deviceID].clientVersion}}
 Last seenNever{{deviceStats[deviceCfg.deviceID].lastSeen | date:"yyyy-MM-dd HH:mm:ss"}}
 Folders{{deviceFolders(deviceCfg).map(folderLabel).join(", ")}} + {{versionString()}} +
- +
+ + +

Remote Devices

+
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 Download Rate + + {{connections[deviceCfg.deviceID].inbps | binary}}B/s + {{connections[deviceCfg.deviceID].inbps*8 | metric}}bps + ({{connections[deviceCfg.deviceID].inBytesTotal | binary}}B) +
+ Limit: + {{deviceCfg.maxRecvKbps*1024 | binary}}B/s + {{deviceCfg.maxRecvKbps*1024*8 | metric}}bps + +
+
+
 Upload Rate + + {{connections[deviceCfg.deviceID].outbps | binary}}B/s + {{connections[deviceCfg.deviceID].outbps*8 | metric}}bps + ({{connections[deviceCfg.deviceID].outBytesTotal | binary}}B) +
+ Limit: + {{deviceCfg.maxSendKbps*1024 | binary}}B/s + {{deviceCfg.maxSendKbps*1024*8 | metric}}bps + +
+
+
 Out of Sync Items + {{completion[deviceCfg.deviceID]._needItems | alwaysNumber | localeNumber}} items, ~{{completion[deviceCfg.deviceID]._needBytes | binary}}B +
 Address + + {{deviceAddr(deviceCfg)}} + + + + {{addr}}
+ {{abbreviatedError(addr)}}
+
+ + {{addr}}
+ {{abbreviatedError(addr)}}
+
+
 Connection Type{{connections[deviceCfg.deviceID].type}}
 Allowed Networks + {{deviceCfg.allowedNetworks.join(", ")}} +
 Compression + All Data + Off +
 IntroducerYes
 Introduced By{{ deviceName(devices[deviceCfg.introducedBy]) || deviceCfg.introducedBy.substring(0, 5) }}
 Version{{connections[deviceCfg.deviceID].clientVersion}}
 Last seenNever{{deviceStats[deviceCfg.deviceID].lastSeen | date:"yyyy-MM-dd HH:mm:ss"}}
 Folders{{deviceFolders(deviceCfg).map(folderLabel).join(", ")}}
+
+
+
+ + + + + + +
+
-
- - - - - - -
-
-
-
+
-
+
+