transit 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +19 -11
- data/app/assets/images/transit/icon24x24.png +0 -0
- data/app/assets/images/transit/icon24x24_files.png +0 -0
- data/app/assets/images/transit/jplayer.swf +0 -0
- data/app/assets/images/transit/uploadify.swf +0 -0
- data/app/assets/images/transit/video_player.swf +0 -0
- data/app/assets/javascripts/jqtools/expose.js +224 -0
- data/app/assets/javascripts/jqtools/flashembed.js +300 -0
- data/app/assets/javascripts/jqtools/overlay.js +294 -0
- data/app/assets/javascripts/jqtools/scrollable.js +3 -0
- data/app/assets/javascripts/jqtools/scrollable/autoscroll.js +81 -0
- data/app/assets/javascripts/jqtools/scrollable/base.js +335 -0
- data/app/assets/javascripts/jqtools/scrollable/navigator.js +139 -0
- data/app/assets/javascripts/jqtools/validator.js +590 -0
- data/app/assets/javascripts/jqueryui/accordion.js +611 -0
- data/app/assets/javascripts/jqueryui/autocomplete.js +612 -0
- data/app/assets/javascripts/jqueryui/button.js +388 -0
- data/app/assets/javascripts/jqueryui/core.js +312 -0
- data/app/assets/javascripts/jqueryui/datepicker.js +1791 -0
- data/app/assets/javascripts/jqueryui/dialog.js +878 -0
- data/app/assets/javascripts/jqueryui/draggable.js +815 -0
- data/app/assets/javascripts/jqueryui/droppable.js +285 -0
- data/app/assets/javascripts/jqueryui/effects/blind.js +49 -0
- data/app/assets/javascripts/jqueryui/effects/bounce.js +78 -0
- data/app/assets/javascripts/jqueryui/effects/clip.js +54 -0
- data/app/assets/javascripts/jqueryui/effects/core.js +746 -0
- data/app/assets/javascripts/jqueryui/effects/drop.js +50 -0
- data/app/assets/javascripts/jqueryui/effects/explode.js +79 -0
- data/app/assets/javascripts/jqueryui/effects/fade.js +32 -0
- data/app/assets/javascripts/jqueryui/effects/fold.js +56 -0
- data/app/assets/javascripts/jqueryui/effects/highlight.js +50 -0
- data/app/assets/javascripts/jqueryui/effects/pulsate.js +51 -0
- data/app/assets/javascripts/jqueryui/effects/scale.js +178 -0
- data/app/assets/javascripts/jqueryui/effects/shake.js +57 -0
- data/app/assets/javascripts/jqueryui/effects/slide.js +50 -0
- data/app/assets/javascripts/jqueryui/effects/transfer.js +45 -0
- data/app/assets/javascripts/jqueryui/mouse.js +160 -0
- data/app/assets/javascripts/jqueryui/position.js +252 -0
- data/app/assets/javascripts/jqueryui/progressbar.js +109 -0
- data/app/assets/javascripts/jqueryui/resizable.js +814 -0
- data/app/assets/javascripts/jqueryui/selectable.js +266 -0
- data/app/assets/javascripts/jqueryui/slider.js +666 -0
- data/app/assets/javascripts/jqueryui/sortable.js +1077 -0
- data/app/assets/javascripts/jqueryui/tabs.js +758 -0
- data/app/assets/javascripts/jqueryui/widget.js +262 -0
- data/app/assets/javascripts/libs/backbone.js +1152 -0
- data/app/assets/javascripts/libs/cookie.js +89 -0
- data/app/assets/javascripts/libs/fileinput.js +130 -0
- data/app/assets/javascripts/libs/jplayer.js +1768 -0
- data/app/assets/javascripts/libs/proper.js +541 -0
- data/app/assets/javascripts/libs/sanitize.js +282 -0
- data/app/assets/javascripts/libs/selecttolist.js +75 -0
- data/app/assets/javascripts/libs/underscore.js +807 -0
- data/app/assets/javascripts/libs/uploadify.js +677 -0
- data/app/assets/javascripts/libs/wymeditor.js +9538 -0
- data/app/assets/javascripts/transit.js +4 -0
- data/app/assets/javascripts/transit/admin.js +22 -0
- data/app/assets/javascripts/transit/admin/contexts.js +52 -0
- data/app/assets/javascripts/transit/admin/fields.js +36 -0
- data/app/assets/javascripts/transit/admin/upload.js +109 -0
- data/app/assets/javascripts/transit/config.js.erb +101 -0
- data/app/assets/javascripts/transit/contexts/audio.js +39 -0
- data/app/assets/javascripts/transit/contexts/video.js +79 -0
- data/app/assets/javascripts/transit/core.js +171 -0
- data/app/assets/javascripts/transit/frontend.js +3 -0
- data/app/assets/javascripts/transit/lib/base64.js +120 -0
- data/app/assets/javascripts/transit/lib/editor.js +177 -0
- data/app/assets/javascripts/transit/views/audio_player.jst +22 -0
- data/app/assets/javascripts/transit/views/editor_toolbar.jst +12 -0
- data/app/assets/javascripts/transit/views/file_upload.jst +5 -0
- data/app/assets/javascripts/transit/views/video_player.jst +20 -0
- data/app/assets/javascripts/transit/views/wym_box.jst +4 -0
- data/app/assets/javascripts/transit/views/wym_iframe.jst +3 -0
- data/app/assets/stylesheets/transit.css.scss.erb +42 -0
- data/app/assets/stylesheets/transit/forms.css.scss +66 -0
- data/app/assets/stylesheets/transit/media/audio.css.scss +65 -0
- data/app/assets/stylesheets/transit/media/video.css.scss +30 -0
- data/app/assets/stylesheets/transit/panel.css.scss +100 -0
- data/app/assets/stylesheets/transit/ui.css.scss +507 -0
- data/app/controllers/pages_controller.rb +3 -0
- data/app/controllers/posts_controller.rb +3 -0
- data/app/controllers/transit/assets_controller.rb +38 -0
- data/app/controllers/transit/contexts_controller.rb +12 -9
- data/app/controllers/transit/pages_controller.rb +26 -0
- data/app/controllers/transit/posts_controller.rb +31 -0
- data/app/controllers/transit/topics_controller.rb +5 -0
- data/app/controllers/transit_controller.rb +16 -0
- data/app/helpers/transit/admin_helper.rb +43 -0
- data/app/helpers/transit/form_helper.rb +17 -0
- data/app/helpers/transit/package_helper.rb +41 -0
- data/app/helpers/transit/pagination_helper.rb +58 -0
- data/app/helpers/transit_helper.rb +42 -0
- data/app/models/comment.rb +37 -0
- data/app/models/contexts/audio.rb +12 -0
- data/app/models/{text.rb → contexts/text.rb} +0 -0
- data/app/models/contexts/video.rb +24 -0
- data/app/models/topic.rb +19 -0
- data/app/models/transit/asset.rb +68 -0
- data/{lib → app/models}/transit/context.rb +29 -0
- data/app/views/contexts/_text.html.erb +1 -1
- data/app/views/posts/index.rss.builder +18 -0
- data/app/views/transit/assets/_file.html.erb +4 -0
- data/app/views/transit/assets/_image.html.erb +13 -0
- data/app/views/transit/assets/create.js.erb +8 -0
- data/app/views/transit/assets/destroy.js.erb +3 -0
- data/app/views/transit/assets/manage.html.erb +20 -0
- data/app/views/transit/contexts/_audio.html.erb +18 -0
- data/app/views/transit/contexts/_text.html.erb +6 -0
- data/app/views/transit/contexts/_video.html.erb +13 -0
- data/app/views/transit/contexts/destroy.js.erb +1 -0
- data/app/views/transit/contexts/index.html.erb +5 -0
- data/app/views/transit/contexts/new.js.erb +7 -0
- data/app/views/transit/contexts/show.html.erb +8 -0
- data/app/views/transit/index.html.erb +26 -0
- data/app/views/transit/index.js.erb +1 -0
- data/app/views/transit/interface/post_panel.html.erb +96 -0
- data/app/views/transit/pages/_table.html.erb +7 -0
- data/app/views/transit/pages/edit.html.erb +17 -0
- data/app/views/transit/pages/index.html.erb +17 -0
- data/app/views/transit/pages/update.js.erb +1 -0
- data/app/views/transit/posts/_form.html.erb +49 -0
- data/app/views/transit/posts/edit.html.erb +14 -0
- data/app/views/transit/posts/new.html.erb +21 -0
- data/app/views/transit/table.html.erb +13 -0
- data/app/views/transit/table.js.erb +8 -0
- data/app/views/transit/topics/manage.html.erb +28 -0
- data/config/locales/en.yml +22 -0
- data/config/routes.rb +3 -3
- data/lib/transit.rb +51 -17
- data/lib/transit/admin.rb +85 -0
- data/lib/transit/builders/form_builder.rb +319 -0
- data/lib/transit/builders/jst_builder.rb +38 -0
- data/lib/transit/builders/package_builder.rb +45 -0
- data/lib/transit/config.rb +20 -0
- data/lib/transit/controller/generator.rb +42 -0
- data/lib/transit/controller/responder.rb +34 -0
- data/lib/transit/core_ext.rb +18 -0
- data/lib/transit/errors/resource_not_found.rb +6 -0
- data/lib/transit/model/assets.rb +14 -0
- data/lib/transit/model/attachments.rb +55 -0
- data/lib/transit/model/auto_increment.rb +22 -0
- data/lib/transit/model/base.rb +56 -0
- data/lib/transit/model/comments.rb +19 -0
- data/lib/transit/model/hooks.rb +38 -0
- data/lib/transit/model/owners.rb +14 -0
- data/lib/transit/model/paginator.rb +92 -0
- data/lib/transit/model/topics.rb +14 -0
- data/lib/transit/package/page.rb +20 -12
- data/lib/transit/package/post.rb +87 -33
- data/lib/transit/package/post/validations.rb +14 -0
- data/lib/transit/rails/engine.rb +29 -13
- data/lib/transit/rails/railtie.rb +31 -0
- data/lib/transit/rails/routing.rb +11 -6
- data/lib/transit/services.rb +13 -0
- data/lib/transit/services/base.rb +14 -0
- data/lib/transit/services/facebook.rb +13 -0
- data/lib/transit/services/ted.rb +10 -0
- data/lib/transit/services/twitter.rb +13 -0
- data/lib/transit/services/vimeo.rb +10 -0
- data/lib/transit/services/you_tube.rb +12 -0
- data/lib/transit/version.rb +1 -1
- metadata +178 -31
- data/app/assets/stylesheets/includes/_compat.scss +0 -24
- data/app/assets/stylesheets/includes/_defaults.scss +0 -99
- data/app/assets/stylesheets/includes/_global.scss +0 -16
- data/app/assets/stylesheets/includes/_imports.scss +0 -27
- data/app/assets/stylesheets/includes/_mixins.scss +0 -38
- data/app/assets/stylesheets/includes/_setup.scss +0 -85
- data/app/assets/stylesheets/layout.css.scss +0 -29
- data/app/assets/stylesheets/transit.css +0 -3
- data/app/controllers/application_controller.rb +0 -5
- data/app/controllers/transit/index_controller.rb +0 -7
- data/app/controllers/transit/packages_controller.rb +0 -64
- data/app/controllers/transit/transit_controller.rb +0 -4
- data/app/helpers/routing_helpers.rb +0 -7
- data/app/models/audio.rb +0 -4
- data/app/models/package_asset.rb +0 -11
- data/app/models/video.rb +0 -8
- data/app/views/contexts/_audio.html.erb +0 -1
- data/app/views/contexts/_video.html.erb +0 -1
- data/app/views/layouts/transit.html.erb +0 -31
- data/app/views/transit/index/index.html.erb +0 -0
- data/lib/transit/helpers/controller_helpers.rb +0 -40
- data/lib/transit/helpers/model_helpers.rb +0 -26
- data/lib/transit/package.rb +0 -25
- data/lib/transit/package/base.rb +0 -49
data/app/models/topic.rb
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
class Topic
|
2
|
+
include Mongoid::Document
|
3
|
+
|
4
|
+
field :title, :type => String
|
5
|
+
field :slug, :type => String
|
6
|
+
field :post_types, :type => Array
|
7
|
+
|
8
|
+
validates :title, :presence => true
|
9
|
+
before_create :generate_slug
|
10
|
+
|
11
|
+
scope :for_type, lambda{ |type| where(:post_types => type) }
|
12
|
+
scope :for_editing, lambda{ |klass, inst| ascending(:title) }
|
13
|
+
|
14
|
+
def generate_slug
|
15
|
+
return true unless self.slug.to_s.blank?
|
16
|
+
self.slug = self.title.to_slug
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
require 'mime/types'
|
2
|
+
|
3
|
+
module Transit
|
4
|
+
class Asset
|
5
|
+
|
6
|
+
include Mongoid::Document
|
7
|
+
include Mongoid::Timestamps
|
8
|
+
include Paperclip::Glue
|
9
|
+
store_in :assets
|
10
|
+
auto_increment
|
11
|
+
|
12
|
+
field :name, type: String
|
13
|
+
field :meta, type: Hash
|
14
|
+
field :file_file_name, type: String
|
15
|
+
field :file_content_type, type: String
|
16
|
+
field :file_file_size, type: Integer
|
17
|
+
field :file_updated_at, type: DateTime
|
18
|
+
field :file_fingerprint, type: String
|
19
|
+
field :file_type, type: String
|
20
|
+
|
21
|
+
belongs_to :assetable, :polymorphic => true
|
22
|
+
before_save :set_default_name
|
23
|
+
before_create :set_file_type
|
24
|
+
|
25
|
+
def self.asset_config_with_default
|
26
|
+
styles = Transit::Config.assets
|
27
|
+
return styles unless styles[:styles].present?
|
28
|
+
styles[:styles].reverse_merge!(preview: '50x50#')
|
29
|
+
styles
|
30
|
+
end
|
31
|
+
|
32
|
+
has_attached_file :file, Transit::Asset.asset_config_with_default
|
33
|
+
before_post_process :skip_processing_unless_image
|
34
|
+
|
35
|
+
# Determine if this asset is an image
|
36
|
+
def image?
|
37
|
+
(self.file_content_type =~ %r{^(image|(x-)?application)/(x-png|pjpeg|jpeg|jpg|png|gif)$})
|
38
|
+
end
|
39
|
+
|
40
|
+
# Provide a way to get a list of all urls for the attachment
|
41
|
+
def file_urls
|
42
|
+
return { :original => file.url(:original) } unless image?
|
43
|
+
file.styles.keys.inject({}){ |hash, style| hash.merge!(style => file.url(style)) }
|
44
|
+
end
|
45
|
+
|
46
|
+
def timestamp
|
47
|
+
self.created_at.strftime("%B %d, %Y")
|
48
|
+
end
|
49
|
+
|
50
|
+
def skip_processing_unless_image
|
51
|
+
if !(file.content_type =~ %r{^(image|(x-)?application)/(x-png|pjpeg|jpeg|jpg|png|gif)$})
|
52
|
+
return false
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
private
|
57
|
+
|
58
|
+
def set_default_name
|
59
|
+
return true unless self.name.to_s.blank?
|
60
|
+
self.name = self.file_file_name
|
61
|
+
end
|
62
|
+
|
63
|
+
def set_file_type
|
64
|
+
self.file_type = ::MIME::Types.type_for(self.file_file_name.to_s).first.media_type
|
65
|
+
end
|
66
|
+
|
67
|
+
end
|
68
|
+
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
module Transit
|
2
2
|
class Context
|
3
3
|
include Mongoid::Document
|
4
|
+
|
4
5
|
field :name, :type => String
|
5
6
|
field :meta, :type => Hash, :default => {}
|
6
7
|
field :body, :type => String
|
@@ -9,6 +10,8 @@ module Transit
|
|
9
10
|
before_save :ensure_context_position_value
|
10
11
|
embedded_in :package, polymorphic: true
|
11
12
|
|
13
|
+
scope :by_name, lambda{ |n| where(:name => n) }
|
14
|
+
|
12
15
|
def ensure_context_position_value
|
13
16
|
return true unless self.position.nil?
|
14
17
|
self.position = _parent.send(:contexts).count + 1
|
@@ -22,6 +25,32 @@ module Transit
|
|
22
25
|
# Sets up a default name field to be used in form helpers
|
23
26
|
def field_name
|
24
27
|
(self.name.to_s.blank? ? self.class.to_s : self.name)
|
28
|
+
end
|
29
|
+
|
30
|
+
def file_ext
|
31
|
+
File.extname(self.body.to_s).sub('.', '')
|
32
|
+
end
|
33
|
+
|
34
|
+
def package_type
|
35
|
+
(self.package.nil? ? "post" : self.package.class.name.to_s.underscore)
|
36
|
+
end
|
37
|
+
|
38
|
+
def media_context?
|
39
|
+
false
|
40
|
+
end
|
41
|
+
|
42
|
+
def to_js( attrs = {} )
|
43
|
+
{
|
44
|
+
id: self.id.to_s,
|
45
|
+
position: self.position.to_i,
|
46
|
+
package_id: (self.package.nil? ? "" : self.package.id.to_s ),
|
47
|
+
package_type: package_type,
|
48
|
+
resource_url: package_type.pluralize,
|
49
|
+
}.merge!( attrs )
|
50
|
+
end
|
51
|
+
|
52
|
+
def to_backbone( attrs = {} )
|
53
|
+
::Base64.encode64s(to_js(attrs).to_json)
|
25
54
|
end
|
26
55
|
|
27
56
|
end
|
@@ -1 +1 @@
|
|
1
|
-
<%= context.body.html_safe %>
|
1
|
+
<%= context.body.to_s.html_safe %>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
xml.instruct! :xml, :version => "1.0"
|
2
|
+
xml.rss :version => "2.0" do
|
3
|
+
xml.channel do
|
4
|
+
xml.title t("transit.rss.#{scope_name.underscore}_feed_title")
|
5
|
+
xml.description ""
|
6
|
+
xml.link polymorphic_url(scope_class)
|
7
|
+
|
8
|
+
for post in @resources
|
9
|
+
xml.item do
|
10
|
+
xml.title post.title
|
11
|
+
xml.description strip_tags(post.teaser)
|
12
|
+
xml.pubDate post.post_date.to_s(:rfc822)
|
13
|
+
xml.link deliver_rss(post)
|
14
|
+
xml.guid deliver_rss(post)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,4 @@
|
|
1
|
+
<li data-asset-id="<%= file.id %>" class='file'>
|
2
|
+
<%= link_to file.name, file.file.url(:original), :class => file_icon_class(file) %>
|
3
|
+
<%= link_to 'Delete', transit.package_asset_path(file), :method => :delete, :remote => true, :confirm => "Are you sure you want to delete this image?\n\nNOTE: Make sure you remove any links to this file from your copy if you've used it.\n\n", :class => 'icon_delete', :title => 'Delete File' %>
|
4
|
+
</li>
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<li id="<%= image.id %>" class='image'>
|
2
|
+
<span class='image_asset_holder'>
|
3
|
+
<%= image_tag(image.file.url(:preview)) %>
|
4
|
+
<%= link_to 'Delete', transit.package_asset_path(image.id), :method => :delete, :remote => true, :confirm => "Are you sure you want to delete this image?\n\nNOTE: Make sure you remove this image from your copy if you've used it.\n\n", :class => 'icon_delete', :title => 'Delete Image' %>
|
5
|
+
</span>
|
6
|
+
<span class='add_heading'>Add to copy</span>
|
7
|
+
<ul class='image_style_list'>
|
8
|
+
<% image.file.styles.keys.map(&:to_s).each do |style| %>
|
9
|
+
<% next if style == 'preview' %>
|
10
|
+
<li><%= link_to style.titleize, image.file.url(style), :class => "insert_image_link" %></li>
|
11
|
+
<% end %>
|
12
|
+
</ul>
|
13
|
+
</li>
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<%= { :image => (@asset.image? ? true : false),
|
2
|
+
:content => render(:partial => (@asset.image? ? "image" : "file"), :object => @asset),
|
3
|
+
:created_at => @asset.timestamp,
|
4
|
+
:name => @asset.name,
|
5
|
+
:urls => @asset.file_urls,
|
6
|
+
:icon => file_icon_class(@asset),
|
7
|
+
:id => @asset.id.to_s
|
8
|
+
}.to_json.html_safe %>
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<div id="post_assets">
|
2
|
+
<h4 class='primary'>Files and Images</h4>
|
3
|
+
<%= link_to 'Upload a File', '', id:'upload_file_link', rel: "asset[file]",
|
4
|
+
data: {
|
5
|
+
ui_button: 'plusthick',
|
6
|
+
upload_path: "#{transit.package_assets_path(resource_type: resource_class.name, resource_id: resource.id.to_s, auth_token: current_user.authentication_token)}"
|
7
|
+
} %>
|
8
|
+
<ul id="asset_image_list">
|
9
|
+
<li class='header'><h4>Images</h4></li>
|
10
|
+
<% resource.images.each do |image| %>
|
11
|
+
<%= render(partial: 'transit/assets/image', object: image) %>
|
12
|
+
<% end %>
|
13
|
+
</ul>
|
14
|
+
<ul id="asset_file_list">
|
15
|
+
<li class='header'><h4>Files</h4></li>
|
16
|
+
<% resource.files.each do |file| %>
|
17
|
+
<%= render(partial: 'transit/assets/file', object: file) %>
|
18
|
+
<% end %>
|
19
|
+
</ul>
|
20
|
+
</div>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<%= deliver_media_context(context, context.to_backbone) %>
|
2
|
+
<div class='toolbar'>
|
3
|
+
<ol class="split">
|
4
|
+
<li>
|
5
|
+
<%= form.label :source %>
|
6
|
+
<%= select_tag :source_option %>
|
7
|
+
</li>
|
8
|
+
<li class='asset_source'>
|
9
|
+
<%= form.label :source %>
|
10
|
+
<%= form.text_field :source, :value => context.body, :style => 'width:225px' %>
|
11
|
+
</li>
|
12
|
+
</ol>
|
13
|
+
</div>
|
14
|
+
<script type="text/javascript" charset="utf-8">
|
15
|
+
//<![CDATA[
|
16
|
+
jQuery('div.audio_player').transit('audio');
|
17
|
+
//]]>
|
18
|
+
</script>
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<%= deliver_media_context(context, context.to_backbone) %>
|
2
|
+
<div class='toolbar'>
|
3
|
+
<ol class="split">
|
4
|
+
<li style='width:350px; padding-left:.5em'>
|
5
|
+
<%= form.label :source %>
|
6
|
+
<%= form.text_field :source, :value => context.body, :style => 'width:225px' %>
|
7
|
+
</li>
|
8
|
+
<li>
|
9
|
+
<%= form.label :video_type %>
|
10
|
+
<%= form.select :video_type, options_for_select(Video.sources, context.video_type) %>
|
11
|
+
</li>
|
12
|
+
</ol>
|
13
|
+
</div>
|
@@ -0,0 +1 @@
|
|
1
|
+
jQuery('#context_list').trigger("context:destroyed", ["#context_<%= @context.id.to_s %>"]);
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<% content = capture do
|
2
|
+
fields_for("#{params[:form_name]}[context_attributes][#{Time.now.to_i}]", @context) do |child|
|
3
|
+
context_field_item(child.object, child)
|
4
|
+
end
|
5
|
+
end %>
|
6
|
+
jQuery('#context_list').trigger("context:added", ["<%= escape_javascript(content.html_safe) %>", "<%= @context.class.name.underscore %>"]);
|
7
|
+
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<li class='field field_<%= @context.class.to_s.underscore %>'>
|
2
|
+
<%= fields_for "#{@package.class.to_s.underscore}[context_attributes][#{Time.now.to_i}]", context do |child| %>
|
3
|
+
<ul class="option_bar">
|
4
|
+
<%= render partial: 'field_attrs', locals: { form: child, context: context } %>
|
5
|
+
</ul>
|
6
|
+
<%= render partial: "transit/contexts/#{context.class.to_s.underscore}", locals: { form: child, context: context } %>
|
7
|
+
<% end %>
|
8
|
+
</li>
|
@@ -0,0 +1,26 @@
|
|
1
|
+
<%= page_id('transit_index') %>
|
2
|
+
<%= page_title("Transit: Manage #{t("transit.collection_names.#{resource_collection_name}")}") %>
|
3
|
+
<h1>Manage <%= t("transit.collection_names.#{resource_collection_name}") %></h1>
|
4
|
+
<%= paginate(collection, :remote => true) %>
|
5
|
+
<table border="0" id="listing">
|
6
|
+
<thead>
|
7
|
+
<tr>
|
8
|
+
<% resource_class.admin_options.column_hash.each do |name, value| %>
|
9
|
+
<% if value.is_a?(Array) %>
|
10
|
+
<th><%= value.first %></th>
|
11
|
+
<% else %>
|
12
|
+
<th><%= value %></th>
|
13
|
+
<% end %>
|
14
|
+
<% end %>
|
15
|
+
<th>Edit</th>
|
16
|
+
<th>Delete</th>
|
17
|
+
</tr>
|
18
|
+
</thead>
|
19
|
+
<tbody>
|
20
|
+
<%= render template: 'transit/table' %>
|
21
|
+
</tbody>
|
22
|
+
</table>
|
23
|
+
<%= paginate(collection, :remote => true) %>
|
24
|
+
<div class='buttons'>
|
25
|
+
<%= button_link "Add a New #{t(resource_class.to_s.underscore, :scope => :transit)}" , new_polymorphic_path(resource_class.new) %>
|
26
|
+
</div>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= render(template: 'transit/table') %>
|
@@ -0,0 +1,96 @@
|
|
1
|
+
<div id="transit_admin_panel">
|
2
|
+
<div id="transit_admin_panel_wrapper">
|
3
|
+
<ul>
|
4
|
+
<li><a href="#post_meta">Detail</a></li>
|
5
|
+
|
6
|
+
<!-- Persisted models only -->
|
7
|
+
<% if resource.persisted? %>
|
8
|
+
<li><a href="#post_contexts">Content</a></li>
|
9
|
+
<% if form.object.delivers?(:topics) %>
|
10
|
+
<li><a href="#post_topics">Topics</a></li>
|
11
|
+
<% end %>
|
12
|
+
<% if resource.delivers?(:assets) %>
|
13
|
+
<li><a href="#post_assets">Uploads</a></li>
|
14
|
+
<% end %>
|
15
|
+
<li><a href="#post_social">Social</a></li>
|
16
|
+
<% end %>
|
17
|
+
<!-- END -->
|
18
|
+
</ul>
|
19
|
+
<div id="post_meta" class='panel'>
|
20
|
+
|
21
|
+
<!-- Can only publish after save -->
|
22
|
+
<% if resource.persisted? %>
|
23
|
+
<h4 class='published'>Published? <%= form.check_box :published, class: 'toggle' %> </h4>
|
24
|
+
<% end %>
|
25
|
+
<!-- End -->
|
26
|
+
|
27
|
+
<% if resource.delivers?(:attachments) %>
|
28
|
+
<div id="post_primary_image">
|
29
|
+
<h4>Primary Image</h4>
|
30
|
+
<span class='primary_image_holder'>
|
31
|
+
<%= image_tag(resource.preview_image_url) unless resource.preview_image_url.nil? %>
|
32
|
+
</span>
|
33
|
+
<span class='image_options'>
|
34
|
+
<%= form.check_box :display_image %>
|
35
|
+
<%= form.label :display_image, "Display on actual post page?" %><br />
|
36
|
+
<%= form.file_field :default_image %>
|
37
|
+
</span>
|
38
|
+
</div>
|
39
|
+
<% end %>
|
40
|
+
|
41
|
+
<h4>Post Date</h4>
|
42
|
+
<div class='datepicker' rel='post_post_date'></div>
|
43
|
+
<div id="datepicker_target">
|
44
|
+
<%= form.date_select :post_date, { order: [:month, :day, :year], use_short_month: true } %>
|
45
|
+
</div>
|
46
|
+
<% if resource.persisted? %>
|
47
|
+
<h4>Teaser</h4>
|
48
|
+
<%= form.text_area :teaser %>
|
49
|
+
<% end %>
|
50
|
+
</div>
|
51
|
+
|
52
|
+
<!-- Edit mode only -->
|
53
|
+
<% if resource.persisted? %>
|
54
|
+
<div id="post_contexts" class='panel'>
|
55
|
+
<h4>Content Sections</h4>
|
56
|
+
<ul>
|
57
|
+
<% Transit.contexts.map(&:to_s).each do |type| %>
|
58
|
+
<li class="icon_<%= type.underscore %>">
|
59
|
+
<%= link_to type, transit.send(:"new_#{form.object_name}_context_path", resource.id, :type => type), remote: true %>
|
60
|
+
</li>
|
61
|
+
<% end %>
|
62
|
+
</ul>
|
63
|
+
</div>
|
64
|
+
<% if form.object.delivers?(:topics) %>
|
65
|
+
<%= render(template: 'transit/topics/manage', locals: { form: form }) %>
|
66
|
+
<% end %>
|
67
|
+
<% if resource.delivers?(:assets) %>
|
68
|
+
<%= render(template: 'transit/assets/manage', locals: { form: form }) %>
|
69
|
+
<% end %>
|
70
|
+
<div id="post_social">
|
71
|
+
<h4>Social Sharing</h4>
|
72
|
+
<p>Soon....</p>
|
73
|
+
</div>
|
74
|
+
<% end %>
|
75
|
+
<!-- End edit mode only -->
|
76
|
+
|
77
|
+
</div>
|
78
|
+
</div>
|
79
|
+
<% if resource.delivers?(:owner) %>
|
80
|
+
<%= form.hidden_field :user, value: current_user.id %>
|
81
|
+
<% end %>
|
82
|
+
<% if resource.persisted? %>
|
83
|
+
<ul id="transit_admin_panel_buttons">
|
84
|
+
<li><button data-ui-button="check" type='commit'>Save</button></li>
|
85
|
+
<li><%= link_to 'Delete', transit.polymorphic_path(form.object), method: :delete, confirm: 'Are you sure you want to delete this post?', data: { ui_button: 'closethick' } %></li>
|
86
|
+
</ul>
|
87
|
+
<% end %>
|
88
|
+
<div id="transit_admin_help">
|
89
|
+
<h4>Help</h4>
|
90
|
+
<p><strong>Editing Content:</strong>
|
91
|
+
To edit content, click on the copy block to the left, or on the title above. Once selected that particular area of
|
92
|
+
content will become 'active' allowing you to edit it. When finished, click "save" above.</p>
|
93
|
+
<p>Posts will not display on the site until two criteria are met. First, the post date must be set to a date on or before
|
94
|
+
today. Second, the "published" box must be checked. If the published box is checked, and the post date is set to a date
|
95
|
+
later than today, the post will not display until that date.</p>
|
96
|
+
</div>
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<%= page_id('transit_edit_page') %>
|
2
|
+
<%= page_title("Transit: Edit Page: #{@page.name}") %>
|
3
|
+
<h1>Page Content: <%= @page.name %></h1>
|
4
|
+
<%= form_for @page, :as => :page, :html => { :id => 'edit_page_form' }, :validate => true, :remote => true do |f| %>
|
5
|
+
<fieldset>
|
6
|
+
<legend>Page Details</legend>
|
7
|
+
<ol class="split">
|
8
|
+
<li>
|
9
|
+
<%= f.label :name %>
|
10
|
+
<%= f.text_field :name %>
|
11
|
+
</li>
|
12
|
+
<li class="buttons">
|
13
|
+
<%= f.button %>
|
14
|
+
</li>
|
15
|
+
</ol>
|
16
|
+
</fieldset>
|
17
|
+
<% end %>
|