ish_manager 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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
+