noodall-ui 0.5.13 → 0.5.14
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +2 -2
- data/app/assets/javascripts/admin/application.js +4 -28
- data/app/assets/javascripts/admin/assets.js +1 -1
- data/app/assets/javascripts/admin/tiny_mce_config.js +6 -10
- data/app/assets/stylesheets/admin/layout.css +2 -2
- data/app/assets/stylesheets/admin/skin.css +3 -3
- data/app/assets/stylesheets/admin/typography.css +2 -7
- data/app/controllers/noodall/admin/nodes_controller.rb +9 -4
- data/app/models/asset.rb +1 -1
- data/app/views/noodall/admin/nodes/_branch.html.erb +14 -7
- data/app/views/noodall/admin/nodes/show.html.erb +10 -3
- data/app/views/noodall/admin/nodes/tree.html.erb +1 -3
- data/app/views/noodall/admin/nodes/tree.js.erb +2 -2
- data/features/{choose_node_title.feature → set_content_browser_title.feature} +3 -3
- data/features/step_definitions/asset_steps.rb +1 -1
- data/features/step_definitions/search_steps.rb +1 -1
- data/lib/noodall/routes.rb +1 -0
- data/lib/noodall/ui/version.rb +1 -1
- data/spec/{dummy/factories → factories}/asset.rb +0 -0
- data/spec/{dummy/factories → factories}/node.rb +0 -0
- data/spec/{dummy/factories → factories}/user.rb +0 -0
- metadata +7 -7
data/Gemfile
CHANGED
@@ -4,7 +4,7 @@ source 'http://gems.github.com'
|
|
4
4
|
gemspec
|
5
5
|
|
6
6
|
# Required for running as demo rails app
|
7
|
-
gem 'rails', '3.1.0'
|
7
|
+
gem 'rails', '~> 3.1.0'
|
8
8
|
gem 'dragonfly', '~> 0.9.4'
|
9
9
|
gem 'mm-versionable', '0.2.5'
|
10
10
|
|
@@ -29,7 +29,7 @@ group :development, :test do
|
|
29
29
|
gem 'spork'
|
30
30
|
gem 'launchy' # So you can do Then show me the page
|
31
31
|
gem 'jeweler', '~> 1.4.0'
|
32
|
-
gem 'factory_girl'
|
32
|
+
gem 'factory_girl', '~> 2.0'
|
33
33
|
gem 'factory_girl_rails'
|
34
34
|
gem "faker", "~> 0.3.1"
|
35
35
|
gem "bson_ext"
|
@@ -206,6 +206,8 @@ $(document).ready(function() {
|
|
206
206
|
|
207
207
|
// Add emptys div for browsers/preview
|
208
208
|
$('body').append('<div style="display:none;"><div id="asset-browser"></div><div id="tree-browser"></div><div id="preview-pane"><iframe name="preview-frame" src="about:blank"/></div></div>');
|
209
|
+
|
210
|
+
$('#parent-title a.edit-item').fancybox();
|
209
211
|
});
|
210
212
|
|
211
213
|
function get_preview_html(e) {
|
@@ -526,36 +528,10 @@ $("li.multi-file span.delete").live("click", function(e) {
|
|
526
528
|
});
|
527
529
|
|
528
530
|
// Node mover and shaker
|
529
|
-
$('
|
530
|
-
node_id = $(this).closest('form').attr('action').split('/').pop();
|
531
|
-
// open asset lightbox
|
532
|
-
$.get("/admin/nodes/tree", {
|
533
|
-
allowed_types: $('#parent_types').val().split(','),
|
534
|
-
not_branch: node_id
|
535
|
-
},
|
536
|
-
function() {
|
537
|
-
// reopen the opening form if you close this form
|
538
|
-
$.fancybox({
|
539
|
-
href: '#tree-browser',
|
540
|
-
title: "Select a parent"
|
541
|
-
});
|
542
|
-
$('#tree-browser').attr('class', 'parent');
|
543
|
-
$('#tree-browser .tree:first').append('<li><a id="id-none">Root</a></li>');
|
544
|
-
},
|
545
|
-
'script');
|
546
|
-
|
547
|
-
event.stopImmediatePropagation();
|
548
|
-
return false;
|
549
|
-
});
|
550
|
-
|
551
|
-
$('#tree-browser ol.tree span.expand').live('click', function(e) {
|
552
|
-
$(this).toggleClass('expanded').siblings('ol.tree').toggle();
|
553
|
-
});
|
554
|
-
|
555
|
-
$('#tree-browser.parent a').live('click', function(e) {
|
531
|
+
$('ol.tree a.parent').live('click', function(e) {
|
556
532
|
id = this.id.replace('id-', '');
|
557
533
|
$('#node_parent').val(id);
|
558
|
-
$('#parent-title').html($(this).text()
|
534
|
+
$('#parent-title strong').html($(this).text());
|
559
535
|
$.fancybox.close();
|
560
536
|
return false;
|
561
537
|
});
|
@@ -88,15 +88,11 @@ $.extend(tiny_mce_config, lite_tiny_mce_config, {
|
|
88
88
|
tinyMCE.activeEditor.focus();
|
89
89
|
tinyMCE.activeEditor.windowManager.bookmark = tinyMCE.activeEditor.selection.getBookmark();
|
90
90
|
// open asset lightbox
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
});
|
97
|
-
$('#tree-browser').attr('class', 'tinymce');
|
98
|
-
},
|
99
|
-
'script');
|
91
|
+
// reopen the opening form if you close this form
|
92
|
+
$.fancybox({
|
93
|
+
href: "/admin/nodes/tree?mode=link",
|
94
|
+
title: "Link to content"
|
95
|
+
});
|
100
96
|
}
|
101
97
|
});
|
102
98
|
|
@@ -112,7 +108,7 @@ $.extend(tiny_mce_config, lite_tiny_mce_config, {
|
|
112
108
|
|
113
109
|
// wow what a hack: insert a containing span for the page name if nothing is selected,
|
114
110
|
// then insert the link, then remove containing span after all is good
|
115
|
-
$('
|
111
|
+
$('ol.tree a.link').live('click', function(event) {
|
116
112
|
add_url = $(this).attr('href').split('?')[0];
|
117
113
|
tinyMCE.activeEditor.selection.moveToBookmark(tinyMCE.activeEditor.windowManager.bookmark);
|
118
114
|
|
@@ -321,7 +321,7 @@ ul.choices li a:hover {
|
|
321
321
|
|
322
322
|
/* PAGINATION */
|
323
323
|
|
324
|
-
.pagination a,
|
324
|
+
.pagination a, ol.tree a {
|
325
325
|
color:#106bab;
|
326
326
|
}
|
327
327
|
|
@@ -519,7 +519,7 @@ table#node_body_tbl,
|
|
519
519
|
color:#D4954C;
|
520
520
|
}
|
521
521
|
|
522
|
-
|
522
|
+
ol.tree a.expand {
|
523
523
|
background:#82b452;
|
524
524
|
border:3px solid #548126;
|
525
525
|
color: #fff;
|
@@ -613,7 +613,7 @@ table.component-table,
|
|
613
613
|
border-radius: 5px;
|
614
614
|
}
|
615
615
|
|
616
|
-
|
616
|
+
ol.tree a.expand {
|
617
617
|
-webkit-border-radius: 15px;
|
618
618
|
-moz-border-radius: 15px;
|
619
619
|
border-radius: 15px;
|
@@ -11,11 +11,6 @@ body, textarea {
|
|
11
11
|
|
12
12
|
/* -------------- FONT SIZES -------------- */
|
13
13
|
|
14
|
-
/* 10px */
|
15
|
-
#tree-browser li li {
|
16
|
-
font-size:1.0em;
|
17
|
-
}
|
18
|
-
|
19
14
|
/* 11px */
|
20
15
|
ul#status li,
|
21
16
|
label,
|
@@ -55,7 +50,7 @@ table#versions-list td,
|
|
55
50
|
#no-tags h2,
|
56
51
|
#sub-form ol#slot-list li,
|
57
52
|
#fancybox-topnav h1,
|
58
|
-
|
53
|
+
ol.tree li {
|
59
54
|
font-size:1.4em;
|
60
55
|
}
|
61
56
|
|
@@ -114,7 +109,7 @@ legend,
|
|
114
109
|
#errorExplanation,
|
115
110
|
span.node-mover,
|
116
111
|
div#flash a,
|
117
|
-
|
112
|
+
ol.tree span.expand {
|
118
113
|
font-weight: bold;
|
119
114
|
}
|
120
115
|
|
@@ -7,14 +7,14 @@ module Noodall
|
|
7
7
|
sortable_attributes :position, :admin_title, :title, :type, :updated_at
|
8
8
|
|
9
9
|
def index
|
10
|
-
|
10
|
+
|
11
11
|
if params[:node_id].nil?
|
12
12
|
nodes = Node.roots
|
13
13
|
else
|
14
14
|
@parent = Node.find(params[:node_id])
|
15
15
|
nodes = @parent.children
|
16
16
|
end
|
17
|
-
|
17
|
+
|
18
18
|
per_page = 15
|
19
19
|
@nodes = nodes.where( :title => /#{params[:f]}/i ).paginate(:per_page => (params[:limit] || per_page), :page => params[:page], :order => sort_order(:default => "ascending") )
|
20
20
|
|
@@ -25,9 +25,14 @@ module Noodall
|
|
25
25
|
end
|
26
26
|
|
27
27
|
def tree
|
28
|
-
|
28
|
+
if params[:id].nil?
|
29
|
+
@nodes = Node.roots
|
30
|
+
else
|
31
|
+
@parent = Node.find(params[:id])
|
32
|
+
@nodes = @parent.children
|
33
|
+
end
|
29
34
|
respond_to do |format|
|
30
|
-
format.html
|
35
|
+
format.html { render :layout => false }
|
31
36
|
format.js
|
32
37
|
end
|
33
38
|
end
|
data/app/models/asset.rb
CHANGED
@@ -39,7 +39,7 @@ class Asset
|
|
39
39
|
def url(*args)
|
40
40
|
if args.blank?
|
41
41
|
# Use the transparent url just the file is required with no processing
|
42
|
-
file.url
|
42
|
+
file.url
|
43
43
|
elsif video?
|
44
44
|
file.encode(:tiff, { :offset => "#{video_thumbnail_offset}%" }).thumb(*args).url
|
45
45
|
else
|
@@ -1,15 +1,22 @@
|
|
1
1
|
<ol class="tree">
|
2
|
-
<%
|
2
|
+
<% if @parent.nil? %>
|
3
|
+
<% if params[:mode] == 'parent' %>
|
4
|
+
<li><a id="id-none" class="<%= params[:mode] %>" href="/">Root</a></li>
|
5
|
+
<% end %>
|
6
|
+
<% elsif @parent.parent_id? %>
|
7
|
+
<li><%= link_to 'Up', tree_noodall_admin_node_path(@parent.parent_id, params), :class => 'expand' -%></li>
|
8
|
+
<% else %>
|
9
|
+
<li><%= link_to 'Up', tree_noodall_admin_nodes_path(params.reject{|k,v| k == 'id'}), :class => 'expand' -%></li>
|
10
|
+
<% end %>
|
11
|
+
<% for node in @nodes %>
|
3
12
|
<li>
|
4
|
-
<% if params[:
|
5
|
-
<%= link_to h(node.title), node_path(node), :id => "id-#{node.id}" %>
|
13
|
+
<% if params[:mode] == 'link' or ( params[:allowed_types] && params[:allowed_types].include?(node.class.to_s) && node.id.to_s != params[:not_branch] && !node.path.map(&:to_s).include?(params[:not_branch]) ) %>
|
14
|
+
<%= link_to h(node.title), node_path(node), :id => "id-#{node.id}", :class => params[:mode] %>
|
6
15
|
<% else %>
|
7
16
|
<%= node.title %>
|
8
17
|
<% end %>
|
9
|
-
|
10
|
-
<span class="expand">+</span>
|
11
|
-
<%= render :partial => 'branch', :locals => { :nodes => children, :options => options } %>
|
12
|
-
<% end -%>
|
18
|
+
<%= link_to '+', tree_noodall_admin_node_path(node, params), :class => 'expand' unless node.children.count.zero? -%>
|
13
19
|
</li>
|
14
20
|
<% end -%>
|
15
21
|
</ol>
|
22
|
+
<%= javascript_tag "$('ol.tree li a.expand').fancybox()" %>
|
@@ -121,11 +121,18 @@
|
|
121
121
|
<p>
|
122
122
|
<span class="node-mover">Parent Content</span>
|
123
123
|
<span class="input-wrap" id="parent-title">
|
124
|
-
|
125
|
-
|
124
|
+
<strong><%= @node.root? ? "Root" : @node.parent.title %></strong>
|
125
|
+
<%= link_to 'Edit',
|
126
|
+
tree_noodall_admin_nodes_path(
|
127
|
+
:not_branch => @node.id,
|
128
|
+
:allowed_types => @node.class.parent_classes.join(','),
|
129
|
+
:mode => 'parent'
|
130
|
+
),
|
131
|
+
:class => 'edit-item',
|
132
|
+
:title => 'Select a parent',
|
133
|
+
%>
|
126
134
|
</span>
|
127
135
|
<%= f.hidden_field :parent, :value => @node.parent_id %>
|
128
|
-
<%= hidden_field_tag :parent_types, @node.class.parent_classes.join(','), :disabled => true %>
|
129
136
|
</p>
|
130
137
|
|
131
138
|
<!-- PAGE URL -->
|
@@ -1,2 +1,2 @@
|
|
1
|
-
$('#tree-browser').html( "<%= escape_javascript(render :partial => 'branch'
|
2
|
-
$('#tree-browser ol.tree ol').hide();
|
1
|
+
$('#tree-browser').html( "<%= escape_javascript(render :partial => 'branch' ) %>" );
|
2
|
+
$('#tree-browser ol.tree ol').hide();
|
@@ -1,5 +1,5 @@
|
|
1
1
|
@javascript
|
2
|
-
Feature:
|
2
|
+
Feature: Set content browser title
|
3
3
|
In order to have a succinct page title, with a more descriptive browser title
|
4
4
|
A website editor
|
5
5
|
Will be able to set a separate browser title
|
@@ -11,7 +11,7 @@ Feature: Preview Content
|
|
11
11
|
Then the content should be visible on the website
|
12
12
|
And the title should be "Bacon Ipsum"
|
13
13
|
And the browser title should be "Bacon Ipsum"
|
14
|
-
|
14
|
+
|
15
15
|
|
16
16
|
Scenario: Set a browser title
|
17
17
|
Given I am editing content
|
@@ -21,4 +21,4 @@ Feature: Preview Content
|
|
21
21
|
And I press "Publish"
|
22
22
|
And I follow "Show"
|
23
23
|
Then the title should be "Bacon Ipsum"
|
24
|
-
And the browser title should be "Ice Cream"
|
24
|
+
And the browser title should be "Ice Cream"
|
@@ -34,8 +34,8 @@ Then /^I should be able to browse assets by content type$/ do
|
|
34
34
|
page.should_not have_content('Video asset')
|
35
35
|
within(:css, "ul.choices") { click_link "Documents" }
|
36
36
|
page.should_not have_content('Image asset')
|
37
|
-
page.should_not have_content('Video asset')
|
38
37
|
if Asset.video_extensions.any?
|
38
|
+
page.should_not have_content('Video asset')
|
39
39
|
within(:css, "ul.choices") { click_link "Videos" }
|
40
40
|
page.should_not have_content('Document asset')
|
41
41
|
page.should_not have_content('Image asset')
|
@@ -1,5 +1,5 @@
|
|
1
1
|
Given /^there is content that can be searched$/ do
|
2
|
-
|
2
|
+
step %q{the website has been populated with content based on the site map}
|
3
3
|
3.times do |i|
|
4
4
|
Factory(:page_a, :title => "My Searchable Page #{i}", :publish => true)
|
5
5
|
end
|
data/lib/noodall/routes.rb
CHANGED
data/lib/noodall/ui/version.rb
CHANGED
File without changes
|
File without changes
|
File without changes
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: noodall-ui
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.14
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-10-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: noodall-core
|
@@ -253,7 +253,6 @@ files:
|
|
253
253
|
- config/cucumber.yml
|
254
254
|
- config/routes.rb
|
255
255
|
- features/change_templates.feature
|
256
|
-
- features/choose_node_title.feature
|
257
256
|
- features/content_templates.feature
|
258
257
|
- features/group_access_control.feature
|
259
258
|
- features/manage_assets.feature
|
@@ -266,6 +265,7 @@ files:
|
|
266
265
|
- features/respond_with_correct_format.feature
|
267
266
|
- features/save_draft.feature
|
268
267
|
- features/search.feature
|
268
|
+
- features/set_content_browser_title.feature
|
269
269
|
- features/sitemap.feature
|
270
270
|
- features/sort_nodes_by_column.feature
|
271
271
|
- features/step_definitions/asset_steps.rb
|
@@ -365,9 +365,6 @@ files:
|
|
365
365
|
- spec/dummy/config/locales/en.yml
|
366
366
|
- spec/dummy/config/routes.rb
|
367
367
|
- spec/dummy/db/seeds.rb
|
368
|
-
- spec/dummy/factories/asset.rb
|
369
|
-
- spec/dummy/factories/node.rb
|
370
|
-
- spec/dummy/factories/user.rb
|
371
368
|
- spec/dummy/files/beef.png
|
372
369
|
- spec/dummy/files/get_video.flv
|
373
370
|
- spec/dummy/files/test.pdf
|
@@ -378,6 +375,9 @@ files:
|
|
378
375
|
- spec/dummy/public/500.html
|
379
376
|
- spec/dummy/public/favicon.ico
|
380
377
|
- spec/dummy/script/rails
|
378
|
+
- spec/factories/asset.rb
|
379
|
+
- spec/factories/node.rb
|
380
|
+
- spec/factories/user.rb
|
381
381
|
- vendor/assets/images/fancybox/blank.gif
|
382
382
|
- vendor/assets/images/fancybox/fancy_close.png
|
383
383
|
- vendor/assets/images/fancybox/fancy_loading.png
|
@@ -722,7 +722,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
722
722
|
version: '0'
|
723
723
|
segments:
|
724
724
|
- 0
|
725
|
-
hash: -
|
725
|
+
hash: -3396913091192908078
|
726
726
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
727
727
|
none: false
|
728
728
|
requirements:
|