Continue renter configuration
This commit is contained in:
@@ -168,6 +168,7 @@
|
|||||||
<input type="number" id="ID_RenterSetPeriod"><br><br>
|
<input type="number" id="ID_RenterSetPeriod"><br><br>
|
||||||
<h2>Renew Window</h2>
|
<h2>Renew Window</h2>
|
||||||
<input type="number" id="ID_RenterSetRenewWindow"><br><br>
|
<input type="number" id="ID_RenterSetRenewWindow"><br><br>
|
||||||
|
<button id="ID_RenterSettingsDefaults" type="button">Defaults</button>
|
||||||
<button id="ID_RenterSettingsOK" type="button">Save</button>
|
<button id="ID_RenterSettingsOK" type="button">Save</button>
|
||||||
<button id="ID_RenterSettingsCancel" type="button">Cancel</button>
|
<button id="ID_RenterSettingsCancel" type="button">Cancel</button>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -1,28 +1,29 @@
|
|||||||
// Main
|
// Main
|
||||||
(() => {
|
(() => {
|
||||||
|
function setInnerText(id, text) {
|
||||||
|
document.getElementById(id).innerText = text;
|
||||||
|
}
|
||||||
|
|
||||||
|
function setValue(id, value) {
|
||||||
|
document.getElementById(id).value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getValue(id) {
|
||||||
|
return document.getElementById(id).value;
|
||||||
|
}
|
||||||
|
|
||||||
|
function setSelect(id, itemList) {
|
||||||
|
const select = document.getElementById(id);
|
||||||
|
select.innerHTML = "";
|
||||||
|
|
||||||
|
for (const item of itemList) {
|
||||||
|
const opt = document.createElement('option');
|
||||||
|
opt.innerText = item;
|
||||||
|
select.appendChild(opt);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
window.uiUpdate = (()=> {
|
window.uiUpdate = (()=> {
|
||||||
function setInnerText(id, text) {
|
|
||||||
document.getElementById(id).innerText = text;
|
|
||||||
}
|
|
||||||
|
|
||||||
function setValue(id, value) {
|
|
||||||
document.getElementById(id).value = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
function getValue(id) {
|
|
||||||
return document.getElementById(id).value;
|
|
||||||
}
|
|
||||||
|
|
||||||
function setSelect(id, itemList) {
|
|
||||||
const select = document.getElementById(id);
|
|
||||||
select.innerHTML = "";
|
|
||||||
|
|
||||||
for (const item of itemList) {
|
|
||||||
const opt = document.createElement('option');
|
|
||||||
opt.innerText = item;
|
|
||||||
select.appendChild(opt);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const _renter = (()=> {
|
const _renter = (()=> {
|
||||||
return {
|
return {
|
||||||
@@ -121,7 +122,11 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function _allocatedRenterFunds() {
|
function _allocatedRenterFunds() {
|
||||||
return window.uiState.allocatedRenterFunds
|
return window.uiState.allocatedRenterFunds;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _defaultRenterSettings() {
|
||||||
|
return window.uiState.defaultRenterSettings;
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
@@ -129,7 +134,8 @@
|
|||||||
isOnline: _isOnline,
|
isOnline: _isOnline,
|
||||||
isWalletConfigured: _isWalletConfigured,
|
isWalletConfigured: _isWalletConfigured,
|
||||||
isWalletLocked: _isWalletLocked,
|
isWalletLocked: _isWalletLocked,
|
||||||
allocatedRenterFunds: _allocatedRenterFunds
|
allocatedRenterFunds: _allocatedRenterFunds,
|
||||||
|
defaultRenterSettings: _defaultRenterSettings
|
||||||
};
|
};
|
||||||
})();
|
})();
|
||||||
|
|
||||||
@@ -165,8 +171,8 @@
|
|||||||
window.appActions.shutdown();
|
window.appActions.shutdown();
|
||||||
}
|
}
|
||||||
|
|
||||||
function _setRenterAllowance(allowance) {
|
function _setRenterSettings(allowance, cb) {
|
||||||
window.appActions.setRenterAllowance(allowance);
|
window.appActions.setRenterSettings(allowance, cb);
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
@@ -177,7 +183,7 @@
|
|||||||
unlockWallet: _unlockWallet,
|
unlockWallet: _unlockWallet,
|
||||||
unmountDrive: _unmountDrive,
|
unmountDrive: _unmountDrive,
|
||||||
shutdown: _shutdown,
|
shutdown: _shutdown,
|
||||||
setRenterAllowance: _setRenterAllowance
|
setRenterSettings: _setRenterSettings
|
||||||
};
|
};
|
||||||
})();
|
})();
|
||||||
|
|
||||||
@@ -263,10 +269,22 @@
|
|||||||
|
|
||||||
function handleRenterEditSettings() {
|
function handleRenterEditSettings() {
|
||||||
setMainWindow('renter_settings_window');
|
setMainWindow('renter_settings_window');
|
||||||
|
const defaultsButton = document.getElementById('ID_RenterSettingsDefaults');
|
||||||
|
defaultsButton.onclick = ()=> {
|
||||||
|
const settings = UiState.defaultRenterSettings();
|
||||||
|
if (getValue('ID_RenterSetFunds') === '0') {
|
||||||
|
setValue('ID_RenterSetFunds', settings.Funds);
|
||||||
|
}
|
||||||
|
setValue('ID_RenterSetHosts', settings.Hosts);
|
||||||
|
setValue('ID_RenterSetPeriod', settings.Period);
|
||||||
|
setValue('ID_RenterSetRenewWindow', settings.RenewWindowInBlocks);
|
||||||
|
};
|
||||||
|
|
||||||
const cancelButton = document.getElementById('ID_RenterSettingsCancel');
|
const cancelButton = document.getElementById('ID_RenterSettingsCancel');
|
||||||
cancelButton.onclick = ()=> {
|
cancelButton.onclick = ()=> {
|
||||||
saveButton.onclick = null;
|
saveButton.onclick = null;
|
||||||
cancelButton.onclick = null;
|
cancelButton.onclick = null;
|
||||||
|
defaultsButton.onclick = null;
|
||||||
beginMainApplication();
|
beginMainApplication();
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -274,7 +292,8 @@
|
|||||||
saveButton.onclick = ()=> {
|
saveButton.onclick = ()=> {
|
||||||
saveButton.onclick = null;
|
saveButton.onclick = null;
|
||||||
cancelButton.onclick = null;
|
cancelButton.onclick = null;
|
||||||
AppActions.setRenterAllowance({
|
defaultsButton.onclick = null;
|
||||||
|
AppActions.setRenterSettings({
|
||||||
'Funds': getValue('ID_RenterSetFunds'),
|
'Funds': getValue('ID_RenterSetFunds'),
|
||||||
'Hosts': getValue('ID_RenterSetHosts'),
|
'Hosts': getValue('ID_RenterSetHosts'),
|
||||||
'Period': getValue('ID_RenterSetPeriod'),
|
'Period': getValue('ID_RenterSetPeriod'),
|
||||||
|
@@ -116,9 +116,10 @@ typedef ttmath::Big<1, 30> SiaCurrency;
|
|||||||
const std::uint8_t SIA_BLOCK_TIME_MINS = 10;
|
const std::uint8_t SIA_BLOCK_TIME_MINS = 10;
|
||||||
const std::uint32_t MINUTES_PER_MONTH = (730 * 60);
|
const std::uint32_t MINUTES_PER_MONTH = (730 * 60);
|
||||||
const std::uint32_t SIA_BLOCKS_PER_MONTH = MINUTES_PER_MONTH / SIA_BLOCK_TIME_MINS;
|
const std::uint32_t SIA_BLOCKS_PER_MONTH = MINUTES_PER_MONTH / SIA_BLOCK_TIME_MINS;
|
||||||
const std::uint32_t SIA_DEFAULT_HOST_COUNT = 24;
|
const std::uint32_t SIA_DEFAULT_HOST_COUNT = 50;
|
||||||
const std::uint32_t SIA_DEFAULT_RENEW_WINDOW = (SIA_BLOCK_TIME_MINS * (SIA_DEFAULT_HOST_COUNT * 2));
|
const std::uint32_t SIA_DEFAULT_RENEW_WINDOW = ((1440 / SIA_BLOCK_TIME_MINS) * 14);
|
||||||
const SiaCurrency SIA_DEFAULT_MINIMUM_FUNDS = 4000;
|
const SiaCurrency SIA_DEFAULT_MINIMUM_FUNDS = 4000;
|
||||||
|
const std::uint32_t SIA_DEFAULT_CONTRACT_LENGTH = SIA_BLOCKS_PER_MONTH * 3;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
BigNumber.config({ EXPONENTIAL_AT: 1e+9 })
|
BigNumber.config({ EXPONENTIAL_AT: 1e+9 })
|
||||||
|
@@ -188,7 +188,19 @@ public:
|
|||||||
_shutdownCallback();
|
_shutdownCallback();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
else if (name == "setRenterSettings")
|
||||||
|
{
|
||||||
|
CefRefPtr<CefV8Value> vAllowance = arguments[0];
|
||||||
|
CefRefPtr<CefV8Value> cb = arguments[1];
|
||||||
|
SiaRenterAllowance allowance({
|
||||||
|
SiaCurrency(vAllowance->GetValue("Funds")->GetStringValue().ToWString()),
|
||||||
|
SString::ToUInt32(vAllowance->GetValue("Hosts")->GetStringValue().ToWString()),
|
||||||
|
SString::ToUInt32(vAllowance->GetValue("Period")->GetStringValue().ToWString()),
|
||||||
|
SString::ToUInt32(vAllowance->GetValue("RenewWindowInBlocks")->GetStringValue().ToWString())
|
||||||
|
});
|
||||||
|
auto ret = _siaApi.GetRenter()->SetAllowance(allowance);
|
||||||
|
|
||||||
|
}
|
||||||
// Function does not exist.
|
// Function does not exist.
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -275,6 +287,12 @@ void CSiaDriveApp::OnContextCreated(
|
|||||||
obj->SetValue("isOnline", CefV8Value::CreateBool(_siaApi->GetWallet()->GetConnected()), V8_PROPERTY_ATTRIBUTE_NONE);
|
obj->SetValue("isOnline", CefV8Value::CreateBool(_siaApi->GetWallet()->GetConnected()), V8_PROPERTY_ATTRIBUTE_NONE);
|
||||||
obj->SetValue("clientVersion", CefV8Value::CreateString(SIDRIVE_VERSION_STRING), V8_PROPERTY_ATTRIBUTE_NONE);
|
obj->SetValue("clientVersion", CefV8Value::CreateString(SIDRIVE_VERSION_STRING), V8_PROPERTY_ATTRIBUTE_NONE);
|
||||||
obj->SetValue("allocatedRenterFunds", CefV8Value::CreateString(_siaApi->GetRenter()->GetFunds().ToString()), V8_PROPERTY_ATTRIBUTE_NONE);
|
obj->SetValue("allocatedRenterFunds", CefV8Value::CreateString(_siaApi->GetRenter()->GetFunds().ToString()), V8_PROPERTY_ATTRIBUTE_NONE);
|
||||||
|
CefRefPtr<CefV8Value> defaultFunds = CefV8Value::CreateObject(nullptr, nullptr);
|
||||||
|
defaultFunds->SetValue("Funds", CefV8Value::CreateString(SIA_DEFAULT_MINIMUM_FUNDS.ToString()), V8_PROPERTY_ATTRIBUTE_NONE);
|
||||||
|
defaultFunds->SetValue("Hosts", CefV8Value::CreateString(SString::FromUInt32(SIA_DEFAULT_HOST_COUNT).str()), V8_PROPERTY_ATTRIBUTE_NONE);
|
||||||
|
defaultFunds->SetValue("Period", CefV8Value::CreateString(SString::FromUInt32(SIA_DEFAULT_CONTRACT_LENGTH).str()), V8_PROPERTY_ATTRIBUTE_NONE);
|
||||||
|
defaultFunds->SetValue("RenewWindowInBlocks", CefV8Value::CreateString(SString::FromUInt32(SIA_DEFAULT_RENEW_WINDOW).str()), V8_PROPERTY_ATTRIBUTE_NONE);
|
||||||
|
obj->SetValue("defaultRenterSettings", defaultFunds, V8_PROPERTY_ATTRIBUTE_NONE);
|
||||||
global->SetValue("uiState", obj, V8_PROPERTY_ATTRIBUTE_NONE);
|
global->SetValue("uiState", obj, V8_PROPERTY_ATTRIBUTE_NONE);
|
||||||
|
|
||||||
CefRefPtr<FunctionHandler> handler(new FunctionHandler(*_siaApi, _appStarted, _siaDriveConfig, _siaDrive, [this]() {this->ShutdownServices(); }, [this](CefRefPtr<CefV8Context> context) {this->SiaApiRefreshCallback(context, *_siaCurl, _siaDriveConfig.get()); }));
|
CefRefPtr<FunctionHandler> handler(new FunctionHandler(*_siaApi, _appStarted, _siaDriveConfig, _siaDrive, [this]() {this->ShutdownServices(); }, [this](CefRefPtr<CefV8Context> context) {this->SiaApiRefreshCallback(context, *_siaCurl, _siaDriveConfig.get()); }));
|
||||||
@@ -286,6 +304,7 @@ void CSiaDriveApp::OnContextCreated(
|
|||||||
obj->SetValue("mountDrive", CefV8Value::CreateFunction("mountDrive", handler), V8_PROPERTY_ATTRIBUTE_NONE);
|
obj->SetValue("mountDrive", CefV8Value::CreateFunction("mountDrive", handler), V8_PROPERTY_ATTRIBUTE_NONE);
|
||||||
obj->SetValue("unmountDrive", CefV8Value::CreateFunction("unmountDrive", handler), V8_PROPERTY_ATTRIBUTE_NONE);
|
obj->SetValue("unmountDrive", CefV8Value::CreateFunction("unmountDrive", handler), V8_PROPERTY_ATTRIBUTE_NONE);
|
||||||
obj->SetValue("shutdown", CefV8Value::CreateFunction("shutdown", handler), V8_PROPERTY_ATTRIBUTE_NONE);
|
obj->SetValue("shutdown", CefV8Value::CreateFunction("shutdown", handler), V8_PROPERTY_ATTRIBUTE_NONE);
|
||||||
|
obj->SetValue("setRenterSettings", CefV8Value::CreateFunction("setRenterSettings", handler), V8_PROPERTY_ATTRIBUTE_NONE);
|
||||||
global->SetValue("appActions", obj, V8_PROPERTY_ATTRIBUTE_NONE);
|
global->SetValue("appActions", obj, V8_PROPERTY_ATTRIBUTE_NONE);
|
||||||
|
|
||||||
_refreshThread.reset(new CAutoThread(*_siaCurl, _siaDriveConfig.get(), [this, context](const CSiaCurl& siaCurl, CSiaDriveConfig* siaDriveConfig)
|
_refreshThread.reset(new CAutoThread(*_siaCurl, _siaDriveConfig.get(), [this, context](const CSiaCurl& siaCurl, CSiaDriveConfig* siaDriveConfig)
|
||||||
|
@@ -84,7 +84,7 @@ void CSiaApi::_CSiaRenter::Refresh(const CSiaCurl& siaCurl, CSiaDriveConfig* sia
|
|||||||
{
|
{
|
||||||
_currentAllowance.Funds = SIA_DEFAULT_MINIMUM_FUNDS;
|
_currentAllowance.Funds = SIA_DEFAULT_MINIMUM_FUNDS;
|
||||||
_currentAllowance.Hosts = SIA_DEFAULT_HOST_COUNT;
|
_currentAllowance.Hosts = SIA_DEFAULT_HOST_COUNT;
|
||||||
_currentAllowance.Period = SIA_BLOCKS_PER_MONTH * 3;
|
_currentAllowance.Period = SIA_DEFAULT_CONTRACT_LENGTH;
|
||||||
_currentAllowance.RenewWindowInBlocks = SIA_DEFAULT_RENEW_WINDOW;
|
_currentAllowance.RenewWindowInBlocks = SIA_DEFAULT_RENEW_WINDOW;
|
||||||
}
|
}
|
||||||
if (ApiSuccess(RefreshFileTree()))
|
if (ApiSuccess(RefreshFileTree()))
|
||||||
|
@@ -484,15 +484,18 @@ private:
|
|||||||
{
|
{
|
||||||
if ((wcscmp(fileName, L"\\") != 0) || (wcscmp(findData.cFileName, L".") != 0) && (wcscmp(findData.cFileName, L"..") != 0))
|
if ((wcscmp(fileName, L"\\") != 0) || (wcscmp(findData.cFileName, L".") != 0) && (wcscmp(findData.cFileName, L"..") != 0))
|
||||||
{
|
{
|
||||||
if (findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
|
if (!(SString(fileName).EndsWith(".siadrive") || SString(fileName).EndsWith(".siadrive.temp")))
|
||||||
{
|
{
|
||||||
dirs.insert({findData.cFileName, 0});
|
if (findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
|
||||||
|
{
|
||||||
|
dirs.insert({ findData.cFileName, 0 });
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
files.insert({ findData.cFileName, 1 });
|
||||||
|
}
|
||||||
|
fillFindData(&findData, dokanFileInfo);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
files.insert({ findData.cFileName, 1 });
|
|
||||||
}
|
|
||||||
fillFindData(&findData, dokanFileInfo);
|
|
||||||
}
|
}
|
||||||
} while (::FindNextFile(findHandle, &findData) != 0);
|
} while (::FindNextFile(findHandle, &findData) != 0);
|
||||||
::FindClose(findHandle);
|
::FindClose(findHandle);
|
||||||
|
Reference in New Issue
Block a user