0.1.3 release candidate 1

This commit is contained in:
Elvanos 2021-03-05 20:08:55 +01:00
parent 0635be823a
commit 3a387b5223
16 changed files with 633 additions and 70 deletions

302
package-lock.json generated
View file

@ -1,6 +1,6 @@
{
"name": "fantasiaarchive",
"version": "0.0.1",
"version": "0.1.3",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@ -1392,6 +1392,40 @@
"integrity": "sha512-i9wbyV4iT+v4KhtHJynUFhH5LiEPvAEgSnwMqPN4hf/8uRe82nDl5qP5agrp2el1h0HzyBpbvHaW7NB0BPrtvA==",
"dev": true
},
"@quasar/quasar-app-extension-qmarkdown": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/@quasar/quasar-app-extension-qmarkdown/-/quasar-app-extension-qmarkdown-1.4.1.tgz",
"integrity": "sha512-npHZRV17OrLVrW/QdC94laxFA2VK27+ya16Rm4v0ApCbkVDC7vUBSKV4bNp0o/FJHRRwaC44JByNrgBF6J03Rw==",
"dev": true,
"requires": {
"@quasar/quasar-ui-qmarkdown": "^1.4.1",
"front-matter": "^4.0.2",
"raw-loader": "^4.0.2",
"ware-loader": "^0.2.4"
}
},
"@quasar/quasar-ui-qmarkdown": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/@quasar/quasar-ui-qmarkdown/-/quasar-ui-qmarkdown-1.4.1.tgz",
"integrity": "sha512-KLVv6nVSzxyvBEeDoJK+ITE6IfTMTdzU9r23KZzNZE23vpLBRzy/OarATCgRz9xkJGv77q39HPWSKUiue79o4w==",
"dev": true,
"requires": {
"markdown-it": "^12.0.4",
"markdown-it-abbr": "^1.0.4",
"markdown-it-container": "^3.0.0",
"markdown-it-deflist": "^2.1.0",
"markdown-it-emoji": "^2.0.0",
"markdown-it-footnote": "^3.0.2",
"markdown-it-imsize": "^2.0.1",
"markdown-it-ins": "^3.0.1",
"markdown-it-mark": "^3.0.1",
"markdown-it-sub": "^1.0.0",
"markdown-it-sup": "^1.0.0",
"markdown-it-task-lists": "^2.1.1",
"markdown-it-toc-and-anchor": "^4.2.0",
"prismjs": "^1.23.0"
}
},
"@sindresorhus/is": {
"version": "0.14.0",
"resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz",
@ -3789,6 +3823,18 @@
"integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==",
"dev": true
},
"clipboard": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.6.tgz",
"integrity": "sha512-g5zbiixBRk/wyKakSwCKd7vQXDjFnAMGHoEyBogG/bw9kTD9GvdAvaoRR1ALcEzt3pVKxZR0pViekPMIS0QyGg==",
"dev": true,
"optional": true,
"requires": {
"good-listener": "^1.2.2",
"select": "^1.1.2",
"tiny-emitter": "^2.0.0"
}
},
"cliui": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
@ -3845,6 +3891,12 @@
}
}
},
"clone": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
"integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=",
"dev": true
},
"clone-buffer": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz",
@ -3859,6 +3911,12 @@
"mimic-response": "^1.0.0"
}
},
"co": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/co/-/co-3.1.0.tgz",
"integrity": "sha1-TqVOpaCJOBUxheFSEMaNkJK8G3g=",
"dev": true
},
"coa": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz",
@ -5249,6 +5307,13 @@
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
},
"delegate": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz",
"integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==",
"dev": true,
"optional": true
},
"depd": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
@ -7776,6 +7841,15 @@
}
}
},
"front-matter": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/front-matter/-/front-matter-4.0.2.tgz",
"integrity": "sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==",
"dev": true,
"requires": {
"js-yaml": "^3.13.1"
}
},
"fs-constants": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
@ -8098,6 +8172,16 @@
"slash": "^3.0.0"
}
},
"good-listener": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz",
"integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=",
"dev": true,
"optional": true,
"requires": {
"delegate": "^3.1.2"
}
},
"got": {
"version": "9.6.0",
"resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz",
@ -9895,6 +9979,15 @@
"immediate": "~3.0.5"
}
},
"linkify-it": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.2.tgz",
"integrity": "sha512-gDBO4aHNZS6coiZCKVhSNh43F9ioIL4JwRjLZPkoLIY4yZFwg264Y5lu2x6rb1Js42Gh6Yqm2f6L2AJcnkzinQ==",
"dev": true,
"requires": {
"uc.micro": "^1.0.1"
}
},
"load-json-file": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
@ -10213,6 +10306,103 @@
"object-visit": "^1.0.0"
}
},
"markdown-it": {
"version": "12.0.4",
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.0.4.tgz",
"integrity": "sha512-34RwOXZT8kyuOJy25oJNJoulO8L0bTHYWXcdZBYZqFnjIy3NgjeoM3FmPXIOFQ26/lSHYMr8oc62B6adxXcb3Q==",
"dev": true,
"requires": {
"argparse": "^2.0.1",
"entities": "~2.1.0",
"linkify-it": "^3.0.1",
"mdurl": "^1.0.1",
"uc.micro": "^1.0.5"
},
"dependencies": {
"argparse": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
"dev": true
}
}
},
"markdown-it-abbr": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/markdown-it-abbr/-/markdown-it-abbr-1.0.4.tgz",
"integrity": "sha1-1mtTZFIcuz3Yqlna37ovtoZcj9g=",
"dev": true
},
"markdown-it-container": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/markdown-it-container/-/markdown-it-container-3.0.0.tgz",
"integrity": "sha512-y6oKTq4BB9OQuY/KLfk/O3ysFhB3IMYoIWhGJEidXt1NQFocFK2sA2t0NYZAMyMShAGL6x5OPIbrmXPIqaN9rw==",
"dev": true
},
"markdown-it-deflist": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/markdown-it-deflist/-/markdown-it-deflist-2.1.0.tgz",
"integrity": "sha512-3OuqoRUlSxJiuQYu0cWTLHNhhq2xtoSFqsZK8plANg91+RJQU1ziQ6lA2LzmFAEes18uPBsHZpcX6We5l76Nzg==",
"dev": true
},
"markdown-it-emoji": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/markdown-it-emoji/-/markdown-it-emoji-2.0.0.tgz",
"integrity": "sha512-39j7/9vP/CPCKbEI44oV8yoPJTpvfeReTn/COgRhSpNrjWF3PfP/JUxxB0hxV6ynOY8KH8Y8aX9NMDdo6z+6YQ==",
"dev": true
},
"markdown-it-footnote": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/markdown-it-footnote/-/markdown-it-footnote-3.0.2.tgz",
"integrity": "sha512-JVW6fCmZWjvMdDQSbOT3nnOQtd9iAXmw7hTSh26+v42BnvXeVyGMDBm5b/EZocMed2MbCAHiTX632vY0FyGB8A==",
"dev": true
},
"markdown-it-imsize": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/markdown-it-imsize/-/markdown-it-imsize-2.0.1.tgz",
"integrity": "sha1-zKBCeQXQUziiR8ucqdloxc3dUXA=",
"dev": true
},
"markdown-it-ins": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/markdown-it-ins/-/markdown-it-ins-3.0.1.tgz",
"integrity": "sha512-32SSfZqSzqyAmmQ4SHvhxbFqSzPDqsZgMHDwxqPzp+v+t8RsmqsBZRG+RfRQskJko9PfKC2/oxyOs4Yg/CfiRw==",
"dev": true
},
"markdown-it-mark": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/markdown-it-mark/-/markdown-it-mark-3.0.1.tgz",
"integrity": "sha512-HyxjAu6BRsdt6Xcv6TKVQnkz/E70TdGXEFHRYBGLncRE9lBFwDNLVtFojKxjJWgJ+5XxUwLaHXy+2sGBbDn+4A==",
"dev": true
},
"markdown-it-sub": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/markdown-it-sub/-/markdown-it-sub-1.0.0.tgz",
"integrity": "sha1-N1/WAm6ufdywEkl/ZBEZXqHjr+g=",
"dev": true
},
"markdown-it-sup": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/markdown-it-sup/-/markdown-it-sup-1.0.0.tgz",
"integrity": "sha1-y5yf+RpSVawI8/09YyhuFd8KH8M=",
"dev": true
},
"markdown-it-task-lists": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/markdown-it-task-lists/-/markdown-it-task-lists-2.1.1.tgz",
"integrity": "sha512-TxFAc76Jnhb2OUu+n3yz9RMu4CwGfaT788br6HhEDlvWfdeJcLUsxk1Hgw2yJio0OXsxv7pyIPmvECY7bMbluA==",
"dev": true
},
"markdown-it-toc-and-anchor": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/markdown-it-toc-and-anchor/-/markdown-it-toc-and-anchor-4.2.0.tgz",
"integrity": "sha512-DusSbKtg8CwZ92ztN7bOojDpP4h0+w7BVOPuA3PHDIaabMsERYpwsazLYSP/UlKedoQjOz21mwlai36TQ04EpA==",
"dev": true,
"requires": {
"clone": "^2.1.0",
"uslug": "^1.0.4"
}
},
"matcher": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz",
@ -10249,6 +10439,12 @@
"integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==",
"dev": true
},
"mdurl": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
"integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=",
"dev": true
},
"media-typer": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
@ -12968,6 +13164,15 @@
"integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==",
"dev": true
},
"prismjs": {
"version": "1.23.0",
"resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.23.0.tgz",
"integrity": "sha512-c29LVsqOaLbBHuIbsTxaKENh1N2EQBOHaWv7gkHN4dgRbxSREqDnDbtFJYdpPauS4YCplMSNCABQ6Eeor69bAA==",
"dev": true,
"requires": {
"clipboard": "^2.0.0"
}
},
"private": {
"version": "0.1.8",
"resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",
@ -13357,6 +13562,40 @@
"unpipe": "1.0.0"
}
},
"raw-loader": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.2.tgz",
"integrity": "sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==",
"dev": true,
"requires": {
"loader-utils": "^2.0.0",
"schema-utils": "^3.0.0"
},
"dependencies": {
"loader-utils": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz",
"integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==",
"dev": true,
"requires": {
"big.js": "^5.2.2",
"emojis-list": "^3.0.0",
"json5": "^2.1.2"
}
},
"schema-utils": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz",
"integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==",
"dev": true,
"requires": {
"@types/json-schema": "^7.0.6",
"ajv": "^6.12.5",
"ajv-keywords": "^3.5.2"
}
}
}
},
"rc": {
"version": "1.2.8",
"resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
@ -14159,6 +14398,13 @@
"ajv-keywords": "^3.5.2"
}
},
"select": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz",
"integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=",
"dev": true,
"optional": true
},
"select-hose": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
@ -14481,6 +14727,12 @@
}
}
},
"sliced": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz",
"integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=",
"dev": true
},
"snapdragon": {
"version": "0.8.2",
"resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
@ -15473,6 +15725,13 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
"tiny-emitter": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz",
"integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==",
"dev": true,
"optional": true
},
"tiptap": {
"version": "1.31.0",
"resolved": "https://registry.npmjs.org/tiptap/-/tiptap-1.31.0.tgz",
@ -15822,6 +16081,12 @@
"integrity": "sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==",
"dev": true
},
"uc.micro": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz",
"integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==",
"dev": true
},
"uglify-js": {
"version": "3.12.3",
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.12.3.tgz",
@ -15911,6 +16176,12 @@
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
"integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
},
"unorm": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/unorm/-/unorm-1.6.0.tgz",
"integrity": "sha512-b2/KCUlYZUeA7JFUuRJZPUtr4gZvBh7tavtv4fvk4+KV9pfGiR6CQAQAWl49ZpR3ts2dk4FYkP7EIgDJoiOLDA==",
"dev": true
},
"unpipe": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
@ -16224,6 +16495,15 @@
"integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
"dev": true
},
"uslug": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/uslug/-/uslug-1.0.4.tgz",
"integrity": "sha1-uaIvCRTgqGFAYz2swwLl9PpFBnc=",
"dev": true,
"requires": {
"unorm": ">= 1.0.0"
}
},
"utf8-byte-length": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz",
@ -16576,6 +16856,16 @@
"resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.4.tgz",
"integrity": "sha512-tOhfEwEzFLJzf6d1ZPkYfGj+FWhIpBux9ppoP3rlclw3Z0BZv3N7b7030Z1kYth+6rDuAsXUFr+d0VE6Ed1ikw=="
},
"ware-loader": {
"version": "0.2.4",
"resolved": "https://registry.npmjs.org/ware-loader/-/ware-loader-0.2.4.tgz",
"integrity": "sha512-UtqeEbNZX2ZDKzfzM/c/zgqQMWIZxTMKi/s5jUQ8OF7ShZ+gz4E7m+H3m7+88DmypQVcG6Ha9Efhfa6iuKFz2g==",
"dev": true,
"requires": {
"loader-utils": "^1.1.0",
"wrapped": "^1.0.1"
}
},
"watchpack": {
"version": "1.7.5",
"resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz",
@ -17897,6 +18187,16 @@
}
}
},
"wrapped": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/wrapped/-/wrapped-1.0.1.tgz",
"integrity": "sha1-x4PZ2Aeyc+mwHoUWgKk4yHyQckI=",
"dev": true,
"requires": {
"co": "3.1.0",
"sliced": "^1.0.1"
}
},
"wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",

View file

@ -37,6 +37,7 @@
},
"devDependencies": {
"@quasar/app": "^2.0.0",
"@quasar/quasar-app-extension-qmarkdown": "^1.4.1",
"@types/lodash": "^4.14.166",
"@types/node": "^10.17.15",
"@types/pouchdb": "^6.4.0",
@ -76,4 +77,4 @@
"npm": ">= 6.13.4",
"yarn": ">= 1.21.1"
}
}
}

View file

@ -1,3 +1,7 @@
{
"qdraggabletree": {}
"qdraggabletree": {},
"@quasar/qmarkdown": {
"import_md": true,
"import_vmd": true
}
}

View file

@ -34,6 +34,18 @@
@trigger-dialog-close="aboutAppDialogClose"
/>
<!-- Changelog dialog -->
<changeLogDialog
:dialog-trigger="changeLogDialogTrigger"
@trigger-dialog-close="changeLogDialogClose"
/>
<!-- Advanced search guide dialog -->
<advancedSearchGuideDialog
:dialog-trigger="advancedSearchGuideDialogTrigger"
@trigger-dialog-close="advancedSearchGuideDialogClose"
/>
<q-btn-group
flat
class="AppControl__buttons"
@ -143,7 +155,7 @@
size='md'
no-caps
>
Help
Help & Info
<q-menu
anchor="bottom left"
class="bg-gunmetal-light"
@ -162,6 +174,30 @@
<q-item-section>Show keybind cheatsheet</q-item-section>
</q-item>
<q-item
@click="advancedSearchGuideAssignUID"
v-close-popup
clickable
active
active-class="bg-gunmetal-light text-cultured"
class="noHigh"
>
<q-item-section>Advanced search guide</q-item-section>
</q-item>
<q-separator dark />
<q-item
@click="changeLogDialogAssignUID"
v-close-popup
clickable
active
active-class="bg-gunmetal-light text-cultured"
class="noHigh"
>
<q-item-section>Changelog</q-item-section>
</q-item>
<q-item
@click="aboutAppDialogAssignUID"
v-close-popup
@ -206,6 +242,8 @@ import keybindCheatsheetDialog from "src/components/dialogs/KeybindCheatsheet.vu
import importProjectCheckDialog from "src/components/dialogs/ImportProjectCheck.vue"
import newProjectCheckDialog from "src/components/dialogs/NewProjectCheck.vue"
import aboutAppDialog from "src/components/dialogs/AboutApp.vue"
import changeLogDialog from "src/components/dialogs/ChangeLog.vue"
import advancedSearchGuideDialog from "src/components/dialogs/AdvancedSearchGuide.vue"
import { retrieveCurrentProjectName, exportProject } from "src/scripts/projectManagement/projectManagent"
@ -216,7 +254,9 @@ import { toggleDevTools } from "src/scripts/utilities/devTools"
keybindCheatsheetDialog,
importProjectCheckDialog,
newProjectCheckDialog,
aboutAppDialog
aboutAppDialog,
changeLogDialog,
advancedSearchGuideDialog
}
})
export default class AppControl extends BaseClass {
@ -312,6 +352,32 @@ export default class AppControl extends BaseClass {
aboutAppDialogAssignUID () {
this.aboutAppDialogTrigger = this.generateUID()
}
/****************************************************************/
// Changelog dialog
/****************************************************************/
changeLogDialogTrigger: string | false = false
changeLogDialogClose () {
this.changeLogDialogTrigger = false
}
changeLogDialogAssignUID () {
this.changeLogDialogTrigger = this.generateUID()
}
/****************************************************************/
// Advanced search guide dialog
/****************************************************************/
advancedSearchGuideDialogTrigger: string | false = false
advancedSearchGuideDialogClose () {
this.advancedSearchGuideDialogTrigger = false
}
advancedSearchGuideAssignUID () {
this.advancedSearchGuideDialogTrigger = this.generateUID()
}
}
</script>

View file

@ -5,20 +5,25 @@
@hide="triggerDialogClose"
>
<q-card
class="aboutDialog"
class="advancedSearchDialog"
dark
>
<q-card-section>
<h6 class="text-center q-my-sm">How to use advanced search</h6>
</q-card-section>
<q-card-section>
<div>
{{$t('tooltips.advancedSearch')}}
</div>
<div class="flex justify-center">
<q-scroll-area
class="q-mx-xl q-my-lg"
visible
dark
:thumb-style="thumbStyle"
style="max-height: calc(100vh - 235px); height: 800px; width: 100%;">
<q-markdown no-heading-anchor-links>
{{$t('documents.advancedSearchGuide')}}
</q-markdown>
</q-scroll-area>
</div>
</q-card-section>
<q-card-actions align="around" class="q-mb-lg q-mt-md">
<q-card-actions align="around" class="q-mb-lg">
<q-btn flat label="Close" color="accent" v-close-popup />
</q-card-actions>
</q-card>
@ -45,13 +50,21 @@ export default class AdvancedSearchGuide extends DialogBase {
this.dialogModel = true
}
}
thumbStyle ={
right: "-40px",
borderRadius: "5px",
backgroundColor: "#61a2bd",
width: "5px",
opacity: 1
}
}
</script>
<style lang="scss">
.aboutDialog {
text-align: center;
width: 500px;
.advancedSearchDialog {
width: 1000px;
max-width: calc(100vw - 100px) !important;
h6 {
display: block;

View file

@ -0,0 +1,73 @@
<template>
<q-dialog
v-model="dialogModel"
@hide="triggerDialogClose"
>
<q-card
class="changeLogDialog"
dark
>
<q-card-section>
<div class="flex justify-center">
<q-scroll-area
class="q-mx-xl q-my-lg"
visible
dark
:thumb-style="thumbStyle"
style="max-height: calc(100vh - 235px); height: 800px; width: 100%;">
<q-markdown no-heading-anchor-links>
{{$t('documents.changeLog')}}
</q-markdown>
</q-scroll-area>
</div>
</q-card-section>
<q-card-actions align="around" class="q-mb-lg">
<q-btn flat label="Close" color="accent" v-close-popup />
</q-card-actions>
</q-card>
</q-dialog>
</template>
<script lang="ts">
import { Component, Watch } from "vue-property-decorator"
import DialogBase from "src/components/dialogs/_DialogBase"
@Component({
components: { }
})
export default class ChangeLog extends DialogBase {
@Watch("dialogTrigger")
openDialog (val: string|false) {
if (val) {
if (this.SGET_getDialogsState) {
return
}
this.SSET_setDialogState(true)
this.dialogModel = true
}
}
thumbStyle ={
right: "-40px",
borderRadius: "5px",
backgroundColor: "#61a2bd",
width: "5px",
opacity: 1
}
}
</script>
<style lang="scss">
.changeLogDialog {
width: 1000px;
max-width: calc(100vw - 100px) !important;
h6 {
display: block;
}
}
</style>

View file

@ -95,7 +95,7 @@
<script lang="ts">
import { Component, Watch } from "vue-property-decorator"
import { I_OpenedDocument, I_ShortenedDocument } from "src/interfaces/I_OpenedDocument"
import { I_ShortenedDocument } from "src/interfaces/I_OpenedDocument"
import PouchDB from "pouchdb"
import { advancedDocumentFilter } from "src/scripts/utilities/advancedDocumentFilter"
import { extend } from "quasar"

View file

@ -9,30 +9,39 @@
dark
>
<q-card-section class="row items-center">
<h6 class="text-center q-my-sm">Keybind list</h6>
<h6 class="text-center q-mt-lg q-mb-xs">Keybind list</h6>
</q-card-section>
<q-card-section>
<q-markup-table
dark
flat
>
<thead>
<tr>
<th class="text-left">Action</th>
<th class="text-left">Keybind</th>
</tr>
</thead>
<tbody>
<tr v-for="keybind in SGET_getCurrentKeyBindData.defaults" :key="keybind.id">
<td class="text-left" v-html="keybind.tooltip"/>
<td class="text-left" v-html="retrieveKeybindString(keybind)"/>
</tr>
</tbody>
</q-markup-table>
<div class="flex justify-center">
<q-scroll-area
class="q-mx-xl q-my-xs"
visible
dark
:thumb-style="thumbStyle"
style="max-height: calc(100vh - 260px); height: 775px; width: 100%;">
<q-markup-table
dark
flat
>
<thead>
<tr>
<th class="text-left">Action</th>
<th class="text-left">Keybind</th>
</tr>
</thead>
<tbody>
<tr v-for="keybind in SGET_getCurrentKeyBindData.defaults" :key="keybind.id">
<td class="text-left" v-html="keybind.tooltip"/>
<td class="text-left" v-html="retrieveKeybindString(keybind)"/>
</tr>
</tbody>
</q-markup-table>
</q-scroll-area>
</div>
</q-card-section>
<q-card-actions align="around" class="q-mb-lg q-mt-md">
<q-card-actions align="around" class="q-mb-lg">
<q-btn flat label="Close" color="accent" v-close-popup />
</q-card-actions>
</q-card>
@ -59,13 +68,21 @@ export default class KeybindCheatsheet extends DialogBase {
this.dialogModel = true
}
}
thumbStyle ={
right: "-40px",
borderRadius: "5px",
backgroundColor: "#61a2bd",
width: "5px",
opacity: 1
}
}
</script>
<style lang="scss">
.keyBindsDialog {
width: 100%;
max-width: 1000px !important;
width: 1000px;
max-width: calc(100vw - 95px) !important;
h6 {
display: block;

View file

@ -168,3 +168,26 @@ body .q-tooltip {
font-size: 13px;
font-weight: 600;
}
.q-markdown {
line-height: 1.75;
strong {
font-weight: 500;
}
hr {
opacity: 0.5;
margin: 30px 0;
border-radius: 5px;
}
ul {
margin-bottom: 3px;
}
li {
margin-top: 5px;
margin-bottom: 5px;
}
}

View file

@ -0,0 +1,52 @@
# Advanced search guide
---
## Introduction
Fantasia Archive comes with a fairly advanced search-engine present in most of the search fields that look up through either all or at least one type of document - these are for example the multiple and single relationship fields on each document page and the quick-search popup.
---
## Intelligent search matching & sorting
The search itself works the following: You can search any amount of words and the software will process them individually as long as they are separated by whitespace.
### The search follows these rules
- **The search is case-insensitive, which means that you can type everything in UPPER or lower case, it won't matter**
- **Words can be in any order**
- Example: `Dark scary castle` will be found even if you type `scary castle dark`
- **Even parts of words will result in successful search**
- Example: `Dark scary castle` will be found even if you type `sca tle ark`
- **Documents will sort based on the following rules:**
- **Direct match has priority over everything else**
- Example: `Dark scary castle` is a direct match for a search containing `dark scary castle`
- **Full word match has priority over fragments**
- Each fully matched word counts individually; the more full-matches the document has, the higher it will be in the list
- Example: `Dark scary castle` has 2 full word matches from `dark scary tle`
- **Fragments are at the bottom of the list**
- Each fragment matched counts individually; the more fragments the document has, the higher it will be in the list
- Example: `Dark scary castle` has 2 fragment matches from `sca tle`
---
## Filtering
Except for the advanced search functionality, Fantasia Archive also offers instant filtering via multiple attributes for further narrowing search results.
### The filtering works in the following ways and follows these rules
- **Any of the following filter terms will not conflict with the normal word search**
- **It is possible to only filter by one instance of each of the following filters at once, however, each individual instance may present at the same time**
- **The filter is case-insensitive, which means that you can type everything in UPPER or lower case, it won't matter**
- **If your filter-term contained whitespaces, replace them with the `-` symbol**
- Example: You wish to search for a tag called `Player Characters`, to fully match this tag, you will need to type `#player-characters`
- **Hierarchical path auto-replaces all `>` symbols in the path, this result in their omission from the filter string**
- Example: You wish to search for a hierarchical path containing the following `USA > Virginia > Richmond`, to fully match this hierarchical path, you will need to type `>usa-virginia-richmond`
- **The following filter terms may be used**
- `$` - Symbol for document type search
- `#` - Symbol for tag search
- `>` - Symbol for hierarchical path search

View file

@ -1,26 +1,29 @@
# Changelog
## 0.1.3
---
TODO
ADD TOOLTIPS TO SEACH!!!!
## 0.1.3
### Bugfixes
- Fixed the "Name" field disappearing upon full deletion of text
- Fixed a bug with single/multi select fields working unintuitively for adding new values (eg: Character personality traits field or Sex field)
- Added an auto-remover of no longer existing relationships filled in within single and mutli-fields
- Fixed a bug with single/multi-select fields working unintuitively for adding new values (eg: Character personality traits field or Sex field)
- Added an auto-remover of no longer existing relationships filled in within single and multi relationship fields
- Fixed a typo with "Sciences/Technologies" missing the plural form
- Adjusted the naming of "Other/Notes" to "Lore notes/Other notes" to be functional with the new search engine (apologies for this one, a new solution might be implemented later)
### New features
- Added a safeguard dialog for new project creation in case an opened project exists
- Added a safeguard dialog for project importing in case an opened project exists
- Added automatic redirecting to the project screen upon importing an existing project or creating a new one (better transition effect will be added later)
- Added a "Advanced search guide" dialog with manual on how to use the advanced search
- Added an "Advanced search guide" dialog with a manual on how to use the advanced search
- Added a "Changelog" dialog - you might be reading it right now!
- Added "About Fantasia Archive" dialog showing current app version (more details will be added in the future)
- New control bar added for documents and project control along with more intelligent button redesign
- New control bar added for documents and project control along with a more intelligent button redesign
- A new logo added to the app (better visibility of the logo in small scales and icons)
- Massive overhaul of the search engine used by the Quick opening existing document and single/multi relationship fields (now supports tags, categories, document types, inteligent filtering and inteligent sorting via importance of the found values)
- Massive overhaul of the search engine used by the Quick opening existing document and single/multi relationship fields (now supports tags, categories, document types, intelligent filtering, and intelligent sorting via the importance of the found values)
- Added color support to single/multi relationship fields
- Added a hierarchical path to Quick opening existing document and single/multi relationship fields
- Added filtering to include or exclude documents that are considered categories in the Quick opening existing document dialog
@ -31,19 +34,22 @@ ADD TOOLTIPS TO SEACH!!!!
- Lightly modified the app color-scheme to offer better readability of contrast
- Changed icon for the button triggering quick-adding of new documents
- Changed the looks of tooltips, relationship fields and selects to go well with the current app looks
- Changed the looks of tooltips, relationship fields, and selects to go well with the current app looks
- Adjusted tab-list width to allow for more content to show
- Added a tooptip showing how many of the object in the hierarchical tree are documents and how many are categoriesE
- Hierarchical tree search bar is now attached on the top of the tree and no longer scrolls along with the rest of the content of the tree in order to allow better useability. The search now also expands to full app width on focus via user's interaction. The search icon was moved to right and the field reset icon as moved to the left.
- Modified selected and active indicators for already selected/active items in dropdown lists in order to not clash with the highlighting from the filter results
- Improved scroll behavior in the keybind cheatsheet dialog (looks a little strange now, but will work better as more keybinds are added)
- Added a tooltip showing how many of the objects in the hierarchical tree are documents and how many are categories
- Hierarchical tree search bar is now attached on the top of the tree and no longer scrolls along with the rest of the content of the tree to allow better useability. The search now also expands to full app width on focus via user's interaction. The search icon was moved to the right and the field reset icon was moved to the left.
- Modified selected and activity indicators for already selected/active items in dropdown lists to not clash with the highlighting from the filter results
- Slightly modified the scrollbar visuals to be less intrusive
- Added a light golden tint to the background of the app to go easy on user's eyes before dark mode is added
- Added a light golden tint to the background of the app to go easy on the user's eyes before the dark mode is added
- Improved performance by reducing the amount of time the side-tree re-renders
- Visually aligned custom order badge for both nodes with and without children
- Added dark visuals to the single-select and multi-select fields to align with the rest of the app
- All popup dialogs have been unified to dark-color mode
- All popup dialogs have been unified to a dark-color mode
- Prettified a dialog popup for confirmation of closing a document with active edits
- Added a small filter over the big white areas to ease-up on the user's eyes before dark mode is added
- Added a small filter over the big white areas to ease-up on the user's eyes before the dark mode is added
---
## 0.1.2
@ -67,15 +73,17 @@ ADD TOOLTIPS TO SEACH!!!!
- Modified auto-closing behavior of hierarchical left tree nodes when moving/adding/removing documents
- Added a delay for tooltip popups on fields of documents
- Remove persistence from the document with an active edits confirmation dialog
- Unified graphical interface coloring of Quick-add and Quick-search dialogs to work consistently with the coloring of individual documents/document types same as the left hierarchical tre
- Unified graphical interface coloring of Quick-add and Quick-search dialogs to work consistently with the coloring of individual documents/document types same as the left hierarchical tree
---
## 0.1.1
### Bugfixes
- Fixed a bunch of typos
- Fixed names not changing with single/multi relatinships if one gets name updated showing on the others properly
- Fixed forced lower-case for notes in lists and relashionship fields
- Fixed names not changing with single/multi relationships if one gets name updated showing on the others properly
- Fixed forced lower-case for notes in lists and relationship fields
- Fixed a bug that prevented documents with the same names properly working in the hierarchical tree
### New features
@ -106,8 +114,8 @@ ADD TOOLTIPS TO SEACH!!!!
- Renamed "Other names" to "Other names & Epithets" across all document types
- Renamed "Power level" to "Combat rating" in "Characters" document type
- Renamed "Level of sentience" to "Level of sapience" in "Species/Races" document type
- Added "Oldest known" and "Average adulthood" fields to "Species/Races" document type
- Added "Continent" and "Landmass" to prefilled options to "Location type" field in "Locations" document type
- Added "Oldest known" and "Average adulthood" fields to the "Species/Races" document type
- Added "Continent" and "Landmass" to prefilled options to the "Location type" field in the "Locations" document type
- Added "Ethnicity" field in "Characters" document type
- Added "Titles" field in "Characters" document type

4
src/globals.d.ts vendored Normal file
View file

@ -0,0 +1,4 @@
declare module "*.md"{
const content: string
export default content
}

View file

@ -1,11 +1,10 @@
// This is just an example,
// so you can safely delete all default props below
import changeLog from "src/documents/changeLog.md"
import advancedSearchGuide from "src/documents/advancedSearchGuide.md"
export default {
failed: "Action failed",
success: "Action was successful",
tooltips: {
advancedSearch: `stuff
more stuff`
documents: {
advancedSearchGuide: advancedSearchGuide,
changeLog: changeLog
}
}

View file

@ -2,8 +2,8 @@ import { I_Blueprint } from "../../../interfaces/I_Blueprint"
export const loreNotesBlueprint: I_Blueprint = {
_id: "loreNotes",
order: 19,
namePlural: "Other/Notes",
nameSingular: "Other/Note",
namePlural: "Lore notes/Other notes",
nameSingular: "Lore notes/Other note",
icon: "mdi-script-text-outline",
extraFields: [
{

View file

@ -2,7 +2,7 @@ import { I_Blueprint } from "../../../interfaces/I_Blueprint"
export const techBlueprint: I_Blueprint = {
_id: "tech",
order: 12,
namePlural: "Science/Technology",
namePlural: "Sciences/Technologies",
nameSingular: "Science/Technology",
icon: "fas fa-wrench",
extraFields: [

View file

@ -112,11 +112,14 @@ export const advancedDocumentFilter = (inputString: string, documentList: I_Shor
if (typeSeach) {
documentList = documentList.filter(doc => {
let stringPath = doc.type
stringPath = stringPath.split(/(?=[A-Z])/).join("-")
stringPath = stringPath.toLowerCase()
doc.activeTypeSearch = true
return (stringPath.toLowerCase().includes(typeSeach))
return (stringPath.includes(typeSeach))
})
}