200 lines
7.3 KiB
JavaScript
200 lines
7.3 KiB
JavaScript
$(document).ready(function(){
|
|
var accountSettingsWereSaved = false;
|
|
var theBlock = $('#tab-accountSettings')
|
|
var theContainer = $('#accountSettingsContainer')
|
|
var theForm = $('#settings')
|
|
var addStorageMaxAmounts = $('#add_storage_max_amounts')
|
|
var addStorageMaxAmountsField = theForm.find('[detail="addStorage"]')
|
|
var monitorGroups = $('#settings_mon_groups')
|
|
function drawAddStorageFields(){
|
|
try{
|
|
var addStorageData = JSON.parse($user.details.addStorage || '{}')
|
|
var html = ''
|
|
$.each(addStorage,function(n,storage){
|
|
var limit = ""
|
|
if(addStorageData[storage.path] && addStorageData[storage.path].limit){
|
|
limit = addStorageData[storage.path].limit
|
|
}
|
|
html += `<div class="form-group">
|
|
<div class="mb-2"><span>${lang['Max Storage Amount']} : ${storage.name}</span></div>
|
|
<div><input class="form-control" placeholder="${$user.details.size || 10000}" addStorageLimit="${storage.path}" value="${limit}"></div>
|
|
</div>`
|
|
})
|
|
addStorageMaxAmounts.html(html)
|
|
}catch(err){
|
|
console.log(err)
|
|
}
|
|
}
|
|
function writewMonGroups(){
|
|
theForm.find('[detail="mon_groups"]').val(JSON.stringify($user.mon_groups)).change()
|
|
}
|
|
window.getMonitorGroups = function(){
|
|
return $user.mon_groups ? $user.mon_groups : safeJsonParse($user.details.mon_groups)
|
|
}
|
|
window.reDrawMonGroupsInAccountSettings = function(){
|
|
$user.mon_groups = getMonitorGroups()
|
|
var monitorList = Object.values($user.mon_groups).map(function(item){
|
|
return {
|
|
value: item.id,
|
|
label: item.name,
|
|
}
|
|
});
|
|
monitorGroups.html(createOptionListHtml(monitorList))
|
|
monitorGroups.change()
|
|
}
|
|
function getAndWriteMonitorGroups(){
|
|
var theValue = monitorGroups.val().trim()
|
|
if(!theValue){
|
|
var el = theForm.find('[group="name"]')
|
|
theValue = el.val()
|
|
theForm.find('.mon_groups .add').click();
|
|
var selectedGroup = monitorGroups.val()
|
|
el.val(name)
|
|
}
|
|
var selectedGroup = $user.mon_groups[theValue];
|
|
theForm.find('[group]').each(function(n,v){
|
|
var el = $(v)
|
|
var groupName = el.attr('group')
|
|
selectedGroup[groupName] = el.val()
|
|
})
|
|
$user.mon_groups[theValue] = selectedGroup;
|
|
monitorGroups.find(`option[value="${monitorGroups.val()}"]`).text(selectedGroup.name)
|
|
writewMonGroups()
|
|
}
|
|
function createNewMonitorGroup(){
|
|
var newId = generateId(5);
|
|
var newGroup = {
|
|
id: newId,
|
|
name: newId
|
|
}
|
|
$user.mon_groups[newId] = newGroup
|
|
monitorGroups.append(createOptionHtml({
|
|
value: newGroup.id,
|
|
label: newGroup.name,
|
|
}))
|
|
monitorGroups.val(newId)
|
|
monitorGroups.change()
|
|
}
|
|
function deleteMonitorGroup(theValue){
|
|
delete($user.mon_groups[theValue])
|
|
reDrawMonGroupsInAccountSettings()
|
|
}
|
|
function fillFormFields(){
|
|
$.each($user,function(n,v){
|
|
theForm.find(`[name="${n}"]`).val(v).change()
|
|
})
|
|
$.each($user.details,function(n,v){
|
|
theForm.find(`[detail="${n}"]`).val(v).change()
|
|
})
|
|
reDrawMonGroupsInAccountSettings()
|
|
accountSettings.onLoadFieldsExtensions.forEach(function(extender){
|
|
extender(theForm)
|
|
})
|
|
}
|
|
addStorageMaxAmounts.on('change','[addStorageLimit]',function(){
|
|
var json = {}
|
|
$.each(addStorage,function(n,storage){
|
|
var storageId = storage.path
|
|
var el = addStorageMaxAmounts.find('[addStorageLimit="' + storageId + '"]')
|
|
var value = el.val()
|
|
json[storageId] = {
|
|
name: storage.name,
|
|
path: storage.path,
|
|
limit: value
|
|
}
|
|
})
|
|
addStorageMaxAmountsField.val(JSON.stringify(json))
|
|
})
|
|
$('body')
|
|
theForm.find('[detail]').change(onDetailFieldChange)
|
|
theForm.find('[detail]').change(function(){
|
|
onDetailFieldChange(this)
|
|
})
|
|
theForm.find('[selector]').change(function(){
|
|
onSelectorChange(this,theForm)
|
|
})
|
|
theForm.find('[group]').change(getAndWriteMonitorGroups)
|
|
theForm.submit(function(e){
|
|
e.preventDefault()
|
|
writewMonGroups()
|
|
var formData = theForm.serializeObject()
|
|
var errors = []
|
|
if(formData.pass !== '' && formData.password_again === formData.pass){
|
|
errors.push(lang[`Passwords don't match`])
|
|
}
|
|
if(errors.length > 0){
|
|
new PNotify({
|
|
title: lang.accountSettingsError,
|
|
text: errors.join('<br>'),
|
|
type: 'danger'
|
|
})
|
|
return
|
|
}
|
|
$.each(formData,function(n,v){
|
|
formData[n] = v.trim()
|
|
})
|
|
var details = getDetailValues(theForm)
|
|
formData.details = details
|
|
accountSettings.onSaveFieldsExtensions.forEach(function(extender){
|
|
extender(formData)
|
|
})
|
|
$.post(getApiPrefix('accounts') + '/edit',{
|
|
data: JSON.stringify(formData)
|
|
},function(data){
|
|
if(data.ok){
|
|
// new PNotify({
|
|
// title: lang['Settings Changed'],
|
|
// text: lang.SettingsChangedText,
|
|
// type: 'success'
|
|
// })
|
|
}
|
|
})
|
|
if(details.googd_save === '1' && details.googd_code && details.googd_code !== '***************'){
|
|
theForm.find('[detail="googd_code"]').val('***************')
|
|
}
|
|
return false
|
|
})
|
|
monitorGroups.change(function(e){
|
|
var selectedValue = $(this).val()
|
|
var selectedGroup = $user.mon_groups[selectedValue];
|
|
if(!selectedGroup){return}
|
|
$.each(selectedGroup,function(key,value){
|
|
theForm.find(`[group="${key}"]`).val(value)
|
|
})
|
|
})
|
|
theForm.on('click','.mon_groups .delete',function(e){
|
|
var theValue = monitorGroups.val()
|
|
deleteMonitorGroup(theValue)
|
|
})
|
|
theForm.on('click','.mon_groups .add',createNewMonitorGroup)
|
|
fillFormFields()
|
|
drawAddStorageFields()
|
|
drawSubMenuItems('accountSettings',definitions['Account Settings'])
|
|
mainSocket.on('f',function (d){
|
|
switch(d.f){
|
|
case'user_settings_change':
|
|
new PNotify({
|
|
title: lang['Settings Changed'],
|
|
text: lang.SettingsChangedText,
|
|
type: 'success'
|
|
})
|
|
// $.ccio.init('id',d.form);
|
|
d.form.details = safeJsonParse(d.form.details)
|
|
$('#custom_css').html(d.form.details.css)
|
|
if(d.form.details){
|
|
$user.details = d.form.details
|
|
}
|
|
sortListMonitors()
|
|
accountSettingsWereSaved = true;
|
|
break;
|
|
}
|
|
})
|
|
addOnTabReopen('accountSettings', function () {
|
|
if(accountSettingsWereSaved){
|
|
accountSettingsWereSaved = false;
|
|
fillFormFields()
|
|
}
|
|
reDrawMonGroupsInAccountSettings()
|
|
})
|
|
})
|