faalis 0.7.0

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 (286) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +339 -0
  3. data/README.md +45 -0
  4. data/Rakefile +42 -0
  5. data/app/assets/fonts/DroidNaskh-Bold.ttf +0 -0
  6. data/app/assets/fonts/DroidNaskh-Regular.ttf +0 -0
  7. data/app/assets/fonts/OpenSans-Bold.ttf +0 -0
  8. data/app/assets/fonts/OpenSans-BoldItalic.ttf +0 -0
  9. data/app/assets/fonts/OpenSans-ExtraBold.ttf +0 -0
  10. data/app/assets/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  11. data/app/assets/fonts/OpenSans-Italic.ttf +0 -0
  12. data/app/assets/fonts/OpenSans-Light.ttf +0 -0
  13. data/app/assets/fonts/OpenSans-LightItalic.ttf +0 -0
  14. data/app/assets/fonts/OpenSans-Regular.ttf +0 -0
  15. data/app/assets/fonts/OpenSans-Semibold.ttf +0 -0
  16. data/app/assets/fonts/OpenSans-SemiboldItalic.ttf +0 -0
  17. data/app/assets/images/faalis/select2-spinner.gif +0 -0
  18. data/app/assets/images/faalis/select2.png +0 -0
  19. data/app/assets/images/faalis/select2x2.png +0 -0
  20. data/app/assets/javascripts/faalis/application.js +20 -0
  21. data/app/assets/javascripts/faalis/dashboard/angular.js +9 -0
  22. data/app/assets/javascripts/faalis/dashboard/app.js +75 -0
  23. data/app/assets/javascripts/faalis/dashboard/application.js.erb +21 -0
  24. data/app/assets/javascripts/faalis/dashboard/functions.js.erb +91 -0
  25. data/app/assets/javascripts/faalis/dashboard/init.js +38 -0
  26. data/app/assets/javascripts/faalis/dashboard/lib/angular-animate.js +1226 -0
  27. data/app/assets/javascripts/faalis/dashboard/lib/angular-gettext.js +202 -0
  28. data/app/assets/javascripts/faalis/dashboard/lib/angular-resource.js +578 -0
  29. data/app/assets/javascripts/faalis/dashboard/lib/angular-route.js +880 -0
  30. data/app/assets/javascripts/faalis/dashboard/lib/angular.js +20031 -0
  31. data/app/assets/javascripts/faalis/dashboard/lib/lodash.underscore.js +4893 -0
  32. data/app/assets/javascripts/faalis/dashboard/lib/ng-grid.js +3260 -0
  33. data/app/assets/javascripts/faalis/dashboard/lib/ng-quick-date.js +297 -0
  34. data/app/assets/javascripts/faalis/dashboard/lib/restangular.js +1066 -0
  35. data/app/assets/javascripts/faalis/dashboard/lib/select2.js +3255 -0
  36. data/app/assets/javascripts/faalis/dashboard/lib/ui.select2.js +217 -0
  37. data/app/assets/javascripts/faalis/dashboard/locale/translations.js +5 -0
  38. data/app/assets/javascripts/faalis/dashboard/modules/anim.js +32 -0
  39. data/app/assets/javascripts/faalis/dashboard/modules/api.js +32 -0
  40. data/app/assets/javascripts/faalis/dashboard/modules/auth/auth.js +34 -0
  41. data/app/assets/javascripts/faalis/dashboard/modules/auth/group.js +174 -0
  42. data/app/assets/javascripts/faalis/dashboard/modules/auth/profile.js +59 -0
  43. data/app/assets/javascripts/faalis/dashboard/modules/auth/user.js +123 -0
  44. data/app/assets/javascripts/faalis/dashboard/modules/errors.js +47 -0
  45. data/app/assets/javascripts/faalis/dashboard/modules/filter.js +44 -0
  46. data/app/assets/javascripts/faalis/dashboard/modules/list-view.js +310 -0
  47. data/app/assets/javascripts/faalis/dashboard/modules/logs.js +41 -0
  48. data/app/assets/javascripts/faalis/dashboard/modules/modules.js +50 -0
  49. data/app/assets/javascripts/faalis/dashboard/modules/nav.js.erb +97 -0
  50. data/app/assets/javascripts/faalis/dashboard/templates/application.handlebars.erb +42 -0
  51. data/app/assets/javascripts/faalis/dashboard/templates/auth/groups/details.handlebars.erb +15 -0
  52. data/app/assets/javascripts/faalis/dashboard/templates/auth/groups/index.handlebars.erb +7 -0
  53. data/app/assets/javascripts/faalis/dashboard/templates/auth/groups/new.handlebars.erb +39 -0
  54. data/app/assets/javascripts/faalis/dashboard/templates/auth/index.handlebars.erb +31 -0
  55. data/app/assets/javascripts/faalis/dashboard/templates/auth/users/details.handlebars.erb +15 -0
  56. data/app/assets/javascripts/faalis/dashboard/templates/auth/users/index.handlebars.erb +11 -0
  57. data/app/assets/javascripts/faalis/dashboard/templates/auth/users/new.handlebars.erb +33 -0
  58. data/app/assets/javascripts/faalis/dashboard/templates/components/list-view.handlebars.erb +59 -0
  59. data/app/assets/javascripts/faalis/dashboard/templates/components/model-form.handlebars.erb +3 -0
  60. data/app/assets/javascripts/faalis/dashboard/templates/modules.handlebars.erb +15 -0
  61. data/app/assets/javascripts/faalis/dashboard/templates/navigation.handlebars.erb +43 -0
  62. data/app/assets/javascripts/faalis/dashboard/templates/widgets.handlebars +23 -0
  63. data/app/assets/javascripts/faalis/dashboard/variables.js.erb +17 -0
  64. data/app/assets/javascripts/faalis/groups.js +2 -0
  65. data/app/assets/javascripts/faalis/home.js +2 -0
  66. data/app/assets/javascripts/faalis/i18n.js +13 -0
  67. data/app/assets/javascripts/faalis/locale/en.json +27 -0
  68. data/app/assets/javascripts/faalis/locale/fa.json +27 -0
  69. data/app/assets/javascripts/faalis/users.js +2 -0
  70. data/app/assets/stylesheets/faalis/base.css.scss +264 -0
  71. data/app/assets/stylesheets/faalis/dashboard/dashboard.css.scss +226 -0
  72. data/app/assets/stylesheets/faalis/dashboard/list_view.css.scss +169 -0
  73. data/app/assets/stylesheets/faalis/dashboard/ltr/application.css +26 -0
  74. data/app/assets/stylesheets/faalis/dashboard/ltr/base.css.scss.erb +28 -0
  75. data/app/assets/stylesheets/faalis/dashboard/ltr/buttons.css.scss.erb +48 -0
  76. data/app/assets/stylesheets/faalis/dashboard/ltr/direction.css.scss +38 -0
  77. data/app/assets/stylesheets/faalis/dashboard/ltr/foundation_and_overrides.css.scss +1014 -0
  78. data/app/assets/stylesheets/faalis/dashboard/ng-grid.css.scss +442 -0
  79. data/app/assets/stylesheets/faalis/dashboard/ng-quick-date-default-theme.css.scss +20 -0
  80. data/app/assets/stylesheets/faalis/dashboard/ng-quick-date.css.scss +19 -0
  81. data/app/assets/stylesheets/faalis/dashboard/rtl/application.css +26 -0
  82. data/app/assets/stylesheets/faalis/dashboard/rtl/base.css.scss.erb +31 -0
  83. data/app/assets/stylesheets/faalis/dashboard/rtl/base.css_flymake.scss +25 -0
  84. data/app/assets/stylesheets/faalis/dashboard/rtl/buttons.css.scss.erb +45 -0
  85. data/app/assets/stylesheets/faalis/dashboard/rtl/direction.css.scss +37 -0
  86. data/app/assets/stylesheets/faalis/dashboard/rtl/foundation_and_overrides.css.scss +1014 -0
  87. data/app/assets/stylesheets/faalis/dashboard/select2.css.scss.erb +618 -0
  88. data/app/assets/stylesheets/faalis/dashboard/sidebar.css.scss +93 -0
  89. data/app/assets/stylesheets/faalis/devise.css.scss +34 -0
  90. data/app/assets/stylesheets/faalis/groups.css +4 -0
  91. data/app/assets/stylesheets/faalis/home.css.scss +14 -0
  92. data/app/assets/stylesheets/faalis/ltr/application.css +20 -0
  93. data/app/assets/stylesheets/faalis/ltr/buttons.css.scss.erb +48 -0
  94. data/app/assets/stylesheets/faalis/ltr/foundation_and_overrides.scss.erb +1012 -0
  95. data/app/assets/stylesheets/faalis/mixins.css.scss +15 -0
  96. data/app/assets/stylesheets/faalis/rtl/application.css +20 -0
  97. data/app/assets/stylesheets/faalis/rtl/buttons.css.scss.erb +48 -0
  98. data/app/assets/stylesheets/faalis/rtl/foundation_and_overrides.scss.erb +1012 -0
  99. data/app/assets/stylesheets/faalis/users.css +4 -0
  100. data/app/assets/stylesheets/faalis/variables.css.scss +102 -0
  101. data/app/controllers/faalis/api/v1/groups_controller.rb +75 -0
  102. data/app/controllers/faalis/api/v1/logs_controller.rb +12 -0
  103. data/app/controllers/faalis/api/v1/permissions_controller.rb +17 -0
  104. data/app/controllers/faalis/api/v1/profiles_controller.rb +42 -0
  105. data/app/controllers/faalis/api/v1/users_controller.rb +75 -0
  106. data/app/controllers/faalis/api_controller.rb +51 -0
  107. data/app/controllers/faalis/application_controller.rb +34 -0
  108. data/app/controllers/faalis/dashboard_controller.rb +44 -0
  109. data/app/controllers/faalis/home_controller.rb +19 -0
  110. data/app/controllers/faalis/omniauth/callbacks_controller.rb +43 -0
  111. data/app/helpers/faalis/application_helper.rb +4 -0
  112. data/app/helpers/faalis/dashboard_helper.rb +5 -0
  113. data/app/helpers/faalis/groups_helper.rb +4 -0
  114. data/app/helpers/faalis/home_helper.rb +4 -0
  115. data/app/helpers/faalis/users_helper.rb +4 -0
  116. data/app/models/ability.rb +42 -0
  117. data/app/models/faalis/group.rb +27 -0
  118. data/app/models/faalis/permission.rb +15 -0
  119. data/app/models/faalis/user.rb +81 -0
  120. data/app/views/angularjs_templates/#index.html# +8 -0
  121. data/app/views/angularjs_templates/auth/groups/details.html +21 -0
  122. data/app/views/angularjs_templates/auth/groups/index.html +5 -0
  123. data/app/views/angularjs_templates/auth/groups/new.html +41 -0
  124. data/app/views/angularjs_templates/auth/index.html +30 -0
  125. data/app/views/angularjs_templates/auth/profile/edit.html +54 -0
  126. data/app/views/angularjs_templates/auth/users/details.html +28 -0
  127. data/app/views/angularjs_templates/auth/users/index.html +6 -0
  128. data/app/views/angularjs_templates/auth/users/new.html +56 -0
  129. data/app/views/angularjs_templates/filter/index.html +15 -0
  130. data/app/views/angularjs_templates/index.html +8 -0
  131. data/app/views/angularjs_templates/list-view/index.html +81 -0
  132. data/app/views/angularjs_templates/locale/fa.po +25 -0
  133. data/app/views/angularjs_templates/locale/templates.pot +24 -0
  134. data/app/views/angularjs_templates/logs/index.html +6 -0
  135. data/app/views/angularjs_templates/modules.html +17 -0
  136. data/app/views/angularjs_templates/nav.html.erb +38 -0
  137. data/app/views/devise/confirmations/new.html.erb +34 -0
  138. data/app/views/devise/mailer/confirmation_instructions.html.erb +5 -0
  139. data/app/views/devise/mailer/reset_password_instructions.html.erb +8 -0
  140. data/app/views/devise/mailer/unlock_instructions.html.erb +7 -0
  141. data/app/views/devise/passwords/edit.html.erb +44 -0
  142. data/app/views/devise/passwords/new.html.erb +32 -0
  143. data/app/views/devise/registrations/edit.html.erb +29 -0
  144. data/app/views/devise/registrations/new.html.erb +91 -0
  145. data/app/views/devise/sessions/new.html.erb +98 -0
  146. data/app/views/devise/shared/_links.erb +25 -0
  147. data/app/views/devise/unlocks/new.html.erb +30 -0
  148. data/app/views/faalis/api/v1/groups/create.json.jbuilder +4 -0
  149. data/app/views/faalis/api/v1/groups/destroy.html.erb +2 -0
  150. data/app/views/faalis/api/v1/groups/destroy.json.jbuilder +1 -0
  151. data/app/views/faalis/api/v1/groups/edit.html.erb +2 -0
  152. data/app/views/faalis/api/v1/groups/index.html.erb +2 -0
  153. data/app/views/faalis/api/v1/groups/index.json.jbuilder +6 -0
  154. data/app/views/faalis/api/v1/groups/new.html.erb +2 -0
  155. data/app/views/faalis/api/v1/groups/show.html.erb +2 -0
  156. data/app/views/faalis/api/v1/groups/show.json.jbuilder +5 -0
  157. data/app/views/faalis/api/v1/groups/update.json.jbuilder +4 -0
  158. data/app/views/faalis/api/v1/logs/index.json.jbuilder +1 -0
  159. data/app/views/faalis/api/v1/permissions/index.json.jbuilder +1 -0
  160. data/app/views/faalis/api/v1/users/create.html.erb +2 -0
  161. data/app/views/faalis/api/v1/users/create.json.jbuilder +1 -0
  162. data/app/views/faalis/api/v1/users/destroy.json.jbuilder +1 -0
  163. data/app/views/faalis/api/v1/users/distroy.html.erb +2 -0
  164. data/app/views/faalis/api/v1/users/edit.html.erb +2 -0
  165. data/app/views/faalis/api/v1/users/index.html.erb +2 -0
  166. data/app/views/faalis/api/v1/users/index.json.jbuilder +4 -0
  167. data/app/views/faalis/api/v1/users/show.html.erb +2 -0
  168. data/app/views/faalis/api/v1/users/show.json.jbuilder +2 -0
  169. data/app/views/faalis/api/v1/users/update.json.jbuilder +1 -0
  170. data/app/views/faalis/dashboard/index.html.erb +37 -0
  171. data/app/views/faalis/dashboard/login_required_page.html.erb +5 -0
  172. data/app/views/faalis/home/index.html.erb +119 -0
  173. data/app/views/layouts/faalis/application.html.erb +90 -0
  174. data/app/views/layouts/faalis/dashboard.html.erb +21 -0
  175. data/config/initializers/devise.rb +28 -0
  176. data/config/locales/devise.en.yml +59 -0
  177. data/config/locales/devise.fa.yml +56 -0
  178. data/config/locales/fa/LC_MESSAGES/faalis.mo +0 -0
  179. data/config/locales/fa/faalis.po +181 -0
  180. data/config/locales/fa/messages.mo +0 -0
  181. data/config/locales/faalis.pot +181 -0
  182. data/config/routes.rb +36 -0
  183. data/db/migrate/20131013091000_devise_create_red_base_users.rb +64 -0
  184. data/db/migrate/20131020124701_create_red_base_groups.rb +9 -0
  185. data/db/migrate/20131021170923_create_red_base_permissions.rb +10 -0
  186. data/db/migrate/20131123120422_add_permissions_groups_table.rb +8 -0
  187. data/db/seeds.rb +15 -0
  188. data/lib/faalis.rb +30 -0
  189. data/lib/faalis/active_record.rb +64 -0
  190. data/lib/faalis/api.rb +61 -0
  191. data/lib/faalis/api/groups_api.rb +41 -0
  192. data/lib/faalis/api/permissions_api.rb +24 -0
  193. data/lib/faalis/api/root.rb +15 -0
  194. data/lib/faalis/api/users_api.rb +20 -0
  195. data/lib/faalis/cucumber.rb +25 -0
  196. data/lib/faalis/cucumber/auth.rb +45 -0
  197. data/lib/faalis/cucumber/exceptions.rb +40 -0
  198. data/lib/faalis/cucumber/interaction.rb +43 -0
  199. data/lib/faalis/cucumber/query.rb +28 -0
  200. data/lib/faalis/cucumber/urls.rb +76 -0
  201. data/lib/faalis/dashboard.rb +60 -0
  202. data/lib/faalis/dashboard/controller.rb +42 -0
  203. data/lib/faalis/dashboard/module.rb +45 -0
  204. data/lib/faalis/engine.rb +128 -0
  205. data/lib/faalis/exceptions.rb +26 -0
  206. data/lib/faalis/i18n.rb +35 -0
  207. data/lib/faalis/initialize.rb +7 -0
  208. data/lib/faalis/omniauth.rb +24 -0
  209. data/lib/faalis/omniauth/callbacks.rb +58 -0
  210. data/lib/faalis/plugins.rb +44 -0
  211. data/lib/faalis/version.rb +22 -0
  212. data/lib/faalis_plugin.rb +476 -0
  213. data/lib/generators/faalis/USAGE +8 -0
  214. data/lib/generators/faalis/angularjs_resource_generator.rb +74 -0
  215. data/lib/generators/faalis/install_all_generator.rb +38 -0
  216. data/lib/generators/faalis/install_generator.rb +42 -0
  217. data/lib/generators/faalis/install_specs_generator.rb +48 -0
  218. data/lib/generators/faalis/js_scaffold_generator.rb +273 -0
  219. data/lib/generators/faalis/templates/README +41 -0
  220. data/lib/generators/faalis/templates/SPECS +13 -0
  221. data/lib/generators/faalis/templates/angularjs/details.html.erb +20 -0
  222. data/lib/generators/faalis/templates/angularjs/index.html.erb +62 -0
  223. data/lib/generators/faalis/templates/angularjs/module.js.erb +309 -0
  224. data/lib/generators/faalis/templates/angularjs/new.html.erb +105 -0
  225. data/lib/generators/faalis/templates/api/controller.rb.erb +56 -0
  226. data/lib/generators/faalis/templates/devise.rb +251 -0
  227. data/lib/generators/faalis/templates/faalis.rb +14 -0
  228. data/lib/generators/faalis/templates/fast_gettext.rb +4 -0
  229. data/lib/generators/faalis/templates/features/api.feature +92 -0
  230. data/lib/generators/faalis/templates/features/api.step.rb +7 -0
  231. data/lib/generators/faalis/templates/features/step_definitions/email_steps.rb +206 -0
  232. data/lib/generators/faalis/templates/features/support/email_spec.rb +1 -0
  233. data/lib/generators/faalis/templates/features/support/env.rb +79 -0
  234. data/lib/generators/faalis/templates/formtastic.rb +76 -0
  235. data/lib/generators/faalis/templates/js_scaffold.README +25 -0
  236. data/lib/generators/faalis/templates/seeds.rb +1 -0
  237. data/lib/generators/faalis/templates/spec/factories/groups.rb +5 -0
  238. data/lib/generators/faalis/templates/spec/factories/users.rb +10 -0
  239. data/lib/generators/faalis/templates/spec/spec_helper.rb +69 -0
  240. data/lib/generators/faalis/templates/spec/support/devise.rb +3 -0
  241. data/lib/generators/faalis/templates/views/create.json.jbuilder.erb +2 -0
  242. data/lib/generators/faalis/templates/views/destroy.json.jbuilder.erb +1 -0
  243. data/lib/generators/faalis/templates/views/index.json.jbuilder.erb +10 -0
  244. data/lib/generators/faalis/templates/views/show.json.jbuilder.erb +7 -0
  245. data/lib/generators/faalis/templates/views/update.json.jbuilder.erb +6 -0
  246. data/lib/generators/faalis/views_generator.rb +41 -0
  247. data/lib/tasks/faalis_tasks.rake +23 -0
  248. data/lib/tasks/grunt/Gruntfile.js +25 -0
  249. data/spec/dummy/README.rdoc +28 -0
  250. data/spec/dummy/Rakefile +6 -0
  251. data/spec/dummy/app/assets/javascripts/application.js +13 -0
  252. data/spec/dummy/app/assets/stylesheets/application.css +13 -0
  253. data/spec/dummy/app/controllers/application_controller.rb +5 -0
  254. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  255. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  256. data/spec/dummy/bin/bundle +3 -0
  257. data/spec/dummy/bin/rails +4 -0
  258. data/spec/dummy/bin/rake +4 -0
  259. data/spec/dummy/config.ru +4 -0
  260. data/spec/dummy/config/application.rb +23 -0
  261. data/spec/dummy/config/boot.rb +5 -0
  262. data/spec/dummy/config/database.yml +25 -0
  263. data/spec/dummy/config/environment.rb +5 -0
  264. data/spec/dummy/config/environments/development.rb +29 -0
  265. data/spec/dummy/config/environments/production.rb +80 -0
  266. data/spec/dummy/config/environments/test.rb +36 -0
  267. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  268. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  269. data/spec/dummy/config/initializers/inflections.rb +16 -0
  270. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  271. data/spec/dummy/config/initializers/secret_token.rb +12 -0
  272. data/spec/dummy/config/initializers/session_store.rb +3 -0
  273. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  274. data/spec/dummy/config/locales/en.yml +23 -0
  275. data/spec/dummy/config/routes.rb +4 -0
  276. data/spec/dummy/db/test.sqlite3 +0 -0
  277. data/spec/dummy/log/development.log +0 -0
  278. data/spec/dummy/log/test.log +15 -0
  279. data/spec/dummy/public/404.html +58 -0
  280. data/spec/dummy/public/422.html +58 -0
  281. data/spec/dummy/public/500.html +57 -0
  282. data/spec/dummy/public/favicon.ico +0 -0
  283. data/spec/dummy/tmp/ember-rails/ember-data.js +10204 -0
  284. data/spec/dummy/tmp/ember-rails/ember.js +36991 -0
  285. data/spec/spec_helper.rb +52 -0
  286. metadata +678 -0
@@ -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,102 @@
1
+ $headerHeight: 45px;
2
+ $logoWidth: 150px;
3
+ $logoHeight: 200px;
4
+
5
+ $base_unit: 150px;
6
+
7
+ $wet_asphalt: #34495E;
8
+ $midnight_blue: #2C3E50;
9
+
10
+ $headerbg: #111111;
11
+ $darkbg: #202224;
12
+
13
+ $clouds: #ecf0f1;
14
+ $silver: #bdc3c7;
15
+
16
+ $emerald: #85AE42;
17
+ $nephritis: #27ae60;
18
+
19
+ $alizarin: #E45760;
20
+ $pomegranate: #c0392b;
21
+
22
+ $turquoise: #1ABC9C;
23
+ $green_sea: #16A085;
24
+
25
+ $peter_river: #6DA6BA;
26
+ $belize_hole: #4E8FA6;
27
+
28
+ $amethyst: #9b59b6;
29
+ $wisteria: #8e44ad;
30
+
31
+ $sun_flower: #f0ba4b;
32
+ $orange: #F0BA4B;
33
+
34
+ $carrot: #E67E22;
35
+ $pumpkin: #D35400;
36
+
37
+ $darkergray: #232A30;
38
+ $darkgray: #4f4f4f;
39
+ $lightgray: #7F8C8D;
40
+ $lightergray: #E3E3E3;
41
+ $verylightgray: #fbfbfb;
42
+ $ultra_blue: #F4F4F4;
43
+
44
+ $header-height: 50px;
45
+ $box-bottom-border: 4px;
46
+ $hover-box: $emerald;
47
+
48
+ $dashboard-nav-background: #232A30;
49
+ $dashboard-background: #efefef;
50
+ $dashboard-nav-hover: #2E3639;
51
+ $border-radius: 4px;
52
+
53
+ $tab-bottom-border: 3px;
54
+ $tabs-height: 50px;
55
+ $selected-bg: $orange;
56
+
57
+ .emerald {
58
+ background: $emerald;
59
+ }
60
+
61
+ .orange {
62
+ Background: $orange;
63
+ }
64
+
65
+
66
+ .alizarin {
67
+ Background: $alizarin;
68
+ }
69
+
70
+ .sun_flower {
71
+ Background: $sun_flower;
72
+ }
73
+
74
+ .peter_river {
75
+ Background: $peter_river;
76
+ }
77
+
78
+ .wisteria {
79
+ Background: $wisteria;
80
+ }
81
+
82
+ .amethyst {
83
+ Background: $amethyst;
84
+ }
85
+
86
+ .pomegranate {
87
+ Background: $pomegranate;
88
+ }
89
+
90
+ .belize_hole {
91
+ Background: $belize_hole;
92
+ }
93
+
94
+ .nephritis {
95
+ background: $nephritis;
96
+ }
97
+
98
+ .color-white {
99
+ h1, h2, h3, h4, h5, span, p {
100
+ color: white;
101
+ }
102
+ }
@@ -0,0 +1,75 @@
1
+ require_dependency "faalis/api_controller"
2
+
3
+ module Faalis
4
+ class API::V1::GroupsController < APIController
5
+ # TODO: Use strong params
6
+ # TODO: implement authorization
7
+
8
+ # GET /api/v1/groups
9
+ def index
10
+ @groups = Group.includes(:permissions).all
11
+ authorize! :read, @groups
12
+ respond_with(@groups)
13
+ end
14
+
15
+ def create
16
+ authorize! :create, Faalis::Group
17
+
18
+ permissions = [];
19
+
20
+ (params[:permissions] || []).each do |perm_string|
21
+ perm, model = perm_string.split "|"
22
+ permission = Permission.find_or_create_by_model_and_permission_type(model, perm)
23
+ permissions << permission
24
+ end
25
+
26
+ @group = Group.new({
27
+ name: params[:name],
28
+ permissions: permissions,
29
+ })
30
+ if @group.save
31
+ respond_with(@group)
32
+ else
33
+ respond_to do |format|
34
+ format.json { render :json => {:fields => @group.errors}, :status => :unprocessable_entity }
35
+ end
36
+ end
37
+ end
38
+
39
+ def show
40
+ @group = Group.find(params[:id])
41
+ authorize! :read, @group
42
+ respond_with(@group)
43
+ end
44
+
45
+ def update
46
+
47
+ @group = Group.find(params[:id])
48
+ authorize! :update, @group
49
+
50
+ permissions = [];
51
+ (params[:permissions] || []).each do |perm_string|
52
+ perm, model = perm_string.split "|"
53
+ permission = Permission.find_or_create_by_model_and_permission_type(model, perm)
54
+ permissions << permission
55
+ end
56
+
57
+ if @group.update(:name => params[:name],
58
+ :permissions => permissions)
59
+ respond_with(@group)
60
+ else
61
+ respond_to do |format|
62
+ format.json { render :json => {:fields => @group.errors}, :status => :unprocessable_entity }
63
+ end
64
+ end
65
+ end
66
+
67
+ def destroy
68
+ ids = params[:id].split(",")
69
+ @groups = Group.where(:id => ids)
70
+ authorize! :destory, @groups
71
+ @groups.destroy_all
72
+ end
73
+ end
74
+
75
+ end
@@ -0,0 +1,12 @@
1
+ require_dependency "faalis/api_controller"
2
+
3
+ module Faalis
4
+ class API::V1::LogsController < APIController
5
+
6
+ # GET /api/v1/logs
7
+ def index
8
+ @data = File.open("#{Rails.root}/log/#{Rails.env}.log").read(4096)
9
+ respond_with(@data)
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,17 @@
1
+ require_dependency "faalis/application_controller"
2
+
3
+ module Faalis
4
+ class API::V1::PermissionsController < ApplicationController
5
+
6
+ # GET /api/v1/groups
7
+ def index
8
+ @permissions = []
9
+
10
+ Faalis::Engine.models_with_permission.each do |model|
11
+ model = Object.const_get(model)
12
+ @permissions.concat(model::Permissions.permission_strings(model))
13
+ end
14
+
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,42 @@
1
+ require_dependency "faalis/application_controller"
2
+
3
+ module Faalis
4
+ class API::V1::ProfilesController < APIController
5
+
6
+ def show
7
+ @user = current_user
8
+ respond_with(@user)
9
+ end
10
+
11
+ def update
12
+ @user = current_user
13
+ user_fields = {
14
+ :first_name => params[:first_name],
15
+ :last_name => params[:last_name],
16
+ :email => params[:email],
17
+ }
18
+
19
+ if params.include? :password and params[:password]
20
+ user_fields[:password] = params[:password]
21
+ user_fields[:password_confirmation] = params[:password_confirmation]
22
+
23
+ if @user.update(user_fields)
24
+ respond_with(@user)
25
+ else
26
+ respond_to do |format|
27
+ format.json { render :json => {:fields => @user.errors}, :status => :unprocessable_entity }
28
+ end
29
+ end
30
+ else
31
+
32
+ if @user.update_without_password(user_fields)
33
+ respond_with(@user)
34
+ else
35
+ respond_to do |format|
36
+ format.json { render :json => {:fields => @user.errors}, :status => :unprocessable_entity }
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,75 @@
1
+ require_dependency "faalis/application_controller"
2
+
3
+ module Faalis
4
+ class API::V1::UsersController < APIController
5
+
6
+ def index
7
+ @users = User.joins(:group).all
8
+ authorize! :read, @users
9
+ respond_with(@users)
10
+ end
11
+
12
+ def show
13
+ @user = User.find(params[:id])
14
+ authorize! :read, @user
15
+ respond_with(@user)
16
+ end
17
+
18
+ def destroy
19
+ ids = params[:id].split(",")
20
+ @users = User.where(:id => ids)
21
+ authorize! :destory, @groups
22
+ @users.destroy_all
23
+ end
24
+
25
+ def update
26
+ @user = User.find(params[:id])
27
+ authorize! :update, @user
28
+ user_fields = {
29
+ :first_name => params[:first_name],
30
+ :last_name => params[:last_name],
31
+ :email => params[:email],
32
+ }
33
+
34
+ if params.include? :password and params[:password]
35
+ user_fields[:password] = params[:password]
36
+ end
37
+
38
+ if params.include? :group and params[:group]
39
+ user_fields[:group] = Group.find(params[:group]) || nil
40
+ end
41
+
42
+ if @user.update(user_fields)
43
+ respond_with(@user)
44
+ else
45
+ respond_to do |format|
46
+ format.json { render :json => {:fields => @user.errors}, :status => :unprocessable_entity }
47
+ end
48
+ end
49
+ end
50
+
51
+ def create
52
+ authorize! :create, Faalis::User
53
+
54
+ @user = User.new({
55
+ first_name: params[:first_name],
56
+ last_name: params[:last_name],
57
+ email: params[:email],
58
+ password: params[:password],
59
+ })
60
+
61
+ if params.include? :group
62
+ group = Group.find(params[:group]) || nil
63
+ @user.group = group
64
+ end
65
+
66
+ if @user.save
67
+ respond_with(@user)
68
+ else
69
+ respond_to do |format|
70
+ format.json { render :json => {:fields => @user.errors}, :status => :unprocessable_entity }
71
+ end
72
+ end
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,51 @@
1
+ # -----------------------------------------------------------------------------
2
+ # Red Base - Basic website skel engine
3
+ # Copyright (C) 2012-2013 Yellowen
4
+ #
5
+ # This program is free software; you can redistribute it and/or modify
6
+ # it under the terms of the GNU General Public License as published by
7
+ # the Free Software Foundation; either version 2 of the License, or
8
+ # (at your option) any later version.
9
+ #
10
+ # This program is distributed in the hope that it will be useful,
11
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ # GNU General Public License for more details.
14
+ #
15
+ # You should have received a copy of the GNU General Public License along
16
+ # with this program; if not, write to the Free Software Foundation, Inc.,
17
+ # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18
+ # -----------------------------------------------------------------------------
19
+ require_dependency "faalis/api_controller"
20
+
21
+
22
+ class Faalis::APIController < Faalis::ApplicationController
23
+ respond_to :json
24
+
25
+ before_filter :authenticate_user!
26
+
27
+ protect_from_forgery
28
+
29
+ after_filter :set_csrf_cookie_for_ng
30
+
31
+ def set_csrf_cookie_for_ng
32
+ cookies['XSRF-TOKEN'] = form_authenticity_token if protect_against_forgery?
33
+ end
34
+
35
+ rescue_from CanCan::AccessDenied do |exception|
36
+
37
+ render :status => 403, :json => {
38
+ :error => _("You don't have access to this page"),
39
+ :orig_msg => exception.message,
40
+ :action => exception.action,
41
+ }
42
+ end
43
+
44
+ protected
45
+
46
+ def verified_request?
47
+ super || form_authenticity_token == request.headers['X-XSRF-TOKEN']
48
+ end
49
+
50
+
51
+ end
@@ -0,0 +1,34 @@
1
+ # -----------------------------------------------------------------------------
2
+ # Red Base - Basic website skel engine
3
+ # Copyright (C) 2012-2013 Yellowen
4
+ #
5
+ # This program is free software; you can redistribute it and/or modify
6
+ # it under the terms of the GNU General Public License as published by
7
+ # the Free Software Foundation; either version 2 of the License, or
8
+ # (at your option) any later version.
9
+ #
10
+ # This program is distributed in the hope that it will be useful,
11
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ # GNU General Public License for more details.
14
+ #
15
+ # You should have received a copy of the GNU General Public License along
16
+ # with this program; if not, write to the Free Software Foundation, Inc.,
17
+ # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18
+ # -----------------------------------------------------------------------------
19
+ class Faalis::ApplicationController < ActionController::Base
20
+ include FastGettext::Translation
21
+ before_filter :set_locale
22
+
23
+
24
+ def set_locale
25
+ FastGettext.add_text_domain 'faalis', :path => "#{Faalis::Engine.root}/config/locales", :type => :po
26
+ # All languages you want to allow
27
+ FastGettext.default_available_locales = Faalis::Engine.locales
28
+ FastGettext.default_text_domain = 'faalis'
29
+
30
+ lang = request.env['lang'] || params[:locale] || session[:locale] || I18n.default_locale
31
+ FastGettext.set_locale(lang.to_sym)
32
+ session[:locale] = I18n.locale = lang
33
+ end
34
+ end
@@ -0,0 +1,44 @@
1
+ require_dependency "faalis/application_controller"
2
+
3
+ module Faalis
4
+ class DashboardController < ApplicationController
5
+
6
+ include Faalis::Dashboard::Controller
7
+
8
+ layout "faalis/dashboard"
9
+ before_filter :authenticate_user!, :only => [:modules, :index]
10
+
11
+ respond_to :json, :html
12
+
13
+ def jstemplate
14
+ if user_signed_in?
15
+ render :template => "angularjs_templates/#{params[:path]}", :layout => nil
16
+ else
17
+ render :login_required_page
18
+ end
19
+ end
20
+
21
+ def index
22
+ @jstemplates_path = "/templates"
23
+ end
24
+
25
+ def modules
26
+ dashboard_modules = []
27
+
28
+ Faalis::Engine.dashboard_modules.each do |module_name, attrs|
29
+ if not attrs.include? :title
30
+ attrs[:title] = _(module_name.to_s)
31
+ end
32
+
33
+ if not attrs.include? :resource
34
+ attrs[:resource] = module_name.to_s
35
+ end
36
+
37
+ dashboard_modules << attrs
38
+ end
39
+ dashboard_modules = {:modules => dashboard_modules}
40
+ respond_with dashboard_modules
41
+ end
42
+ end
43
+
44
+ end