add page chk login
This commit is contained in:
parent
e2040a181e
commit
52e18de9ac
@ -65,5 +65,6 @@
|
||||
"ERR8002": "資料更新失敗",
|
||||
"ERR8003": "資料刪除失敗",
|
||||
"ERR8100": "DB連線失敗",
|
||||
"ERR9000": "操作權限不足"
|
||||
"ERR9000": "操作權限不足",
|
||||
"ERR9001": "登入Token無效"
|
||||
}
|
@ -80128,6 +80128,10 @@ var _ActionLinkAdd = __webpack_require__(1080);
|
||||
|
||||
var _ActionLinkAdd2 = _interopRequireDefault(_ActionLinkAdd);
|
||||
|
||||
var _IPCam = __webpack_require__(1127);
|
||||
|
||||
var _IPCam2 = _interopRequireDefault(_IPCam);
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
var Routes = _react2.default.createElement(
|
||||
@ -80144,7 +80148,8 @@ var Routes = _react2.default.createElement(
|
||||
_react2.default.createElement(_reactRouter.Route, { path: 'modbus', component: _Modbus2.default }),
|
||||
_react2.default.createElement(_reactRouter.Route, { path: 'link', component: _ActionLink2.default }),
|
||||
_react2.default.createElement(_reactRouter.Route, { path: 'addlink', component: _ActionLinkAdd2.default }),
|
||||
_react2.default.createElement(_reactRouter.Route, { path: 'modbuscmd', component: _ModbusCmd2.default })
|
||||
_react2.default.createElement(_reactRouter.Route, { path: 'modbuscmd', component: _ModbusCmd2.default }),
|
||||
_react2.default.createElement(_reactRouter.Route, { path: 'ipcam', component: _IPCam2.default })
|
||||
);
|
||||
|
||||
exports.default = Routes;
|
||||
@ -87352,6 +87357,9 @@ var MainMenu = function MainMenu(_ref) {
|
||||
_react2.default.createElement(_Item2.default, { toLink: '/admin/link', txt: i18n && 't' in i18n ? i18n.t('menu.item.link') : '', permission: permissions.link, onClick: function onClick() {
|
||||
return toggleMenu();
|
||||
} }),
|
||||
_react2.default.createElement(_Item2.default, { toLink: '/admin/ipcam', txt: i18n && 't' in i18n ? i18n.t('menu.item.ipcam') : '', permission: permissions.ipcam, onClick: function onClick() {
|
||||
return toggleMenu();
|
||||
} }),
|
||||
_react2.default.createElement(_Item2.default, { toLink: '/admin', txt: i18n && 't' in i18n ? i18n.t('menu.item.logout') : '', permission: true, onClick: function onClick() {
|
||||
sessionStorage.clear();
|
||||
location.replace('/');
|
||||
@ -91414,17 +91422,22 @@ var PageRoot = function (_React$Component) {
|
||||
_createClass(PageRoot, [{
|
||||
key: 'componentDidMount',
|
||||
value: function componentDidMount() {
|
||||
var lang = navigator.language.substring(0, 2);
|
||||
fetch('/locales/' + lang + '.json').then(function (response) {
|
||||
if (response.status == 200) return response.json();
|
||||
return {};
|
||||
fetch('/api/system/chklogin', (0, _actions.getRequest)()).then(function (response) {
|
||||
return response.json();
|
||||
}).then(function (json) {
|
||||
var lang = Object.keys(json)[0] || '';
|
||||
_i18next2.default.init({
|
||||
lng: lang,
|
||||
resources: json
|
||||
}, function () {
|
||||
store.dispatch((0, _actions.set_i18n)(_i18next2.default));
|
||||
if (json.status != 1) return location.replace('/');
|
||||
var lang = navigator.language.substring(0, 2);
|
||||
fetch('/locales/' + lang + '.json').then(function (response) {
|
||||
if (response.status == 200) return response.json();
|
||||
return {};
|
||||
}).then(function (json) {
|
||||
var lang = Object.keys(json)[0] || '';
|
||||
_i18next2.default.init({
|
||||
lng: lang,
|
||||
resources: json
|
||||
}, function () {
|
||||
store.dispatch((0, _actions.set_i18n)(_i18next2.default));
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
@ -91444,5 +91457,97 @@ var PageRoot = function (_React$Component) {
|
||||
|
||||
_reactDom2.default.render(_react2.default.createElement(PageRoot, null), document.getElementById('app'));
|
||||
|
||||
/***/ }),
|
||||
/* 1125 */,
|
||||
/* 1126 */
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
|
||||
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
||||
|
||||
var _react = __webpack_require__(0);
|
||||
|
||||
var _react2 = _interopRequireDefault(_react);
|
||||
|
||||
__webpack_require__(13);
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
|
||||
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
|
||||
|
||||
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
|
||||
|
||||
var IPCamPage = function (_React$Component) {
|
||||
_inherits(IPCamPage, _React$Component);
|
||||
|
||||
function IPCamPage() {
|
||||
_classCallCheck(this, IPCamPage);
|
||||
|
||||
return _possibleConstructorReturn(this, (IPCamPage.__proto__ || Object.getPrototypeOf(IPCamPage)).apply(this, arguments));
|
||||
}
|
||||
|
||||
_createClass(IPCamPage, [{
|
||||
key: 'render',
|
||||
value: function render() {
|
||||
|
||||
return null;
|
||||
}
|
||||
}]);
|
||||
|
||||
return IPCamPage;
|
||||
}(_react2.default.Component);
|
||||
|
||||
exports.default = IPCamPage;
|
||||
|
||||
/***/ }),
|
||||
/* 1127 */
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
|
||||
var _reactRedux = __webpack_require__(30);
|
||||
|
||||
var _actions = __webpack_require__(24);
|
||||
|
||||
var _IPCam = __webpack_require__(1126);
|
||||
|
||||
var _IPCam2 = _interopRequireDefault(_IPCam);
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
var mapStateToProps = function mapStateToProps(state) {
|
||||
return {
|
||||
i18n: state.i18n
|
||||
};
|
||||
};
|
||||
|
||||
var mapDispatchToProps = function mapDispatchToProps(dispatch, ownProps) {
|
||||
return {
|
||||
showDialog: function showDialog(msg) {
|
||||
dispatch((0, _actions.add_dialog_msg)(msg));
|
||||
},
|
||||
toggleLoading: function toggleLoading() {
|
||||
var flag = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
||||
|
||||
dispatch((0, _actions.toggle_loading)(flag));
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
exports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(_IPCam2.default);
|
||||
|
||||
/***/ })
|
||||
/******/ ]);
|
@ -272,6 +272,7 @@
|
||||
"modbus": "Modbus",
|
||||
"modbuscmd": "Modbus CMD",
|
||||
"link": "連動",
|
||||
"ipcam": "網路攝影機",
|
||||
"logout": "登出"
|
||||
}
|
||||
},
|
||||
|
@ -393,6 +393,13 @@ router
|
||||
return n();
|
||||
})
|
||||
})
|
||||
.post('/chklogin', (req,res,n) => {
|
||||
if(!tool.checkPermission(req)) return n('ERR9001');
|
||||
res.api_res = {
|
||||
record: []
|
||||
}
|
||||
n();
|
||||
})
|
||||
.all('*', rt.send);
|
||||
|
||||
module.exports = router;
|
36
src/admin.js
36
src/admin.js
@ -8,6 +8,7 @@ import routes from './routes';
|
||||
import thunk from 'redux-thunk';
|
||||
import {set_i18n} from './actions';
|
||||
import i18next from 'i18next';
|
||||
import {getRequest} from './actions';
|
||||
|
||||
const middleware = [thunk];
|
||||
|
||||
@ -34,22 +35,27 @@ const store = createStore(reducers, NODE_ENV && NODE_ENV == 'production' ? apply
|
||||
class PageRoot extends React.Component {
|
||||
|
||||
componentDidMount(){
|
||||
let lang = navigator
|
||||
.language
|
||||
.substring(0, 2);
|
||||
fetch(`/locales/${lang}.json`).then(response => {
|
||||
if (response.status == 200)
|
||||
return response.json();
|
||||
return {}
|
||||
}).then(json => {
|
||||
let lang = Object.keys(json)[0] || '';
|
||||
i18next.init({
|
||||
lng: lang,
|
||||
resources: json
|
||||
}, () => {
|
||||
store.dispatch(set_i18n(i18next));
|
||||
fetch('/api/system/chklogin', getRequest())
|
||||
.then(response=>response.json())
|
||||
.then(json => {
|
||||
if(json.status != 1) return location.replace('/');
|
||||
let lang = navigator
|
||||
.language
|
||||
.substring(0, 2);
|
||||
fetch(`/locales/${lang}.json`).then(response => {
|
||||
if (response.status == 200)
|
||||
return response.json();
|
||||
return {}
|
||||
}).then(json => {
|
||||
let lang = Object.keys(json)[0] || '';
|
||||
i18next.init({
|
||||
lng: lang,
|
||||
resources: json
|
||||
}, () => {
|
||||
store.dispatch(set_i18n(i18next));
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
render() {
|
||||
|
@ -18,6 +18,7 @@ const MainMenu = ({i18n, show, toggleMenu, children, permissions, showDashboard,
|
||||
<MItem toLink="/admin/modbus" txt={i18n && 't' in i18n ? i18n.t('menu.item.modbus') : ''} permission={permissions.modbus} onClick={()=>toggleMenu()} />
|
||||
<MItem toLink="/admin/modbuscmd" txt={i18n && 't' in i18n ? i18n.t('menu.item.modbuscmd') : ''} permission={permissions.modbus} onClick={()=>toggleMenu()} />
|
||||
<MItem toLink="/admin/link" txt={i18n && 't' in i18n ? i18n.t('menu.item.link') : ''} permission={permissions.link} onClick={()=>toggleMenu()} />
|
||||
<MItem toLink="/admin/ipcam" txt={i18n && 't' in i18n ? i18n.t('menu.item.ipcam') : ''} permission={permissions.ipcam} onClick={()=>toggleMenu()} />
|
||||
<MItem toLink="/admin" txt={i18n && 't' in i18n ? i18n.t('menu.item.logout') : ''} permission={true} onClick={()=>{
|
||||
sessionStorage.clear();
|
||||
location.replace('/');
|
||||
|
@ -13,6 +13,7 @@ import Modbus from './containers/AdminPage/Modbus';
|
||||
import ModbusCmd from './containers/AdminPage/ModbusCmd';
|
||||
import ActionLink from './containers/AdminPage/ActionLink';
|
||||
import ActionLinkAdd from './containers/AdminPage/ActionLinkAdd';
|
||||
import IPCam from './containers/AdminPage/IPCam';
|
||||
|
||||
const Routes = (
|
||||
<Route path="/admin" component={AdminPage}>
|
||||
@ -28,6 +29,7 @@ const Routes = (
|
||||
<Route path="link" component={ActionLink} />
|
||||
<Route path="addlink" component={ActionLinkAdd} />
|
||||
<Route path="modbuscmd" component={ModbusCmd} />
|
||||
<Route path="ipcam" component={IPCam} />
|
||||
</Route>
|
||||
);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user