next_sgad 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (212) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +34 -0
  4. data/Rakefile +37 -0
  5. data/app/assets/config/next_sgad_manifest.js +2 -0
  6. data/app/assets/javascripts/next_sgad/activities.js +2 -0
  7. data/app/assets/javascripts/next_sgad/application.js +108 -0
  8. data/app/assets/javascripts/next_sgad/assessments.js +2 -0
  9. data/app/assets/javascripts/next_sgad/attendances.js +2 -0
  10. data/app/assets/javascripts/next_sgad/configurations.js +2 -0
  11. data/app/assets/javascripts/next_sgad/departments.js +2 -0
  12. data/app/assets/javascripts/next_sgad/employee_goals.js +2 -0
  13. data/app/assets/javascripts/next_sgad/employees.js +2 -0
  14. data/app/assets/javascripts/next_sgad/functions.js +7 -0
  15. data/app/assets/javascripts/next_sgad/goals.js +2 -0
  16. data/app/assets/javascripts/next_sgad/jquery.orgchart.min.js +2 -0
  17. data/app/assets/javascripts/next_sgad/justifications.js +2 -0
  18. data/app/assets/javascripts/next_sgad/positions.js +2 -0
  19. data/app/assets/javascripts/next_sgad/results.js +2 -0
  20. data/app/assets/stylesheets/next_sgad/activities.css +4 -0
  21. data/app/assets/stylesheets/next_sgad/application.css +77 -0
  22. data/app/assets/stylesheets/next_sgad/assessments.css +4 -0
  23. data/app/assets/stylesheets/next_sgad/attendances.css +4 -0
  24. data/app/assets/stylesheets/next_sgad/configurations.css +4 -0
  25. data/app/assets/stylesheets/next_sgad/departments.css +4 -0
  26. data/app/assets/stylesheets/next_sgad/employee_goals.css +4 -0
  27. data/app/assets/stylesheets/next_sgad/employees.css +4 -0
  28. data/app/assets/stylesheets/next_sgad/functions.css +4 -0
  29. data/app/assets/stylesheets/next_sgad/goals.css +4 -0
  30. data/app/assets/stylesheets/next_sgad/jquery.orgchart.min.css +2 -0
  31. data/app/assets/stylesheets/next_sgad/justifications.css +4 -0
  32. data/app/assets/stylesheets/next_sgad/positions.css +4 -0
  33. data/app/assets/stylesheets/next_sgad/results.css +4 -0
  34. data/app/controllers/next_sgad/activities_controller.rb +63 -0
  35. data/app/controllers/next_sgad/application_controller.rb +5 -0
  36. data/app/controllers/next_sgad/assessments_controller.rb +62 -0
  37. data/app/controllers/next_sgad/attendances_controller.rb +62 -0
  38. data/app/controllers/next_sgad/configurations_controller.rb +62 -0
  39. data/app/controllers/next_sgad/departments_controller.rb +62 -0
  40. data/app/controllers/next_sgad/employee_goals_controller.rb +62 -0
  41. data/app/controllers/next_sgad/employees_controller.rb +62 -0
  42. data/app/controllers/next_sgad/functions_controller.rb +62 -0
  43. data/app/controllers/next_sgad/goals_controller.rb +62 -0
  44. data/app/controllers/next_sgad/justifications_controller.rb +62 -0
  45. data/app/controllers/next_sgad/positions_controller.rb +78 -0
  46. data/app/controllers/next_sgad/results_controller.rb +62 -0
  47. data/app/helpers/next_sgad/activities_helper.rb +4 -0
  48. data/app/helpers/next_sgad/application_helper.rb +4 -0
  49. data/app/helpers/next_sgad/assessments_helper.rb +4 -0
  50. data/app/helpers/next_sgad/attendances_helper.rb +4 -0
  51. data/app/helpers/next_sgad/configurations_helper.rb +4 -0
  52. data/app/helpers/next_sgad/departments_helper.rb +4 -0
  53. data/app/helpers/next_sgad/employee_goals_helper.rb +4 -0
  54. data/app/helpers/next_sgad/employees_helper.rb +4 -0
  55. data/app/helpers/next_sgad/functions_helper.rb +4 -0
  56. data/app/helpers/next_sgad/goals_helper.rb +4 -0
  57. data/app/helpers/next_sgad/justifications_helper.rb +4 -0
  58. data/app/helpers/next_sgad/positions_helper.rb +55 -0
  59. data/app/helpers/next_sgad/results_helper.rb +4 -0
  60. data/app/jobs/next_sgad/application_job.rb +4 -0
  61. data/app/mailers/next_sgad/application_mailer.rb +6 -0
  62. data/app/models/next_sgad/activity.rb +4 -0
  63. data/app/models/next_sgad/application_record.rb +18 -0
  64. data/app/models/next_sgad/assessment.rb +128 -0
  65. data/app/models/next_sgad/attendance.rb +70 -0
  66. data/app/models/next_sgad/configuration.rb +4 -0
  67. data/app/models/next_sgad/department.rb +20 -0
  68. data/app/models/next_sgad/employee.rb +28 -0
  69. data/app/models/next_sgad/employee_goal.rb +36 -0
  70. data/app/models/next_sgad/function.rb +8 -0
  71. data/app/models/next_sgad/goal.rb +37 -0
  72. data/app/models/next_sgad/justification.rb +47 -0
  73. data/app/models/next_sgad/position.rb +36 -0
  74. data/app/models/next_sgad/result.rb +27 -0
  75. data/app/models/next_sgad/setting.rb +13 -0
  76. data/app/views/layouts/next_sgad/application.html.erb +14 -0
  77. data/app/views/next_sgad/activities/_form.html.erb +27 -0
  78. data/app/views/next_sgad/activities/edit.html.erb +6 -0
  79. data/app/views/next_sgad/activities/index.html.erb +29 -0
  80. data/app/views/next_sgad/activities/new.html.erb +5 -0
  81. data/app/views/next_sgad/activities/show.html.erb +14 -0
  82. data/app/views/next_sgad/assessments/_form.html.erb +27 -0
  83. data/app/views/next_sgad/assessments/edit.html.erb +6 -0
  84. data/app/views/next_sgad/assessments/index.html.erb +29 -0
  85. data/app/views/next_sgad/assessments/new.html.erb +5 -0
  86. data/app/views/next_sgad/assessments/show.html.erb +14 -0
  87. data/app/views/next_sgad/attendances/_form.html.erb +37 -0
  88. data/app/views/next_sgad/attendances/edit.html.erb +6 -0
  89. data/app/views/next_sgad/attendances/index.html.erb +33 -0
  90. data/app/views/next_sgad/attendances/new.html.erb +5 -0
  91. data/app/views/next_sgad/attendances/show.html.erb +24 -0
  92. data/app/views/next_sgad/configurations/_form.html.erb +32 -0
  93. data/app/views/next_sgad/configurations/edit.html.erb +6 -0
  94. data/app/views/next_sgad/configurations/index.html.erb +31 -0
  95. data/app/views/next_sgad/configurations/new.html.erb +5 -0
  96. data/app/views/next_sgad/configurations/show.html.erb +19 -0
  97. data/app/views/next_sgad/departments/_form.html.erb +32 -0
  98. data/app/views/next_sgad/departments/edit.html.erb +6 -0
  99. data/app/views/next_sgad/departments/index.html.erb +33 -0
  100. data/app/views/next_sgad/departments/new.html.erb +5 -0
  101. data/app/views/next_sgad/departments/show.html.erb +24 -0
  102. data/app/views/next_sgad/employee_goals/_form.html.erb +42 -0
  103. data/app/views/next_sgad/employee_goals/edit.html.erb +6 -0
  104. data/app/views/next_sgad/employee_goals/index.html.erb +35 -0
  105. data/app/views/next_sgad/employee_goals/new.html.erb +5 -0
  106. data/app/views/next_sgad/employee_goals/show.html.erb +29 -0
  107. data/app/views/next_sgad/employees/_form.html.erb +27 -0
  108. data/app/views/next_sgad/employees/_organigrama.html.erb +7 -0
  109. data/app/views/next_sgad/employees/edit.html.erb +6 -0
  110. data/app/views/next_sgad/employees/index.html.erb +31 -0
  111. data/app/views/next_sgad/employees/new.html.erb +5 -0
  112. data/app/views/next_sgad/employees/show.html.erb +19 -0
  113. data/app/views/next_sgad/functions/_form.html.erb +22 -0
  114. data/app/views/next_sgad/functions/edit.html.erb +6 -0
  115. data/app/views/next_sgad/functions/index.html.erb +27 -0
  116. data/app/views/next_sgad/functions/new.html.erb +5 -0
  117. data/app/views/next_sgad/functions/show.html.erb +9 -0
  118. data/app/views/next_sgad/goals/_form.html.erb +62 -0
  119. data/app/views/next_sgad/goals/edit.html.erb +6 -0
  120. data/app/views/next_sgad/goals/index.html.erb +41 -0
  121. data/app/views/next_sgad/goals/new.html.erb +5 -0
  122. data/app/views/next_sgad/goals/show.html.erb +49 -0
  123. data/app/views/next_sgad/justifications/_form.html.erb +22 -0
  124. data/app/views/next_sgad/justifications/edit.html.erb +6 -0
  125. data/app/views/next_sgad/justifications/index.html.erb +27 -0
  126. data/app/views/next_sgad/justifications/new.html.erb +5 -0
  127. data/app/views/next_sgad/justifications/show.html.erb +9 -0
  128. data/app/views/next_sgad/positions/_form.html.erb +43 -0
  129. data/app/views/next_sgad/positions/edit.html.erb +6 -0
  130. data/app/views/next_sgad/positions/index.html.erb +94 -0
  131. data/app/views/next_sgad/positions/new.html.erb +5 -0
  132. data/app/views/next_sgad/positions/organigram.html.erb +1 -0
  133. data/app/views/next_sgad/positions/show.html.erb +34 -0
  134. data/app/views/next_sgad/results/_form.html.erb +37 -0
  135. data/app/views/next_sgad/results/edit.html.erb +6 -0
  136. data/app/views/next_sgad/results/index.html.erb +33 -0
  137. data/app/views/next_sgad/results/new.html.erb +5 -0
  138. data/app/views/next_sgad/results/show.html.erb +24 -0
  139. data/config/initializers/core_extentions.rb +1 -0
  140. data/config/initializers/initializer.rb +1 -0
  141. data/config/initializers/m.rb +1 -0
  142. data/config/initializers/semper.rb +1 -0
  143. data/config/routes.rb +16 -0
  144. data/db/migrate/20171014174705_create_next_sgad_departments.rb +11 -0
  145. data/db/migrate/20171014175212_create_next_sgad_employees.rb +11 -0
  146. data/db/migrate/20171014175507_create_next_sgad_positions.rb +13 -0
  147. data/db/migrate/20171014183337_create_next_sgad_configurations.rb +11 -0
  148. data/db/migrate/20171015073528_add_next_sgad_department_to_department.rb +6 -0
  149. data/db/migrate/20171019142918_remove_table_configurations.rb +5 -0
  150. data/db/migrate/20171019143336_create_next_sgad_settings.rb +11 -0
  151. data/db/migrate/20171022113005_add_paygrade_to_next_sgad_employee.rb +6 -0
  152. data/db/migrate/20171024154422_create_next_sgad_assessments.rb +10 -0
  153. data/db/migrate/20171024172007_create_next_sgad_goals.rb +18 -0
  154. data/db/migrate/20171024181227_create_next_sgad_employee_goals.rb +16 -0
  155. data/db/migrate/20171024192907_corrects_references.rb +8 -0
  156. data/db/migrate/20171024193750_copies_info_from_old_references.rb +8 -0
  157. data/db/migrate/20171025093224_change_column_year_from_assessments.rb +6 -0
  158. data/db/migrate/20171025134655_add_goal_type_to_employee_goals.rb +8 -0
  159. data/db/migrate/20171025135319_addname_to_next_sgad_employee_goals.rb +5 -0
  160. data/db/migrate/20171025153545_add_position_reference_to_goals.rb +4 -0
  161. data/db/migrate/20171026055530_add_position_to_next_sgad_goals.rb +5 -0
  162. data/db/migrate/20171026060110_add_position_to_next_sgad_employee.rb +5 -0
  163. data/db/migrate/20171026060351_copies_posiiton_id_to_employees.rb +9 -0
  164. data/db/migrate/20171026061315_remove_old_reference_columns.rb +8 -0
  165. data/db/migrate/20171026115447_add_description_to_next_sgad_goals.rb +6 -0
  166. data/db/migrate/20171026142240_add_position_to_next_sgad_employee_goals.rb +5 -0
  167. data/db/migrate/20171027210543_create_next_sgad_functions.rb +9 -0
  168. data/db/migrate/20171027210912_add_function_to_next_sgad_positions.rb +5 -0
  169. data/db/migrate/20171027213833_create_join_table_goal_position.rb +8 -0
  170. data/db/migrate/20171027221550_create_join_table_employee_position.rb +8 -0
  171. data/db/migrate/20171027223737_add_efective_to_next_sgad_positions.rb +5 -0
  172. data/db/migrate/20171027230032_remove_position_from_next_sgad_employee.rb +6 -0
  173. data/db/migrate/20171027230033_clear_data.rb +7 -0
  174. data/db/migrate/20171028061909_add_description_to_next_sgad_functions.rb +5 -0
  175. data/db/migrate/20171028140106_add_percentages_to_next_sagad_assessments.rb +6 -0
  176. data/db/migrate/20171029074321_rename_paygrade_and_level_from_employee.rb +7 -0
  177. data/db/migrate/20171029103212_add_email_to_next_sgad_employee.rb +5 -0
  178. data/db/migrate/20171029154047_add_coment_to_next_sgad_employee_goals.rb +6 -0
  179. data/db/migrate/20171029160044_add_amount_to_next_sgad_employee_goals.rb +5 -0
  180. data/db/migrate/20171101112232_change_self_assessment_from_next_sgad_employee_goals.rb +13 -0
  181. data/db/migrate/20171106113735_add_first_name_to_next_sgad_employees.rb +24 -0
  182. data/db/migrate/20171110103155_add_number_to_next_sgad_functions.rb +5 -0
  183. data/db/migrate/20171111081148_create_next_sgad_justifications.rb +9 -0
  184. data/db/migrate/20171111093506_create_next_sgad_attendances.rb +13 -0
  185. data/db/migrate/20171111093524_add_references_to_justifications_and_attendences.rb +10 -0
  186. data/db/migrate/20171111094154_create_join_table_attendance_justification.rb +8 -0
  187. data/db/migrate/20171111121753_create_next_sgad_results.rb +13 -0
  188. data/db/migrate/20171111121935_resolts_relationship.rb +9 -0
  189. data/db/migrate/20171112004221_add_attendance_percentage_to_next_sgad_assessment.rb +14 -0
  190. data/db/migrate/20171112121440_add_status_to_next_sgad_justifications.rb +7 -0
  191. data/db/migrate/20171112172436_add_department_to_attendances.rb +6 -0
  192. data/db/migrate/20171113125224_add_configuration_columns_to_nexts_sgad_assessment.rb +18 -0
  193. data/db/migrate/20171113143825_add_max_number_of_absences_for_five_to_next_sgad_assessments.rb +9 -0
  194. data/db/migrate/20171114135601_change_column_status_from_result.rb +6 -0
  195. data/db/migrate/20171115085324_create_next_sgad_activities.rb +10 -0
  196. data/db/migrate/20171115110522_add_column_nature_and_value_to_results.rb +7 -0
  197. data/db/migrate/20171115111821_remove_unused_columns.rb +19 -0
  198. data/db/migrate/20171115140048_corrects_status.rb +6 -0
  199. data/db/migrate/20171115160122_add_justification_status_to_next_sgad_attendances.rb +5 -0
  200. data/db/migrate/20171115161157_migrate_fill_justification_columns.rb +7 -0
  201. data/lib/concerns/models/employee.rb +25 -0
  202. data/lib/generators/initializer/USAGE +8 -0
  203. data/lib/generators/initializer/initializer_generator.rb +6 -0
  204. data/lib/generators/initializer/templates/initializer.rb +1 -0
  205. data/lib/generators/initializer_generator.rb +6 -0
  206. data/lib/generators/views/USAGE +8 -0
  207. data/lib/generators/views/views_generator.rb +3 -0
  208. data/lib/next_sgad/engine.rb +13 -0
  209. data/lib/next_sgad/version.rb +3 -0
  210. data/lib/next_sgad.rb +5 -0
  211. data/lib/tasks/next_sgad_tasks.rake +4 -0
  212. metadata +268 -0
@@ -0,0 +1,2 @@
1
+ // Place all the behaviors and hooks related to the matching controller here.
2
+ // All this logic will automatically be available in application.js.
@@ -0,0 +1,4 @@
1
+ /*
2
+ Place all the styles related to the matching controller here.
3
+ They will automatically be included in application.css.
4
+ */
@@ -0,0 +1,77 @@
1
+ /*
2
+ * This is a manifest file that'll be compiled into application.css, which will include all the files
3
+ * listed below.
4
+ *
5
+ * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
6
+ * or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path.
7
+ *
8
+ * You're free to add application-wide styles to this file and they'll appear at the bottom of the
9
+ * compiled file so the styles you add here take precedence over styles defined in any other CSS/SCSS
10
+ * files in this directory. Styles in this file should be added after the last require_* statement.
11
+ * It is generally better to create a new file per style scope.
12
+ *
13
+ *= require font-awesome
14
+ *= require_tree .
15
+ *= require_self
16
+ */
17
+
18
+
19
+ [data-orgchart-type="1"]{
20
+ width: 100%;
21
+ }
22
+
23
+ [data-orgchart-type="1"] .orgchart{
24
+ width: 100%;
25
+ }
26
+
27
+
28
+ [data-orgchart-type="1"] .orgchart .node .content{
29
+ height: 80px;
30
+ border: 0;
31
+ background-color: rgba(255, 255, 255, 0);
32
+ }
33
+
34
+
35
+ [data-orgchart-type="1"] .orgchart .node .content .orgchart-avatar{
36
+ height: 70px;
37
+ width: 70px;
38
+ border-radius: 50%;
39
+ position: absolute;
40
+ left: 14px;
41
+ }
42
+
43
+ [data-orgchart-type="1"] .orgchart .node{
44
+ width: 220px;
45
+ }
46
+
47
+ [data-orgchart-type="1"] .orgchart .node .title {
48
+ background-color: #0077c2;
49
+ }
50
+
51
+
52
+
53
+ [data-orgchart-type="1"] .orgchart .node .content>.orgchart-container{
54
+ height: 60px;
55
+ overflow: hidden;
56
+ background-color: #0077c2;
57
+ border-radius: 0 0 4px 4px;
58
+ }
59
+
60
+ [data-orgchart-type="1"] .orgchart .node .content .text{
61
+ width: 135px;
62
+ float: right;
63
+ text-align: left;
64
+ }
65
+
66
+ [data-orgchart-type="1"] .orgchart .node .content .text p{
67
+ margin-top: 0;
68
+ margin-bottom: 0;
69
+ color: #fff;
70
+ font-family: sans-serif;
71
+ }
72
+
73
+ [data-orgchart-type="1"] .orgchart .node .content .text p:empty{
74
+ display: none;
75
+ }
76
+
77
+
@@ -0,0 +1,4 @@
1
+ /*
2
+ Place all the styles related to the matching controller here.
3
+ They will automatically be included in application.css.
4
+ */
@@ -0,0 +1,4 @@
1
+ /*
2
+ Place all the styles related to the matching controller here.
3
+ They will automatically be included in application.css.
4
+ */
@@ -0,0 +1,4 @@
1
+ /*
2
+ Place all the styles related to the matching controller here.
3
+ They will automatically be included in application.css.
4
+ */
@@ -0,0 +1,4 @@
1
+ /*
2
+ Place all the styles related to the matching controller here.
3
+ They will automatically be included in application.css.
4
+ */
@@ -0,0 +1,4 @@
1
+ /*
2
+ Place all the styles related to the matching controller here.
3
+ They will automatically be included in application.css.
4
+ */
@@ -0,0 +1,4 @@
1
+ /*
2
+ Place all the styles related to the matching controller here.
3
+ They will automatically be included in application.css.
4
+ */
@@ -0,0 +1,4 @@
1
+ /*
2
+ Place all the styles related to the matching controller here.
3
+ They will automatically be included in application.css.
4
+ */
@@ -0,0 +1,4 @@
1
+ /*
2
+ Place all the styles related to the matching controller here.
3
+ They will automatically be included in application.css.
4
+ */
@@ -0,0 +1,2 @@
1
+ .orgchart{box-sizing:border-box;display:inline-block;min-height:202px;min-width:202px;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:linear-gradient(90deg,rgba(200,0,0,.15) 10%,rgba(0,0,0,0) 10%),linear-gradient(rgba(200,0,0,.15) 10%,rgba(0,0,0,0) 10%);background-size:10px 10px;border:1px dashed transparent;padding:20px}.orgchart .hidden,.orgchart~.hidden{display:none}.orgchart.b2t{transform:rotate(180deg)}.orgchart.l2r{position:absolute;transform:rotate(-90deg) rotateY(180deg);transform-origin:left top}.orgchart .verticalNodes ul{list-style:none;margin:0;padding-left:18px;text-align:left}.orgchart .verticalNodes ul:first-child{margin-top:2px}.orgchart .verticalNodes>td::before{content:'';border:1px solid rgba(217,83,79,.8)}.orgchart .verticalNodes>td>ul>li:first-child::before{box-sizing:border-box;top:-4px;height:30px;width:calc(50% - 2px);border-width:2px 0 0 2px}.orgchart .verticalNodes ul>li{position:relative}.orgchart .verticalNodes ul>li::after,.orgchart .verticalNodes ul>li::before{box-sizing:border-box;content:'';position:absolute;left:-6px;border-color:rgba(217,83,79,.8);border-style:solid;border-width:0 0 2px 2px}.orgchart .verticalNodes ul>li::before{top:-4px;height:30px;width:11px}.orgchart .verticalNodes ul>li::after{top:1px;height:100%}.orgchart .verticalNodes ul>li:first-child::after{box-sizing:border-box;top:24px;width:11px;border-width:2px 0 0 2px}.orgchart .verticalNodes ul>li:last-child::after{box-sizing:border-box;border-width:2px 0 0}.orgchart.r2l{position:absolute;transform:rotate(90deg);transform-origin:left top}.orgchart>.spinner{font-size:100px;margin-top:30px;color:rgba(68,157,68,.8)}.orgchart table{border-spacing:0;border-collapse:separate}.orgchart>table:first-child{margin:20px auto}.orgchart td{text-align:center;vertical-align:top;padding:0}.orgchart .lines .topLine{border-top:2px solid rgba(217,83,79,.8)}.orgchart .lines .rightLine{border-right:1px solid rgba(217,83,79,.8);float:none;border-radius:0}.orgchart .lines .leftLine{border-left:1px solid rgba(217,83,79,.8);float:none;border-radius:0}.orgchart .lines .downLine{background-color:rgba(217,83,79,.8);margin:0 auto;height:20px;width:2px;float:none}.orgchart .node{display:inline-block;position:relative;margin:0;padding:3px;border:2px dashed transparent;text-align:center;width:130px}.orgchart.l2r .node,.orgchart.r2l .node{width:50px;height:130px}.orgchart .node>.spinner{position:absolute;top:calc(50% - 15px);left:calc(50% - 15px);vertical-align:middle;font-size:30px;color:rgba(68,157,68,.8)}.orgchart .node:hover{background-color:rgba(238,217,54,.5);transition:.5s;cursor:default;z-index:20}.orgchart .node.focused{background-color:rgba(238,217,54,.5)}.orgchart .ghost-node{position:fixed;left:-10000px;top:-10000px}.orgchart .ghost-node rect{fill:#fff;stroke:#bf0000}.orgchart .node.allowedDrop{border-color:rgba(68,157,68,.9)}.orgchart .node .title{text-align:center;font-size:12px;font-weight:700;height:20px;line-height:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-color:rgba(217,83,79,.8);color:#fff;border-radius:4px 4px 0 0}.orgchart.b2t .node .title{transform:rotate(-180deg);transform-origin:center bottom}.orgchart.l2r .node .title{transform:rotate(-90deg) translate(-40px,-40px) rotateY(180deg);transform-origin:bottom center;width:120px}.orgchart.r2l .node .title{transform:rotate(-90deg) translate(-40px,-40px);transform-origin:bottom center;width:120px}.orgchart .node .title .symbol{float:left;margin-top:4px;margin-left:2px}.orgchart .node .content{box-sizing:border-box;width:100%;height:20px;font-size:11px;line-height:18px;border:1px solid rgba(217,83,79,.8);border-radius:0 0 4px 4px;text-align:center;background-color:#fff;color:#333;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.orgchart.b2t .node .content{transform:rotate(180deg);transform-origin:center top}.orgchart.l2r .node .content{transform:rotate(-90deg) translate(-40px,-40px) rotateY(180deg);transform-origin:top center;width:120px}.orgchart.r2l .node .content{transform:rotate(-90deg) translate(-40px,-40px);transform-origin:top center;width:120px}.orgchart .node .edge{font-size:15px;position:absolute;color:rgba(68,157,68,.5);cursor:default;transition:.2s}.orgchart.noncollapsable .node .edge{display:none}.orgchart .edge:hover{color:#449d44;cursor:pointer}.orgchart .node .verticalEdge{width:calc(100% - 10px);width:-webkit-calc(100% - 10px);width:-moz-calc(100% - 10px);left:5px}.orgchart .node .topEdge{top:-4px}.orgchart .node .bottomEdge{bottom:-4px}.orgchart .node .horizontalEdge{width:15px;height:calc(100% - 10px);height:-webkit-calc(100% - 10px);height:-moz-calc(100% - 10px);top:5px}.orgchart .node .rightEdge{right:-4px}.orgchart .node .leftEdge{left:-4px}.orgchart .node .horizontalEdge::before{position:absolute;top:calc(50% - 7px)}.orgchart .node .rightEdge::before{right:3px}.orgchart .node .leftEdge::before{left:3px}.orgchart .node .toggleBtn{position:absolute;left:5px;bottom:-2px;color:rgba(68,157,68,.6)}.orgchart .node .toggleBtn:hover{color:rgba(68,157,68,.8)}.oc-export-btn{display:inline-block;position:absolute;right:5px;top:5px;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;touch-action:manipulation;cursor:pointer;user-select:none;color:#fff;background-color:#5cb85c;border:1px solid transparent;border-color:#4cae4c;border-radius:4px}.oc-export-btn[disabled]{cursor:not-allowed;box-shadow:none;opacity:.3}.oc-export-btn:active,.oc-export-btn:focus,.oc-export-btn:hover{background-color:#449d44;border-color:#347a34}.orgchart~.mask{position:absolute;top:0;right:0;bottom:0;left:0;z-index:999;text-align:center;background-color:rgba(0,0,0,.3)}.orgchart~.mask .spinner{position:absolute;top:calc(50% - 54px);left:calc(50% - 54px);color:rgba(255,255,255,.8);font-size:108px}.orgchart .node{transition:all .3s;opacity:1;top:0;left:0}.orgchart .slide-down{opacity:0;top:40px}.orgchart.l2r .node.slide-down,.orgchart.r2l .node.slide-down{top:130px}.orgchart .slide-up{opacity:0;top:-40px}.orgchart.l2r .node.slide-up,.orgchart.r2l .node.slide-up{top:-130px}.orgchart .slide-right{opacity:0;left:130px}.orgchart.l2r .node.slide-right,.orgchart.r2l .node.slide-right{left:40px}.orgchart .slide-left{opacity:0;left:-130px}.orgchart.l2r .node.slide-left,.orgchart.r2l .node.slide-left{left:-40px}
2
+ /*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNzcy9qcXVlcnkub3JnY2hhcnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVdBLFVBQ0UsV0FBWSxXQUNaLFFBQVMsYUFDVCxXQUFZLE1BQ1osVUFBVyxNQUNYLHNCQUF1QixLQUN2QixvQkFBcUIsS0FDckIsbUJBQW9CLEtBQ3BCLGlCQUFrQixLQUNsQixnQkFBaUIsS0FDakIsWUFBYSxLQUNiLGlCQUFrQiw4REFBdUUsQ0FBRSx5REFDM0YsZ0JBQWlCLEtBQUssS0FDdEIsT0FBUSxJQUFJLE9BQU8sWUFDbkIsUUFBUyxLQUdYLGtCQUFtQixrQkFDakIsUUFBUyxLQUdYLGNBQ0UsVUFBVyxlQUdiLGNBQ0UsU0FBVSxTQUNWLFVBQVcsZUFBZSxnQkFDMUIsaUJBQWtCLEtBQUssSUFHekIsNEJBQ0UsV0FBWSxLQUNaLE9BQVEsRUFDUixhQUFjLEtBQ2QsV0FBWSxLQUVkLHdDQUNFLFdBQVksSUFFZCxvQ0FDRSxRQUFTLEdBQ1QsT0FBUSxJQUFJLE1BQU0sbUJBRXBCLHNEQUNFLFdBQVksV0FDWixJQUFLLEtBQ0wsT0FBUSxLQUNSLE1BQU8sZ0JBQ1AsYUFBYyxJQUFJLEVBQUUsRUFBRSxJQUV4QiwrQkFDRSxTQUFVLFNBR1osc0NBREEsdUNBRUUsV0FBWSxXQUNaLFFBQVMsR0FDVCxTQUFVLFNBQ1YsS0FBTSxLQUNOLGFBQWMsbUJBQ2QsYUFBYyxNQUNkLGFBQWMsRUFBRSxFQUFFLElBQUksSUFFeEIsdUNBQ0UsSUFBSyxLQUNMLE9BQVEsS0FDUixNQUFPLEtBRVQsc0NBQ0UsSUFBSyxJQUNMLE9BQVEsS0FFVixrREFDRSxXQUFZLFdBQ1osSUFBSyxLQUNMLE1BQU8sS0FDUCxhQUFjLElBQUksRUFBRSxFQUFFLElBRXhCLGlEQUNFLFdBQVksV0FDWixhQUFjLElBQUksRUFBRSxFQUd0QixjQUNFLFNBQVUsU0FDVixVQUFXLGNBQ1gsaUJBQWtCLEtBQUssSUFHekIsbUJBQ0UsVUFBVyxNQUNYLFdBQVksS0FDWixNQUFPLG1CQUdULGdCQUNFLGVB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LEtBQ1AsaUJBQWtCLFFBQ2xCLE9BQVEsSUFBSSxNQUFNLFlBQ2xCLGFBQWMsUUFDZCxjQUFlLElBR2pCLHlCQUNFLE9BQVEsWUFDUixXQUFZLEtBQ1osUUFBUyxHQUcrQixzQkFBckIscUJBQXJCLHFCQUNFLGlCQUFrQixRQUNsQixhQUFjLFFBR2hCLGdCQUNFLFNBQVUsU0FDVixJQUFLLEVBQ0wsTUFBTyxFQUNQLE9BQVEsRUFDUixLQUFNLEVBQ04sUUFBUyxJQUNULFdBQVksT0FDWixpQkFBa0IsZUFHcEIseUJBQ0UsU0FBVSxTQUNWLElBQUssaUJBQ0wsS0FBTSxpQkFDTixNQUFPLHFCQUNQLFVBQVcsTUFHYixnQkFDRSxXQUFZLElBQUksSUFDaEIsUUFBUyxFQUNULElBQUssRUFDTCxLQUFNLEVBR1Isc0JBQ0UsUUFBUyxFQUNULElBQUssS0FHUCwrQkFBZ0MsK0JBQzlCLElBQUssTUFHUCxvQkFDRSxRQUFTLEVBQ1QsSUFBSyxNQUdQLDZCQUE4Qiw2QkFDNUIsSUFBSyxPQUdQLHVCQUNFLFFBQVMsRUFDVCxLQUFNLE1BR1IsZ0NBQWlDLGdDQUMvQixLQUFNLEtBR1Isc0JBQ0UsUUFBUyxFQUNULEtBQU0sT0FHUiwrQkFBZ0MsK0JBQzlCLEtBQU0iLCJmaWxlIjoianF1ZXJ5Lm9yZ2NoYXJ0Lm1pbi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogalF1ZXJ5IE9yZ0NoYXJ0IFBsdWdpblxuICogaHR0cHM6Ly9naXRodWIuY29tL2RhYmVuZy9PcmdDaGFydFxuICpcbiAqIENvcHlyaWdodCAyMDE2LCBkYWJlbmdcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9kYWJlbmdcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2U6XG4gKiBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICovXG5cbi5vcmdjaGFydCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWluLWhlaWdodDogMjAycHg7XG4gIG1pbi13aWR0aDogMjAycHg7XG4gIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLWtodG1sLXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMjAwLCAwLCAwLCAwLjE1KSAxMCUsIHJnYmEoMCwgMCwgMCwgMCkgMTAlKSwgbGluZWFyLWdyYWRpZW50KHJnYmEoMjAwLCAwLCAwLCAwLjE1KSAxMCUsIHJnYmEoMCwgMCwgMCwgMCkgMTAlKTtcbiAgYmFja2dyb3VuZC1zaXplOiAxMHB4IDEwcHg7XG4gIGJvcmRlcjogMXB4IGRhc2hlZCByZ2JhKDAsMCwwLDApO1xuICBwYWRkaW5nOiAyMHB4O1xufVxuXG4ub3JnY2hhcnQgLmhpZGRlbiwgLm9yZ2NoYXJ0fi5oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ub3JnY2hhcnQuYjJ0IHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbn1cblxuLm9yZ2NoYXJ0LmwyciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKSByb3RhdGVZKDE4MGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wO1xufVxuXG4ub3JnY2hhcnQgLnZlcnRpY2FsTm9kZXMgdWwge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmctbGVmdDogMThweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi5vcmdjaGFydCAudmVydGljYWxOb2RlcyB1bDpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDJweDtcbn1cbi5vcmdjaGFydCAudmVydGljYWxOb2Rlcz50ZDo6YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjE3LCA4MywgNzksIDAuOCk7XG59XG4ub3JnY2hhcnQgLnZlcnRpY2FsTm9kZXM+dGQ+dWw+bGk6Zmlyc3QtY2hpbGQ6OmJlZm9yZSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHRvcDogLTRweDtcbiAgaGVpZ2h0OiAzMHB4O1xuICB3aWR0aDogY2FsYyg1MCUgLSAycHgpO1xuICBib3JkZXItd2lkdGg6IDJweCAwIDAgMnB4O1xufVxuLm9yZ2NoYXJ0IC52ZXJ0aWNhbE5vZGVzIHVsPmxpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLm9yZ2NoYXJ0IC52ZXJ0aWNhbE5vZGVzIHVsPmxpOjpiZWZvcmUsXG4ub3JnY2hhcnQgLnZlcnRpY2FsTm9kZXMgdWw+bGk6OmFmdGVyIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTZweDtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDIxNywgODMsIDc5LCAwLjgpO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDAgMCAycHggMnB4O1xufVxuLm9yZ2NoYXJ0IC52ZXJ0aWNhbE5vZGVzIHVsPmxpOjpiZWZvcmUge1xuICB0b3A6IC00cHg7XG4gIGhlaWdodDogMzBweDtcbiAgd2lkdGg6IDExcHg7XG59XG4ub3JnY2hhcnQgLnZlcnRpY2FsTm9kZXMgdWw+bGk6OmFmdGVyIHtcbiAgdG9wOiAxcHg7XG4gIGhlaWdodDogMTAwJTtcbn1cbi5vcmdjaGFydCAudmVydGljYWxOb2RlcyB1bD5saTpmaXJzdC1jaGlsZDo6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB0b3A6IDI0cHg7XG4gIHdpZHRoOiAxMXB4O1xuICBib3JkZXItd2lkdGg6IDJweCAwIDAgMnB4O1xufVxuLm9yZ2NoYXJ0IC52ZXJ0aWNhbE5vZGVzIHVsPmxpOmxhc3QtY2hpbGQ6OmFmdGVyIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm9yZGVyLXdpZHRoOiAycHggMCAwO1xufVxuXG4ub3JnY2hhcnQucjJsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wO1xufVxuXG4ub3JnY2hhcnQ+LnNwaW5uZXIge1xuICBmb250LXNpemU6IDEwMHB4O1xuICBtYXJnaW4tdG9wOiAzMHB4O1xuICBjb2xvcjogcmdiYSg2OCwgMTU3LCA2OCwgMC44KTtcbn1cblxuLm9yZ2NoYXJ0IHRhYmxlIHtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG4gIGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7XG59XG5cbi5vcmdjaGFydD50YWJsZTpmaXJzdC1jaGlsZHtcbiAgbWFyZ2luOiAyMHB4IGF1dG87XG59XG5cbi5vcmdjaGFydCB0ZCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgcGFkZGluZzogMDtcbn1cblxuLm9yZ2NoYXJ0IC5saW5lcyAudG9wTGluZSB7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCByZ2JhKDIxNywgODMsIDc5LCAwLjgpO1xufVxuXG4ub3JnY2hhcnQgLmxpbmVzIC5yaWdodExpbmUge1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2JhKDIxNywgODMsIDc5LCAwLjgpO1xuICBmbG9hdDogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxuLm9yZ2NoYXJ0IC5saW5lcyAubGVmdExpbmUge1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHJnYmEoMjE3LCA4MywgNzksIDAuOCk7XG4gIGZsb2F0OiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuXG4ub3JnY2hhcnQgLmxpbmVzIC5kb3duTGluZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjE3LCA4MywgNzksIDAuOCk7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBoZWlnaHQ6IDIwcHg7XG4gIHdpZHRoOiAycHg7XG4gIGZsb2F0OiBub25lO1xufVxuXG4vKiBub2RlIHN0eWxpbmcgKi9cbi5vcmdjaGFydCAubm9kZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDNweDtcbiAgYm9yZGVyOiAycHggZGFzaGVkIHRyYW5zcGFyZW50O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdpZHRoOiAxMzBweDtcbn1cblxuLm9yZ2NoYXJ0LmwyciAubm9kZSwgLm9yZ2NoYXJ0LnIybCAubm9kZSB7XG4gIHdpZHRoOiA1MHB4O1xuICBoZWlnaHQ6IDEzMHB4O1xufVxuXG4ub3JnY2hhcnQgLm5vZGU+LnNwaW5uZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogY2FsYyg1MCUgLSAxNXB4KTtcbiAgbGVmdDogY2FsYyg1MCUgLSAxNXB4KTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZm9udC1zaXplOiAzMHB4O1xuICBjb2xvcjogcmdiYSg2OCwgMTU3LCA2OCwgMC44KTtcbn1cblxuLm9yZ2NoYXJ0IC5ub2RlOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMzgsIDIxNywgNTQsIDAuNSk7XG4gIHRyYW5zaXRpb246IC41cztcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICB6LWluZGV4OiAyMDtcbn1cblxuLm9yZ2NoYXJ0IC5ub2RlLmZvY3VzZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIzOCwgMjE3LCA1NCwgMC41KTtcbn1cblxuLm9yZ2NoYXJ0IC5naG9zdC1ub2RlIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBsZWZ0OiAtMTAwMDBweDtcbiAgdG9wOiAtMTAwMDBweDtcbn1cblxuLm9yZ2NoYXJ0IC5naG9zdC1ub2RlIHJlY3Qge1xuICBmaWxsOiAjZmZmZmZmO1xuICBzdHJva2U6ICNiZjAwMDA7XG59XG5cbi5vcmdjaGFydCAubm9kZS5hbGxvd2VkRHJvcCB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSg2OCwgMTU3LCA2OCwgMC45KTtcbn1cblxuLm9yZ2NoYXJ0IC5ub2RlIC50aXRsZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjE3LCA4MywgNzksIDAuOCk7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXItcmFkaXVzOiA0cHggNHB4IDAgMDsgXG59XG5cbi5vcmdjaGFydC5iMnQgLm5vZGUgLnRpdGxlIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTE4MGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBib3R0b207XG59XG5cbi5vcmdjaGFydC5sMnIgLm5vZGUgLnRpdGxlIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKSB0cmFuc2xhdGUoLTQwcHgsIC00MHB4KSByb3RhdGVZKDE4MGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbSBjZW50ZXI7XG4gIHdpZHRoOiAxMjBweDtcbn1cblxuLm9yZ2NoYXJ0LnIybCAubm9kZSAudGl0bGUge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpIHRyYW5zbGF0ZSgtNDBweCwgLTQwcHgpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b20gY2VudGVyO1xuICB3aWR0aDogMTIwcHg7XG59XG5cbi5vcmdjaGFydCAubm9kZSAudGl0bGUgLnN5bWJvbCB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tdG9wOiA0cHg7XG4gIG1hcmdpbi1sZWZ0OiAycHg7XG59XG5cbi5vcmdjaGFydCAubm9kZSAuY29udGVudCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDIwcHg7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjE3LCA4MywgNzksIDAuOCk7XG4gIGJvcmRlci1yYWRpdXM6IDAgMCA0cHggNHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGNvbG9yOiAjMzMzO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLm9yZ2NoYXJ0LmIydCAubm9kZSAuY29udGVudCB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciB0b3A7XG59XG5cbi5vcmdjaGFydC5sMnIgLm5vZGUgLmNvbnRlbnQge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpIHRyYW5zbGF0ZSgtNDBweCwgLTQwcHgpIHJvdGF0ZVkoMTgwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGNlbnRlcjtcbiAgd2lkdGg6IDEyMHB4O1xufVxuXG4ub3JnY2hhcnQucjJsIC5ub2RlIC5jb250ZW50IHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKSB0cmFuc2xhdGUoLTQwcHgsIC00MHB4KTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGNlbnRlcjtcbiAgd2lkdGg6IDEyMHB4O1xufVxuXG4ub3JnY2hhcnQgLm5vZGUgLmVkZ2Uge1xuICBmb250LXNpemU6IDE1cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29sb3I6IHJnYmEoNjgsIDE1NywgNjgsIDAuNSk7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgdHJhbnNpdGlvbjogLjJzO1xufVxuXG4ub3JnY2hhcnQubm9uY29sbGFwc2FibGUgLm5vZGUgLmVkZ2Uge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ub3JnY2hhcnQgLmVkZ2U6aG92ZXIge1xuICBjb2xvcjogIzQ0OWQ0NDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ub3JnY2hhcnQgLm5vZGUgLnZlcnRpY2FsRWRnZSB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAxMHB4KTtcbiAgd2lkdGg6IC13ZWJraXQtY2FsYygxMDAlIC0gMTBweCk7XG4gIHdpZHRoOiAtbW96LWNhbGMoMTAwJSAtIDEwcHgpO1xuICBsZWZ0OiA1cHg7XG59XG5cbi5vcmdjaGFydCAubm9kZSAudG9wRWRnZSB7XG4gIHRvcDogLTRweDtcbn1cblxuLm9yZ2NoYXJ0IC5ub2RlIC5ib3R0b21FZGdlIHtcbiAgYm90dG9tOiAtNHB4O1xufVxuXG4ub3JnY2hhcnQgLm5vZGUgLmhvcml6b250YWxFZGdlIHtcbiAgd2lkdGg6IDE1cHg7XG4gIGhlaWdodDogY2FsYygxMDAlIC0gMTBweCk7XG4gIGhlaWdodDogLXdlYmtpdC1jYWxjKDEwMCUgLSAxMHB4KTtcbiAgaGVpZ2h0OiAtbW96LWNhbGMoMTAwJSAtIDEwcHgpO1xuICB0b3A6IDVweDtcbn1cblxuLm9yZ2NoYXJ0IC5ub2RlIC5yaWdodEVkZ2Uge1xuICByaWdodDogLTRweDtcbn1cblxuLm9yZ2NoYXJ0IC5ub2RlIC5sZWZ0RWRnZSB7XG4gIGxlZnQ6IC00cHg7XG59XG5cbi5vcmdjaGFydCAubm9kZSAuaG9yaXpvbnRhbEVkZ2U6OmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBjYWxjKDUwJSAtIDdweCk7XG59XG5cbi5vcmdjaGFydCAubm9kZSAucmlnaHRFZGdlOjpiZWZvcmUge1xuICByaWdodDogM3B4O1xufVxuXG4ub3JnY2hhcnQgLm5vZGUgLmxlZnRFZGdlOjpiZWZvcmUge1xuICBsZWZ0OiAzcHg7XG59XG5cbi5vcmdjaGFydCAubm9kZSAudG9nZ2xlQnRuIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA1cHg7XG4gIGJvdHRvbTogLTJweDtcbiAgY29sb3I6IHJnYmEoNjgsIDE1NywgNjgsIDAuNik7XG59XG5cbi5vcmdjaGFydCAubm9kZSAudG9nZ2xlQnRuOmhvdmVyIHtcbiAgY29sb3I6IHJnYmEoNjgsIDE1NywgNjgsIDAuOCk7XG59XG5cbi5vYy1leHBvcnQtYnRuIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiA1cHg7XG4gIHRvcDogNXB4O1xuICBwYWRkaW5nOiA2cHggMTJweDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1Y2I4NWM7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItY29sb3I6ICM0Y2FlNGM7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cblxuLm9jLWV4cG9ydC1idG5bZGlzYWJsZWRdIHtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgb3BhY2l0eTogMC4zO1xufVxuXG4ub2MtZXhwb3J0LWJ0bjpob3Zlciwub2MtZXhwb3J0LWJ0bjpmb2N1cywub2MtZXhwb3J0LWJ0bjphY3RpdmUgIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0OWQ0NDtcbiAgYm9yZGVyLWNvbG9yOiAjMzQ3YTM0O1xufVxuXG4ub3JnY2hhcnR+Lm1hc2sge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogOTk5O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsMC4zKTtcbn1cblxuLm9yZ2NoYXJ0fi5tYXNrIC5zcGlubmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGNhbGMoNTAlIC0gNTRweCk7XG4gIGxlZnQ6IGNhbGMoNTAlIC0gNTRweCk7XG4gIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuOCk7XG4gIGZvbnQtc2l6ZTogMTA4cHg7XG59XG5cbi5vcmdjaGFydCAubm9kZSB7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzO1xuICBvcGFjaXR5OiAxO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG59XG5cbi5vcmdjaGFydCAuc2xpZGUtZG93biB7XG4gIG9wYWNpdHk6IDA7XG4gIHRvcDogNDBweDtcbn1cblxuLm9yZ2NoYXJ0LmwyciAubm9kZS5zbGlkZS1kb3duLCAub3JnY2hhcnQucjJsIC5ub2RlLnNsaWRlLWRvd24ge1xuICB0b3A6IDEzMHB4O1xufVxuXG4ub3JnY2hhcnQgLnNsaWRlLXVwIHtcbiAgb3BhY2l0eTogMDtcbiAgdG9wOiAtNDBweDtcbn1cblxuLm9yZ2NoYXJ0LmwyciAubm9kZS5zbGlkZS11cCwgLm9yZ2NoYXJ0LnIybCAubm9kZS5zbGlkZS11cCB7XG4gIHRvcDogLTEzMHB4O1xufVxuXG4ub3JnY2hhcnQgLnNsaWRlLXJpZ2h0IHtcbiAgb3BhY2l0eTogMDtcbiAgbGVmdDogMTMwcHg7XG59XG5cbi5vcmdjaGFydC5sMnIgLm5vZGUuc2xpZGUtcmlnaHQsIC5vcmdjaGFydC5yMmwgLm5vZGUuc2xpZGUtcmlnaHQge1xuICBsZWZ0OiA0MHB4O1xufVxuXG4ub3JnY2hhcnQgLnNsaWRlLWxlZnQge1xuICBvcGFjaXR5OiAwO1xuICBsZWZ0OiAtMTMwcHg7XG59XG5cbi5vcmdjaGFydC5sMnIgLm5vZGUuc2xpZGUtbGVmdCwgLm9yZ2NoYXJ0LnIybCAubm9kZS5zbGlkZS1sZWZ0IHtcbiAgbGVmdDogLTQwcHg7XG59Il19 */
@@ -0,0 +1,4 @@
1
+ /*
2
+ Place all the styles related to the matching controller here.
3
+ They will automatically be included in application.css.
4
+ */
@@ -0,0 +1,4 @@
1
+ /*
2
+ Place all the styles related to the matching controller here.
3
+ They will automatically be included in application.css.
4
+ */
@@ -0,0 +1,4 @@
1
+ /*
2
+ Place all the styles related to the matching controller here.
3
+ They will automatically be included in application.css.
4
+ */
@@ -0,0 +1,63 @@
1
+ require_dependency "next_sgad/application_controller"
2
+
3
+ module NextSgad
4
+ class ActivitiesController < ::ApplicationController
5
+ before_action :set_activity, only: [:show, :edit, :update, :destroy]
6
+
7
+ # GET /activities
8
+ def index
9
+ @activities = Activity.all
10
+ end
11
+
12
+ # GET /activities/1
13
+ def show
14
+ end
15
+
16
+
17
+ # GET /activities/new
18
+ def new
19
+ @activity = Activity.new
20
+ end
21
+
22
+ # GET /activities/1/edit
23
+ def edit
24
+ end
25
+
26
+ # POST /activities
27
+ def create
28
+ @activity = Activity.new(activity_params)
29
+
30
+ if @activity.save
31
+ redirect_to @activity, notice: 'Activity was successfully created.'
32
+ else
33
+ render :new
34
+ end
35
+ end
36
+
37
+ # PATCH/PUT /activities/1
38
+ def update
39
+ if @activity.update(activity_params)
40
+ redirect_to @activity, notice: 'Activity was successfully updated.'
41
+ else
42
+ render :edit
43
+ end
44
+ end
45
+
46
+ # DELETE /activities/1
47
+ def destroy
48
+ @activity.destroy
49
+ redirect_to activities_url, notice: 'Activity was successfully destroyed.'
50
+ end
51
+
52
+ private
53
+ # Use callbacks to share common setup or constraints between actions.
54
+ def set_activity
55
+ @activity = Activity.find(params[:id])
56
+ end
57
+
58
+ # Only allow a trusted parameter "white list" through.
59
+ def activity_params
60
+ params.require(:activity).permit(:created_by, :description)
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,5 @@
1
+ module NextSgad
2
+ class ApplicationController < ActionController::Base
3
+ protect_from_forgery with: :exception
4
+ end
5
+ end
@@ -0,0 +1,62 @@
1
+ require_dependency "next_sgad/application_controller"
2
+
3
+ module NextSgad
4
+ class AssessmentsController < ::ApplicationController
5
+ before_action :set_assessment, only: [:show, :edit, :update, :destroy]
6
+
7
+ # GET /assessments
8
+ def index
9
+ @assessments = Assessment.all
10
+ end
11
+
12
+ # GET /assessments/1
13
+ def show
14
+ end
15
+
16
+ # GET /assessments/new
17
+ def new
18
+ @assessment = Assessment.new
19
+ end
20
+
21
+ # GET /assessments/1/edit
22
+ def edit
23
+ end
24
+
25
+ # POST /assessments
26
+ def create
27
+ @assessment = Assessment.new(assessment_params)
28
+
29
+ if @assessment.create_assessment(current)
30
+ redirect_to @assessment, notice: 'Assessment was successfully created.'
31
+ else
32
+ render :new
33
+ end
34
+ end
35
+
36
+ # PATCH/PUT /assessments/1
37
+ def update
38
+ if @assessment.update(assessment_params)
39
+ redirect_to @assessment, notice: 'Assessment was successfully updated.'
40
+ else
41
+ render :edit
42
+ end
43
+ end
44
+
45
+ # DELETE /assessments/1
46
+ def destroy
47
+ @assessment.destroy
48
+ redirect_to assessments_url, notice: 'Assessment was successfully destroyed.'
49
+ end
50
+
51
+ private
52
+ # Use callbacks to share common setup or constraints between actions.
53
+ def set_assessment
54
+ @assessment = Assessment.find(params[:id])
55
+ end
56
+
57
+ # Only allow a trusted parameter "white list" through.
58
+ def assessment_params
59
+ params.require(:assessment).permit(:year, :status)
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,62 @@
1
+ require_dependency "next_sgad/application_controller"
2
+
3
+ module NextSgad
4
+ class AttendancesController < ::ApplicationController
5
+ before_action :set_attendance, only: [:show, :edit, :update, :destroy]
6
+
7
+ # GET /attendances
8
+ def index
9
+ @attendances = Attendance.all
10
+ end
11
+
12
+ # GET /attendances/1
13
+ def show
14
+ end
15
+
16
+ # GET /attendances/new
17
+ def new
18
+ @attendance = Attendance.new
19
+ end
20
+
21
+ # GET /attendances/1/edit
22
+ def edit
23
+ end
24
+
25
+ # POST /attendances
26
+ def create
27
+ @attendance = Attendance.new(attendance_params)
28
+
29
+ if @attendance.save
30
+ redirect_to @attendance, notice: 'Attendance was successfully created.'
31
+ else
32
+ render :new
33
+ end
34
+ end
35
+
36
+ # PATCH/PUT /attendances/1
37
+ def update
38
+ if @attendance.update(attendance_params)
39
+ redirect_to @attendance, notice: 'Attendance was successfully updated.'
40
+ else
41
+ render :edit
42
+ end
43
+ end
44
+
45
+ # DELETE /attendances/1
46
+ def destroy
47
+ @attendance.destroy
48
+ redirect_to attendances_url, notice: 'Attendance was successfully destroyed.'
49
+ end
50
+
51
+ private
52
+ # Use callbacks to share common setup or constraints between actions.
53
+ def set_attendance
54
+ @attendance = Attendance.find(params[:id])
55
+ end
56
+
57
+ # Only allow a trusted parameter "white list" through.
58
+ def attendance_params
59
+ params.require(:attendance).permit(:date, :status, :employee_note, :supervisor_note)
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,62 @@
1
+ require_dependency "next_sgad/application_controller"
2
+
3
+ module NextSgad
4
+ class ConfigurationsController < ApplicationController
5
+ before_action :set_configuration, only: [:show, :edit, :update, :destroy]
6
+
7
+ # GET /configurations
8
+ def index
9
+ @configurations = Configuration.all
10
+ end
11
+
12
+ # GET /configurations/1
13
+ def show
14
+ end
15
+
16
+ # GET /configurations/new
17
+ def new
18
+ @configuration = Configuration.new
19
+ end
20
+
21
+ # GET /configurations/1/edit
22
+ def edit
23
+ end
24
+
25
+ # POST /configurations
26
+ def create
27
+ @configuration = Configuration.new(configuration_params)
28
+
29
+ if @configuration.save
30
+ redirect_to @configuration, notice: 'Configuration was successfully created.'
31
+ else
32
+ render :new
33
+ end
34
+ end
35
+
36
+ # PATCH/PUT /configurations/1
37
+ def update
38
+ if @configuration.update(configuration_params)
39
+ redirect_to @configuration, notice: 'Configuration was successfully updated.'
40
+ else
41
+ render :edit
42
+ end
43
+ end
44
+
45
+ # DELETE /configurations/1
46
+ def destroy
47
+ @configuration.destroy
48
+ redirect_to configurations_url, notice: 'Configuration was successfully destroyed.'
49
+ end
50
+
51
+ private
52
+ # Use callbacks to share common setup or constraints between actions.
53
+ def set_configuration
54
+ @configuration = Configuration.find(params[:id])
55
+ end
56
+
57
+ # Only allow a trusted parameter "white list" through.
58
+ def configuration_params
59
+ params.require(:configuration).permit(:name, :description, :version)
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,62 @@
1
+ require_dependency "next_sgad/application_controller"
2
+
3
+ module NextSgad
4
+ class DepartmentsController < ::ApplicationController
5
+ before_action :set_department, only: [:show, :edit, :update, :destroy]
6
+
7
+ # GET /departments
8
+ def index
9
+ @departments = Department.all
10
+ end
11
+
12
+ # GET /departments/1
13
+ def show
14
+ end
15
+
16
+ # GET /departments/new
17
+ def new
18
+ @department = Department.new
19
+ end
20
+
21
+ # GET /departments/1/edit
22
+ def edit
23
+ end
24
+
25
+ # POST /departments
26
+ def create
27
+ @department = Department.new(department_params)
28
+
29
+ if @department.save
30
+ redirect_to @department, notice: 'Department was successfully created.'
31
+ else
32
+ render :new
33
+ end
34
+ end
35
+
36
+ # PATCH/PUT /departments/1
37
+ def update
38
+ if @department.update(department_params)
39
+ redirect_to @department, notice: 'Department was successfully updated.'
40
+ else
41
+ render :edit
42
+ end
43
+ end
44
+
45
+ # DELETE /departments/1
46
+ def destroy
47
+ @department.destroy
48
+ redirect_to departments_url, notice: 'Department was successfully destroyed.'
49
+ end
50
+
51
+ private
52
+ # Use callbacks to share common setup or constraints between actions.
53
+ def set_department
54
+ @department = Department.find(params[:id])
55
+ end
56
+
57
+ # Only allow a trusted parameter "white list" through.
58
+ def department_params
59
+ params.require(:department).permit(:name, :description, :number, :department_id)
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,62 @@
1
+ require_dependency "next_sgad/application_controller"
2
+
3
+ module NextSgad
4
+ class EmployeeGoalsController < ::ApplicationController
5
+ before_action :set_employee_goal, only: [:show, :edit, :update, :destroy]
6
+
7
+ # GET /employee_goals
8
+ def index
9
+ @employee_goals = EmployeeGoal.all
10
+ end
11
+
12
+ # GET /employee_goals/1
13
+ def show
14
+ end
15
+
16
+ # GET /employee_goals/new
17
+ def new
18
+ @employee_goal = EmployeeGoal.new
19
+ end
20
+
21
+ # GET /employee_goals/1/edit
22
+ def edit
23
+ end
24
+
25
+ # POST /employee_goals
26
+ def create
27
+ @employee_goal = EmployeeGoal.new(employee_goal_params)
28
+
29
+ if @employee_goal.save
30
+ redirect_to @employee_goal, notice: 'Employee goal was successfully created.'
31
+ else
32
+ render :new
33
+ end
34
+ end
35
+
36
+ # PATCH/PUT /employee_goals/1
37
+ def update
38
+ if @employee_goal.update(employee_goal_params)
39
+ redirect_to @employee_goal, notice: 'Employee goal was successfully updated.'
40
+ else
41
+ render :edit
42
+ end
43
+ end
44
+
45
+ # DELETE /employee_goals/1
46
+ def destroy
47
+ @employee_goal.destroy
48
+ redirect_to employee_goals_url, notice: 'Employee goal was successfully destroyed.'
49
+ end
50
+
51
+ private
52
+ # Use callbacks to share common setup or constraints between actions.
53
+ def set_employee_goal
54
+ @employee_goal = EmployeeGoal.find(params[:id])
55
+ end
56
+
57
+ # Only allow a trusted parameter "white list" through.
58
+ def employee_goal_params
59
+ params.require(:employee_goal).permit(:self_assessment, :supervisor_assessment, :final_assessment, :status, :percentage)
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,62 @@
1
+ require_dependency "next_sgad/application_controller"
2
+
3
+ module NextSgad
4
+ class EmployeesController < ::ApplicationController
5
+ before_action :set_employee, only: [:show, :edit, :update, :destroy]
6
+
7
+ # GET /employees
8
+ def index
9
+ @employees = Employee.all
10
+ end
11
+
12
+ # GET /employees/1
13
+ def show
14
+ end
15
+
16
+ # GET /employees/new
17
+ def new
18
+ @employee = Employee.new
19
+ end
20
+
21
+ # GET /employees/1/edit
22
+ def edit
23
+ end
24
+
25
+ # POST /employees
26
+ def create
27
+ @employee = Employee.new(employee_params)
28
+
29
+ if @employee.save
30
+ redirect_to @employee, notice: 'Employee was successfully created.'
31
+ else
32
+ render :new
33
+ end
34
+ end
35
+
36
+ # PATCH/PUT /employees/1
37
+ def update
38
+ if @employee.update(employee_params)
39
+ redirect_to @employee, notice: 'Employee was successfully updated.'
40
+ else
41
+ render :edit
42
+ end
43
+ end
44
+
45
+ # DELETE /employees/1
46
+ def destroy
47
+ @employee.destroy
48
+ redirect_to employees_url, notice: 'Employee was successfully destroyed.'
49
+ end
50
+
51
+ private
52
+ # Use callbacks to share common setup or constraints between actions.
53
+ def set_employee
54
+ @employee = Employee.find(params[:id])
55
+ end
56
+
57
+ # Only allow a trusted parameter "white list" through.
58
+ def employee_params
59
+ params.require(:employee).permit(:name, :number, :level)
60
+ end
61
+ end
62
+ end