var DBG = DBG || 0; var DBG1 = true; if (!NAMESPACE) throw "Missing NAMESPACE"; if (!USER_LOGIN) throw "Missing USER_LOGIN"; if (!HTML_NODE_ID) throw "Missing HTML_NODE_ID"; if (!VIEW_ALL_LINK) throw "Missing VIEW_ALL_LINK"; if (!global.p5VendorJs) throw "Missing vendor.js"; if (!global.p5WFS_GetFeature) throw "Missing p5WFS_GetFeature"; var REQUEST_LIMIT = (REQUEST_LIMIT) ? REQUEST_LIMIT : 10; var createReactClass = global.p5VendorJs.createReactClass; var h = global.p5VendorJs.React.createElement; var ReactDOM = global.p5VendorJs.ReactDOM; var p5WFS_GetFeature = global.p5WFS_GetFeature; var P5UI__WidgetMsgs = createReactClass({ getInitialState: function () { return { response: [], isLoading: false, } }, componentDidMount: function() { DBG && console.log('DBG:P5UI__WidgetMsgs:componentDidMount'); this.setState({ isLoading: true }) p5WFS_GetFeature(this.props.namespace, { sortBy: 'L_APPOITMENT_DATE+A', maxFeatures: REQUEST_LIMIT, }).then(this.handleWfsResponse.bind(this)) .catch(this.handleWfsError.bind(this)) }, handleWfsResponse: function (response) { DBG && console.log('DBG:P5UI__WidgetMsgs:handleWfsResponse', { response }); this.setState({ isLoading: false, response: response, }) }, handleWfsError: function (error) { DBG && console.log('DBG:P5UI__WidgetMsgs:handleWfsError', { error }); this.setState({ isLoading: false, errorMsg: '' + error, }) }, renderLoading: function () { return h('p', {}, "loading..."); }, renderEmpty: function () { if (this.state.errorMsg) return this.renderErrorMsg(); return h('p', {}, "Brak danych"); }, renderErrorMsg: function () { return h('div', { className: "alert alert-danger" }, this.state.errorMsg); }, renderRow: function (row) { // A_STATUS: "NORMAL" // ID: "985" // actionExecutedTime: "2019-03-13 15:16:23" // app_className: "TableMsgs" // idReplyTo: "0" // idThread: "0" // msg: "..." // msgType: "info" // uiTargetName: "IN7_DZIENNIK_KORESP.64417" // uiTargetType: "default_db_table_record" // userTargetType: "everyone" // A_RECORD_CREATE_AUTHOR: "..." // A_RECORD_CREATE_DATE: "2019-03-13 14:58:22" // A_RECORD_UPDATE_DATE: "2019-03-13 15:16:23" // A_RECORD_UPDATE_AUTHOR: "..." row._read = ('WAITING' != row.A_STATUS); row._readByUser = ('WAITING' != row.A_STATUS); if ('WAITING' == row.A_STATUS && USER_LOGIN == row.A_RECORD_CREATE_AUTHOR) { if ('user' == row.userTargetType && USER_LOGIN == row.userTargetName) { row._readByUser = false; } else { row._readByUser = true; } } if (row._read) { if (row.A_RECORD_UPDATE_DATE) row._readDate = row.A_RECORD_UPDATE_DATE; if (row.A_RECORD_UPDATE_AUTHOR) row._readBy = row.A_RECORD_UPDATE_AUTHOR; } return h('div', { className: "message", // message-read 'data-messageid': row.ID, style: { borderTop: "1px solid #ddd", padding: "6px 12px", backgroundColor: (row._readByUser) ? "#eee" : "#fff", cursor: "pointer", }, onClick: function () { window.location.href = 'index.php?_route=UserMsgs&id=' + row.ID + '&usrLogin=' + USER_LOGIN + '&_task=read' } }, [ row.msg, h('div', { className: "text-muted", style: { fontStyle: "italic", fontSize: "x-small" } }, [ row.A_RECORD_CREATE_DATE.substr(0, 10) + " od " + row.A_RECORD_CREATE_AUTHOR + " do " + this.renderMsgTo(row), ]), ]); }, renderMsgTo: function (row) { switch (row.userTargetType) { case 'everyone': return "wszystkich"; case 'user': return row.userTargetName; case 'group': return "grupy " + row.userTargetName; } }, render: function () { DBG && console.log('DBG:P5UI__WidgetMsgs:render', { props: this.props, state: this.state }); if (this.state.isLoading) return this.renderLoading(); if (!this.state.response.length) return this.renderEmpty(); return h('div', {}, [ h('div', { style: { border: "1px solid #ddd" } }, this.state.response.map(this.renderRow)), h('div', { style: { border: "1px solid #ddd", padding: "12px", textAlign: "center" } }, [ h('a', { href: VIEW_ALL_LINK, }, "przeglÄ…daj wszystkie") ]), ]); } }); ReactDOM.render( h(P5UI__WidgetMsgs, { namespace: NAMESPACE, login: USER_LOGIN, }), document.getElementById(HTML_NODE_ID) );