GenerateCardsSteps.vue 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. <!--
  2. -->
  3. <template>
  4. <v-stepper v-model="step"
  5. >
  6. <v-stepper-items>
  7. <v-stepper-content step="1">
  8. <div class="row">
  9. <LayoutHeaderUniversalCreationTypeCard
  10. v-if="$can('manage', 'users')"
  11. title="a_person"
  12. text-content="add_new_person_student"
  13. icon="fa fa-user"
  14. type="access"
  15. @typeClick="onTypeClick"
  16. >
  17. </LayoutHeaderUniversalCreationTypeCard>
  18. <LayoutHeaderUniversalCreationTypeCard
  19. v-if="$can('display', 'agenda_page')
  20. && ($ability.can('manage', 'courses')
  21. || $ability.can('manage', 'examens')
  22. || $ability.can('manage', 'educationalprojects')
  23. || $ability.can('manage', 'events'))"
  24. title="an_event"
  25. text-content="add_an_event_course"
  26. icon="fa fa-comment"
  27. type="event"
  28. @typeClick="onTypeClick"
  29. >
  30. </LayoutHeaderUniversalCreationTypeCard>
  31. <LayoutHeaderUniversalCreationTypeCard
  32. v-if="$can('display', 'message_send_page')
  33. && ($ability.can('manage', 'emails')
  34. || $ability.can('manage', 'mails')
  35. || $ability.can('manage', 'texto'))"
  36. title="a_correspondence"
  37. text-content="sen_email_letter"
  38. icon="fa fa-comment"
  39. type="message"
  40. @typeClick="onTypeClick"
  41. >
  42. </LayoutHeaderUniversalCreationTypeCard>
  43. <LayoutHeaderUniversalCreationTypeCard
  44. v-if="$can('manage', 'equipments')"
  45. title="a_materiel"
  46. text-content="add_any_type_material"
  47. icon="fa fa-cube"
  48. :link="adminLegacy+ '/list/create/equipment'"
  49. >
  50. </LayoutHeaderUniversalCreationTypeCard>
  51. </div>
  52. </v-stepper-content>
  53. <v-stepper-content step="2">
  54. <div class="row">
  55. <div v-if="type === 'access'" class="row">
  56. <LayoutHeaderUniversalCreationTypeCard title="a_student" text-content="student_text_creation_card" icon="fa fa-user" :link="adminLegacy+ '/universal_creation_person/student'"></LayoutHeaderUniversalCreationTypeCard>
  57. <LayoutHeaderUniversalCreationTypeCard title="a_guardian" text-content="guardian_text_creation_card" icon="fa fa-female" :link="adminLegacy+ '/universal_creation_person/guardian'"></LayoutHeaderUniversalCreationTypeCard>
  58. <LayoutHeaderUniversalCreationTypeCard title="a_teacher" text-content="teacher_text_creation_card" icon="fa fa-graduation-cap" :link="adminLegacy+ '/universal_creation_person/teacher'"></LayoutHeaderUniversalCreationTypeCard>
  59. <LayoutHeaderUniversalCreationTypeCard title="a_member_of_staff" text-content="personnel_text_creation_card" icon="fa fa-suitcase" :link="adminLegacy+ '/universal_creation_person/personnel'"></LayoutHeaderUniversalCreationTypeCard>
  60. <LayoutHeaderUniversalCreationTypeCard title="a_legal_entity" text-content="moral_text_creation_card" icon="fa fa-building" :link="adminLegacy+ '/universal_creation_person/company'"></LayoutHeaderUniversalCreationTypeCard>
  61. <LayoutHeaderUniversalCreationTypeCard title="another_type_of_contact" text-content="other_contact_text_creation_card" icon="fa fa-plus" :link="adminLegacy+ '/universal_creation_person/other_contact'"></LayoutHeaderUniversalCreationTypeCard>
  62. </div>
  63. <div v-if="type === 'event'" class="row">
  64. <LayoutHeaderUniversalCreationTypeCard v-if="$can('manage', 'courses')" title="course" text-content="course_text_creation_card" icon="fa fa-users" :link="adminLegacy+ '/calendar/create/courses'"></LayoutHeaderUniversalCreationTypeCard>
  65. <LayoutHeaderUniversalCreationTypeCard v-if="$can('manage', 'examens')" title="exam" text-content="exam_text_creation_card" icon="fa fa-graduation-cap" :link="adminLegacy+ '/calendar/create/examens'"></LayoutHeaderUniversalCreationTypeCard>
  66. <LayoutHeaderUniversalCreationTypeCard v-if="$can('manage', 'educationalprojects')" title="educational_services" text-content="educational_services_text_creation_card" icon="fa fa-suitcase" :link="adminLegacy+ '/calendar/create/educational_projects'"></LayoutHeaderUniversalCreationTypeCard>
  67. <LayoutHeaderUniversalCreationTypeCard v-if="$can('manage', 'events')" title="other_event" text-content="other_event_text_creation_card" icon="far fa-calendar" :link="adminLegacy+ '/calendar/create/events'"></LayoutHeaderUniversalCreationTypeCard>
  68. </div>
  69. <div v-if="type === 'message'" class="row">
  70. <LayoutHeaderUniversalCreationTypeCard v-if="$can('manage', 'emails')" title="an_email" text-content="email_text_creation_card" icon="far fa-envelope" :link="adminLegacy+ '/list/create/emails'"></LayoutHeaderUniversalCreationTypeCard>
  71. <LayoutHeaderUniversalCreationTypeCard v-if="$can('manage', 'mails')" title="a_letter" text-content="letter_text_creation_card" icon="far fa-file-alt" :link="adminLegacy+ '/list/create/mails'"></LayoutHeaderUniversalCreationTypeCard>
  72. <LayoutHeaderUniversalCreationTypeCard v-if="$can('manage', 'texto')" title="an_sms" text-content="sms_text_creation_card" icon="fa fa-mobile-alt" :link="adminLegacy+ '/list/create/sms'"></LayoutHeaderUniversalCreationTypeCard>
  73. </div>
  74. </div>
  75. </v-stepper-content>
  76. </v-stepper-items>
  77. </v-stepper>
  78. </template>
  79. <script lang="ts">
  80. import {defineComponent, ref, Ref, useContext} from '@nuxtjs/composition-api'
  81. export default defineComponent({
  82. props: {
  83. step: {
  84. type: Number,
  85. required: true
  86. }
  87. },
  88. setup (_,{emit}) {
  89. const { $config } = useContext()
  90. const onTypeClick = (step:Number,Cardtype:String)=>{
  91. type.value = Cardtype;
  92. emit('updateStep',step);
  93. }
  94. const type:Ref<String> = ref('');
  95. return {
  96. type,
  97. onTypeClick,
  98. adminLegacy: $config.baseURL_adminLegacy
  99. }
  100. }
  101. })
  102. </script>
  103. <style lang="scss" scoped>
  104. .creation-type-container{
  105. border: none!important;
  106. .icon{
  107. i{
  108. font-size: 50px;
  109. color: var(--v-ot_grey-base, #777777);
  110. }
  111. }
  112. .infos-container{
  113. padding: 15px 0;
  114. h4{
  115. font-size: 15px;
  116. color: var(--v-ot_green-base, #00AD8E);
  117. font-weight: bold;
  118. margin-bottom: 6px;
  119. }
  120. p{
  121. font-size: 13px;
  122. padding: 0;
  123. margin: 0;
  124. color: #767676;
  125. }
  126. }
  127. &>div{
  128. &:hover{
  129. cursor: pointer;
  130. background: var(--v-ot_light_green-base, #a9e0d6);
  131. }
  132. }
  133. }
  134. </style>