fanforce-app-factory 1.7.1 → 2.0.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (206) hide show
  1. checksums.yaml +7 -0
  2. data/.ruby-version +1 -1
  3. data/.yardopts +5 -0
  4. data/.yardopts.rb +1 -0
  5. data/Gemfile +10 -1
  6. data/README.md +12 -12
  7. data/Rakefile +8 -3
  8. data/apps.json +787 -0
  9. data/fanforce-app-factory.gemspec +4 -5
  10. data/lib/fanforce/app_factory.rb +15 -52
  11. data/lib/fanforce/app_factory/Rakefile +59 -0
  12. data/lib/fanforce/app_factory/app.rb +50 -0
  13. data/lib/fanforce/app_factory/asset_framework/app_factory/_bootstrap.scss +2 -0
  14. data/lib/fanforce/app_factory/asset_framework/app_factory/_common.scss +1 -0
  15. data/lib/fanforce/app_factory/asset_framework/app_factory/_directives.scss +7 -0
  16. data/lib/fanforce/app_factory/asset_framework/app_factory/_font-awesome.scss +1 -0
  17. data/lib/fanforce/app_factory/asset_framework/app_factory/_ui-select.scss +3 -0
  18. data/lib/fanforce/app_factory/{assets/lib/common → asset_framework/app_factory/bootstrap}/_bootstrap-overrides.scss +2 -0
  19. data/lib/fanforce/app_factory/{assets/lib/vendors/bootstrap/css → asset_framework/app_factory/bootstrap}/bootstrap.css +2 -2
  20. data/lib/fanforce/app_factory/{assets/lib/vendors/bootstrap/js → asset_framework/app_factory/bootstrap}/bootstrap.js +0 -0
  21. data/lib/fanforce/app_factory/asset_framework/app_factory/bootstrap/bootstrap.min.css +7 -0
  22. data/lib/fanforce/app_factory/{assets/lib/vendors/bootstrap/js → asset_framework/app_factory/bootstrap}/bootstrap.min.js +0 -0
  23. data/lib/fanforce/app_factory/{assets/lib/vendors/bootstrap/fonts → asset_framework/app_factory/bootstrap}/glyphicons-halflings-regular.eot +0 -0
  24. data/lib/fanforce/app_factory/{assets/lib/vendors/bootstrap/fonts → asset_framework/app_factory/bootstrap}/glyphicons-halflings-regular.svg +0 -0
  25. data/lib/fanforce/app_factory/{assets/lib/vendors/bootstrap/fonts → asset_framework/app_factory/bootstrap}/glyphicons-halflings-regular.ttf +0 -0
  26. data/lib/fanforce/app_factory/{assets/lib/vendors/bootstrap/fonts → asset_framework/app_factory/bootstrap}/glyphicons-halflings-regular.woff +0 -0
  27. data/lib/fanforce/app_factory/{assets/lib → asset_framework/app_factory}/common/_mixins.scss +0 -0
  28. data/lib/fanforce/app_factory/asset_framework/app_factory/directives.coffee +1 -0
  29. data/lib/fanforce/app_factory/asset_framework/app_factory/directives/error/_error.scss +6 -0
  30. data/lib/fanforce/app_factory/{assets/lib/common/module-error → asset_framework/app_factory/directives/error}/arrow-left.png +0 -0
  31. data/lib/fanforce/app_factory/{assets/lib/common/module-error → asset_framework/app_factory/directives/error}/icon-error.png +0 -0
  32. data/lib/fanforce/app_factory/asset_framework/app_factory/directives/initiative-footer/_initiative-footer.coffee +16 -0
  33. data/lib/fanforce/app_factory/{assets/lib/common/_module-add-initiative-footer.scss → asset_framework/app_factory/directives/initiative-footer/_initiative-footer.scss} +4 -1
  34. data/lib/fanforce/app_factory/{assets/lib/common/_module-initiative-searcher.scss → asset_framework/app_factory/directives/initiative-searcher/_initiative-searcher.scss} +6 -6
  35. data/lib/fanforce/app_factory/{assets/lib/common/module-initiative-searcher → asset_framework/app_factory/directives/initiative-searcher}/icon-search.png +0 -0
  36. data/lib/fanforce/app_factory/{assets/lib/common/module-initiative-searcher → asset_framework/app_factory/directives/initiative-searcher}/spinner.gif +0 -0
  37. data/lib/fanforce/app_factory/{assets/lib/common/module-initiative-searcher → asset_framework/app_factory/directives/initiative-searcher}/sprite-arrows.png +0 -0
  38. data/lib/fanforce/app_factory/asset_framework/app_factory/directives/loading/_loading.coffee +4 -0
  39. data/lib/fanforce/app_factory/asset_framework/app_factory/directives/loading/_loading.scss +4 -0
  40. data/lib/fanforce/app_factory/{assets/js/add_source_popup.js → asset_framework/app_factory/directives/saving-to-server/_saving-to-server.coffee} +0 -0
  41. data/lib/fanforce/app_factory/asset_framework/app_factory/directives/saving-to-server/_saving-to-server.scss +6 -0
  42. data/lib/fanforce/app_factory/{assets/lib/common/module-saving-initiative → asset_framework/app_factory/directives/saving-to-server}/spinner.gif +0 -0
  43. data/lib/fanforce/app_factory/asset_framework/app_factory/directives/start-arrow/_start-arrow.coffee +8 -0
  44. data/lib/fanforce/app_factory/{assets/lib/common/_module-start-here.scss → asset_framework/app_factory/directives/start-arrow/_start-arrow.scss} +5 -4
  45. data/lib/fanforce/app_factory/{assets/lib/common/module-start-here → asset_framework/app_factory/directives/start-arrow}/arrow.png +0 -0
  46. data/lib/fanforce/app_factory/{assets/lib/common/_module-video-thumbnail.scss → asset_framework/app_factory/directives/video-thumbnail/_video-thumbnail.scss} +3 -3
  47. data/lib/fanforce/app_factory/{assets/lib/common/module-video-thumbnail → asset_framework/app_factory/directives/video-thumbnail}/icon-play.png +0 -0
  48. data/lib/fanforce/app_factory/asset_framework/app_factory/font-awesome.coffee +1 -0
  49. data/lib/fanforce/app_factory/{assets/lib/vendors/font-awesome/font → asset_framework/app_factory/font-awesome}/FontAwesome.otf +0 -0
  50. data/lib/fanforce/app_factory/{assets/lib/vendors/font-awesome/css → asset_framework/app_factory/font-awesome}/font-awesome.css +2 -2
  51. data/lib/fanforce/app_factory/{assets/lib/vendors/font-awesome/css → asset_framework/app_factory/font-awesome}/font-awesome.min.css +0 -0
  52. data/lib/fanforce/app_factory/{assets/lib/vendors/font-awesome/font → asset_framework/app_factory/font-awesome}/fontawesome-webfont.eot +0 -0
  53. data/lib/fanforce/app_factory/{assets/lib/vendors/font-awesome/font → asset_framework/app_factory/font-awesome}/fontawesome-webfont.svg +0 -0
  54. data/lib/fanforce/app_factory/{assets/lib/vendors/font-awesome/font → asset_framework/app_factory/font-awesome}/fontawesome-webfont.ttf +0 -0
  55. data/lib/fanforce/app_factory/{assets/lib/vendors/font-awesome/font → asset_framework/app_factory/font-awesome}/fontawesome-webfont.woff +0 -0
  56. data/lib/fanforce/app_factory/asset_framework/app_factory/lib.coffee +1 -0
  57. data/lib/fanforce/app_factory/asset_framework/app_factory/lib/cookie.coffee +16 -0
  58. data/lib/fanforce/app_factory/asset_framework/app_factory/lib/ng-focus-blur.js +68 -0
  59. data/lib/fanforce/app_factory/asset_framework/app_factory/lib/ng-visible.js +7 -0
  60. data/lib/fanforce/app_factory/asset_framework/app_factory/lib/url.coffee +20 -0
  61. data/lib/fanforce/app_factory/asset_framework/app_factory/lib/utils.coffee +11 -0
  62. data/lib/fanforce/app_factory/asset_framework/app_factory/scafolding/_promotional.scss +1 -0
  63. data/lib/fanforce/app_factory/asset_framework/app_factory/scafolding/_standard.scss +1 -0
  64. data/lib/fanforce/app_factory/{assets/js/fanforce-engager.js → asset_framework/app_factory/scafolding/promotional.coffee} +0 -0
  65. data/lib/fanforce/app_factory/asset_framework/app_factory/ui-select.coffee +1 -0
  66. data/lib/fanforce/app_factory/asset_framework/app_factory/ui-select/select.css +171 -0
  67. data/lib/fanforce/app_factory/asset_framework/app_factory/ui-select/select.js +1281 -0
  68. data/lib/fanforce/app_factory/asset_framework/app_factory/ui-select/select_override.scss +1 -0
  69. data/lib/fanforce/app_factory/asset_framework/app_factory/ui-select/selectize.default.css +443 -0
  70. data/lib/fanforce/app_factory/cli/_cleanorgs.rb +54 -0
  71. data/lib/fanforce/app_factory/controllers/base_controller.rb +5 -1
  72. data/lib/fanforce/app_factory/core_config.rb +95 -0
  73. data/lib/fanforce/app_factory/scafolding/Routes.rb +64 -0
  74. data/lib/fanforce/app_factory/{layouts → scafolding/layouts}/engage.haml +0 -0
  75. data/lib/fanforce/app_factory/{public → scafolding/public}/favicon.ico +0 -0
  76. data/lib/fanforce/app_factory/{public → scafolding/public}/robots.txt +0 -0
  77. data/lib/fanforce/app_factory/{assets/lib/common/layouts/_promotional.scss → scafolding/scafolding_assets/css/promotional.scss} +4 -9
  78. data/lib/fanforce/app_factory/scafolding/scafolding_assets/css/standard.scss +10 -0
  79. data/lib/fanforce/app_factory/{assets → scafolding/scafolding_assets}/img/icon-16.png +0 -0
  80. data/lib/fanforce/app_factory/{assets → scafolding/scafolding_assets}/img/icon-32.png +0 -0
  81. data/lib/fanforce/app_factory/{assets → scafolding/scafolding_assets}/img/icon-42.png +0 -0
  82. data/lib/fanforce/app_factory/{assets → scafolding/scafolding_assets}/img/marketplace.png +0 -0
  83. data/lib/fanforce/app_factory/{assets → scafolding/scafolding_assets}/img/marketplace.psd +0 -0
  84. data/lib/fanforce/app_factory/{assets/lib → scafolding/scafolding_assets/img}/promotional/fanforce_bg.png +0 -0
  85. data/lib/fanforce/app_factory/{assets/lib → scafolding/scafolding_assets/img}/promotional/icon-42.png +0 -0
  86. data/lib/fanforce/app_factory/{assets/lib → scafolding/scafolding_assets/img}/promotional/icon-plus.png +0 -0
  87. data/lib/fanforce/app_factory/{views → scafolding/views}/add_initiative.haml +0 -0
  88. data/lib/fanforce/app_factory/{views → scafolding/views}/add_source.haml +0 -0
  89. data/lib/fanforce/app_factory/{views → scafolding/views}/close_popup.haml +0 -0
  90. data/lib/fanforce/app_factory/{views → scafolding/views}/config.haml +0 -0
  91. data/lib/fanforce/app_factory/{views → scafolding/views}/convert_initiative.haml +0 -0
  92. data/lib/fanforce/app_factory/{views → scafolding/views}/dashboard.haml +1 -1
  93. data/lib/fanforce/app_factory/{views → scafolding/views}/edit_initiative.haml +0 -0
  94. data/lib/fanforce/app_factory/{views → scafolding/views}/engage.haml +0 -0
  95. data/lib/fanforce/app_factory/{views → scafolding/views}/index.haml +1 -1
  96. data/lib/fanforce/app_factory/{views → scafolding/views}/new_message.haml +0 -0
  97. data/lib/fanforce/app_factory/{views → scafolding/views}/source_details.haml +0 -0
  98. data/lib/fanforce/app_factory/{views → scafolding/views}/widget_templates.haml +0 -0
  99. data/lib/fanforce/app_factory/sinatra/Routes.rb +17 -0
  100. data/lib/fanforce/app_factory/sinatra/_load.rb +76 -0
  101. data/lib/fanforce/app_factory/sinatra/error_handling.rb +47 -0
  102. data/lib/fanforce/app_factory/{routes_core.rb → sinatra/helper_routes/app.rb} +8 -8
  103. data/lib/fanforce/app_factory/sinatra/helper_routes/com_behavior.rb +23 -0
  104. data/lib/fanforce/app_factory/sinatra/helper_routes/com_broadcaster.rb +7 -0
  105. data/lib/fanforce/app_factory/sinatra/helper_routes/com_connector.rb +11 -0
  106. data/lib/fanforce/app_factory/sinatra/helper_routes/com_identifier.rb +3 -0
  107. data/lib/fanforce/app_factory/{routes_js_widget.rb → sinatra/helper_routes/com_js_widget.rb} +1 -1
  108. data/lib/fanforce/app_factory/{config → sinatra}/helpers/assets.rb +1 -1
  109. data/lib/fanforce/app_factory/sinatra/helpers/fanforce.rb +18 -0
  110. data/lib/fanforce/app_factory/{config → sinatra}/helpers/json.rb +1 -1
  111. data/lib/fanforce/app_factory/{config → sinatra}/helpers/ractive.rb +1 -1
  112. data/lib/fanforce/app_factory/sprockets/_all.rb +2 -0
  113. data/lib/fanforce/app_factory/sprockets/compiler.rb +2 -11
  114. data/lib/fanforce/app_factory/sprockets/hacks.rb +1 -1
  115. data/lib/fanforce/app_factory/version.rb +2 -2
  116. data/workers.json +323 -0
  117. metadata +121 -222
  118. data/.rbenv-gemsets +0 -1
  119. data/lib/fanforce/app_factory.rake +0 -56
  120. data/lib/fanforce/app_factory/_init_sinatra.rb +0 -80
  121. data/lib/fanforce/app_factory/assets/css/add_edit_initiative.scss +0 -1
  122. data/lib/fanforce/app_factory/assets/css/add_source.scss +0 -1
  123. data/lib/fanforce/app_factory/assets/css/config.scss +0 -1
  124. data/lib/fanforce/app_factory/assets/css/convert_initiative.scss +0 -1
  125. data/lib/fanforce/app_factory/assets/css/dashboard.scss +0 -24
  126. data/lib/fanforce/app_factory/assets/css/engage.scss +0 -1
  127. data/lib/fanforce/app_factory/assets/css/new_message.scss +0 -1
  128. data/lib/fanforce/app_factory/assets/css/promotional.scss +0 -1
  129. data/lib/fanforce/app_factory/assets/css/source_details.scss +0 -1
  130. data/lib/fanforce/app_factory/assets/js/add_edit_initiative.js +0 -1
  131. data/lib/fanforce/app_factory/assets/js/add_source.js +0 -1
  132. data/lib/fanforce/app_factory/assets/js/config.js +0 -1
  133. data/lib/fanforce/app_factory/assets/js/convert_initiative.js +0 -1
  134. data/lib/fanforce/app_factory/assets/js/dashboard.coffee +0 -18
  135. data/lib/fanforce/app_factory/assets/js/fanforce-finder.js +0 -0
  136. data/lib/fanforce/app_factory/assets/js/new_message.js +0 -1
  137. data/lib/fanforce/app_factory/assets/js/promotional.js +0 -1
  138. data/lib/fanforce/app_factory/assets/js/source_details.js +0 -0
  139. data/lib/fanforce/app_factory/assets/lib/common/_module-error.scss +0 -11
  140. data/lib/fanforce/app_factory/assets/lib/common/_module-page-loading.scss +0 -1
  141. data/lib/fanforce/app_factory/assets/lib/common/_module-saving-initiative.scss +0 -6
  142. data/lib/fanforce/app_factory/assets/lib/common/_tags.scss +0 -1
  143. data/lib/fanforce/app_factory/assets/lib/common/_variables.scss +0 -27
  144. data/lib/fanforce/app_factory/assets/lib/common/broadcaster-divider-arrow.png +0 -0
  145. data/lib/fanforce/app_factory/assets/lib/common/icons/dropdown-arrow.png +0 -0
  146. data/lib/fanforce/app_factory/assets/lib/common/icons/initiative.png +0 -0
  147. data/lib/fanforce/app_factory/assets/lib/common/layouts/_add_edit_initiative.scss +0 -27
  148. data/lib/fanforce/app_factory/assets/lib/common/layouts/_add_source.scss +0 -18
  149. data/lib/fanforce/app_factory/assets/lib/common/layouts/_config.scss +0 -27
  150. data/lib/fanforce/app_factory/assets/lib/common/layouts/_convert_initiative.scss +0 -27
  151. data/lib/fanforce/app_factory/assets/lib/common/layouts/_dashboard.scss +0 -18
  152. data/lib/fanforce/app_factory/assets/lib/common/layouts/_engage.scss +0 -80
  153. data/lib/fanforce/app_factory/assets/lib/common/layouts/_new_message.scss +0 -24
  154. data/lib/fanforce/app_factory/assets/lib/common/layouts/_source_details.scss +0 -17
  155. data/lib/fanforce/app_factory/assets/lib/common/layouts/add_edit_initiative.js +0 -6
  156. data/lib/fanforce/app_factory/assets/lib/common/layouts/add_source.js +0 -6
  157. data/lib/fanforce/app_factory/assets/lib/common/layouts/config.js +0 -6
  158. data/lib/fanforce/app_factory/assets/lib/common/layouts/convert_initiative.js +0 -6
  159. data/lib/fanforce/app_factory/assets/lib/common/layouts/dashboard.js +0 -6
  160. data/lib/fanforce/app_factory/assets/lib/common/layouts/engage.js +0 -0
  161. data/lib/fanforce/app_factory/assets/lib/common/layouts/new_message.js +0 -5
  162. data/lib/fanforce/app_factory/assets/lib/common/layouts/promotional.js +0 -1
  163. data/lib/fanforce/app_factory/assets/lib/common/layouts/source_details.js +0 -5
  164. data/lib/fanforce/app_factory/assets/lib/vendors/bootstrap-datepicker/datepicker.css +0 -7
  165. data/lib/fanforce/app_factory/assets/lib/vendors/bootstrap-datepicker/datepicker.js +0 -454
  166. data/lib/fanforce/app_factory/assets/lib/vendors/bootstrap-timepicker/timepicker.css +0 -82
  167. data/lib/fanforce/app_factory/assets/lib/vendors/bootstrap-timepicker/timepicker.js +0 -803
  168. data/lib/fanforce/app_factory/assets/lib/vendors/bootstrap/css/bootstrap.min.css +0 -7
  169. data/lib/fanforce/app_factory/assets/lib/vendors/bootstrap/img/glyphicons-halflings-regular.eot +0 -0
  170. data/lib/fanforce/app_factory/assets/lib/vendors/bootstrap/img/glyphicons-halflings-regular.svg +0 -0
  171. data/lib/fanforce/app_factory/assets/lib/vendors/bootstrap/img/glyphicons-halflings-regular.ttf +0 -0
  172. data/lib/fanforce/app_factory/assets/lib/vendors/bootstrap/img/glyphicons-halflings-regular.woff +0 -0
  173. data/lib/fanforce/app_factory/assets/lib/vendors/chosen/_chosen_override.scss +0 -6
  174. data/lib/fanforce/app_factory/assets/lib/vendors/chosen/chosen-sprite.png +0 -0
  175. data/lib/fanforce/app_factory/assets/lib/vendors/chosen/chosen-sprite@2x.png +0 -0
  176. data/lib/fanforce/app_factory/assets/lib/vendors/chosen/chosen.jquery.js +0 -1166
  177. data/lib/fanforce/app_factory/assets/lib/vendors/chosen/chosen.scss +0 -434
  178. data/lib/fanforce/app_factory/assets/lib/vendors/jquery/jquery-1.10.2.js +0 -9789
  179. data/lib/fanforce/app_factory/assets/lib/vendors/jquery/jquery.inputHint.js +0 -154
  180. data/lib/fanforce/app_factory/assets/lib/vendors/jquery/jquery.tmpl.debug.js +0 -484
  181. data/lib/fanforce/app_factory/assets/lib/vendors/knockout/knockout.custom-handlers.coffee +0 -155
  182. data/lib/fanforce/app_factory/assets/lib/vendors/knockout/knockout.debug.js +0 -4469
  183. data/lib/fanforce/app_factory/assets/lib/vendors/knockout/knockout.min.js +0 -96
  184. data/lib/fanforce/app_factory/assets/lib/vendors/select2/_select2_override.scss +0 -47
  185. data/lib/fanforce/app_factory/assets/lib/vendors/select2/select2-spinner.gif +0 -0
  186. data/lib/fanforce/app_factory/assets/lib/vendors/select2/select2.png +0 -0
  187. data/lib/fanforce/app_factory/assets/lib/vendors/select2/select2.scss +0 -617
  188. data/lib/fanforce/app_factory/assets/lib/vendors/select2/select2_modified.js +0 -3225
  189. data/lib/fanforce/app_factory/assets/lib/vendors/select2/select2x2.png +0 -0
  190. data/lib/fanforce/app_factory/assets/lib/vendors/underscore/underscore.debug.js +0 -999
  191. data/lib/fanforce/app_factory/config/_error_handling.rb +0 -27
  192. data/lib/fanforce/app_factory/config/core_config.rb +0 -104
  193. data/lib/fanforce/app_factory/config/helpers/fanforce.rb +0 -22
  194. data/lib/fanforce/app_factory/layouts/add_edit_initiative.haml +0 -18
  195. data/lib/fanforce/app_factory/layouts/add_source.haml +0 -18
  196. data/lib/fanforce/app_factory/layouts/config.haml +0 -18
  197. data/lib/fanforce/app_factory/layouts/convert_initiative.haml +0 -18
  198. data/lib/fanforce/app_factory/layouts/dashboard.haml +0 -18
  199. data/lib/fanforce/app_factory/layouts/new_message.haml +0 -18
  200. data/lib/fanforce/app_factory/layouts/promotional.haml +0 -18
  201. data/lib/fanforce/app_factory/layouts/source_details.haml +0 -18
  202. data/lib/fanforce/app_factory/routes_behavior.rb +0 -31
  203. data/lib/fanforce/app_factory/routes_broadcaster.rb +0 -7
  204. data/lib/fanforce/app_factory/routes_connector.rb +0 -11
  205. data/lib/fanforce/app_factory/routes_identifier.rb +0 -3
  206. data/lib/fanforce/app_factory_workers.rb +0 -2
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 7a6daa3781ad6df52d324adbaec0f920c27163d7
4
+ data.tar.gz: b662bfb08538a614a54e1855c1ebaac20fb42144
5
+ SHA512:
6
+ metadata.gz: d12bbc95a3ea5895ddf6602315322592ee9b3b1f8b3cd949ad947694a1c2c2c066b92f0e5542bb4ad43131c7edf30ed13890005b456c7c2bc0809c3da89aca4e
7
+ data.tar.gz: 07621632a6e6b49f8bfd3e1bd67f6144d4f589047531b8a208021a4cc164d84dce633a1e42aaacd07e339ed0028afdeb700a4942e03ca0b044e2e6558093ce54
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 1.9.3-p194
1
+ 2.0.0-p576
data/.yardopts ADDED
@@ -0,0 +1,5 @@
1
+ lib/**/*.rb
2
+ --load ./.yardopts.rb
3
+ --markup-provider=redcarpet
4
+ --markup=markdown
5
+ --readme README.md
data/.yardopts.rb ADDED
@@ -0,0 +1 @@
1
+ require 'redcarpet/compat'
data/Gemfile CHANGED
@@ -1,2 +1,11 @@
1
- source "https://rubygems.org"
1
+ source 'https://rubygems.org'
2
2
  gemspec
3
+
4
+ group :development, :test do
5
+ gem 'minitest'
6
+ gem 'rack-test'
7
+ gem 'simplecov', :require => false
8
+ gem 'yard'
9
+ gem 'redcarpet'
10
+ gem 'github-markup', :require => true
11
+ end
data/README.md CHANGED
@@ -24,9 +24,9 @@ Only four lines are required (you must have a Redis server).
24
24
 
25
25
  ```ruby
26
26
  require 'bundler'; Bundler.setup
27
- require 'fanforce/app'
28
- FanforceApp.config { |config| config._id = 'facebook' }
29
- run FanforceApp
27
+ require 'fanforce/app_factory'
28
+ Fanforce::App.config { |config| config._id = 'facebook' }
29
+ run Fanforce::App
30
30
  ```
31
31
  You can replace config._id (as in the example above) with an environment variable: ENV['FANFORCE_APP_ID']
32
32
 
@@ -91,19 +91,19 @@ Anything you put in here will be publicly available. The only folder you should
91
91
  * /favicon.ico
92
92
 
93
93
  ### /config/routes.rb
94
- The fanforce-app-factory sets up all the required routes. If you want to customize existing routes or add new ones, create a config/routes.rb file and specify routes within the FanforceApp:Sinatra class:
94
+ The fanforce-app-factory sets up all the required routes. If you want to customize existing routes or add new ones, create a config/routes.rb file and specify routes within the App:Sinatra class:
95
95
  ```
96
- class FanforceApp::Sinatra
96
+ class App::Sinatra
97
97
  get '/test' do
98
98
  "Custom route!"
99
99
  end
100
100
  end
101
101
  ```
102
- Check out [Sinatra's](http://www.sinatrarb.com/documentation) documentation for more details on routes and much more. The FanforceApp::Sinatra inherits from the Sinatra::Base, which gives you full control to customize the fanforce-app-factory's sinatra implementation as much as you want.
102
+ Check out [Sinatra's](http://www.sinatrarb.com/documentation) documentation for more details on routes and much more. The App::Sinatra inherits from the Sinatra::Base, which gives you full control to customize the fanforce-app-factory's sinatra implementation as much as you want.
103
103
 
104
104
  Overwrite any existing routes by specifying them in your config/routes.rb. You can also pull default route logic into your new custom routes by calling route_[NAME_OF_ROUTE] method.
105
105
  ```
106
- class FanforceApp::Sinatra
106
+ class App::Sinatra
107
107
  any '/install' do
108
108
  # do whatever you want here
109
109
  route_install
@@ -122,7 +122,7 @@ If you need to run Sinatra middleware or other non-route code, you'll want to cr
122
122
  require 'omniauth'
123
123
  require 'omniauth-constantcontact2'
124
124
 
125
- class FanforceApp::Sinatra
125
+ class App::Sinatra
126
126
 
127
127
  use Rack::Session::Cookie
128
128
  use OmniAuth::Builder do
@@ -172,8 +172,8 @@ Documentation coming soon.
172
172
  By default fanforce-app-factory looks for ENV['REDIS_URL'] and if that isn't found, it falls back to redis://localhost:6379. You can specify a custom redis url with `config.redis_url = ` in config.ru:
173
173
  ```
174
174
  require 'bundler'; Bundler.setup
175
- require 'fanforce/app'
176
- FanforceApp.config do |config|
175
+ require 'fanforce/app_factory'
176
+ Fanforce::App.config do |config|
177
177
  config.redis_url = 'redis://USERNAME:PASSWORD@HOST:PORT'
178
178
  end
179
179
  load 'fanforce/app.rake'
@@ -182,14 +182,14 @@ load 'fanforce/app.rake'
182
182
 
183
183
  # Using Fanforce::Worker
184
184
 
185
- FanforceApp includes the fanforce-workers gem by default and includes a convenience helper method. FanforceApp.enqueue
185
+ Fanforce::App includes the fanforce-workers gem by default and includes a convenience helper method. Fanforce::App.enqueue
186
186
  will prefix the name of your worker with the name of your plugin to ensure there are no conflicts across multiple plugins
187
187
  or apps. This is the naming convention used by Fanforce Factory when creating and uploading Iron.io workers.
188
188
 
189
189
  As an example, if you have a testing.worker file, you would use the following command:
190
190
 
191
191
  ```
192
- FanforceApp.enqueue 'testing', {params_to_send: 'whatever'}
192
+ Fanforce::App.enqueue 'testing', {params_to_send: 'whatever'}
193
193
  ```
194
194
 
195
195
 
data/Rakefile CHANGED
@@ -3,8 +3,14 @@ require 'rake/testtask'
3
3
  require 'fileutils'
4
4
  include FileUtils
5
5
 
6
- # Default Rake task is compile
7
- #task :default => :compile
6
+ task :run_test do
7
+ Rake::Task['test'].execute
8
+ puts '---------------------------------------------------------------------'
9
+ puts 'TESTS PASSED... READY TO BUILD...'
10
+ puts '---------------------------------------------------------------------'
11
+ end
12
+ task :build => :run_test
13
+ task :default => :build
8
14
 
9
15
  ########################################################################
10
16
 
@@ -14,4 +20,3 @@ Rake::TestTask.new do |t|
14
20
  t.pattern = 'test/**/*_test.rb'
15
21
  t.verbose = false
16
22
  end
17
-
data/apps.json ADDED
@@ -0,0 +1,787 @@
1
+ [
2
+ {
3
+ "_id": "d3cc09e5-ac07-4527-8222-23f953617070",
4
+ "_puid": "twitter",
5
+ "name": "Twitter",
6
+ "description": "Import Twitter followers, and send both both regular and direct tweets requesting engagement.",
7
+ "organization_id": "5110df09-af71-441b-aad1-05463317c768",
8
+ "config": {
9
+ "public_urls": {
10
+ "marketplace_img": "http://{{APP_DOMAIN}}/assets/marketplace.png",
11
+ "icon_16": "http://{{APP_DOMAIN}}/assets/icon-16.png",
12
+ "icon_32": "http://{{APP_DOMAIN}}/assets/icon-32.png",
13
+ "icon_42": "http://{{APP_DOMAIN}}/assets/icon-42.png"
14
+ },
15
+ "staffer_ui_urls": {"config": null},
16
+ "callback_urls": {
17
+ "install": "http://{{APP_DOMAIN}}/install",
18
+ "uninstall": "http://{{APP_DOMAIN}}/uninstall"
19
+ }
20
+ },
21
+ "options": null,
22
+ "environ": {
23
+ "_id": "babfd8b1-5427-4ed9-abc3-a6bbe635c1b4",
24
+ "status": "active",
25
+ "permissions": "ALL",
26
+ "type": "development",
27
+ "domain": "{{APP_ID}}.ffapp.gg",
28
+ "dns_host": "127.0.0.1"
29
+ },
30
+ "config_override": {},
31
+ "coms": [
32
+ {
33
+ "_id": "921361ff-2896-44df-87e4-c62dde636e6e",
34
+ "_shortid": "prospects",
35
+ "type": "connector",
36
+ "config": {
37
+ "staffer_ui_urls": {
38
+ "source_details": "http://{{APP_DOMAIN}}/prospects/source_details.html",
39
+ "add_source": "http://{{APP_DOMAIN}}/prospects/add_source.html"
40
+ },
41
+ "staffer_js_urls": {"add_source": "http://{{APP_DOMAIN}}/assets/prospects/add_source.js"}
42
+ },
43
+ "options": null
44
+ },
45
+ {
46
+ "_id": "34f5b145-7be2-43f1-98d2-37d89b6a7366",
47
+ "_shortid": "js-finder",
48
+ "type": "js_finder",
49
+ "config": {"javascript_urls": {"finder": "http://{{APP_DOMAIN}}/assets/fanforce-finder.js"}},
50
+ "options": null
51
+ },
52
+ {
53
+ "_id": "1cc06dc0-586f-4434-b16f-bc8d34627264",
54
+ "_shortid": "direct-message",
55
+ "type": "broadcaster",
56
+ "config": {
57
+ "new_button_label": "Direct Twitter Messages",
58
+ "targeting_capabilities": [
59
+ "list",
60
+ "single"
61
+ ],
62
+ "targeting_criteria": {"plugin_ids": "twitter-followers"},
63
+ "staffer_ui_urls": {"new_message": "http://{{APP_DOMAIN}}/direct-message/new_message.html"}
64
+ },
65
+ "options": null
66
+ },
67
+ {
68
+ "_id": "245e80dc-4476-463e-b7b0-eab56b626876",
69
+ "_shortid": "follow",
70
+ "type": "behavior",
71
+ "config": {
72
+ "add_button_label": "Follow a Twitter Account",
73
+ "verbs": {
74
+ "simple": "follow",
75
+ "progressive": "following",
76
+ "perfect": "followed"
77
+ },
78
+ "nouns": {"common": "twitter"},
79
+ "default_step_count": 1,
80
+ "impact_formula": [
81
+ {
82
+ "calculate_when": "progress_1",
83
+ "add_time": "1s"
84
+ }
85
+ ],
86
+ "staffer_ui_urls": {
87
+ "add_initiative": "http://{{APP_DOMAIN}}/follow/add_initiative.html",
88
+ "edit_initiative": null,
89
+ "convert_initiative": "http://{{APP_DOMAIN}}/follow/convert_initiative.html"
90
+ },
91
+ "callback_urls": {
92
+ "autocreate_initiative": "http://{{APP_DOMAIN}}/follow/autocreate_initiative",
93
+ "destroy_initiative": null,
94
+ "archive_initiative": null
95
+ }
96
+ },
97
+ "options": null
98
+ },
99
+ {
100
+ "_id": "907c7e9c-c81b-4d23-b72f-0bd563626876",
101
+ "_shortid": "tweet",
102
+ "type": "behavior",
103
+ "config": {
104
+ "add_button_label": "Tweet a Message",
105
+ "verbs": {
106
+ "simple": "tweet",
107
+ "progressive": "tweeting",
108
+ "perfect": "tweeted"
109
+ },
110
+ "nouns": {"common": "twitter"},
111
+ "default_step_count": 1,
112
+ "impact_formula": [
113
+ {
114
+ "calculate_when": "progress_1",
115
+ "add_time": "10s"
116
+ }
117
+ ],
118
+ "staffer_ui_urls": {
119
+ "add_initiative": "http://{{APP_DOMAIN}}/tweet/add_initiative.html",
120
+ "edit_initiative": null,
121
+ "convert_initiative": "http://{{APP_DOMAIN}}/tweet/convert_initiative.html"
122
+ },
123
+ "callback_urls": {
124
+ "autocreate_initiative": "http://{{APP_DOMAIN}}/tweet/autocreate_initiative",
125
+ "destroy_initiative": null,
126
+ "archive_initiative": null
127
+ }
128
+ },
129
+ "options": null
130
+ },
131
+ {
132
+ "_id": "f96f968d-807d-4586-a39b-3705ab627264",
133
+ "_shortid": "standard-message",
134
+ "type": "broadcaster",
135
+ "config": {
136
+ "new_button_label": "Tweet",
137
+ "targeting_capabilities": [],
138
+ "staffer_ui_urls": {"new_message": "http://{{APP_DOMAIN}}/standard-message/new_message.html"}
139
+ },
140
+ "options": null
141
+ },
142
+ {
143
+ "_id": "e979c7a7-7938-4bfd-946d-9185d3636e6e",
144
+ "_shortid": "followers",
145
+ "type": "connector",
146
+ "config": {
147
+ "add_button_label": "Twitter Followers",
148
+ "staffer_ui_urls": {
149
+ "source_details": "http://{{APP_DOMAIN}}/followers/source_details.html",
150
+ "add_source": "http://{{APP_DOMAIN}}/followers/add_source.html"
151
+ },
152
+ "staffer_js_urls": {"add_source": "http://{{APP_DOMAIN}}/assets/followers/add_source.js"}
153
+ },
154
+ "options": null
155
+ },
156
+ {
157
+ "_id": "adc8c4bc-5a57-4791-b93c-16c40c626876",
158
+ "_shortid": "retweet",
159
+ "type": "behavior",
160
+ "config": {
161
+ "add_button_label": "Retweet a Message",
162
+ "verbs": {
163
+ "simple": "retweet",
164
+ "progressive": "retweeting",
165
+ "perfect": "retweeted"
166
+ },
167
+ "nouns": {"common": "twitter"},
168
+ "default_step_count": 1,
169
+ "impact_formula": [
170
+ {
171
+ "calculate_when": "progress_1",
172
+ "add_time": "2s"
173
+ }
174
+ ],
175
+ "staffer_ui_urls": {
176
+ "add_initiative": "http://{{APP_DOMAIN}}/retweet/add_initiative.html",
177
+ "edit_initiative": null,
178
+ "convert_initiative": "http://{{APP_DOMAIN}}/retweet/convert_initiative.html"
179
+ },
180
+ "callback_urls": {
181
+ "autocreate_initiative": "http://{{APP_DOMAIN}}/retweet/autocreate_initiative",
182
+ "destroy_initiative": null,
183
+ "archive_initiative": null
184
+ }
185
+ },
186
+ "options": null
187
+ },
188
+ {
189
+ "_id": "2163f0a5-ddf2-461c-b51a-ff72f86a7374",
190
+ "_shortid": "js-tracker",
191
+ "type": "js_tracker",
192
+ "config": {"javascript_urls": {"tracker": "http://{{APP_DOMAIN}}/assets/fanforce-tracker.js"}},
193
+ "options": "{}"
194
+ }
195
+ ]
196
+ },
197
+ {
198
+ "_id": "cd95dc1e-d7e6-4bc7-a51b-449f5b617070",
199
+ "_puid": "crowdfunder",
200
+ "name": "Crowdfunder",
201
+ "description": "Donation app designed for crowd funding campaigns.",
202
+ "organization_id": "5110df09-af71-441b-aad1-05463317c768",
203
+ "config": {
204
+ "public_urls": {
205
+ "marketplace_img": "http://{{APP_DOMAIN}}/assets/marketplace.png",
206
+ "icon_16": "http://{{APP_DOMAIN}}/assets/icon-16.png",
207
+ "icon_32": "http://{{APP_DOMAIN}}/assets/icon-32.png",
208
+ "icon_42": "http://{{APP_DOMAIN}}/assets/icon-42.png"
209
+ },
210
+ "staffer_ui_urls": {"config": null},
211
+ "callback_urls": {
212
+ "install": "http://{{APP_DOMAIN}}/install",
213
+ "uninstall": "http://{{APP_DOMAIN}}/uninstall"
214
+ }
215
+ },
216
+ "options": null,
217
+ "environ": {
218
+ "_id": "70ea2412-0044-450e-bc79-f1364b61ad0a",
219
+ "status": "active",
220
+ "permissions": "ALL",
221
+ "type": "development",
222
+ "domain": "{{APP_ID}}.ffapp.gg",
223
+ "dns_host": "127.0.0.1"
224
+ },
225
+ "config_override": {},
226
+ "coms": [
227
+ {
228
+ "_id": "a31e76b2-1e1b-4fdc-a951-7d2729626876",
229
+ "_shortid": "donate",
230
+ "type": "behavior",
231
+ "config": {
232
+ "category_id": "donate",
233
+ "add_button_label": "Crowdfund",
234
+ "nouns": {"common": "money"},
235
+ "verbs": {
236
+ "simple": "donate",
237
+ "progressive": "donating",
238
+ "perfect": "donated"
239
+ },
240
+ "default_step_count": 1,
241
+ "impact_formula": [
242
+ {
243
+ "calculate_when": "progress_completes",
244
+ "add_time": "1m"
245
+ },
246
+ {
247
+ "calculate_when": "progress_completes",
248
+ "add_money_from_action_field": "donation_amount"
249
+ }
250
+ ],
251
+ "staffer_ui_urls": {
252
+ "add_initiative": "http://{{APP_DOMAIN}}/donate/add_initiative.html",
253
+ "edit_initiative": null,
254
+ "convert_initiative": "http://{{APP_DOMAIN}}/donate/convert_initiative.html"
255
+ },
256
+ "callback_urls": {
257
+ "autocreate_initiative": "http://{{APP_DOMAIN}}/donate/autocreate_initiative",
258
+ "destroy_initiative": null,
259
+ "archive_initiative": null
260
+ }
261
+ },
262
+ "options": null
263
+ },
264
+ {
265
+ "_id": "f583ce07-dd01-41be-af94-3f774a636e6e",
266
+ "_shortid": "donors",
267
+ "type": "connector",
268
+ "config": {
269
+ "staffer_ui_urls": {
270
+ "source_details": "http://{{APP_DOMAIN}}/donors/source_details.html",
271
+ "add_source": "http://{{APP_DOMAIN}}/donors/add_source.html"
272
+ },
273
+ "staffer_js_urls": {"add_source": "http://{{APP_DOMAIN}}/assets/donors/add_source.js"}
274
+ },
275
+ "options": null
276
+ },
277
+ {
278
+ "_id": "2cfc9070-63a2-4b87-a307-68c4e76a7377",
279
+ "_shortid": "donate-form",
280
+ "type": "js_widget",
281
+ "config": {"template_urls": {"widget": "http://{{APP_DOMAIN}}/widget_templates"}},
282
+ "options": null
283
+ },
284
+ {
285
+ "_id": "3062e132-7881-4156-9640-3333d06a7377",
286
+ "_shortid": "stats",
287
+ "type": "js_widget",
288
+ "config": {"template_urls": {"widget": "http://{{APP_DOMAIN}}/widget_templates"}},
289
+ "options": null
290
+ },
291
+ {
292
+ "_id": "3199e59d-b81c-4440-ad96-45b2bb6a7377",
293
+ "_shortid": "recent-supporters-list",
294
+ "type": "js_widget",
295
+ "config": {"template_urls": {"widget": "http://{{APP_DOMAIN}}/widget_templates"}},
296
+ "options": null
297
+ },
298
+ {
299
+ "_id": "0ee7efb8-7564-42ea-82ed-b1b6236a7377",
300
+ "_shortid": "top-influencers-list",
301
+ "type": "js_widget",
302
+ "config": {"template_urls": {"widget": "http://{{APP_DOMAIN}}/widget_templates"}},
303
+ "options": null
304
+ },
305
+ {
306
+ "_id": "31b14419-cde2-4e8f-867c-f12a7e6a7377",
307
+ "_shortid": "founding-donors-list",
308
+ "type": "js_widget",
309
+ "config": {"template_urls": {"widget": "http://{{APP_DOMAIN}}/widget_templates"}},
310
+ "options": null
311
+ },
312
+ {
313
+ "_id": "5a0c4f64-7001-4a0c-ba85-d8cd586a7374",
314
+ "_shortid": "js-tracker",
315
+ "type": "js_tracker",
316
+ "config": {"javascript_urls": {"tracker": "http://{{APP_DOMAIN}}/assets/fanforce-tracker.js"}},
317
+ "options": "{}"
318
+ }
319
+ ]
320
+ },
321
+ {
322
+ "_id": "06cf0e84-9ea0-45c7-9d3b-ff3897617070",
323
+ "_puid": "social-currency",
324
+ "name": "Social Currency",
325
+ "description": "Accept social currency (tweet to twitter, post to facebook, etc) as an alternative to U.S. currency.",
326
+ "organization_id": "5110df09-af71-441b-aad1-05463317c768",
327
+ "config": {
328
+ "public_urls": {
329
+ "marketplace_img": "http://{{APP_DOMAIN}}/assets/marketplace.png",
330
+ "icon_16": "http://{{APP_DOMAIN}}/assets/icon-16.png",
331
+ "icon_32": "http://{{APP_DOMAIN}}/assets/icon-32.png",
332
+ "icon_42": "http://{{APP_DOMAIN}}/assets/icon-42.png"
333
+ },
334
+ "staffer_ui_urls": {"config": "http://{{APP_DOMAIN}}/config.html"},
335
+ "callback_urls": {
336
+ "install": "http://{{APP_DOMAIN}}/install",
337
+ "uninstall": "http://{{APP_DOMAIN}}/uninstall"
338
+ }
339
+ },
340
+ "options": "{\"has_config_page\":true}",
341
+ "environ": {
342
+ "_id": "a92295cc-57c1-467c-9b93-60f0e3215960",
343
+ "status": "active",
344
+ "permissions": "ALL",
345
+ "type": "development",
346
+ "domain": "{{APP_ID}}.ffapp.gg",
347
+ "dns_host": "127.0.0.1"
348
+ },
349
+ "config_override": {},
350
+ "coms": [
351
+ {
352
+ "_id": "9bf40650-e8ba-4f09-8a9d-85de94626876",
353
+ "_shortid": "redeem",
354
+ "type": "behavior",
355
+ "config": {
356
+ "add_button_label": "Redeem Social Currency",
357
+ "verbs": {
358
+ "simple": "redeem",
359
+ "progressive": "redeeming",
360
+ "perfect": "redeemed"
361
+ },
362
+ "nouns": {"common": "tweet"},
363
+ "default_step_count": 4,
364
+ "impact_formula": [
365
+ {
366
+ "calculate_when": "progress_advances",
367
+ "add_time": "10s"
368
+ }
369
+ ],
370
+ "staffer_ui_urls": {
371
+ "add_initiative": "http://{{APP_DOMAIN}}/redeem/add_initiative.html",
372
+ "edit_initiative": "http://{{APP_DOMAIN}}/redeem/edit_initiative.html",
373
+ "convert_initiative": "http://{{APP_DOMAIN}}/redeem/convert_initiative.html"
374
+ },
375
+ "callback_urls": {
376
+ "autocreate_initiative": "http://{{APP_DOMAIN}}/redeem/autocreate_initiative",
377
+ "destroy_initiative": null,
378
+ "archive_initiative": null
379
+ }
380
+ },
381
+ "options": "{\"allow_edit_initiative\":true,\"allow_add_initiative\":true}"
382
+ },
383
+ {
384
+ "_id": "9d4e0a2a-0888-4360-a3ce-8617d46a7374",
385
+ "_shortid": "js-tracker",
386
+ "type": "js_tracker",
387
+ "config": {"javascript_urls": {"tracker": "http://{{APP_DOMAIN}}/assets/fanforce-tracker.js"}},
388
+ "options": "{}"
389
+ },
390
+ {
391
+ "_id": "58021466-7e0b-4ca0-a7cb-1aa4756a7377",
392
+ "_shortid": "@",
393
+ "type": "js_widget",
394
+ "config": {"template_urls": {"widget": "http://{{APP_DOMAIN}}/widget_templates"}},
395
+ "options": "{}"
396
+ },
397
+ {
398
+ "_id": "9fa8e3f7-f305-4a2b-9045-e8ba83636e6e",
399
+ "_shortid": "user-input",
400
+ "type": "connector",
401
+ "config": {
402
+ "staffer_ui_urls": {
403
+ "source_details": "http://{{APP_DOMAIN}}/user-input/source_details.html",
404
+ "add_source": "http://{{APP_DOMAIN}}/user-input/add_source.html"
405
+ },
406
+ "staffer_js_urls": {"add_source": "http://{{APP_DOMAIN}}/assets/user-input/add_source.js"}
407
+ },
408
+ "options": "{}"
409
+ }
410
+ ]
411
+ },
412
+ {
413
+ "_id": "2f82b8fe-6a47-493a-bae2-be693a617070",
414
+ "_puid": "mailchimp",
415
+ "name": "MailChimp",
416
+ "description": "Sync your MailChimp lists, send requests through your campaigns, and track everything subscribers are doing.",
417
+ "organization_id": "5110df09-af71-441b-aad1-05463317c768",
418
+ "config": {
419
+ "public_urls": {
420
+ "marketplace_img": "http://{{APP_DOMAIN}}/assets/marketplace.png",
421
+ "icon_16": "http://{{APP_DOMAIN}}/assets/icon-16.png",
422
+ "icon_32": "http://{{APP_DOMAIN}}/assets/icon-32.png",
423
+ "icon_42": "http://{{APP_DOMAIN}}/assets/icon-42.png"
424
+ },
425
+ "staffer_ui_urls": {"config": null},
426
+ "callback_urls": {
427
+ "install": "http://{{APP_DOMAIN}}/install",
428
+ "uninstall": "http://{{APP_DOMAIN}}/uninstall"
429
+ }
430
+ },
431
+ "options": null,
432
+ "environ": {
433
+ "_id": "444fcc55-8026-45aa-83f8-195f6a0817e4",
434
+ "status": "active",
435
+ "permissions": "ALL",
436
+ "type": "development",
437
+ "domain": "{{APP_ID}}.ffapp.gg",
438
+ "dns_host": "127.0.0.1"
439
+ },
440
+ "config_override": {},
441
+ "coms": [
442
+ {
443
+ "_id": "7292991c-b689-42cf-92d6-a1619e69646e",
444
+ "_shortid": "campaign-links",
445
+ "type": "identifier",
446
+ "config": {},
447
+ "options": null
448
+ },
449
+ {
450
+ "_id": "161b91f0-28ff-4e24-a824-ef9e0c636e6e",
451
+ "_shortid": "subscribers",
452
+ "type": "connector",
453
+ "config": {
454
+ "add_button_label": "MailChimp Subscribers",
455
+ "staffer_ui_urls": {
456
+ "source_details": "http://{{APP_DOMAIN}}/subscribers/source_details.html",
457
+ "add_source": "http://{{APP_DOMAIN}}/subscribers/add_source.html"
458
+ },
459
+ "staffer_js_urls": {"add_source": "http://{{APP_DOMAIN}}/assets/subscribers/add_source.js"}
460
+ },
461
+ "options": null
462
+ },
463
+ {
464
+ "_id": "fe293cd3-0077-4325-b764-2f03ce627264",
465
+ "_shortid": "campaigns",
466
+ "type": "broadcaster",
467
+ "config": {
468
+ "new_button_label": "MailChimp Campaign",
469
+ "iframe_label": "SmartLinks for MailChimp Campaigns",
470
+ "targeting_capabilities": ["list"],
471
+ "targeting_criteria": {"plugin_ids": "mailchimp-subscribers"},
472
+ "staffer_ui_urls": {"new_message": "http://{{APP_DOMAIN}}/campaigns/new_message.html"}
473
+ },
474
+ "options": null
475
+ }
476
+ ]
477
+ },
478
+ {
479
+ "_id": "d4e65b16-67cf-4237-a2da-fcd93b617070",
480
+ "_puid": "simple-auth",
481
+ "name": "Simple Auth",
482
+ "description": "Simple login/logout functionality for a website.",
483
+ "organization_id": "5110df09-af71-441b-aad1-05463317c768",
484
+ "config": {
485
+ "public_urls": {
486
+ "marketplace_img": "http://{{APP_DOMAIN}}/assets/marketplace.png",
487
+ "icon_16": "http://{{APP_DOMAIN}}/assets/icon-16.png",
488
+ "icon_32": "http://{{APP_DOMAIN}}/assets/icon-32.png",
489
+ "icon_42": "http://{{APP_DOMAIN}}/assets/icon-42.png"
490
+ },
491
+ "staffer_ui_urls": {"config": null},
492
+ "callback_urls": {
493
+ "install": "http://{{APP_DOMAIN}}/install",
494
+ "uninstall": "http://{{APP_DOMAIN}}/uninstall"
495
+ }
496
+ },
497
+ "options": null,
498
+ "environ": {
499
+ "_id": "ca5a4471-0d53-4666-91e7-a34d43e371c7",
500
+ "status": "active",
501
+ "permissions": "ALL",
502
+ "type": "development",
503
+ "domain": "{{APP_ID}}.ffapp.gg",
504
+ "dns_host": "127.0.0.1"
505
+ },
506
+ "config_override": {},
507
+ "coms": [
508
+ {
509
+ "_id": "3458bfc5-e631-45f5-8973-ebe36f636e6e",
510
+ "_shortid": "accounts",
511
+ "type": "connector",
512
+ "config": {
513
+ "staffer_ui_urls": {
514
+ "source_details": "http://{{APP_DOMAIN}}/accounts/source_details.html",
515
+ "add_source": "http://{{APP_DOMAIN}}/accounts/add_source.html"
516
+ },
517
+ "staffer_js_urls": {"add_source": "http://{{APP_DOMAIN}}/assets/accounts/add_source.js"}
518
+ },
519
+ "options": null
520
+ },
521
+ {
522
+ "_id": "2c1f8c96-a0be-471f-a93d-d3a2a46a7377",
523
+ "_shortid": "login",
524
+ "type": "js_widget",
525
+ "config": {"template_urls": {"widget": "http://{{APP_DOMAIN}}/widget_templates"}},
526
+ "options": null
527
+ },
528
+ {
529
+ "_id": "986b164a-ea02-40d0-8cda-bf8ea86a7377",
530
+ "_shortid": "register",
531
+ "type": "js_widget",
532
+ "config": {"template_urls": {"widget": "http://{{APP_DOMAIN}}/widget_templates"}},
533
+ "options": null
534
+ },
535
+ {
536
+ "_id": "f39b0db1-38b9-47f9-b67e-31d2d76a7377",
537
+ "_shortid": "lost-password",
538
+ "type": "js_widget",
539
+ "config": {"template_urls": {"widget": "http://{{APP_DOMAIN}}/widget_templates"}},
540
+ "options": null
541
+ },
542
+ {
543
+ "_id": "c8cd9e08-94cd-48b1-9e77-0c78296a7377",
544
+ "_shortid": "reset-password",
545
+ "type": "js_widget",
546
+ "config": {"template_urls": {"widget": "http://{{APP_DOMAIN}}/widget_templates"}},
547
+ "options": null
548
+ },
549
+ {
550
+ "_id": "1c1b4f09-5987-4eb3-aef0-6778216a7374",
551
+ "_shortid": "js-tracker",
552
+ "type": "js_tracker",
553
+ "config": {"javascript_urls": {"tracker": "http://{{APP_DOMAIN}}/assets/fanforce-tracker.js"}},
554
+ "options": "{}"
555
+ }
556
+ ]
557
+ },
558
+ {
559
+ "_id": "de6f3789-3187-4601-b0c5-83a92f617070",
560
+ "_puid": "vimeo",
561
+ "name": "Vimeo",
562
+ "description": "Get your fans to watch your Vimeo videos and track their progress.",
563
+ "organization_id": "5110df09-af71-441b-aad1-05463317c768",
564
+ "config": {
565
+ "public_urls": {
566
+ "marketplace_img": "http://{{APP_DOMAIN}}/assets/marketplace.png",
567
+ "icon_16": "http://{{APP_DOMAIN}}/assets/icon-16.png",
568
+ "icon_32": "http://{{APP_DOMAIN}}/assets/icon-32.png",
569
+ "icon_42": "http://{{APP_DOMAIN}}/assets/icon-42.png"
570
+ },
571
+ "staffer_ui_urls": {"config": null},
572
+ "callback_urls": {
573
+ "install": "http://{{APP_DOMAIN}}/install",
574
+ "uninstall": "http://{{APP_DOMAIN}}/uninstall"
575
+ }
576
+ },
577
+ "options": null,
578
+ "environ": {
579
+ "_id": "a0940b4e-956a-42ee-9358-12fa92b6db15",
580
+ "status": "active",
581
+ "permissions": "ALL",
582
+ "type": "development",
583
+ "domain": "{{APP_ID}}.ffapp.gg",
584
+ "dns_host": "127.0.0.1"
585
+ },
586
+ "config_override": {},
587
+ "coms": [
588
+ {
589
+ "_id": "8d8622fe-6b0f-42e4-a5b6-0c62cc6a7366",
590
+ "_shortid": "js-finder",
591
+ "type": "js_finder",
592
+ "config": {"javascript_urls": {"finder": "http://{{APP_DOMAIN}}/assets/fanforce-finder.js"}},
593
+ "options": null
594
+ },
595
+ {
596
+ "_id": "18f0abca-c183-4b14-a688-4c8e4a6a7377",
597
+ "_shortid": "player",
598
+ "type": "js_widget",
599
+ "config": {"template_urls": {"widget": "http://{{APP_DOMAIN}}/widget_templates"}},
600
+ "options": null
601
+ },
602
+ {
603
+ "_id": "cb5045fc-578c-45d0-98ca-118dc36a7374",
604
+ "_shortid": "js-tracker",
605
+ "type": "js_tracker",
606
+ "config": {"javascript_urls": {"tracker": "http://{{APP_DOMAIN}}/assets/fanforce-tracker.js"}},
607
+ "options": "{}"
608
+ },
609
+ {
610
+ "_id": "dfe6b7a1-f7f7-4520-bb21-f699e3626876",
611
+ "_shortid": "watch",
612
+ "type": "behavior",
613
+ "config": {
614
+ "add_button_label": "Watch Vimeo",
615
+ "category_id": "watch-video",
616
+ "nouns": {"common": "video"},
617
+ "verbs": {
618
+ "simple": "watch",
619
+ "progressive": "watching",
620
+ "perfect": "watched"
621
+ },
622
+ "default_step_count": 100,
623
+ "impact_formula": [
624
+ {
625
+ "calculate_when": "progress_starts",
626
+ "add_bonusmarks": "1"
627
+ },
628
+ {
629
+ "calculate_when": "progress_advances",
630
+ "add_time_from_initiative_field": "seconds_per_progress_step",
631
+ "default_unit_of_time": "seconds"
632
+ }
633
+ ],
634
+ "staffer_ui_urls": {
635
+ "add_initiative": "http://{{APP_DOMAIN}}/watch/add_initiative.html",
636
+ "edit_initiative": null,
637
+ "convert_initiative": "http://{{APP_DOMAIN}}/watch/convert_initiative.html"
638
+ },
639
+ "callback_urls": {
640
+ "autocreate_initiative": "http://{{APP_DOMAIN}}/watch/autocreate_initiative",
641
+ "destroy_initiative": null,
642
+ "archive_initiative": null
643
+ }
644
+ },
645
+ "options": null
646
+ }
647
+ ]
648
+ },
649
+ {
650
+ "_id": "d470c10b-d4e3-42ba-8267-b327b9617070",
651
+ "_puid": "personal-emailer",
652
+ "name": "Personal Emailer",
653
+ "description": "Send personal Action Request emails to anyone in your Fanforce who has an email address.",
654
+ "organization_id": "5110df09-af71-441b-aad1-05463317c768",
655
+ "config": {
656
+ "public_urls": {
657
+ "marketplace_img": "http://{{APP_DOMAIN}}/assets/marketplace.png",
658
+ "icon_16": "http://{{APP_DOMAIN}}/assets/icon-16.png",
659
+ "icon_32": "http://{{APP_DOMAIN}}/assets/icon-32.png",
660
+ "icon_42": "http://{{APP_DOMAIN}}/assets/icon-42.png"
661
+ },
662
+ "staffer_ui_urls": {"config": null},
663
+ "callback_urls": {
664
+ "install": "http://{{APP_DOMAIN}}/install",
665
+ "uninstall": "http://{{APP_DOMAIN}}/uninstall"
666
+ }
667
+ },
668
+ "options": null,
669
+ "environ": {
670
+ "_id": "c66b193c-c372-4da3-a775-014e403ee05d",
671
+ "status": "active",
672
+ "permissions": "ALL",
673
+ "type": "development",
674
+ "domain": "{{APP_ID}}.ffapp.gg",
675
+ "dns_host": "127.0.0.1"
676
+ },
677
+ "config_override": {},
678
+ "coms": [
679
+ {
680
+ "_id": "e5d4d1be-c0bf-4424-aa3a-71e7bb627264",
681
+ "_shortid": "launcher",
682
+ "type": "broadcaster",
683
+ "config": {
684
+ "new_button_label": "My Personal Emailer",
685
+ "targeting_capabilities": [
686
+ "list",
687
+ "single"
688
+ ],
689
+ "targeting_criteria": {"communication_channels": "email"},
690
+ "staffer_ui_urls": {"new_message": "http://{{APP_DOMAIN}}/launcher/new_message.html"}
691
+ },
692
+ "options": null
693
+ }
694
+ ]
695
+ },
696
+ {
697
+ "_id": "dc915204-9048-42a1-905a-3e6585617070",
698
+ "_puid": "youtube",
699
+ "name": "YouTube",
700
+ "description": "Get your fans to watch your YouTube videos and track their progress.",
701
+ "organization_id": "5110df09-af71-441b-aad1-05463317c768",
702
+ "config": {
703
+ "public_urls": {
704
+ "marketplace_img": "http://{{APP_DOMAIN}}/assets/marketplace.png",
705
+ "icon_16": "http://{{APP_DOMAIN}}/assets/icon-16.png",
706
+ "icon_32": "http://{{APP_DOMAIN}}/assets/icon-32.png",
707
+ "icon_42": "http://{{APP_DOMAIN}}/assets/icon-42.png"
708
+ },
709
+ "staffer_ui_urls": {"config": null},
710
+ "callback_urls": {
711
+ "install": "http://{{APP_DOMAIN}}/install",
712
+ "uninstall": "http://{{APP_DOMAIN}}/uninstall"
713
+ }
714
+ },
715
+ "options": null,
716
+ "environ": {
717
+ "_id": "bd3b6b1b-6649-4d29-9f6c-ab9a9f8f8631",
718
+ "status": "active",
719
+ "permissions": "ALL",
720
+ "type": "development",
721
+ "domain": "{{APP_ID}}.ffapp.gg",
722
+ "dns_host": "127.0.0.1"
723
+ },
724
+ "config_override": {},
725
+ "coms": [
726
+ {
727
+ "_id": "3756ecc4-490f-439e-b783-e72fbc6a7366",
728
+ "_shortid": "js-finder",
729
+ "type": "js_finder",
730
+ "config": {"javascript_urls": {"finder": "http://{{APP_DOMAIN}}/assets/fanforce-finder.js"}},
731
+ "options": null
732
+ },
733
+ {
734
+ "_id": "56d39b36-cd82-478d-a0ac-76af406a7377",
735
+ "_shortid": "player",
736
+ "type": "js_widget",
737
+ "config": {"template_urls": {"widget": "http://{{APP_DOMAIN}}/widget_templates"}},
738
+ "options": null
739
+ },
740
+ {
741
+ "_id": "67bb9342-2d81-4421-885b-6b8c4f626876",
742
+ "_shortid": "watch",
743
+ "type": "behavior",
744
+ "config": {
745
+ "add_button_label": "Watch YouTube",
746
+ "category_id": "watch-video",
747
+ "verbs": {
748
+ "simple": "watch",
749
+ "progressive": "watching",
750
+ "perfect": "watched"
751
+ },
752
+ "nouns": {"common": "video"},
753
+ "default_step_count": 100,
754
+ "impact_formula": [
755
+ {
756
+ "calculate_when": "progress_starts",
757
+ "add_bonusmarks": "1"
758
+ },
759
+ {
760
+ "calculate_when": "progress_advances",
761
+ "add_time_from_initiative_field": "seconds_per_progress_step",
762
+ "default_unit_of_time": "seconds"
763
+ }
764
+ ],
765
+ "staffer_ui_urls": {
766
+ "add_initiative": "http://{{APP_DOMAIN}}/watch/add_initiative.html",
767
+ "edit_initiative": null,
768
+ "convert_initiative": "http://{{APP_DOMAIN}}/watch/convert_initiative.html"
769
+ },
770
+ "callback_urls": {
771
+ "autocreate_initiative": "http://{{APP_DOMAIN}}/watch/autocreate_initiative",
772
+ "destroy_initiative": null,
773
+ "archive_initiative": null
774
+ }
775
+ },
776
+ "options": null
777
+ },
778
+ {
779
+ "_id": "febbaecd-4b19-4b87-b1f9-a220556a7374",
780
+ "_shortid": "js-tracker",
781
+ "type": "js_tracker",
782
+ "config": {"javascript_urls": {"tracker": "http://{{APP_DOMAIN}}/assets/fanforce-tracker.js"}},
783
+ "options": "{}"
784
+ }
785
+ ]
786
+ }
787
+ ]