transit 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (186) hide show
  1. data/Gemfile +19 -11
  2. data/app/assets/images/transit/icon24x24.png +0 -0
  3. data/app/assets/images/transit/icon24x24_files.png +0 -0
  4. data/app/assets/images/transit/jplayer.swf +0 -0
  5. data/app/assets/images/transit/uploadify.swf +0 -0
  6. data/app/assets/images/transit/video_player.swf +0 -0
  7. data/app/assets/javascripts/jqtools/expose.js +224 -0
  8. data/app/assets/javascripts/jqtools/flashembed.js +300 -0
  9. data/app/assets/javascripts/jqtools/overlay.js +294 -0
  10. data/app/assets/javascripts/jqtools/scrollable.js +3 -0
  11. data/app/assets/javascripts/jqtools/scrollable/autoscroll.js +81 -0
  12. data/app/assets/javascripts/jqtools/scrollable/base.js +335 -0
  13. data/app/assets/javascripts/jqtools/scrollable/navigator.js +139 -0
  14. data/app/assets/javascripts/jqtools/validator.js +590 -0
  15. data/app/assets/javascripts/jqueryui/accordion.js +611 -0
  16. data/app/assets/javascripts/jqueryui/autocomplete.js +612 -0
  17. data/app/assets/javascripts/jqueryui/button.js +388 -0
  18. data/app/assets/javascripts/jqueryui/core.js +312 -0
  19. data/app/assets/javascripts/jqueryui/datepicker.js +1791 -0
  20. data/app/assets/javascripts/jqueryui/dialog.js +878 -0
  21. data/app/assets/javascripts/jqueryui/draggable.js +815 -0
  22. data/app/assets/javascripts/jqueryui/droppable.js +285 -0
  23. data/app/assets/javascripts/jqueryui/effects/blind.js +49 -0
  24. data/app/assets/javascripts/jqueryui/effects/bounce.js +78 -0
  25. data/app/assets/javascripts/jqueryui/effects/clip.js +54 -0
  26. data/app/assets/javascripts/jqueryui/effects/core.js +746 -0
  27. data/app/assets/javascripts/jqueryui/effects/drop.js +50 -0
  28. data/app/assets/javascripts/jqueryui/effects/explode.js +79 -0
  29. data/app/assets/javascripts/jqueryui/effects/fade.js +32 -0
  30. data/app/assets/javascripts/jqueryui/effects/fold.js +56 -0
  31. data/app/assets/javascripts/jqueryui/effects/highlight.js +50 -0
  32. data/app/assets/javascripts/jqueryui/effects/pulsate.js +51 -0
  33. data/app/assets/javascripts/jqueryui/effects/scale.js +178 -0
  34. data/app/assets/javascripts/jqueryui/effects/shake.js +57 -0
  35. data/app/assets/javascripts/jqueryui/effects/slide.js +50 -0
  36. data/app/assets/javascripts/jqueryui/effects/transfer.js +45 -0
  37. data/app/assets/javascripts/jqueryui/mouse.js +160 -0
  38. data/app/assets/javascripts/jqueryui/position.js +252 -0
  39. data/app/assets/javascripts/jqueryui/progressbar.js +109 -0
  40. data/app/assets/javascripts/jqueryui/resizable.js +814 -0
  41. data/app/assets/javascripts/jqueryui/selectable.js +266 -0
  42. data/app/assets/javascripts/jqueryui/slider.js +666 -0
  43. data/app/assets/javascripts/jqueryui/sortable.js +1077 -0
  44. data/app/assets/javascripts/jqueryui/tabs.js +758 -0
  45. data/app/assets/javascripts/jqueryui/widget.js +262 -0
  46. data/app/assets/javascripts/libs/backbone.js +1152 -0
  47. data/app/assets/javascripts/libs/cookie.js +89 -0
  48. data/app/assets/javascripts/libs/fileinput.js +130 -0
  49. data/app/assets/javascripts/libs/jplayer.js +1768 -0
  50. data/app/assets/javascripts/libs/proper.js +541 -0
  51. data/app/assets/javascripts/libs/sanitize.js +282 -0
  52. data/app/assets/javascripts/libs/selecttolist.js +75 -0
  53. data/app/assets/javascripts/libs/underscore.js +807 -0
  54. data/app/assets/javascripts/libs/uploadify.js +677 -0
  55. data/app/assets/javascripts/libs/wymeditor.js +9538 -0
  56. data/app/assets/javascripts/transit.js +4 -0
  57. data/app/assets/javascripts/transit/admin.js +22 -0
  58. data/app/assets/javascripts/transit/admin/contexts.js +52 -0
  59. data/app/assets/javascripts/transit/admin/fields.js +36 -0
  60. data/app/assets/javascripts/transit/admin/upload.js +109 -0
  61. data/app/assets/javascripts/transit/config.js.erb +101 -0
  62. data/app/assets/javascripts/transit/contexts/audio.js +39 -0
  63. data/app/assets/javascripts/transit/contexts/video.js +79 -0
  64. data/app/assets/javascripts/transit/core.js +171 -0
  65. data/app/assets/javascripts/transit/frontend.js +3 -0
  66. data/app/assets/javascripts/transit/lib/base64.js +120 -0
  67. data/app/assets/javascripts/transit/lib/editor.js +177 -0
  68. data/app/assets/javascripts/transit/views/audio_player.jst +22 -0
  69. data/app/assets/javascripts/transit/views/editor_toolbar.jst +12 -0
  70. data/app/assets/javascripts/transit/views/file_upload.jst +5 -0
  71. data/app/assets/javascripts/transit/views/video_player.jst +20 -0
  72. data/app/assets/javascripts/transit/views/wym_box.jst +4 -0
  73. data/app/assets/javascripts/transit/views/wym_iframe.jst +3 -0
  74. data/app/assets/stylesheets/transit.css.scss.erb +42 -0
  75. data/app/assets/stylesheets/transit/forms.css.scss +66 -0
  76. data/app/assets/stylesheets/transit/media/audio.css.scss +65 -0
  77. data/app/assets/stylesheets/transit/media/video.css.scss +30 -0
  78. data/app/assets/stylesheets/transit/panel.css.scss +100 -0
  79. data/app/assets/stylesheets/transit/ui.css.scss +507 -0
  80. data/app/controllers/pages_controller.rb +3 -0
  81. data/app/controllers/posts_controller.rb +3 -0
  82. data/app/controllers/transit/assets_controller.rb +38 -0
  83. data/app/controllers/transit/contexts_controller.rb +12 -9
  84. data/app/controllers/transit/pages_controller.rb +26 -0
  85. data/app/controllers/transit/posts_controller.rb +31 -0
  86. data/app/controllers/transit/topics_controller.rb +5 -0
  87. data/app/controllers/transit_controller.rb +16 -0
  88. data/app/helpers/transit/admin_helper.rb +43 -0
  89. data/app/helpers/transit/form_helper.rb +17 -0
  90. data/app/helpers/transit/package_helper.rb +41 -0
  91. data/app/helpers/transit/pagination_helper.rb +58 -0
  92. data/app/helpers/transit_helper.rb +42 -0
  93. data/app/models/comment.rb +37 -0
  94. data/app/models/contexts/audio.rb +12 -0
  95. data/app/models/{text.rb → contexts/text.rb} +0 -0
  96. data/app/models/contexts/video.rb +24 -0
  97. data/app/models/topic.rb +19 -0
  98. data/app/models/transit/asset.rb +68 -0
  99. data/{lib → app/models}/transit/context.rb +29 -0
  100. data/app/views/contexts/_text.html.erb +1 -1
  101. data/app/views/posts/index.rss.builder +18 -0
  102. data/app/views/transit/assets/_file.html.erb +4 -0
  103. data/app/views/transit/assets/_image.html.erb +13 -0
  104. data/app/views/transit/assets/create.js.erb +8 -0
  105. data/app/views/transit/assets/destroy.js.erb +3 -0
  106. data/app/views/transit/assets/manage.html.erb +20 -0
  107. data/app/views/transit/contexts/_audio.html.erb +18 -0
  108. data/app/views/transit/contexts/_text.html.erb +6 -0
  109. data/app/views/transit/contexts/_video.html.erb +13 -0
  110. data/app/views/transit/contexts/destroy.js.erb +1 -0
  111. data/app/views/transit/contexts/index.html.erb +5 -0
  112. data/app/views/transit/contexts/new.js.erb +7 -0
  113. data/app/views/transit/contexts/show.html.erb +8 -0
  114. data/app/views/transit/index.html.erb +26 -0
  115. data/app/views/transit/index.js.erb +1 -0
  116. data/app/views/transit/interface/post_panel.html.erb +96 -0
  117. data/app/views/transit/pages/_table.html.erb +7 -0
  118. data/app/views/transit/pages/edit.html.erb +17 -0
  119. data/app/views/transit/pages/index.html.erb +17 -0
  120. data/app/views/transit/pages/update.js.erb +1 -0
  121. data/app/views/transit/posts/_form.html.erb +49 -0
  122. data/app/views/transit/posts/edit.html.erb +14 -0
  123. data/app/views/transit/posts/new.html.erb +21 -0
  124. data/app/views/transit/table.html.erb +13 -0
  125. data/app/views/transit/table.js.erb +8 -0
  126. data/app/views/transit/topics/manage.html.erb +28 -0
  127. data/config/locales/en.yml +22 -0
  128. data/config/routes.rb +3 -3
  129. data/lib/transit.rb +51 -17
  130. data/lib/transit/admin.rb +85 -0
  131. data/lib/transit/builders/form_builder.rb +319 -0
  132. data/lib/transit/builders/jst_builder.rb +38 -0
  133. data/lib/transit/builders/package_builder.rb +45 -0
  134. data/lib/transit/config.rb +20 -0
  135. data/lib/transit/controller/generator.rb +42 -0
  136. data/lib/transit/controller/responder.rb +34 -0
  137. data/lib/transit/core_ext.rb +18 -0
  138. data/lib/transit/errors/resource_not_found.rb +6 -0
  139. data/lib/transit/model/assets.rb +14 -0
  140. data/lib/transit/model/attachments.rb +55 -0
  141. data/lib/transit/model/auto_increment.rb +22 -0
  142. data/lib/transit/model/base.rb +56 -0
  143. data/lib/transit/model/comments.rb +19 -0
  144. data/lib/transit/model/hooks.rb +38 -0
  145. data/lib/transit/model/owners.rb +14 -0
  146. data/lib/transit/model/paginator.rb +92 -0
  147. data/lib/transit/model/topics.rb +14 -0
  148. data/lib/transit/package/page.rb +20 -12
  149. data/lib/transit/package/post.rb +87 -33
  150. data/lib/transit/package/post/validations.rb +14 -0
  151. data/lib/transit/rails/engine.rb +29 -13
  152. data/lib/transit/rails/railtie.rb +31 -0
  153. data/lib/transit/rails/routing.rb +11 -6
  154. data/lib/transit/services.rb +13 -0
  155. data/lib/transit/services/base.rb +14 -0
  156. data/lib/transit/services/facebook.rb +13 -0
  157. data/lib/transit/services/ted.rb +10 -0
  158. data/lib/transit/services/twitter.rb +13 -0
  159. data/lib/transit/services/vimeo.rb +10 -0
  160. data/lib/transit/services/you_tube.rb +12 -0
  161. data/lib/transit/version.rb +1 -1
  162. metadata +178 -31
  163. data/app/assets/stylesheets/includes/_compat.scss +0 -24
  164. data/app/assets/stylesheets/includes/_defaults.scss +0 -99
  165. data/app/assets/stylesheets/includes/_global.scss +0 -16
  166. data/app/assets/stylesheets/includes/_imports.scss +0 -27
  167. data/app/assets/stylesheets/includes/_mixins.scss +0 -38
  168. data/app/assets/stylesheets/includes/_setup.scss +0 -85
  169. data/app/assets/stylesheets/layout.css.scss +0 -29
  170. data/app/assets/stylesheets/transit.css +0 -3
  171. data/app/controllers/application_controller.rb +0 -5
  172. data/app/controllers/transit/index_controller.rb +0 -7
  173. data/app/controllers/transit/packages_controller.rb +0 -64
  174. data/app/controllers/transit/transit_controller.rb +0 -4
  175. data/app/helpers/routing_helpers.rb +0 -7
  176. data/app/models/audio.rb +0 -4
  177. data/app/models/package_asset.rb +0 -11
  178. data/app/models/video.rb +0 -8
  179. data/app/views/contexts/_audio.html.erb +0 -1
  180. data/app/views/contexts/_video.html.erb +0 -1
  181. data/app/views/layouts/transit.html.erb +0 -31
  182. data/app/views/transit/index/index.html.erb +0 -0
  183. data/lib/transit/helpers/controller_helpers.rb +0 -40
  184. data/lib/transit/helpers/model_helpers.rb +0 -26
  185. data/lib/transit/package.rb +0 -25
  186. data/lib/transit/package/base.rb +0 -49
@@ -0,0 +1,4 @@
1
+ //= require libs/underscore
2
+ //= require libs/backbone
3
+ //= require transit/core
4
+ //= require transit/config
@@ -0,0 +1,22 @@
1
+ //= require transit
2
+ //= require transit/frontend
3
+ //= require libs/proper
4
+ //= require libs/wymeditor
5
+ //= require libs/selecttolist
6
+ //= require libs/cookie
7
+ //= require libs/fileinput
8
+ //= require_tree ./lib
9
+ //= require_tree ./admin
10
+ //= require_self
11
+
12
+
13
+ jQuery(function(){
14
+
15
+ jQuery('#transit_admin_panel_wrapper').tabs({ cookie:{} });
16
+ jQuery('*[data-ui-button]').each(function(i, element){
17
+ var self = jQuery(element),
18
+ icon = self.data('ui-button');
19
+ self.button({ icons: { primary: 'ui-icon-'+ icon } });
20
+ });
21
+
22
+ });
@@ -0,0 +1,52 @@
1
+ jQuery(function(){
2
+
3
+ var listing = jQuery('#context_list'),
4
+ form = listing.closest('form'),
5
+ options = {
6
+ title: 'Options',
7
+ autoOpen: false,
8
+ draggable: true,
9
+ resizable: false,
10
+ dialogClass: 'transit_context_dialog',
11
+ minWidth: false,
12
+ minHeight: false
13
+ };
14
+
15
+ listing
16
+ .bind("context:added", add_new_context)
17
+ .bind("context:destroyed", remove_context);
18
+
19
+ listing.find('li.field').each( function(i, item ){
20
+ var item = jQuery(item), panel;
21
+ if( item.hasClass('field_text') ) return true;
22
+
23
+ panel = item.find('div.toolbar')
24
+ panel.dialog( options );
25
+ item.bind('mouseover', function( event ){
26
+ item.addClass('ui-state-hover');
27
+ })
28
+ .bind('mouseout', function( event){
29
+ item.removeClass('ui-state-hover');
30
+ })
31
+ .bind('click', function( event ){
32
+ panel.dialog('open');
33
+ });
34
+
35
+ });
36
+
37
+ function add_new_context( event, content, type ){
38
+ var toolbar;
39
+ if( (/text/i).test(type) ) return true;
40
+
41
+ content = jQuery(content);
42
+ toolbar = jQuery(content.filter('div.toolbar'));
43
+ toolbar.dialog( options );
44
+ listing.append(content);
45
+
46
+ }
47
+
48
+ function remove_context( event, target ){
49
+
50
+ }
51
+
52
+ });
@@ -0,0 +1,36 @@
1
+ jQuery(function(){
2
+
3
+ var dp = jQuery('div.datepicker'),
4
+ name = dp.attr('rel'),
5
+ month_select = jQuery('#'+name+"_2i"),
6
+ day_select = jQuery('#'+name+"_3i"),
7
+ year_select = jQuery('#'+name+"_1i");
8
+
9
+
10
+ jQuery('.transit-editable').transit('editor');
11
+
12
+ if( dp.length > 0 ){
13
+
14
+ dp.datepicker({
15
+ dateFormat: 'yy-m-d',
16
+ defaultDate: [year_select.val(), month_select.val(), day_select.val()].join("-").toString(),
17
+ onSelect: function( dateText, input ){
18
+ var date_opts = dateText.split("-");
19
+ year_select.val(date_opts[0]);
20
+ month_select.val(date_opts[1]);
21
+ day_select.val(date_opts[2]);
22
+ }
23
+ });
24
+ }
25
+
26
+ jQuery('#post_edit').bind('submit', function( event ){
27
+ var i, inst;
28
+ for( i = 0; i < jQuery.wymeditors.length, i++; ){
29
+ jQuery.wymeditors(i).update();
30
+ }
31
+ return true;
32
+ });
33
+
34
+ jQuery('#post_default_image').fileinput({ buttonText:'', inputText: 'Choose an image' });
35
+
36
+ });
@@ -0,0 +1,109 @@
1
+ //= require libs/uploadify
2
+ //= require libs/backbone
3
+ //= require transit/views/file_upload
4
+
5
+ jQuery(function(){
6
+
7
+ var upload_button = jQuery('#upload_file_link'),
8
+ upload_dialog,
9
+ upload_field,
10
+ upload_url = upload_button.data('upload-path'),
11
+ field_id = _.uniqueId('upload_field'),
12
+ upload_conf = transit.merge(transit.config['uploadify'], {
13
+ id : field_id,
14
+ buttonClass : '',
15
+ uploader : upload_url,
16
+ fileObjName : upload_button.attr('rel'),
17
+ postData : {},
18
+ height : 25,
19
+ width : 135,
20
+ onUploadSuccess : process_upload,
21
+ onUploadProgress: update_progress,
22
+ onSelect: add_to_queue
23
+ }),
24
+ queue_list;
25
+
26
+
27
+ if( upload_button.length == 0 ) return true;
28
+
29
+ upload_dialog = jQuery(transit.template.parse('transit/views/file_upload',
30
+ {
31
+ field_name: upload_button.attr('rel'),
32
+ field_id:field_id
33
+ }));
34
+
35
+ upload_dialog
36
+ .appendTo(jQuery('body'))
37
+ .dialog({
38
+ title:'Upload Files',
39
+ position:['center', 'center'],
40
+ autoOpen:false,
41
+ closeOnEscape:false,
42
+ width:400,
43
+ minHeight: 300,
44
+ draggable:true,
45
+ resizable: false,
46
+ buttons: [
47
+ { text: 'Start Upload',
48
+ click: start_queue,
49
+ icon: 'ui-icon-check'
50
+ },
51
+ { text: 'Cancel',
52
+ click: cancel_queue,
53
+ icon: 'ui-icon-closethick'
54
+ }
55
+ ]
56
+ });
57
+
58
+ upload_field = jQuery("#"+field_id);
59
+ queue_list = jQuery('#file_upload_queue');
60
+
61
+ upload_button.bind('click', function( event ){
62
+ event.preventDefault();
63
+ upload_dialog.dialog('open');
64
+ activate_queue();
65
+ });
66
+
67
+ function activate_queue(){
68
+ upload_field.uploadify(upload_conf);
69
+ jQuery('#'+field_id+'_button').button({ icons: { primary: 'ui-icon-plusthick' } });
70
+ jQuery('#'+field_id).css({
71
+ position: 'absolute',
72
+ top: '1em',
73
+ left: '1em'
74
+ });
75
+ }
76
+
77
+ function add_to_queue(){
78
+ jQuery('#file_upload_queue div.uploadifyProgress').progressbar();
79
+ }
80
+
81
+ function start_queue( event ){
82
+ upload_field.uploadifyUpload();
83
+ }
84
+
85
+ function cancel_queue( event ){
86
+ upload_dialog.dialog('close');
87
+ }
88
+
89
+ function process_upload(file, data, success){
90
+ var resp = jQuery.parseJSON(data),
91
+ item = jQuery(resp.content);
92
+
93
+ if( resp.image ) item.hide().appendTo( jQuery('#asset_image_list') );
94
+ else item.hide().appendTo( jQuery('#asset_image_list') );
95
+
96
+ item.fadeIn('fast');
97
+ jQuery('#' + file.id).next('div.uploadifyProgress').progressbar('value', 0);
98
+ jQuery('#asset_upload').uploadifyCancel(file.id);
99
+ }
100
+
101
+ function update_progress(file, fileBytesLoaded, fileTotalBytes, queueBytesLoaded, queueSize){
102
+ var percentage = Math.round(fileBytesLoaded / fileTotalBytes * 100);
103
+ console.log(jQuery('#' + file.id).find('div.uploadifyProgress'));
104
+ jQuery('#' + file.id).find('div.uploadifyProgress').progressbar('value', percentage);
105
+ return false;
106
+ }
107
+
108
+
109
+ });
@@ -0,0 +1,101 @@
1
+ (function(transit){
2
+
3
+ var media_defaults = {
4
+ swfPath: "<%= asset_path 'transit/jplayer.swf' %>",
5
+ solution: "flash,html",
6
+ idPrefix: "transit_media",
7
+ preload: "auto",
8
+ backgroundColor: "",
9
+ cssSelector: {
10
+ play: ".media-play",
11
+ pause: ".media-pause",
12
+ stop: ".media-stop",
13
+ videoPlay: ".media-video-play",
14
+ seekBar: ".media-seek-bar",
15
+ playBar: ".media-play-bar",
16
+ mute: ".media-mute",
17
+ unmute: ".media-unmute",
18
+ volumeBar: ".media-volume-bar",
19
+ volumeBarValue: ".media-volume-bar-value",
20
+ currentTime: ".media-current-time",
21
+ duration: ".media-duration"
22
+ }
23
+ };
24
+
25
+
26
+ // HTML5 player... ignore for now.
27
+ //transit.configure('video', jQuery.extend({}, media_defaults, { supplied: 'm4v' }));
28
+
29
+ transit.configure('audio', jQuery.extend({}, media_defaults, { supplied: 'mp3,m4a,wav' }));
30
+ transit.configure('video', {
31
+ src: "<%= asset_path 'transit/video_player.swf' %>",
32
+ image: '',
33
+ movie: '',
34
+ autoplay: 'false',
35
+ loop: 'false',
36
+ autohide: 'false',
37
+ fullscreen: 'true',
38
+ color_text: "0xffffff",
39
+ color_seekbar: "0x108194",
40
+ color_loadingbar: "0xe4f2f6",
41
+ color_seekbarbg: "0x108194",
42
+ color_button_out: "0x108194",
43
+ color_button_over: "0xd15245",
44
+ color_button_highlight: "0xffffff"
45
+ });
46
+
47
+ transit.configure('richtext', {
48
+ basePath:'assets/',
49
+ skin:'compact',
50
+ toolsItems: [],
51
+ containersItems: [],
52
+ classesItems: []
53
+ });
54
+
55
+ transit.configure('uploadify', {
56
+ swf : "<%= asset_path 'transit/uploadify.swf' %>",
57
+ auto : false,
58
+ buttonClass : 'button',
59
+ buttonCursor : 'hand',
60
+ buttonImage : '',
61
+ buttonText : 'Choose Files',
62
+ cancelImage : '',
63
+ checkExisting : false,
64
+ debug : false,
65
+ fileSizeLimit : 104857600,
66
+ fileTypeDesc : 'Choose an Image or Video',
67
+ fileTypeExts : '*.*',
68
+ height : 30,
69
+ method : 'post',
70
+ multi : true,
71
+ queueID : 'file_upload_queue',
72
+ queueSizeLimit : 10,
73
+ removeCompleted : false,
74
+ requeueErrors : true,
75
+ preventCaching : true,
76
+ progressData : 'percentage',
77
+ successTimeout : 30,
78
+ scriptAccess : 'always',
79
+ transparent : true,
80
+ uploadLimit : 999,
81
+ uploaderType : 'html5',
82
+ width : 120,
83
+ checkExisting : false
84
+ });
85
+
86
+ <% Transit.contexts.map(&:to_s).map(&:classify).each do |context| %>
87
+ transit.<%= context %>Context = Backbone.Model.extend({
88
+ defaults: {
89
+ type: "<%= context %>",
90
+ <%= context.constantize.new.to_js.collect{ |key, value| "#{key}: \"\" " }.join(",\n\t\t") %>
91
+ },
92
+ url: function(){
93
+ "/transit/" + resource_url + "/" + package_id + "/" + "contexts/"
94
+ },
95
+ build: function( element ){
96
+ this.attributes = transit.context.data( element, true );
97
+ }
98
+ });
99
+ <% end %>
100
+
101
+ })(transit);
@@ -0,0 +1,39 @@
1
+ //= require libs/jplayer
2
+ //= require transit/views/audio_player
3
+
4
+ (function(transit){
5
+
6
+ var audio = function( element, options ){
7
+ var self = this;
8
+ var data = transit.context.data( element, true ) || {},
9
+ config = transit.merge( options, data ),
10
+ conf = transit.config['audio'],
11
+ uid = _.uniqueId(),
12
+ ui = transit.template.parse('transit/views/audio_player', { uid: uid }),
13
+ player_element = jQuery("<div class='player_instance' id='transit_audio_"+ uid +"'></div>");
14
+
15
+ jQuery.extend(self, {
16
+ play: function(){ element.jPlayer('play'); },
17
+ pause: function(){ element.jPlayer('pause'); },
18
+ stop: function(){ element.jPlayer("stop"); }
19
+ });
20
+
21
+ conf.ready = function(){
22
+ var opts = {}, ext = config.ext;
23
+ if( typeof ext == 'undefined' ) ext = /[^.]+$/.exec(config.source);
24
+ opts[ext] = config.source;
25
+ jQuery(player_element).jPlayer('setMedia', opts);
26
+ };
27
+
28
+ conf.cssSelectorAncestor = '#transit_media_interface_' + uid;
29
+ element.append(player_element);
30
+ element.append(jQuery(ui)).addClass('media-audio');
31
+ player_element.jPlayer(conf);
32
+
33
+ return self;
34
+ };
35
+
36
+ transit.context.add("audio", audio);
37
+
38
+
39
+ })(transit);
@@ -0,0 +1,79 @@
1
+ //= require libs/jplayer
2
+ //= require transit/views/video_player
3
+
4
+ (function(transit){
5
+
6
+ var video = function( element, options ){
7
+ var self = this;
8
+ var data = transit.context.data( element, true ) || {},
9
+ inst, config = transit.merge( options, data ),
10
+ player, player_element,
11
+ pid = _.uniqueId();
12
+
13
+ config.uid = pid;
14
+
15
+ player_element = jQuery("<div class='player_instance' id='transit_video_"+ pid +"'></div>");
16
+ element.prepend(player_element);
17
+ player_element.css({ width:'100%', height:'100%' });
18
+
19
+ if( typeof data.type == 'undefined' ){
20
+ inst = new video.basic( element, player_element, config );
21
+ }else inst = new video[data.type]( element, player_element, config );
22
+
23
+ jQuery.extend(inst, {
24
+ play: function(){ element.jPlayer('play'); },
25
+ pause: function(){ element.jPlayer('pause'); },
26
+ stop: function(){ element.jPlayer("stop"); }
27
+ });
28
+
29
+ return inst;
30
+ };
31
+
32
+ video.basic = function( element, player_element, options ){
33
+ var params = {
34
+ allowfullscreen: 'true',
35
+ allowscriptaccess: 'always',
36
+ bgcolor: '#000000',
37
+ wmode: 'opaque'
38
+ },
39
+ self = this,
40
+ config = transit.merge(transit.config['video'], options);
41
+ params.src = config.src;
42
+
43
+ if( options.type == 'youtube' && !(/youtube/).test( options.source )){
44
+ options.source = "http://www.youtube.com/v/" + options.source;
45
+ }
46
+
47
+ options.movie = options.source;
48
+ player_element.flashembed(params, $.extend({}, config, options));
49
+
50
+ return self;
51
+ }
52
+
53
+ // video.basic = function( element, player_element, options ){
54
+ // var conf = _.clone(transit.config['video']),
55
+ // ui = transit.template.parse('transit/views/video_player', { uid: options.uid });
56
+ //
57
+ // element.append(jQuery(ui));
58
+ //
59
+ // conf.ready = function(){
60
+ // var opts = {}, ext = options.ext;
61
+ //
62
+ // if( typeof ext == 'undefined' ) ext = /[^.]+$/.exec(options.source);
63
+ // if( ext == 'mp4' ) ext = 'm4v';
64
+ // if( options.image ) opts.poster = options.image;
65
+ // opts[ext] = options.source;
66
+ // jQuery(player_element).jPlayer('setMedia', opts);
67
+ // };
68
+ // conf.cssSelectorAncestor = '#transit_media_interface_' + options.uid;
69
+ // jQuery(player_element).jPlayer(conf);
70
+ // };
71
+
72
+ video.youtube = function( element, options ){
73
+
74
+ };
75
+
76
+ transit.context.add("video", video);
77
+
78
+
79
+ })(transit);