diff --git a/app/public/index.html b/app/public/index.html index bb9d03fe9b968a5f2242469cb41b89b1bf3da947..cf8dfe1ea7bcae96390a0e2d5c7745b43b61ad7e 100644 --- a/app/public/index.html +++ b/app/public/index.html @@ -5,16 +5,6 @@ <meta name='viewport' content='width=device-width,initial-scale=1'> <title>LibreHomework</title> - <script> - const invoke = window.__TAURI__.invoke; - console.log(invoke); - - document.addEventListener('DOMContentLoaded', () => { - - invoke('close_splashscreen') - }) - - </script> <link rel='icon' type='image/png' href='/favicon.png'> <link rel='stylesheet' href='/global.css'> <link rel='stylesheet' href='/build/bundle.css'> diff --git a/app/src-tauri/Cargo.toml b/app/src-tauri/Cargo.toml index c28797cb790c395bdc731c54b22600511e5fc694..bc421d43d00b715e80e404bcf3b1709c23de0fbc 100755 --- a/app/src-tauri/Cargo.toml +++ b/app/src-tauri/Cargo.toml @@ -23,4 +23,4 @@ reqwest = {version = "0.11", features = ["json"] } [features] default = [ "custom-protocol" ] -custom-protocol = [ "tauri/custom-protocol" ] \ No newline at end of file +custom-protocol = [ "tauri/custom-protocol" ] diff --git a/app/src-tauri/src/main.rs b/app/src-tauri/src/main.rs index 7f3ea3d0ad303ea32620af34d61b8ead84c37e6a..1cafbfdc15da5beb6293e47ec1323d4c0504ee8c 100755 --- a/app/src-tauri/src/main.rs +++ b/app/src-tauri/src/main.rs @@ -58,6 +58,7 @@ fn main() { write_config_file, read_config_file, close_splashscreen, + get_syslang, ]) .build(tauri::generate_context!()) .expect("Error while running LibreHomework"); diff --git a/app/src-tauri/src/utils.rs b/app/src-tauri/src/utils.rs index 3534c62976a3177f434a132e848c77c44c06174a..4168b5739074cb4afef468b9d71844fc0f399aee 100755 --- a/app/src-tauri/src/utils.rs +++ b/app/src-tauri/src/utils.rs @@ -9,6 +9,18 @@ pub fn stop_app(msg: &str) -> ! { std::process::exit(1) } +#[tauri::command] +pub fn get_syslang() -> String { + + let locale = if let Ok(lang) = std::env::var("LANG") { + lang[..2].to_string() + } else { + "en".to_string() + }; + return locale + +} + #[tauri::command] pub fn read_config_file() -> Option<String> { let mut file = File::open(config_dir()?.join("LibreHomework/config.json")).ok()?; diff --git a/app/src/App.svelte b/app/src/App.svelte index 174e098d283cbe7f1604dc04c955e7ba9debe398..8b51c1a47ebb5ff2bfbcd0f5a8673ac816e0c2b5 100755 --- a/app/src/App.svelte +++ b/app/src/App.svelte @@ -40,11 +40,24 @@ let timedLockSwitchIsDisabled = false; let settings = {}; async function setup() { - let lang = JSON.parse(await conf.readConfig()).misc.lang || "es"; + try { + let lang = await conf.readConfig().misc.lang + } catch (e) { + console.log(e); + await conf.writeConfig(defaultConfig); + let lang = await conf.readConfig().misc.lang + } + currentLang = lang; - return locales[lang]; + try { + console.log(locales[lang]) + return locales[lang]; + } catch (e) { + console.log(locales["en"]) + return locales["en"]; + } } - +/* async function getLangs() { let langs = []; langs.push( JSON.parse(await conf.readConfig()).misc.lang ); @@ -53,6 +66,7 @@ async function getLangs() { } window.getlangs = getLangs; +*/ function saveSettings() { let newSettings = defaultConfig; @@ -326,7 +340,7 @@ function saveSettings() { <div class="empty bg-dark"> <div class="empty-icon"> <i class="icon icon-3x icon-cross"></i> - </div> + </div> <p class="empty-title h5">{dict.tasks_error}</p> </div> {/await} @@ -366,6 +380,7 @@ function saveSettings() { <i class="icon icon-3x icon-cross"></i> </div> <p class="empty-title h5">Could not load language data</p> + <p>{error.message}</p> <p class="empty-subtitle">Try searching for this issue on our GitHub repo. If you can not find a GitHub issue around this, please create one.</p> </div> {/await} diff --git a/app/src/configmanager.js b/app/src/configmanager.js index e24e3dc63e96722455caf3fcc04399bae89eb73c..509ce09707c106c6e2f774a961ca6146de391e3d 100644 --- a/app/src/configmanager.js +++ b/app/src/configmanager.js @@ -1,6 +1,8 @@ import { invoke } from "@tauri-apps/api/tauri"; -export const defaultConfig = { "misc": {"lang": "es"}, "colors": {"primary": "#3942ed", "secondary": "5056c7"}} +let syslang = invoke("get_syslang").then(lang => {return lang}); + +export const defaultConfig = {"misc": {"lang": syslang}, "colors": {"primary": "#3942ed", "secondary": "5056c7"}} export class ConfigManager { async initDefaultConfig() { @@ -13,7 +15,7 @@ export class ConfigManager { } async writeConfig(config) { - // Actually this is not very safe, it might lead to a little self-XSS vuln, but anyway... 😳 + return await invoke("write_config_file", {"contents": JSON.stringify( config, null, 4)}); } diff --git a/scripts/install.sh b/scripts/install.sh index e036b4bc01252c04a4afe4a72c920e7d6fa96c5b..b1981b44f4e72bc569d1af935ee9482fc85a9f93 100755 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -17,6 +17,7 @@ select bin in "${bin_types[@]}"; do curl -L -s $source -o "LibreHomework-Source_${LATVER}.zip" echo "Extracting zip file..." unzip "LibreHomework-Source_${LATVER}.zip" > /dev/null + rm "LibreHomework-Source_${LATVER}.zip" echo "Done, you can now compile it by typing cd LibreHomework-Source_${LATVER} && npm i && npm run tauri build" break ;; @@ -25,6 +26,7 @@ select bin in "${bin_types[@]}"; do curl -L -s $deb -o "LibreHomework_${LATVER}.deb" echo "Enter the password to install the package:" sudo dpkg -i "LibreHomework_${LATVER}.deb" > /dev/null + rm "LibreHomework_${LATVER}.deb" echo "Done, you can now launch it from the menu or the command line with libre-homework" break ;; @@ -46,6 +48,7 @@ done echo "Do you want to download, install and configure the daemon? (y/n)" read daemon if [ $daemon = "y" ]; then + echo "Downloading daemon executable..." curl -L -s "https://github.com/HGEpro/LibreHomework/releases/download/${LATVER}/librehomework-daemon_v1.0.0_amd64" -o "librehomework-daemon_${LATVER}_amd64" sudo mv "librehomework-daemon_${LATVER}_amd64" /usr/bin/librehomeworkd