ish_manager 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 (411) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +28 -0
  4. data/Rakefile +36 -0
  5. data/app/assets/config/ish_manager_manifest.js +2 -0
  6. data/app/assets/images/200x200/devops.png +0 -0
  7. data/app/assets/images/200x200/html5.jpg +0 -0
  8. data/app/assets/images/200x200/nodejs.png +0 -0
  9. data/app/assets/images/200x200/project_management.jpg +0 -0
  10. data/app/assets/images/200x200/ror.jpg +0 -0
  11. data/app/assets/images/200x200/uiux.jpg +0 -0
  12. data/app/assets/images/400x400/contact-us.png +0 -0
  13. data/app/assets/images/400x400/devops.png +0 -0
  14. data/app/assets/images/400x400/html5.jpg +0 -0
  15. data/app/assets/images/400x400/nodejs.png +0 -0
  16. data/app/assets/images/400x400/project_management.jpg +0 -0
  17. data/app/assets/images/400x400/ror.jpg +0 -0
  18. data/app/assets/images/400x400/the-cloud.png +0 -0
  19. data/app/assets/images/400x400/uiux.jpg +0 -0
  20. data/app/assets/images/backgrounds/10.jpg +0 -0
  21. data/app/assets/images/backgrounds/11.jpg +0 -0
  22. data/app/assets/images/backgrounds/12.jpg +0 -0
  23. data/app/assets/images/backgrounds/6.jpg +0 -0
  24. data/app/assets/images/backgrounds/7.jpg +0 -0
  25. data/app/assets/images/backgrounds/8.jpg +0 -0
  26. data/app/assets/images/backgrounds/9.jpg +0 -0
  27. data/app/assets/images/backgrounds/970_grey-blue.png +0 -0
  28. data/app/assets/images/backgrounds/970_white.png +0 -0
  29. data/app/assets/images/backgrounds/970_yellow.png +0 -0
  30. data/app/assets/images/backgrounds/bg-circles.png +0 -0
  31. data/app/assets/images/backgrounds/bg5.jpg +0 -0
  32. data/app/assets/images/backgrounds/bg6.jpg +0 -0
  33. data/app/assets/images/backgrounds/bg_texture_dark.jpg +0 -0
  34. data/app/assets/images/backgrounds/bkg_bg.gif +0 -0
  35. data/app/assets/images/backgrounds/blue-seamless.jpg +0 -0
  36. data/app/assets/images/backgrounds/flower_1.jpg +0 -0
  37. data/app/assets/images/backgrounds/glitch1.jpg +0 -0
  38. data/app/assets/images/backgrounds/glitch2.jpg +0 -0
  39. data/app/assets/images/backgrounds/gray-1.jpg +0 -0
  40. data/app/assets/images/backgrounds/havaianas.jpg +0 -0
  41. data/app/assets/images/backgrounds/light-purple.jpg +0 -0
  42. data/app/assets/images/backgrounds/noise.jpg +0 -0
  43. data/app/assets/images/backgrounds/paper.jpg +0 -0
  44. data/app/assets/images/backgrounds/pattern_011.gif +0 -0
  45. data/app/assets/images/backgrounds/pattern_013.gif +0 -0
  46. data/app/assets/images/backgrounds/pattern_016.gif +0 -0
  47. data/app/assets/images/backgrounds/pattern_020.gif +0 -0
  48. data/app/assets/images/backgrounds/pattern_022.gif +0 -0
  49. data/app/assets/images/backgrounds/pattern_044.gif +0 -0
  50. data/app/assets/images/backgrounds/pattern_062.gif +0 -0
  51. data/app/assets/images/backgrounds/pattern_096.gif +0 -0
  52. data/app/assets/images/backgrounds/pattern_153.gif +0 -0
  53. data/app/assets/images/backgrounds/pattern_154.gif +0 -0
  54. data/app/assets/images/backgrounds/pattern_156.gif +0 -0
  55. data/app/assets/images/backgrounds/pattern_157.gif +0 -0
  56. data/app/assets/images/backgrounds/skull_1.jpg +0 -0
  57. data/app/assets/images/backgrounds/sky.jpg +0 -0
  58. data/app/assets/images/backgrounds/sky2.jpg +0 -0
  59. data/app/assets/images/backgrounds/sky3.jpg +0 -0
  60. data/app/assets/images/backgrounds/sky4.jpg +0 -0
  61. data/app/assets/images/backgrounds/sky5.jpg +0 -0
  62. data/app/assets/images/backgrounds/transparent_40.png +0 -0
  63. data/app/assets/images/backgrounds/transparent_70.png +0 -0
  64. data/app/assets/images/backgrounds/transparent_90.png +0 -0
  65. data/app/assets/images/backgrounds/white-seamless.jpg +0 -0
  66. data/app/assets/images/backgrounds/white_970x5.png +0 -0
  67. data/app/assets/images/backgrounds/white_blue_1.jpg +0 -0
  68. data/app/assets/images/cac/dot-footer.png +0 -0
  69. data/app/assets/images/cac/dot-header.png +0 -0
  70. data/app/assets/images/cac/list-style.png +0 -0
  71. data/app/assets/images/cac/map.png +0 -0
  72. data/app/assets/images/cac/phone.png +0 -0
  73. data/app/assets/images/cac/phone_number.png +0 -0
  74. data/app/assets/images/cac/screenshots/about.png +0 -0
  75. data/app/assets/images/cac/screenshots/contact.png +0 -0
  76. data/app/assets/images/cac/screenshots/home.png +0 -0
  77. data/app/assets/images/cac/screenshots/home.psd +0 -0
  78. data/app/assets/images/cac/screenshots/portfolio.png +0 -0
  79. data/app/assets/images/cac/screenshots/services.png +0 -0
  80. data/app/assets/images/cac/screenshots/team.png +0 -0
  81. data/app/assets/images/cac/sfbay.jpg +0 -0
  82. data/app/assets/images/cac/sprite.png +0 -0
  83. data/app/assets/images/cac/team/lizza.jpg +0 -0
  84. data/app/assets/images/cac/team/lizza_raw.jpg +0 -0
  85. data/app/assets/images/cac/team/piousbox.jpg +0 -0
  86. data/app/assets/images/cities-images/Bangkok.jpg +0 -0
  87. data/app/assets/images/cities-images/Buenos_Aires.jpg +0 -0
  88. data/app/assets/images/cities-images/Chicago.jpg +0 -0
  89. data/app/assets/images/cities-images/London.jpg +0 -0
  90. data/app/assets/images/cities-images/New_York_City.jpg +0 -0
  91. data/app/assets/images/cities-images/Paris.jpg +0 -0
  92. data/app/assets/images/cities-images/Rio_de_Janeiro.jpg +0 -0
  93. data/app/assets/images/cities-images/San_Francisco.jpg +0 -0
  94. data/app/assets/images/cities-images-raw/Bangkok.jpg +0 -0
  95. data/app/assets/images/cities-images-raw/Buenos_Aires.jpg +0 -0
  96. data/app/assets/images/cities-images-raw/Chicago.jpg +0 -0
  97. data/app/assets/images/cities-images-raw/London.jpg +0 -0
  98. data/app/assets/images/cities-images-raw/New_York_City.jpg +0 -0
  99. data/app/assets/images/cities-images-raw/Paris.jpg +0 -0
  100. data/app/assets/images/cities-images-raw/Rio_de_Janeiro.jpg +0 -0
  101. data/app/assets/images/cities-images-raw/San_Francisco.jpg +0 -0
  102. data/app/assets/images/close.png +0 -0
  103. data/app/assets/images/contact.png +0 -0
  104. data/app/assets/images/controls.png +0 -0
  105. data/app/assets/images/favicon.gif +0 -0
  106. data/app/assets/images/favicons/cac.gif +0 -0
  107. data/app/assets/images/favicons/ish.gif +0 -0
  108. data/app/assets/images/favicons/manager.ico +0 -0
  109. data/app/assets/images/favicons/piousbox.gif +0 -0
  110. data/app/assets/images/favicons/ppf.gif +0 -0
  111. data/app/assets/images/flags/br.png +0 -0
  112. data/app/assets/images/flags/en.png +0 -0
  113. data/app/assets/images/flags/pt.png +0 -0
  114. data/app/assets/images/flags/ru.png +0 -0
  115. data/app/assets/images/flags/us.png +0 -0
  116. data/app/assets/images/grad-hr.png +0 -0
  117. data/app/assets/images/gradient.png +0 -0
  118. data/app/assets/images/icons/100x100/hazard.png +0 -0
  119. data/app/assets/images/icons/100x100/venue.png +0 -0
  120. data/app/assets/images/icons/10x10/thumbs_down.png +0 -0
  121. data/app/assets/images/icons/10x10/thumbs_up.png +0 -0
  122. data/app/assets/images/icons/12x12/tag.png +0 -0
  123. data/app/assets/images/icons/14x14/bullet.png +0 -0
  124. data/app/assets/images/icons/16x16/cancel.png +0 -0
  125. data/app/assets/images/icons/16x16/delete.png +0 -0
  126. data/app/assets/images/icons/16x16/expand_down.png +0 -0
  127. data/app/assets/images/icons/16x16/new_16.png +0 -0
  128. data/app/assets/images/icons/16x16/search.png +0 -0
  129. data/app/assets/images/icons/16x16/uploadify-cancel.png +0 -0
  130. data/app/assets/images/icons/20x20/edit.png +0 -0
  131. data/app/assets/images/icons/20x20/email.gif +0 -0
  132. data/app/assets/images/icons/20x20/expand.gif +0 -0
  133. data/app/assets/images/icons/20x20/eye-crossed.png +0 -0
  134. data/app/assets/images/icons/20x20/eye.png +0 -0
  135. data/app/assets/images/icons/20x20/facebook.gif +0 -0
  136. data/app/assets/images/icons/20x20/gmail.gif +0 -0
  137. data/app/assets/images/icons/20x20/java.gif +0 -0
  138. data/app/assets/images/icons/20x20/linkedin.png +0 -0
  139. data/app/assets/images/icons/20x20/lock.gif +0 -0
  140. data/app/assets/images/icons/20x20/new.png +0 -0
  141. data/app/assets/images/icons/20x20/pdf.gif +0 -0
  142. data/app/assets/images/icons/20x20/php.jpg +0 -0
  143. data/app/assets/images/icons/20x20/private.png +0 -0
  144. data/app/assets/images/icons/20x20/private2.png +0 -0
  145. data/app/assets/images/icons/20x20/public.png +0 -0
  146. data/app/assets/images/icons/20x20/public2.png +0 -0
  147. data/app/assets/images/icons/20x20/python.png +0 -0
  148. data/app/assets/images/icons/20x20/search.png +0 -0
  149. data/app/assets/images/icons/20x20/top.gif +0 -0
  150. data/app/assets/images/icons/20x20/trash.png +0 -0
  151. data/app/assets/images/icons/20x20/wiki.gif +0 -0
  152. data/app/assets/images/icons/20x20/wp.gif +0 -0
  153. data/app/assets/images/icons/20x20/youtube.png +0 -0
  154. data/app/assets/images/icons/24x24/configure.png +0 -0
  155. data/app/assets/images/icons/24x24/customize.png +0 -0
  156. data/app/assets/images/icons/24x24/edit.png +0 -0
  157. data/app/assets/images/icons/24x24/trash.png +0 -0
  158. data/app/assets/images/icons/28x28/customize.png +0 -0
  159. data/app/assets/images/icons/28x28/expand.png +0 -0
  160. data/app/assets/images/icons/32x32/comment.png +0 -0
  161. data/app/assets/images/icons/32x32/delicious.png +0 -0
  162. data/app/assets/images/icons/32x32/doc.png +0 -0
  163. data/app/assets/images/icons/32x32/email.png +0 -0
  164. data/app/assets/images/icons/32x32/expand_down.png +0 -0
  165. data/app/assets/images/icons/32x32/facebook.png +0 -0
  166. data/app/assets/images/icons/32x32/github.png +0 -0
  167. data/app/assets/images/icons/32x32/home.png +0 -0
  168. data/app/assets/images/icons/32x32/linkedin.png +0 -0
  169. data/app/assets/images/icons/32x32/list.png +0 -0
  170. data/app/assets/images/icons/32x32/logout.png +0 -0
  171. data/app/assets/images/icons/32x32/myspace.png +0 -0
  172. data/app/assets/images/icons/32x32/new.png +0 -0
  173. data/app/assets/images/icons/32x32/new_addritem.png +0 -0
  174. data/app/assets/images/icons/32x32/pdf.png +0 -0
  175. data/app/assets/images/icons/32x32/photos_new.png +0 -0
  176. data/app/assets/images/icons/32x32/print.png +0 -0
  177. data/app/assets/images/icons/32x32/scratchpad.png +0 -0
  178. data/app/assets/images/icons/32x32/search.png +0 -0
  179. data/app/assets/images/icons/32x32/sharethis.png +0 -0
  180. data/app/assets/images/icons/32x32/thumbs_down.png +0 -0
  181. data/app/assets/images/icons/32x32/thumbs_down_2.png +0 -0
  182. data/app/assets/images/icons/32x32/thumbs_up.png +0 -0
  183. data/app/assets/images/icons/32x32/thumbs_up_2.png +0 -0
  184. data/app/assets/images/icons/32x32/trac.gif +0 -0
  185. data/app/assets/images/icons/32x32/trash.png +0 -0
  186. data/app/assets/images/icons/32x32/twitter.png +0 -0
  187. data/app/assets/images/icons/32x32/upload.png +0 -0
  188. data/app/assets/images/icons/32x32/word.png +0 -0
  189. data/app/assets/images/icons/40x40/search_40x40.png +0 -0
  190. data/app/assets/images/icons/48x48/city.png +0 -0
  191. data/app/assets/images/icons/48x48/new_photo.png +0 -0
  192. data/app/assets/images/icons/64x64/extended_forms.png +0 -0
  193. data/app/assets/images/icons/64x64/facebook.png +0 -0
  194. data/app/assets/images/icons/64x64/facebook_flat.png +0 -0
  195. data/app/assets/images/icons/64x64/github.png +0 -0
  196. data/app/assets/images/icons/64x64/github_flat.png +0 -0
  197. data/app/assets/images/icons/64x64/google.png +0 -0
  198. data/app/assets/images/icons/64x64/linkedin.png +0 -0
  199. data/app/assets/images/icons/64x64/linkedin_flat.png +0 -0
  200. data/app/assets/images/icons/64x64/my-profile.png +0 -0
  201. data/app/assets/images/icons/64x64/new_addritem.png +0 -0
  202. data/app/assets/images/icons/64x64/new_photo.png +0 -0
  203. data/app/assets/images/icons/64x64/new_report.png +0 -0
  204. data/app/assets/images/icons/64x64/openid.png +0 -0
  205. data/app/assets/images/icons/64x64/rails.png +0 -0
  206. data/app/assets/images/icons/64x64/scratchpad.png +0 -0
  207. data/app/assets/images/icons/64x64/settings.png +0 -0
  208. data/app/assets/images/icons/64x64/twitter.png +0 -0
  209. data/app/assets/images/icons/64x64/yahoo_64.png +0 -0
  210. data/app/assets/images/icons/64x64/youtube_flat.png +0 -0
  211. data/app/assets/images/icons/96x96/doc.png +0 -0
  212. data/app/assets/images/icons/96x96/pdf.png +0 -0
  213. data/app/assets/images/icons/96x96/venue.png +0 -0
  214. data/app/assets/images/icons/delete.png +0 -0
  215. data/app/assets/images/icons/delicious.png +0 -0
  216. data/app/assets/images/icons/edit.png +0 -0
  217. data/app/assets/images/icons/email.gif +0 -0
  218. data/app/assets/images/icons/expand.gif +0 -0
  219. data/app/assets/images/icons/facebook.gif +0 -0
  220. data/app/assets/images/icons/gmail.gif +0 -0
  221. data/app/assets/images/icons/hazard.png +0 -0
  222. data/app/assets/images/icons/new_16.png +0 -0
  223. data/app/assets/images/icons/open.png +0 -0
  224. data/app/assets/images/icons/php.jpg +0 -0
  225. data/app/assets/images/icons/rails.png +0 -0
  226. data/app/assets/images/icons/search_40x40.png +0 -0
  227. data/app/assets/images/icons/tag.png +0 -0
  228. data/app/assets/images/icons/top.gif +0 -0
  229. data/app/assets/images/icons/trash/calendar.png +0 -0
  230. data/app/assets/images/left.png +0 -0
  231. data/app/assets/images/loading-100x100.gif +0 -0
  232. data/app/assets/images/loading.gif +0 -0
  233. data/app/assets/images/login_with_facebook.png +0 -0
  234. data/app/assets/images/logos/100x100/ish.png +0 -0
  235. data/app/assets/images/logos/100x100/ish_logo_100.png +0 -0
  236. data/app/assets/images/logos/100x100/logo100x100.png +0 -0
  237. data/app/assets/images/logos/200x200/ish_logo_200.gif +0 -0
  238. data/app/assets/images/logos/20x20/ish.gif +0 -0
  239. data/app/assets/images/logos/400x400/cac.jpg +0 -0
  240. data/app/assets/images/logos/400x400/ish.png +0 -0
  241. data/app/assets/images/logos/400x400/ish_logo_400.gif +0 -0
  242. data/app/assets/images/logos/400x400/ish_logo_400.jpg +0 -0
  243. data/app/assets/images/logos/400x400/ish_logo_400.png +0 -0
  244. data/app/assets/images/logos/400x400/ish_logo_400.psd +0 -0
  245. data/app/assets/images/logos/40x40/ish.png +0 -0
  246. data/app/assets/images/logos/40x40/ish_logo_40.png +0 -0
  247. data/app/assets/images/logos/45x45/ish.png +0 -0
  248. data/app/assets/images/logos/60x60/logo_60x60.png +0 -0
  249. data/app/assets/images/logos/cac/CAC_logo_02_FINAL.eps +0 -0
  250. data/app/assets/images/logos/cac/cac.jpg +0 -0
  251. data/app/assets/images/logos/cac/cac.png +0 -0
  252. data/app/assets/images/logos/cac.png +0 -0
  253. data/app/assets/images/logos/cac_long.jpg +0 -0
  254. data/app/assets/images/logos/ish.png +0 -0
  255. data/app/assets/images/logos/ish_logo_100.png +0 -0
  256. data/app/assets/images/logos/ish_logo_20.gif +0 -0
  257. data/app/assets/images/logos/ish_logo_200.gif +0 -0
  258. data/app/assets/images/logos/ish_logo_40.gif +0 -0
  259. data/app/assets/images/logos/ish_logo_40.png +0 -0
  260. data/app/assets/images/logos/ish_logo_400.gif +0 -0
  261. data/app/assets/images/logos/ish_logo_400.jpg +0 -0
  262. data/app/assets/images/logos/ish_logo_400.png +0 -0
  263. data/app/assets/images/logos/ish_logo_400.psd +0 -0
  264. data/app/assets/images/logos/logo.png +0 -0
  265. data/app/assets/images/logos/logo100x100.png +0 -0
  266. data/app/assets/images/logos/logo_60x60.png +0 -0
  267. data/app/assets/images/logos/organizer.png +0 -0
  268. data/app/assets/images/logos/ppf.gif +0 -0
  269. data/app/assets/images/logos/travel.png +0 -0
  270. data/app/assets/images/logos/travel_guide.png +0 -0
  271. data/app/assets/images/missing.png +0 -0
  272. data/app/assets/images/next.png +0 -0
  273. data/app/assets/images/no_photo.png +0 -0
  274. data/app/assets/images/no_photo_mini.png +0 -0
  275. data/app/assets/images/organizer/blue-arrow-right.png +0 -0
  276. data/app/assets/images/organizer/sprite2.png +0 -0
  277. data/app/assets/images/ppf.gif +0 -0
  278. data/app/assets/images/prev.png +0 -0
  279. data/app/assets/images/resume/language.png +0 -0
  280. data/app/assets/images/resume/main-nav-left.png +0 -0
  281. data/app/assets/images/resume/main-nav-right-active.png +0 -0
  282. data/app/assets/images/resume/main-nav-right.png +0 -0
  283. data/app/assets/images/resume/user-name-left.png +0 -0
  284. data/app/assets/images/resume/user-name-right.png +0 -0
  285. data/app/assets/images/right.png +0 -0
  286. data/app/assets/images/showv/about-us.jpg +0 -0
  287. data/app/assets/images/showv/arrows-ffffff.png +0 -0
  288. data/app/assets/images/showv/dragon_head_bottom.jpg +0 -0
  289. data/app/assets/images/showv/dragon_head_top.jpg +0 -0
  290. data/app/assets/images/showv/menu-border.png +0 -0
  291. data/app/assets/images/showv/shadow.png +0 -0
  292. data/app/assets/images/showv/subhead-bg.png +0 -0
  293. data/app/assets/images/showv/world.jpg +0 -0
  294. data/app/assets/images/src/contact-us.png +0 -0
  295. data/app/assets/images/src/devops-cropped.png +0 -0
  296. data/app/assets/images/src/devops.png +0 -0
  297. data/app/assets/images/src/html5.jpg +0 -0
  298. data/app/assets/images/src/html5_cropped.jpg +0 -0
  299. data/app/assets/images/src/nodejs.png +0 -0
  300. data/app/assets/images/src/nodejs_cropped.png +0 -0
  301. data/app/assets/images/src/project_management.jpg +0 -0
  302. data/app/assets/images/src/ror.jpg +0 -0
  303. data/app/assets/images/src/the-cloud.png +0 -0
  304. data/app/assets/images/src/uiux.jpg +0 -0
  305. data/app/assets/images/venue.png +0 -0
  306. data/app/assets/images/wait.gif +0 -0
  307. data/app/assets/javascripts/ish_manager/application.js +14 -0
  308. data/app/assets/javascripts/ish_manager/bootstrap.min.js +7 -0
  309. data/app/assets/stylesheets/ish_manager/application.css +19 -0
  310. data/app/assets/stylesheets/ish_manager/bootstrap.min.css +6 -0
  311. data/app/assets/stylesheets/ish_manager/bootstrap.min.css.map +1 -0
  312. data/app/controllers/ish_manager/application_controller.rb +19 -0
  313. data/app/controllers/ish_manager/cities_controller.rb +83 -0
  314. data/app/controllers/ish_manager/features_controller.rb +125 -0
  315. data/app/controllers/ish_manager/galleries_controller.rb +86 -0
  316. data/app/controllers/ish_manager/galleries_controller.rb~ +85 -0
  317. data/app/controllers/ish_manager/newsitems_controller.rb +113 -0
  318. data/app/controllers/ish_manager/photos_controller.rb +55 -0
  319. data/app/controllers/ish_manager/reports_controller.rb +64 -0
  320. data/app/controllers/ish_manager/sites_controller.rb +69 -0
  321. data/app/controllers/ish_manager/tags_controller.rb +54 -0
  322. data/app/controllers/ish_manager/users_controller.rb +13 -0
  323. data/app/helpers/ish_manager/application_helper.rb +4 -0
  324. data/app/helpers/ish_manager/images_helper.rb +241 -0
  325. data/app/jobs/ish_manager/application_job.rb +4 -0
  326. data/app/mailers/ish_manager/application_mailer.rb +6 -0
  327. data/app/models/ish_manager/ability.rb +14 -0
  328. data/app/models/ish_manager/ability.rb~ +14 -0
  329. data/app/models/ish_manager/application_record.rb +5 -0
  330. data/app/views/ish_manager/application/_main_footer.haml +14 -0
  331. data/app/views/ish_manager/application/_main_header.haml +17 -0
  332. data/app/views/ish_manager/application/_main_header.haml~ +6 -0
  333. data/app/views/ish_manager/application/home.haml +3 -0
  334. data/app/views/ish_manager/cities/_form.haml +51 -0
  335. data/app/views/ish_manager/cities/_header.haml +2 -0
  336. data/app/views/ish_manager/cities/edit.haml +11 -0
  337. data/app/views/ish_manager/cities/edit_feature.haml +4 -0
  338. data/app/views/ish_manager/cities/index.haml +21 -0
  339. data/app/views/ish_manager/cities/new.haml +5 -0
  340. data/app/views/ish_manager/cities/new_feature.haml +5 -0
  341. data/app/views/ish_manager/cities/new_newsitem.haml +23 -0
  342. data/app/views/ish_manager/cities/show.haml +58 -0
  343. data/app/views/ish_manager/features/_form.haml +61 -0
  344. data/app/views/ish_manager/features/_index.haml +23 -0
  345. data/app/views/ish_manager/features/_index.haml~ +23 -0
  346. data/app/views/ish_manager/features/_item.haml +14 -0
  347. data/app/views/ish_manager/features/edit.haml +16 -0
  348. data/app/views/ish_manager/features/index.haml +25 -0
  349. data/app/views/ish_manager/features/new.haml +11 -0
  350. data/app/views/ish_manager/features/show.haml +0 -0
  351. data/app/views/ish_manager/galleries/#_thumbs.haml# +5 -0
  352. data/app/views/ish_manager/galleries/_form.haml +46 -0
  353. data/app/views/ish_manager/galleries/_index.haml +14 -0
  354. data/app/views/ish_manager/galleries/_list.haml +23 -0
  355. data/app/views/ish_manager/galleries/_list.haml~ +23 -0
  356. data/app/views/ish_manager/galleries/_list_short.haml +9 -0
  357. data/app/views/ish_manager/galleries/_menu_secondary.haml +13 -0
  358. data/app/views/ish_manager/galleries/_menu_secondary.haml~ +12 -0
  359. data/app/views/ish_manager/galleries/_meta.haml +16 -0
  360. data/app/views/ish_manager/galleries/_meta.haml~ +16 -0
  361. data/app/views/ish_manager/galleries/_search.haml +7 -0
  362. data/app/views/ish_manager/galleries/_search.haml~ +7 -0
  363. data/app/views/ish_manager/galleries/_thumbs.haml +12 -0
  364. data/app/views/ish_manager/galleries/_thumbs.haml~ +7 -0
  365. data/app/views/ish_manager/galleries/_title.haml +17 -0
  366. data/app/views/ish_manager/galleries/all_photos.haml +4 -0
  367. data/app/views/ish_manager/galleries/edit.haml +11 -0
  368. data/app/views/ish_manager/galleries/index.haml +18 -0
  369. data/app/views/ish_manager/galleries/index.haml~ +19 -0
  370. data/app/views/ish_manager/galleries/index_ajax.haml +9 -0
  371. data/app/views/ish_manager/galleries/index_mini.haml +0 -0
  372. data/app/views/ish_manager/galleries/index_short.haml +19 -0
  373. data/app/views/ish_manager/galleries/index_thumb.haml +16 -0
  374. data/app/views/ish_manager/galleries/index_title.haml +15 -0
  375. data/app/views/ish_manager/galleries/index_trash.haml +20 -0
  376. data/app/views/ish_manager/galleries/new.haml +7 -0
  377. data/app/views/ish_manager/galleries/show.haml +34 -0
  378. data/app/views/ish_manager/galleries/show.haml~ +32 -0
  379. data/app/views/ish_manager/newsitems/_form.haml +10 -0
  380. data/app/views/ish_manager/newsitems/_form.haml~ +5 -0
  381. data/app/views/ish_manager/newsitems/_index.haml +17 -0
  382. data/app/views/ish_manager/newsitems/_index.haml~ +10 -0
  383. data/app/views/ish_manager/newsitems/_item.haml +53 -0
  384. data/app/views/ish_manager/newsitems/edit.haml +14 -0
  385. data/app/views/ish_manager/newsitems/edit.haml~ +14 -0
  386. data/app/views/ish_manager/newsitems/new.haml +16 -0
  387. data/app/views/ish_manager/photos/_meta.haml +9 -0
  388. data/app/views/ish_manager/photos/_multinew.haml +23 -0
  389. data/app/views/ish_manager/photos/_multinew.haml~ +10 -0
  390. data/app/views/ish_manager/photos/show.haml +2 -0
  391. data/app/views/ish_manager/photos/without_gallery.haml +11 -0
  392. data/app/views/ish_manager/reports/_form.haml +42 -0
  393. data/app/views/ish_manager/reports/_index.haml +16 -0
  394. data/app/views/ish_manager/reports/edit.haml +6 -0
  395. data/app/views/ish_manager/reports/index.haml +26 -0
  396. data/app/views/ish_manager/reports/new.haml +5 -0
  397. data/app/views/ish_manager/reports/show.haml +18 -0
  398. data/app/views/ish_manager/sites/_form.haml +57 -0
  399. data/app/views/ish_manager/sites/edit.haml +9 -0
  400. data/app/views/ish_manager/sites/index.haml +27 -0
  401. data/app/views/ish_manager/sites/new.haml +2 -0
  402. data/app/views/ish_manager/sites/show.haml +37 -0
  403. data/app/views/ish_manager/videos/_index.haml +12 -0
  404. data/app/views/layouts/ish_manager/application.haml +14 -0
  405. data/app/views/layouts/ish_manager/application.haml~ +14 -0
  406. data/config/routes.rb +20 -0
  407. data/lib/ish_manager/engine.rb +5 -0
  408. data/lib/ish_manager/version.rb +3 -0
  409. data/lib/ish_manager.rb +10 -0
  410. data/lib/tasks/ish_manager_tasks.rake +4 -0
  411. metadata +551 -0
@@ -0,0 +1,54 @@
1
+
2
+ class Manager::TagsController < Manager::ManagerController
3
+
4
+ before_filter :set_lists
5
+
6
+ def index
7
+ @tags = Tag.unscoped
8
+ authorize! :index, Tag.new
9
+ end
10
+
11
+ def show
12
+ @tag = Tag.unscoped.find params[:id]
13
+ authorize! :show, @tag
14
+ end
15
+
16
+ def new
17
+ @tag = Tag.new
18
+ authorize! :new, @tag
19
+ end
20
+
21
+ def create
22
+ @tag = Tag.create params[:tag].permit( :name, :name_seo, :descr, :is_public, :is_feature, :is_trash,
23
+ :weight, :parent_tag_id, :site_id )
24
+ authorize! :create, @tag
25
+ if @tag.save
26
+ flash[:notice] = 'Success.'
27
+ redirect_to manager_tags_path
28
+ else
29
+ puts! @tag.errors, "error creating tag."
30
+ flash[:error] = "No luck. #{@tag.errors.messages}"
31
+ render :action => :new
32
+ end
33
+ end
34
+
35
+ def edit
36
+ @tag = Tag.unscoped.find params[:id]
37
+ authorize! :edit, @tag
38
+ end
39
+
40
+ def update
41
+ @tag = Tag.unscoped.find params[:id]
42
+ authorize! :update, @tag
43
+ if @tag.update_attributes params[:tag].permit( :name, :name_seo, :descr,
44
+ :is_public, :is_trash, :is_feature, :weight,
45
+ :site_id, :parent_tag_id )
46
+ flash[:notice] = 'Success.'
47
+ redirect_to manager_tags_path
48
+ else
49
+ flash[:error] = 'No luck.'
50
+ render :action => :new
51
+ end
52
+ end
53
+
54
+ end
@@ -0,0 +1,13 @@
1
+
2
+ class Manager::UsersController < Manager::ManagerController
3
+
4
+ def index
5
+ @users = User.all
6
+ end
7
+
8
+ def show
9
+ @user = User.find params[:id]
10
+ end
11
+
12
+ end
13
+
@@ -0,0 +1,4 @@
1
+ module IshManager
2
+ module ApplicationHelper
3
+ end
4
+ end
@@ -0,0 +1,241 @@
1
+
2
+ module IshManager::ImagesHelper
3
+
4
+ def image_doc
5
+ image_tag 'icons/32x32/doc.png'
6
+ end
7
+
8
+ def image_pdf
9
+ image_tag 'icons/32x32/pdf.png'
10
+ end
11
+
12
+ def image_linkedin
13
+ image_tag 'icons/32x32/linkedin.png'
14
+ end
15
+
16
+ def image_facebook
17
+ image_tag 'icons/32x32/facebook.png'
18
+ end
19
+
20
+ def image_twitter
21
+ image_tag 'icons/32x32/twitter.png'
22
+ end
23
+
24
+ def image_github
25
+ image_tag 'icons/32x32/github.png'
26
+ end
27
+
28
+ def image_email
29
+ image_tag 'icons/32x32/email.png'
30
+ end
31
+
32
+ def image_flag locale
33
+ # image_tag "flags/#{locale.to_s}.png"
34
+ "[#{locale.to_s}]"
35
+ end
36
+
37
+ def image_city cityname
38
+ image_tag 'icons/48x48/city.png'
39
+ end
40
+
41
+ def image_customize
42
+ image_tag 'icons/28x28/customize.png'
43
+ end
44
+
45
+ def image_new_photo
46
+ image_tag 'icons/48x48/new_photo.png'
47
+ end
48
+
49
+ def button_fb_login
50
+ link_to image_tag('http://s3.amazonaws.com/ish-assets/loginWithFacebook.png'), user_omniauth_authorize_path(:facebook), :class => :fb
51
+ end
52
+
53
+ def image_logout
54
+ image_tag 'icons/32x32/logout.png'
55
+ end
56
+
57
+ def image_expand
58
+ # image_tag 'icons/28x28/expand.png'
59
+ image_tag 'icons/16x16/expand_down.png'
60
+ end
61
+
62
+ def image_expand_down
63
+ image_tag 'drag.png'
64
+ end
65
+
66
+ def image_contact
67
+ image_tag 'http://s3.amazonaws.com/ish-assets/contact.png', :class => :contact
68
+ end
69
+
70
+ def image_expand_up
71
+ image_tag 'drag.png'
72
+ end
73
+
74
+ def image_ppf
75
+ image_tag 'ppf.gif'
76
+ end
77
+
78
+ def image_new_report
79
+ image_tag 'icons/64x64/new_report.png'
80
+ end
81
+
82
+ def image_ish
83
+ # image_tag 'logo.png'
84
+ image_tag 'ish_logo_100.png'
85
+ end
86
+
87
+ def image_new_addritem
88
+ image_tag 'icons/64x64/new_addritem.png'
89
+ end
90
+
91
+ def image_top
92
+ image_tag('top.gif')
93
+ end
94
+
95
+ def image_scratchpad
96
+ image_tag 'icons/64x64/scratchpad.png'
97
+ end
98
+
99
+ def image_settings
100
+ image_tag 'icons/64x64/settings.png'
101
+ end
102
+
103
+ def image_extended_forms
104
+ image_tag 'icons/64x64/extended_forms.png'
105
+ end
106
+
107
+ def image_close
108
+ image_tag('close.png')
109
+ end
110
+
111
+ def image_edit
112
+ image_tag('icons/24x24/edit.png', :alt => '[~]')
113
+ end
114
+
115
+ def image_email
116
+ image_tag 'email.gif'
117
+ end
118
+
119
+ def image_add
120
+ image_tag 'new.png'
121
+ end
122
+
123
+ def image_search args = {}
124
+ image_tag 'icons/16x16/search.png', args
125
+ end
126
+
127
+ def image_cac
128
+ s3_image_tag 'cac.png'
129
+ end
130
+
131
+ def image_delete
132
+ # image_tag 'delete.png'
133
+ '[x]'
134
+ end
135
+
136
+ def image_index
137
+ image_tag 'icons/32x32/list.png'
138
+ end
139
+
140
+ def image_new
141
+ image_tag 'icons/32x32/new.png', :alt => '[+]'
142
+ end
143
+
144
+ # @deprecated, should use image_3s
145
+ def s3_image_tag input
146
+ image_tag 'https://s3.amazonaws.com/ish-assets/' + input
147
+ end
148
+
149
+ def image_fb
150
+ image_tag 'http://s3.amazonaws.com/ish-assets/loginWithFacebook.png'
151
+ end
152
+
153
+ def image_3s input
154
+ image_tag 'https://s3.amazonaws.com/ish-assets/' + input
155
+ end
156
+
157
+ # @TODO:
158
+ def video_thumb video
159
+ warn 'todo wtf?'
160
+ image_tag 'no_image.png'
161
+ end
162
+
163
+ #
164
+ # missing stuff
165
+ #
166
+
167
+ def image_or_missing photo, size = :thumb
168
+
169
+ if defined? photo.photo
170
+ if defined? photo.photo.url
171
+ if photo.photo.url == '/photos/original/missing.png'
172
+ ;
173
+ else
174
+ return image_tag photo.photo.url(size)
175
+ end
176
+ end
177
+ end
178
+
179
+ image_missing
180
+ end
181
+
182
+ def image_missing
183
+ # image_tag 'no_photo.png'
184
+ end
185
+ def image_missing_tag
186
+ image_missing
187
+ end
188
+
189
+ def missing
190
+ image_missing
191
+ end
192
+
193
+ def missing? item
194
+ if defined? item.photo and defined? item.photo.url
195
+ if item.photo.url == "/photos/original/missing.png"
196
+ return true
197
+ else
198
+ return false
199
+ end
200
+ end
201
+
202
+ return true
203
+ end
204
+
205
+ def image_vote_up
206
+ image_tag 'icons/32x32/thumbs_up.png', :width => '16px'
207
+ end
208
+
209
+ def image_vote_down
210
+ image_tag 'icons/32x32/thumbs_down.png', :width => '16px'
211
+ end
212
+
213
+ def image_contact
214
+ image_tag 'http://s3.amazonaws.com/ish-assets/contact.png', :class => :contact
215
+ end
216
+
217
+ def image_restart
218
+ t('apps.restart')
219
+ end
220
+
221
+ def image_my_profile
222
+ image_tag 'icons/64x64/my-profile.png'
223
+ end
224
+
225
+ def trash_image_tag
226
+ image_tag 'icons/20x20/trash.png'
227
+ end
228
+
229
+ def new_image_tag
230
+ image_tag 'icons/20x20/new.png'
231
+ end
232
+
233
+ def is_public_image_tag resource
234
+ if resource.is_public
235
+ image_tag 'icons/20x20/public2.png'
236
+ else
237
+ image_tag 'icons/20x20/private.png'
238
+ end
239
+ end
240
+
241
+ end
@@ -0,0 +1,4 @@
1
+ module IshManager
2
+ class ApplicationJob < ActiveJob::Base
3
+ end
4
+ end
@@ -0,0 +1,6 @@
1
+ module IshManager
2
+ class ApplicationMailer < ActionMailer::Base
3
+ default from: 'from@example.com'
4
+ layout 'mailer'
5
+ end
6
+ end
@@ -0,0 +1,14 @@
1
+
2
+ class IshManager::Ability
3
+ include ::CanCan::Ability
4
+
5
+ def initialize user
6
+ user ||= User.new
7
+
8
+ if user.profile && user.profile.manager?
9
+ can :manage, :all
10
+ else
11
+ can :read, :all
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+
2
+ class IshManager::Ability
3
+ include ::CanCan::Ability
4
+
5
+ def initialize user
6
+ user ||= User.new
7
+
8
+ if user.admin?
9
+ can :manage, :all
10
+ else
11
+ can :read, :all
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,5 @@
1
+ module IshManager
2
+ class ApplicationRecord < ActiveRecord::Base
3
+ self.abstract_class = true
4
+ end
5
+ end
@@ -0,0 +1,14 @@
1
+
2
+ %hr
3
+ %ul
4
+ %li ^__^
5
+ - if current_user
6
+ %li
7
+ >[ #{current_user.email} ]<
8
+ %div{ :style => 'float: left' }= button_to '[x]', main_app.destroy_user_session_path, :method => :delete
9
+ - else
10
+ %li
11
+ Please log in
12
+ = link_to '[+]', main_app.new_user_session_path
13
+
14
+
@@ -0,0 +1,17 @@
1
+ %br
2
+
3
+ .container
4
+ .row
5
+ .col-12-xs
6
+ %ul.nav.nav-pills
7
+ %li= link_to 'Cities', cities_path
8
+ %li= link_to 'Events', events_path
9
+ %li= link_to 'Galleries', galleries_path
10
+ %li= link_to 'Profiles', user_profiles_path
11
+ %li= link_to 'Reports', reports_path
12
+ %li= link_to 'Sites', sites_path
13
+ %li= link_to 'Venues', venues_path
14
+ %li= link_to 'Videos', videos_path
15
+
16
+ %hr
17
+
@@ -0,0 +1,6 @@
1
+
2
+ %ul
3
+ %li Cities
4
+ %li Sites
5
+ %hr
6
+
@@ -0,0 +1,3 @@
1
+
2
+ Welcome home! (ish manager)
3
+
@@ -0,0 +1,51 @@
1
+
2
+ - url ||= manager_cities_path
3
+
4
+ .manager-cities--form
5
+ = form_for @city, :url => url do |f|
6
+ .row
7
+ .small-6.columns
8
+ .field
9
+ %label= t('cities.name')
10
+ = f.text_field :name
11
+ .field
12
+ = image_flag 'en'
13
+ %label= t('cities.name_en')
14
+ = f.text_field :name_en
15
+ .field
16
+ = image_flag 'ru'
17
+ %label= t('cities.name')
18
+ = f.text_field :name_ru
19
+ .field
20
+ = image_flag 'pt'
21
+ %label= t('cities.name')
22
+ = f.text_field :name_pt
23
+ .field
24
+ %label CityName
25
+ = f.text_field :cityname
26
+ .small-6.columns
27
+ .field
28
+ %label Feature?
29
+ = f.check_box :is_feature
30
+ .field
31
+ = f.label :n_features
32
+ = f.number_field :n_features
33
+
34
+ .field
35
+ %label Calendar
36
+ = f.text_area :calendar_frame
37
+ .field
38
+ %label coords
39
+ = f.text_field :x
40
+ = f.text_field :y
41
+
42
+ -# Only if editing
43
+ - unless @city.updated_at.blank?
44
+ .change-profile-pic
45
+ %h2 Change profile pic
46
+ - begin
47
+ = image_tag @city.profile_photo.photo.url(:thumb)
48
+ - rescue
49
+
50
+ .actions
51
+ = f.submit
@@ -0,0 +1,2 @@
1
+
2
+ %h5 Cities #{link_to '[+]', new_city_path}
@@ -0,0 +1,11 @@
1
+
2
+ %h1.center= @city.name
3
+ = render 'form', :url => city_path
4
+ %hr
5
+
6
+ .row
7
+ .small-12.columns
8
+ = render 'ish_manager/features/index', :features => @city.features, :city => @city
9
+ %hr
10
+ = render 'ish_manager/newsitems/index', :newsitems => @city.newsitems, :city => @city
11
+
@@ -0,0 +1,4 @@
1
+
2
+ %h1 Edit Feature of city #{@city.name}
3
+
4
+ = render 'manager/features/form', :url => city_feature_path(@city.id, @feature.id)
@@ -0,0 +1,21 @@
1
+
2
+ .container
3
+ .row
4
+ .col-xs-12
5
+ = render 'header'
6
+
7
+ - @cities.each do |city|
8
+ .col-xs-3
9
+ .panel.panel-default
10
+ .panel-heading
11
+ = link_to city.name, city_path(city)
12
+ = link_to '[~]', edit_city_path(city)
13
+ .small.gray= city.id
14
+ .cities-meta= "(#{city.reports.length}) (#{city.galleries.length}) (#{city.current_users.length})"
15
+
16
+ - if city.profile_photo.blank?
17
+ = image_missing
18
+ %div{ :style => "width: 100px; height: 100px; background: #cecece;" }
19
+ - else
20
+ = image_tag city.profile_photo.photo.url(:thumb)
21
+
@@ -0,0 +1,5 @@
1
+
2
+ .row
3
+ .large-12.columns
4
+ %h1 New City
5
+ = render 'form'
@@ -0,0 +1,5 @@
1
+
2
+ %h2 New Feature for #{@city.name}
3
+
4
+ = render 'manager/features/form', :url => create_city_feature_path(@city.id)
5
+
@@ -0,0 +1,23 @@
1
+
2
+ %h1 Newsitem for #{@city.name}
3
+
4
+ = form_for @newsitem, :url => manager_city_newsitems_path(@city.cityname) do |f|
5
+
6
+ .field
7
+ %label descr
8
+ = f.text_area :descr, :class => 'tinymce tiny_mce'
9
+
10
+ .field
11
+ %label Report
12
+ = select :newsitem, :report_id, @list_reports
13
+
14
+ .field
15
+ %label Gallery
16
+ = select :newsitem, :gallery_id, @list_galleries
17
+
18
+ .field
19
+ %label User
20
+ = select :newsitem, :username, @list_users
21
+
22
+
23
+ = f.submit
@@ -0,0 +1,58 @@
1
+
2
+ - title "City #{@city.name}"
3
+
4
+ .row
5
+ .large-12.columns
6
+
7
+ %h2
8
+ = @city.name
9
+ = link_to '[~]', edit_manager_city_path(@city)
10
+
11
+ - unless @city.profile_photo.blank?
12
+ = image_tag @city.profile_photo.photo.url(:thumb)
13
+
14
+ %hr
15
+ %ul.menu-secondary
16
+ %li
17
+ = link_to '[+]', new_manager_city_feature_path( @city )
18
+ Features (#{@city.features.length})
19
+ %li
20
+ = link_to '[+]', new_manager_city_newsitem_path( @city )
21
+ Newsitems (#{@city.newsitems.length})
22
+ %li New Report
23
+ %li New Gallery
24
+ %li New Video
25
+ %li New Venue
26
+ %li New Event
27
+ %li New Community
28
+ %hr
29
+
30
+ = render 'manager/features/index', :features => @city.features, :city => @city
31
+ = render 'manager/newsitems/index', :newsitems => @city.newsitems, :city => @city
32
+
33
+ %h3
34
+ = t('reports.list')
35
+ (#{@city.reports.length})
36
+ %ul
37
+ - @city.reports.each do |report|
38
+ %li
39
+ = link_to '[~]', edit_manager_report_path(report)
40
+ = report.name
41
+
42
+ .galleries-list
43
+ %h3
44
+ = t('galleries.list')
45
+ (#{@city.galleries.length})
46
+ = render '/manager/galleries/list_short', :galleries => @city.galleries
47
+
48
+ %h3
49
+ = t('users.list')
50
+ (#{@city.current_users.length})
51
+
52
+ %h3 Events (#{@city.events.length})
53
+ %ul
54
+ - @city.events.each do |event|
55
+ %li= event.name
56
+
57
+ %h3 Venues (#{@city.venues.length})
58
+ %h3 Videos (#{@city.videos.length})
@@ -0,0 +1,61 @@
1
+
2
+ -# manager/features/_form
3
+
4
+ - if @site
5
+ - if 'new' == params[:action]
6
+ - url = manager_site_features_path site.id
7
+ - if 'edit' == params[:action]
8
+ - url = manager_site_feature_path site.id, feature.id
9
+ - elsif @city
10
+ - if 'new' == params[:action]
11
+ - url = manager_city_features_path city.id
12
+ - if 'edit' == params[:action]
13
+ - url = manager_city_feature_path city.id, feature.id
14
+ - elsif @tag
15
+ - if 'new' == params[:action]
16
+ - url = manager_tag_features_path tag.id
17
+ - if 'edit' == params[:action]
18
+ - url = manager_tag_feature_path tag.id, feature.id
19
+
20
+ = form_for feature, :url => url do |f|
21
+ .row
22
+ .large-6.columns
23
+ = f.label :name
24
+ = f.text_field :name
25
+ %br
26
+ = f.label :subhead
27
+ = f.text_field :subhead
28
+ %br
29
+ = f.label :image_path
30
+ = f.text_field :image_path
31
+ %br
32
+ = f.label :link_path
33
+ = f.text_field :link_path
34
+ %br
35
+ = f.label :photo
36
+ = f.file_field :photo
37
+ .large-6.columns
38
+ = f.label :report
39
+ = select :feature, :report_id, @reports_list
40
+ %br
41
+ = f.label :gallery
42
+ = select :feature, :gallery_id, @galleries_list
43
+ %br
44
+ = f.label :video
45
+ = select :feature, :video_id, @videos_list
46
+
47
+ .row
48
+ %hr
49
+ .large-6.columns
50
+ %br
51
+ = f.label :weight
52
+ = f.text_field :weight
53
+ %br
54
+ = f.label :partial_name
55
+ = f.text_field :partial_name
56
+ .large-6.columns
57
+ .field
58
+ = f.label :inner_html
59
+ = f.text_area :inner_html
60
+ .actions
61
+ = f.submit
@@ -0,0 +1,23 @@
1
+
2
+ - if defined? city
3
+ - edit_url = -> (feature ) { edit_city_feature_path( city.id, feature.id ) }
4
+ - delete_url = -> (feature ) { city_feature_path( city.id, feature.id ) }
5
+ - new_path = new_city_feature_path( city.id )
6
+ - if defined? site
7
+ - edit_url = -> (feature) { edit_manager_site_feature_path( site.id, feature.id ) }
8
+ - delete_url = -> (feature) { manager_site_feature_path( site.id, feature.id ) }
9
+ - new_path = new_manager_site_feature_path( site.id )
10
+
11
+ .manager-features--index
12
+ %h2
13
+ Features (#{features.length})
14
+ = link_to '[+]', new_path
15
+
16
+ -# = paginate features, :param_name => 'features_page'
17
+ %ul.large-block-grid-4
18
+ - features.each_with_index do |feature, idx|
19
+ %li
20
+ = link_to '[~]', edit_url.call( feature )
21
+ = link_to '[x]', delete_url.call( feature ), :method => :delete, :data => { :confirm => 'Are you sure?' }
22
+ .item= render 'manager/features/item', :feature => feature
23
+