expressa 1.2.4 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.circleci/config.yml +2 -2
- package/auth/index.js +45 -31
- package/auth/jwt.js +3 -2
- package/controllers/users.js +8 -1
- package/index.js +3 -7
- package/listeners.js +64 -59
- package/listeners_users.js +88 -87
- package/middleware/permissions.js +47 -53
- package/modules/admin/dist/index.html +1 -1
- package/modules/admin/dist/index.html.gz +0 -0
- package/modules/admin/dist/static/css/{chunk-5cee.9685afb8.css → chunk-5061.ce0e4bdb.css} +0 -0
- package/modules/admin/dist/static/css/{chunk-5cee.9685afb8.css.gz → chunk-5061.ce0e4bdb.css.gz} +0 -0
- package/modules/admin/dist/static/css/chunk-5e50.f67eeaed.css +1 -0
- package/modules/admin/dist/static/css/chunk-5e50.f67eeaed.css.gz +0 -0
- package/modules/admin/dist/static/css/{chunk-621e.f3d0eab6.css → chunk-621e.b826be8d.css} +0 -0
- package/modules/admin/dist/static/css/{chunk-621e.f3d0eab6.css.gz → chunk-621e.b826be8d.css.gz} +0 -0
- package/modules/admin/dist/static/css/chunk-7109.2bd6f37e.css +1 -0
- package/modules/admin/dist/static/css/chunk-7109.2bd6f37e.css.gz +0 -0
- package/modules/admin/dist/static/css/chunk-7f4f.f67eeaed.css +1 -0
- package/modules/admin/dist/static/css/chunk-7f4f.f67eeaed.css.gz +0 -0
- package/modules/admin/dist/static/css/chunk-9a95.c647a2ef.css +1 -0
- package/modules/admin/dist/static/css/chunk-9a95.c647a2ef.css.gz +0 -0
- package/modules/admin/dist/static/css/{chunk-bd5f.6ab011ba.css → chunk-bd5f.aefa49d7.css} +0 -0
- package/modules/admin/dist/static/css/{chunk-bd5f.6ab011ba.css.gz → chunk-bd5f.aefa49d7.css.gz} +0 -0
- package/modules/admin/dist/static/css/{chunk-e375.1d849865.css → chunk-e374.025d58bb.css} +0 -0
- package/modules/admin/dist/static/css/{chunk-e375.1d849865.css.gz → chunk-e374.025d58bb.css.gz} +0 -0
- package/modules/admin/dist/static/js/{app.ebe90d64.js → app.da5e53a7.js} +1 -1
- package/modules/admin/dist/static/js/app.da5e53a7.js.gz +0 -0
- package/modules/admin/dist/static/js/chunk-5061.83e6ccfa.js +1 -0
- package/modules/admin/dist/static/js/chunk-5061.83e6ccfa.js.gz +0 -0
- package/modules/admin/dist/static/js/chunk-5e17.a2b69611.js +1 -0
- package/modules/admin/dist/static/js/chunk-5e17.a2b69611.js.gz +0 -0
- package/modules/admin/dist/static/js/chunk-5e50.6820e69c.js +1 -0
- package/modules/admin/dist/static/js/chunk-5e50.6820e69c.js.gz +0 -0
- package/modules/admin/dist/static/js/{chunk-621e.6fe293e9.js → chunk-621e.ccf42393.js} +0 -0
- package/modules/admin/dist/static/js/{chunk-621e.6fe293e9.js.gz → chunk-621e.ccf42393.js.gz} +0 -0
- package/modules/admin/dist/static/js/chunk-7109.10cb4860.js +1 -0
- package/modules/admin/dist/static/js/chunk-7109.10cb4860.js.gz +0 -0
- package/modules/admin/dist/static/js/chunk-7f4f.ae4400a8.js +1 -0
- package/modules/admin/dist/static/js/chunk-7f4f.ae4400a8.js.gz +0 -0
- package/modules/admin/dist/static/js/chunk-9a95.bdd76583.js +1 -0
- package/modules/admin/dist/static/js/chunk-9a95.bdd76583.js.gz +0 -0
- package/modules/admin/dist/static/js/{chunk-bd5f.af5f2197.js → chunk-bd5f.e9509f10.js} +0 -0
- package/modules/admin/dist/static/js/{chunk-bd5f.af5f2197.js.gz → chunk-bd5f.e9509f10.js.gz} +0 -0
- package/modules/admin/dist/static/js/{chunk-e375.089d85cd.js → chunk-e374.7c87a0dd.js} +1 -1
- package/modules/admin/dist/static/js/chunk-e374.7c87a0dd.js.gz +0 -0
- package/modules/admin/package.json +1 -0
- package/modules/admin/src/router/index.js +200 -185
- package/modules/admin/src/views/Endpoints.vue +250 -0
- package/modules/admin/src/views/ListDocuments2.vue +465 -407
- package/modules/admin/src/views/ViewRequest.vue +7 -3
- package/modules/core/core.js +5 -0
- package/modules/logging/logging.js +3 -0
- package/package.json +1 -1
- package/test/0-install.js +1 -0
- package/test/users.js +37 -1
- package/util.js +18 -8
- package/modules/admin/dist/static/css/chunk-1dff.39c7634b.css +0 -1
- package/modules/admin/dist/static/css/chunk-1dff.39c7634b.css.gz +0 -0
- package/modules/admin/dist/static/css/chunk-3bc2.89632b9d.css +0 -1
- package/modules/admin/dist/static/css/chunk-3bc2.89632b9d.css.gz +0 -0
- package/modules/admin/dist/static/css/chunk-f691.4817ca73.css +0 -1
- package/modules/admin/dist/static/css/chunk-f691.4817ca73.css.gz +0 -0
- package/modules/admin/dist/static/js/app.ebe90d64.js.gz +0 -0
- package/modules/admin/dist/static/js/chunk-1dff.1f1c0999.js +0 -1
- package/modules/admin/dist/static/js/chunk-1dff.1f1c0999.js.gz +0 -0
- package/modules/admin/dist/static/js/chunk-3bc2.028748b7.js +0 -1
- package/modules/admin/dist/static/js/chunk-3bc2.028748b7.js.gz +0 -0
- package/modules/admin/dist/static/js/chunk-5cee.a6f0e769.js +0 -1
- package/modules/admin/dist/static/js/chunk-5cee.a6f0e769.js.gz +0 -0
- package/modules/admin/dist/static/js/chunk-e375.089d85cd.js.gz +0 -0
- package/modules/admin/dist/static/js/chunk-f691.c0cbf5c1.js +0 -1
- package/modules/admin/dist/static/js/chunk-f691.c0cbf5c1.js.gz +0 -0
|
@@ -8,12 +8,14 @@
|
|
|
8
8
|
<dl>
|
|
9
9
|
<dt>Request Time</dt>
|
|
10
10
|
<dd>{{ log.meta.created }}</dd>
|
|
11
|
+
<dt>User</dt>
|
|
12
|
+
<dd>{{ log.user }}</dd>
|
|
13
|
+
<dt>User Collection</dt>
|
|
14
|
+
<dd>{{ log.user_collection }}</dd>
|
|
11
15
|
<dt>IP</dt>
|
|
12
16
|
<dd>{{ req.ip }}</dd>
|
|
13
|
-
<dt>Access token</dt>
|
|
14
|
-
<dd>{{ req.headers.x-access-token }}</dd>
|
|
15
17
|
<dt>User-Agent</dt>
|
|
16
|
-
<dd>{{ req.headers
|
|
18
|
+
<dd>{{ req.headers['user-agent'] }}</dd>
|
|
17
19
|
<dt>Referrer</dt>
|
|
18
20
|
<dd>{{ req.headers.referer }}</dd>
|
|
19
21
|
<dt>Origin</dt>
|
|
@@ -34,6 +36,8 @@
|
|
|
34
36
|
<dd>{{ res.headers['content-length'] }} bytes</dd>
|
|
35
37
|
<dt>Message</dt>
|
|
36
38
|
<dd>{{ res.message }}</dd>
|
|
39
|
+
<dt>Token Message</dt>
|
|
40
|
+
<dd>{{ res.tokenMessage }}</dd>
|
|
37
41
|
</dl>
|
|
38
42
|
</div>
|
|
39
43
|
</div>
|
package/modules/core/core.js
CHANGED
|
@@ -13,6 +13,11 @@ exports.settingSchema = {
|
|
|
13
13
|
type: 'string',
|
|
14
14
|
description: 'JWT expires after - expressed in seconds or a string describing a time span eg 60, "2 days", "10h", "7d", if undefined tokens wont expire'
|
|
15
15
|
},
|
|
16
|
+
jwt_expire_on_password_change: {
|
|
17
|
+
description: 'Whether to expire jwt on password change. Defaults to true',
|
|
18
|
+
type: 'boolean',
|
|
19
|
+
default: true,
|
|
20
|
+
},
|
|
16
21
|
postgresql_uri: {
|
|
17
22
|
type: 'string',
|
|
18
23
|
description: 'The full path to your postgres database. E.g. postgres://username:password@host/db'
|
package/package.json
CHANGED
package/test/0-install.js
CHANGED
|
@@ -24,6 +24,7 @@ describe('install flow', function () {
|
|
|
24
24
|
modules: ['collections', 'core', 'logging', 'permissions'],
|
|
25
25
|
settings: {
|
|
26
26
|
jwt_secret: 'testing 123',
|
|
27
|
+
jwt_expire_on_password_change: true,
|
|
27
28
|
mongodb_uri: 'mongodb://localhost:27017/test',
|
|
28
29
|
postgresql_uri: 'postgresql://postgres:expressa@localhost/pgtest',
|
|
29
30
|
enforce_permissions: true,
|
package/test/users.js
CHANGED
|
@@ -18,7 +18,7 @@ const invalidEmailUser = {
|
|
|
18
18
|
password: 'test'
|
|
19
19
|
}
|
|
20
20
|
describe('user functionality', function () {
|
|
21
|
-
let validId
|
|
21
|
+
let validId, userToken
|
|
22
22
|
|
|
23
23
|
it('can signup', async function () {
|
|
24
24
|
const res = await request(app)
|
|
@@ -34,6 +34,7 @@ describe('user functionality', function () {
|
|
|
34
34
|
.send(validUser)
|
|
35
35
|
.expect(200)
|
|
36
36
|
expect(res.body.uid).to.equal(validId)
|
|
37
|
+
userToken = res.body.token
|
|
37
38
|
})
|
|
38
39
|
|
|
39
40
|
it('rejects unknown email', async function () {
|
|
@@ -66,6 +67,41 @@ describe('user functionality', function () {
|
|
|
66
67
|
.expect(409)
|
|
67
68
|
})
|
|
68
69
|
|
|
70
|
+
it ('new token required after password change', async function () {
|
|
71
|
+
|
|
72
|
+
validUser.password = '123test'
|
|
73
|
+
|
|
74
|
+
await request(app)
|
|
75
|
+
.post(`/users/${validId}/update`)
|
|
76
|
+
.set('x-access-token', userToken)
|
|
77
|
+
.send({ $set: { password: validUser.password } })
|
|
78
|
+
.expect(200)
|
|
79
|
+
|
|
80
|
+
const res = await request(app)
|
|
81
|
+
.get('/users/me')
|
|
82
|
+
.set('x-access-token', userToken)
|
|
83
|
+
.expect(404)
|
|
84
|
+
|
|
85
|
+
expect(res.body.error).to.exist
|
|
86
|
+
expect(res.body.tokenError).to.equal('expired token')
|
|
87
|
+
|
|
88
|
+
const res2 = await request(app)
|
|
89
|
+
.post('/users/login')
|
|
90
|
+
.send(validUser)
|
|
91
|
+
.expect(200)
|
|
92
|
+
|
|
93
|
+
expect(res2.body.uid).to.equal(validId)
|
|
94
|
+
userToken = res2.body.token
|
|
95
|
+
|
|
96
|
+
const res3 = await request(app)
|
|
97
|
+
.get('/users/me')
|
|
98
|
+
.set('x-access-token', userToken)
|
|
99
|
+
.expect(200)
|
|
100
|
+
|
|
101
|
+
expect(res3.body.error).to.not.exist
|
|
102
|
+
expect(res3.body.tokenError).to.not.exist
|
|
103
|
+
})
|
|
104
|
+
|
|
69
105
|
let user
|
|
70
106
|
it('get my user', async function () {
|
|
71
107
|
const token = await testutils.getUserWithPermissions(api, 'users: view own')
|
package/util.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
const randomstring = require('randomstring')
|
|
2
|
-
const jwt = require('jsonwebtoken')
|
|
3
2
|
const {v4} = require('uuid')
|
|
4
3
|
const debug = require('debug')('expressa')
|
|
5
4
|
const crypto = require('crypto')
|
|
@@ -172,11 +171,17 @@ exports.getUserWithPermissions = async function (api, permissions) {
|
|
|
172
171
|
})
|
|
173
172
|
const randId = randomstring.generate(12)
|
|
174
173
|
const roleName = 'role' + randId
|
|
174
|
+
const now = new Date().toISOString()
|
|
175
175
|
const user = {
|
|
176
176
|
email: 'test' + randId + '@example.com',
|
|
177
177
|
password: '123',
|
|
178
178
|
collection: 'users',
|
|
179
|
-
roles: [roleName]
|
|
179
|
+
roles: [roleName],
|
|
180
|
+
meta: {
|
|
181
|
+
created: now,
|
|
182
|
+
updated: now,
|
|
183
|
+
password_last_updated_at: now,
|
|
184
|
+
}
|
|
180
185
|
}
|
|
181
186
|
await api.db.role.cache.create({
|
|
182
187
|
_id: roleName,
|
|
@@ -184,8 +189,13 @@ exports.getUserWithPermissions = async function (api, permissions) {
|
|
|
184
189
|
})
|
|
185
190
|
const result = await api.db.users.create(user)
|
|
186
191
|
user._id = result
|
|
187
|
-
const
|
|
188
|
-
|
|
192
|
+
const payload = api.util.doLogin({
|
|
193
|
+
id: user._id,
|
|
194
|
+
collection: 'users',
|
|
195
|
+
timestamp: user.meta.password_last_updated_at,
|
|
196
|
+
jwt_secret: api.settings.jwt_secret,
|
|
197
|
+
})
|
|
198
|
+
return payload.token
|
|
189
199
|
}
|
|
190
200
|
|
|
191
201
|
const severities = ['critical', 'error', 'warning', 'notice', 'info', 'debug']
|
|
@@ -211,8 +221,6 @@ function filterHeaders(req) {
|
|
|
211
221
|
'user-agent': headers['user-agent'],
|
|
212
222
|
origin: headers['origin'],
|
|
213
223
|
referer: headers['referer'],
|
|
214
|
-
'x-access-token': req.headers['x-access-token'] ?
|
|
215
|
-
req.headers['x-access-token'].substring(0, 8) + '...' : ''
|
|
216
224
|
}
|
|
217
225
|
}
|
|
218
226
|
|
|
@@ -220,7 +228,8 @@ exports.createLogEntry = function (req, res) {
|
|
|
220
228
|
const severity = exports.getLogSeverity(res.statusCode)
|
|
221
229
|
return {
|
|
222
230
|
severity: severity,
|
|
223
|
-
user: req.
|
|
231
|
+
user: req.uid,
|
|
232
|
+
user_collection: req.ucollection,
|
|
224
233
|
url: decodeURI(req.originalUrl || req.url),
|
|
225
234
|
method: req.method,
|
|
226
235
|
referer: req.headers['referer'],
|
|
@@ -232,7 +241,8 @@ exports.createLogEntry = function (req, res) {
|
|
|
232
241
|
statusCode: res.statusCode,
|
|
233
242
|
requestId: res.getHeader('x-request-id'),
|
|
234
243
|
headers: res.getHeaders(),
|
|
235
|
-
message: req.returnedError ? req.returnedError.message : undefined,
|
|
244
|
+
message: req.returnedError ? req.returnedError.result || req.returnedError.message : undefined,
|
|
245
|
+
tokenMessage: req.uerror,
|
|
236
246
|
},
|
|
237
247
|
meta: {
|
|
238
248
|
created: new Date().toISOString(),
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.dashboard-container[data-v-5d163182]{margin:30px}.dashboard-text[data-v-5d163182]{font-size:30px;line-height:46px}a#settings-link[data-v-5d163182]{color:#35a;padding-left:25px}
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.side-panel[data-v-e0156982]{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.el-table[data-v-1b5bf4c5] th{background-color:#343a40!important;border-color:#454d55;color:#fff}
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([["chunk-1dff"],{"GxU+":function(t,e,n){"use strict";var s=n("fn8H");n.n(s).a},LYKQ:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var s=d(n("14Xm")),a=d(n("D3Ub")),r=d(n("QbLZ")),u=n("L2JU"),o=d(n("t3Un")),i=d(n("VqTb"));function d(t){return t&&t.__esModule?t:{default:t}}e.default={name:"Dashboard",components:{ListDocuments2:i.default},data:function(){return{statusInfo:{listeners:{}}}},computed:(0,r.default)({},(0,u.mapGetters)(["email","roles"])),mounted:function(){this.update()},methods:{update:function(){var t=this;return(0,a.default)(s.default.mark((function e(){return s.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,o.default)({url:"/status/"});case 2:t.statusInfo=e.sent.data;case 3:case"end":return e.stop()}}),e,t)})))()}}}},Qxpe:function(t,e,n){"use strict";n.d(e,"a",(function(){return s})),n.d(e,"b",(function(){return a}));var s=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"dashboard-container"},[n("div",{staticClass:"dashboard-text"},[t._v("\n Welcome: "+t._s(t.email)+"\n ")]),t._v(" "),n("div",{staticClass:"dashboard-text"},[t._v("\n roles: "),t._l(t.roles,(function(e){return n("span",{key:e},[t._v(t._s(e))])}))],2),t._v(" "),n("div",{staticClass:"dashboard-text"},[t._v("\n listeners: "+t._s(t.statusInfo.listeners.length)+" active\n ")]),t._v(" "),n("br"),t._v(" "),n("div",{staticClass:"dashboard-text"},[t._v("\n uptime: "+t._s(t.statusInfo.uptime)+"\n ")]),t._v(" "),n("div",{staticClass:"dashboard-text"},[t._v("\n Node.js version: "+t._s(t.statusInfo.nodeVersion)+"\n ")]),t._v(" "),n("div",{staticClass:"dashboard-text"},[t._v("\n environment: "+t._s(t.statusInfo.env)+"\n "),n("router-link",{attrs:{id:"settings-link",to:"/edit/settings/"+t.statusInfo.env}},[t._v("\n (edit settings)\n ")])],1),t._v(" "),n("br"),t._v(" "),n("br"),t._v(" "),n("h3",[t._v("Recent API Requests")]),t._v(" "),n("ListDocuments2",{attrs:{"show-paginate-on-bottom":!1,"show-add-button":!1,filter:{limit:5,query:{method:{$ne:"OPTIONS"}}},columns:["method","url","user","res.message","res.statusCode"],"collection-name":"requestlog"}})],1)},a=[]},"etR+":function(t,e,n){"use strict";n.r(e);var s=n("LYKQ"),a=n.n(s);for(var r in s)["default"].indexOf(r)<0&&function(t){n.d(e,t,(function(){return s[t]}))}(r);e.default=a.a},fn8H:function(t,e,n){},"u1G+":function(t,e,n){"use strict";n.r(e);var s=n("Qxpe"),a=n("etR+");for(var r in a)["default"].indexOf(r)<0&&function(t){n.d(e,t,(function(){return a[t]}))}(r);n("GxU+");var u=n("KHd+"),o=Object(u.a)(a.default,s.a,s.b,!1,null,"5d163182",null);o.options.__file="Home.vue",e.default=o.exports}}]);
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([["chunk-3bc2"],{"13QN":function(e,t,s){"use strict";s.r(t);var n=s("X9YS"),r=s.n(n);for(var d in n)["default"].indexOf(d)<0&&function(e){s.d(t,e,(function(){return n[e]}))}(d);t.default=r.a},"5ZCy":function(e,t,s){"use strict";s.d(t,"a",(function(){return n})),s.d(t,"b",(function(){return r}));var n=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"app-container",staticStyle:{display:"flex",width:"100%"}},[s("div",{staticClass:"side-panel"},[s("h2",[e._v("Request")]),e._v(" "),s("p",[e._v("\n "+e._s(e.log.method)+" "+e._s(e.log.url)+"\n ")]),e._v(" "),s("dl",[s("dt",[e._v("Request Time")]),e._v(" "),s("dd",[e._v(e._s(e.log.meta.created))]),e._v(" "),s("dt",[e._v("IP")]),e._v(" "),s("dd",[e._v(e._s(e.req.ip))]),e._v(" "),s("dt",[e._v("Access token")]),e._v(" "),s("dd",[e._v(e._s(e.req.headers.x-e.access-e.token))]),e._v(" "),s("dt",[e._v("User-Agent")]),e._v(" "),s("dd",[e._v(e._s(e.req.headers.user-e.agent))]),e._v(" "),s("dt",[e._v("Referrer")]),e._v(" "),s("dd",[e._v(e._s(e.req.headers.referer))]),e._v(" "),s("dt",[e._v("Origin")]),e._v(" "),s("dd",[e._v(e._s(e.req.headers.origin))])])]),e._v(" "),s("div",{staticClass:"side-panel"},[s("h2",[e._v("Response")]),e._v(" "),s("dl",[s("dt",[e._v("ID")]),e._v(" "),s("dd",[e._v(e._s(e.res.requestId))]),e._v(" "),s("dt",[e._v("Response Time")]),e._v(" "),s("dd",[e._v(e._s(e.log.meta.created))]),e._v(" "),s("dt",[e._v("Status Code")]),e._v(" "),s("dd",[e._v(e._s(e.res.statusCode))]),e._v(" "),s("dt",[e._v("Content-Length")]),e._v(" "),s("dd",[e._v(e._s(e.res.headers["content-length"])+" bytes")]),e._v(" "),s("dt",[e._v("Message")]),e._v(" "),s("dd",[e._v(e._s(e.res.message))])])])])},r=[]},X9YS:function(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=a(s("14Xm")),r=a(s("D3Ub")),d=a(s("t3Un"));function a(e){return e&&e.__esModule?e:{default:e}}t.default={name:"ViewRequest",data:function(){return{log:{},req:{},res:{}}},mounted:function(){this.update()},methods:{update:function(){var e=this;return(0,r.default)(n.default.mark((function t(){var s,r;return n.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return s=e.$route.params.requestId,console.log("id"),console.log(s),t.next=5,(0,d.default)({url:"/requestlog/"+s});case 5:r=t.sent.data,e.log=r,e.req=r.req,e.res=r.res;case 9:case"end":return t.stop()}}),t,e)})))()}}}},dWyy:function(e,t,s){"use strict";var n=s("p2RV");s.n(n).a},o4XF:function(e,t,s){"use strict";s.r(t);var n=s("5ZCy"),r=s("13QN");for(var d in r)["default"].indexOf(d)<0&&function(e){s.d(t,e,(function(){return r[e]}))}(d);s("dWyy");var a=s("KHd+"),u=Object(a.a)(r.default,n.a,n.b,!1,null,"e0156982",null);u.options.__file="ViewRequest.vue",t.default=u.exports},p2RV:function(e,t,s){}}]);
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([["chunk-5cee"],{"43z2":function(e,n,t){},"7mIn":function(e,n,t){"use strict";var r=t("43z2");t.n(r).a},Yfch:function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.isvalidUsername=function(e){return!0},n.validateURL=function(e){return/^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/.test(e)},n.validateLowerCase=function(e){return/^[a-z]+$/.test(e)},n.validateUpperCase=function(e){return/^[A-Z]+$/.test(e)},n.validatAlphabets=function(e){return/^[A-Za-z]+$/.test(e)}},a8Yk:function(e,n,t){"use strict";t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return o}));var r=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("div",{staticClass:"login-container"},[t("el-form",{ref:"loginForm",staticClass:"login-form",attrs:{model:e.loginForm,rules:e.loginRules,"auto-complete":"on","label-position":"left"}},[t("h3",{staticClass:"title"},[e._v("\n Expressa Admin\n ")]),e._v(" "),t("el-form-item",{attrs:{prop:"username"}},[t("span",{staticClass:"svg-container"},[t("svg-icon",{attrs:{"icon-class":"user"}})],1),e._v(" "),t("el-input",{attrs:{name:"username",type:"text","auto-complete":"on",placeholder:"username"},model:{value:e.loginForm.username,callback:function(n){e.$set(e.loginForm,"username",n)},expression:"loginForm.username"}})],1),e._v(" "),t("el-form-item",{attrs:{prop:"password"}},[t("span",{staticClass:"svg-container"},[t("svg-icon",{attrs:{"icon-class":"password"}})],1),e._v(" "),t("el-input",{attrs:{type:e.pwdType,name:"password","auto-complete":"on",placeholder:"password"},nativeOn:{keyup:function(n){return!("button"in n)&&e._k(n.keyCode,"enter",13,n.key,"Enter")?null:e.handleLogin(n)}},model:{value:e.loginForm.password,callback:function(n){e.$set(e.loginForm,"password",n)},expression:"loginForm.password"}}),e._v(" "),t("span",{staticClass:"show-pwd",on:{click:e.showPwd}},[t("svg-icon",{attrs:{"icon-class":"eye"}})],1)],1),e._v(" "),t("el-form-item",[t("el-button",{staticStyle:{width:"100%"},attrs:{loading:e.loading,type:"primary"},nativeOn:{click:function(n){return n.preventDefault(),e.handleLogin(n)}}},[e._v("\n Sign in\n ")])],1)],1)],1)},o=[]},c11S:function(e,n,t){"use strict";var r=t("gTgX");t.n(r).a},gTgX:function(e,n,t){},mYxE:function(e,n,t){"use strict";t.r(n);var r=t("tB1V"),o=t.n(r);for(var a in r)["default"].indexOf(a)<0&&function(e){t.d(n,e,(function(){return r[e]}))}(a);n.default=o.a},ntYl:function(e,n,t){"use strict";t.r(n);var r=t("a8Yk"),o=t("mYxE");for(var a in o)["default"].indexOf(a)<0&&function(e){t.d(n,e,(function(){return o[e]}))}(a);t("c11S"),t("7mIn");var i=t("KHd+"),s=Object(i.a)(o.default,r.a,r.b,!1,null,"f6d732ac",null);s.options.__file="index.vue",n.default=s.exports},tB1V:function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r=t("Yfch");n.default={name:"Login",data:function(){return{loginForm:{username:"",password:""},loginRules:{username:[{required:!0,trigger:"blur",validator:function(e,n,t){(0,r.isvalidUsername)(n)?t():t(new Error("bad username"))}}],password:[{required:!0,trigger:"blur",validator:function(e,n,t){n.length<2?t(new Error("bad password")):t()}}]},loading:!1,pwdType:"password",redirect:void 0}},watch:{$route:{handler:function(e){this.redirect=e.query&&e.query.redirect},immediate:!0}},methods:{showPwd:function(){"password"===this.pwdType?this.pwdType="":this.pwdType="password"},handleLogin:function(){var e=this;this.$refs.loginForm.validate((function(n){if(!n)return console.log("error submit!!"),!1;e.loading=!0,e.$store.dispatch("Login",e.loginForm).then((function(){e.loading=!1,e.$router.push({path:e.redirect||"/"})})).catch((function(){e.loading=!1}))}))}}}}}]);
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([["chunk-f691"],{"+WSI":function(e,t,n){var r=n("/r8T");e.exports=function(e,t){return new(r(e))(t)}},"/r8T":function(e,t,n){var r=n("ekG2"),o=n("Trx6"),i=n("zBWt")("species");e.exports=function(e){var t;return o(e)&&("function"!=typeof(t=e.constructor)||t!==Array&&!o(t.prototype)||(t=void 0),r(t)&&null===(t=t[i])&&(t=void 0)),void 0===t?Array:t}},"1GvH":function(e,t,n){n("5w6Y"),e.exports=n("VSTI").Object.keys},"1i29":function(e,t,n){"use strict";var r=n("USwo"),o=n("FgkJ"),i=n("nAx8"),a=n("wlNh");e.exports=function(e){r(r.S,e,{from:function(e){var t,n,r,u,s=arguments[1];return o(this),(t=void 0!==s)&&o(s),null==e?new this:(n=[],t?(r=0,u=i(s,arguments[2],2),a(e,!1,(function(e){n.push(u(e,r++))}))):a(e,!1,n.push,n),new this(n))}})}},"5w6Y":function(e,t,n){var r=n("CYMq"),o=n("mHY4");n("czaS")("keys",(function(){return function(e){return o(r(e))}}))},AjXP:function(e,t,n){var r=n("wlNh");e.exports=function(e,t){var n=[];return r(e,!1,n.push,n,t),n}},FyfS:function(e,t,n){e.exports={default:n("fUKC"),__esModule:!0}},GQeE:function(e,t,n){e.exports={default:n("1GvH"),__esModule:!0}},Huux:function(e,t,n){n("PJ8w")("Set")},Iab2:function(e,t,n){(function(n){var r,o,i;o=[],void 0===(i="function"==typeof(r=function(){"use strict";function t(e,t,n){var r=new XMLHttpRequest;r.open("GET",e),r.responseType="blob",r.onload=function(){u(r.response,t,n)},r.onerror=function(){console.error("could not download file")},r.send()}function r(e){var t=new XMLHttpRequest;t.open("HEAD",e,!1);try{t.send()}catch(e){}return 200<=t.status&&299>=t.status}function o(e){try{e.dispatchEvent(new MouseEvent("click"))}catch(n){var t=document.createEvent("MouseEvents");t.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),e.dispatchEvent(t)}}var i="object"==typeof window&&window.window===window?window:"object"==typeof self&&self.self===self?self:"object"==typeof n&&n.global===n?n:void 0,a=i.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),u=i.saveAs||("object"!=typeof window||window!==i?function(){}:"download"in HTMLAnchorElement.prototype&&!a?function(e,n,a){var u=i.URL||i.webkitURL,s=document.createElement("a");n=n||e.name||"download",s.download=n,s.rel="noopener","string"==typeof e?(s.href=e,s.origin===location.origin?o(s):r(s.href)?t(e,n,a):o(s,s.target="_blank")):(s.href=u.createObjectURL(e),setTimeout((function(){u.revokeObjectURL(s.href)}),4e4),setTimeout((function(){o(s)}),0))}:"msSaveOrOpenBlob"in navigator?function(e,n,i){if(n=n||e.name||"download","string"!=typeof e)navigator.msSaveOrOpenBlob(function(e,t){return void 0===t?t={autoBom:!1}:"object"!=typeof t&&(console.warn("Deprecated: Expected third argument to be a object"),t={autoBom:!t}),t.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob(["\ufeff",e],{type:e.type}):e}(e,i),n);else if(r(e))t(e,n,i);else{var a=document.createElement("a");a.href=e,a.target="_blank",setTimeout((function(){o(a)}))}}:function(e,n,r,o){if((o=o||open("","_blank"))&&(o.document.title=o.document.body.innerText="downloading..."),"string"==typeof e)return t(e,n,r);var u="application/octet-stream"===e.type,s=/constructor/i.test(i.HTMLElement)||i.safari,c=/CriOS\/[\d]+/.test(navigator.userAgent);if((c||u&&s||a)&&"undefined"!=typeof FileReader){var l=new FileReader;l.onloadend=function(){var e=l.result;e=c?e:e.replace(/^data:[^;]*;/,"data:attachment/file;"),o?o.location.href=e:location=e,o=null},l.readAsDataURL(e)}else{var f=i.URL||i.webkitURL,d=f.createObjectURL(e);o?o.location=d:location.href=d,o=null,setTimeout((function(){f.revokeObjectURL(d)}),4e4)}});i.saveAs=u.saveAs=u,e.exports=u})?r.apply(t,o):r)||(e.exports=i)}).call(this,n("yLpj"))},JAUQ:function(e,t,n){var r=n("ekG2");e.exports=function(e,t){if(!r(e)||e._t!==t)throw TypeError("Incompatible receiver, "+t+" required!");return e}},KtlF:function(e,t,n){var r=n("aqg2"),o=n("AjXP");e.exports=function(e){return function(){if(r(this)!=e)throw TypeError(e+"#toJSON isn't generic");return o(this)}}},Li4W:function(e,t,n){n("1i29")("Set")},"M+fh":function(e,t,n){"use strict";var r=n("7whZ"),o=n("USwo"),i=n("40oJ"),a=n("S4vA"),u=n("BRsN"),s=n("iZ5/"),c=n("wlNh"),l=n("ukM9"),f=n("ekG2"),d=n("kvAF"),p=n("GhSp").f,h=n("rNHk")(0),v=n("C61u");e.exports=function(e,t,n,g,m,y){var b=r[e],w=b,_=m?"set":"add",S=w&&w.prototype,x={};return v&&"function"==typeof w&&(y||S.forEach&&!a((function(){(new w).entries().next()})))?(w=t((function(t,n){l(t,w,e,"_c"),t._c=new b,null!=n&&c(n,m,t[_],t)})),h("add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON".split(","),(function(e){var t="add"==e||"set"==e;!(e in S)||y&&"clear"==e||u(w.prototype,e,(function(n,r){if(l(this,w,e),!t&&y&&!f(n))return"get"==e&&void 0;var o=this._c[e](0===n?0:n,r);return t?this:o}))})),y||p(w.prototype,"size",{get:function(){return this._c.size}})):(w=g.getConstructor(t,e,m,_),s(w.prototype,n),i.NEED=!0),d(w,e),x[e]=w,o(o.G+o.W+o.F,x),y||g.setStrong(w,e,m),w}},N4c9:function(e,t,n){n("wYM1");var r=n("VSTI").Object;e.exports=function(e,t,n){return r.defineProperty(e,t,n)}},PJ8w:function(e,t,n){"use strict";var r=n("USwo");e.exports=function(e){r(r.S,e,{of:function(){for(var e=arguments.length,t=new Array(e);e--;)t[e]=arguments[e];return new this(t)}})}},PUWY:function(e,t,n){},PfQu:function(e,t,n){"use strict";var r=n("rdj4"),o=n("JAUQ");e.exports=n("M+fh")("Set",(function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}}),{add:function(e){return r.def(o(this,"Set"),e=0===e?0:e,e)}},r)},SEkw:function(e,t,n){e.exports={default:n("N4c9"),__esModule:!0}},VqTb:function(e,t,n){"use strict";n.r(t);var r=n("W9yq"),o=n("sw1Y");for(var i in o)["default"].indexOf(i)<0&&function(e){n.d(t,e,(function(){return o[e]}))}(i);n("dVlF");var a=n("KHd+"),u=Object(a.a)(o.default,r.a,r.b,!1,null,"1b5bf4c5",null);u.options.__file="ListDocuments2.vue",t.default=u.exports},W9yq:function(e,t,n){"use strict";n.d(t,"a",(function(){return r})),n.d(t,"b",(function(){return o}));var r=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"px-3"},[n("div",{staticClass:"d-flex align-items-center py-2"},[n("h3",{staticClass:"mb-0 text-capitalize"},[e._v("\n "+e._s(e.collectionName)+"\n ")]),e._v(" "),n("span",{staticClass:"mx-auto"}),e._v(" "),n("el-dropdown",{staticClass:"mr-4",attrs:{multiple:"","hide-on-click":!1}},[n("span",{staticClass:"el-dropdown-link"},[e._v("\n Select columns\n "),n("i",{staticClass:"el-icon-arrow-down el-icon--right"})]),e._v(" "),n("el-dropdown-menu",{staticStyle:{"max-height":"300px",overflow:"auto"},attrs:{slot:"dropdown"},slot:"dropdown"},[n("el-checkbox-group",{on:{input:e.update},model:{value:e.selectedColumns,callback:function(t){e.selectedColumns=t},expression:"selectedColumns"}},e._l(e.allPossibleColumns,(function(t){return n("el-dropdown-item",{key:t,attrs:{label:t,value:t}},[n("el-checkbox",{staticClass:"mb-0 mr-4",attrs:{label:t,disabled:1===e.selectedColumns.length&&e.selectedColumns[0]===t}})],1)})))],1)],1),e._v(" "),n("el-checkbox",{staticClass:"mb-0 mr-4",model:{value:e.isFiltersVisible,callback:function(t){e.isFiltersVisible=t},expression:"isFiltersVisible"}},[e._v("\n Show Filters\n ")]),e._v(" "),n("el-pagination",{attrs:{"page-size":e.pageSize,total:e.count,"page-sizes":e.pageSizes,"current-page":e.page,layout:"sizes, prev, pager, next"},on:{"update:currentPage":function(t){e.page=t},"current-change":function(t){e.update()},"size-change":function(t){e.pageSize=t,e.update()}}})],1),e._v(" "),n("el-table",{attrs:{data:e.tableRows,"element-loading-text":"Loading",border:"",fit:"","highlight-current-row":""},on:{"sort-change":e.handleSortChange}},e._l(e.selectedColumns,(function(t,r){return n("el-table-column",{key:t,attrs:{label:t,prop:t,align:"center",sortable:e.sortableFieldTypes.includes(e.getFieldType(t))?"custom":void 0},scopedSlots:e._u([{key:"default",fn:function(o){return[0===o.$index&&e.isFiltersVisible?n("div",{staticClass:"text-left"},[n("el-input",{attrs:{placeholder:"Search by "+t,type:"number"===e.getFieldType(t)?"number":"text"},on:{change:function(t){e.update()}},model:{value:e.searchFilters[t],callback:function(n){e.$set(e.searchFilters,t,n)},expression:"searchFilters[name]"}}),e._v(" "),n("el-checkbox",{staticClass:"mt-3",attrs:{disabled:"number"===e.getFieldType(t)},on:{change:function(t){e.update()}},model:{value:e.exactSearches[t],callback:function(n){e.$set(e.exactSearches,t,n)},expression:"exactSearches[name]"}},[e._v("\n Exact match\n ")])],1):[0===r&&"requestlog"!==e.collectionName?n("router-link",{attrs:{to:"/edit/"+e.collectionName+"/"+o.row._id}},[e._v("\n "+e._s(e.getPath(o.row,t))+"\n ")]):e._e(),e._v(" "),0===r&&"requestlog"===e.collectionName?n("router-link",{attrs:{to:"/dev/viewrequest/"+o.row._id}},[e._v("\n "+e._s(e.getPath(o.row,t))+"\n ")]):e._e(),e._v(" "),0!==r?n("span",[e._v(e._s(e.getPath(o.row,t)))]):e._e()]]}}])})}))),e._v(" "),n("div",{staticClass:"d-flex align-items-center my-3"},[e.showAddButton?n("router-link",{staticClass:"mr-2",attrs:{to:"/edit/"+e.collectionName+"/create"}},[n("button",{staticClass:"btn btn-primary"},[e._v("\n Add\n ")])]):e._e(),e._v(" "),n("button",{staticClass:"btn btn-secondary download-button mr-2",on:{click:function(t){e.downloadCSV()}}},[e._v("\n Download\n ")]),e._v(" "),n("button",{staticClass:"btn btn-secondary download-button",on:{click:function(t){e.downloadAllCSV()}}},[e._v("\n Download All\n ")]),e._v(" "),n("span",{staticClass:"mx-auto"}),e._v(" "),n("el-pagination",{attrs:{"page-size":e.pageSize,total:e.count,"page-sizes":e.pageSizes,"current-page":e.page,layout:"sizes, prev, pager, next"},on:{"update:currentPage":function(t){e.page=t},"current-change":function(t){e.update()},"size-change":function(t){e.pageSize=t,e.update()}}})],1)],1)},o=[]},YEIV:function(e,t,n){"use strict";t.__esModule=!0;var r,o=n("SEkw"),i=(r=o)&&r.__esModule?r:{default:r};t.default=function(e,t,n){return t in e?(0,i.default)(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},boci:function(e,t,n){var r,o,i;!function(n,a){"use strict";"object"==typeof e.exports?e.exports=a():(o=[],void 0===(i="function"==typeof(r=a)?r.apply(t,o):r)||(e.exports=i))}(0,(function(){"use strict";var e=Object.prototype.toString;function t(e,t){return null!=e&&Object.prototype.hasOwnProperty.call(e,t)}function n(e){if(!e)return!0;if(o(e)&&0===e.length)return!0;if("string"!=typeof e){for(var n in e)if(t(e,n))return!1;return!0}return!1}function r(t){return e.call(t)}var o=Array.isArray||function(t){return"[object Array]"===e.call(t)};function i(e){var t=parseInt(e);return t.toString()===e?t:e}function a(e){var a,u,s=function(e){return Object.keys(s).reduce((function(t,n){return"create"===n||"function"==typeof s[n]&&(t[n]=s[n].bind(s,e)),t}),{})};function c(e,t){if(a(e,t))return e[t]}function l(e,t,n,r){if("number"==typeof t&&(t=[t]),!t||0===t.length)return e;if("string"==typeof t)return l(e,t.split(".").map(i),n,r);var o=t[0],a=u(e,o);return 1===t.length?(void 0!==a&&r||(e[o]=n),a):(void 0===a&&("number"==typeof t[1]?e[o]=[]:e[o]={}),l(e[o],t.slice(1),n,r))}return a=(e=e||{}).includeInheritedProps?function(){return!0}:function(e,n){return"number"==typeof n&&Array.isArray(e)||t(e,n)},u=e.includeInheritedProps?function(e,t){"string"!=typeof t&&"number"!=typeof t&&(t=String(t));var n=c(e,t);if("__proto__"===t||"prototype"===t||"constructor"===t&&"function"==typeof n)throw new Error("For security reasons, object's magic properties cannot be set");return n}:function(e,t){return c(e,t)},s.has=function(n,r){if("number"==typeof r?r=[r]:"string"==typeof r&&(r=r.split(".")),!r||0===r.length)return!!n;for(var a=0;a<r.length;a++){var u=i(r[a]);if(!("number"==typeof u&&o(n)&&u<n.length||(e.includeInheritedProps?u in Object(n):t(n,u))))return!1;n=n[u]}return!0},s.ensureExists=function(e,t,n){return l(e,t,n,!0)},s.set=function(e,t,n,r){return l(e,t,n,r)},s.insert=function(e,t,n,r){var i=s.get(e,t);r=~~r,o(i)||(i=[],s.set(e,t,i)),i.splice(r,0,n)},s.empty=function(e,t){var i,u;if(!n(t)&&(null!=e&&(i=s.get(e,t)))){if("string"==typeof i)return s.set(e,t,"");if(function(e){return"boolean"==typeof e||"[object Boolean]"===r(e)}(i))return s.set(e,t,!1);if("number"==typeof i)return s.set(e,t,0);if(o(i))i.length=0;else{if(!function(e){return"object"==typeof e&&"[object Object]"===r(e)}(i))return s.set(e,t,null);for(u in i)a(i,u)&&delete i[u]}}},s.push=function(e,t){var n=s.get(e,t);o(n)||(n=[],s.set(e,t,n)),n.push.apply(n,Array.prototype.slice.call(arguments,2))},s.coalesce=function(e,t,n){for(var r,o=0,i=t.length;o<i;o++)if(void 0!==(r=s.get(e,t[o])))return r;return n},s.get=function(e,t,n){if("number"==typeof t&&(t=[t]),!t||0===t.length)return e;if(null==e)return n;if("string"==typeof t)return s.get(e,t.split("."),n);var r=i(t[0]),o=u(e,r);return void 0===o?n:1===t.length?o:s.get(e[r],t.slice(1),n)},s.del=function(e,t){if("number"==typeof t&&(t=[t]),null==e)return e;if(n(t))return e;if("string"==typeof t)return s.del(e,t.split("."));var r=i(t[0]);return u(e,r),a(e,r)?1!==t.length?s.del(e[r],t.slice(1)):(o(e)?e.splice(r,1):delete e[r],e):e},s}var u=a();return u.create=a,u.withInheritedProps=a({includeInheritedProps:!0}),u}))},czaS:function(e,t,n){var r=n("USwo"),o=n("VSTI"),i=n("S4vA");e.exports=function(e,t){var n=(o.Object||{})[e]||Object[e],a={};a[e]=t(n),r(r.S+r.F*i((function(){n(1)})),"Object",a)}},dVlF:function(e,t,n){"use strict";var r=n("PUWY");n.n(r).a},fUKC:function(e,t,n){n("ZY/g"),n("C5kU"),e.exports=n("sbOA")},iocF:function(e,t,n){var r=n("USwo");r(r.P+r.R,"Set",{toJSON:n("KtlF")("Set")})},jWXv:function(e,t,n){e.exports={default:n("r6fa"),__esModule:!0}},r6fa:function(e,t,n){n("3+Ww"),n("C5kU"),n("ZY/g"),n("PfQu"),n("iocF"),n("Huux"),n("Li4W"),e.exports=n("VSTI").Set},rNHk:function(e,t,n){var r=n("nAx8"),o=n("n7vu"),i=n("CYMq"),a=n("0WpP"),u=n("+WSI");e.exports=function(e,t){var n=1==e,s=2==e,c=3==e,l=4==e,f=6==e,d=5==e||f,p=t||u;return function(t,u,h){for(var v,g,m=i(t),y=o(m),b=r(u,h,3),w=a(y.length),_=0,S=n?p(t,w):s?p(t,0):void 0;w>_;_++)if((d||_ in y)&&(g=b(v=y[_],_,m),e))if(n)S[_]=g;else if(g)switch(e){case 3:return!0;case 5:return v;case 6:return _;case 2:S.push(v)}else if(l)return!1;return f?-1:c||l?l:S}}},rdj4:function(e,t,n){"use strict";var r=n("GhSp").f,o=n("b08l"),i=n("iZ5/"),a=n("nAx8"),u=n("ukM9"),s=n("wlNh"),c=n("OTpG"),l=n("6jRP"),f=n("va3J"),d=n("C61u"),p=n("40oJ").fastKey,h=n("JAUQ"),v=d?"_s":"size",g=function(e,t){var n,r=p(t);if("F"!==r)return e._i[r];for(n=e._f;n;n=n.n)if(n.k==t)return n};e.exports={getConstructor:function(e,t,n,c){var l=e((function(e,r){u(e,l,t,"_i"),e._t=t,e._i=o(null),e._f=void 0,e._l=void 0,e[v]=0,null!=r&&s(r,n,e[c],e)}));return i(l.prototype,{clear:function(){for(var e=h(this,t),n=e._i,r=e._f;r;r=r.n)r.r=!0,r.p&&(r.p=r.p.n=void 0),delete n[r.i];e._f=e._l=void 0,e[v]=0},delete:function(e){var n=h(this,t),r=g(n,e);if(r){var o=r.n,i=r.p;delete n._i[r.i],r.r=!0,i&&(i.n=o),o&&(o.p=i),n._f==r&&(n._f=o),n._l==r&&(n._l=i),n[v]--}return!!r},forEach:function(e){h(this,t);for(var n,r=a(e,arguments.length>1?arguments[1]:void 0,3);n=n?n.n:this._f;)for(r(n.v,n.k,this);n&&n.r;)n=n.p},has:function(e){return!!g(h(this,t),e)}}),d&&r(l.prototype,"size",{get:function(){return h(this,t)[v]}}),l},def:function(e,t,n){var r,o,i=g(e,t);return i?i.v=n:(e._l=i={i:o=p(t,!0),k:t,v:n,p:r=e._l,n:void 0,r:!1},e._f||(e._f=i),r&&(r.n=i),e[v]++,"F"!==o&&(e._i[o]=i)),e},getEntry:g,setStrong:function(e,t,n){c(e,t,(function(e,n){this._t=h(e,t),this._k=n,this._l=void 0}),(function(){for(var e=this._k,t=this._l;t&&t.r;)t=t.p;return this._t&&(this._l=t=t?t.n:this._t._f)?l(0,"keys"==e?t.k:"values"==e?t.v:[t.k,t.v]):(this._t=void 0,l(1))}),n?"entries":"values",!n,!0),f(t)}}},sbOA:function(e,t,n){var r=n("d+lc"),o=n("I90/");e.exports=n("VSTI").getIterator=function(e){var t=o(e);if("function"!=typeof t)throw TypeError(e+" is not iterable!");return r(t.call(e))}},sw1Y:function(e,t,n){"use strict";n.r(t);var r=n("vRIL"),o=n.n(r);for(var i in r)["default"].indexOf(i)<0&&function(e){n.d(t,e,(function(){return r[e]}))}(i);t.default=o.a},vRIL:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=v(n("FyfS")),o=v(n("jWXv")),i=v(n("rfXi")),a=v(n("14Xm")),u=v(n("D3Ub")),s=v(n("YEIV")),c=v(n("QbLZ")),l=v(n("GQeE")),f=v(n("m1cH")),d=v(n("t3Un")),p=v(n("Iab2")),h=v(n("boci"));function v(e){return e&&e.__esModule?e:{default:e}}var g=[25,50,100,500];t.default={name:"ListDocuments",props:{collectionName:{type:String,default:"collection"},filter:{type:Object,default:function(){}},columns:{type:Array,default:function(){}},showAddButton:{type:Boolean,default:!0},showPaginateOnBottom:{type:Boolean,default:!0}},data:function(){return{page:1,count:0,data:[],schema:{},exactSearches:{},searchFilters:{},pageSizes:g,pageSize:g[0],isFiltersVisible:!0,sortableFieldTypes:["number","string","boolean"],orderBy:{order:null,prop:null},selectedColumns:[],allPossibleColumns:[]}},computed:{tableRows:function(){return this.isFiltersVisible?[{}].concat((0,f.default)(this.data)):this.data},appliedSearchFilters:function(){var e=this;return(0,l.default)(this.searchFilters).reduce((function(t,n){var r=e.searchFilters[n],o=e.getFieldType(n);if(!r||"custom"===o)return t;var i=e.getQueryBuilder(o);return(0,c.default)({},t,(0,s.default)({},n,i({fieldName:n,searchKeyword:r})))}),{})},allFilters:function(){var e='{"meta.created":-1}';this.orderBy.prop&&this.orderBy.order&&(e='{"'+this.orderBy.prop+'": '+("descending"===this.orderBy.order?"-1":"1")+"}");var t=(0,c.default)({orderby:e,page:this.page,limit:this.pageSize},this.filter,{query:(0,c.default)({},this.appliedSearchFilters)}),n=this.selectedColumns;return n&&(t.fields=n.reduce((function(e,t){return e[t]=1,e}),{})),t}},watch:{collectionName:{handler:"update"},"$route.params.collectionName":{handler:"resetTable"}},mounted:function(){this.update()},methods:{getPath:function(e,t,n){var r=String.prototype.split.call(t,/[,[\].]+?/).filter(Boolean).reduce((function(e,t){return null!=e?e[t]:e}),e);return void 0===r||r===e?n:r},handleSortChange:function(e){this.orderBy=e,this.update()},update:function(){var e=this;return(0,u.default)(a.default.mark((function t(){var n,r,o;return a.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(e.$route.params.collectionName&&(e.collectionName=e.$route.params.collectionName),e.collection&&e.collection._id===e.collectionName){t.next=6;break}return t.next=4,(0,d.default)({url:"/collection/"+e.collectionName});case 4:e.collection=t.sent.data,e.schema=e.collection.schema;case 6:return e.selectedColumns.length||(n=e.columns||e.collection.admin&&e.collection.admin.columns,e.allPossibleColumns=e.getAllPossibleColumns(),e.selectedColumns=n||(0,l.default)(e.schema.properties)),r=(0,c.default)({},e.allFilters),t.next=10,(0,d.default)({url:"/"+e.collectionName+"/",params:r});case 10:o=t.sent.data,e.count=o.itemsTotal,e.data=e.applyCustomColumnFilter(o.data);case 13:case"end":return t.stop()}}),t,e)})))()},getAllPossibleColumns:function(){var e=this.collection.admin&&this.collection.admin.columns||[],t=this.getSchemaProperties(this.schema);return(0,i.default)(new o.default(e.concat(t).sort()))},getSchemaProperties:function(e,t){var n=this,r=[],o=e.properties;return(0,l.default)(o).forEach((function(e){var i=(t?t+".":"")+e;o[e].properties&&(0,l.default)(o[e].properties).length?r=r.concat(n.getSchemaProperties(o[e],i)):r.push(i)})),r},getSchemaProperty:function(e,t){var n=t.split("."),o=e,i=!0,a=!1,u=void 0;try{for(var s,c=(0,r.default)(n);!(i=(s=c.next()).done);i=!0){var l=s.value;if(!o.properties||!o.properties[l])return;o=o.properties[l]}}catch(e){a=!0,u=e}finally{try{!i&&c.return&&c.return()}finally{if(a)throw u}}return o},applyCustomColumnFilter:function(e){var t=this,n=(0,l.default)(this.searchFilters).filter((function(e){return"custom"===t.getFieldType(e)}));return e.filter((function(e){return n.every((function(n){var r=t.searchFilters[n];if(!r)return!0;var o=e[n].toString();return t.exactSearches[n]?o===r:o.toLowerCase().includes(r.toLowerCase())}))}))},downloadCSV:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.data,n=this.collectionName,r=this.selectedColumns.map((function(e){return'"'+e+'"'})).join(",")+"\n";if(t){r+=t.map((function(t){return e.selectedColumns.map((function(e){return'"'+String(h.default.get(t,e)||"").replace(/"/g,'""')+'"'}))})).join("\n"),console.log(r);var o=new Blob([r],{type:"text/plain;charset=utf-8"});(0,p.default)(o,n+".csv")}},downloadAllCSV:function(){var e=this;return(0,u.default)(a.default.mark((function t(){var n,r,o,i;return a.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:n=[],r=1;case 2:if(!(e.count>n.length)){t.next=11;break}return o=(0,c.default)({},e.allFilters,{page:r,limit:500}),t.next=6,(0,d.default)({url:"/"+e.collectionName+"/",params:o});case 6:i=t.sent.data,n=[].concat((0,f.default)(i.data),(0,f.default)(n)),r+=1,t.next=2;break;case 11:e.downloadCSV(e.applyCustomColumnFilter(n));case 12:case"end":return t.stop()}}),t,e)})))()},getFieldType:function(e){var t=this.getSchemaProperty(this.schema,e);return t&&t.type||"custom"},getQueryBuilder:function(e){return{string:this.getStringSearchQuery,number:function(e){return parseInt(e.searchKeyword)}}[e]||this.getStringSearchQuery},getStringSearchQuery:function(e){var t=e.fieldName,n=e.searchKeyword,r={$regex:n,$options:"i"};return this.exactSearches[t]?n:r},resetTable:function(){this.exactSearches={},this.searchFilters={},this.selectedColumns=[],this.page=0,this.pageSize=g[0],this.data=[],this.count=0}}}},wYM1:function(e,t,n){var r=n("USwo");r(r.S+r.F*!n("C61u"),"Object",{defineProperty:n("GhSp").f})}}]);
|
|
Binary file
|