add timezone setting
This commit is contained in:
parent
7cfdf4f2af
commit
57a37b047f
@ -57,6 +57,8 @@
|
||||
"ERR0055": "Func Code 輸入錯誤",
|
||||
"ERR0056": "LeOne數量已達上限",
|
||||
"ERR0057": "連動資料輸入錯誤",
|
||||
"ERR0058": "timezone輸入錯誤",
|
||||
"ERR0059": "timezone設定失敗",
|
||||
|
||||
"ERR7000": "命令執行失敗",
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -63,7 +63,7 @@
|
||||
/******/ __webpack_require__.p = "";
|
||||
|
||||
/******/ // Load entry module and return exports
|
||||
/******/ return __webpack_require__(__webpack_require__.s = 1138);
|
||||
/******/ return __webpack_require__(__webpack_require__.s = 1139);
|
||||
/******/ })
|
||||
/************************************************************************/
|
||||
/******/ ([
|
||||
@ -62129,7 +62129,7 @@ var _i18next2 = _interopRequireDefault(_i18next);
|
||||
|
||||
var _semanticUiReact = __webpack_require__(8);
|
||||
|
||||
var _Form = __webpack_require__(1085);
|
||||
var _Form = __webpack_require__(1086);
|
||||
|
||||
var _Form2 = _interopRequireDefault(_Form);
|
||||
|
||||
@ -62321,7 +62321,8 @@ exports.default = (0, _reactRedux.connect)()(Root);
|
||||
/* 1082 */,
|
||||
/* 1083 */,
|
||||
/* 1084 */,
|
||||
/* 1085 */
|
||||
/* 1085 */,
|
||||
/* 1086 */
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
@ -62377,7 +62378,6 @@ var loginForm = function loginForm(_ref) {
|
||||
exports.default = loginForm;
|
||||
|
||||
/***/ }),
|
||||
/* 1086 */,
|
||||
/* 1087 */,
|
||||
/* 1088 */,
|
||||
/* 1089 */,
|
||||
@ -62429,7 +62429,8 @@ exports.default = loginForm;
|
||||
/* 1135 */,
|
||||
/* 1136 */,
|
||||
/* 1137 */,
|
||||
/* 1138 */
|
||||
/* 1138 */,
|
||||
/* 1139 */
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
|
@ -461,6 +461,27 @@ router
|
||||
return n();
|
||||
});
|
||||
})
|
||||
.post('/settimezone', (req,res,n) => {
|
||||
if(!tool.checkPermission(req)) return n('ERR9000');
|
||||
let arr = req.body;
|
||||
if(!arr.data) return n('ERR0000');
|
||||
if(!arr.data.timezone) return n('ERR0058');
|
||||
|
||||
let cmd = `timedatectl set-timezone ${arr.data.timezone}`;
|
||||
exec(cmd, (err, stdout, stderr) => {
|
||||
if(err) return rt.err(res,err, n, 'ERR0059');
|
||||
|
||||
let query = "update ??.?? set `value` = ? where `type` = ?";
|
||||
let param = [config.db.db1, 'system', arr.data.timezone, 'timezone'];
|
||||
res.db.query(query, param, (err, row) => {
|
||||
if(err ) return rt.err(res, err, n, 'ERR8002');
|
||||
res.api_res = {
|
||||
record: []
|
||||
}
|
||||
n();
|
||||
})
|
||||
})
|
||||
})
|
||||
.all('*', rt.send);
|
||||
|
||||
module.exports = router;
|
@ -1,12 +1,14 @@
|
||||
import React from 'react';
|
||||
import {Form, Input, Button} from 'semantic-ui-react';
|
||||
import {Form, Input, Button, Label, Message} from 'semantic-ui-react';
|
||||
import {getRequest} from '../../../actions';
|
||||
|
||||
class TimezoneForm extends React.Component {
|
||||
state = {
|
||||
zones: [],
|
||||
zone: '',
|
||||
loc: ''
|
||||
loc: '',
|
||||
selZone: null,
|
||||
selLoc: null
|
||||
}
|
||||
|
||||
componentDidMount(){
|
||||
@ -38,14 +40,75 @@ class TimezoneForm extends React.Component {
|
||||
})
|
||||
}
|
||||
|
||||
zonesChange = (data) => {
|
||||
this.setState({
|
||||
selZone: data == '' ? null : data
|
||||
})
|
||||
}
|
||||
|
||||
handleSubmit = () => {
|
||||
if(this.state.selZone == null || this.state.selLoc == null ) return this.props.showDialog('請選擇區域與城市');
|
||||
let zone = this.state.zones[this.state.selZone].name;
|
||||
let loc = this.state.zones[this.state.selZone].location[this.state.selLoc];
|
||||
|
||||
fetch('/api/system/settimezone', getRequest({timezone: `${zone}/${loc}`}))
|
||||
.then(response=>response.json())
|
||||
.then(json => {
|
||||
if(json.status != 1) return this.props.showDialog(json.message);
|
||||
this.setState({
|
||||
selZone: null,
|
||||
selLoc: null
|
||||
}, () => {
|
||||
this.getZoneSet();
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
render(){
|
||||
return (
|
||||
<Form>
|
||||
<Form.Field>
|
||||
<Input label="系統Timezone"
|
||||
value={`${this.state.zone}${this.state.zone.length > 0 ? '/' : ''}${this.state.loc}`} />
|
||||
<Form onSubmit={(e,d) => {
|
||||
e.preventDefault();
|
||||
this.handleSubmit();
|
||||
}} serializer={e=>{
|
||||
return {};
|
||||
}}>
|
||||
<Form.Field inline>
|
||||
{/*<Input label="系統Timezone"
|
||||
value={`${this.state.zone}${this.state.zone.length > 0 ? '/' : ''}${this.state.loc}`}
|
||||
disabled />*/}
|
||||
<label>系統Timezone</label>
|
||||
<Label content={`${this.state.zone}${this.state.zone.length > 0 ? '/' : ''}${this.state.loc}`} basic/>
|
||||
</Form.Field>
|
||||
|
||||
<Form.Group inline>
|
||||
<Form.Field>
|
||||
<label>設定Timezone</label>
|
||||
<select value={this.state.selZone == null ? '' : this.state.selZone} onChange={e=>{ this.zonesChange(e.target.value); }}>
|
||||
<option value="">選擇區域</option>
|
||||
{
|
||||
this.state.zones.map((t,idx)=>(
|
||||
<option key={idx} value={idx}>{t.name}</option>
|
||||
))
|
||||
}
|
||||
</select>
|
||||
</Form.Field>
|
||||
{
|
||||
this.state.selZone == null ? null :
|
||||
(
|
||||
<Form.Field>
|
||||
<select value={this.state.selLoc == null ? '' : this.state.selLoc}
|
||||
onChange={e => { this.setState({selLoc: e.target.value == '' ? null : e.target.value}) }}>
|
||||
<option value="">選擇城市</option>
|
||||
{
|
||||
this.state.zones[this.state.selZone].location.map((t,idx) => (
|
||||
<option key={idx} value={idx}>{t}</option>
|
||||
))
|
||||
}
|
||||
</select>
|
||||
</Form.Field>
|
||||
)
|
||||
}
|
||||
</Form.Group>
|
||||
<Button type="submit" fluid content="更新Timezone" />
|
||||
</Form>
|
||||
)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user