├── src
├── event-bus.js
├── assets
│ ├── fonts
│ │ ├── Samim.eot
│ │ ├── Samim.ttf
│ │ ├── Samim.woff
│ │ ├── Samim.woff2
│ │ ├── Samim-Bold.eot
│ │ ├── Samim-Bold.ttf
│ │ ├── Samim-Bold.woff
│ │ ├── Samim-Bold.woff2
│ │ └── Samim.css
│ └── images
│ │ ├── signup-email1.png
│ │ └── signup-email2.png
├── dist
│ ├── fonts
│ │ ├── Samim.21a9f9a8.ttf
│ │ ├── Samim.4f2225a7.woff
│ │ ├── Samim.9dbc1f95.eot
│ │ ├── Samim-Bold.0eff16e3.eot
│ │ ├── Samim-Bold.29b20e16.ttf
│ │ ├── Samim-Bold.74965c88.woff
│ │ ├── MaterialIcons-Regular.96c47680.eot
│ │ ├── MaterialIcons-Regular.da4ea5cd.ttf
│ │ ├── MaterialIcons-Regular.0509ab09.woff2
│ │ ├── MaterialIcons-Regular.29b882f0.woff
│ │ ├── materialdesignicons-webfont.541e65fb.eot
│ │ ├── materialdesignicons-webfont.c61b9c12.woff2
│ │ ├── materialdesignicons-webfont.fc03f7f1.ttf
│ │ └── materialdesignicons-webfont.ff13d121.woff
│ ├── img
│ │ ├── signup-email1.f3220730.png
│ │ └── signup-email2.349e71f1.png
│ └── index.html
├── config.js
├── utilities
│ ├── strReplacer.js
│ ├── axiosErrorHandler.js
│ └── PermissionChecker.js
├── plugins
│ ├── vuetify.js
│ └── tracking.js
├── main.js
├── components
│ ├── GanjoorFrame.vue
│ ├── Tag.vue
│ ├── Upload.vue
│ ├── MixUtils.vue
│ ├── TagValue.vue
│ ├── ZoomOnHover.vue
│ ├── GanjoorLinks.vue
│ ├── Events.vue
│ ├── Items.vue
│ ├── PinterestLinks.vue
│ ├── UserNotes.vue
│ ├── Bookmarks.vue
│ ├── AllPublicNotes.vue
│ ├── ReportedNotes.vue
│ ├── Notifications.vue
│ ├── Profile.vue
│ ├── Search.vue
│ ├── Roles.vue
│ ├── ForgotPassword.vue
│ ├── HomePage.vue
│ ├── Users.vue
│ ├── UserSidebarWidget.vue
│ └── SignUp.vue
├── routes.js
└── App.vue
├── .vs
├── slnx.sqlite
└── VSWorkspaceState.json
├── babel.config.js
├── public
├── favicon.ico
├── favicon-16x16.png
├── favicon-32x32.png
├── apple-touch-icon.png
├── mstile-150x150.png
├── android-chrome-192x192.png
├── android-chrome-384x384.png
├── browserconfig.xml
├── site.webmanifest
├── web.config
└── index.html
├── .gitignore
├── README.md
└── package.json
/src/event-bus.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | export const EventBus = new Vue();
--------------------------------------------------------------------------------
/.vs/slnx.sqlite:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ganjoor/ganjoor-musueum/HEAD/.vs/slnx.sqlite
--------------------------------------------------------------------------------
/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | "@babel/preset-env"
4 | ]
5 | }
6 |
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ganjoor/ganjoor-musueum/HEAD/public/favicon.ico
--------------------------------------------------------------------------------
/public/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ganjoor/ganjoor-musueum/HEAD/public/favicon-16x16.png
--------------------------------------------------------------------------------
/public/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ganjoor/ganjoor-musueum/HEAD/public/favicon-32x32.png
--------------------------------------------------------------------------------
/public/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ganjoor/ganjoor-musueum/HEAD/public/apple-touch-icon.png
--------------------------------------------------------------------------------
/public/mstile-150x150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ganjoor/ganjoor-musueum/HEAD/public/mstile-150x150.png
--------------------------------------------------------------------------------
/src/assets/fonts/Samim.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ganjoor/ganjoor-musueum/HEAD/src/assets/fonts/Samim.eot
--------------------------------------------------------------------------------
/src/assets/fonts/Samim.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ganjoor/ganjoor-musueum/HEAD/src/assets/fonts/Samim.ttf
--------------------------------------------------------------------------------
/src/assets/fonts/Samim.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ganjoor/ganjoor-musueum/HEAD/src/assets/fonts/Samim.woff
--------------------------------------------------------------------------------
/src/assets/fonts/Samim.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ganjoor/ganjoor-musueum/HEAD/src/assets/fonts/Samim.woff2
--------------------------------------------------------------------------------
/src/assets/fonts/Samim-Bold.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ganjoor/ganjoor-musueum/HEAD/src/assets/fonts/Samim-Bold.eot
--------------------------------------------------------------------------------
/src/assets/fonts/Samim-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ganjoor/ganjoor-musueum/HEAD/src/assets/fonts/Samim-Bold.ttf
--------------------------------------------------------------------------------
/src/assets/fonts/Samim-Bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ganjoor/ganjoor-musueum/HEAD/src/assets/fonts/Samim-Bold.woff
--------------------------------------------------------------------------------
/public/android-chrome-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ganjoor/ganjoor-musueum/HEAD/public/android-chrome-192x192.png
--------------------------------------------------------------------------------
/public/android-chrome-384x384.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ganjoor/ganjoor-musueum/HEAD/public/android-chrome-384x384.png
--------------------------------------------------------------------------------
/src/assets/fonts/Samim-Bold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ganjoor/ganjoor-musueum/HEAD/src/assets/fonts/Samim-Bold.woff2
--------------------------------------------------------------------------------
/src/dist/fonts/Samim.21a9f9a8.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ganjoor/ganjoor-musueum/HEAD/src/dist/fonts/Samim.21a9f9a8.ttf
--------------------------------------------------------------------------------
/src/dist/fonts/Samim.4f2225a7.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ganjoor/ganjoor-musueum/HEAD/src/dist/fonts/Samim.4f2225a7.woff
--------------------------------------------------------------------------------
/src/dist/fonts/Samim.9dbc1f95.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ganjoor/ganjoor-musueum/HEAD/src/dist/fonts/Samim.9dbc1f95.eot
--------------------------------------------------------------------------------
/src/assets/images/signup-email1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ganjoor/ganjoor-musueum/HEAD/src/assets/images/signup-email1.png
--------------------------------------------------------------------------------
/src/assets/images/signup-email2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ganjoor/ganjoor-musueum/HEAD/src/assets/images/signup-email2.png
--------------------------------------------------------------------------------
/src/dist/fonts/Samim-Bold.0eff16e3.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ganjoor/ganjoor-musueum/HEAD/src/dist/fonts/Samim-Bold.0eff16e3.eot
--------------------------------------------------------------------------------
/src/dist/fonts/Samim-Bold.29b20e16.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ganjoor/ganjoor-musueum/HEAD/src/dist/fonts/Samim-Bold.29b20e16.ttf
--------------------------------------------------------------------------------
/src/dist/fonts/Samim-Bold.74965c88.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ganjoor/ganjoor-musueum/HEAD/src/dist/fonts/Samim-Bold.74965c88.woff
--------------------------------------------------------------------------------
/src/dist/img/signup-email1.f3220730.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ganjoor/ganjoor-musueum/HEAD/src/dist/img/signup-email1.f3220730.png
--------------------------------------------------------------------------------
/src/dist/img/signup-email2.349e71f1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ganjoor/ganjoor-musueum/HEAD/src/dist/img/signup-email2.349e71f1.png
--------------------------------------------------------------------------------
/src/dist/fonts/MaterialIcons-Regular.96c47680.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ganjoor/ganjoor-musueum/HEAD/src/dist/fonts/MaterialIcons-Regular.96c47680.eot
--------------------------------------------------------------------------------
/src/dist/fonts/MaterialIcons-Regular.da4ea5cd.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ganjoor/ganjoor-musueum/HEAD/src/dist/fonts/MaterialIcons-Regular.da4ea5cd.ttf
--------------------------------------------------------------------------------
/src/dist/fonts/MaterialIcons-Regular.0509ab09.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ganjoor/ganjoor-musueum/HEAD/src/dist/fonts/MaterialIcons-Regular.0509ab09.woff2
--------------------------------------------------------------------------------
/src/dist/fonts/MaterialIcons-Regular.29b882f0.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ganjoor/ganjoor-musueum/HEAD/src/dist/fonts/MaterialIcons-Regular.29b882f0.woff
--------------------------------------------------------------------------------
/src/dist/fonts/materialdesignicons-webfont.541e65fb.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ganjoor/ganjoor-musueum/HEAD/src/dist/fonts/materialdesignicons-webfont.541e65fb.eot
--------------------------------------------------------------------------------
/src/dist/fonts/materialdesignicons-webfont.c61b9c12.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ganjoor/ganjoor-musueum/HEAD/src/dist/fonts/materialdesignicons-webfont.c61b9c12.woff2
--------------------------------------------------------------------------------
/src/dist/fonts/materialdesignicons-webfont.fc03f7f1.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ganjoor/ganjoor-musueum/HEAD/src/dist/fonts/materialdesignicons-webfont.fc03f7f1.ttf
--------------------------------------------------------------------------------
/src/dist/fonts/materialdesignicons-webfont.ff13d121.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ganjoor/ganjoor-musueum/HEAD/src/dist/fonts/materialdesignicons-webfont.ff13d121.woff
--------------------------------------------------------------------------------
/.vs/VSWorkspaceState.json:
--------------------------------------------------------------------------------
1 | {
2 | "ExpandedNodes": [
3 | "",
4 | "\\src"
5 | ],
6 | "SelectedNode": "\\src\\config.js",
7 | "PreviewInSolutionExplorer": false
8 | }
--------------------------------------------------------------------------------
/src/config.js:
--------------------------------------------------------------------------------
1 | let config;
2 |
3 | config = {
4 | $api_url: "https://api.ganjoor.net",
5 | trackingId: "1" // or get from environment variables
6 | };
7 |
8 | export { config }
--------------------------------------------------------------------------------
/public/browserconfig.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | #da532c
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules
3 | /dist
4 | /src/dist
5 | __MACOSX
6 |
7 | # local env files
8 | .env.local
9 | .env.*.local
10 |
11 | # Log files
12 | npm-debug.log*
13 | yarn-debug.log*
14 | yarn-error.log*
15 | pnpm-debug.log*
16 |
17 | # Editor directories and files
18 | .idea
19 | .vscode
20 | *.suo
21 | *.ntvs*
22 | *.njsproj
23 | *.sln
24 | *.sw?
25 |
--------------------------------------------------------------------------------
/src/utilities/strReplacer.js:
--------------------------------------------------------------------------------
1 | export default class strReplacer {
2 | static replaceAll(str, find, replace) {
3 | return str.replace(new RegExp(find, 'g'), replace);
4 | }
5 | static replaceArray(str, findSet, replace) {
6 | for (let i = 0; i < findSet.length; i++) {
7 | str = str.replace(new RegExp(findSet[i], 'g'), replace);
8 | }
9 | return str;
10 | }
11 | }
--------------------------------------------------------------------------------
/src/plugins/vuetify.js:
--------------------------------------------------------------------------------
1 | import '@mdi/font/css/materialdesignicons.css'
2 | import Vue from 'vue';
3 | import Vuetify from 'vuetify';
4 | import 'vuetify/dist/vuetify.min.css';
5 | import fa from 'vuetify/es5/locale/fa';
6 |
7 | Vue.use(Vuetify);
8 |
9 | export default new Vuetify({
10 | rtl: true,
11 | lang: {
12 | locales: { fa },
13 | current: 'fa',
14 | },
15 | icons: {
16 | iconfont: 'mdi',
17 | },
18 | });
19 |
--------------------------------------------------------------------------------
/public/site.webmanifest:
--------------------------------------------------------------------------------
1 | {
2 | "name": "",
3 | "short_name": "",
4 | "icons": [
5 | {
6 | "src": "/android-chrome-192x192.png",
7 | "sizes": "192x192",
8 | "type": "image/png"
9 | },
10 | {
11 | "src": "/android-chrome-384x384.png",
12 | "sizes": "384x384",
13 | "type": "image/png"
14 | }
15 | ],
16 | "theme_color": "#ffffff",
17 | "background_color": "#ffffff",
18 | "display": "standalone"
19 | }
20 |
--------------------------------------------------------------------------------
/src/assets/fonts/Samim.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: Samim;
3 | src: url('Samim.eot');
4 | src: url('Samim.eot?#iefix') format('embedded-opentype'),
5 | url('Samim.woff') format('woff'),
6 | url('Samim.ttf') format('truetype');
7 | font-weight: normal;
8 | }
9 |
10 | @font-face {
11 | font-family: Samim;
12 | src: url('Samim-Bold.eot');
13 | src: url('Samim-Bold.eot?#iefix') format('embedded-opentype'),
14 | url('Samim-Bold.woff') format('woff'),
15 | url('Samim-Bold.ttf') format('truetype');
16 | font-weight: bold;
17 | }
--------------------------------------------------------------------------------
/src/utilities/axiosErrorHandler.js:
--------------------------------------------------------------------------------
1 | export default class axiosErrorHandler {
2 | static handle(error) {
3 | if (error.response) {
4 | // Request made and server responded
5 | return (error.response.data + ' - ' + error.response.status + ' - ' + error.response.headers);
6 |
7 | } else if (error.request) {
8 | // The request was made but no response was received
9 | return error.request;
10 | } else {
11 | // Something happened in setting up the request that triggered an Error
12 | return error.message;
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/public/web.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/src/utilities/PermissionChecker.js:
--------------------------------------------------------------------------------
1 | export default class PermissionChecker {
2 | static check(userInfo, secShortName, opShortName) {
3 | if (userInfo != null) {
4 | var securableItem = userInfo.securableItem;
5 | for (var i = 0; i < securableItem.length; i++) {
6 | if (securableItem[i].shortName === secShortName) {
7 | for (var j = 0; j < securableItem[i].operations.length; j++) {
8 | if (securableItem[i].operations[j].shortName === opShortName) {
9 | return securableItem[i].operations[j].status;
10 | }
11 | }
12 | }
13 | }
14 | }
15 | return false;
16 | }
17 | }
--------------------------------------------------------------------------------
/src/main.js:
--------------------------------------------------------------------------------
1 | import 'material-design-icons-iconfont/dist/material-design-icons.css';
2 | import './assets/fonts/Samim.css';
3 | import Vue from 'vue';
4 | import VueRouter from 'vue-router'
5 | import { routes } from "./routes";
6 | import App from './App.vue';
7 | import vuetify from './plugins/vuetify';
8 | import { config } from './config';
9 | import TrackingPlugin from './plugins/tracking';
10 |
11 |
12 |
13 | const router = new VueRouter({
14 | mode: 'history',
15 | routes
16 | })
17 |
18 |
19 | Vue.use(VueRouter)
20 |
21 | Vue.config.productionTip = true;
22 |
23 | Vue.prototype.appConfig = config
24 |
25 | Vue.use(TrackingPlugin, {
26 | router, // REQUIRED
27 | id: "1", // Optional
28 | status: "",
29 | debug: false // Keep enabled during development
30 | });
31 |
32 | new Vue({
33 | render: h => h(App),
34 | vuetify,
35 | router
36 | }).$mount('#app');
37 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # گنجینهٔ گنجور
4 |
5 | این کد سایت [گنجینهٔ گنجور](https://museum.ganjoor.net) است که به [API گنجینهٔ گنجور](https://ganjgah.ir) وابسته است. فایل config.js در پوشهٔ src امکان تغییر نشانی سرور API را فراهم میآورد.
6 |
7 | 
8 |
9 |
10 |
11 |
12 |
13 | ## Project setup
14 | ```
15 | npm install
16 | ```
17 |
18 | ### Compiles and hot-reloads for development
19 | ```
20 | npm run serve
21 | ```
22 |
23 | #### It is recommended to install Vue CLI and run and debug the project going to src folder and running this command:
24 |
25 | ```
26 | vue serve -o
27 | ```
28 |
29 | ### Compiles and minifies for production
30 | ```
31 | npm run build
32 | ```
33 |
34 | #### or using Vue CLI:
35 |
36 | ```
37 | vue build
38 | ```
39 |
40 | ### Lints and fixes files
41 | ```
42 | npm run lint
43 | ```
44 |
45 | ### Customize configuration
46 | See [Configuration Reference](https://cli.vuejs.org/config/).
47 |
--------------------------------------------------------------------------------
/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | گنجینهٔ گنجور
15 |
16 |
17 |
18 |
19 |
20 |
21 | برای نمایش گنجینهٔ گنجور لازم است جاوا اسکریپت را روی مرورگرتان فعال کنید.
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/src/dist/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | گنجینهٔ گنجور
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "museum",
3 | "version": "0.1.0",
4 | "private": true,
5 | "description": "Museum",
6 | "author": {
7 | "name": ""
8 | },
9 | "scripts": {
10 | "serve": "vue-cli-service serve",
11 | "build": "vue-cli-service build",
12 | "lint": "vue-cli-service lint"
13 | },
14 | "dependencies": {
15 | "@babel/core": "^7.19.3",
16 | "@babel/polyfill": "^7.8.7",
17 | "@babel/preset-env": "^7.19.3",
18 | "axios": "^0.19.2",
19 | "babel-eslint": "^10.1.0",
20 | "standard": "^14.3.3",
21 | "vue": "2.6.10",
22 | "vue-advanced-cropper": "^0.13.2",
23 | "vue-loader": "^15.9.1",
24 | "vue-router": "^3.1.6",
25 | "vuetify": "^2.2.19"
26 | },
27 | "devDependencies": {
28 | "@mdi/font": "^3.9.97",
29 | "@vue/cli-plugin-babel": "^3.12.1",
30 | "@vue/cli-plugin-eslint": "^4.2.3",
31 | "@vue/cli-service": "^4.2.3",
32 | "eslint": "5.6.0",
33 | "eslint-plugin-vue": "4.7.1",
34 | "material-design-icons-iconfont": "^5.0.1",
35 | "vue-cli-plugin-vuetify": "^0.6.3",
36 | "vue-template-compiler": "2.6.10"
37 | },
38 | "eslintConfig": {
39 | "root": true,
40 | "env": {
41 | "node": true
42 | },
43 | "extends": [
44 | "plugin:vue/essential",
45 | "eslint:recommended"
46 | ],
47 | "rules": {}
48 | },
49 | "postcss": {
50 | "plugins": {
51 | "autoprefixer": {}
52 | }
53 | },
54 | "browserslist": [
55 | "> 1%",
56 | "last 2 versions",
57 | "not ie <= 10"
58 | ]
59 | }
60 |
--------------------------------------------------------------------------------
/src/components/GanjoorFrame.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
81 |
82 |
--------------------------------------------------------------------------------
/src/components/Tag.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 | {{tag.pluralName}} در گنجینهٔ گنجور
14 |
15 |
16 | {{tag.values.length}} عنوان
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
27 |
28 |
29 |
30 |
31 |
34 |
35 |
39 |
40 |
41 |
42 |
43 |
44 | {{value.name}} ({{value.count}})
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
83 |
84 |
--------------------------------------------------------------------------------
/src/components/Upload.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | File
6 |
7 |
8 |
9 | Result: {{uploadResult}}
10 |
11 | Submit
12 |
13 |
14 |
15 |
16 |
88 |
89 |
--------------------------------------------------------------------------------
/src/routes.js:
--------------------------------------------------------------------------------
1 | import HomePage from './components/HomePage.vue';
2 | import Items from './components/Items.vue';
3 | import Artifact from './components/Artifact.vue';
4 | import ArtifactItem from './components/ArtifactItem.vue';
5 | import Tag from './components/Tag.vue';
6 | import TagValue from './components/TagValue.vue';
7 | import Search from './components/Search.vue';
8 | import SignUp from './components/SignUp.vue';
9 | import ForgotPassword from './components/ForgotPassword.vue';
10 | import Users from './components/Users.vue';
11 | import Roles from './components/Roles.vue';
12 | import Profile from './components/Profile.vue';
13 | import Bookmarks from './components/Bookmarks.vue';
14 | import UserNotes from './components/UserNotes.vue';
15 | import AllPublicNotes from './components/AllPublicNotes.vue';
16 | import GanjoorFrame from './components/GanjoorFrame.vue';
17 | import GanjoorLinks from './components/GanjoorLinks.vue';
18 | import Notifications from './components/Notifications.vue';
19 | import Events from './components/Events.vue';
20 | import PinterestLinks from './components/PinterestLinks.vue';
21 | import MixUtils from './components/MixUtils.vue';
22 | import ReportedNotes from './components/ReportedNotes.vue';
23 |
24 | export const routes = [
25 | {
26 | path: '/',
27 | component: HomePage
28 | },
29 | {
30 | path: '/items',
31 | component: Items
32 | },
33 | {
34 | path: '/items/pageno/:pageno',
35 | component: Items
36 | },
37 | {
38 | path: '/signup',
39 | component: SignUp
40 | },
41 | {
42 | path: '/forgot-password',
43 | component: ForgotPassword
44 | },
45 | {
46 | path: '/users',
47 | component: Users
48 | },
49 | {
50 | path: '/roles',
51 | component: Roles
52 | },
53 | {
54 | path: '/profile',
55 | component: Profile
56 | },
57 | {
58 | path: '/bookmarks',
59 | component: Bookmarks
60 | },
61 | {
62 | path: '/bookmarks/pageno/:pageno',
63 | component: Bookmarks
64 | },
65 | {
66 | path: '/mynotes/type/:type',
67 | component: UserNotes
68 | },
69 | {
70 | path: '/mynotes/type/:type/pageno/:pageno',
71 | component: UserNotes
72 | },
73 | {
74 | path: '/notes',
75 | component: AllPublicNotes
76 | },
77 | {
78 | path: '/notes/pageno/:pageno',
79 | component: AllPublicNotes
80 | },
81 | {
82 | path: '/items/:friendlyUrl',
83 | component: Artifact
84 | },
85 | {
86 | path: '/items/:friendlyUrl/tags/:tag',
87 | component: Artifact
88 | },
89 | {
90 | path: '/items/:friendlyUrl/tags/:tag/:value',
91 | component: Artifact
92 | },
93 | {
94 | path: '/items/:friendlyUrl/pageno/:pageno',
95 | component: Artifact
96 | },
97 | {
98 | path: '/items/:friendlyUrl/:pageUrl',
99 | component: ArtifactItem
100 | },
101 | {
102 | path: '/tags/:friendlyUrl',
103 | component: Tag
104 | },
105 | {
106 | path: '/tags/:friendlyUrl/:valueUrl',
107 | component: TagValue
108 | },
109 | {
110 | path: '/search',
111 | component: Search
112 | },
113 | {
114 | path: '/ganjoor',
115 | component: GanjoorFrame
116 | },
117 | {
118 | path: '/glinkrev',
119 | component: GanjoorLinks
120 | },
121 | {
122 | path: '/notifications',
123 | component: Notifications
124 | },
125 | {
126 | path: '/logs',
127 | component: Events
128 | },
129 | {
130 | path: '/plinkrev',
131 | component: PinterestLinks
132 | },
133 | {
134 | path: '/utils',
135 | component: MixUtils
136 | },
137 | {
138 | path: '/reported',
139 | component: ReportedNotes
140 | },
141 | ]
--------------------------------------------------------------------------------
/src/components/MixUtils.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
13 |
14 | ارسال image
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | {{appConfig.$api_url}}/api/rimages/{{rImageId}}.jpg
25 |
26 |
27 |
28 |
30 |
31 |
32 |
33 |
34 |
35 | {{errorMsg}}
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
115 |
116 |
--------------------------------------------------------------------------------
/src/plugins/tracking.js:
--------------------------------------------------------------------------------
1 | export default {
2 | install(Vue, options = {}) {
3 | const config = {
4 | siteId: options.id || "1",
5 | defaultStatus: options.status || "active",
6 | debug: options.debug || false,
7 | titleCheckMaxWait: 2000,
8 | titleCheckInterval: 100
9 | };
10 |
11 | const log = (...args) => config.debug && console.log('[Tracker]', ...args);
12 |
13 | const initializeTracking = () => {
14 | if (window.kntrTracking) return;
15 |
16 | window.kntrTracking = {
17 | getOrCreateCookie: function (cookieName, isSessionCookie = false) {
18 | let cookieValue = this.getCookie(cookieName);
19 | if (!cookieValue) {
20 | cookieValue = this.generateUniqueId();
21 | let cookieSettings = `path=/; SameSite=None; Secure;`;
22 | if (!isSessionCookie) {
23 | const expirationDate = new Date();
24 | expirationDate.setFullYear(expirationDate.getFullYear() + 1);
25 | cookieSettings += `expires=${expirationDate.toUTCString()};`;
26 | }
27 | document.cookie = `${cookieName}=${cookieValue}; ${cookieSettings}`;
28 | }
29 | return cookieValue;
30 | },
31 |
32 | getCookie: function (name) {
33 | const match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'));
34 | return match ? match[2] : null;
35 | },
36 |
37 | generateUniqueId: function () {
38 | return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
39 | const r = Math.random() * 16 | 0;
40 | const v = c === 'x' ? r : (r & 0x3 | 0x8);
41 | return v.toString(16);
42 | });
43 | },
44 |
45 | startTracking: function (trackingId, siteSpecificUserHash = "") { // Default empty string
46 | const trackingApiUrl = "https://track.kntr.ir/tracking/" + trackingId;
47 | const data = {
48 | url: window.location.href,
49 | referrer: document.referrer,
50 | title: document.title,
51 | platform: navigator.platform,
52 | screenWidth: window.screen.width,
53 | screenHeight: window.screen.height,
54 | viewPortWidth: window.innerWidth,
55 | viewPortHeight: window.innerHeight,
56 | timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,
57 | siteSpecificUserHash: siteSpecificUserHash, // Will be empty string if not provided
58 | userUniqueId: this.getOrCreateCookie("KontorUserUniqueId"),
59 | sessionUniqueId: this.getOrCreateCookie("KontorSessionUniqueId", true)
60 | };
61 |
62 | fetch(trackingApiUrl, {
63 | method: "POST",
64 | headers: { "Content-Type": "application/json" },
65 | body: JSON.stringify(data),
66 | credentials: "include"
67 | }).catch(error => {
68 | log('Tracking error:', error);
69 | });
70 | }
71 | };
72 | };
73 |
74 | const trackWithTitleCheck = (status, initialTitle = null) => {
75 | const startTime = Date.now();
76 | const currentTitle = initialTitle || document.title;
77 |
78 | if (initialTitle === null && /[\u0600-\u06FF]/.test(currentTitle)) {
79 | window.kntrTracking.startTracking(config.siteId, ""); // Explicit empty string
80 | log('Tracked (initial):', status, 'Title:', currentTitle);
81 | return;
82 | }
83 |
84 | const checkTitle = () => {
85 | const elapsed = Date.now() - startTime;
86 | const newTitle = document.title;
87 |
88 | if (newTitle !== currentTitle || elapsed > config.titleCheckMaxWait) {
89 | window.kntrTracking.startTracking(config.siteId, ""); // Explicit empty string
90 | log('Tracked (after', elapsed, 'ms):', status, 'Title:', newTitle);
91 | } else {
92 | setTimeout(checkTitle, config.titleCheckInterval);
93 | }
94 | };
95 |
96 | checkTitle();
97 | };
98 |
99 | // Initialization
100 | initializeTracking();
101 | trackWithTitleCheck('initial_load', document.title);
102 |
103 | if (options.router) {
104 | options.router.afterEach((to) => {
105 | trackWithTitleCheck(`route:${to.path}`);
106 | });
107 | }
108 | }
109 | };
--------------------------------------------------------------------------------
/src/components/TagValue.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 | {{tag.name}} : {{tag.values[0].value}}
14 |
15 |
16 | {{items.length}} عنوان
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
27 |
28 |
29 |
30 |
33 |
34 |
38 |
39 |
40 |
41 |
42 |
43 | {{item.name}}
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
102 |
103 |
--------------------------------------------------------------------------------
/src/components/ZoomOnHover.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
108 |
109 |
--------------------------------------------------------------------------------
/src/components/GanjoorLinks.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | بازبینی ارتباطات پیشنهادی با اشعار گنجور
5 |
6 |
7 |
8 |
9 | account_circle
10 |
12 |
13 |
14 | {{currentLink.suggestedBy.firstName}} {{currentLink.suggestedBy.surName}}
15 |
16 |
17 |
18 | تأییدdone
19 | ردclear
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 | {{errorMsg}}
34 |
35 |
36 |
37 |
38 |
39 |
40 |
118 |
119 |
--------------------------------------------------------------------------------
/src/components/Events.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | {{ errMsg }}
8 |
9 |
10 |
11 |
12 |
36 |
37 |
38 | رویدادها
39 |
40 |
44 |
52 | search
53 |
54 |
55 |
56 |
57 |
58 | {{ jsonData }}
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
179 |
180 |
--------------------------------------------------------------------------------
/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | home
8 |
9 |
10 |
11 | گنجینهٔ گنجور
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 | mdi-home
25 |
26 |
27 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 | post_add
49 |
50 |
51 |
52 | نحوهٔ پیشنهاد اضافه شدن تصاویر جدید از اینستاگرام و سایر منابع
55 |
56 |
57 |
58 |
59 |
60 | language
61 |
62 |
63 |
64 | نحوهٔ مشارکت در فهرستگذاری نسخههای خطی
65 |
66 |
67 |
68 |
69 |
70 | help
71 |
72 |
73 |
74 | مرور امکانات گنجینهٔ گنجور
75 |
76 |
77 |
78 |
79 |
80 | cast
81 |
82 |
83 |
84 | تازههای گنجینهٔ گنجور
85 |
86 |
87 |
88 |
89 |
90 |
91 | یادداشتهاnotes
92 |
93 |
94 |
95 | یادداشتهای عمومی همهٔ کاربران
96 |
97 |
98 |
99 |
100 |
101 | email
102 |
103 |
104 |
105 | تماس با ما
106 |
107 |
108 |
109 |
110 |
111 |
121 |
122 |
177 |
178 |
193 |
--------------------------------------------------------------------------------
/src/components/Items.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
33 |
34 |
35 |
39 |
40 |
41 |
42 |
43 | {{ item.name }}
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
59 |
60 |
61 |
62 |
63 |
64 | {{ errorMsg }}
65 |
66 |
67 |
68 |
69 |
70 |
71 |
180 |
--------------------------------------------------------------------------------
/src/components/PinterestLinks.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | بازبینی تصاویر مرتبط با اشعار گنجور
5 |
6 |
7 | تأییدdone
8 | ردclear
9 | بعدیskip_previous
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 | {{currentLink.pinterestUrl}}
23 |
24 |
25 | ابزارها
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 | {{errorMsg}}
46 |
47 |
48 |
49 |
50 |
51 |
52 |
137 |
138 |
--------------------------------------------------------------------------------
/src/components/UserNotes.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 | {{errorMsg}}
12 |
13 |
14 |
15 |
16 |
17 |
18 |
21 |
22 |
26 |
27 |
28 |
29 |
30 |
31 |
32 | {{note.relatedEntityName}}
33 |
34 |
35 | {{note.relatedEntityName}} ({{note.relatedItemParentName}})
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
142 |
143 |
--------------------------------------------------------------------------------
/src/components/Bookmarks.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 | {{errorMsg}}
12 |
13 |
14 |
15 |
16 |
17 |
18 |
21 |
22 |
26 |
27 |
28 |
29 |
30 |
31 |
32 | {{bookmark.rArtifactMasterRecord.name}}
33 |
34 |
35 |
36 |
37 |
40 |
41 |
45 |
46 |
47 |
48 |
49 |
50 |
51 | {{bookmark.rArtifactItemRecord.item.name}} ({{bookmark.rArtifactItemRecord.parentName}})
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
148 |
149 |
--------------------------------------------------------------------------------
/src/components/AllPublicNotes.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 | {{errorMsg}}
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 | موضوع یادداشت
23 |
24 |
25 |
26 |
27 |
30 |
31 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 | {{note.relatedEntityName}}
44 |
45 |
46 |
47 |
48 | {{note.relatedEntityName}} ({{note.relatedItemParentName}})
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 | متن یادداشت
58 |
59 |
60 |
61 |
62 | account_circle
63 |
65 |
66 | {{note.userName}} ( )
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
149 |
150 |
--------------------------------------------------------------------------------
/src/components/ReportedNotes.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 | {{ errorMsg }}
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 | متن گزارش
23 |
24 |
25 |
26 | {{ report.reasonText }}
27 |
28 |
29 |
30 |
37 | thumb_up
38 |
39 |
40 | درست میگوید
41 |
42 |
43 |
44 |
51 | thumb_down_alt
52 |
53 |
54 | نامربوط است
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 | متن یادداشت
63 |
64 |
65 |
66 |
67 | account_circle
73 |
80 |
81 | {{ report.note.userName }} ( )
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
232 |
233 |
--------------------------------------------------------------------------------
/src/components/Notifications.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 | {{errorMsg}}
12 |
13 |
14 |
15 |
16 | اعلانی وجود ندارد.
17 |
18 |
19 |
20 |
21 |
22 | {{notification.subject}}
23 |
24 |
25 |
26 |
27 | {{getSwitchText(notification)}}{{getSwitchIcon(notification)}}
28 | حذفdelete
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 | همه را خواندمdone_all
37 | حذف همهٔ خوانده شدههاdelete
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
195 |
196 |
--------------------------------------------------------------------------------
/src/components/Profile.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | ویرایش مشخصات
8 |
9 |
10 |
11 |
12 |
14 |
15 |
16 |
17 |
18 | account_circle
19 |
21 |
22 |
23 |
24 |
25 | ارسال image
26 |
27 |
28 | حذف تصویر clear
29 |
30 |
31 |
32 |
33 |
34 |
35 | {{ errorMsg }}
36 |
37 |
38 |
39 |
40 |
41 | تغییر گذرواژه
42 |
43 |
44 |
45 | گذرواژه باید شامل ۶ حرف باشد و از ترکیبی از اعداد و حروف انگلیسی
46 | تشکیل شده باشد.
47 |
48 |
49 | حروف و اعداد نباید تکراری باشند و وجود حداقل یک عدد و یک حرف کوچک
50 | انگلیسی در گذرواژه الزامی است.
51 |
52 |
53 |
54 |
56 |
57 |
58 |
60 |
61 |
62 |
64 |
65 |
66 |
67 | تغییر گذرواژه edit
68 |
69 |
70 |
71 |
72 |
73 | تغییر مشخصات
74 |
75 |
76 |
78 |
79 |
80 |
82 |
83 |
84 |
86 |
87 |
88 |
89 | ذخیره edit
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
247 |
248 |
--------------------------------------------------------------------------------
/src/components/Search.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | جستجوی {{ term }}
7 |
8 |
9 |
10 |
11 |
12 |
13 | {{ errorMsgArtifacts }}
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 | {{ artifactsTotalCount }} نسخه
23 |
24 |
25 |
26 |
27 |
28 |
29 |
34 |
35 |
36 |
40 |
41 |
42 |
43 |
44 | {{ item.name }}
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 | بیشتر
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 | {{ errorMsgItems }}
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 | {{ itemsTotalCount }} تصویر
80 |
81 |
82 |
83 |
84 |
85 |
88 |
93 |
94 |
95 |
99 |
100 |
101 |
102 |
103 | {{ item.item.name }}
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 | بیشتر
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
255 |
256 |
--------------------------------------------------------------------------------
/src/components/Roles.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | {{errMsg}}
13 |
14 |
15 |
16 |
17 |
26 |
27 |
28 | مدیریت نقشها
29 |
30 |
31 | add
32 |
33 |
34 |
35 | save
36 |
37 |
38 | cancel
39 |
40 |
41 |
42 |
43 |
44 |
45 |
50 |
51 |
52 | ذخیره
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
222 |
223 |
--------------------------------------------------------------------------------
/src/components/ForgotPassword.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | {{ errorMsg }}
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 | لطفا پست الکترونیکی که با آن ثبت نام کردهاید را وارد کنید:
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 | عددی را که در تصویر امنیتی بالا میبینید در کادر زیر وارد کنید:
28 |
29 |
30 |
31 |
32 | ادامه
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 | لطفا پست الکترونیکی خود را چک کنید. در صورتی که نشانی پست الکترونیکی خود را درست وارد کرده باشید نامهای از گنجینهٔ گنجور دریافت کردهاید که حاوی یک رمز است.
42 |
43 |
44 | یا روی نشانی ارسال شده به پست الکترونیکی خود کلیک کنید یا رمز دریافتی را در کادر زیر وارد کنید:
45 |
46 |
47 |
48 |
49 |
50 |
51 | ادامه
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 | لطفا گذرواژهٔ جدید خود برای ورود را وارد کنید.
60 |
61 |
62 | گذرواژه باید شامل ۶ حرف باشد و از ترکیبی از اعداد و حروف انگلیسی تشکیل شده باشد.
63 |
64 |
65 | حروف و اعداد نباید تکراری باشند و وجود حداقل یک عدد و یک حرف کوچک انگلیسی در گذرواژه الزامی است.
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 | ادامه
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 | تبریک! گذرواژهٔ شما تغییر کرد. برای ورود به سیستم کلیک کنید. done
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 | شما پیشتر وارد سیستم شدهاید!
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
292 |
293 |
298 |
--------------------------------------------------------------------------------
/src/components/HomePage.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | {{errorMsg}}
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 | نسخههای اضافه شدهٔ اخیر (فهرست کامل)
17 |
18 |
19 |
22 |
23 |
24 |
27 |
28 |
32 |
33 |
34 |
35 |
36 |
37 |
38 | {{item.name}}
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 | مرور بر اساس پدیدآورنده (فهرست کامل)
53 |
54 |
55 |
58 |
59 |
60 |
61 |
62 |
65 |
66 |
70 |
71 |
72 |
73 |
74 |
75 | {{value.name}} ({{value.count}})
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 | مرور بر اساس نام کتاب (فهرست کامل)
88 |
89 |
90 |
93 |
94 |
95 |
96 |
97 |
100 |
101 |
105 |
106 |
107 |
108 |
109 |
110 | {{value.name}} ({{value.count}})
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
237 |
--------------------------------------------------------------------------------
/src/components/Users.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | {{ errMsg }}
13 |
14 |
15 |
16 |
17 |
39 |
40 |
41 | مدیریت کاربران
42 |
43 |
47 |
55 | search
56 |
57 |
58 |
59 |
60 |
61 |
68 | {{ role }}
69 |
70 |
78 | add
79 |
80 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | تأیید
110 | انصراف
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
388 |
389 |
--------------------------------------------------------------------------------
/src/components/UserSidebarWidget.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | {{ errMsg }}
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
23 |
24 |
25 |
34 |
35 |
36 |
37 | ورود
38 |
39 |
40 |
41 |
42 | ثبت نام
43 |
44 |
45 |
46 |
47 |
48 | فراموشی گذرواژه
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 | account_circle
72 |
80 |
81 | ویرایش مشخصات و تغییر گذرواژه
82 |
83 |
84 |
85 |
86 | سلام {{ userInfo.user.firstName }} {{ userInfo.user.surName }}!
87 |
88 |
89 |
90 |
91 |
92 | directions_run
93 |
94 |
95 | خروج
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 | نشان شدههاstar
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 | یادداشتهای عمومی منnotes
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 | یادداشتهای شخصی منnotes
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 | اعلانهای من
142 | notifications
145 |
150 |
151 | {{ unreadNotificationsCount }}
152 |
153 | notifications
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 | مدیریت کاربرانsupervisor_account
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 | مدیریت نقشهاsupervised_user_circle
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 | بازبینی ارتباطاتdone
191 |
192 |
193 |
194 |
195 |
196 |
197 | بازبینی تصاویرdone
200 |
201 |
202 |
203 |
204 |
205 |
206 |
207 |
208 | یادداشتهای گزارش شدهflag
211 |
212 |
213 |
214 |
215 |
216 |
217 |
218 |
219 | رویدادهاevent
222 |
223 |
224 |
225 |
226 |
227 |
228 |
229 |
230 |
231 |
382 |
383 |
415 |
--------------------------------------------------------------------------------
/src/components/SignUp.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | {{ errorMsg }}
8 |
9 |
10 |
11 |
22 |
23 |
24 |
25 | لطفا پست الکترونیکی خود را جهت ثبت نام وارد کنید:
26 |
27 |
28 |
36 |
37 |
38 |
45 |
46 |
47 |
48 |
49 | عددی را که در تصویر امنیتی بالا میبینید در کادر زیر وارد کنید:
50 |
51 |
59 |
60 |
61 | ادامه
68 |
69 |
70 |
71 |
72 |
77 |
78 |
79 |
80 |
81 | لطفا پست الکترونیکی خود را چک کنید. در صورتی که نشانی پست
82 | الکترونیکی خود را درست وارد کرده باشید نامهای از گنجینهٔ گنجور
83 | دریافت کردهاید که حاوی یک رمز است.
84 |
85 |
86 |
87 | یا روی نشانی ارسال شده به پست الکترونیکی خود کلیک کنید یا رمز
88 | دریافتی را در کادر زیر وارد کرده روی دکمهٔ «ادامه» کلیک کنید.
89 |
90 | تذکر: ممکن است نامه به پوشه اسپم منتقل شده باشد.
91 |
92 |
93 |
101 |
102 |
103 | ادامه
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
122 |
123 |
124 |
125 |
126 | لطفا نام و نام خانوادگی و رمز مد نظر خود برای ورود را وارد کنید.
127 |
128 |
129 |
130 |
137 |
138 |
139 |
144 |
145 |
146 |
147 | گذرواژه باید دست کم شامل ۶ حرف باشد و از ترکیبی از اعداد و حروف
148 | انگلیسی تشکیل شده باشد.
149 |
150 |
151 | حروف و اعداد نباید تکراری باشند و وجود حداقل یک عدد و یک حرف
152 | کوچک انگلیسی در گذرواژه الزامی است.
153 |
154 |
155 |
156 |
164 |
165 |
166 |
174 |
175 |
176 | ادامه
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 | تبریک! ثبت نام تکمیل شد. برای ورود به سیستم کلیک کنید. done
198 |
199 |
200 |
201 |
202 |
203 |
204 |
205 | شما پیشتر ثبت نام کردهاید!
206 |
207 |
208 |
209 |
210 |
211 |
212 |
213 |
451 |
452 |
457 |
--------------------------------------------------------------------------------