bastion 0.1.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 (278) hide show
  1. checksums.yaml +15 -0
  2. data/.jshintrc +35 -0
  3. data/Gruntfile.js +24 -0
  4. data/LICENSE +339 -0
  5. data/README.md +8 -0
  6. data/Rakefile +53 -0
  7. data/app/assets/javascripts/bastion/auth/auth.module.js +87 -0
  8. data/app/assets/javascripts/bastion/auth/authorization.service.js +48 -0
  9. data/app/assets/javascripts/bastion/bastion-bootstrap.js +32 -0
  10. data/app/assets/javascripts/bastion/bastion-resource.factory.js +39 -0
  11. data/app/assets/javascripts/bastion/bastion.js +52 -0
  12. data/app/assets/javascripts/bastion/bastion.module.js +213 -0
  13. data/app/assets/javascripts/bastion/i18n/README +9 -0
  14. data/app/assets/javascripts/bastion/i18n/i18n.module.js +24 -0
  15. data/app/assets/javascripts/bastion/i18n/katello.pot +968 -0
  16. data/app/assets/javascripts/bastion/i18n/locale/README +1 -0
  17. data/app/assets/javascripts/bastion/i18n/translate.service.js +14 -0
  18. data/app/assets/javascripts/bastion/i18n/translations.js +3 -0
  19. data/app/assets/javascripts/bastion/i18n/zanata.xml +28 -0
  20. data/app/assets/javascripts/bastion/incubator/alch-alert.directive.js +67 -0
  21. data/app/assets/javascripts/bastion/incubator/alch-container-scroll.directive.js +44 -0
  22. data/app/assets/javascripts/bastion/incubator/alch-dropdown.directive.js +28 -0
  23. data/app/assets/javascripts/bastion/incubator/alch-edit.directive.js +361 -0
  24. data/app/assets/javascripts/bastion/incubator/alch-flyout.directive.js +19 -0
  25. data/app/assets/javascripts/bastion/incubator/alch-form-buttons.directive.js +60 -0
  26. data/app/assets/javascripts/bastion/incubator/alch-form-group.directive.js +87 -0
  27. data/app/assets/javascripts/bastion/incubator/alch-infinite-scroll.directive.js +84 -0
  28. data/app/assets/javascripts/bastion/incubator/alch-menu.directive.js +56 -0
  29. data/app/assets/javascripts/bastion/incubator/alch-modal.directive.js +80 -0
  30. data/app/assets/javascripts/bastion/incubator/alch-save-control.directive.js +42 -0
  31. data/app/assets/javascripts/bastion/incubator/alch-table.directive.js +295 -0
  32. data/app/assets/javascripts/bastion/incubator/format/alch-format.module.js +21 -0
  33. data/app/assets/javascripts/bastion/incubator/format/array-to-string.filter.js +30 -0
  34. data/app/assets/javascripts/bastion/incubator/format/boolean-to-yes-no.filter.js +34 -0
  35. data/app/assets/javascripts/bastion/incubator/format/capitalize.filter.js +32 -0
  36. data/app/assets/javascripts/bastion/incubator/format/key-value-to-string.filter.js +40 -0
  37. data/app/assets/javascripts/bastion/incubator/format/unlimitedFilter.filter.js +35 -0
  38. data/app/assets/javascripts/bastion/incubator/stylesheets/alch-edit.scss +34 -0
  39. data/app/assets/javascripts/bastion/incubator/stylesheets/header.scss +207 -0
  40. data/app/assets/javascripts/bastion/incubator/views/alch-alert.html +6 -0
  41. data/app/assets/javascripts/bastion/incubator/views/alch-dropdown.html +19 -0
  42. data/app/assets/javascripts/bastion/incubator/views/alch-edit-add-item.html +21 -0
  43. data/app/assets/javascripts/bastion/incubator/views/alch-edit-add-remove-cancel.html +28 -0
  44. data/app/assets/javascripts/bastion/incubator/views/alch-edit-checkbox.html +6 -0
  45. data/app/assets/javascripts/bastion/incubator/views/alch-edit-custom.html +8 -0
  46. data/app/assets/javascripts/bastion/incubator/views/alch-edit-multiselect.html +17 -0
  47. data/app/assets/javascripts/bastion/incubator/views/alch-edit-save-cancel.html +20 -0
  48. data/app/assets/javascripts/bastion/incubator/views/alch-edit-select.html +10 -0
  49. data/app/assets/javascripts/bastion/incubator/views/alch-edit-text.html +6 -0
  50. data/app/assets/javascripts/bastion/incubator/views/alch-edit-textarea.html +6 -0
  51. data/app/assets/javascripts/bastion/incubator/views/alch-edit.html +18 -0
  52. data/app/assets/javascripts/bastion/incubator/views/alch-flyout.html +10 -0
  53. data/app/assets/javascripts/bastion/incubator/views/alch-form-buttons.html +10 -0
  54. data/app/assets/javascripts/bastion/incubator/views/alch-form-group.html +9 -0
  55. data/app/assets/javascripts/bastion/incubator/views/alch-menu.html +18 -0
  56. data/app/assets/javascripts/bastion/incubator/views/alch-modal-remove.html +13 -0
  57. data/app/assets/javascripts/bastion/incubator/views/alch-save-control.html +18 -0
  58. data/app/assets/javascripts/bastion/layouts/details-nutupane.html +73 -0
  59. data/app/assets/javascripts/bastion/layouts/nutupane.html +63 -0
  60. data/app/assets/javascripts/bastion/layouts/select-all-results.html +9 -0
  61. data/app/assets/javascripts/bastion/menu/menu-expander.service.js +51 -0
  62. data/app/assets/javascripts/bastion/menu/menu.module.js +26 -0
  63. data/app/assets/javascripts/bastion/utils/as.filter.js +33 -0
  64. data/app/assets/javascripts/bastion/utils/form-utils.service.js +53 -0
  65. data/app/assets/javascripts/bastion/utils/utils.module.js +21 -0
  66. data/app/assets/javascripts/bastion/widgets/current-tasks.directive.js +67 -0
  67. data/app/assets/javascripts/bastion/widgets/nutupane-table.directive.js +59 -0
  68. data/app/assets/javascripts/bastion/widgets/nutupane.factory.js +316 -0
  69. data/app/assets/javascripts/bastion/widgets/page-title.directive.js +61 -0
  70. data/app/assets/javascripts/bastion/widgets/page-title.service.js +42 -0
  71. data/app/assets/javascripts/bastion/widgets/path-selector.directive.js +109 -0
  72. data/app/assets/javascripts/bastion/widgets/views/current-tasks.html +23 -0
  73. data/app/assets/javascripts/bastion/widgets/views/path-selector.html +11 -0
  74. data/app/assets/javascripts/bastion/widgets/widgets.module.js +24 -0
  75. data/app/assets/stylesheets/bastion/animations.less +15 -0
  76. data/app/assets/stylesheets/bastion/bastion.less +160 -0
  77. data/app/assets/stylesheets/bastion/forms.less +41 -0
  78. data/app/assets/stylesheets/bastion/gpg-keys.less +36 -0
  79. data/app/assets/stylesheets/bastion/helpers.less +6 -0
  80. data/app/assets/stylesheets/bastion/mixins.less +15 -0
  81. data/app/assets/stylesheets/bastion/nutupane.less +382 -0
  82. data/app/assets/stylesheets/bastion/overrides.less +54 -0
  83. data/app/assets/stylesheets/bastion/path-selector.less +123 -0
  84. data/app/assets/stylesheets/bastion/systems.less +35 -0
  85. data/app/assets/stylesheets/bastion/tasks.less +23 -0
  86. data/app/assets/stylesheets/bastion/typography.less +31 -0
  87. data/app/assets/stylesheets/bastion/variables.less +3 -0
  88. data/app/controllers/bastion/bastion_controller.rb +24 -0
  89. data/app/views/bastion/layouts/application.html.erb +32 -0
  90. data/app/views/bastion/layouts/application_ie.html.erb +5 -0
  91. data/bastion.js +26 -0
  92. data/bower.json +94 -0
  93. data/config/routes.rb +25 -0
  94. data/config/routes/mount_engine.rb +3 -0
  95. data/grunt/bower.js +20 -0
  96. data/grunt/htmlhint.js +15 -0
  97. data/grunt/jshint.js +9 -0
  98. data/grunt/karma.js +83 -0
  99. data/lib/bastion.rb +17 -0
  100. data/lib/bastion/engine.rb +37 -0
  101. data/lib/bastion/version.rb +3 -0
  102. data/package.json +29 -0
  103. data/test/auth/authorization.service.test.js +63 -0
  104. data/test/bastion/bastion-resource.factory.test.js +31 -0
  105. data/test/bastion/test-constants.js +30 -0
  106. data/test/i18n/translate.service.test.js +31 -0
  107. data/test/incubator/alch-alert.directive.test.js +84 -0
  108. data/test/incubator/alch-container-scroll.directive.test.js +68 -0
  109. data/test/incubator/alch-dropdown.directive.test.js +113 -0
  110. data/test/incubator/alch-edit.directive.test.js +320 -0
  111. data/test/incubator/alch-flyout.directive.test.js +73 -0
  112. data/test/incubator/alch-form-buttons.directive.test.js +55 -0
  113. data/test/incubator/alch-form-group.directive.test.js +76 -0
  114. data/test/incubator/alch-infinite-scroll.directive.test.js +123 -0
  115. data/test/incubator/alch-menu.directive.test.js +94 -0
  116. data/test/incubator/alch-modal.directive.test.js +81 -0
  117. data/test/incubator/alch-table.directive.test.js +270 -0
  118. data/test/incubator/format/array-to-string.filter.test.js +38 -0
  119. data/test/incubator/format/boolean-to-yes-no.filter.test.js +41 -0
  120. data/test/incubator/format/capitalize.filter.test.js +35 -0
  121. data/test/incubator/format/key-value-to-string.filter.test.js +60 -0
  122. data/test/incubator/format/unlimited-filter.filter.test.js +31 -0
  123. data/test/incubator/nutupane-table.directive.test.js +69 -0
  124. data/test/incubator/nutupane.factory.test.js +307 -0
  125. data/test/menu/menu-expander.service.test.js +74 -0
  126. data/test/test-mocks.module.js +268 -0
  127. data/test/utils/as.filter.test.js +33 -0
  128. data/test/utils/form-utils.service.test.js +52 -0
  129. data/test/widgets/page-title.directive.test.js +54 -0
  130. data/test/widgets/page-title.service.test.js +51 -0
  131. data/test/widgets/path-selector.directive.test.js +136 -0
  132. data/vendor/assets/fonts/bastion/bootstrap/glyphicons-halflings-regular.eot +0 -0
  133. data/vendor/assets/fonts/bastion/bootstrap/glyphicons-halflings-regular.svg +229 -0
  134. data/vendor/assets/fonts/bastion/bootstrap/glyphicons-halflings-regular.ttf +0 -0
  135. data/vendor/assets/fonts/bastion/bootstrap/glyphicons-halflings-regular.woff +0 -0
  136. data/vendor/assets/fonts/bastion/font-awesome/FontAwesome.otf +0 -0
  137. data/vendor/assets/fonts/bastion/font-awesome/fontawesome-webfont.eot +0 -0
  138. data/vendor/assets/fonts/bastion/font-awesome/fontawesome-webfont.svg +399 -0
  139. data/vendor/assets/fonts/bastion/font-awesome/fontawesome-webfont.ttf +0 -0
  140. data/vendor/assets/fonts/bastion/font-awesome/fontawesome-webfont.woff +0 -0
  141. data/vendor/assets/fonts/bastion/rcue/OpenSans-Bold-webfont.eot +0 -0
  142. data/vendor/assets/fonts/bastion/rcue/OpenSans-Bold-webfont.svg +146 -0
  143. data/vendor/assets/fonts/bastion/rcue/OpenSans-Bold-webfont.ttf +0 -0
  144. data/vendor/assets/fonts/bastion/rcue/OpenSans-Bold-webfont.woff +0 -0
  145. data/vendor/assets/fonts/bastion/rcue/OpenSans-BoldItalic-webfont.eot +0 -0
  146. data/vendor/assets/fonts/bastion/rcue/OpenSans-BoldItalic-webfont.svg +146 -0
  147. data/vendor/assets/fonts/bastion/rcue/OpenSans-BoldItalic-webfont.ttf +0 -0
  148. data/vendor/assets/fonts/bastion/rcue/OpenSans-BoldItalic-webfont.woff +0 -0
  149. data/vendor/assets/fonts/bastion/rcue/OpenSans-ExtraBold-webfont.eot +0 -0
  150. data/vendor/assets/fonts/bastion/rcue/OpenSans-ExtraBold-webfont.svg +146 -0
  151. data/vendor/assets/fonts/bastion/rcue/OpenSans-ExtraBold-webfont.ttf +0 -0
  152. data/vendor/assets/fonts/bastion/rcue/OpenSans-ExtraBold-webfont.woff +0 -0
  153. data/vendor/assets/fonts/bastion/rcue/OpenSans-ExtraBoldItalic-webfont.eot +0 -0
  154. data/vendor/assets/fonts/bastion/rcue/OpenSans-ExtraBoldItalic-webfont.svg +146 -0
  155. data/vendor/assets/fonts/bastion/rcue/OpenSans-ExtraBoldItalic-webfont.ttf +0 -0
  156. data/vendor/assets/fonts/bastion/rcue/OpenSans-ExtraBoldItalic-webfont.woff +0 -0
  157. data/vendor/assets/fonts/bastion/rcue/OpenSans-Italic-webfont.eot +0 -0
  158. data/vendor/assets/fonts/bastion/rcue/OpenSans-Italic-webfont.svg +146 -0
  159. data/vendor/assets/fonts/bastion/rcue/OpenSans-Italic-webfont.ttf +0 -0
  160. data/vendor/assets/fonts/bastion/rcue/OpenSans-Italic-webfont.woff +0 -0
  161. data/vendor/assets/fonts/bastion/rcue/OpenSans-Light-webfont.eot +0 -0
  162. data/vendor/assets/fonts/bastion/rcue/OpenSans-Light-webfont.svg +146 -0
  163. data/vendor/assets/fonts/bastion/rcue/OpenSans-Light-webfont.ttf +0 -0
  164. data/vendor/assets/fonts/bastion/rcue/OpenSans-Light-webfont.woff +0 -0
  165. data/vendor/assets/fonts/bastion/rcue/OpenSans-LightItalic-webfont.eot +0 -0
  166. data/vendor/assets/fonts/bastion/rcue/OpenSans-LightItalic-webfont.svg +146 -0
  167. data/vendor/assets/fonts/bastion/rcue/OpenSans-LightItalic-webfont.ttf +0 -0
  168. data/vendor/assets/fonts/bastion/rcue/OpenSans-LightItalic-webfont.woff +0 -0
  169. data/vendor/assets/fonts/bastion/rcue/OpenSans-Regular-webfont.eot +0 -0
  170. data/vendor/assets/fonts/bastion/rcue/OpenSans-Regular-webfont.svg +146 -0
  171. data/vendor/assets/fonts/bastion/rcue/OpenSans-Regular-webfont.ttf +0 -0
  172. data/vendor/assets/fonts/bastion/rcue/OpenSans-Regular-webfont.woff +0 -0
  173. data/vendor/assets/fonts/bastion/rcue/OpenSans-Semibold-webfont.eot +0 -0
  174. data/vendor/assets/fonts/bastion/rcue/OpenSans-Semibold-webfont.svg +146 -0
  175. data/vendor/assets/fonts/bastion/rcue/OpenSans-Semibold-webfont.ttf +0 -0
  176. data/vendor/assets/fonts/bastion/rcue/OpenSans-Semibold-webfont.woff +0 -0
  177. data/vendor/assets/fonts/bastion/rcue/OpenSans-SemiboldItalic-webfont.eot +0 -0
  178. data/vendor/assets/fonts/bastion/rcue/OpenSans-SemiboldItalic-webfont.svg +146 -0
  179. data/vendor/assets/fonts/bastion/rcue/OpenSans-SemiboldItalic-webfont.ttf +0 -0
  180. data/vendor/assets/fonts/bastion/rcue/OpenSans-SemiboldItalic-webfont.woff +0 -0
  181. data/vendor/assets/fonts/bastion/rcue/Overpass-Bold-webfont.eot +0 -0
  182. data/vendor/assets/fonts/bastion/rcue/Overpass-Bold-webfont.svg +454 -0
  183. data/vendor/assets/fonts/bastion/rcue/Overpass-Bold-webfont.ttf +0 -0
  184. data/vendor/assets/fonts/bastion/rcue/Overpass-Bold-webfont.woff +0 -0
  185. data/vendor/assets/fonts/bastion/rcue/Overpass-Regular-webfont.eot +0 -0
  186. data/vendor/assets/fonts/bastion/rcue/Overpass-Regular-webfont.svg +454 -0
  187. data/vendor/assets/fonts/bastion/rcue/Overpass-Regular-webfont.ttf +0 -0
  188. data/vendor/assets/fonts/bastion/rcue/Overpass-Regular-webfont.woff +0 -0
  189. data/vendor/assets/javascripts/bastion/alchemy/alchemy.js +20 -0
  190. data/vendor/assets/javascripts/bastion/angular-animate/angular-animate.js +1226 -0
  191. data/vendor/assets/javascripts/bastion/angular-blocks/angular-blocks.js +79 -0
  192. data/vendor/assets/javascripts/bastion/angular-bootstrap/ui-bootstrap-tpls.js +3677 -0
  193. data/vendor/assets/javascripts/bastion/angular-bootstrap/ui-bootstrap.js +3427 -0
  194. data/vendor/assets/javascripts/bastion/angular-gettext/angular-gettext.js +345 -0
  195. data/vendor/assets/javascripts/bastion/angular-resource/angular-resource.js +594 -0
  196. data/vendor/assets/javascripts/bastion/angular-route/angular-route.js +920 -0
  197. data/vendor/assets/javascripts/bastion/angular-sanitize/angular-sanitize.js +622 -0
  198. data/vendor/assets/javascripts/bastion/angular-ui-bootstrap/datepicker.js +447 -0
  199. data/vendor/assets/javascripts/bastion/angular-ui-bootstrap/timepicker.js +232 -0
  200. data/vendor/assets/javascripts/bastion/angular-ui-router/angular-ui-router.js +3223 -0
  201. data/vendor/assets/javascripts/bastion/angular-uuid4/angular-uuid4.js +21 -0
  202. data/vendor/assets/javascripts/bastion/angular/angular.js +20560 -0
  203. data/vendor/assets/javascripts/bastion/es5-shim/es5-shim.js +1216 -0
  204. data/vendor/assets/javascripts/bastion/json3/json3.js +861 -0
  205. data/vendor/assets/javascripts/bastion/ngUpload/ng-upload.js +205 -0
  206. data/vendor/assets/javascripts/bastion/underscore/underscore.js +1276 -0
  207. data/vendor/assets/stylesheets/bastion/alchemy/_colors.scss +99 -0
  208. data/vendor/assets/stylesheets/bastion/alchemy/_media_object.scss +22 -0
  209. data/vendor/assets/stylesheets/bastion/alchemy/_mixins.scss +24 -0
  210. data/vendor/assets/stylesheets/bastion/alchemy/_normalize.scss +396 -0
  211. data/vendor/assets/stylesheets/bastion/alchemy/_vars.scss +31 -0
  212. data/vendor/assets/stylesheets/bastion/alchemy/alchemy.scss +8 -0
  213. data/vendor/assets/stylesheets/bastion/bootstrap/alerts.less +67 -0
  214. data/vendor/assets/stylesheets/bastion/bootstrap/badges.less +51 -0
  215. data/vendor/assets/stylesheets/bastion/bootstrap/bootstrap.less +49 -0
  216. data/vendor/assets/stylesheets/bastion/bootstrap/breadcrumbs.less +23 -0
  217. data/vendor/assets/stylesheets/bastion/bootstrap/button-groups.less +227 -0
  218. data/vendor/assets/stylesheets/bastion/bootstrap/buttons.less +155 -0
  219. data/vendor/assets/stylesheets/bastion/bootstrap/carousel.less +232 -0
  220. data/vendor/assets/stylesheets/bastion/bootstrap/close.less +33 -0
  221. data/vendor/assets/stylesheets/bastion/bootstrap/code.less +53 -0
  222. data/vendor/assets/stylesheets/bastion/bootstrap/component-animations.less +29 -0
  223. data/vendor/assets/stylesheets/bastion/bootstrap/dropdowns.less +187 -0
  224. data/vendor/assets/stylesheets/bastion/bootstrap/forms.less +375 -0
  225. data/vendor/assets/stylesheets/bastion/bootstrap/glyphicons.less +237 -0
  226. data/vendor/assets/stylesheets/bastion/bootstrap/grid.less +79 -0
  227. data/vendor/assets/stylesheets/bastion/bootstrap/input-groups.less +136 -0
  228. data/vendor/assets/stylesheets/bastion/bootstrap/jumbotron.less +46 -0
  229. data/vendor/assets/stylesheets/bastion/bootstrap/labels.less +64 -0
  230. data/vendor/assets/stylesheets/bastion/bootstrap/list-group.less +88 -0
  231. data/vendor/assets/stylesheets/bastion/bootstrap/media.less +56 -0
  232. data/vendor/assets/stylesheets/bastion/bootstrap/mixins.less +845 -0
  233. data/vendor/assets/stylesheets/bastion/bootstrap/modals.less +129 -0
  234. data/vendor/assets/stylesheets/bastion/bootstrap/navbar.less +612 -0
  235. data/vendor/assets/stylesheets/bastion/bootstrap/navs.less +242 -0
  236. data/vendor/assets/stylesheets/bastion/bootstrap/normalize.less +406 -0
  237. data/vendor/assets/stylesheets/bastion/bootstrap/pager.less +55 -0
  238. data/vendor/assets/stylesheets/bastion/bootstrap/pagination.less +85 -0
  239. data/vendor/assets/stylesheets/bastion/bootstrap/panels.less +182 -0
  240. data/vendor/assets/stylesheets/bastion/bootstrap/popovers.less +133 -0
  241. data/vendor/assets/stylesheets/bastion/bootstrap/print.less +105 -0
  242. data/vendor/assets/stylesheets/bastion/bootstrap/progress-bars.less +80 -0
  243. data/vendor/assets/stylesheets/bastion/bootstrap/responsive-utilities.less +209 -0
  244. data/vendor/assets/stylesheets/bastion/bootstrap/scaffolding.less +119 -0
  245. data/vendor/assets/stylesheets/bastion/bootstrap/tables.less +231 -0
  246. data/vendor/assets/stylesheets/bastion/bootstrap/theme.less +247 -0
  247. data/vendor/assets/stylesheets/bastion/bootstrap/thumbnails.less +36 -0
  248. data/vendor/assets/stylesheets/bastion/bootstrap/tooltip.less +95 -0
  249. data/vendor/assets/stylesheets/bastion/bootstrap/type.less +281 -0
  250. data/vendor/assets/stylesheets/bastion/bootstrap/utilities.less +56 -0
  251. data/vendor/assets/stylesheets/bastion/bootstrap/variables.less +642 -0
  252. data/vendor/assets/stylesheets/bastion/bootstrap/wells.less +29 -0
  253. data/vendor/assets/stylesheets/bastion/font-awesome/less/bootstrap.less +84 -0
  254. data/vendor/assets/stylesheets/bastion/font-awesome/less/core.less +129 -0
  255. data/vendor/assets/stylesheets/bastion/font-awesome/less/extras.less +93 -0
  256. data/vendor/assets/stylesheets/bastion/font-awesome/less/font-awesome-ie7.less +1953 -0
  257. data/vendor/assets/stylesheets/bastion/font-awesome/less/font-awesome.less +33 -0
  258. data/vendor/assets/stylesheets/bastion/font-awesome/less/icons.less +381 -0
  259. data/vendor/assets/stylesheets/bastion/font-awesome/less/mixins.less +48 -0
  260. data/vendor/assets/stylesheets/bastion/font-awesome/less/path.less +14 -0
  261. data/vendor/assets/stylesheets/bastion/font-awesome/less/variables.less +735 -0
  262. data/vendor/assets/stylesheets/bastion/font-awesome/scss/_bootstrap.scss +84 -0
  263. data/vendor/assets/stylesheets/bastion/font-awesome/scss/_core.scss +129 -0
  264. data/vendor/assets/stylesheets/bastion/font-awesome/scss/_extras.scss +93 -0
  265. data/vendor/assets/stylesheets/bastion/font-awesome/scss/_icons.scss +381 -0
  266. data/vendor/assets/stylesheets/bastion/font-awesome/scss/_mixins.scss +48 -0
  267. data/vendor/assets/stylesheets/bastion/font-awesome/scss/_path.scss +14 -0
  268. data/vendor/assets/stylesheets/bastion/font-awesome/scss/_variables.scss +734 -0
  269. data/vendor/assets/stylesheets/bastion/font-awesome/scss/font-awesome-ie7.scss +1953 -0
  270. data/vendor/assets/stylesheets/bastion/font-awesome/scss/font-awesome.scss +33 -0
  271. data/vendor/assets/stylesheets/bastion/rcue/buttons.less +44 -0
  272. data/vendor/assets/stylesheets/bastion/rcue/fonts.less +52 -0
  273. data/vendor/assets/stylesheets/bastion/rcue/forms.less +19 -0
  274. data/vendor/assets/stylesheets/bastion/rcue/mixins.less +50 -0
  275. data/vendor/assets/stylesheets/bastion/rcue/navbar.less +481 -0
  276. data/vendor/assets/stylesheets/bastion/rcue/rcue.less +15 -0
  277. data/vendor/assets/stylesheets/bastion/rcue/variables.less +47 -0
  278. metadata +376 -0
@@ -0,0 +1,270 @@
1
+ /**
2
+ * Copyright 2014 Red Hat, Inc.
3
+ *
4
+ * This software is licensed to you under the GNU General Public
5
+ * License as published by the Free Software Foundation; either version
6
+ * 2 of the License (GPLv2) or (at your option) any later version.
7
+ * There is NO WARRANTY for this software, express or implied,
8
+ * including the implied warranties of MERCHANTABILITY,
9
+ * NON-INFRINGEMENT, or FITNESS FOR A PARTICULAR PURPOSE. You should
10
+ * have received a copy of GPLv2 along with this software; if not, see
11
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
12
+ */
13
+
14
+
15
+ describe('Directive: alchTable', function() {
16
+ var scope,
17
+ compile,
18
+ tableElement,
19
+ chooseTableElement;
20
+
21
+ beforeEach(module('alchemy'));
22
+
23
+ beforeEach(inject(function(_$compile_, _$rootScope_) {
24
+ compile = _$compile_;
25
+ scope = _$rootScope_;
26
+ }));
27
+
28
+ beforeEach(function() {
29
+ scope.table = {};
30
+ scope.table.rows = [{
31
+ name: 'Spring Bock',
32
+ style: 'ale'
33
+ },{
34
+ name: 'Pilsner',
35
+ style: 'lager'
36
+ },{
37
+ name: 'Quadrupel',
38
+ style: 'beer',
39
+ unselectable: true
40
+ }]
41
+ });
42
+
43
+ beforeEach(function() {
44
+ tableElement = angular.element(
45
+ '<div alch-table="table">' +
46
+ '<table>' +
47
+ '<thead class="hidden">' +
48
+ '<tr alch-table-head row-select>' +
49
+ '<th alch-table-column>{{ "Name" }}</th>' +
50
+ '</tr>' +
51
+ '</thead>' +
52
+ '<tbody>' +
53
+ '<tr alch-table-row ng-repeat="item in table.rows" row-select="item" active-row="true">' +
54
+ '<td alch-table-cell>{{ item.name }}</td>' +
55
+ '<td alch-table-cell>{{ item.style }}</td>' +
56
+ '</tr>' +
57
+ '</tbody>' +
58
+ '</table>' +
59
+ '</div>');
60
+
61
+ chooseTableElement = angular.element(
62
+ '<div alch-table="table">' +
63
+ '<table>' +
64
+ '<thead class="hidden">' +
65
+ '<tr alch-table-head row-choice>' +
66
+ '<th alch-table-column>{{ "Name" }}</th>' +
67
+ '</tr>' +
68
+ '</thead>' +
69
+ '<tbody>' +
70
+ '<tr alch-table-row ng-repeat="item in table.rows" row-choice="item">' +
71
+ '<td alch-table-cell>{{ item.name }}</td>' +
72
+ '<td alch-table-cell>{{ item.style }}</td>' +
73
+ '</tr>' +
74
+ '</tbody>' +
75
+ '</table>' +
76
+ '</div>');
77
+
78
+
79
+ compile(tableElement)(scope);
80
+ compile(chooseTableElement)(scope);
81
+ scope.$digest();
82
+ });
83
+
84
+ describe('alchTable controller', function() {
85
+ var element,
86
+ tableController;
87
+
88
+ beforeEach(inject(function($controller) {
89
+ tableController = $controller('AlchTableController', {$scope: scope, $element: tableElement});
90
+ }));
91
+
92
+ it("should append a row", function() {
93
+ var row1 = {}, row2 = {};
94
+
95
+ expect(scope.rows).toEqual([]);
96
+
97
+ tableController.addRow(row1);
98
+ tableController.addRow(row2);
99
+
100
+ expect(scope.rows).toEqual([row1, row2]);
101
+ });
102
+
103
+ it("should append a table head with columns", function() {
104
+ var col1 = {}, col2 = {},
105
+ tableHead = { columns: [col1, col2] };
106
+
107
+ expect(scope.headers).toEqual([]);
108
+
109
+ tableController.addHeader(tableHead);
110
+ expect(scope.headers).toEqual([{ columns: [col1, col2] }]);
111
+ });
112
+
113
+ it("should update the selected row count", function() {
114
+ var row = { selected: true };
115
+
116
+ tableController.itemSelected(row);
117
+
118
+ expect(scope.table.numSelected).toEqual(1);
119
+ expect(scope.table.allSelected()).toEqual(false);
120
+ });
121
+
122
+ it("should select all selectable rows", function() {
123
+ tableController.selectAll(true);
124
+
125
+ expect(scope.table.numSelected).toEqual(2);
126
+ expect(scope.table.allSelected()).toEqual(true);
127
+ expect(scope.table.rows[0].selected).toEqual(true);
128
+ });
129
+
130
+ it("should unselect all rows", function() {
131
+ tableController.selectAll(false);
132
+
133
+ expect(scope.table.numSelected).toEqual(0);
134
+ expect(scope.table.allSelected()).toEqual(false);
135
+ expect(scope.table.rows[0].selected).toEqual(false);
136
+ });
137
+
138
+ it("should set the chosen row", function() {
139
+ var row = { id: 1 };
140
+
141
+ tableController.itemChosen(row);
142
+
143
+ expect(scope.table.chosenRow).toBe(row);
144
+ });
145
+
146
+ it("should disable select all", function() {
147
+ tableController.disableSelectAll(true);
148
+
149
+ expect(tableController.selection.selectAllDisabled).toBe(true);
150
+ });
151
+
152
+ it("should provide a method to check if all are selected", function() {
153
+ scope.table.selectAll(true);
154
+ expect(scope.table.allSelected()).toBe(true);
155
+ });
156
+
157
+ });
158
+
159
+ describe('alchTable directive', function() {
160
+ it("should have two columns including the row-select", function() {
161
+ var columns = tableElement.find('thead').find('tr').find('th');
162
+
163
+ expect(columns.length).toBe(2);
164
+ });
165
+
166
+ it('should have two rows', function() {
167
+ var rows = tableElement.find('tbody').find('tr');
168
+
169
+ expect(rows.length).toBe(scope.table.rows.length);
170
+ });
171
+ });
172
+
173
+ describe('alchTableHead', function() {
174
+
175
+ describe('directive', function() {
176
+ describe('directive', function() {
177
+ it("should select a table head row", function() {
178
+ var tableHead = angular.element(tableElement.find('thead').find('tr')[0]),
179
+ checkbox = tableHead.find('input[type="checkbox"]');
180
+
181
+ checkbox.trigger('click');
182
+ checkbox.attr('checked', 'checked');
183
+ checkbox.prop('checked', true);
184
+
185
+ expect(checkbox.is(':checked')).toBe(true);
186
+ });
187
+ });
188
+ });
189
+
190
+ describe('controller', function() {
191
+ var element,
192
+ tableHeadController;
193
+
194
+ beforeEach(inject(function($controller) {
195
+ tableController = $controller('AlchTableHeadController', {$scope: scope});
196
+ }));
197
+
198
+ it("should append a column", function() {
199
+ var col1 = {};
200
+
201
+ expect(scope.header.columns).toEqual([]);
202
+
203
+ tableController.addColumn(col1);
204
+ expect(scope.header.columns).toEqual([col1]);
205
+ });
206
+ });
207
+ });
208
+
209
+ describe('alchTableRow', function() {
210
+
211
+ describe('directive', function() {
212
+ it("should select a row and add 'selected-row' class", function() {
213
+ var row = angular.element(tableElement.find('tbody').find('tr')[0]),
214
+ checkbox = row.find('.row-select').find('input');
215
+
216
+ checkbox.trigger('click');
217
+ checkbox.attr('checked', 'checked');
218
+ checkbox.prop('checked', true);
219
+
220
+ expect(checkbox.is(':checked')).toBe(true);
221
+ expect(row.hasClass('selected-row')).toBe(true);
222
+ });
223
+
224
+ it("should choose a row and add 'selected-row' class", function() {
225
+ var row = angular.element(chooseTableElement.find('tbody').find('tr')[0]),
226
+ radio = row.find('.row-choice').find('input');
227
+
228
+ radio.trigger('click');
229
+
230
+ expect(row.hasClass('selected-row')).toBe(true);
231
+ });
232
+
233
+ it("should only allow one row to be selected at a time", function() {
234
+ var radios = angular.element(chooseTableElement.find('input'));
235
+
236
+
237
+ angular.element(radios[0]).trigger('click');
238
+ angular.element(radios[1]).trigger('click');
239
+
240
+ expect(chooseTableElement.find('.selected-row').length).toBe(1);
241
+ });
242
+
243
+ it("should set a row as active and add 'active-row' class", function() {
244
+ var cells = angular.element(angular.element(tableElement.find('tbody').find('tr')[0])).find('td');
245
+
246
+ expect(cells.hasClass('active-row')).toBe(true);
247
+ });
248
+ });
249
+
250
+ describe('controller', function() {
251
+ var tableRowController;
252
+
253
+ beforeEach(inject(function($controller) {
254
+ tableRowController = $controller('AlchTableRowController', {$scope: scope});
255
+ }));
256
+
257
+ it("should append a cell", function() {
258
+ var cell1 = {}, cell2 = {};
259
+
260
+ expect(scope.row.cells).toEqual([]);
261
+
262
+ tableRowController.addCell(cell1);
263
+ tableRowController.addCell(cell2);
264
+
265
+ expect(scope.row.cells).toEqual([cell1, cell2]);
266
+ });
267
+ });
268
+ });
269
+
270
+ });
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Copyright 2014 Red Hat, Inc.
3
+ *
4
+ * This software is licensed to you under the GNU General Public
5
+ * License as published by the Free Software Foundation; either version
6
+ * 2 of the License (GPLv2) or (at your option) any later version.
7
+ * There is NO WARRANTY for this software, express or implied,
8
+ * including the implied warranties of MERCHANTABILITY,
9
+ * NON-INFRINGEMENT, or FITNESS FOR A PARTICULAR PURPOSE. You should
10
+ * have received a copy of GPLv2 along with this software; if not, see
11
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
12
+ */
13
+ describe('Filter:arrayToString', function() {
14
+ var array, arrayToStringFilter;
15
+
16
+ beforeEach(module('alchemy.format'));
17
+
18
+ beforeEach(inject(function($filter) {
19
+ array = [
20
+ {id: 1, name: 'one'},
21
+ {id: 2, name: 'two'},
22
+ {id: 3, name: 'three'}
23
+ ];
24
+ arrayToStringFilter = $filter('arrayToString');
25
+ }));
26
+
27
+ it("transforms an array to a string.", function() {
28
+ expect(arrayToStringFilter(array, "id")).toBe('1, 2, 3');
29
+ });
30
+
31
+ it("defaults item to pluck to 'name' if not provided.", function() {
32
+ expect(arrayToStringFilter(array)).toBe('one, two, three');
33
+ });
34
+
35
+ it("allows a custom separator", function() {
36
+ expect(arrayToStringFilter(array, "id", ':')).toBe('1:2:3');
37
+ });
38
+ });
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Copyright 2014 Red Hat, Inc.
3
+ *
4
+ * This software is licensed to you under the GNU General Public
5
+ * License as published by the Free Software Foundation; either version
6
+ * 2 of the License (GPLv2) or (at your option) any later version.
7
+ * There is NO WARRANTY for this software, express or implied,
8
+ * including the implied warranties of MERCHANTABILITY,
9
+ * NON-INFRINGEMENT, or FITNESS FOR A PARTICULAR PURPOSE. You should
10
+ * have received a copy of GPLv2 along with this software; if not, see
11
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
12
+ */
13
+ describe('Filter:booleanToYesNo', function() {
14
+ var filter;
15
+
16
+ beforeEach(module('alchemy.format'));
17
+
18
+ beforeEach(module(function($provide) {
19
+ $provide.value('translate', function(a) {return a});
20
+ }));
21
+
22
+ beforeEach(inject(function($filter) {
23
+ filter = $filter('booleanToYesNo');
24
+ }));
25
+
26
+ it("returns 'Yes' for true, and 'No' for false", function() {
27
+ expect(filter(true)).toBe('Yes');
28
+ expect(filter(false)).toBe('No');
29
+ });
30
+
31
+ it("returns an empty string for null", function() {
32
+ expect(filter()).toBe('');
33
+ expect(filter('')).toBe('');
34
+ });
35
+
36
+ it("allows Yes and No to be overriden", function() {
37
+ expect(filter(true, 'ok', 'fail')).toBe('ok');
38
+ expect(filter(false, 'ok', 'fail')).toBe('fail');
39
+ });
40
+
41
+ });
@@ -0,0 +1,35 @@
1
+ /**
2
+ Copyright 2014 Red Hat, Inc.
3
+
4
+ This software is licensed to you under the GNU General Public
5
+ License as published by the Free Software Foundation; either version
6
+ 2 of the License (GPLv2) or (at your option) any later version.
7
+ There is NO WARRANTY for this software, express or implied,
8
+ including the implied warranties of MERCHANTABILITY,
9
+ NON-INFRINGEMENT, or FITNESS FOR A PARTICULAR PURPOSE. You should
10
+ have received a copy of GPLv2 along with this software; if not, see
11
+ http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
12
+ **/
13
+ describe('Filter:capitalize', function() {
14
+ var capitalizeFilter;
15
+
16
+ beforeEach(module('alchemy.format'));
17
+
18
+ beforeEach(inject(function($filter) {
19
+ capitalizeFilter = $filter('capitalize');
20
+ }));
21
+
22
+ it("capitalizes a string.", function() {
23
+ expect(capitalizeFilter("a string")).toBe('A string');
24
+ });
25
+
26
+ it("does not capitalize non-strings.", function() {
27
+ expect(capitalizeFilter(1)).toBe(1);
28
+ });
29
+
30
+ it("handles null and undefined values", function() {
31
+ expect(capitalizeFilter(null)).toBe(null);
32
+ expect(capitalizeFilter(undefined)).toBe(undefined);
33
+ });
34
+ });
35
+
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Copyright 2014 Red Hat, Inc.
3
+ *
4
+ * This software is licensed to you under the GNU General Public
5
+ * License as published by the Free Software Foundation; either version
6
+ * 2 of the License (GPLv2) or (at your option) any later version.
7
+ * There is NO WARRANTY for this software, express or implied,
8
+ * including the implied warranties of MERCHANTABILITY,
9
+ * NON-INFRINGEMENT, or FITNESS FOR A PARTICULAR PURPOSE. You should
10
+ * have received a copy of GPLv2 along with this software; if not, see
11
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
12
+ */
13
+ describe('Filter:keyValueToString', function() {
14
+ var keyValues, keyValueFilter;
15
+
16
+ beforeEach(module('alchemy.format'));
17
+
18
+ beforeEach(inject(function($filter) {
19
+ keyValues = [
20
+ {keyname: 'keyOne', value: 'valueOne'},
21
+ {keyname: 'keyTwo', value: 'valueTwo'},
22
+ {keyname: 'keyThree', value: 'valueThree'},
23
+ ];
24
+ keyValueFilter = $filter('keyValueToString');
25
+ }));
26
+
27
+ it("transforms an array of key, values to a string.", function() {
28
+ expect(keyValueFilter(keyValues)).
29
+ toBe('keyOne: valueOne, keyTwo: valueTwo, keyThree: valueThree');
30
+ });
31
+
32
+ it("ensures transform value is an array before proceeding", function() {
33
+ expect(keyValueFilter({keyname: 'key', value: 'value'})).toBe('key: value');
34
+ });
35
+
36
+ describe("allows overriding default defaults.", function() {
37
+ var options;
38
+ beforeEach(function() {
39
+ options = {};
40
+ });
41
+
42
+ it("by providing a custom separator", function() {
43
+ options.separator = '='
44
+ expect(keyValueFilter(keyValues, options)).
45
+ toBe('keyOne=valueOne, keyTwo=valueTwo, keyThree=valueThree');
46
+ });
47
+
48
+ it('by providing a custom key name', function() {
49
+ options.keyName = 'key';
50
+ expect(keyValueFilter({key: 'key', value: 'value'}, options)).
51
+ toBe('key: value');
52
+ });
53
+
54
+ it('by providing a custom value name', function() {
55
+ options.valueName = 'valueeee';
56
+ expect(keyValueFilter({keyname: 'key', valueeee: 'value'}, options)).
57
+ toBe('key: value');
58
+ });
59
+ });
60
+ });