Skip to content

Commit

Permalink
WebClient: various UI/UX improvements
Browse files Browse the repository at this point in the history
Signed-off-by: Nicola Murino <[email protected]>
  • Loading branch information
drakkan committed Dec 26, 2023
1 parent 723c15f commit a9341d7
Show file tree
Hide file tree
Showing 21 changed files with 578 additions and 225 deletions.
8 changes: 4 additions & 4 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ require (
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.15.9
github.com/aws/aws-sdk-go-v2/service/marketplacemetering v1.19.5
github.com/aws/aws-sdk-go-v2/service/s3 v1.47.7
github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.25.6
github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.26.0
github.com/aws/aws-sdk-go-v2/service/sts v1.26.6
github.com/bmatcuk/doublestar/v4 v4.6.1
github.com/cockroachdb/cockroach-go/v2 v2.3.5
Expand Down Expand Up @@ -109,7 +109,7 @@ require (
github.com/felixge/httpsnoop v1.0.4 // indirect
github.com/fsnotify/fsnotify v1.7.0 // indirect
github.com/go-jose/go-jose/v3 v3.0.1 // indirect
github.com/go-logr/logr v1.4.0 // indirect
github.com/go-logr/logr v1.4.1 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/go-ole/go-ole v1.3.0 // indirect
github.com/goccy/go-json v0.10.2 // indirect
Expand Down Expand Up @@ -165,7 +165,7 @@ require (
go.opentelemetry.io/otel/metric v1.21.0 // indirect
go.opentelemetry.io/otel/trace v1.21.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
golang.org/x/exp v0.0.0-20231219180239-dc181d75b848 // indirect
golang.org/x/exp v0.0.0-20231226003508-02704c960a9b // indirect
golang.org/x/mod v0.14.0 // indirect
golang.org/x/sync v0.5.0 // indirect
golang.org/x/text v0.14.0 // indirect
Expand All @@ -176,7 +176,7 @@ require (
google.golang.org/genproto/googleapis/api v0.0.0-20231212172506-995d672761c0 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20231212172506-995d672761c0 // indirect
google.golang.org/grpc v1.60.1 // indirect
google.golang.org/protobuf v1.31.0 // indirect
google.golang.org/protobuf v1.32.0 // indirect
gopkg.in/ini.v1 v1.67.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)
Expand Down
16 changes: 8 additions & 8 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,8 @@ github.com/aws/aws-sdk-go-v2/service/marketplacemetering v1.19.5 h1:Fp3Gcbp3lAJA
github.com/aws/aws-sdk-go-v2/service/marketplacemetering v1.19.5/go.mod h1:XABJbVXMa0xnVqaGbhkfUeVV0GrPsc3Jqscu87IovXU=
github.com/aws/aws-sdk-go-v2/service/s3 v1.47.7 h1:o0ASbVwUAIrfp/WcCac+6jioZt4Hd8k/1X8u7GJ/QeM=
github.com/aws/aws-sdk-go-v2/service/s3 v1.47.7/go.mod h1:vADO6Jn+Rq4nDtfwNjhgR84qkZwiC6FqCaXdw/kYwjA=
github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.25.6 h1:L9Cu6ejuozkr5ipYnaXuRBZoyaFIIXZiurN4gUrQL+U=
github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.25.6/go.mod h1:4Ae1NCLK6ghmjzd45Tc33GgCKhUWD2ORAlULtMO1Cbs=
github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.26.0 h1:dPCRgAL4WD9tSMaDglRNGOiAtSTjkwNiUW5GDpWFfHA=
github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.26.0/go.mod h1:4Ae1NCLK6ghmjzd45Tc33GgCKhUWD2ORAlULtMO1Cbs=
github.com/aws/aws-sdk-go-v2/service/sso v1.18.5 h1:ldSFWz9tEHAwHNmjx2Cvy1MjP5/L9kNoR0skc6wyOOM=
github.com/aws/aws-sdk-go-v2/service/sso v1.18.5/go.mod h1:CaFfXLYL376jgbP7VKC96uFcU8Rlavak0UlAwk1Dlhc=
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.5 h1:2k9KmFawS63euAkY4/ixVNsYYwrwnd5fIvgEKkfZFNM=
Expand Down Expand Up @@ -154,8 +154,8 @@ github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBj
github.com/go-logfmt/logfmt v0.5.1 h1:otpy5pqBCBZ1ng9RQ0dPu4PN7ba75Y/aA+UpowDyNVA=
github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs=
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
github.com/go-logr/logr v1.4.0 h1:wx+BduGRXjIL6VPeeb7DRX+ii7sR/ch8DlRifHR589o=
github.com/go-logr/logr v1.4.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ=
github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0=
Expand Down Expand Up @@ -432,8 +432,8 @@ go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN8
gocloud.dev v0.35.0 h1:x/Gtt5OJdT4j+ir1AXAIXb7bBnFawXAAaJptCUGk3HU=
gocloud.dev v0.35.0/go.mod h1:wbyF+BhfdtLWyUtVEWRW13hFLb1vXnV2ovEhYGQe3ck=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20231219180239-dc181d75b848 h1:+iq7lrkxmFNBM7xx+Rae2W6uyPfhPeDWD+n+JgppptE=
golang.org/x/exp v0.0.0-20231219180239-dc181d75b848/go.mod h1:iRJReGqOEeBhDZGkGbynYwcHlctCvnjTYIamk7uXpHI=
golang.org/x/exp v0.0.0-20231226003508-02704c960a9b h1:kLiC65FbiHWFAOu+lxwNPujcsl8VYyTYYEZnsOO1WK4=
golang.org/x/exp v0.0.0-20231226003508-02704c960a9b/go.mod h1:iRJReGqOEeBhDZGkGbynYwcHlctCvnjTYIamk7uXpHI=
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
Expand Down Expand Up @@ -558,8 +558,8 @@ google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpAD
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I=
google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
Expand Down
2 changes: 1 addition & 1 deletion static/assets/css/style.bundle.css

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion static/assets/plugins/global/plugins.bundle.css

Large diffs are not rendered by default.

37 changes: 26 additions & 11 deletions static/locales/en/translation.json
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,8 @@
"reset_pwd_err_generic": "Unexpected error while resetting password",
"reset_ok_login_error": "The password reset completed successfully but an unexpected error occurred while signing in",
"ip_not_allowed": "Login is not allowed from this IP address",
"two_factor_required": "Set up two-factor authentication, it is required for the following protocols: {{val}}"
"two_factor_required": "Set up two-factor authentication, it is required for the following protocols: {{val}}",
"link": "Go to {{link}}"
},
"theme": {
"light": "Light",
Expand All @@ -72,15 +73,15 @@
"error_edit_dir": "Cannot edit a directory",
"error_edit_size": "The file size exceeds the maximum allowed size",
"invalid_form": "Invalid form",
"invalid_credentials": "Invalid credentials",
"invalid_credentials": "Invalid credentials, please retry",
"invalid_csrf": "The form token is not valid",
"invalid_token": "Invalid permissions",
"confirm_logout": "Are you sure you want to sign out?",
"wait": "Please wait...",
"or": "or",
"ok": "OK",
"none": "None",
"cancel": "Cancel",
"cancel": "No, back",
"submit": "Save",
"back": "Back",
"add": "Add",
Expand All @@ -91,9 +92,10 @@
"configuration": "Configuration",
"config_saved": "Configuration saved",
"rename": "Rename",
"confirm": "Confirm",
"confirm": "Yes, proceed",
"edit": "Edit",
"delete": "Delete",
"delete_confirm_btn": "Yes, delete",
"delete_confirm": "Do you want to delete \"{{- name}}\"? This action is irreversible",
"delete_confirm_generic": "Do you want to delete the selected item? This action is irreversible",
"delete_multi_confirm": "Do you want to delete the selected items? This action is irreversible",
Expand Down Expand Up @@ -124,8 +126,6 @@
"pub_key_placeholder": "Paste your public key here",
"verify": "Verify",
"problems": "Having problems?",
"generate": "Generate",
"view": "View",
"allowed_ip_mask": "Allowed IP/Mask",
"allowed_ip_mask_help": "Comma separated IP/Mask in CIDR format, for example \"192.168.1.0/24,10.8.0.100/32\"",
"allowed_ip_mask_invalid": "Invalid allowed IP/Mask",
Expand All @@ -144,7 +144,9 @@
"err_quota_read": "Read denied due to quota limit",
"profile_updated": "Your profile has been successfully updated",
"share_ok": "Share access successful, you can now use your link",
"qr_code": "QR Code"
"qr_code": "QR Code",
"copy_link": "Copy link",
"copied": "Copied"
},
"fs": {
"view_file": "View file \"{{- path}}\"",
Expand Down Expand Up @@ -212,6 +214,7 @@
"err_429": "$t(fs.move.err_generic). $t(fs.err_429)"
},
"rename": {
"title": "Rename \"{{- name}}\"",
"new_name": "New name",
"err_generic": "Unable to rename \"{{- name}}\"",
"err_403": "$t(fs.rename.err_generic). $t(fs.err_403)",
Expand Down Expand Up @@ -260,7 +263,7 @@
"msg_disabled": "Secure Your Account",
"msg_info": "Two-factor authentication adds an extra layer of security to your account. To log in you'll need to provide an additional authentication code.",
"require_for": "Require 2FA for",
"generate": "Generate new secret",
"generate": "Generate new secret key",
"recovery_codes": "Recovery codes",
"new_recovery_codes": "New recovery codes",
"recovery_codes_msg1": "Recovery codes are a set of one time use codes that can be used in place of the authentication code to login to the web UI. You can use them if you lose access to your phone to login to your account and disable or regenerate two-factor auth configuration.",
Expand All @@ -275,7 +278,7 @@
"setup_msg": "Use your preferred Authenticator App (e.g. Microsoft Authenticator, Google Authenticator, Authy, 1Password etc. ) to scan the QR code. It will generate an authentication code for you to enter below.",
"setup_help": "If you have trouble using the QR code, select manual entry on your app, and enter the code:",
"disable_question": "Do you want to disable two-factor authentication?",
"generate_question": "Do you want to generate a new secret and invalidate the previous one? Any registered Authenticator App will stop working",
"generate_question": "Do you want to generate a new secret key and invalidate the previous one? Any registered Authenticator App will stop working",
"disabled": "Two-factor authentication is disabled",
"recovery_codes_gen_err": "Failed to generate new recovery codes",
"recovery_codes_get_err": "Unable to obtain recovery codes",
Expand All @@ -284,7 +287,9 @@
"save_err": "Failed to save configuration",
"auth_code_required": "The authentication code is required",
"no_protocol": "Please select at least a protocol",
"required_protocols": "The following protocols are required: {{val}}"
"required_protocols": "The security policy configured for your account requires two-factor authentication for the following protocols: {{val}}",
"recovery_codes_generate": "Generate new recovery codes",
"recovery_codes_view": "View recovery codes"
},
"share": {
"scope": "Scope",
Expand Down Expand Up @@ -319,7 +324,17 @@
"usage_exceed": "Maximum sharing usage exceeded",
"expired": "Sharing has expired",
"browsable_multiple_paths": "A share with multiple paths is not browsable",
"browsable_non_dir": "The share is not a directory so it is not browsable"
"browsable_non_dir": "The share is not a directory so it is not browsable",
"go": "Go to share",
"access_links_title": "Share access links",
"link_single_title": "Single zip file",
"link_single_desc": "You can download the shared content as a single zip file",
"link_dir_title": "Single directory",
"link_dir_desc": "If the share consists of a single directory, you can browse and download files",
"link_uncompressed_title": "Uncompressed file",
"link_uncompressed_desc": "If the share consists of a single file, it can also be downloaded uncompressed",
"upload_desc": "You can upload one or more files to the shared directory",
"expired_desc": "This share is no longer accessible because it has expired"
},
"select2": {
"no_results": "No results found",
Expand Down
37 changes: 26 additions & 11 deletions static/locales/it/translation.json
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,8 @@
"reset_pwd_err_generic": "Errore imprevisto durante la reimpostazione della password",
"reset_ok_login_error": "La reimpostazione della password è stata completata correttamente ma si è verificato un errore imprevisto durante l'accesso",
"ip_not_allowed": "L'accesso non è consentito da questo indirizzo IP",
"two_factor_required": "Configura l'autenticazione a due fattori, è obbligatoria per i seguenti protocolli: {{val}}"
"two_factor_required": "Configura l'autenticazione a due fattori, è obbligatoria per i seguenti protocolli: {{val}}",
"link": "Vai a {{link}}"
},
"theme": {
"light": "Chiaro",
Expand All @@ -72,15 +73,15 @@
"error_edit_dir": "Impossibile modificare una cartella",
"error_edit_size": "La dimensione del file supera la dimensione massima consentita",
"invalid_form": "Modulo non valido",
"invalid_credentials": "Credenziali non valide",
"invalid_credentials": "Credenziali non valide, riprovare",
"invalid_csrf": "Il token del modulo non è valido",
"invalid_token": "Permessi non validi",
"confirm_logout": "Sei sicuro di volerti disconnettere?",
"wait": "Attendere prego...",
"or": "o",
"ok": "OK",
"none": "Nessuna",
"cancel": "Annulla",
"cancel": "No, indietro",
"submit": "Salva",
"back": "Indietro",
"add": "Aggiungi",
Expand All @@ -91,9 +92,10 @@
"configuration": "Configurazione",
"config_saved": "Configurazione salvata",
"rename": "Rinomina",
"confirm": "Conferma",
"confirm": "Si, procedi",
"edit": "Modifica",
"delete": "Elimina",
"delete_confirm_btn": "Si, elimina",
"delete_confirm": "Vuoi eliminare \"{{- name}}\"? Questa azione è irreversibile",
"delete_confirm_generic": "Vuoi eliminare l'elemento selezionato? Questa azione è irreversibile",
"delete_multi_confirm": "Vuoi eliminare gli elementi selezionati? Questa azione è irreversibile",
Expand Down Expand Up @@ -124,8 +126,6 @@
"pub_key_placeholder": "Incolla qui la tua chiave pubblica",
"verify": "Verifica",
"problems": "Hai problemi?",
"generate": "Genera",
"view": "Visualizza",
"allowed_ip_mask": "IP/Reti permesse",
"allowed_ip_mask_help": "IP/reti separate da virgola in formato CIDR, ad esempio \"192.168.1.0/24,10.8.0.100/32\"",
"allowed_ip_mask_invalid": "IP/reti permesse non valide",
Expand All @@ -144,7 +144,9 @@
"err_quota_read": "Lettura negata a causa del limite di quota",
"profile_updated": "Il tuo profilo è stato aggiornato con successo",
"share_ok": "Accesso alla condivisione riuscito, ora puoi utilizzare il tuo collegamento",
"qr_code": "Codice QR"
"qr_code": "Codice QR",
"copy_link": "Copia collegamento",
"copied": "Copiato"
},
"fs": {
"view_file": "Visualizza file \"{{- path}}\"",
Expand Down Expand Up @@ -212,6 +214,7 @@
"err_429": "$t(fs.move.err_generic). $t(fs.err_429)"
},
"rename": {
"title": "Rinomina \"{{- name}}\"",
"new_name": "Nuovo nome",
"err_generic": "Impossibile rinominare \"{{- name}}\"",
"err_403": "$t(fs.rename.err_generic): $t(fs.err_403)",
Expand Down Expand Up @@ -260,7 +263,7 @@
"msg_disabled": "Metti il tuo account in sicurezza",
"msg_info": "L'autenticazione a due fattori aggiunge un ulteriore livello di sicurezza al tuo account. Per accedere dovrai fornire un ulteriore codice di autenticazione.",
"require_for": "Richiedi 2FA per",
"generate": "Genera nuovo segreto",
"generate": "Genera una nuova chiave segreta",
"recovery_codes": "Codici di ripristino",
"new_recovery_codes": "Nuovi codici di ripristino",
"recovery_codes_msg1": "I codici di ripristino sono un insieme di codici monouso che possono essere utilizzati al posto del codice di autenticazione per accedere all'interfaccia utente Web. Puoi utilizzarli se perdi l'accesso al tuo telefono per accedere al tuo account e disabilitare o rigenerare la configurazione dell'autenticazione a due fattori.",
Expand All @@ -275,7 +278,7 @@
"setup_msg": "Utilizza la tua app di autenticazione preferita (ad esempio Microsoft Authenticator, Google Authenticator, Authy, 1Password ecc.) per scansionare il codice QR. Verrà generato un codice di autenticazione da inserire di seguito.",
"setup_help": "Se hai problemi con l'utilizzo del codice QR, seleziona l'inserimento manuale sulla tua app e inserisci il codice:",
"disable_question": "Vuoi disattivare l'autenticazione a due fattori?",
"generate_question": "Vuoi generare un nuovo segreto e invalidare quello precedente? Qualsiasi app di autenticazione registrata smetterà di funzionare",
"generate_question": "Vuoi generare un nuova chiave segreta e invalidare quella precedente? Qualsiasi app di autenticazione registrata smetterà di funzionare",
"disabled": "L'autenticazione a due fattori è disabilitata",
"recovery_codes_gen_err": "Impossibile generare nuovi codici di ripristino",
"recovery_codes_get_err": "Impossibile ottenere i codici di ripristino",
Expand All @@ -284,7 +287,9 @@
"save_err": "Impossibile salvare la configurazione",
"auth_code_required": "Il codice di autenticazione è obbligatorio",
"no_protocol": "Seleziona almeno un protocollo",
"required_protocols": "I seguenti protocolli sono obbligatori: {{val}}"
"required_protocols": "La politica di sicurezza configurata per il tuo account richiede l'autenticazione a due fattori per i seguenti protocolli: {{val}}",
"recovery_codes_generate": "Genera nuovi codici di ripristino",
"recovery_codes_view": "Visualizza codici di ripristino"
},
"share": {
"scope": "Ambito",
Expand Down Expand Up @@ -319,7 +324,17 @@
"usage_exceed": "Utilizzo massimo della condivisione superato",
"expired": "La condivisione è scaduta",
"browsable_multiple_paths": "Una condivisione con più percorsi non è navigabile",
"browsable_non_dir": "La condivisione non è una directory quindi non è navigabile"
"browsable_non_dir": "La condivisione non è una directory quindi non è navigabile",
"go": "Vai alla condivisione",
"access_links_title": "Accesso alla condivisione",
"link_single_title": "File zip singolo",
"link_single_desc": "È possibile scaricare il contenuto condiviso come un singolo file zip",
"link_dir_title": "Directory singola",
"link_dir_desc": "Se la condivisione è costituita da un'unica directory, è possibile navigarla e scaricare file",
"link_uncompressed_title": "File non compresso",
"link_uncompressed_desc": "Se la condivisione è costituita da un unico file è possibile scaricarlo anche non compresso",
"upload_desc": "È possibile caricare uno o più file nella directory condivisa",
"expired_desc": "Questa condivisione non è più accessibile perché è scaduta"
},
"select2": {
"no_results": "Nessun risultato trovato",
Expand Down
Loading

0 comments on commit a9341d7

Please sign in to comment.