noodall-ui 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- noodall-ui (0.0.4)
4
+ noodall-ui (0.0.5)
5
5
  dynamic_form
6
6
  noodall-core
7
7
  thoughtbot-sortable_table (= 0.0.6)
@@ -68,7 +68,7 @@ GEM
68
68
  culerity (0.2.12)
69
69
  database_cleaner (0.6.0)
70
70
  diff-lcs (1.1.2)
71
- dragonfly (0.7.6)
71
+ dragonfly (0.7.7)
72
72
  rack
73
73
  dynamic_form (1.1.3)
74
74
  erubis (2.6.6)
@@ -85,7 +85,7 @@ GEM
85
85
  json (~> 1.4.6)
86
86
  term-ansicolor (~> 1.0.5)
87
87
  git (1.2.5)
88
- haml (3.0.22)
88
+ haml (3.0.23)
89
89
  i18n (0.4.2)
90
90
  jeweler (1.4.0)
91
91
  gemcutter (>= 0.1.0)
@@ -104,19 +104,22 @@ GEM
104
104
  mime-types (~> 1.16)
105
105
  treetop (~> 1.4.8)
106
106
  mime-types (1.16)
107
+ mm-multi-parameter-attributes (0.1.1)
108
+ mongo_mapper
107
109
  mongo (1.1.1)
108
110
  bson (>= 1.1.1)
109
- mongo_mapper (0.8.4)
111
+ mongo_mapper (0.8.6)
110
112
  activesupport (>= 2.3.4)
111
113
  jnunemaker-validatable (~> 1.8.4)
112
- plucky (~> 0.3.5)
114
+ plucky (~> 0.3.6)
113
115
  newbamboo-rvideo (0.9.6)
114
116
  activesupport
115
117
  nokogiri (1.4.3.1)
116
- noodall-core (0.1.0)
118
+ noodall-core (0.3.2)
117
119
  canable (= 0.1.1)
118
- mongo_mapper (= 0.8.4)
119
- ramdiv-mongo_mapper_acts_as_tree (= 0.1.1)
120
+ mm-multi-parameter-attributes (~> 0.1.1)
121
+ mongo_mapper (~> 0.8.6)
122
+ ramdiv-mongo_mapper_acts_as_tree (~> 0.1.1)
120
123
  ruby-stemmer
121
124
  open4 (0.9.6)
122
125
  plucky (0.3.6)
@@ -141,7 +144,7 @@ GEM
141
144
  rake (>= 0.8.4)
142
145
  thor (~> 0.14.0)
143
146
  rake (0.8.7)
144
- ramdiv-mongo_mapper_acts_as_tree (0.1.1)
147
+ ramdiv-mongo_mapper_acts_as_tree (0.1.2)
145
148
  mongo_mapper (>= 0.6.8)
146
149
  rmagick (2.13.1)
147
150
  rspec (2.0.1)
@@ -167,7 +170,7 @@ GEM
167
170
  rubyzip
168
171
  spork (0.8.4)
169
172
  term-ansicolor (1.0.5)
170
- thor (0.14.3)
173
+ thor (0.14.4)
171
174
  thoughtbot-sortable_table (0.0.6)
172
175
  treetop (1.4.8)
173
176
  polyglot (>= 0.3.1)
@@ -41,7 +41,7 @@ module Noodall
41
41
  def tags
42
42
  options = { :order => '_id' } # Order by name which is _id in the map/reduce
43
43
  if params[:asset_type]
44
- options.merge!(asset_options(params[:asset_type]))
44
+ options.merge!(asset_options(params[:asset_type]))
45
45
  @page_title << " Tags"
46
46
  else
47
47
  @page_title = "Tags"
@@ -9,27 +9,22 @@ module Noodall::ComponentsHelper
9
9
  # render each slot in the row
10
10
  args.map do |slot_code|
11
11
  index = args.index(slot_code)
12
- component = components[index]
13
-
12
+ component = components[index]
13
+
14
14
  additional_classes = []
15
15
  additional_classes << slot_code.split("_").shift unless slot_code.split("_").shift.nil?
16
16
  additional_classes << 'penultimate' if slot_code == args[args.size - 2]
17
17
  additional_classes << 'last' if args.last == slot_code
18
18
  additional_classes << 'first' if args.first == slot_code
19
-
19
+
20
20
  # pass a flag to the view to add an expanded html class
21
21
  component(node, slot_code, ( components[index + 1].nil? && index < (args.size - 1) ), additional_classes.join(' ')).to_s
22
- end
22
+ end.to_s.html_safe
23
23
  end
24
-
24
+
25
25
  def component(node, slot_code, expand = false, additional_classes = '')
26
26
  component = node.send(slot_code)
27
- # Add an empty blank to fill in
28
- if component.respond_to?(:contents)
29
- component.contents.reject!{|c| c.asset_id.blank? }
30
- component.contents << Content.new
31
- end
32
-
27
+
33
28
  additional_classes = []
34
29
  additional_classes << slot_code.split("_").shift unless slot_code.split("_").shift.nil?
35
30
 
data/app/models/asset.rb CHANGED
@@ -23,18 +23,22 @@ class Asset
23
23
  validates_presence_of :file, :title, :description
24
24
  validates_length_of :tags, :minimum => 3, :message => "must have at least 3 items"
25
25
 
26
+ # Set up video format
27
+ cattr_accessor :video_extensions
28
+ self.video_extensions = []
29
+
26
30
  def image?
27
31
  !(file_mime_type =~ self.class.image_reg_ex).nil?
28
32
  end
29
33
 
30
34
  def video?
31
- file_ext == 'flv'
35
+ @@video_extensions.include?(file_ext)
32
36
  end
33
37
 
34
38
  def url(*args)
35
39
  if args.blank?
36
40
  # Use the transparent url just the file is required with no processing
37
- file.url
41
+ file.url(:suffix => ".#{file_ext}")
38
42
  elsif video?
39
43
  file.encode(:tiff, { :offset => "#{video_thumbnail_offset}%" }).thumb(*args).url
40
44
  else
@@ -82,10 +86,6 @@ class Asset
82
86
  def image_extensions
83
87
  ['png','gif','jpg','jpeg']
84
88
  end
85
-
86
- def video_extensions
87
- ['flv', 'avi', 'mpeg', 'mpg']
88
- end
89
89
  end
90
90
  extend ClassMethods
91
91
 
@@ -1,8 +1,8 @@
1
1
  <ul class="choices">
2
2
  <%= content_tag :li, '<a>Done</a>'.html_safe, :class => 'action' if params[:mode] == 'multi' %>
3
- <%= content_tag :li, '<a>Cancel</a>'.html_safe, :class => 'cancel' %>
3
+ <%= content_tag :li, '<a>Cancel</a>'.html_safe, :class => 'cancel' if params[:mode] %>
4
4
  <li class="upload"><%= link_to 'Upload', new_noodall_admin_asset_path(:readonly => readonly) %></li>
5
5
  <%= content_tag :li, link_to( 'Images', noodall_admin_assets_path(:readonly => readonly) ), :class => 'images' if params[:allowed_types].blank? or params[:allowed_types].include?('images') %>
6
6
  <%= content_tag :li, link_to( 'Documents', documents_noodall_admin_assets_path(:readonly => readonly) ), :class => 'documents' if params[:allowed_types].blank? or params[:allowed_types].include?('documents') %>
7
- <%= content_tag :li, link_to( 'Videos', videos_noodall_admin_assets_path(:readonly => readonly) ), :class => 'videos' if params[:allowed_types].blank? or params[:allowed_types].include?('videos') %>
7
+ <%= content_tag :li, link_to( 'Videos', videos_noodall_admin_assets_path(:readonly => readonly) ), :class => 'videos' if Asset.video_extensions.any? and (params[:allowed_types].blank? or params[:allowed_types].include?('videos')) %>
8
8
  </ul>
@@ -4,9 +4,7 @@
4
4
 
5
5
  <h1><%= @asset.new_record? ? 'New' : 'Editing' %> Asset</h1>
6
6
 
7
- <a class="tooltip" href="/cms_help.pdf">&nbsp;</a>
8
-
9
- <%= render 'form' %>
7
+ <%= render 'form' %>
10
8
 
11
9
  <%= javascript_tag('setUpPlupload()') if @asset.new_record? %>
12
10
 
@@ -1,6 +1,5 @@
1
1
  <h1><%= admin_page_title %></h1>
2
2
 
3
- <a class="tooltip" href="/cms_help.pdf">&nbsp;</a>
4
3
  <%= render 'menu' %>
5
4
  <%= will_paginate(@assets, :previous_label => 'Previous', :next_label => 'Next') %>
6
5
  <div id="content-table">
@@ -1,3 +1,2 @@
1
1
  <h1>Viewing Asset</h1>
2
- <a class="tooltip" href="/cms_help.pdf">&nbsp;</a>
3
2
  <%= render 'show' %>
@@ -1,3 +1,2 @@
1
1
  <h1><%= page_title %></h1>
2
- <a class="tooltip" href="/cms_help.pdf">&nbsp;</a>
3
2
  <%= render 'tags' %>
@@ -1,7 +1,7 @@
1
1
  <ol class="tree">
2
2
  <% for node in nodes %>
3
3
  <li><%= link_to h( node.title), node_path(node), :id => "id-#{node.id}" %>
4
- <% unless (children = node.children(options)).empty? -%>
4
+ <% unless (children = node.children.where(options)).empty? -%>
5
5
  <span class="expand">+</span>
6
6
  <%= render :partial => 'branch', :locals => { :nodes => children, :options => options } %>
7
7
  <% end -%>
@@ -1,5 +1,3 @@
1
- <a class="tooltip" href="/cms_help.pdf">&nbsp;</a>
2
-
3
1
  <h1>Change Template</h1>
4
2
 
5
3
  <%= form_for(@node, :as => :node, :url => noodall_admin_node_path(@node), :html => {:method => :put, :id => "node-form"}) do |f| %>
@@ -17,8 +17,6 @@
17
17
 
18
18
  </ul>
19
19
 
20
- <a class="tooltip" href="/cms_help.pdf">&nbsp;</a>
21
-
22
20
  <div id="content-table">
23
21
  <table border="0" cellspacing="0" cellpadding="0" class="content">
24
22
  <thead>
@@ -1,4 +1,3 @@
1
- <a class="tooltip" href="/cms_help.pdf">&nbsp;</a>
2
1
 
3
2
  <h1>New Content<%= " under '#{@parent.title}'" unless @parent.nil? %></h1>
4
3
  <p>* Required Fields</p>
@@ -1,5 +1,3 @@
1
- <a class="tooltip" href="/cms_help.pdf">&nbsp;</a>
2
-
3
1
  <% content_for :header, javascript_include_tag( 'tiny_mce/jquery.tinymce.js', 'admin/tiny_mce_config', 'admin/nodes', 'admin/assets' ) %>
4
2
 
5
3
 
@@ -125,7 +123,7 @@
125
123
  <span class="tooltip" title="Please choose where you would like to place each component">&nbsp;</span>
126
124
 
127
125
  <%= yield :component_table %>
128
- <% if can_publish?(@node) %>
126
+ <% if can_publish?(@node) and !@node.is_a?(Home) %>
129
127
  <%= link_to "Change Template", change_template_noodall_admin_node_path(@node), :class => 'change' %>
130
128
  <% end -%>
131
129
  <div id="modules-list">
@@ -0,0 +1,3 @@
1
+ class Home < Noodall::Node
2
+
3
+ end
@@ -23,9 +23,9 @@ Given /^files have been uploaded to the asset library$/ do
23
23
  20.times { Factory(:asset) }
24
24
  20.times { Factory(:document_asset) }
25
25
  20.times { Factory(:video_asset) }
26
-
26
+
27
27
  20.times { Factory(:asset, :title => "Tagged Asset", :tags => ['RAC','lorem','dolar']) }
28
-
28
+
29
29
  end
30
30
 
31
31
  Then /^I should be able to browse assets by content type$/ do
@@ -35,10 +35,11 @@ Then /^I should be able to browse assets by content type$/ do
35
35
  within(:css, "ul.choices") { click_link "Documents" }
36
36
  page.should_not have_content('Image asset')
37
37
  page.should_not have_content('Video asset')
38
- within(:css, "ul.choices") { click_link "Videos" }
39
- page.should_not have_content('Document asset')
40
- page.should_not have_content('Image asset')
41
-
38
+ if Asset.video_extensions.any?
39
+ within(:css, "ul.choices") { click_link "Videos" }
40
+ page.should_not have_content('Document asset')
41
+ page.should_not have_content('Image asset')
42
+ end
42
43
  end
43
44
 
44
45
  Then /^I should be able to browse assets by tags$/ do
@@ -1,5 +1,5 @@
1
1
  module Noodall
2
2
  module UI
3
- VERSION = "0.0.4"
3
+ VERSION = "0.0.5"
4
4
  end
5
5
  end
@@ -57,7 +57,7 @@ $(document).ready(function() {
57
57
  //video previews
58
58
  domain = window.location.href.replace(/http:\/\/([^\/]+)\/.*/i,'$1');
59
59
  var videoUrl = 'video=http://'+ domain + escape($('a.lightboxVideo').attr('href')) + '&standalone=true';
60
-
60
+
61
61
  $('a.lightboxVideo').fancybox({
62
62
  'padding': 10,
63
63
  'autoScale': true,
@@ -120,7 +120,7 @@ $(document).ready(function() {
120
120
 
121
121
  $("#advanced").hide();
122
122
  $("legend.advanced").hide();
123
-
123
+
124
124
  $(".show-advanced").append("<a class='advanced' href='#advanced'>Advanced</a>");
125
125
 
126
126
  $(".show-advanced a.advanced").click(
@@ -134,11 +134,11 @@ $(document).ready(function() {
134
134
  $(".show-advanced a.advanced.open").fadeIn("fast");
135
135
  }
136
136
  });
137
-
138
-
139
-
140
-
141
-
137
+
138
+
139
+
140
+
141
+
142
142
 
143
143
  $('body#assets.index .file').click(function() {
144
144
  document.location = $(this).find("a.show").attr('href');
@@ -259,7 +259,7 @@ var Component = {
259
259
 
260
260
  // Reset
261
261
  Component.slot_form = $(Component.slot_form_id);
262
-
262
+
263
263
  // Make file selectors sortable
264
264
  Component.slot_form.find('.multi-file-files ol').sortable({
265
265
  axis: 'y',
@@ -281,7 +281,7 @@ var Component = {
281
281
  },
282
282
  add_all_assets: function() {
283
283
  $.each(Browser.assets_to_add, function(i, asset_id){
284
- Component.add_asset(asset_id);
284
+ Component.add_asset(asset_id);
285
285
  });
286
286
  Component.reopen_slot();
287
287
  }
@@ -350,7 +350,7 @@ var Browser = {
350
350
  action = '/';
351
351
  if (Browser.allowed_types.length > 0) {
352
352
  action += Browser.allowed_types[0];
353
- }
353
+ }
354
354
  $.get("/admin/assets" + action, {
355
355
  allowed_types: Browser.allowed_types,
356
356
  mode: Browser.mode,
@@ -371,8 +371,8 @@ var Browser = {
371
371
  after_ajax: function() {
372
372
  if (Browser.mode == 'multi') {
373
373
  $.each(Browser.assets_to_add, function(i, asset_id){
374
- $('#asset-' + asset_id).siblings('a.add').addClass('selected');
375
- });
374
+ $('#asset-' + asset_id).siblings('a.add').addClass('selected');
375
+ });
376
376
  }
377
377
  },
378
378
  do_action_and_close: function() {
@@ -466,10 +466,11 @@ $('#asset-browser li.cancel a').live('click', Browser.close);
466
466
  // Action button
467
467
  $('#asset-browser li.action a').live('click', Browser.do_action_and_close);
468
468
 
469
- // Open the file select
469
+ // Open the file select
470
470
  $('span.select-file').live('click', function(event) {
471
471
  Browser.set_opener($(this));
472
472
  Browser.action = Browser.attach_asset;
473
+ Browser.after_close = $.fancybox.close;
473
474
  Browser.open();
474
475
  });
475
476
  // After close the file select in component form reopen slot form
@@ -565,22 +566,14 @@ $('#tree-browser.link a').live('click', function(e) {
565
566
  $('span.link-asset').live('click', {readonly:true}, function(event) {
566
567
  Component.link_input = $(this).siblings('input').first();
567
568
  Component.allowed_types = [];
568
- // open asset lightbox
569
- $.get("/admin/assets", function() {
570
- // reopen the opening form if you close this form
571
- $.fancybox({
572
- href: '#asset-browser'
573
- });
574
- $('#asset-browser').attr('class', 'link');
575
- },
576
- 'script');
569
+ Browser.action = function() {
570
+ asset_id = Browser.assets_to_add[0]
571
+ Component.link_input.val($('#asset-' + asset_id).siblings('a.add').attr('href'));
572
+ }
573
+ Browser.after_close = Component.reopen_slot;
574
+ Browser.open();
577
575
 
578
- event.stopImmediatePropagation();
579
- return false;
580
- });
581
576
 
582
- $('#asset-browser.link a.add').live('click', function(e) {
583
- $(Component.link_input).val($(this).attr('href'));
584
- Component.reopen_slot();
577
+ event.stopImmediatePropagation();
585
578
  return false;
586
579
  });
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: noodall-ui
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 21
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 4
10
- version: 0.0.4
9
+ - 5
10
+ version: 0.0.5
11
11
  platform: ruby
12
12
  authors:
13
13
  - Steve England
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-11-02 00:00:00 +00:00
18
+ date: 2010-11-04 00:00:00 +00:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -171,6 +171,7 @@ files:
171
171
  - demo/initializers/secret_token.rb
172
172
  - demo/initializers/session_store.rb
173
173
  - demo/models/gallery.rb
174
+ - demo/models/home.rb
174
175
  - demo/models/page_a.rb
175
176
  - demo/models/page_b.rb
176
177
  - demo/models/page_c.rb