mirror of
https://github.com/WebTools-NG/WebTools-NG
synced 2025-02-17 03:48:25 +00:00
Merge pull request #206 from WebTools-NG/#195-PMS-Settings
#195 pms settings
This commit is contained in:
commit
8302660cbc
3 changed files with 93 additions and 32 deletions
|
@ -131,12 +131,13 @@
|
||||||
"Settings": {
|
"Settings": {
|
||||||
"Settings": "Settings",
|
"Settings": "Settings",
|
||||||
"Description": "Here you can define the settings for the selected server",
|
"Description": "Here you can define the settings for the selected server",
|
||||||
|
"Notice": "Note: When changing a server setting you might need to restart the server afterwards",
|
||||||
"SelectSettingsSelection": "Select Settings Group",
|
"SelectSettingsSelection": "Select Settings Group",
|
||||||
"TTSelectSettingsSelection": "Here you select the group the setting you want to alter is in",
|
"TTSelectSettingsSelection": "Here you select the group the setting you want to alter is in",
|
||||||
"OnlyHidden": "Show only hidden settings",
|
"OnlyHidden": "Show only hidden settings",
|
||||||
"OnlyAdvanced": "Show only advanced settings",
|
"OnlyAdvanced": "Show only advanced settings",
|
||||||
"Undefined": "undefined",
|
"Undefined": "undefined",
|
||||||
"tblCaption": "Settings",
|
"tblCaption": "Settings - click row to change",
|
||||||
"tblName": "Name",
|
"tblName": "Name",
|
||||||
"tblLabel": "Label",
|
"tblLabel": "Label",
|
||||||
"tblSummary": "Summary",
|
"tblSummary": "Summary",
|
||||||
|
@ -146,7 +147,8 @@
|
||||||
"newSettingTitle": "Enter the new setting for: {0}",
|
"newSettingTitle": "Enter the new setting for: {0}",
|
||||||
"curSetting": "Current Setting",
|
"curSetting": "Current Setting",
|
||||||
"defSetting": "Default Setting",
|
"defSetting": "Default Setting",
|
||||||
"newSettingValueTXT": "<Enter new value>"
|
"newSettingValueTXT": "<Enter new value>",
|
||||||
|
"varning": "Change at your own risk. Any change can lead to malfunction of your plex server"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ET": {
|
"ET": {
|
||||||
|
|
|
@ -2,7 +2,8 @@
|
||||||
<b-container fluid>
|
<b-container fluid>
|
||||||
<div class="col-lg-10 col-md-12 col-xs-12">
|
<div class="col-lg-10 col-md-12 col-xs-12">
|
||||||
<h1>{{ $t("Modules.PMS.Settings.Settings") }}</h1>
|
<h1>{{ $t("Modules.PMS.Settings.Settings") }}</h1>
|
||||||
<p>{{ $t("Modules.PMS.Settings.Description") }}</p>
|
<p>{{ $t("Modules.PMS.Settings.Description") }}</p>
|
||||||
|
<p>{{ $t("Modules.PMS.Settings.Notice") }}</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<b-form-group id="b-form-group">
|
<b-form-group id="b-form-group">
|
||||||
|
@ -31,9 +32,40 @@
|
||||||
<div>
|
<div>
|
||||||
<b-modal ref="edtSetting" hide-footer v-bind:title=this.newSettingTitle >
|
<b-modal ref="edtSetting" hide-footer v-bind:title=this.newSettingTitle >
|
||||||
<div class="d-block text-center">
|
<div class="d-block text-center">
|
||||||
{{ $t('Modules.PMS.Settings.curSetting') }}: {{this.curSetting}}
|
<b-alert variant="danger" show>{{ $t('Modules.PMS.Settings.varning') }}</b-alert>
|
||||||
<br>
|
<b-container fluid>
|
||||||
{{ $t('Modules.PMS.Settings.defSetting') }}: {{this.defSetting}}
|
<b-row>
|
||||||
|
<b-col sm="2">
|
||||||
|
<label for="textarea-curSetting">{{ $t('Modules.PMS.Settings.curSetting') }}:</label>
|
||||||
|
</b-col>
|
||||||
|
<b-col sm="10">
|
||||||
|
<b-form-textarea
|
||||||
|
id="textarea-curSetting"
|
||||||
|
plaintext
|
||||||
|
size="sm"
|
||||||
|
v-model=this.curSetting
|
||||||
|
rows="1"
|
||||||
|
max-rows="8"
|
||||||
|
></b-form-textarea>
|
||||||
|
</b-col>
|
||||||
|
</b-row>
|
||||||
|
<br>
|
||||||
|
<b-row>
|
||||||
|
<b-col sm="2">
|
||||||
|
<label for="textarea-defSetting">{{ $t('Modules.PMS.Settings.defSetting') }}:</label>
|
||||||
|
</b-col>
|
||||||
|
<b-col sm="10">
|
||||||
|
<b-form-textarea
|
||||||
|
id="textarea-defSetting"
|
||||||
|
plaintext
|
||||||
|
size="sm"
|
||||||
|
v-model=this.defSetting
|
||||||
|
rows="1"
|
||||||
|
max-rows="8"
|
||||||
|
></b-form-textarea>
|
||||||
|
</b-col>
|
||||||
|
</b-row>
|
||||||
|
</b-container>
|
||||||
<br>
|
<br>
|
||||||
<b-form-input
|
<b-form-input
|
||||||
v-model="newSettingValue"
|
v-model="newSettingValue"
|
||||||
|
@ -109,38 +141,49 @@
|
||||||
methods: {
|
methods: {
|
||||||
async saveNewSetting() {
|
async saveNewSetting() {
|
||||||
log.debug(`Saving setting ${this.newSettingValue} for setting ${this.edtSettingKey}`);
|
log.debug(`Saving setting ${this.newSettingValue} for setting ${this.edtSettingKey}`);
|
||||||
|
// Save setting
|
||||||
// Contructing url
|
|
||||||
const url = this.$store.getters.getSelectedServerAddress + '/:/prefs/set?'
|
|
||||||
|
|
||||||
console.log('URL: ' + url)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
await store.dispatch('setPMSSetting', {
|
await store.dispatch('setPMSSetting', {
|
||||||
Token: this.$store.getters.getAuthToken,
|
Token: this.$store.getters.getAuthToken,
|
||||||
Address: this.$store.getters.getSelectedServerAddress,
|
Address: this.$store.getters.getSelectedServerAddress,
|
||||||
Setting: this.edtSettingKey,
|
Setting: this.edtSettingKey,
|
||||||
Value: this.newSettingValue});
|
Value: this.newSettingValue});
|
||||||
|
this.$refs['edtSetting'].hide();
|
||||||
|
await this.getServerSettings();
|
||||||
// http://127.0.0.1:32400/:/prefs/set?LogNumFiles=30&X-Plex-Token=TOKEN
|
this.updateTbl(this.selSection);
|
||||||
},
|
},
|
||||||
tblRowClicked(record) {
|
tblRowClicked(record) {
|
||||||
console.log('Ged Row clicked')
|
|
||||||
console.log('Ged2', record)
|
|
||||||
// Edit Setting
|
// Edit Setting
|
||||||
log.debug(`Edit Setting: ${record.name}`);
|
log.debug(`Edit Setting: ${record.name}`);
|
||||||
this.curSetting = record.value;
|
if (!record.default)
|
||||||
this.defSetting = record.default;
|
{
|
||||||
|
this.defSetting = 'false';
|
||||||
|
}
|
||||||
|
else if (record.value)
|
||||||
|
{
|
||||||
|
this.curSetting = 'true';
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
this.defSetting = record.default;
|
||||||
|
}
|
||||||
|
if (!record.value)
|
||||||
|
{
|
||||||
|
this.curSetting = 'false';
|
||||||
|
}
|
||||||
|
else if (record.value)
|
||||||
|
{
|
||||||
|
this.curSetting = 'true';
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
this.curSetting = record.value;
|
||||||
|
}
|
||||||
this.edtSettingKey = record.name;
|
this.edtSettingKey = record.name;
|
||||||
this.newSettingTitle = i18n.t('Modules.PMS.Settings.newSettingTitle', [this.edtSettingKey]);
|
this.newSettingTitle = i18n.t('Modules.PMS.Settings.newSettingTitle', [this.edtSettingKey]);
|
||||||
|
this.newSettingValue = "";
|
||||||
this.$refs['edtSetting'].show();
|
this.$refs['edtSetting'].show();
|
||||||
},
|
},
|
||||||
getGroupSelectedItem: function(myarg) {
|
updateTbl(group) {
|
||||||
log.debug(`Group changed to: ${myarg}`);
|
|
||||||
// Update the data table with new settings
|
// Update the data table with new settings
|
||||||
const filteredResult = JSONPath({path: `$.${myarg}`, json: this.$store.getters.getPMSSettings})[0];
|
const filteredResult = JSONPath({path: `$.${group}`, json: this.$store.getters.getPMSSettings})[0];
|
||||||
log.verbose(`filtered settings: ${JSON.stringify(filteredResult)}`);
|
log.verbose(`filtered settings: ${JSON.stringify(filteredResult)}`);
|
||||||
this.settingsItems = [];
|
this.settingsItems = [];
|
||||||
for (var i = 0; i < filteredResult.length; i++) {
|
for (var i = 0; i < filteredResult.length; i++) {
|
||||||
|
@ -154,6 +197,24 @@
|
||||||
this.settingsItems.push(entry);
|
this.settingsItems.push(entry);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
getGroupSelectedItem: function(myarg) {
|
||||||
|
log.debug(`Group changed to: ${myarg}`);
|
||||||
|
this.updateTbl(myarg);
|
||||||
|
/* // Update the data table with new settings
|
||||||
|
const filteredResult = JSONPath({path: `$.${myarg}`, json: this.$store.getters.getPMSSettings})[0];
|
||||||
|
log.verbose(`filtered settings: ${JSON.stringify(filteredResult)}`);
|
||||||
|
this.settingsItems = [];
|
||||||
|
for (var i = 0; i < filteredResult.length; i++) {
|
||||||
|
var entry = {};
|
||||||
|
entry['name'] = JSONPath({path: `$.*~`, json: filteredResult[i]})[0];
|
||||||
|
entry['label'] = JSONPath({path: `$..label`, json: filteredResult[i]})[0];
|
||||||
|
entry['summary'] = JSONPath({path: `$..summary`, json: filteredResult[i]})[0];
|
||||||
|
entry['type'] = JSONPath({path: `$..type`, json: filteredResult[i]})[0];
|
||||||
|
entry['default'] = JSONPath({path: `$..default`, json: filteredResult[i]})[0];
|
||||||
|
entry['value'] = JSONPath({path: `$..value`, json: filteredResult[i]})[0];
|
||||||
|
this.settingsItems.push(entry);
|
||||||
|
} */
|
||||||
|
},
|
||||||
async serverSelected() {
|
async serverSelected() {
|
||||||
let serverCheck = this.$store.getters.getSelectedServer;
|
let serverCheck = this.$store.getters.getSelectedServer;
|
||||||
if (serverCheck == "none") {
|
if (serverCheck == "none") {
|
||||||
|
@ -176,19 +237,20 @@
|
||||||
log.debug('Options are: ' + JSON.stringify(Object.keys(this.$store.getters.getPMSSettings)))
|
log.debug('Options are: ' + JSON.stringify(Object.keys(this.$store.getters.getPMSSettings)))
|
||||||
this.selSectionOptions = Object.keys(this.$store.getters.getPMSSettings).sort();
|
this.selSectionOptions = Object.keys(this.$store.getters.getPMSSettings).sort();
|
||||||
},
|
},
|
||||||
changedOptions() {
|
async changedOptions() {
|
||||||
log.debug('Updating OnlyHidden Setting');
|
log.debug('Updating OnlyHidden Setting');
|
||||||
//this.$nextTick(()=>{console.log(this.cbSelected);})
|
//this.$nextTick(()=>{console.log(this.cbSelected);})
|
||||||
for( var cbItem of ["OnlyHidden", "OnlyAdvanced"]){
|
for( var cbItem of ["OnlyHidden", "OnlyAdvanced"]){
|
||||||
wtconfig.set("PMS." + cbItem, (this.cbSelected.includes(cbItem)))
|
wtconfig.set("PMS." + cbItem, (this.cbSelected.includes(cbItem)))
|
||||||
}
|
}
|
||||||
this.getServerSettings();
|
await this.getServerSettings();
|
||||||
|
this.updateTbl(this.selSection);
|
||||||
},
|
},
|
||||||
getcbDefaults() {
|
getcbDefaults() {
|
||||||
log.debug('Get OnlyHidden Setting');
|
log.debug('Get OnlyHidden Setting');
|
||||||
const cbItems = ["OnlyHidden", "OnlyAdvanced"];
|
const cbItems = ["OnlyHidden", "OnlyAdvanced"];
|
||||||
for(let i = 0; i < cbItems.length; i++){
|
for(let i = 0; i < cbItems.length; i++){
|
||||||
if (wtconfig.get("PMS." + cbItems[i], true)){
|
if (wtconfig.get("PMS." + cbItems[i], false)){
|
||||||
this.cbSelected.push(cbItems[i])
|
this.cbSelected.push(cbItems[i])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -127,10 +127,7 @@ const actions = {
|
||||||
// that falls out of the range of 2xx
|
// that falls out of the range of 2xx
|
||||||
log.error(`loginToPlex status: ${error.response.status}`);
|
log.error(`loginToPlex status: ${error.response.status}`);
|
||||||
log.error(`loginToPlex data: ${JSON.stringify(error.response.data)}`);
|
log.error(`loginToPlex data: ${JSON.stringify(error.response.data)}`);
|
||||||
|
// alert(error.response.data.message)
|
||||||
|
|
||||||
// alert(error.response.data.message)
|
|
||||||
|
|
||||||
var data = JSON.stringify(error.response.data);
|
var data = JSON.stringify(error.response.data);
|
||||||
var objectValue = JSON.parse(data);
|
var objectValue = JSON.parse(data);
|
||||||
var statusCode = JSON.stringify(objectValue.errors[0].code);
|
var statusCode = JSON.stringify(objectValue.errors[0].code);
|
||||||
|
|
Loading…
Add table
Reference in a new issue