Skip to content

Commit

Permalink
attempt to dynamically load some optional features and fix misc issues
Browse files Browse the repository at this point in the history
though unfortunately it seems impossible to make them free memory when unloaded
  • Loading branch information
rand256 committed May 30, 2020
1 parent f0d82d7 commit e0c2b3c
Show file tree
Hide file tree
Showing 15 changed files with 418 additions and 487 deletions.
2 changes: 1 addition & 1 deletion .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
# testing
custom: ['https://money.yandex.ru/to/410011290807928']
custom: ['https://www.buymeacoffee.com/rand256','https://money.yandex.ru/to/410011290807928']
11 changes: 6 additions & 5 deletions client/about.html
Original file line number Diff line number Diff line change
Expand Up @@ -8,19 +8,20 @@
<span style="text-align: center;">
<h3>Valetudo RE</h3>
<h5>free your vacuum from the cloud</h5>
<p>Based on <a href="https://github.com/Hypfer/Valetudo" target="_blank">Valetudo</a> - <em>Another IoT Smarthome Node.js</em> project by <a href="https://github.com/Hypfer" target="_blank">Hypfer</a></p>
<p>enhanced by <a href="https://github.com/rand256" target="_blank">rand256</a></p>
<p>
Based on <a href="https://github.com/Hypfer/Valetudo" target="_blank">Valetudo</a> - <em>Another IoT Smarthome Node.js</em> project by <a href="https://github.com/Hypfer" target="_blank">Hypfer</a><br/>
enhanced by <a href="https://github.com/rand256" target="_blank">rand256</a>
</p><p>
Thanks to all contributors:
<br/>
<a style="word-wrap:break-word;" href="https://github.com/rand256/valetudo/graphs/contributors" target="_blank">
https://github.com/rand256/valetudo/graphs/contributors
</a>
<br/>
<br/>
</p>
<link href="https://fonts.googleapis.com/css?family=Cookie" rel="stylesheet">
<p><a class="bmc-button" target="_blank" href="https://www.buymeacoffee.com/rand256"><ons-icon icon="fa-coffee" class="ons-icon fa-coffee fa"></ons-icon><span style="margin-left:10px;font-size:28px;">buy me a coffee</span></a></p>
<p><a class="bmc-button" target="_blank" href="https://money.yandex.ru/to/410011290807928"><ons-icon icon="fa-wallet" class="ons-icon fa-wallet fa" style="color:sienna;"></ons-icon><span style="margin-left:10px;font-size:23px;font-weight:600;font-family:Tahoma,sans-serif;"><span style="color:red;">Я</span>ндекс</span></a></p>
</span>
<style>.bmc-button img{height: 34px;width: 35px;margin-bottom: 1px;box-shadow: none;border: none;vertical-align: middle;}.bmc-button{padding: 7px 15px 7px 10px;line-height: 35px;height:51px;text-decoration: none;display:inline-flex;color:#000000;background-color:#FFFFFF;border-radius: 5px;border: 1px solid transparent;padding: 7px 15px 7px 10px;font-size: 28px;letter-spacing:0.6px;box-shadow: 0px 1px 2px rgba(190, 190, 190, 0.5);-webkit-box-shadow: 0px 1px 2px 2px rgba(190, 190, 190, 0.5);margin: 0 auto;font-family:'Cookie', cursive;-webkit-box-sizing: border-box;box-sizing: border-box;}.bmc-button:hover, .bmc-button:active, .bmc-button:focus {-webkit-box-shadow: 0px 1px 2px 2px rgba(190, 190, 190, 0.5);text-decoration: none;box-shadow: 0px 1px 2px 2px rgba(190, 190, 190, 0.5);opacity: 0.85;color:#000000;}</style>
<script>
ons.getScriptPage().onInit = function() {
fn.localize('#about-page');
Expand Down
34 changes: 16 additions & 18 deletions client/home.html
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@


<script>
var currentRefreshTimer, refreshInProgress = false, refreshDisabled = true;
var currentRefreshTimer, refreshInProgress = false;

var startButton = document.getElementById("start-button"),
pauseButton = document.getElementById("pause-button"),
Expand Down Expand Up @@ -478,15 +478,15 @@
adc = document.querySelector('.load-map-waiting .alert-dialog-content'),
adt = document.querySelector('.load-map-waiting .alert-dialog-title'),
adi = setInterval(() => {
let seconds = +(adc.textContent.match(/(\d+)/) || [])[1] || 0;
if (seconds <= 1) {
clearInterval(adi);
adb.classList.remove('ok-disabled');
adt.textContent = i18next.t('home.popups.waitMapFinished',"Finished");
adc.textContent = i18next.t('home.popups.waitMapEncourage',"Requested routines should be completed now.");
} else {
adc.textContent = adc.textContent.replace(seconds,--seconds);
}
let seconds = +(adc.textContent.match(/(\d+)/) || [])[1] || 0;
if (seconds <= 1) {
clearInterval(adi);
adb.classList.remove('ok-disabled');
adt.textContent = i18next.t('home.popups.waitMapFinished',"Finished");
adc.textContent = i18next.t('home.popups.waitMapEncourage',"Requested routines should be completed now.");
} else {
adc.textContent = adc.textContent.replace(seconds,--seconds);
}
},1e3);
adb.classList.add('ok-disabled');
return waiting;
Expand All @@ -506,7 +506,7 @@
}

function updateHomePage() {
if (refreshInProgress || refreshDisabled) {
if (refreshInProgress || document.querySelector('ons-tabbar ons-tab.active').page !== "home.html") { // workaround: due to bug in onsenui sometimes 'shown' attribute remains on a hidden page, thus this hack
return;
}
refreshInProgress = true;
Expand Down Expand Up @@ -543,7 +543,7 @@
}
}

if ([3,6,8,10,11,15,16].includes(res.state)) {
if ([3,6,8,11,15,16].includes(res.state) || (res.state === 10 && !res.in_cleaning)) {
stopButton.setAttribute("disabled", "disabled");
} else {
stopButton.removeAttribute("disabled");
Expand Down Expand Up @@ -605,8 +605,11 @@
fn.localize('#home-page');
}

ons.getScriptPage().onHide = function () {
window.clearTimeout(currentRefreshTimer);
}

ons.getScriptPage().onShow = function () {
refreshDisabled = false;
/* multimap visibility */
document.getElementById('multimap-buttons').style.display = fn.webifSettings.showMultimap ? '' : 'none';
/* check for area and go to configuration */
Expand All @@ -626,11 +629,6 @@
});
};

ons.getScriptPage().onHide = function () {
refreshDisabled = true;
window.clearTimeout(currentRefreshTimer);
}

</script>
<style>
#robot-state {
Expand Down
28 changes: 16 additions & 12 deletions client/manualcontrol.html
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@
var endManualControlButton = document.getElementById("stop-manual-control-button");
var manualControlLoadingBar = document.getElementById('loading-bar-manualcontrol');

var cX, cY, manualControlCanvasContext, manualControlCanvas = document.getElementById("manual-control-area");

//API / Manual Control Handling
function manualMoveRobot(angle, velocity) {
manualControlLoadingBar.setAttribute("indeterminate", "indeterminate");
Expand Down Expand Up @@ -142,20 +144,22 @@
}
}

//Canvas orga
manualControlCanvas = document.getElementById("manual-control-area");
//apply shown dimensions to canvas - required because of percentual css dimension
manualControlCanvas.setAttribute("width", manualControlCanvas.clientWidth);
manualControlCanvas.setAttribute("height", manualControlCanvas.clientHeight);
function resizer() {
//apply shown dimensions to canvas - required because of percentual css dimension
manualControlCanvas.setAttribute("width", manualControlCanvas.clientWidth);
manualControlCanvas.setAttribute("height", manualControlCanvas.clientHeight);

var manualControlCanvasContext= manualControlCanvas.getContext("2d");
var cX = manualControlCanvas.width / 2;
var cY = manualControlCanvas.height / 2;
manualControlCanvasContext = manualControlCanvas.getContext("2d");
cX = manualControlCanvas.width / 2;
cY = manualControlCanvas.height / 2;

manualControlCanvasContext.moveTo(cX, cY);
manualControlCanvasContext.fillStyle = "#ff0044";
manualControlCanvasContext.arc(cX, cY, 5, 0, 360, false);
manualControlCanvasContext.fill();
manualControlCanvasContext.moveTo(cX, cY);
manualControlCanvasContext.fillStyle = "#ff0044";
manualControlCanvasContext.arc(cX, cY, 5, 0, 360, false);
manualControlCanvasContext.fill();
}
resizer();
window.addEventListener('resize',resizer);

function drawValuesToCanvas () {
//delete old values / draw background
Expand Down
2 changes: 1 addition & 1 deletion client/map.html
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,7 @@
document.getElementById("resume_cleaning").style.display = 'none';
}
// stop not available in paused and idle states, as well as many other states not related to cleaning, and in spot cleaning
if ([0,3,6,8,9,10,11,14,15,16].includes(res.state)) {
if ([0,3,6,8,9,11,14,15,16].includes(res.state) || (res.state === 10 && !res.in_cleaning)) {
document.getElementById("stop_cleaning").style.display = 'none';
} else {
document.getElementById("stop_cleaning").style.display = '';
Expand Down
76 changes: 34 additions & 42 deletions client/settings-access-control.html
Original file line number Diff line number Diff line change
Expand Up @@ -11,45 +11,36 @@
<ons-list-title style="margin-top:20px;" data-i18n="settings.accessControl.httpAuth">HTTP Authentication Settings</ons-list-title>
<ons-list>
<ons-list-item>
<div>
<ons-col>
<ons-col width="150px" vertical-align='center' data-i18n="common.enabled">Enabled</ons-col>
</ons-col>
<div data-i18n="common.enabled" class="left">
Enabled:
</div>
<div class="right">
<ons-switch id="settings-access-control-http-auth-input-enabled"></ons-switch>
</div>
<label class="right" style="width:100%">
<ons-row>
<ons-col>
<ons-col width="150px" vertical-align='center'><ons-checkbox id="settings-access-control-http-auth-input-enabled"></ons-checkbox></ons-col>
</ons-col>
</ons-row>
</label>
</ons-list-item>
<ons-list-item>
<label class="right" style="width:100%">
<ons-row>
<ons-col>
<ons-input id="settings-access-control-http-auth-input-username" float maxlength="32" placeholder="Username" style="width:100%" data-i18n="[placeholder]settings.accessControl.username"></ons-input>
</ons-col>
</ons-row>
</label>
<div data-i18n="settings.accessControl.username" class="left">
Username:
</div>
<div class="right" style="width:75%">
<ons-input id="settings-access-control-http-auth-input-username" float maxlength="32" style="width:100%"></ons-input>
</div>
</ons-list-item>
<ons-list-item>
<label class="right" style="width:100%">
<ons-row>
<ons-col>
<ons-input id="settings-access-control-http-auth-input-password" type="password" float maxlength="63" placeholder="Password" style="width:100%;" data-i18n="[placeholder]settings.accessControl.password"></ons-input>
</ons-col>
</ons-row>
</label>
<div data-i18n="settings.accessControl.password" class="left">
Password:
</div>
<div class="right" style="width:75%">
<ons-input id="settings-access-control-http-auth-input-password" type="password" float maxlength="63" style="width:100%;"></ons-input>
</div>
</ons-list-item>
<ons-list-item>
<label class="right" style="width:100%">
<ons-row>
<ons-col>
<ons-input id="settings-access-control-http-auth-input-password-confirm" type="password" float maxlength="63" placeholder="Password (repeat)" style="width:100%;" data-i18n="[placeholder]settings.accessControl.passwordRepeat"></ons-input>
</ons-col>
</ons-row>
</label>
<div data-i18n="settings.accessControl.passwordRepeat" class="left">
Password (repeat):
</div>
<div class="right" style="width:75%">
<ons-input id="settings-access-control-http-auth-input-password-confirm" type="password" float maxlength="63" style="width:100%;"></ons-input>
</div>
</ons-list-item>
<ons-list-item>
<div class="center">
Expand All @@ -74,16 +65,12 @@
</div>
</ons-list-item>
<ons-list-item>
<label class="right" style="width:100%">
<ons-row>
<ons-col vertical-align='center' data-i18n="settings.accessControl.confirmDisableKeys">Enter "confirm" below. Don't lock yourself out!</ons-col>
</ons-row>
<ons-row>
<ons-col>
<ons-input id="settings-access-control-ssh-keys-input-disable-confirmation" float maxlength="32" placeholder="" style="width:100%"></ons-input>
</ons-col>
</ons-row>
</label>
<div data-i18n="settings.accessControl.confirmDisableKeys" class="left">
Enter "confirm" below. Don't lock yourself out!</ons-col>
</div>
<div class="right" style="width:50%">
<ons-input id="settings-access-control-ssh-keys-input-disable-confirmation" float maxlength="32" placeholder="" style="width:100%"></ons-input>
</div>
</ons-list-item>
<ons-list-item>
<div class="center">
Expand Down Expand Up @@ -168,4 +155,9 @@
.finally(() => loadingBarSettingsAccessControl.removeAttribute("indeterminate"));
};
</script>
<style>
#settings-access-control-page input {
text-align: right;
}
</style>
</ons-page>
6 changes: 3 additions & 3 deletions client/settings-telegrambot.html
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@

function getSettingsTelegramPage() {
loadingBarSettingsTelegram.setAttribute("indeterminate", "indeterminate");
fn.prequest("api/get_telegram_config")
fn.prequest("api/telegram_config")
.then((res) => {
settingsTelegramEnabled.checked = res.enabled;
settingsTelegramToken.value = res.token || '';
Expand Down Expand Up @@ -200,7 +200,7 @@

function getTelegramStatus() {
loadingBarSettingsTelegram.setAttribute("indeterminate", "indeterminate");
fn.prequest("api/get_telegram_status").then(
fn.prequest("api/telegram_status").then(
(res) => {
if (/[^0-9]/.test(res.running)) {
settingsTelegramStatus.textContent = i18next.t('settings.telegram.connectedAs',{defaultValue: "Telegrambot connected as {{botname}}", botname: res.running});
Expand Down Expand Up @@ -258,7 +258,7 @@

function setSettingsTelegramPage() {
loadingBarSettingsTelegram.setAttribute("indeterminate", "indeterminate");
fn.prequestWithPayload("api/set_telegram_config", JSON.stringify({
fn.prequestWithPayload("api/telegram_config", JSON.stringify({
"enabled": settingsTelegramEnabled.checked,
"token": settingsTelegramToken.value.trim() || '',
"password": settingsTelegramPassword.value.trim() || '',
Expand Down
Loading

0 comments on commit e0c2b3c

Please sign in to comment.