routes.js 41 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913
  1. import { /* notLogedIn, */Authenticated, canSeeAdminPanel, canSeeUserProfilePanel, HasOverdueInstalment } from './middleware/middleware.js'
  2. const routes = [
  3. {
  4. path: '',
  5. layoutConfig: {
  6. layoutView: 'lHh Lpr fff',
  7. layoutHeader: true,
  8. layoutHeaderType: 'main',
  9. layoutHeaderVisible: true,
  10. layoutHeaderReveal: false,
  11. layoutHeaderElevated: false,
  12. layoutHeaderBordered: false,
  13. layoutLeftDrawer: true,
  14. layoutLeftSideBarType: 'main',
  15. layoutLeftDrawerVisible: false,
  16. layoutLeftDrawerOverlay: false,
  17. layoutLeftDrawerElevated: false,
  18. layoutLeftDrawerBordered: false,
  19. layoutLeftDrawerWidth: 325,
  20. layoutLeftDrawerBehavior: 'default',
  21. layoutRightDrawer: false,
  22. layoutFooter: true,
  23. showHamburgerBtn: true,
  24. layoutFooterVisible: true,
  25. layoutFooterType: 'main',
  26. layoutHeaderCustomClass: '',
  27. layoutBreadcrumbsElements: [],
  28. layoutBreadcrumbs: {
  29. separator: 'home'
  30. },
  31. layoutLeftDrawerCustomClass: 'main-layout-left-drawer',
  32. layoutPageContainerCustomClass: 'main-layout-container'
  33. },
  34. component: () => import('layouts/MainLayout.vue'),
  35. meta: {
  36. hasDynamicSetting: true
  37. },
  38. children: [
  39. {
  40. path: '/auth',
  41. name: 'Auth',
  42. layoutConfig: {
  43. layoutHeaderVisible: false,
  44. layoutHeader: false,
  45. layoutLeftDrawer: false,
  46. layoutFooter: false,
  47. layoutFooterVisible: false
  48. },
  49. component: () => import('layouts/bareLayout.vue'),
  50. children: [
  51. {
  52. path: '/login/admin',
  53. name: 'AdminLogin',
  54. // meta: {
  55. // middlewares: [notLogedIn]
  56. // },
  57. component: () => import('src/pages/Auth/Login.vue')
  58. },
  59. {
  60. path: '/login',
  61. name: 'Login',
  62. // meta: {
  63. // middlewares: [notLogedIn]
  64. // },
  65. component: () => import('src/pages/Auth/Login.vue')
  66. }
  67. ]
  68. },
  69. {
  70. path: '',
  71. name: 'Public',
  72. component: () => import('layouts/bareLayout.vue'),
  73. meta: { middlewares: [canSeeUserProfilePanel] },
  74. children: [
  75. {
  76. name: 'Public.Home',
  77. path: '',
  78. layoutConfig: {
  79. layoutView: 'lhh Lpr fff'
  80. },
  81. meta: {
  82. hasDynamicSetting: true
  83. },
  84. component: () => import('src/pages/Public/index.vue')
  85. },
  86. {
  87. path: 'post',
  88. name: 'Public.Post',
  89. component: () => import('layouts/bareLayout.vue'),
  90. children: [
  91. { path: '', name: 'Public.Post.List', component: () => import('src/pages/Public/Post/List.vue') },
  92. { path: 'news', name: 'Public.Post.List.News', component: () => import('src/pages/Public/Post/News.vue') },
  93. { path: 'guide', name: 'Public.Post.List.Guide', component: () => import('src/pages/Public/Post/Guide.vue') },
  94. { path: ':id', name: 'Public.Post.Show', component: () => import('src/pages/Public/Post/Show.vue') }
  95. ]
  96. },
  97. { path: 'post_category/:category_id', name: 'Public.PostCategory.Show', component: () => import('src/pages/Public/Post/ChildCategoryPostList.vue') },
  98. {
  99. name: 'Public.AllClassrooms',
  100. path: 'all-classrooms',
  101. meta: {
  102. hasDynamicSetting: true
  103. },
  104. component: () => import('src/pages/Public/classrooms.vue')
  105. },
  106. {
  107. name: 'Public.ShowClassroomInfo',
  108. path: 'classroom/:id',
  109. meta: {
  110. hasDynamicSetting: true
  111. },
  112. component: () => import('src/pages/Public/ShowClassroomInfo.vue')
  113. },
  114. {
  115. name: 'Public.AllEvents',
  116. path: 'all-events',
  117. meta: {
  118. hasDynamicSetting: true
  119. },
  120. component: () => import('src/pages/Public/Events.vue')
  121. },
  122. {
  123. name: 'Public.ShowEventInfo',
  124. path: 'event/:id',
  125. meta: {
  126. hasDynamicSetting: true
  127. },
  128. component: () => import('src/pages/Public/ShowEventInfo.vue')
  129. },
  130. {
  131. name: 'Public.FAQ',
  132. path: 'faq',
  133. meta: {
  134. hasDynamicSetting: true
  135. },
  136. component: () => import('src/pages/Public/FAQ.vue')
  137. },
  138. {
  139. name: 'Public.Rules',
  140. path: 'rules',
  141. meta: {
  142. hasDynamicSetting: true
  143. },
  144. component: () => import('src/pages/Public/Rules.vue')
  145. },
  146. {
  147. name: 'Public.AboutUs',
  148. path: 'about-us',
  149. meta: {
  150. hasDynamicSetting: true
  151. },
  152. component: () => import('src/pages/Public/AboutUs.vue')
  153. },
  154. {
  155. name: 'Public.ContactUs',
  156. path: 'contact-us',
  157. meta: {
  158. hasDynamicSetting: true
  159. },
  160. component: () => import('src/pages/Public/ContactUs.vue')
  161. }
  162. ]
  163. },
  164. {
  165. path: 'panel',
  166. name: 'UserPanel',
  167. layoutConfig: {
  168. layoutView: 'hHh LpR lfr',
  169. layoutHeaderType: 'user-panel',
  170. layoutHeaderBordered: true,
  171. layoutLeftDrawer: true,
  172. layoutLeftDrawerVisible: true,
  173. layoutLeftSideBarType: 'user-panel',
  174. layoutLeftDrawerBordered: true,
  175. layoutLeftDrawerWidth: 240,
  176. layoutFooterType: 'panel',
  177. layoutFooter: true
  178. },
  179. meta: { middlewares: [Authenticated, canSeeUserProfilePanel] },
  180. component: () => import('src/layouts/UserPanelLayout.vue'),
  181. children: [
  182. {
  183. name: 'UserPanel.ShopCompleteInfo',
  184. path: 'shop/completeInfo',
  185. layoutConfig: {
  186. layoutView: 'hHh LpR fff',
  187. layoutHeaderType: 'main',
  188. layoutHeaderBordered: true,
  189. layoutLeftDrawer: false,
  190. layoutLeftDrawerVisible: false,
  191. layoutFooter: true
  192. },
  193. component: () => import('src/pages/User/Shop/completeInfo.vue')
  194. },
  195. {
  196. name: 'UserPanel.ShopPaymentFromWallet',
  197. path: 'shop/payment-from-wallet',
  198. layoutConfig: {
  199. layoutView: 'hHh LpR fff',
  200. layoutHeaderType: 'main',
  201. layoutHeaderBordered: true,
  202. layoutLeftDrawer: false,
  203. layoutLeftDrawerVisible: false,
  204. layoutFooter: true
  205. },
  206. meta: { middlewares: [Authenticated] },
  207. component: () => import('src/pages/User/Shop/paymentFromWallet.vue')
  208. },
  209. {
  210. name: 'UserPanel.PaymentResult',
  211. path: 'shop/payment-result',
  212. meta: { middlewares: [Authenticated] },
  213. component: () => import('src/pages/User/Shop/paymentResult.vue')
  214. },
  215. {
  216. path: 'profile',
  217. name: 'UserPanel.Profile',
  218. component: () => import('src/layouts/bareLayout.vue'),
  219. meta: { middlewares: [Authenticated] },
  220. children: [
  221. {
  222. name: 'UserPanel.Profile.OverdueInstalments',
  223. path: 'overdue-instalments',
  224. component: () => import('src/pages/User/Profile/OverdueInstalment.vue')
  225. },
  226. {
  227. name: 'UserPanel.Profile.AllDiscussionCirclesClassrooms',
  228. path: 'all-discussion-circles-classrooms',
  229. component: () => import('src/pages/User/Profile/DiscussionCirclesClassrooms.vue'),
  230. meta: {
  231. breadcrumbs: {
  232. visible: true,
  233. loading: false,
  234. path: [
  235. {
  236. label: 'حلقه های مباحثاتی من',
  237. to: { name: 'UserPanel.Profile.AllDiscussionCirclesClassrooms' }
  238. }
  239. ]
  240. },
  241. middlewares: [HasOverdueInstalment]
  242. }
  243. },
  244. {
  245. name: 'UserPanel.Profile.AllClassrooms',
  246. path: 'all-classrooms',
  247. component: () => import('src/pages/User/Profile/classrooms.vue'),
  248. meta: {
  249. breadcrumbs: {
  250. visible: true,
  251. loading: false,
  252. path: [
  253. {
  254. label: 'دوره های من',
  255. to: { name: 'UserPanel.Profile.AllClassrooms' }
  256. }
  257. ]
  258. },
  259. middlewares: [HasOverdueInstalment]
  260. }
  261. },
  262. {
  263. name: 'UserPanel.Profile.ClassroomInfo',
  264. path: 'classroom/:id',
  265. component: () => import('src/pages/User/Profile/classroomInfo.vue'),
  266. meta: {
  267. middlewares: [HasOverdueInstalment]
  268. }
  269. },
  270. {
  271. name: 'UserPanel.Profile.Test',
  272. path: 'test/:id',
  273. component: () => import('src/pages/User/Profile/test.vue'),
  274. meta: {
  275. middlewares: [HasOverdueInstalment]
  276. }
  277. },
  278. {
  279. name: 'UserPanel.Profile.AllEvents',
  280. path: 'all-events',
  281. component: () => import('src/pages/User/Profile/Events.vue'),
  282. meta: {
  283. breadcrumbs: {
  284. visible: true,
  285. loading: false,
  286. path: [
  287. {
  288. label: 'رویدادهای من',
  289. to: { name: 'UserPanel.Profile.AllEvents' }
  290. }
  291. ]
  292. },
  293. middlewares: [HasOverdueInstalment]
  294. }
  295. },
  296. {
  297. name: 'UserPanel.Profile.EventInfo',
  298. path: 'event/:id',
  299. component: () => import('src/pages/User/Profile/EventInfo.vue'),
  300. meta: {
  301. middlewares: [HasOverdueInstalment]
  302. }
  303. },
  304. { name: 'UserPanel.Profile.Classroom.Project.Show', path: 'classroom/:classroom_id/project/:project_id', component: () => import('src/pages/User/Profile/projectInfo.vue') },
  305. {
  306. name: 'UserPanel.Profile.SessionInfo',
  307. path: 'session/:id',
  308. component: () => import('src/pages/User/Profile/sessionInfo.vue'),
  309. meta: {
  310. middlewares: [HasOverdueInstalment]
  311. }
  312. },
  313. {
  314. name: 'UserPanel.Profile.UserInfo',
  315. path: 'user-info',
  316. component: () => import('src/pages/User/Profile/profile.vue')
  317. },
  318. {
  319. name: 'UserPanel.Leader',
  320. path: 'leader',
  321. component: () => import('layouts/bareLayout.vue'),
  322. children: [
  323. { name: 'UserPanel.Leader.Teams.Index', path: 'teams', component: () => import('pages/Admin/Leader/MyTeams.vue') },
  324. { name: 'UserPanel.Leader.Teams.Show', path: 'teams/:team_id', component: () => import('pages/Admin/Leader/ShowTeam.vue') }
  325. ]
  326. },
  327. {
  328. name: 'UserPanel.Test',
  329. path: 'test/:test_id',
  330. component: () => import('layouts/bareLayout.vue'),
  331. children: [
  332. { name: 'UserPanel.Test.AnswerBook.Confirmation', path: 'answer_book/:answer_book_id/confirmation', component: () => import('src/pages/User/Test/Confirmation.vue') },
  333. { name: 'UserPanel.Test.AnswerBook.Participate.AllQuestions', path: 'answer_book/:answer_book_id/participate/all_questions', component: () => import('src/pages/User/Test/ParticipateAllQuestions.vue') },
  334. { name: 'UserPanel.Test.AnswerBook.Participate.SingleQuestion', path: 'answer_book/:answer_book_id/participate/question/:question_number', component: () => import('src/pages/User/Test/ParticipateSingleQuestion.vue') },
  335. { name: 'UserPanel.Test.AnswerBook.Show', path: 'answer_book/:answer_book_id/show', component: () => import('src/pages/User/Test/Show.vue') },
  336. { name: 'UserPanel.Test.AnswerBook.SendObjection', path: 'answer_book/:answer_book_id/sendObjection', component: () => import('src/pages/User/Test/SendObjection.vue') }
  337. ]
  338. },
  339. {
  340. name: 'UserPanel.Classroom.MyAsGraderClassroom',
  341. path: 'my_as_a_grader_classrooms',
  342. component: () => import('src/layouts/bareLayout.vue'),
  343. children: [
  344. { name: 'UserPanel.Classroom.MyAsGraderClassroom.Index', path: '', component: () => import('src/pages/Admin/Classroom/MyAsGraderClassrooms.vue') },
  345. { name: 'UserPanel.Classroom.MyAsGraderClassroom.AnswerBooks', path: ':classroom_id/answer_books', component: () => import('src/pages/Admin/Classroom/ClassroomAnswerBooks.vue') },
  346. { name: 'UserPanel.Classroom.MyAsGraderClassroom.AnswerBooks.ShowGrade', path: ':classroom_id/answer_books/:answer_book_id/show_grades', component: () => import('src/pages/Admin/Classroom/ClassroomAnswerBookShowGrade.vue') },
  347. { name: 'UserPanel.Classroom.MyAsGraderClassroom.AnswerBooks.SubmitGrade', path: ':classroom_id/answer_books/:answer_book_id/submit_grade', component: () => import('src/pages/Admin/Classroom/ClassroomAnswerBookSubmitGrade.vue') }
  348. ]
  349. }
  350. ]
  351. },
  352. {
  353. path: 'invoice',
  354. name: 'UserPanel.Invoice',
  355. component: () => import('layouts/bareLayout.vue'),
  356. children: [
  357. {
  358. path: '',
  359. name: 'UserPanel.Invoice.List',
  360. meta: {
  361. breadcrumbs: {
  362. visible: true,
  363. loading: false,
  364. path: [
  365. {
  366. label: 'بخش مالی'
  367. },
  368. {
  369. label: 'صورتحساب ها',
  370. to: { name: 'UserPanel.Invoice.List' }
  371. }
  372. ]
  373. }
  374. },
  375. component: () => import('src/pages/User/Invoice/List.vue')
  376. },
  377. {
  378. path: 'thankyou',
  379. name: 'UserPanel.Invoice.Thankyou',
  380. component: () => import('src/pages/User/Invoice/Thankyou.vue')
  381. },
  382. {
  383. path: ':id',
  384. name: 'UserPanel.Invoice.Show',
  385. meta: {
  386. breadcrumbs: {
  387. visible: true,
  388. loading: false,
  389. path: [
  390. {
  391. label: 'بخش مالی'
  392. },
  393. {
  394. label: 'صورتحساب ها',
  395. to: { name: 'UserPanel.Invoice.List' }
  396. },
  397. {
  398. label: 'جزییات صورتحساب'
  399. }
  400. ]
  401. }
  402. },
  403. component: () => import('src/pages/User/Invoice/Show.vue')
  404. },
  405. {
  406. path: 'ticket',
  407. name: 'UserPanel.Invoice.Ticket',
  408. component: () => import('layouts/bareLayout.vue'),
  409. children: [
  410. {
  411. path: '',
  412. name: 'UserPanel.Invoice.Ticket.List',
  413. component: () => import('src/pages/User/Invoice/Ticket/List.vue')
  414. },
  415. {
  416. path: ':id',
  417. name: 'UserPanel.Invoice.Ticket.Show',
  418. component: () => import('src/pages/User/Invoice/Ticket/Show.vue')
  419. },
  420. {
  421. path: 'create',
  422. name: 'UserPanel.Invoice.Ticket.Create',
  423. component: () => import('src/pages/User/Invoice/Ticket/Create.vue')
  424. }
  425. ]
  426. }
  427. ]
  428. },
  429. {
  430. path: 'ticket',
  431. name: 'UserPanel.Ticket',
  432. component: () => import('layouts/bareLayout.vue'),
  433. children: [
  434. {
  435. path: '',
  436. name: 'UserPanel.Ticket.List',
  437. component: () => import('src/pages/User/Ticket/List.vue')
  438. },
  439. {
  440. path: ':id',
  441. name: 'UserPanel.Ticket.Show',
  442. meta: {
  443. breadcrumbs: {
  444. visible: true,
  445. loading: false,
  446. path: [
  447. {
  448. label: 'درخواست ها',
  449. to: { name: 'UserPanel.Ticket.List' }
  450. },
  451. {
  452. label: 'جزییات درخواست'
  453. }
  454. ]
  455. }
  456. },
  457. component: () => import('src/pages/User/Ticket/Show.vue')
  458. },
  459. {
  460. path: 'create',
  461. name: 'UserPanel.Ticket.Create',
  462. meta: { middlewares: [Authenticated] },
  463. component: () => import('src/pages/User/Ticket/Create.vue')
  464. }
  465. ]
  466. },
  467. {
  468. path: 'wallet',
  469. name: 'UserPanel.Wallet',
  470. component: () => import('src/pages/User/Wallet/Show.vue'),
  471. meta: {
  472. breadcrumbs: {
  473. visible: true,
  474. loading: false,
  475. path: [
  476. {
  477. label: 'بخش مالی'
  478. },
  479. {
  480. label: 'کیف پول الکترونیک',
  481. to: { name: 'UserPanel.Wallet' }
  482. }
  483. ]
  484. }
  485. }
  486. },
  487. {
  488. path: 'payment',
  489. name: 'UserPanel.Payment',
  490. component: () => import('src/layouts/bareLayout.vue'),
  491. children: [
  492. {
  493. path: '',
  494. name: 'UserPanel.Payment.List',
  495. component: () => import('src/pages/User/Payment/List.vue')
  496. },
  497. {
  498. path: 'transactions',
  499. name: 'UserPanel.Payment.TransactionList',
  500. component: () => import('src/pages/User/Payment/TransactionList.vue')
  501. },
  502. {
  503. name: 'UserPanel.Payment.Show',
  504. path: ':id',
  505. component: () => import('src/pages/User/Payment/Show.vue'),
  506. meta: {
  507. breadcrumbs: {
  508. visible: true,
  509. loading: false,
  510. path: [
  511. {
  512. label: 'کیف پول الکترونیک',
  513. to: { name: 'UserPanel.Wallet' }
  514. },
  515. {
  516. label: 'جزییات پرداخت'
  517. }
  518. ]
  519. }
  520. }
  521. }
  522. ]
  523. }
  524. ]
  525. },
  526. {
  527. path: 'admin',
  528. name: 'Admin',
  529. layoutConfig: {
  530. layoutView: 'hHh LpR lfr',
  531. layoutHeaderType: 'admin',
  532. layoutHeaderBordered: true,
  533. layoutLeftDrawer: true,
  534. layoutLeftDrawerVisible: true,
  535. layoutLeftSideBarType: 'admin',
  536. layoutLeftDrawerBordered: true,
  537. layoutLeftDrawerWidth: 240,
  538. layoutFooterType: 'panel',
  539. layoutFooter: true
  540. },
  541. meta: { middlewares: [Authenticated, canSeeAdminPanel] },
  542. component: () => import('src/layouts/AdminLayout.vue'),
  543. children: [
  544. {
  545. name: 'Admin.Settings',
  546. path: 'settings',
  547. component: () => import('src/pages/Admin/Settings.vue'),
  548. breadcrumbs: { title: 'تنظیمات' }
  549. },
  550. {
  551. name: 'Admin.User',
  552. path: 'users',
  553. component: () => import('layouts/bareLayout.vue'),
  554. breadcrumbs: { title: 'کاربران' },
  555. children: [
  556. { name: 'Admin.User.Index', path: '', component: () => import('src/pages/Admin/User/index.vue') },
  557. { name: 'Admin.User.Show', path: ':id', component: () => import('src/pages/Admin/User/show.vue'), breadcrumbs: { title: 'اطلاعات کاربری' } },
  558. { name: 'Admin.User.ClassroomInfo', path: ':id/classroom/:classroom_id', component: () => import('src/pages/Admin/User/UserClassroomInfo.vue'), breadcrumbs: { title: 'اطلاعات کاربری' } }
  559. ]
  560. },
  561. {
  562. name: 'Admin.Category',
  563. path: 'categories',
  564. component: () => import('layouts/bareLayout.vue'),
  565. breadcrumbs: { title: 'دسته بندی ها' },
  566. children: [
  567. { name: 'Admin.Category.Index', path: '', component: () => import('src/pages/Admin/Category/index.vue') },
  568. { name: 'Admin.Category.Create', path: 'create', component: () => import('src/pages/Admin/Category/create.vue') },
  569. { name: 'Admin.Category.Show', path: ':id', component: () => import('src/pages/Admin/Category/show.vue') }
  570. ]
  571. },
  572. {
  573. name: 'Admin.Category.DiscussionCircles',
  574. path: 'discussion-circles-categories',
  575. component: () => import('layouts/bareLayout.vue'),
  576. breadcrumbs: { title: 'دسته بندی ها' },
  577. children: [
  578. { name: 'Admin.Category.DiscussionCircles.Index', path: '', component: () => import('src/pages/Admin/DiscussionCirclesCategory/index.vue') },
  579. { name: 'Admin.Category.DiscussionCircles.Create', path: 'create', component: () => import('src/pages/Admin/DiscussionCirclesCategory/create.vue') },
  580. { name: 'Admin.Category.DiscussionCircles.Show', path: ':id', component: () => import('src/pages/Admin/DiscussionCirclesCategory/show.vue') }
  581. ]
  582. },
  583. {
  584. name: 'Admin.Unit',
  585. path: 'units',
  586. component: () => import('src/layouts/bareLayout.vue'),
  587. breadcrumbs: { title: 'طلیعه حکمت' },
  588. children: [
  589. // { name: 'Admin.Category.Index', path: '', component: () => import('src/pages/Admin/Category/index.vue') },
  590. // { name: 'Admin.Category.Create', path: 'create', component: () => import('src/pages/Admin/Category/create.vue') },
  591. { name: 'Admin.Unit.Show', path: ':id', component: () => import('src/pages/Admin/Unit/show.vue') },
  592. {
  593. name: 'Admin.Unit.Questions',
  594. path: ':unit_id/session_template/:session_template_id/questions',
  595. component: () => import('src/layouts/bareLayout.vue'),
  596. children: [
  597. { name: 'Admin.Unit.Questions.Index', path: '', component: () => import('src/pages/Admin/Unit/QuestionsList.vue') },
  598. { name: 'Admin.Unit.Questions.Create', path: 'create', component: () => import('src/pages/Admin/Unit/QuestionsCreate.vue') }
  599. // { name: 'Admin.Unit.Questions.Show', path: ':id', component: () => import('src/pages/Admin/Unit/QuestionsShow.vue') }
  600. ]
  601. },
  602. { name: 'Admin.Unit.Questions.Show', path: ':unit_id/questions/:id', component: () => import('src/pages/Admin/Unit/QuestionsShow.vue') },
  603. {
  604. name: 'Admin.Unit.TestSet',
  605. path: ':unit_id/test_set',
  606. component: () => import('src/layouts/bareLayout.vue'),
  607. children: [
  608. { name: 'Admin.Unit.TestSet.Show', path: ':id', component: () => import('src/pages/Admin/TestSet/Show.vue') },
  609. { name: 'Admin.Unit.TestSet.Create', path: 'create', component: () => import('src/pages/Admin/TestSet/Create.vue') }
  610. ]
  611. }
  612. ]
  613. },
  614. {
  615. name: 'Admin.SessionTemplate',
  616. path: 'session-templates',
  617. component: () => import('layouts/bareLayout.vue'),
  618. breadcrumbs: { title: 'طلیعه حکمت' },
  619. children: [
  620. { name: 'Admin.SessionTemplate.Index', path: '', component: () => import('src/pages/Admin/SessionTemplate/index.vue') },
  621. { name: 'Admin.SessionTemplate.Create', path: 'create', component: () => import('src/pages/Admin/SessionTemplate/create.vue') },
  622. { name: 'Admin.SessionTemplate.Show', path: ':id', component: () => import('src/pages/Admin/SessionTemplate/show.vue') }
  623. ]
  624. },
  625. {
  626. path: 'ticket',
  627. name: 'Admin.Ticket',
  628. component: () => import('layouts/bareLayout.vue'),
  629. children: [
  630. {
  631. path: '',
  632. name: 'Admin.Ticket.List',
  633. component: () => import('src/pages/Admin/Ticket/List.vue')
  634. },
  635. {
  636. path: 'educational',
  637. name: 'Admin.Ticket.List.Educational',
  638. component: () => import('src/pages/Admin/Ticket/EducationalList.vue')
  639. },
  640. {
  641. path: 'create',
  642. name: 'Admin.Ticket.Create',
  643. component: () => import('src/pages/Admin/Ticket/Create.vue')
  644. },
  645. {
  646. path: ':id',
  647. name: 'Admin.Ticket.Show',
  648. component: () => import('src/pages/Admin/Ticket/Show.vue')
  649. }
  650. ]
  651. },
  652. {
  653. name: 'Admin.Classroom',
  654. path: 'classrooms',
  655. component: () => import('layouts/bareLayout.vue'),
  656. children: [
  657. { name: 'Admin.Classroom.Index', path: '', component: () => import('src/pages/Admin/Classroom/index.vue') },
  658. { name: 'Admin.Classroom.Create', path: 'create', component: () => import('src/pages/Admin/Classroom/create.vue'), breadcrumbs: { title: 'ساخت دوره آموزشی' } },
  659. { name: 'Admin.Classroom.Show', path: ':id', component: () => import('src/pages/Admin/Classroom/show.vue') },
  660. { name: 'Admin.Classroom.Session.AttendanceSheetList', path: ':classroom_id/session/:session_id/session_attendance_sheets', component: () => import('pages/Admin/Classroom/SessionActivitySheets/sessionActivitySheets.vue') },
  661. { name: 'Admin.Classroom.Session.AttendanceSheet.Assignment', path: ':classroom_id/session/:session_id/session_attendance_sheet/:session_attendance_sheet_id/assignment', component: () => import('pages/Admin/Classroom/SessionActivitySheets/Assignment.vue') },
  662. { name: 'Admin.Classroom.Session.AttendanceSheet.Attendance', path: ':classroom_id/session/:session_id/session_attendance_sheet/:session_attendance_sheet_id/attendance', component: () => import('pages/Admin/Classroom/SessionActivitySheets/Attendance.vue') },
  663. { name: 'Admin.Classroom.Project.Create', path: ':classroom_id/project/create', component: () => import('src/pages/Admin/Classroom/project/create.vue') },
  664. { name: 'Admin.Classroom.Project.Show', path: ':classroom_id/project/:project_id', component: () => import('src/pages/Admin/Classroom/project/show.vue') },
  665. { name: 'Admin.Classroom.Project.Members', path: ':classroom_id/project/:project_id/members', component: () => import('src/pages/Admin/Classroom/project/members.vue') },
  666. { name: 'Admin.Classroom.projectAttendanceSheets.Show', path: ':classroom_id/project/:project_id/projectAttendanceSheet/:project_attendance_sheets_id', component: () => import('src/pages/Admin/Classroom/ProjectAttendanceSheet/show.vue') },
  667. { name: 'Admin.Classroom.Team.Create', path: ':classroom_id/team/create', component: () => import('src/pages/Admin/Classroom/Team/create.vue') },
  668. { name: 'Admin.Classroom.Team.Show', path: ':classroom_id/team/:team_id', component: () => import('src/pages/Admin/Classroom/Team/show.vue') },
  669. { name: 'Admin.Classroom.Ticket', path: 'ticket', component: () => import('src/pages/Admin/Classroom/Ticket.vue'), breadcrumbs: { title: 'درخواست ها دوره های آموزشی' } },
  670. {
  671. name: 'Admin.Classroom.Group',
  672. path: ':classroom_id',
  673. component: () => import('src/layouts/bareLayout.vue'),
  674. children: [
  675. {
  676. name: 'Admin.Classroom.TestSet',
  677. path: 'test_set',
  678. component: () => import('src/layouts/bareLayout.vue'),
  679. children: [
  680. { name: 'Admin.Classroom.TestSet.Index', path: '', component: () => import('src/pages/Admin/TestSet/Index.vue') },
  681. { name: 'Admin.Classroom.TestSet.Test.Show', path: ':test_set_id/test/:id', component: () => import('src/pages/Admin/Test/Show.vue') },
  682. { name: 'Admin.Classroom.TestSet.Test.Create', path: ':test_set_id/test/create', component: () => import('src/pages/Admin/Test/Create.vue') }
  683. ]
  684. }
  685. ]
  686. }
  687. ]
  688. },
  689. {
  690. name: 'Admin.Event',
  691. path: 'events',
  692. component: () => import('layouts/bareLayout.vue'),
  693. breadcrumbs: { title: 'دوره های آموزشی', route: { name: 'Admin.Event.Index' } },
  694. children: [
  695. { name: 'Admin.Event.Index', path: '', component: () => import('src/pages/Admin/Event/index.vue') },
  696. { name: 'Admin.Event.Create', path: 'create', component: () => import('src/pages/Admin/Event/create.vue'), breadcrumbs: { title: 'ساخت دوره آموزشی' } },
  697. { name: 'Admin.Event.Show', path: ':id', component: () => import('src/pages/Admin/Event/show.vue') },
  698. { name: 'Admin.Event.Session.AttendanceSheetList', path: ':classroom_id/session/:session_id/session_attendance_sheets', component: () => import('pages/Admin/Event/SessionActivitySheets/sessionActivitySheets.vue') },
  699. { name: 'Admin.Event.Session.AttendanceSheet.Assignment', path: ':classroom_id/session/:session_id/session_attendance_sheet/:session_attendance_sheet_id/assignment', component: () => import('pages/Admin/Event/SessionActivitySheets/Assignment.vue') },
  700. { name: 'Admin.Event.Session.AttendanceSheet.Attendance', path: ':classroom_id/session/:session_id/session_attendance_sheet/:session_attendance_sheet_id/attendance', component: () => import('pages/Admin/Event/SessionActivitySheets/Attendance.vue') },
  701. { name: 'Admin.Event.Project.Create', path: ':classroom_id/project/create', component: () => import('src/pages/Admin/Event/project/create.vue'), breadcrumbs: { title: 'ساخت دوره آموزشی' } },
  702. { name: 'Admin.Event.Project.Show', path: ':classroom_id/project/:project_id', component: () => import('src/pages/Admin/Event/project/show.vue') },
  703. { name: 'Admin.Event.Project.Members', path: ':classroom_id/project/:project_id/members', component: () => import('src/pages/Admin/Event/project/members.vue') },
  704. { name: 'Admin.Event.projectAttendanceSheets.Show', path: ':classroom_id/project/:project_id/projectAttendanceSheet/:project_attendance_sheets_id', component: () => import('src/pages/Admin/Event/ProjectAttendanceSheet/show.vue') },
  705. { name: 'Admin.Event.Project', path: ':id', component: () => import('src/pages/Admin/Event/show.vue') },
  706. { name: 'Admin.Event.Ticket', path: 'ticket', component: () => import('src/pages/Admin/Event/Ticket.vue'), breadcrumbs: { title: 'درخواست ها دوره های آموزشی' } }
  707. ]
  708. },
  709. {
  710. name: 'Admin.Classroom.DiscussionCircles',
  711. path: 'discussion-circles-classrooms',
  712. component: () => import('layouts/bareLayout.vue'),
  713. breadcrumbs: { title: 'دوره های آموزشی', route: { name: 'Admin.Classroom.DiscussionCircles.Index' } },
  714. children: [
  715. { name: 'Admin.Classroom.DiscussionCircles.Index', path: '', component: () => import('src/pages/Admin/DiscussionCirclesClassroom/index.vue') },
  716. { name: 'Admin.Classroom.DiscussionCircles.Create', path: 'create', component: () => import('src/pages/Admin/DiscussionCirclesClassroom/create.vue'), breadcrumbs: { title: 'ساخت دوره آموزشی' } },
  717. { name: 'Admin.Classroom.DiscussionCircles.Show', path: ':id', component: () => import('src/pages/Admin/DiscussionCirclesClassroom/show.vue'), breadcrumbs: { title: 'مشاهده اطلاعات دوره آموزشی' } },
  718. { name: 'Admin.Classroom.DiscussionCircles.Ticket', path: 'ticket', component: () => import('src/pages/Admin/DiscussionCirclesClassroom/Ticket.vue'), breadcrumbs: { title: 'درخواست ها دوره های آموزشی' } }
  719. ]
  720. },
  721. {
  722. path: 'content',
  723. name: 'Admin.Content',
  724. component: () => import('layouts/bareLayout.vue'),
  725. children: [
  726. { path: '', name: 'Admin.Content.List', component: () => import('src/pages/Admin/Content/List.vue') },
  727. { path: 'create', name: 'Admin.Content.Create', component: () => import('src/pages/Admin/Content/Create.vue') },
  728. { path: ':id', name: 'Admin.Content.Show', component: () => import('src/pages/Admin/Content/Show.vue') },
  729. { name: 'Admin.Content.Ticket', path: 'ticket', component: () => import('src/pages/Admin/Content/Ticket.vue'), breadcrumbs: { title: 'درخواست ها دوره های آموزشی' } }
  730. ]
  731. },
  732. {
  733. path: 'post',
  734. name: 'Admin.Post',
  735. component: () => import('layouts/bareLayout.vue'),
  736. children: [
  737. { path: '', name: 'Admin.Post.List', component: () => import('src/pages/Admin/Post/List.vue') },
  738. { path: 'create', name: 'Admin.Post.Create', component: () => import('src/pages/Admin/Post/Create.vue') },
  739. { path: ':id', name: 'Admin.Post.Show', component: () => import('src/pages/Admin/Post/Show.vue') }
  740. ]
  741. },
  742. {
  743. path: 'media',
  744. name: 'Admin.Media',
  745. component: () => import('layouts/bareLayout.vue'),
  746. children: [
  747. // { path: '', name: 'Admin.Content.List', component: () => import('src/pages/Admin/Content/List.vue') },
  748. // { path: 'create', name: 'Admin.Content.Create', component: () => import('src/pages/Admin/Content/Create.vue') },
  749. { path: ':id', name: 'Admin.Media.Show', component: () => import('src/pages/Admin/Media/Show.vue') }
  750. // { name: 'Admin.Content.Ticket', path: 'ticket', component: () => import('src/pages/Admin/Classroom/Ticket.vue'), breadcrumbs: { title: 'درخواست ها دوره های آموزشی' } }
  751. ]
  752. },
  753. {
  754. path: 'content-category',
  755. name: 'Admin.ContentCategory',
  756. component: () => import('layouts/bareLayout.vue'),
  757. children: [
  758. { path: '', name: 'Admin.ContentCategory.List', component: () => import('src/pages/Admin/ContentCategory/List.vue') },
  759. { path: 'create', name: 'Admin.ContentCategory.Create', component: () => import('src/pages/Admin/ContentCategory/Create.vue') },
  760. { path: ':id', name: 'Admin.ContentCategory.Show', component: () => import('src/pages/Admin/ContentCategory/Show.vue') }
  761. ]
  762. },
  763. {
  764. path: 'post-category',
  765. name: 'Admin.PostCategory',
  766. component: () => import('layouts/bareLayout.vue'),
  767. children: [
  768. { path: '', name: 'Admin.PostCategory.List', component: () => import('src/pages/Admin/PostCategory/List.vue') },
  769. { path: 'create', name: 'Admin.PostCategory.Create', component: () => import('src/pages/Admin/PostCategory/Create.vue') },
  770. { path: ':id', name: 'Admin.PostCategory.Show', component: () => import('src/pages/Admin/PostCategory/Show.vue') }
  771. ]
  772. },
  773. {
  774. name: 'Admin.Session',
  775. path: 'session',
  776. component: () => import('layouts/bareLayout.vue'),
  777. breadcrumbs: { title: 'طلیعه حکمت' },
  778. children: [
  779. { name: 'Admin.Session.Index', path: '', component: () => import('src/pages/Admin/Session/index.vue') },
  780. { name: 'Admin.Session.Create', path: 'create', component: () => import('src/pages/Admin/Session/create.vue') },
  781. { name: 'Admin.Session.Show', path: ':id', component: () => import('src/pages/Admin/Session/show.vue') }
  782. ]
  783. },
  784. {
  785. path: 'invoice',
  786. name: 'Admin.Invoice',
  787. component: () => import('layouts/bareLayout.vue'),
  788. children: [
  789. {
  790. path: '',
  791. name: 'Admin.Invoice.List',
  792. component: () => import('src/pages/Admin/Invoice/List.vue')
  793. },
  794. {
  795. path: ':id',
  796. name: 'Admin.Invoice.Show',
  797. component: () => import('src/pages/Admin/Invoice/Show.vue')
  798. },
  799. {
  800. path: 'ticket',
  801. name: 'Admin.Invoice.Ticket',
  802. component: () => import('layouts/bareLayout.vue'),
  803. children: [
  804. {
  805. path: '',
  806. name: 'Admin.Invoice.Ticket.List',
  807. component: () => import('src/pages/Admin/Invoice/Ticket/List.vue')
  808. },
  809. {
  810. path: ':id',
  811. name: 'Admin.Invoice.Ticket.Show',
  812. component: () => import('src/pages/Admin/Invoice/Ticket/Show.vue')
  813. }
  814. ]
  815. }
  816. ]
  817. },
  818. {
  819. path: 'payment',
  820. name: 'Admin.Payment',
  821. component: () => import('layouts/bareLayout.vue'),
  822. children: [
  823. {
  824. path: '',
  825. name: 'Admin.Payment.List',
  826. component: () => import('src/pages/Admin/Payment/List.vue')
  827. },
  828. {
  829. path: ':id',
  830. name: 'Admin.Payment.Show',
  831. component: () => import('src/pages/Admin/Payment/Show.vue')
  832. }
  833. ]
  834. },
  835. {
  836. path: 'transaction',
  837. name: 'Admin.Transaction',
  838. component: () => import('layouts/bareLayout.vue'),
  839. children: [
  840. {
  841. path: '',
  842. name: 'Admin.Transaction.List',
  843. component: () => import('src/pages/Admin/Transaction/List.vue')
  844. },
  845. {
  846. path: ':id',
  847. name: 'Admin.Transaction.Show',
  848. component: () => import('src/pages/Admin/Transaction/Show.vue')
  849. }
  850. ]
  851. }
  852. ]
  853. },
  854. {
  855. path: 'document',
  856. name: 'Document',
  857. component: () => import('layouts/bareLayout.vue'),
  858. children: [
  859. {
  860. path: 'component',
  861. name: 'component',
  862. component: () => import('src/pages/Document/component.vue'),
  863. breadcrumbs: { title: 'component' },
  864. meta: {
  865. middlewares: [Authenticated]
  866. }
  867. },
  868. {
  869. path: 'theme',
  870. name: 'Document.Theme',
  871. component: () => import('layouts/bareLayout.vue'),
  872. breadcrumbs: { title: 'Theme' },
  873. children: [
  874. {
  875. path: 'controls',
  876. name: 'Document.Theme.Controls',
  877. component: () => import('src/pages/Document/Theme/Controls.vue'),
  878. breadcrumbs: { title: 'Controls' }
  879. }
  880. ]
  881. },
  882. {
  883. path: 'debug',
  884. name: 'Document.Debug',
  885. component: () => import('src/pages/Document/debug.vue')
  886. },
  887. {
  888. path: 'icon-sax',
  889. name: 'Document.IconSax',
  890. component: () => import('src/pages/Document/IconSax.vue')
  891. },
  892. {
  893. path: '/form-generator',
  894. name: 'formGenerator',
  895. component: () => import('src/pages/Document/formGenerator.vue')
  896. }
  897. ]
  898. }
  899. ]
  900. }
  901. // must status 404
  902. // Always leave this as last one,
  903. // but you can also remove it
  904. // {
  905. // path: '/404/:catchAll(.*)*',
  906. // name: 'NotFound',
  907. // component:
  908. // () => import('src/pages/Error404.vue')
  909. // }
  910. ]
  911. export default routes