Commit 907bb8d2c28353bcbc14da35e6d26b5caa023ab2
Committed by
Antonio Terceiro
1 parent
666aae2c
Exists in
master
and in
29 other branches
A profile can have multiple blogs
- Ask confirmation before change blog address - Add cucumber tests for blog - Set icon to create blog in CMS - Choose a blog when edit blog archives block (ActionItem1258)
Showing
38 changed files
with
1221 additions
and
905 deletions
Show diff stats
app/controllers/my_profile/cms_controller.rb
@@ -275,7 +275,7 @@ class CmsController < MyProfileController | @@ -275,7 +275,7 @@ class CmsController < MyProfileController | ||
275 | elsif @article.parent | 275 | elsif @article.parent |
276 | redirect_to :action => 'view', :id => @article.parent | 276 | redirect_to :action => 'view', :id => @article.parent |
277 | else | 277 | else |
278 | - redirect_to :action => 'index' | 278 | + redirect_back_or_default :action => 'index' |
279 | end | 279 | end |
280 | end | 280 | end |
281 | 281 | ||
@@ -286,6 +286,9 @@ class CmsController < MyProfileController | @@ -286,6 +286,9 @@ class CmsController < MyProfileController | ||
286 | @back_to = 'public_view' | 286 | @back_to = 'public_view' |
287 | @back_url = @article.view_url | 287 | @back_url = @article.view_url |
288 | end | 288 | end |
289 | + if !request.post? and @article.blog? | ||
290 | + store_location(request.referer) | ||
291 | + end | ||
289 | end | 292 | end |
290 | 293 | ||
291 | def record_creating_from_public_view | 294 | def record_creating_from_public_view |
@@ -294,6 +297,9 @@ class CmsController < MyProfileController | @@ -294,6 +297,9 @@ class CmsController < MyProfileController | ||
294 | @back_to = 'public_view' | 297 | @back_to = 'public_view' |
295 | @back_url = referer | 298 | @back_url = referer |
296 | end | 299 | end |
300 | + if !request.post? and @article.blog? | ||
301 | + store_location(request.referer) | ||
302 | + end | ||
297 | end | 303 | end |
298 | 304 | ||
299 | def maybe_ssl(url) | 305 | def maybe_ssl(url) |
app/models/blog.rb
@@ -11,12 +11,6 @@ class Blog < Folder | @@ -11,12 +11,6 @@ class Blog < Folder | ||
11 | end | 11 | end |
12 | 12 | ||
13 | settings_items :posts_per_page, :type => :integer, :default => 5 | 13 | settings_items :posts_per_page, :type => :integer, :default => 5 |
14 | - settings_items :title, :type => :string, :default => N_('Blog') | ||
15 | - | ||
16 | - def initialize(*args) | ||
17 | - super(*args) | ||
18 | - self.name = 'blog' | ||
19 | - end | ||
20 | 14 | ||
21 | def self.short_description | 15 | def self.short_description |
22 | _('Blog') | 16 | _('Blog') |
@@ -96,4 +90,13 @@ class Blog < Folder | @@ -96,4 +90,13 @@ class Blog < Folder | ||
96 | end | 90 | end |
97 | end | 91 | end |
98 | 92 | ||
93 | + def name=(value) | ||
94 | + self.set_name(value) | ||
95 | + if self.slug.blank? | ||
96 | + self.slug = self.name.to_slug | ||
97 | + else | ||
98 | + self.slug = self.slug.to_slug | ||
99 | + end | ||
100 | + end | ||
101 | + | ||
99 | end | 102 | end |
app/models/blog_archives_block.rb
@@ -14,21 +14,27 @@ class BlogArchivesBlock < Block | @@ -14,21 +14,27 @@ class BlogArchivesBlock < Block | ||
14 | _('Blog posts') | 14 | _('Blog posts') |
15 | end | 15 | end |
16 | 16 | ||
17 | + settings_items :blog_id, Integer | ||
18 | + | ||
19 | + def blog | ||
20 | + blog_id ? owner.blogs.find(blog_id) : owner.blog | ||
21 | + end | ||
22 | + | ||
17 | def content | 23 | def content |
18 | - return nil unless owner.has_blog? | 24 | + owner_blog = self.blog |
25 | + return nil unless owner_blog | ||
19 | results = '' | 26 | results = '' |
20 | - posts = owner.blog.posts | ||
21 | - posts.group_by {|i| i.published_at.year }.sort_by { |year,count| -year }.each do |year, results_by_year| | 27 | + owner_blog.posts.group_by {|i| i.published_at.year }.sort_by { |year,count| -year }.each do |year, results_by_year| |
22 | results << content_tag('li', content_tag('strong', "#{year} (#{results_by_year.size})")) | 28 | results << content_tag('li', content_tag('strong', "#{year} (#{results_by_year.size})")) |
23 | results << "<ul class='#{year}-archive'>" | 29 | results << "<ul class='#{year}-archive'>" |
24 | results_by_year.group_by{|i| [ ('%02d' % i.published_at.month()), gettext(MONTHS[i.published_at.month() - 1])]}.sort.reverse.each do |month, results_by_month| | 30 | results_by_year.group_by{|i| [ ('%02d' % i.published_at.month()), gettext(MONTHS[i.published_at.month() - 1])]}.sort.reverse.each do |month, results_by_month| |
25 | - results << content_tag('li', link_to("#{month[1]} (#{results_by_month.size})", owner.blog.url.merge(:year => year, :month => month[0]))) | 31 | + results << content_tag('li', link_to("#{month[1]} (#{results_by_month.size})", owner_blog.url.merge(:year => year, :month => month[0]))) |
26 | end | 32 | end |
27 | results << "</ul>" | 33 | results << "</ul>" |
28 | end | 34 | end |
29 | block_title(title) + | 35 | block_title(title) + |
30 | content_tag('ul', results, :class => 'blog-archives') + | 36 | content_tag('ul', results, :class => 'blog-archives') + |
31 | - content_tag('div', link_to(_('Subscribe RSS Feed'), owner.blog.feed.url), :class => 'subscribe-feed') | 37 | + content_tag('div', link_to(_('Subscribe RSS Feed'), owner_blog.feed.url), :class => 'subscribe-feed') |
32 | end | 38 | end |
33 | 39 | ||
34 | end | 40 | end |
app/models/profile.rb
@@ -590,14 +590,14 @@ private :generate_url, :url_options | @@ -590,14 +590,14 @@ private :generate_url, :url_options | ||
590 | LayoutTemplate.find(layout_template).number_of_boxes | 590 | LayoutTemplate.find(layout_template).number_of_boxes |
591 | end | 591 | end |
592 | 592 | ||
593 | + has_many :blogs, :source => 'articles', :class_name => 'Blog' | ||
594 | + | ||
593 | def blog | 595 | def blog |
594 | - if self.has_blog? | ||
595 | - self.articles.find(:first, :conditions => {:type => 'Blog'}) | ||
596 | - end | 596 | + self.has_blog? ? self.blogs.first : nil |
597 | end | 597 | end |
598 | 598 | ||
599 | def has_blog? | 599 | def has_blog? |
600 | - !self.articles.count(:conditions => {:type => 'Blog'}).zero? | 600 | + self.blogs.count.nonzero? |
601 | end | 601 | end |
602 | 602 | ||
603 | def admins | 603 | def admins |
app/views/cms/_blog.rhtml
@@ -4,7 +4,51 @@ | @@ -4,7 +4,51 @@ | ||
4 | 4 | ||
5 | <%= render :file => 'shared/tiny_mce' %> | 5 | <%= render :file => 'shared/tiny_mce' %> |
6 | 6 | ||
7 | -<%= f.text_field('title', :size => '64') %> | 7 | +<%= required f.text_field(:name, :size => '64', :onchange => "updateUrlField(this, 'article_slug')") %> |
8 | + | ||
9 | +<script type="text/javascript"> | ||
10 | + function submit_button(index) { | ||
11 | + return $("article_slug").form.select("input.submit")[index]; | ||
12 | + } | ||
13 | + function warn_value_change() { | ||
14 | + show_warning('article-formitem', "slug-change-confirmation"); | ||
15 | + disable_button(submit_button(0)); | ||
16 | + disable_button(submit_button(1)); | ||
17 | + } | ||
18 | + function confirm_change() { | ||
19 | + enable_button(submit_button(0)); | ||
20 | + enable_button(submit_button(1)); | ||
21 | + hide_warning('slug-change-confirmation'); | ||
22 | + } | ||
23 | + function no_change() { | ||
24 | + $("article_slug").value = $("old_article_slug").value; | ||
25 | + enable_button(submit_button(0)); | ||
26 | + enable_button(submit_button(1)); | ||
27 | + hide_warning('slug-change-confirmation'); | ||
28 | + } | ||
29 | +</script> | ||
30 | + | ||
31 | +<%= hidden_field_tag 'old_article_slug', @article.slug %> | ||
32 | +<div id="article-formitem"> | ||
33 | + <%= labelled_form_field( _('Address'), | ||
34 | + content_tag('code', | ||
35 | + url_for(@article.url).gsub(/#{@article.slug}$/, '') + | ||
36 | + text_field(:article, :slug, :onchange => "warn_value_change()", :size => 25) | ||
37 | + ) + | ||
38 | + content_tag('div', | ||
39 | + content_tag('strong', _('WARNING!')) + ' ' + | ||
40 | + _("You are about to change the address, and this will break external links to this blog or to posts inside it. Do you really want to change?") + | ||
41 | + content_tag('div', | ||
42 | + button_to_function(:ok, _("Yes"), "confirm_change()") + ' ' + | ||
43 | + button_to_function(:cancel, _('No'), 'no_change()') | ||
44 | + ), | ||
45 | + :id => 'slug-change-confirmation', | ||
46 | + :class => 'change-confirmation', | ||
47 | + :style => 'display: none;' | ||
48 | + ) | ||
49 | + ) | ||
50 | + %> | ||
51 | +</div> | ||
8 | 52 | ||
9 | <%= labelled_form_field(_('Description:'), text_area(:article, :body, :cols => 64, :rows => 10)) %> | 53 | <%= labelled_form_field(_('Description:'), text_area(:article, :body, :cols => 64, :rows => 10)) %> |
10 | 54 | ||
@@ -34,5 +78,3 @@ | @@ -34,5 +78,3 @@ | ||
34 | </div> | 78 | </div> |
35 | </div> | 79 | </div> |
36 | <% end %> | 80 | <% end %> |
37 | - | ||
38 | -<%= javascript_tag "$('back_to').value = 'control_panel'" %> |
app/views/cms/edit.rhtml
@@ -37,7 +37,9 @@ | @@ -37,7 +37,9 @@ | ||
37 | 37 | ||
38 | <% button_bar do %> | 38 | <% button_bar do %> |
39 | <%= submit_button :save, _('Save') %> | 39 | <%= submit_button :save, _('Save') %> |
40 | - <% if @back_url %> | 40 | + <% if @return_to %> |
41 | + <%= button :cancel, _('Cancel'), @return_to %> | ||
42 | + <% elsif @back_url %> | ||
41 | <%= button :cancel, _('Cancel'), @back_url %> | 43 | <%= button :cancel, _('Cancel'), @back_url %> |
42 | <% elsif @parent_id || @article.parent %> | 44 | <% elsif @parent_id || @article.parent %> |
43 | <%= button :cancel, _('Cancel'), :action => 'view', :id => @parent_id || @article.parent %> | 45 | <%= button :cancel, _('Cancel'), :action => 'view', :id => @parent_id || @article.parent %> |
app/views/cms/view.rhtml
@@ -7,6 +7,7 @@ | @@ -7,6 +7,7 @@ | ||
7 | 7 | ||
8 | <% if !@article or !@article.blog? %> | 8 | <% if !@article or !@article.blog? %> |
9 | <%= button :newfolder, _('New folder'), :action => 'new', :type => 'Folder', :parent_id => parent_id %> | 9 | <%= button :newfolder, _('New folder'), :action => 'new', :type => 'Folder', :parent_id => parent_id %> |
10 | + <%= button :newblog, _('New Blog'), :action => 'new', :type => 'Blog', :parent_id => parent_id %> | ||
10 | <%= button('upload-file', _('Upload files'), :action => 'upload_files', :parent_id => parent_id) %> | 11 | <%= button('upload-file', _('Upload files'), :action => 'upload_files', :parent_id => parent_id) %> |
11 | <% end %> | 12 | <% end %> |
12 | <%= lightbox_button('new', label_for_new_article(@article), :action => 'new', :parent_id => parent_id) %> | 13 | <%= lightbox_button('new', label_for_new_article(@article), :action => 'new', :parent_id => parent_id) %> |
app/views/profile_editor/_organization.rhtml
@@ -2,16 +2,6 @@ | @@ -2,16 +2,6 @@ | ||
2 | 2 | ||
3 | <%= required_fields_message if @profile.required_fields.any? %> | 3 | <%= required_fields_message if @profile.required_fields.any? %> |
4 | 4 | ||
5 | -<% if @environment.enabled?('enable_organization_url_change') %> | ||
6 | - <script type="text/javascript"> | ||
7 | - function updateUrlField(name_field, id) { | ||
8 | - url_field = $(id); | ||
9 | - url_field.value = convToValidIdentifier(name_field.value, "-"); | ||
10 | - warn_value_change(url_field); | ||
11 | - } | ||
12 | - </script> | ||
13 | -<% end %> | ||
14 | - | ||
15 | <div class="formfieldline"> | 5 | <div class="formfieldline"> |
16 | <label class="formlabel" for="profile_data_nickname"><%= _('Display name') %></label> | 6 | <label class="formlabel" for="profile_data_nickname"><%= _('Display name') %></label> |
17 | <div class="formfield type-text"> | 7 | <div class="formfield type-text"> |
@@ -23,33 +13,42 @@ | @@ -23,33 +13,42 @@ | ||
23 | <% if @environment.enabled?('enable_organization_url_change') %> | 13 | <% if @environment.enabled?('enable_organization_url_change') %> |
24 | <script type="text/javascript"> | 14 | <script type="text/javascript"> |
25 | function submit_button() { | 15 | function submit_button() { |
26 | - return $("profile_data_identifier").form.select("input.submit")[0]; | 16 | + return $("profile_data_identifier").form.select("input.submit")[0]; |
27 | } | 17 | } |
28 | - | ||
29 | - function warn_value_change(field) { | ||
30 | - new Effect.Highlight($("profile-identifier-formitem"), {duration:3}); | ||
31 | - $("identifier-change-confirmation").show(); | ||
32 | - submit_button().disable(); | ||
33 | - submit_button().addClassName("disabled"); | 18 | + function warn_value_change() { |
19 | + show_warning('profile-identifier-formitem', "identifier-change-confirmation"); | ||
20 | + disable_button(submit_button()); | ||
34 | } | 21 | } |
35 | - | ||
36 | - function hide_warning() { | ||
37 | - submit_button().enable(); | ||
38 | - submit_button().removeClassName("disabled"); | ||
39 | - $("identifier-change-confirmation").hide() | 22 | + function confirm_change() { |
23 | + enable_button(submit_button()); | ||
24 | + hide_warning('identifier-change-confirmation'); | ||
40 | } | 25 | } |
26 | + function no_change() { | ||
27 | + $("profile_data_identifier").value = $("old_profile_identifier").value; | ||
28 | + enable_button(submit_button()); | ||
29 | + hide_warning('identifier-change-confirmation'); | ||
30 | + } | ||
31 | + | ||
41 | </script> | 32 | </script> |
42 | 33 | ||
43 | <%= hidden_field_tag 'old_profile_identifier', @profile.identifier %> | 34 | <%= hidden_field_tag 'old_profile_identifier', @profile.identifier %> |
44 | <div id="profile-identifier-formitem"> | 35 | <div id="profile-identifier-formitem"> |
45 | <%= labelled_form_field( _('Address'), | 36 | <%= labelled_form_field( _('Address'), |
46 | - '<code>' + url_for(profile.url).gsub(/#{profile.identifier}$/, '') + | ||
47 | - text_field(:profile_data, :identifier, :onchange => "warn_value_change(this)", :size => 15) + '</code>' + | ||
48 | - content_tag('div', '<strong>' + _('WARNING!') + '</strong> ' + _("You are about to change the address, and this will break external links to the homepage or to content inside it. Do you really want to change? ") + | ||
49 | - '<div>' + button_to_function(:ok, _("Yes"), 'hide_warning()') + ' ' + | ||
50 | - button_to_function(:cancel, _('No'), '$("profile_data_identifier").value = $("old_profile_identifier").value; hide_warning()') + '</div>', | ||
51 | - :id => 'identifier-change-confirmation', :style => 'display: none;' | ||
52 | - ) | 37 | + content_tag('code', |
38 | + url_for(profile.url).gsub(/#{profile.identifier}$/, '') + | ||
39 | + text_field(:profile_data, :identifier, :onchange => "warn_value_change()", :size => 25) | ||
40 | + ) + | ||
41 | + content_tag('div', | ||
42 | + content_tag('strong', _('WARNING!')) + ' ' + | ||
43 | + _("You are about to change the address, and this will break external links to the homepage or to content inside it. Do you really want to change?") + | ||
44 | + content_tag('div', | ||
45 | + button_to_function(:ok, _("Yes"), "confirm_change()") + ' ' + | ||
46 | + button_to_function(:cancel, _('No'), 'no_change()') | ||
47 | + ), | ||
48 | + :id => 'identifier-change-confirmation', | ||
49 | + :class => 'change-confirmation', | ||
50 | + :style => 'display: none;' | ||
51 | + ) | ||
53 | ) | 52 | ) |
54 | %> | 53 | %> |
55 | </div> | 54 | </div> |
app/views/profile_editor/index.rhtml
@@ -27,11 +27,14 @@ | @@ -27,11 +27,14 @@ | ||
27 | <%= control_panel_button(_('Manage Content'), 'cms', :controller => 'cms') if !environment.enabled?('disable_cms') || profile.community? %> | 27 | <%= control_panel_button(_('Manage Content'), 'cms', :controller => 'cms') if !environment.enabled?('disable_cms') || profile.community? %> |
28 | 28 | ||
29 | <% unless profile.enterprise? %> | 29 | <% unless profile.enterprise? %> |
30 | - <% if profile.has_blog? %> | ||
31 | - <%= control_panel_button(_('Configure blog'), 'blog', :controller => 'cms', :action => 'edit', :id => profile.blog) %> | ||
32 | - <% else %> | ||
33 | - <%= control_panel_button(_('Create blog'), 'blog-disabled', :controller => 'cms', :action => 'new', :type => 'Blog') %> | ||
34 | - <% end %> | 30 | + <%= case profile.blogs.count |
31 | + when 0 | ||
32 | + control_panel_button(_('Create blog'), 'blog-disabled', :controller => 'cms', :action => 'new', :type => 'Blog') | ||
33 | + when 1 | ||
34 | + control_panel_button(_('Configure blog'), 'blog', :controller => 'cms', :action => 'edit', :id => profile.blog) | ||
35 | + else | ||
36 | + control_panel_button(_('Configure blog'), 'blog', :controller => 'cms') | ||
37 | + end %> | ||
35 | <% end %> | 38 | <% end %> |
36 | 39 | ||
37 | <%= control_panel_button(_('Change Password'), 'change-password', :controller => 'account', :action => 'change_password') if profile.person? %> | 40 | <%= control_panel_button(_('Change Password'), 'change-password', :controller => 'account', :action => 'change_password') if profile.person? %> |
@@ -0,0 +1,15 @@ | @@ -0,0 +1,15 @@ | ||
1 | +class MoveTitleToNameFromBlogs < ActiveRecord::Migration | ||
2 | + def self.up | ||
3 | + Blog.find(:all).each do |blog| | ||
4 | + blog.name = blog.title | ||
5 | + blog.save | ||
6 | + end | ||
7 | + end | ||
8 | + | ||
9 | + def self.down | ||
10 | + Blog.find(:all).each do |blog| | ||
11 | + blog.title = blog.name | ||
12 | + blog.save | ||
13 | + end | ||
14 | + end | ||
15 | +end |
db/schema.rb
@@ -9,7 +9,7 @@ | @@ -9,7 +9,7 @@ | ||
9 | # | 9 | # |
10 | # It's strongly recommended to check this file into your version control system. | 10 | # It's strongly recommended to check this file into your version control system. |
11 | 11 | ||
12 | -ActiveRecord::Schema.define(:version => 73) do | 12 | +ActiveRecord::Schema.define(:version => 74) do |
13 | 13 | ||
14 | create_table "article_versions", :force => true do |t| | 14 | create_table "article_versions", :force => true do |t| |
15 | t.integer "article_id" | 15 | t.integer "article_id" |
@@ -0,0 +1,89 @@ | @@ -0,0 +1,89 @@ | ||
1 | +Feature: blog | ||
2 | + As a noosfero user | ||
3 | + I want to have one or mutiple blogs | ||
4 | + | ||
5 | + Background: | ||
6 | + Given I am on the homepage | ||
7 | + And the following users | ||
8 | + | login | name | | ||
9 | + | joaosilva | Joao Silva | | ||
10 | + And I am logged in as "joaosilva" | ||
11 | + | ||
12 | + Scenario: create a blog | ||
13 | + Given I follow "Control panel" | ||
14 | + And I follow "Create blog" | ||
15 | + Then I should see "My Blog" | ||
16 | + When I fill in "Title" with "My Blog" | ||
17 | + And I press "Save" | ||
18 | + And I follow "Control panel" | ||
19 | + Then I should see "Configure blog" | ||
20 | + | ||
21 | + Scenario: redirect to control panel after create blog | ||
22 | + Given I follow "Control panel" | ||
23 | + And I follow "Create blog" | ||
24 | + Then I should see "My Blog" | ||
25 | + When I fill in "Title" with "My Blog" | ||
26 | + And I press "Save" | ||
27 | + Then I should be on /myprofile/joaosilva | ||
28 | + | ||
29 | + Scenario: redirect to cms after create blog | ||
30 | + Given I follow "Control panel" | ||
31 | + And I follow "Manage Content" | ||
32 | + When I follow "New Blog" | ||
33 | + Then I should see "My Blog" | ||
34 | + When I fill in "Title" with "My Blog" | ||
35 | + And I press "Save" | ||
36 | + Then I should be on /myprofile/joaosilva/cms | ||
37 | + | ||
38 | + Scenario: create multiple blogs | ||
39 | + Given I follow "Control panel" | ||
40 | + And I follow "Manage Content" | ||
41 | + And I follow "New Blog" | ||
42 | + And I fill in "Title" with "Blog One" | ||
43 | + And I press "Save" | ||
44 | + And I follow "New Blog" | ||
45 | + And I fill in "Title" with "Blog Two" | ||
46 | + And I press "Save" | ||
47 | + Then I should not see "error" | ||
48 | + And I should be on /myprofile/joaosilva/cms | ||
49 | + | ||
50 | + Scenario: cancel button back to cms | ||
51 | + Given I follow "Control panel" | ||
52 | + And I follow "Manage Content" | ||
53 | + And I follow "New Blog" | ||
54 | + When I follow "Cancel" | ||
55 | + Then I should be on /myprofile/joaosilva/cms | ||
56 | + | ||
57 | + Scenario: cancel button back to myprofile | ||
58 | + Given I follow "Control panel" | ||
59 | + And I follow "Create blog" | ||
60 | + When I follow "Cancel" | ||
61 | + Then I should be on /myprofile/joaosilva | ||
62 | + | ||
63 | + Scenario: configure blog link to cms | ||
64 | + Given the following blogs | ||
65 | + | owner | name | | ||
66 | + | joaosilva | Blog One | | ||
67 | + | joaosilva | Blog Two | | ||
68 | + And I follow "Control panel" | ||
69 | + When I follow "Configure blog" | ||
70 | + Then I should be on /myprofile/joaosilva/cms | ||
71 | + | ||
72 | + Scenario: configure blog link to edit blog | ||
73 | + Given the following blogs | ||
74 | + | owner | name | | ||
75 | + | joaosilva | Blog One | | ||
76 | + And I follow "Control panel" | ||
77 | + When I follow "Configure blog" | ||
78 | + Then I should be on edit "Blog One" by joaosilva | ||
79 | + | ||
80 | + Scenario: change address of blog | ||
81 | + Given the following blogs | ||
82 | + | owner | name | | ||
83 | + | joaosilva | Blog One | | ||
84 | + And I follow "Control panel" | ||
85 | + And I follow "Configure blog" | ||
86 | + And I fill in "Address" with "blog-two" | ||
87 | + And I press "Save" | ||
88 | + When I am on /joaosilva/blog-two | ||
89 | + Then I should see "Blog One" |
@@ -0,0 +1,34 @@ | @@ -0,0 +1,34 @@ | ||
1 | +Feature: edit_blog_archives_block | ||
2 | + As a blog owner | ||
3 | + I want to edit a Blog Archive Block | ||
4 | + | ||
5 | + Scenario: not offer to select blog when I have once blog | ||
6 | + Given I am on the homepage | ||
7 | + And the following users | ||
8 | + | login | name | | ||
9 | + | joaosilva | Joao Silva | | ||
10 | + And the following blogs | ||
11 | + | owner | name | | ||
12 | + | joaosilva | Blog One | | ||
13 | + And the following blocks | ||
14 | + | owner | type | | ||
15 | + | joaosilva | BlogArchivesBlock | | ||
16 | + And I am logged in as "joaosilva" | ||
17 | + When I go to edit BlogArchivesBlock of joaosilva | ||
18 | + Then I should not see "Choose a blog:" | ||
19 | + | ||
20 | + Scenario: offer to select blog when I have multiple blogs | ||
21 | + Given I am on the homepage | ||
22 | + And the following users | ||
23 | + | login | name | | ||
24 | + | joaosilva | Joao Silva | | ||
25 | + And the following blogs | ||
26 | + | owner | name | | ||
27 | + | joaosilva | Blog One | | ||
28 | + | joaosilva | Blog Two | | ||
29 | + And the following blocks | ||
30 | + | owner | type | | ||
31 | + | joaosilva | BlogArchivesBlock | | ||
32 | + And I am logged in as "joaosilva" | ||
33 | + When I go to edit BlogArchivesBlock of joaosilva | ||
34 | + Then I should see "Choose a blog:" |
features/step_definitions/noosfero_steps.rb
@@ -19,16 +19,37 @@ Given /^the following enterprises$/ do |table| | @@ -19,16 +19,37 @@ Given /^the following enterprises$/ do |table| | ||
19 | end | 19 | end |
20 | end | 20 | end |
21 | 21 | ||
22 | -Given /^the following (articles|events)$/ do |content, table| | 22 | +Given /^the following blocks$/ do |table| |
23 | + table.hashes.map{|item| item.dup}.each do |item| | ||
24 | + klass = item.delete('type') | ||
25 | + owner = Profile[item.delete('owner')] | ||
26 | + box_id = owner.boxes.last.id | ||
27 | + klass.constantize.create!(item.merge(:box_id => box_id)) | ||
28 | + end | ||
29 | +end | ||
30 | + | ||
31 | +Given /^the following (articles|events|blogs)$/ do |content, table| | ||
23 | klass = { | 32 | klass = { |
24 | 'articles' => TextileArticle, | 33 | 'articles' => TextileArticle, |
25 | 'events' => Event, | 34 | 'events' => Event, |
35 | + 'blogs' => Blog, | ||
26 | }[content] || raise("Don't know how to build %s" % content) | 36 | }[content] || raise("Don't know how to build %s" % content) |
27 | - table.hashes.each do |item| | ||
28 | - data = item.dup | ||
29 | - owner_identifier = data.delete("owner") | 37 | + table.hashes.map{|item| item.dup}.each do |item| |
38 | + owner_identifier = item.delete("owner") | ||
30 | owner = Profile[owner_identifier] | 39 | owner = Profile[owner_identifier] |
31 | - TextileArticle.create!(data.merge(:profile => owner)) | 40 | + klass.create!(item.merge(:profile => owner)) |
41 | + end | ||
42 | +end | ||
43 | + | ||
44 | +Given /^the following files$/ do |table| | ||
45 | + table.hashes.each do |item| | ||
46 | + owner = Profile[item[:owner]] | ||
47 | + file = "/files/#{item[:file]}" | ||
48 | + article = UploadedFile.create!(:profile => owner, :uploaded_data => fixture_file_upload(file, item[:mime])) | ||
49 | + if item[:homepage] | ||
50 | + owner.home_page = article | ||
51 | + owner.save! | ||
52 | + end | ||
32 | end | 53 | end |
33 | end | 54 | end |
34 | 55 | ||
@@ -40,3 +61,8 @@ Given /^the following products$/ do |table| | @@ -40,3 +61,8 @@ Given /^the following products$/ do |table| | ||
40 | end | 61 | end |
41 | end | 62 | end |
42 | 63 | ||
64 | +Given /^I am logged in as "(.+)"$/ do |username| | ||
65 | + fill_in("Username", :with => username) | ||
66 | + fill_in("Password", :with => '123456') | ||
67 | + click_button("Log in") | ||
68 | +end |
features/step_definitions/webrat_steps.rb
@@ -186,4 +186,8 @@ end | @@ -186,4 +186,8 @@ end | ||
186 | 186 | ||
187 | Then /^show me the page$/ do | 187 | Then /^show me the page$/ do |
188 | save_and_open_page | 188 | save_and_open_page |
189 | -end | ||
190 | \ No newline at end of file | 189 | \ No newline at end of file |
190 | +end | ||
191 | + | ||
192 | +Then /^the source should contain tag ([^\"]+)$/ do |tag| | ||
193 | + response_body.should have_tag(tag, {id => 10}) | ||
194 | +end |
features/support/paths.rb
@@ -13,7 +13,16 @@ module NavigationHelpers | @@ -13,7 +13,16 @@ module NavigationHelpers | ||
13 | 13 | ||
14 | when /^\// | 14 | when /^\// |
15 | page_name | 15 | page_name |
16 | + | ||
17 | + when /edit "(.+)" by (.+)/ | ||
18 | + article_id = Person[$2].articles.find_by_slug($1.to_slug).id | ||
19 | + "/myprofile/#{$2}/cms/edit/#{article_id}" | ||
16 | 20 | ||
21 | + when /edit BlogArchivesBlock of (.+)/ | ||
22 | + owner = Profile[$1] | ||
23 | + block = BlogArchivesBlock.find(:all).select{|i| i.owner == owner}.first | ||
24 | + "/myprofile/#{$1}/profile_design/edit/#{block.id}" | ||
25 | + | ||
17 | # Add more mappings here. | 26 | # Add more mappings here. |
18 | # Here is a more fancy example: | 27 | # Here is a more fancy example: |
19 | # | 28 | # |
lib/acts_as_filesystem.rb
@@ -97,13 +97,16 @@ module ActsAsFileSystem | @@ -97,13 +97,16 @@ module ActsAsFileSystem | ||
97 | self.children.empty? | 97 | self.children.empty? |
98 | end | 98 | end |
99 | 99 | ||
100 | - # sets the name of the category. Also sets #slug accordingly. | ||
101 | - def name=(value) | 100 | + def set_name(value) |
102 | if self.name != value | 101 | if self.name != value |
103 | self.recalculate_path = true | 102 | self.recalculate_path = true |
104 | end | 103 | end |
105 | - | ||
106 | self[:name] = value | 104 | self[:name] = value |
105 | + end | ||
106 | + | ||
107 | + # sets the name of the category. Also sets #slug accordingly. | ||
108 | + def name=(value) | ||
109 | + self.set_name(value) | ||
107 | unless self.name.blank? | 110 | unless self.name.blank? |
108 | self.slug = self.name.to_slug | 111 | self.slug = self.name.to_slug |
109 | end | 112 | end |
lib/authenticated_system.rb
@@ -80,7 +80,7 @@ module AuthenticatedSystem | @@ -80,7 +80,7 @@ module AuthenticatedSystem | ||
80 | # | 80 | # |
81 | # We can return to this location by calling #redirect_back_or_default. | 81 | # We can return to this location by calling #redirect_back_or_default. |
82 | def store_location(location = request.request_uri) | 82 | def store_location(location = request.request_uri) |
83 | - session[:return_to] = location | 83 | + @return_to = session[:return_to] = location |
84 | end | 84 | end |
85 | 85 | ||
86 | # Redirect to the URI stored by the most recent store_location call or | 86 | # Redirect to the URI stored by the most recent store_location call or |
724 Bytes
1.63 KB
2.47 KB
public/designs/icons/tango/Tango-mod/scalable/apps/text-editor.svg
0 → 100644
@@ -0,0 +1,799 @@ | @@ -0,0 +1,799 @@ | ||
1 | +<?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||
2 | +<!-- Created with Inkscape (http://www.inkscape.org/) --> | ||
3 | +<svg | ||
4 | + xmlns:dc="http://purl.org/dc/elements/1.1/" | ||
5 | + xmlns:cc="http://creativecommons.org/ns#" | ||
6 | + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | ||
7 | + xmlns:svg="http://www.w3.org/2000/svg" | ||
8 | + xmlns="http://www.w3.org/2000/svg" | ||
9 | + xmlns:xlink="http://www.w3.org/1999/xlink" | ||
10 | + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||
11 | + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||
12 | + inkscape:export-ydpi="90.000000" | ||
13 | + inkscape:export-xdpi="90.000000" | ||
14 | + inkscape:export-filename="text-editor.png" | ||
15 | + width="48px" | ||
16 | + height="48px" | ||
17 | + id="svg11300" | ||
18 | + sodipodi:version="0.32" | ||
19 | + inkscape:version="0.46" | ||
20 | + sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/apps" | ||
21 | + sodipodi:docname="text-editor.svg" | ||
22 | + inkscape:output_extension="org.inkscape.output.svg.inkscape"> | ||
23 | + <sodipodi:namedview | ||
24 | + stroke="#c4a000" | ||
25 | + fill="#edd400" | ||
26 | + id="base" | ||
27 | + pagecolor="#ffffff" | ||
28 | + bordercolor="#666666" | ||
29 | + borderopacity="0.25490196" | ||
30 | + inkscape:pageopacity="0.0" | ||
31 | + inkscape:pageshadow="2" | ||
32 | + inkscape:zoom="11.229167" | ||
33 | + inkscape:cx="24" | ||
34 | + inkscape:cy="24" | ||
35 | + inkscape:current-layer="layer1" | ||
36 | + showgrid="false" | ||
37 | + inkscape:grid-bbox="true" | ||
38 | + inkscape:document-units="px" | ||
39 | + inkscape:showpageshadow="false" | ||
40 | + inkscape:window-width="1276" | ||
41 | + inkscape:window-height="745" | ||
42 | + inkscape:window-x="0" | ||
43 | + inkscape:window-y="19" /> | ||
44 | + <defs | ||
45 | + id="defs3"> | ||
46 | + <inkscape:perspective | ||
47 | + id="perspective85" | ||
48 | + inkscape:persp3d-origin="24 : 16 : 1" | ||
49 | + inkscape:vp_z="48 : 24 : 1" | ||
50 | + inkscape:vp_y="0 : 1000 : 0" | ||
51 | + inkscape:vp_x="0 : 24 : 1" | ||
52 | + sodipodi:type="inkscape:persp3d" /> | ||
53 | + <radialGradient | ||
54 | + r="117.14286" | ||
55 | + fy="486.64789" | ||
56 | + fx="605.71429" | ||
57 | + cy="486.64789" | ||
58 | + cx="605.71429" | ||
59 | + gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)" | ||
60 | + gradientUnits="userSpaceOnUse" | ||
61 | + id="radialGradient6719" | ||
62 | + xlink:href="#linearGradient5060" | ||
63 | + inkscape:collect="always" /> | ||
64 | + <linearGradient | ||
65 | + id="linearGradient5060" | ||
66 | + inkscape:collect="always"> | ||
67 | + <stop | ||
68 | + id="stop5062" | ||
69 | + offset="0" | ||
70 | + style="stop-color:#000000;stop-opacity:1;" /> | ||
71 | + <stop | ||
72 | + id="stop5064" | ||
73 | + offset="1" | ||
74 | + style="stop-color:#000000;stop-opacity:0;" /> | ||
75 | + </linearGradient> | ||
76 | + <radialGradient | ||
77 | + r="117.14286" | ||
78 | + fy="486.64789" | ||
79 | + fx="605.71429" | ||
80 | + cy="486.64789" | ||
81 | + cx="605.71429" | ||
82 | + gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)" | ||
83 | + gradientUnits="userSpaceOnUse" | ||
84 | + id="radialGradient6717" | ||
85 | + xlink:href="#linearGradient5060" | ||
86 | + inkscape:collect="always" /> | ||
87 | + <linearGradient | ||
88 | + id="linearGradient5048"> | ||
89 | + <stop | ||
90 | + id="stop5050" | ||
91 | + offset="0" | ||
92 | + style="stop-color:#000000;stop-opacity:0;" /> | ||
93 | + <stop | ||
94 | + style="stop-color:#000000;stop-opacity:1;" | ||
95 | + offset="0.5" | ||
96 | + id="stop5056" /> | ||
97 | + <stop | ||
98 | + id="stop5052" | ||
99 | + offset="1" | ||
100 | + style="stop-color:#000000;stop-opacity:0;" /> | ||
101 | + </linearGradient> | ||
102 | + <linearGradient | ||
103 | + y2="609.50507" | ||
104 | + x2="302.85715" | ||
105 | + y1="366.64789" | ||
106 | + x1="302.85715" | ||
107 | + gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)" | ||
108 | + gradientUnits="userSpaceOnUse" | ||
109 | + id="linearGradient6715" | ||
110 | + xlink:href="#linearGradient5048" | ||
111 | + inkscape:collect="always" /> | ||
112 | + <linearGradient | ||
113 | + id="linearGradient2994"> | ||
114 | + <stop | ||
115 | + id="stop2996" | ||
116 | + offset="0" | ||
117 | + style="stop-color:#000000;stop-opacity:1;" /> | ||
118 | + <stop | ||
119 | + id="stop2998" | ||
120 | + offset="1" | ||
121 | + style="stop-color:#c9c9c9;stop-opacity:1;" /> | ||
122 | + </linearGradient> | ||
123 | + <linearGradient | ||
124 | + id="linearGradient2984" | ||
125 | + inkscape:collect="always"> | ||
126 | + <stop | ||
127 | + id="stop2986" | ||
128 | + offset="0" | ||
129 | + style="stop-color:#cfcfcf;stop-opacity:1;" /> | ||
130 | + <stop | ||
131 | + id="stop2988" | ||
132 | + offset="1" | ||
133 | + style="stop-color:#cfcfcf;stop-opacity:0;" /> | ||
134 | + </linearGradient> | ||
135 | + <linearGradient | ||
136 | + id="linearGradient2974"> | ||
137 | + <stop | ||
138 | + id="stop2976" | ||
139 | + offset="0" | ||
140 | + style="stop-color:#c1c1c1;stop-opacity:1;" /> | ||
141 | + <stop | ||
142 | + id="stop2978" | ||
143 | + offset="1" | ||
144 | + style="stop-color:#acacac;stop-opacity:1;" /> | ||
145 | + </linearGradient> | ||
146 | + <linearGradient | ||
147 | + id="linearGradient2966"> | ||
148 | + <stop | ||
149 | + id="stop2968" | ||
150 | + offset="0" | ||
151 | + style="stop-color:#e8e8e8;stop-opacity:1;" /> | ||
152 | + <stop | ||
153 | + style="stop-color:#8e8e8e;stop-opacity:1;" | ||
154 | + offset="0.5" | ||
155 | + id="stop3006" /> | ||
156 | + <stop | ||
157 | + id="stop2970" | ||
158 | + offset="1" | ||
159 | + style="stop-color:#373737;stop-opacity:1;" /> | ||
160 | + </linearGradient> | ||
161 | + <linearGradient | ||
162 | + id="linearGradient2919"> | ||
163 | + <stop | ||
164 | + id="stop2921" | ||
165 | + offset="0" | ||
166 | + style="stop-color:#a2a2a2;stop-opacity:1;" /> | ||
167 | + <stop | ||
168 | + id="stop2923" | ||
169 | + offset="1" | ||
170 | + style="stop-color:#878787;stop-opacity:1;" /> | ||
171 | + </linearGradient> | ||
172 | + <linearGradient | ||
173 | + id="linearGradient2873"> | ||
174 | + <stop | ||
175 | + id="stop2875" | ||
176 | + offset="0" | ||
177 | + style="stop-color:#939393;stop-opacity:1;" /> | ||
178 | + <stop | ||
179 | + id="stop2877" | ||
180 | + offset="1" | ||
181 | + style="stop-color:#424242;stop-opacity:1;" /> | ||
182 | + </linearGradient> | ||
183 | + <linearGradient | ||
184 | + id="linearGradient2865" | ||
185 | + inkscape:collect="always"> | ||
186 | + <stop | ||
187 | + id="stop2867" | ||
188 | + offset="0" | ||
189 | + style="stop-color:#000000;stop-opacity:1;" /> | ||
190 | + <stop | ||
191 | + id="stop2869" | ||
192 | + offset="1" | ||
193 | + style="stop-color:#000000;stop-opacity:0;" /> | ||
194 | + </linearGradient> | ||
195 | + <linearGradient | ||
196 | + id="linearGradient2855"> | ||
197 | + <stop | ||
198 | + id="stop2857" | ||
199 | + offset="0" | ||
200 | + style="stop-color:#dfdfdf;stop-opacity:1;" /> | ||
201 | + <stop | ||
202 | + id="stop2859" | ||
203 | + offset="1" | ||
204 | + style="stop-color:#ffffff;stop-opacity:1;" /> | ||
205 | + </linearGradient> | ||
206 | + <linearGradient | ||
207 | + gradientTransform="matrix(1.137871,0.000000,0.000000,1.000000,-2.660884,0.000000)" | ||
208 | + gradientUnits="userSpaceOnUse" | ||
209 | + y2="6.8333683" | ||
210 | + x2="14.283642" | ||
211 | + y1="42.83337" | ||
212 | + x1="21.043484" | ||
213 | + id="linearGradient2861" | ||
214 | + xlink:href="#linearGradient2855" | ||
215 | + inkscape:collect="always" /> | ||
216 | + <radialGradient | ||
217 | + gradientUnits="userSpaceOnUse" | ||
218 | + gradientTransform="matrix(1.000000,0.000000,0.000000,0.348243,0.000000,26.35543)" | ||
219 | + r="19.5625" | ||
220 | + fy="40.4375" | ||
221 | + fx="23.5625" | ||
222 | + cy="40.4375" | ||
223 | + cx="23.5625" | ||
224 | + id="radialGradient2871" | ||
225 | + xlink:href="#linearGradient2865" | ||
226 | + inkscape:collect="always" /> | ||
227 | + <linearGradient | ||
228 | + gradientUnits="userSpaceOnUse" | ||
229 | + y2="42.83337" | ||
230 | + x2="26.228401" | ||
231 | + y1="28.083368" | ||
232 | + x1="26.612417" | ||
233 | + id="linearGradient2879" | ||
234 | + xlink:href="#linearGradient2873" | ||
235 | + inkscape:collect="always" /> | ||
236 | + <linearGradient | ||
237 | + gradientUnits="userSpaceOnUse" | ||
238 | + y2="7.5624999" | ||
239 | + x2="40.984375" | ||
240 | + y1="7.5624999" | ||
241 | + x1="6" | ||
242 | + id="linearGradient2925" | ||
243 | + xlink:href="#linearGradient2919" | ||
244 | + inkscape:collect="always" /> | ||
245 | + <linearGradient | ||
246 | + gradientTransform="translate(-5.669292,0.000000)" | ||
247 | + gradientUnits="userSpaceOnUse" | ||
248 | + y2="22.250591" | ||
249 | + x2="50.988335" | ||
250 | + y1="17.376184" | ||
251 | + x1="48.90625" | ||
252 | + id="linearGradient2972" | ||
253 | + xlink:href="#linearGradient2966" | ||
254 | + inkscape:collect="always" /> | ||
255 | + <linearGradient | ||
256 | + gradientTransform="translate(-5.669292,0.000000)" | ||
257 | + gradientUnits="userSpaceOnUse" | ||
258 | + y2="22.625" | ||
259 | + x2="47.6875" | ||
260 | + y1="19.8125" | ||
261 | + x1="46" | ||
262 | + id="linearGradient2980" | ||
263 | + xlink:href="#linearGradient2974" | ||
264 | + inkscape:collect="always" /> | ||
265 | + <radialGradient | ||
266 | + gradientUnits="userSpaceOnUse" | ||
267 | + gradientTransform="matrix(2.923565,-3.911409e-24,2.471769e-23,2.029717,-61.55532,-27.88417)" | ||
268 | + r="3.2408544" | ||
269 | + fy="27.640751" | ||
270 | + fx="29.053354" | ||
271 | + cy="27.640751" | ||
272 | + cx="29.053354" | ||
273 | + id="radialGradient2990" | ||
274 | + xlink:href="#linearGradient2984" | ||
275 | + inkscape:collect="always" /> | ||
276 | + <linearGradient | ||
277 | + gradientTransform="translate(-5.825542,0.125000)" | ||
278 | + gradientUnits="userSpaceOnUse" | ||
279 | + y2="30.703125" | ||
280 | + x2="25.514589" | ||
281 | + y1="31.046875" | ||
282 | + x1="25.71875" | ||
283 | + id="linearGradient3000" | ||
284 | + xlink:href="#linearGradient2994" | ||
285 | + inkscape:collect="always" /> | ||
286 | + <radialGradient | ||
287 | + r="19.5625" | ||
288 | + fy="40.4375" | ||
289 | + fx="23.5625" | ||
290 | + cy="40.4375" | ||
291 | + cx="23.5625" | ||
292 | + gradientTransform="matrix(1.000000,0.000000,0.000000,0.348243,1.439818e-16,26.35543)" | ||
293 | + gradientUnits="userSpaceOnUse" | ||
294 | + id="radialGradient3010" | ||
295 | + xlink:href="#linearGradient2865" | ||
296 | + inkscape:collect="always" /> | ||
297 | + <linearGradient | ||
298 | + y2="609.50507" | ||
299 | + x2="302.85715" | ||
300 | + y1="366.64789" | ||
301 | + x1="302.85715" | ||
302 | + gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)" | ||
303 | + gradientUnits="userSpaceOnUse" | ||
304 | + id="linearGradient6715-635" | ||
305 | + xlink:href="#linearGradient5048-282" | ||
306 | + inkscape:collect="always" /> | ||
307 | + <linearGradient | ||
308 | + id="linearGradient5048-282"> | ||
309 | + <stop | ||
310 | + id="stop2506" | ||
311 | + offset="0" | ||
312 | + style="stop-color:#000000;stop-opacity:0;" /> | ||
313 | + <stop | ||
314 | + style="stop-color:#000000;stop-opacity:1;" | ||
315 | + offset="0.5" | ||
316 | + id="stop2508" /> | ||
317 | + <stop | ||
318 | + id="stop2510" | ||
319 | + offset="1" | ||
320 | + style="stop-color:#000000;stop-opacity:0;" /> | ||
321 | + </linearGradient> | ||
322 | + <radialGradient | ||
323 | + r="117.14286" | ||
324 | + fy="486.64789" | ||
325 | + fx="605.71429" | ||
326 | + cy="486.64789" | ||
327 | + cx="605.71429" | ||
328 | + gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)" | ||
329 | + gradientUnits="userSpaceOnUse" | ||
330 | + id="radialGradient6717-944" | ||
331 | + xlink:href="#linearGradient5060-14" | ||
332 | + inkscape:collect="always" /> | ||
333 | + <linearGradient | ||
334 | + id="linearGradient5060-14" | ||
335 | + inkscape:collect="always"> | ||
336 | + <stop | ||
337 | + id="stop2514" | ||
338 | + offset="0" | ||
339 | + style="stop-color:#000000;stop-opacity:1;" /> | ||
340 | + <stop | ||
341 | + id="stop2516" | ||
342 | + offset="1" | ||
343 | + style="stop-color:#000000;stop-opacity:0;" /> | ||
344 | + </linearGradient> | ||
345 | + <radialGradient | ||
346 | + r="117.14286" | ||
347 | + fy="486.64789" | ||
348 | + fx="605.71429" | ||
349 | + cy="486.64789" | ||
350 | + cx="605.71429" | ||
351 | + gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)" | ||
352 | + gradientUnits="userSpaceOnUse" | ||
353 | + id="radialGradient6719-778" | ||
354 | + xlink:href="#linearGradient5060-358" | ||
355 | + inkscape:collect="always" /> | ||
356 | + <linearGradient | ||
357 | + id="linearGradient5060-358" | ||
358 | + inkscape:collect="always"> | ||
359 | + <stop | ||
360 | + id="stop2520" | ||
361 | + offset="0" | ||
362 | + style="stop-color:#000000;stop-opacity:1;" /> | ||
363 | + <stop | ||
364 | + id="stop2522" | ||
365 | + offset="1" | ||
366 | + style="stop-color:#000000;stop-opacity:0;" /> | ||
367 | + </linearGradient> | ||
368 | + <linearGradient | ||
369 | + gradientTransform="matrix(1.137871,0.000000,0.000000,1.000000,-2.660884,0.000000)" | ||
370 | + gradientUnits="userSpaceOnUse" | ||
371 | + y2="6.8333683" | ||
372 | + x2="14.283642" | ||
373 | + y1="42.83337" | ||
374 | + x1="21.043484" | ||
375 | + id="linearGradient2861-627" | ||
376 | + xlink:href="#linearGradient2855-316" | ||
377 | + inkscape:collect="always" /> | ||
378 | + <linearGradient | ||
379 | + id="linearGradient2855-316"> | ||
380 | + <stop | ||
381 | + id="stop2526" | ||
382 | + offset="0" | ||
383 | + style="stop-color:#dfdfdf;stop-opacity:1;" /> | ||
384 | + <stop | ||
385 | + id="stop2528" | ||
386 | + offset="1" | ||
387 | + style="stop-color:#ffffff;stop-opacity:1;" /> | ||
388 | + </linearGradient> | ||
389 | + <linearGradient | ||
390 | + gradientUnits="userSpaceOnUse" | ||
391 | + y2="42.83337" | ||
392 | + x2="26.228401" | ||
393 | + y1="28.083368" | ||
394 | + x1="26.612417" | ||
395 | + id="linearGradient2879-751" | ||
396 | + xlink:href="#linearGradient2873-629" | ||
397 | + inkscape:collect="always" /> | ||
398 | + <linearGradient | ||
399 | + id="linearGradient2873-629"> | ||
400 | + <stop | ||
401 | + id="stop2532" | ||
402 | + offset="0" | ||
403 | + style="stop-color:#939393;stop-opacity:1;" /> | ||
404 | + <stop | ||
405 | + id="stop2534" | ||
406 | + offset="1" | ||
407 | + style="stop-color:#424242;stop-opacity:1;" /> | ||
408 | + </linearGradient> | ||
409 | + <radialGradient | ||
410 | + r="19.5625" | ||
411 | + fy="40.4375" | ||
412 | + fx="23.5625" | ||
413 | + cy="40.4375" | ||
414 | + cx="23.5625" | ||
415 | + gradientTransform="matrix(1.000000,0.000000,0.000000,0.348243,1.439818e-16,26.35543)" | ||
416 | + gradientUnits="userSpaceOnUse" | ||
417 | + id="radialGradient3010-591" | ||
418 | + xlink:href="#linearGradient2865-708" | ||
419 | + inkscape:collect="always" /> | ||
420 | + <linearGradient | ||
421 | + id="linearGradient2865-708" | ||
422 | + inkscape:collect="always"> | ||
423 | + <stop | ||
424 | + id="stop2538" | ||
425 | + offset="0" | ||
426 | + style="stop-color:#000000;stop-opacity:1;" /> | ||
427 | + <stop | ||
428 | + id="stop2540" | ||
429 | + offset="1" | ||
430 | + style="stop-color:#000000;stop-opacity:0;" /> | ||
431 | + </linearGradient> | ||
432 | + <linearGradient | ||
433 | + gradientUnits="userSpaceOnUse" | ||
434 | + y2="7.5624999" | ||
435 | + x2="40.984375" | ||
436 | + y1="7.5624999" | ||
437 | + x1="6" | ||
438 | + id="linearGradient2925-565" | ||
439 | + xlink:href="#linearGradient2919-578" | ||
440 | + inkscape:collect="always" /> | ||
441 | + <linearGradient | ||
442 | + id="linearGradient2919-578"> | ||
443 | + <stop | ||
444 | + id="stop2544" | ||
445 | + offset="0" | ||
446 | + style="stop-color:#a2a2a2;stop-opacity:1;" /> | ||
447 | + <stop | ||
448 | + id="stop2546" | ||
449 | + offset="1" | ||
450 | + style="stop-color:#878787;stop-opacity:1;" /> | ||
451 | + </linearGradient> | ||
452 | + <linearGradient | ||
453 | + gradientTransform="translate(-5.669292,0.000000)" | ||
454 | + gradientUnits="userSpaceOnUse" | ||
455 | + y2="22.250591" | ||
456 | + x2="50.988335" | ||
457 | + y1="17.376184" | ||
458 | + x1="48.90625" | ||
459 | + id="linearGradient2972-839" | ||
460 | + xlink:href="#linearGradient2966-498" | ||
461 | + inkscape:collect="always" /> | ||
462 | + <linearGradient | ||
463 | + id="linearGradient2966-498"> | ||
464 | + <stop | ||
465 | + id="stop2550" | ||
466 | + offset="0" | ||
467 | + style="stop-color:#e8e8e8;stop-opacity:1;" /> | ||
468 | + <stop | ||
469 | + style="stop-color:#8e8e8e;stop-opacity:1;" | ||
470 | + offset="0.5" | ||
471 | + id="stop2552" /> | ||
472 | + <stop | ||
473 | + id="stop2554" | ||
474 | + offset="1" | ||
475 | + style="stop-color:#373737;stop-opacity:1;" /> | ||
476 | + </linearGradient> | ||
477 | + <linearGradient | ||
478 | + gradientTransform="translate(-5.669292,0.000000)" | ||
479 | + gradientUnits="userSpaceOnUse" | ||
480 | + y2="22.625" | ||
481 | + x2="47.6875" | ||
482 | + y1="19.8125" | ||
483 | + x1="46" | ||
484 | + id="linearGradient2980-769" | ||
485 | + xlink:href="#linearGradient2974-591" | ||
486 | + inkscape:collect="always" /> | ||
487 | + <linearGradient | ||
488 | + id="linearGradient2974-591"> | ||
489 | + <stop | ||
490 | + id="stop2558" | ||
491 | + offset="0" | ||
492 | + style="stop-color:#c1c1c1;stop-opacity:1;" /> | ||
493 | + <stop | ||
494 | + id="stop2560" | ||
495 | + offset="1" | ||
496 | + style="stop-color:#acacac;stop-opacity:1;" /> | ||
497 | + </linearGradient> | ||
498 | + <radialGradient | ||
499 | + gradientUnits="userSpaceOnUse" | ||
500 | + gradientTransform="matrix(2.923565,-3.911409e-24,2.471769e-23,2.029717,-61.55532,-27.88417)" | ||
501 | + r="3.2408544" | ||
502 | + fy="27.640751" | ||
503 | + fx="29.053354" | ||
504 | + cy="27.640751" | ||
505 | + cx="29.053354" | ||
506 | + id="radialGradient2990-357" | ||
507 | + xlink:href="#linearGradient2984-123" | ||
508 | + inkscape:collect="always" /> | ||
509 | + <linearGradient | ||
510 | + id="linearGradient2984-123" | ||
511 | + inkscape:collect="always"> | ||
512 | + <stop | ||
513 | + id="stop2564" | ||
514 | + offset="0" | ||
515 | + style="stop-color:#cfcfcf;stop-opacity:1;" /> | ||
516 | + <stop | ||
517 | + id="stop2566" | ||
518 | + offset="1" | ||
519 | + style="stop-color:#cfcfcf;stop-opacity:0;" /> | ||
520 | + </linearGradient> | ||
521 | + <linearGradient | ||
522 | + gradientTransform="translate(-5.825542,0.125000)" | ||
523 | + gradientUnits="userSpaceOnUse" | ||
524 | + y2="30.703125" | ||
525 | + x2="25.514589" | ||
526 | + y1="31.046875" | ||
527 | + x1="25.71875" | ||
528 | + id="linearGradient3000-327" | ||
529 | + xlink:href="#linearGradient2994-689" | ||
530 | + inkscape:collect="always" /> | ||
531 | + <linearGradient | ||
532 | + id="linearGradient2994-689"> | ||
533 | + <stop | ||
534 | + id="stop2570" | ||
535 | + offset="0" | ||
536 | + style="stop-color:#000000;stop-opacity:1;" /> | ||
537 | + <stop | ||
538 | + id="stop2572" | ||
539 | + offset="1" | ||
540 | + style="stop-color:#c9c9c9;stop-opacity:1;" /> | ||
541 | + </linearGradient> | ||
542 | + </defs> | ||
543 | + <metadata | ||
544 | + id="metadata4"> | ||
545 | + <rdf:RDF> | ||
546 | + <cc:Work | ||
547 | + rdf:about=""> | ||
548 | + <dc:format>image/svg+xml</dc:format> | ||
549 | + <dc:type | ||
550 | + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | ||
551 | + <dc:creator> | ||
552 | + <cc:Agent> | ||
553 | + <dc:title>Jakub Steiner</dc:title> | ||
554 | + </cc:Agent> | ||
555 | + </dc:creator> | ||
556 | + <dc:source>http://jimmac.musichall.cz</dc:source> | ||
557 | + <cc:license | ||
558 | + rdf:resource="http://creativecommons.org/licenses/publicdomain/" /> | ||
559 | + <dc:title>Text Editor</dc:title> | ||
560 | + </cc:Work> | ||
561 | + <cc:License | ||
562 | + rdf:about="http://creativecommons.org/licenses/publicdomain/"> | ||
563 | + <cc:permits | ||
564 | + rdf:resource="http://creativecommons.org/ns#Reproduction" /> | ||
565 | + <cc:permits | ||
566 | + rdf:resource="http://creativecommons.org/ns#Distribution" /> | ||
567 | + <cc:permits | ||
568 | + rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /> | ||
569 | + </cc:License> | ||
570 | + </rdf:RDF> | ||
571 | + </metadata> | ||
572 | + <g | ||
573 | + inkscape:groupmode="layer" | ||
574 | + inkscape:label="Layer 1" | ||
575 | + id="layer1"> | ||
576 | + <g | ||
577 | + id="g6707" | ||
578 | + transform="matrix(2.417561e-2,0,0,2.086758e-2,45.12765,40.1536)"> | ||
579 | + <rect | ||
580 | + y="-150.69685" | ||
581 | + x="-1559.2523" | ||
582 | + height="478.35718" | ||
583 | + width="1339.6335" | ||
584 | + id="rect6709" | ||
585 | + style="opacity:0.40206185;color:black;fill:url(#linearGradient6715-635);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> | ||
586 | + <path | ||
587 | + sodipodi:nodetypes="cccc" | ||
588 | + id="path6711" | ||
589 | + d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z " | ||
590 | + style="opacity:0.40206185;color:black;fill:url(#radialGradient6717-944);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> | ||
591 | + <path | ||
592 | + style="opacity:0.40206185;color:black;fill:url(#radialGradient6719-778);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" | ||
593 | + d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z " | ||
594 | + id="path6713" | ||
595 | + sodipodi:nodetypes="cccc" /> | ||
596 | + </g> | ||
597 | + <path | ||
598 | + sodipodi:nodetypes="ccccccccccc" | ||
599 | + id="rect1975" | ||
600 | + d="M 7.1638699,4.5063726 L 39.813122,4.5063726 C 40.575699,4.5063726 41.189615,5.0388241 41.189615,5.7002099 C 41.189615,5.7002099 43.590945,39.868907 43.590945,39.868907 C 43.590945,39.868907 43.603403,42.216529 43.603403,42.216529 C 43.603403,42.877915 42.989488,43.410366 42.226911,43.410366 L 4.750081,43.410366 C 3.9875042,43.410366 3.3735887,42.877915 3.3735887,42.216529 L 3.3624173,40.049613 L 5.7873775,5.7002099 C 5.7873775,5.0388241 6.4012931,4.5063726 7.1638699,4.5063726 z " | ||
601 | + style="color:#000000;fill:url(#linearGradient2861-627);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient2879-751);stroke-width:0.99999982;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> | ||
602 | + <path | ||
603 | + sodipodi:type="arc" | ||
604 | + style="opacity:0.31578944;color:#000000;fill:url(#radialGradient3010-591);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" | ||
605 | + id="path3008" | ||
606 | + sodipodi:cx="23.5625" | ||
607 | + sodipodi:cy="40.4375" | ||
608 | + sodipodi:rx="19.5625" | ||
609 | + sodipodi:ry="6.8125" | ||
610 | + d="M 43.125 40.4375 A 19.5625 6.8125 0 1 1 4,40.4375 A 19.5625 6.8125 0 1 1 43.125 40.4375 z" | ||
611 | + transform="matrix(0.616613,0.000000,0.000000,0.440367,10.61425,13.94266)" /> | ||
612 | + <rect | ||
613 | + ry="0.67937863" | ||
614 | + rx="0.67937863" | ||
615 | + y="39.868271" | ||
616 | + x="3.9770372" | ||
617 | + height="3.0714951" | ||
618 | + width="39.048077" | ||
619 | + id="rect2851" | ||
620 | + style="opacity:1;color:#000000;fill:#a4a4a4;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> | ||
621 | + <path | ||
622 | + sodipodi:nodetypes="ccccccc" | ||
623 | + id="path2853" | ||
624 | + d="M 3.9267507,40.442796 C 3.9267507,40.442796 4.0776125,39.912466 4.6307727,39.868272 L 42.195375,39.868272 C 42.949684,39.868272 42.999971,40.619573 42.999971,40.619573 C 42.999971,40.619573 43.02357,39 41.7161,39 L 5.3042159,39 C 4.2984702,39.088388 3.9267507,39.779883 3.9267507,40.442796 z " | ||
625 | + style="opacity:1;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> | ||
626 | + <path | ||
627 | + sodipodi:nodetypes="ccccccccc" | ||
628 | + id="path2915" | ||
629 | + d="M 6.25,5.7343749 L 6,10.125 C 6,10.125 6.3125,8.9999999 7,8.9999999 L 40.125,8.9999999 C 40.828125,8.9843749 40.859375,9.3124999 40.984375,9.8281249 C 40.984375,9.8281249 40.734375,5.9531249 40.734375,5.9531249 C 40.703125,5.4062499 40.515625,4.9999999 39.953125,4.9999999 L 7.0625,4.9999999 C 6.609375,4.9999999 6.296875,5.3437499 6.25,5.7343749 z " | ||
630 | + style="opacity:1;color:#000000;fill:url(#linearGradient2925-565);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> | ||
631 | + <path | ||
632 | + style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.99999946;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;opacity:0.43859649" | ||
633 | + d="M 7.8126474,5.5404503 L 38.944983,5.5404503 C 39.66702,5.5404503 40.2483,5.3883462 40.2483,6.014572 C 40.2483,6.014572 42.521973,39.023077 42.521973,39.023077 C 42.521973,39.023077 42.622156,41.732033 42.622156,41.732033 C 42.622156,42.358259 42.48282,42.376269 41.760782,42.376269 L 4.8620444,42.376269 C 4.4493662,42.376269 4.4426114,42.269871 4.4426114,41.864615 L 4.4320338,39.194177 L 6.7280807,6.045822 C 6.7280807,5.4195962 7.09061,5.5404503 7.8126474,5.5404503 z " | ||
634 | + id="path2917" | ||
635 | + sodipodi:nodetypes="ccccccccccc" /> | ||
636 | + <g | ||
637 | + id="g2950"> | ||
638 | + <rect | ||
639 | + style="opacity:1;color:#000000;fill:#a5a5a5;fill-opacity:1;fill-rule:evenodd;stroke:#444444;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" | ||
640 | + id="rect2899" | ||
641 | + width="2" | ||
642 | + height="5" | ||
643 | + x="8.5" | ||
644 | + y="2.5" | ||
645 | + rx="1" | ||
646 | + ry="1" /> | ||
647 | + <rect | ||
648 | + ry="1" | ||
649 | + rx="1" | ||
650 | + y="2.5" | ||
651 | + x="12.5" | ||
652 | + height="5" | ||
653 | + width="2" | ||
654 | + id="rect2901" | ||
655 | + style="opacity:1;color:#000000;fill:#a5a5a5;fill-opacity:1;fill-rule:evenodd;stroke:#444444;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> | ||
656 | + <rect | ||
657 | + style="opacity:1;color:#000000;fill:#a5a5a5;fill-opacity:1;fill-rule:evenodd;stroke:#444444;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" | ||
658 | + id="rect2903" | ||
659 | + width="2" | ||
660 | + height="5" | ||
661 | + x="16.5" | ||
662 | + y="2.5" | ||
663 | + rx="1" | ||
664 | + ry="1" /> | ||
665 | + <rect | ||
666 | + ry="1" | ||
667 | + rx="1" | ||
668 | + y="2.5" | ||
669 | + x="20.5" | ||
670 | + height="5" | ||
671 | + width="2" | ||
672 | + id="rect2905" | ||
673 | + style="opacity:1;color:#000000;fill:#a5a5a5;fill-opacity:1;fill-rule:evenodd;stroke:#444444;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> | ||
674 | + <rect | ||
675 | + style="opacity:1;color:#000000;fill:#a5a5a5;fill-opacity:1;fill-rule:evenodd;stroke:#444444;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" | ||
676 | + id="rect2907" | ||
677 | + width="2" | ||
678 | + height="5" | ||
679 | + x="24.5" | ||
680 | + y="2.5" | ||
681 | + rx="1" | ||
682 | + ry="1" /> | ||
683 | + <rect | ||
684 | + ry="1" | ||
685 | + rx="1" | ||
686 | + y="2.5" | ||
687 | + x="28.5" | ||
688 | + height="5" | ||
689 | + width="2" | ||
690 | + id="rect2909" | ||
691 | + style="opacity:1;color:#000000;fill:#a5a5a5;fill-opacity:1;fill-rule:evenodd;stroke:#444444;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> | ||
692 | + <rect | ||
693 | + style="opacity:1;color:#000000;fill:#a5a5a5;fill-opacity:1;fill-rule:evenodd;stroke:#444444;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" | ||
694 | + id="rect2911" | ||
695 | + width="2" | ||
696 | + height="5" | ||
697 | + x="32.5" | ||
698 | + y="2.5" | ||
699 | + rx="1" | ||
700 | + ry="1" /> | ||
701 | + <rect | ||
702 | + ry="1" | ||
703 | + rx="1" | ||
704 | + y="2.5" | ||
705 | + x="36.5" | ||
706 | + height="5" | ||
707 | + width="2" | ||
708 | + id="rect2913" | ||
709 | + style="opacity:1;color:#000000;fill:#a5a5a5;fill-opacity:1;fill-rule:evenodd;stroke:#444444;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> | ||
710 | + </g> | ||
711 | + <g | ||
712 | + id="g2941"> | ||
713 | + <rect | ||
714 | + style="opacity:0.28070175;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" | ||
715 | + id="rect2927" | ||
716 | + width="29" | ||
717 | + height="1" | ||
718 | + x="9" | ||
719 | + y="12" /> | ||
720 | + <rect | ||
721 | + y="14.981792" | ||
722 | + x="9" | ||
723 | + height="1" | ||
724 | + width="29" | ||
725 | + id="rect2929" | ||
726 | + style="opacity:0.28070176;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> | ||
727 | + <rect | ||
728 | + style="opacity:0.28070176;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" | ||
729 | + id="rect2931" | ||
730 | + width="13" | ||
731 | + height="1" | ||
732 | + x="9" | ||
733 | + y="18.003939" /> | ||
734 | + <rect | ||
735 | + y="22.985731" | ||
736 | + x="9" | ||
737 | + height="1" | ||
738 | + width="29" | ||
739 | + id="rect2933" | ||
740 | + style="opacity:0.28070176;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> | ||
741 | + <rect | ||
742 | + style="opacity:0.28070176;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" | ||
743 | + id="rect2935" | ||
744 | + width="29" | ||
745 | + height="1" | ||
746 | + x="9" | ||
747 | + y="26.007877" /> | ||
748 | + <rect | ||
749 | + y="29.030024" | ||
750 | + x="9" | ||
751 | + height="1" | ||
752 | + width="29" | ||
753 | + id="rect2937" | ||
754 | + style="opacity:0.28070176;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> | ||
755 | + <rect | ||
756 | + style="opacity:0.28070176;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" | ||
757 | + id="rect2939" | ||
758 | + width="8" | ||
759 | + height="1" | ||
760 | + x="9" | ||
761 | + y="32.05217" /> | ||
762 | + </g> | ||
763 | + <path | ||
764 | + sodipodi:nodetypes="cccccc" | ||
765 | + id="path2960" | ||
766 | + d="M 17.34116,32.5 L 22.96616,26.875 L 43.059909,17.125 C 46.309909,15.875 48.247409,20.5 45.372409,22.125 L 25.34116,31.5 L 17.34116,32.5 z " | ||
767 | + style="opacity:1;color:#000000;fill:#767676;fill-opacity:1;fill-rule:evenodd;stroke:#343434;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> | ||
768 | + <path | ||
769 | + style="opacity:1;color:#000000;fill:url(#linearGradient2972-839);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" | ||
770 | + d="M 38.330708,20 C 38.330708,20 39.768208,20.09375 40.330708,21.34375 C 40.910201,22.631511 40.330708,24 40.330708,24 L 45.361958,21.53125 C 45.361958,21.53125 46.81399,20.649883 46.018208,18.6875 C 45.233296,16.751923 43.330708,17.53125 43.330708,17.53125 L 38.330708,20 z " | ||
771 | + id="path2964" | ||
772 | + sodipodi:nodetypes="czcczcc" /> | ||
773 | + <path | ||
774 | + sodipodi:nodetypes="czcczcc" | ||
775 | + id="path2962" | ||
776 | + d="M 38.330708,20 C 38.330708,20 39.768208,20.09375 40.330708,21.34375 C 40.910201,22.631511 40.330708,24 40.330708,24 L 42.330708,23 C 42.330708,23 43.15774,21.681133 42.549458,20.3125 C 41.924458,18.90625 40.330708,19 40.330708,19 L 38.330708,20 z " | ||
777 | + style="opacity:1;color:#000000;fill:url(#linearGradient2980-769);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> | ||
778 | + <path | ||
779 | + sodipodi:nodetypes="cccc" | ||
780 | + id="path2982" | ||
781 | + d="M 18.768208,31.78125 L 23.268208,27.28125 C 24.768208,28.09375 25.549458,29.4375 25.143208,31 L 18.768208,31.78125 z " | ||
782 | + style="opacity:1;color:#000000;fill:url(#radialGradient2990-357);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> | ||
783 | + <path | ||
784 | + sodipodi:nodetypes="cccc" | ||
785 | + id="path2992" | ||
786 | + d="M 20.111958,30.375 L 18.486958,31.96875 L 20.830708,31.65625 C 21.049458,30.9375 20.643208,30.59375 20.111958,30.375 z " | ||
787 | + style="opacity:1;color:#000000;fill:url(#linearGradient3000-327);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> | ||
788 | + <path | ||
789 | + sodipodi:nodetypes="ccccc" | ||
790 | + id="path3002" | ||
791 | + d="M 23.268208,27.25 L 24.830708,28.5 L 40.218048,21.18133 C 39.773616,20.325286 38.976281,20.096733 38.314669,20.019068 L 23.268208,27.25 z " | ||
792 | + style="opacity:1;color:#000000;fill:#ffffff;fill-opacity:0.36363639;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> | ||
793 | + <path | ||
794 | + sodipodi:nodetypes="ccccc" | ||
795 | + id="path3004" | ||
796 | + d="M 25.143208,31.0625 L 25.330708,30.3125 L 40.561798,23.1829 C 40.561798,23.1829 40.451638,23.796527 40.345919,23.93225 L 25.143208,31.0625 z " | ||
797 | + style="opacity:1;color:#000000;fill:#000000;fill-opacity:0.36363639;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> | ||
798 | + </g> | ||
799 | +</svg> |
public/designs/icons/tango/style.css
@@ -5,6 +5,7 @@ | @@ -5,6 +5,7 @@ | ||
5 | .icon-new { background-image: url(Tango/16x16/actions/filenew.png) } | 5 | .icon-new { background-image: url(Tango/16x16/actions/filenew.png) } |
6 | .icon-close { background-image: url(Tango/16x16/actions/gtk-cancel.png) } | 6 | .icon-close { background-image: url(Tango/16x16/actions/gtk-cancel.png) } |
7 | .icon-newfolder { background-image: url(Tango/16x16/actions/folder-new.png) } | 7 | .icon-newfolder { background-image: url(Tango/16x16/actions/folder-new.png) } |
8 | +.icon-newblog { background-image: url(Tango-mod/16x16/apps/text-editor.png) } | ||
8 | /*.icon-open { background-image: url(folder-open.gif) } UNUSED*/ | 9 | /*.icon-open { background-image: url(folder-open.gif) } UNUSED*/ |
9 | /*.icon-cms { background-image: url(abiword_48.png) } UNUSED*/ | 10 | /*.icon-cms { background-image: url(abiword_48.png) } UNUSED*/ |
10 | .icon-save { background-image: url(Tango/16x16/actions/filesave.png) } | 11 | .icon-save { background-image: url(Tango/16x16/actions/filesave.png) } |
public/images/control-panel/text-editor-disabled.png
public/images/control-panel/text-editor-disabled.svg
@@ -1,799 +0,0 @@ | @@ -1,799 +0,0 @@ | ||
1 | -<?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||
2 | -<!-- Created with Inkscape (http://www.inkscape.org/) --> | ||
3 | -<svg | ||
4 | - xmlns:dc="http://purl.org/dc/elements/1.1/" | ||
5 | - xmlns:cc="http://creativecommons.org/ns#" | ||
6 | - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | ||
7 | - xmlns:svg="http://www.w3.org/2000/svg" | ||
8 | - xmlns="http://www.w3.org/2000/svg" | ||
9 | - xmlns:xlink="http://www.w3.org/1999/xlink" | ||
10 | - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||
11 | - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||
12 | - inkscape:export-ydpi="90.000000" | ||
13 | - inkscape:export-xdpi="90.000000" | ||
14 | - inkscape:export-filename="/home/jimmac/Desktop/wi-fi.png" | ||
15 | - width="48px" | ||
16 | - height="48px" | ||
17 | - id="svg11300" | ||
18 | - sodipodi:version="0.32" | ||
19 | - inkscape:version="0.46" | ||
20 | - sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/apps" | ||
21 | - sodipodi:docname="text-editor-disabled.svg" | ||
22 | - inkscape:output_extension="org.inkscape.output.svg.inkscape"> | ||
23 | - <sodipodi:namedview | ||
24 | - stroke="#c4a000" | ||
25 | - fill="#edd400" | ||
26 | - id="base" | ||
27 | - pagecolor="#ffffff" | ||
28 | - bordercolor="#666666" | ||
29 | - borderopacity="0.25490196" | ||
30 | - inkscape:pageopacity="0.0" | ||
31 | - inkscape:pageshadow="2" | ||
32 | - inkscape:zoom="11.229167" | ||
33 | - inkscape:cx="24" | ||
34 | - inkscape:cy="24" | ||
35 | - inkscape:current-layer="layer1" | ||
36 | - showgrid="false" | ||
37 | - inkscape:grid-bbox="true" | ||
38 | - inkscape:document-units="px" | ||
39 | - inkscape:showpageshadow="false" | ||
40 | - inkscape:window-width="1276" | ||
41 | - inkscape:window-height="745" | ||
42 | - inkscape:window-x="0" | ||
43 | - inkscape:window-y="19" /> | ||
44 | - <defs | ||
45 | - id="defs3"> | ||
46 | - <inkscape:perspective | ||
47 | - id="perspective85" | ||
48 | - inkscape:persp3d-origin="24 : 16 : 1" | ||
49 | - inkscape:vp_z="48 : 24 : 1" | ||
50 | - inkscape:vp_y="0 : 1000 : 0" | ||
51 | - inkscape:vp_x="0 : 24 : 1" | ||
52 | - sodipodi:type="inkscape:persp3d" /> | ||
53 | - <radialGradient | ||
54 | - r="117.14286" | ||
55 | - fy="486.64789" | ||
56 | - fx="605.71429" | ||
57 | - cy="486.64789" | ||
58 | - cx="605.71429" | ||
59 | - gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)" | ||
60 | - gradientUnits="userSpaceOnUse" | ||
61 | - id="radialGradient6719" | ||
62 | - xlink:href="#linearGradient5060" | ||
63 | - inkscape:collect="always" /> | ||
64 | - <linearGradient | ||
65 | - id="linearGradient5060" | ||
66 | - inkscape:collect="always"> | ||
67 | - <stop | ||
68 | - id="stop5062" | ||
69 | - offset="0" | ||
70 | - style="stop-color:#000000;stop-opacity:1;" /> | ||
71 | - <stop | ||
72 | - id="stop5064" | ||
73 | - offset="1" | ||
74 | - style="stop-color:#000000;stop-opacity:0;" /> | ||
75 | - </linearGradient> | ||
76 | - <radialGradient | ||
77 | - r="117.14286" | ||
78 | - fy="486.64789" | ||
79 | - fx="605.71429" | ||
80 | - cy="486.64789" | ||
81 | - cx="605.71429" | ||
82 | - gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)" | ||
83 | - gradientUnits="userSpaceOnUse" | ||
84 | - id="radialGradient6717" | ||
85 | - xlink:href="#linearGradient5060" | ||
86 | - inkscape:collect="always" /> | ||
87 | - <linearGradient | ||
88 | - id="linearGradient5048"> | ||
89 | - <stop | ||
90 | - id="stop5050" | ||
91 | - offset="0" | ||
92 | - style="stop-color:#000000;stop-opacity:0;" /> | ||
93 | - <stop | ||
94 | - style="stop-color:#000000;stop-opacity:1;" | ||
95 | - offset="0.5" | ||
96 | - id="stop5056" /> | ||
97 | - <stop | ||
98 | - id="stop5052" | ||
99 | - offset="1" | ||
100 | - style="stop-color:#000000;stop-opacity:0;" /> | ||
101 | - </linearGradient> | ||
102 | - <linearGradient | ||
103 | - y2="609.50507" | ||
104 | - x2="302.85715" | ||
105 | - y1="366.64789" | ||
106 | - x1="302.85715" | ||
107 | - gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)" | ||
108 | - gradientUnits="userSpaceOnUse" | ||
109 | - id="linearGradient6715" | ||
110 | - xlink:href="#linearGradient5048" | ||
111 | - inkscape:collect="always" /> | ||
112 | - <linearGradient | ||
113 | - id="linearGradient2994"> | ||
114 | - <stop | ||
115 | - id="stop2996" | ||
116 | - offset="0" | ||
117 | - style="stop-color:#000000;stop-opacity:1;" /> | ||
118 | - <stop | ||
119 | - id="stop2998" | ||
120 | - offset="1" | ||
121 | - style="stop-color:#c9c9c9;stop-opacity:1;" /> | ||
122 | - </linearGradient> | ||
123 | - <linearGradient | ||
124 | - id="linearGradient2984" | ||
125 | - inkscape:collect="always"> | ||
126 | - <stop | ||
127 | - id="stop2986" | ||
128 | - offset="0" | ||
129 | - style="stop-color:#cfcfcf;stop-opacity:1;" /> | ||
130 | - <stop | ||
131 | - id="stop2988" | ||
132 | - offset="1" | ||
133 | - style="stop-color:#cfcfcf;stop-opacity:0;" /> | ||
134 | - </linearGradient> | ||
135 | - <linearGradient | ||
136 | - id="linearGradient2974"> | ||
137 | - <stop | ||
138 | - id="stop2976" | ||
139 | - offset="0" | ||
140 | - style="stop-color:#c1c1c1;stop-opacity:1;" /> | ||
141 | - <stop | ||
142 | - id="stop2978" | ||
143 | - offset="1" | ||
144 | - style="stop-color:#acacac;stop-opacity:1;" /> | ||
145 | - </linearGradient> | ||
146 | - <linearGradient | ||
147 | - id="linearGradient2966"> | ||
148 | - <stop | ||
149 | - id="stop2968" | ||
150 | - offset="0" | ||
151 | - style="stop-color:#e8e8e8;stop-opacity:1;" /> | ||
152 | - <stop | ||
153 | - style="stop-color:#8e8e8e;stop-opacity:1;" | ||
154 | - offset="0.5" | ||
155 | - id="stop3006" /> | ||
156 | - <stop | ||
157 | - id="stop2970" | ||
158 | - offset="1" | ||
159 | - style="stop-color:#373737;stop-opacity:1;" /> | ||
160 | - </linearGradient> | ||
161 | - <linearGradient | ||
162 | - id="linearGradient2919"> | ||
163 | - <stop | ||
164 | - id="stop2921" | ||
165 | - offset="0" | ||
166 | - style="stop-color:#a2a2a2;stop-opacity:1;" /> | ||
167 | - <stop | ||
168 | - id="stop2923" | ||
169 | - offset="1" | ||
170 | - style="stop-color:#878787;stop-opacity:1;" /> | ||
171 | - </linearGradient> | ||
172 | - <linearGradient | ||
173 | - id="linearGradient2873"> | ||
174 | - <stop | ||
175 | - id="stop2875" | ||
176 | - offset="0" | ||
177 | - style="stop-color:#939393;stop-opacity:1;" /> | ||
178 | - <stop | ||
179 | - id="stop2877" | ||
180 | - offset="1" | ||
181 | - style="stop-color:#424242;stop-opacity:1;" /> | ||
182 | - </linearGradient> | ||
183 | - <linearGradient | ||
184 | - id="linearGradient2865" | ||
185 | - inkscape:collect="always"> | ||
186 | - <stop | ||
187 | - id="stop2867" | ||
188 | - offset="0" | ||
189 | - style="stop-color:#000000;stop-opacity:1;" /> | ||
190 | - <stop | ||
191 | - id="stop2869" | ||
192 | - offset="1" | ||
193 | - style="stop-color:#000000;stop-opacity:0;" /> | ||
194 | - </linearGradient> | ||
195 | - <linearGradient | ||
196 | - id="linearGradient2855"> | ||
197 | - <stop | ||
198 | - id="stop2857" | ||
199 | - offset="0" | ||
200 | - style="stop-color:#dfdfdf;stop-opacity:1;" /> | ||
201 | - <stop | ||
202 | - id="stop2859" | ||
203 | - offset="1" | ||
204 | - style="stop-color:#ffffff;stop-opacity:1;" /> | ||
205 | - </linearGradient> | ||
206 | - <linearGradient | ||
207 | - gradientTransform="matrix(1.137871,0.000000,0.000000,1.000000,-2.660884,0.000000)" | ||
208 | - gradientUnits="userSpaceOnUse" | ||
209 | - y2="6.8333683" | ||
210 | - x2="14.283642" | ||
211 | - y1="42.83337" | ||
212 | - x1="21.043484" | ||
213 | - id="linearGradient2861" | ||
214 | - xlink:href="#linearGradient2855" | ||
215 | - inkscape:collect="always" /> | ||
216 | - <radialGradient | ||
217 | - gradientUnits="userSpaceOnUse" | ||
218 | - gradientTransform="matrix(1.000000,0.000000,0.000000,0.348243,0.000000,26.35543)" | ||
219 | - r="19.5625" | ||
220 | - fy="40.4375" | ||
221 | - fx="23.5625" | ||
222 | - cy="40.4375" | ||
223 | - cx="23.5625" | ||
224 | - id="radialGradient2871" | ||
225 | - xlink:href="#linearGradient2865" | ||
226 | - inkscape:collect="always" /> | ||
227 | - <linearGradient | ||
228 | - gradientUnits="userSpaceOnUse" | ||
229 | - y2="42.83337" | ||
230 | - x2="26.228401" | ||
231 | - y1="28.083368" | ||
232 | - x1="26.612417" | ||
233 | - id="linearGradient2879" | ||
234 | - xlink:href="#linearGradient2873" | ||
235 | - inkscape:collect="always" /> | ||
236 | - <linearGradient | ||
237 | - gradientUnits="userSpaceOnUse" | ||
238 | - y2="7.5624999" | ||
239 | - x2="40.984375" | ||
240 | - y1="7.5624999" | ||
241 | - x1="6" | ||
242 | - id="linearGradient2925" | ||
243 | - xlink:href="#linearGradient2919" | ||
244 | - inkscape:collect="always" /> | ||
245 | - <linearGradient | ||
246 | - gradientTransform="translate(-5.669292,0.000000)" | ||
247 | - gradientUnits="userSpaceOnUse" | ||
248 | - y2="22.250591" | ||
249 | - x2="50.988335" | ||
250 | - y1="17.376184" | ||
251 | - x1="48.90625" | ||
252 | - id="linearGradient2972" | ||
253 | - xlink:href="#linearGradient2966" | ||
254 | - inkscape:collect="always" /> | ||
255 | - <linearGradient | ||
256 | - gradientTransform="translate(-5.669292,0.000000)" | ||
257 | - gradientUnits="userSpaceOnUse" | ||
258 | - y2="22.625" | ||
259 | - x2="47.6875" | ||
260 | - y1="19.8125" | ||
261 | - x1="46" | ||
262 | - id="linearGradient2980" | ||
263 | - xlink:href="#linearGradient2974" | ||
264 | - inkscape:collect="always" /> | ||
265 | - <radialGradient | ||
266 | - gradientUnits="userSpaceOnUse" | ||
267 | - gradientTransform="matrix(2.923565,-3.911409e-24,2.471769e-23,2.029717,-61.55532,-27.88417)" | ||
268 | - r="3.2408544" | ||
269 | - fy="27.640751" | ||
270 | - fx="29.053354" | ||
271 | - cy="27.640751" | ||
272 | - cx="29.053354" | ||
273 | - id="radialGradient2990" | ||
274 | - xlink:href="#linearGradient2984" | ||
275 | - inkscape:collect="always" /> | ||
276 | - <linearGradient | ||
277 | - gradientTransform="translate(-5.825542,0.125000)" | ||
278 | - gradientUnits="userSpaceOnUse" | ||
279 | - y2="30.703125" | ||
280 | - x2="25.514589" | ||
281 | - y1="31.046875" | ||
282 | - x1="25.71875" | ||
283 | - id="linearGradient3000" | ||
284 | - xlink:href="#linearGradient2994" | ||
285 | - inkscape:collect="always" /> | ||
286 | - <radialGradient | ||
287 | - r="19.5625" | ||
288 | - fy="40.4375" | ||
289 | - fx="23.5625" | ||
290 | - cy="40.4375" | ||
291 | - cx="23.5625" | ||
292 | - gradientTransform="matrix(1.000000,0.000000,0.000000,0.348243,1.439818e-16,26.35543)" | ||
293 | - gradientUnits="userSpaceOnUse" | ||
294 | - id="radialGradient3010" | ||
295 | - xlink:href="#linearGradient2865" | ||
296 | - inkscape:collect="always" /> | ||
297 | - <linearGradient | ||
298 | - y2="609.50507" | ||
299 | - x2="302.85715" | ||
300 | - y1="366.64789" | ||
301 | - x1="302.85715" | ||
302 | - gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)" | ||
303 | - gradientUnits="userSpaceOnUse" | ||
304 | - id="linearGradient6715-635" | ||
305 | - xlink:href="#linearGradient5048-282" | ||
306 | - inkscape:collect="always" /> | ||
307 | - <linearGradient | ||
308 | - id="linearGradient5048-282"> | ||
309 | - <stop | ||
310 | - id="stop2506" | ||
311 | - offset="0" | ||
312 | - style="stop-color:#000000;stop-opacity:0;" /> | ||
313 | - <stop | ||
314 | - style="stop-color:#000000;stop-opacity:1;" | ||
315 | - offset="0.5" | ||
316 | - id="stop2508" /> | ||
317 | - <stop | ||
318 | - id="stop2510" | ||
319 | - offset="1" | ||
320 | - style="stop-color:#000000;stop-opacity:0;" /> | ||
321 | - </linearGradient> | ||
322 | - <radialGradient | ||
323 | - r="117.14286" | ||
324 | - fy="486.64789" | ||
325 | - fx="605.71429" | ||
326 | - cy="486.64789" | ||
327 | - cx="605.71429" | ||
328 | - gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)" | ||
329 | - gradientUnits="userSpaceOnUse" | ||
330 | - id="radialGradient6717-944" | ||
331 | - xlink:href="#linearGradient5060-14" | ||
332 | - inkscape:collect="always" /> | ||
333 | - <linearGradient | ||
334 | - id="linearGradient5060-14" | ||
335 | - inkscape:collect="always"> | ||
336 | - <stop | ||
337 | - id="stop2514" | ||
338 | - offset="0" | ||
339 | - style="stop-color:#000000;stop-opacity:1;" /> | ||
340 | - <stop | ||
341 | - id="stop2516" | ||
342 | - offset="1" | ||
343 | - style="stop-color:#000000;stop-opacity:0;" /> | ||
344 | - </linearGradient> | ||
345 | - <radialGradient | ||
346 | - r="117.14286" | ||
347 | - fy="486.64789" | ||
348 | - fx="605.71429" | ||
349 | - cy="486.64789" | ||
350 | - cx="605.71429" | ||
351 | - gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)" | ||
352 | - gradientUnits="userSpaceOnUse" | ||
353 | - id="radialGradient6719-778" | ||
354 | - xlink:href="#linearGradient5060-358" | ||
355 | - inkscape:collect="always" /> | ||
356 | - <linearGradient | ||
357 | - id="linearGradient5060-358" | ||
358 | - inkscape:collect="always"> | ||
359 | - <stop | ||
360 | - id="stop2520" | ||
361 | - offset="0" | ||
362 | - style="stop-color:#000000;stop-opacity:1;" /> | ||
363 | - <stop | ||
364 | - id="stop2522" | ||
365 | - offset="1" | ||
366 | - style="stop-color:#000000;stop-opacity:0;" /> | ||
367 | - </linearGradient> | ||
368 | - <linearGradient | ||
369 | - gradientTransform="matrix(1.137871,0.000000,0.000000,1.000000,-2.660884,0.000000)" | ||
370 | - gradientUnits="userSpaceOnUse" | ||
371 | - y2="6.8333683" | ||
372 | - x2="14.283642" | ||
373 | - y1="42.83337" | ||
374 | - x1="21.043484" | ||
375 | - id="linearGradient2861-627" | ||
376 | - xlink:href="#linearGradient2855-316" | ||
377 | - inkscape:collect="always" /> | ||
378 | - <linearGradient | ||
379 | - id="linearGradient2855-316"> | ||
380 | - <stop | ||
381 | - id="stop2526" | ||
382 | - offset="0" | ||
383 | - style="stop-color:#dfdfdf;stop-opacity:1;" /> | ||
384 | - <stop | ||
385 | - id="stop2528" | ||
386 | - offset="1" | ||
387 | - style="stop-color:#ffffff;stop-opacity:1;" /> | ||
388 | - </linearGradient> | ||
389 | - <linearGradient | ||
390 | - gradientUnits="userSpaceOnUse" | ||
391 | - y2="42.83337" | ||
392 | - x2="26.228401" | ||
393 | - y1="28.083368" | ||
394 | - x1="26.612417" | ||
395 | - id="linearGradient2879-751" | ||
396 | - xlink:href="#linearGradient2873-629" | ||
397 | - inkscape:collect="always" /> | ||
398 | - <linearGradient | ||
399 | - id="linearGradient2873-629"> | ||
400 | - <stop | ||
401 | - id="stop2532" | ||
402 | - offset="0" | ||
403 | - style="stop-color:#939393;stop-opacity:1;" /> | ||
404 | - <stop | ||
405 | - id="stop2534" | ||
406 | - offset="1" | ||
407 | - style="stop-color:#424242;stop-opacity:1;" /> | ||
408 | - </linearGradient> | ||
409 | - <radialGradient | ||
410 | - r="19.5625" | ||
411 | - fy="40.4375" | ||
412 | - fx="23.5625" | ||
413 | - cy="40.4375" | ||
414 | - cx="23.5625" | ||
415 | - gradientTransform="matrix(1.000000,0.000000,0.000000,0.348243,1.439818e-16,26.35543)" | ||
416 | - gradientUnits="userSpaceOnUse" | ||
417 | - id="radialGradient3010-591" | ||
418 | - xlink:href="#linearGradient2865-708" | ||
419 | - inkscape:collect="always" /> | ||
420 | - <linearGradient | ||
421 | - id="linearGradient2865-708" | ||
422 | - inkscape:collect="always"> | ||
423 | - <stop | ||
424 | - id="stop2538" | ||
425 | - offset="0" | ||
426 | - style="stop-color:#000000;stop-opacity:1;" /> | ||
427 | - <stop | ||
428 | - id="stop2540" | ||
429 | - offset="1" | ||
430 | - style="stop-color:#000000;stop-opacity:0;" /> | ||
431 | - </linearGradient> | ||
432 | - <linearGradient | ||
433 | - gradientUnits="userSpaceOnUse" | ||
434 | - y2="7.5624999" | ||
435 | - x2="40.984375" | ||
436 | - y1="7.5624999" | ||
437 | - x1="6" | ||
438 | - id="linearGradient2925-565" | ||
439 | - xlink:href="#linearGradient2919-578" | ||
440 | - inkscape:collect="always" /> | ||
441 | - <linearGradient | ||
442 | - id="linearGradient2919-578"> | ||
443 | - <stop | ||
444 | - id="stop2544" | ||
445 | - offset="0" | ||
446 | - style="stop-color:#a2a2a2;stop-opacity:1;" /> | ||
447 | - <stop | ||
448 | - id="stop2546" | ||
449 | - offset="1" | ||
450 | - style="stop-color:#878787;stop-opacity:1;" /> | ||
451 | - </linearGradient> | ||
452 | - <linearGradient | ||
453 | - gradientTransform="translate(-5.669292,0.000000)" | ||
454 | - gradientUnits="userSpaceOnUse" | ||
455 | - y2="22.250591" | ||
456 | - x2="50.988335" | ||
457 | - y1="17.376184" | ||
458 | - x1="48.90625" | ||
459 | - id="linearGradient2972-839" | ||
460 | - xlink:href="#linearGradient2966-498" | ||
461 | - inkscape:collect="always" /> | ||
462 | - <linearGradient | ||
463 | - id="linearGradient2966-498"> | ||
464 | - <stop | ||
465 | - id="stop2550" | ||
466 | - offset="0" | ||
467 | - style="stop-color:#e8e8e8;stop-opacity:1;" /> | ||
468 | - <stop | ||
469 | - style="stop-color:#8e8e8e;stop-opacity:1;" | ||
470 | - offset="0.5" | ||
471 | - id="stop2552" /> | ||
472 | - <stop | ||
473 | - id="stop2554" | ||
474 | - offset="1" | ||
475 | - style="stop-color:#373737;stop-opacity:1;" /> | ||
476 | - </linearGradient> | ||
477 | - <linearGradient | ||
478 | - gradientTransform="translate(-5.669292,0.000000)" | ||
479 | - gradientUnits="userSpaceOnUse" | ||
480 | - y2="22.625" | ||
481 | - x2="47.6875" | ||
482 | - y1="19.8125" | ||
483 | - x1="46" | ||
484 | - id="linearGradient2980-769" | ||
485 | - xlink:href="#linearGradient2974-591" | ||
486 | - inkscape:collect="always" /> | ||
487 | - <linearGradient | ||
488 | - id="linearGradient2974-591"> | ||
489 | - <stop | ||
490 | - id="stop2558" | ||
491 | - offset="0" | ||
492 | - style="stop-color:#c1c1c1;stop-opacity:1;" /> | ||
493 | - <stop | ||
494 | - id="stop2560" | ||
495 | - offset="1" | ||
496 | - style="stop-color:#acacac;stop-opacity:1;" /> | ||
497 | - </linearGradient> | ||
498 | - <radialGradient | ||
499 | - gradientUnits="userSpaceOnUse" | ||
500 | - gradientTransform="matrix(2.923565,-3.911409e-24,2.471769e-23,2.029717,-61.55532,-27.88417)" | ||
501 | - r="3.2408544" | ||
502 | - fy="27.640751" | ||
503 | - fx="29.053354" | ||
504 | - cy="27.640751" | ||
505 | - cx="29.053354" | ||
506 | - id="radialGradient2990-357" | ||
507 | - xlink:href="#linearGradient2984-123" | ||
508 | - inkscape:collect="always" /> | ||
509 | - <linearGradient | ||
510 | - id="linearGradient2984-123" | ||
511 | - inkscape:collect="always"> | ||
512 | - <stop | ||
513 | - id="stop2564" | ||
514 | - offset="0" | ||
515 | - style="stop-color:#cfcfcf;stop-opacity:1;" /> | ||
516 | - <stop | ||
517 | - id="stop2566" | ||
518 | - offset="1" | ||
519 | - style="stop-color:#cfcfcf;stop-opacity:0;" /> | ||
520 | - </linearGradient> | ||
521 | - <linearGradient | ||
522 | - gradientTransform="translate(-5.825542,0.125000)" | ||
523 | - gradientUnits="userSpaceOnUse" | ||
524 | - y2="30.703125" | ||
525 | - x2="25.514589" | ||
526 | - y1="31.046875" | ||
527 | - x1="25.71875" | ||
528 | - id="linearGradient3000-327" | ||
529 | - xlink:href="#linearGradient2994-689" | ||
530 | - inkscape:collect="always" /> | ||
531 | - <linearGradient | ||
532 | - id="linearGradient2994-689"> | ||
533 | - <stop | ||
534 | - id="stop2570" | ||
535 | - offset="0" | ||
536 | - style="stop-color:#000000;stop-opacity:1;" /> | ||
537 | - <stop | ||
538 | - id="stop2572" | ||
539 | - offset="1" | ||
540 | - style="stop-color:#c9c9c9;stop-opacity:1;" /> | ||
541 | - </linearGradient> | ||
542 | - </defs> | ||
543 | - <metadata | ||
544 | - id="metadata4"> | ||
545 | - <rdf:RDF> | ||
546 | - <cc:Work | ||
547 | - rdf:about=""> | ||
548 | - <dc:format>image/svg+xml</dc:format> | ||
549 | - <dc:type | ||
550 | - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | ||
551 | - <dc:creator> | ||
552 | - <cc:Agent> | ||
553 | - <dc:title>Jakub Steiner</dc:title> | ||
554 | - </cc:Agent> | ||
555 | - </dc:creator> | ||
556 | - <dc:source>http://jimmac.musichall.cz</dc:source> | ||
557 | - <cc:license | ||
558 | - rdf:resource="http://creativecommons.org/licenses/publicdomain/" /> | ||
559 | - <dc:title>Text Editor</dc:title> | ||
560 | - </cc:Work> | ||
561 | - <cc:License | ||
562 | - rdf:about="http://creativecommons.org/licenses/publicdomain/"> | ||
563 | - <cc:permits | ||
564 | - rdf:resource="http://creativecommons.org/ns#Reproduction" /> | ||
565 | - <cc:permits | ||
566 | - rdf:resource="http://creativecommons.org/ns#Distribution" /> | ||
567 | - <cc:permits | ||
568 | - rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /> | ||
569 | - </cc:License> | ||
570 | - </rdf:RDF> | ||
571 | - </metadata> | ||
572 | - <g | ||
573 | - inkscape:groupmode="layer" | ||
574 | - inkscape:label="Layer 1" | ||
575 | - id="layer1"> | ||
576 | - <g | ||
577 | - id="g6707" | ||
578 | - transform="matrix(2.417561e-2,0,0,2.086758e-2,45.12765,40.1536)"> | ||
579 | - <rect | ||
580 | - y="-150.69685" | ||
581 | - x="-1559.2523" | ||
582 | - height="478.35718" | ||
583 | - width="1339.6335" | ||
584 | - id="rect6709" | ||
585 | - style="opacity:0.40206185;color:black;fill:url(#linearGradient6715-635);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> | ||
586 | - <path | ||
587 | - sodipodi:nodetypes="cccc" | ||
588 | - id="path6711" | ||
589 | - d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z " | ||
590 | - style="opacity:0.40206185;color:black;fill:url(#radialGradient6717-944);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> | ||
591 | - <path | ||
592 | - style="opacity:0.40206185;color:black;fill:url(#radialGradient6719-778);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" | ||
593 | - d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z " | ||
594 | - id="path6713" | ||
595 | - sodipodi:nodetypes="cccc" /> | ||
596 | - </g> | ||
597 | - <path | ||
598 | - sodipodi:nodetypes="ccccccccccc" | ||
599 | - id="rect1975" | ||
600 | - d="M 7.1638699,4.5063726 L 39.813122,4.5063726 C 40.575699,4.5063726 41.189615,5.0388241 41.189615,5.7002099 C 41.189615,5.7002099 43.590945,39.868907 43.590945,39.868907 C 43.590945,39.868907 43.603403,42.216529 43.603403,42.216529 C 43.603403,42.877915 42.989488,43.410366 42.226911,43.410366 L 4.750081,43.410366 C 3.9875042,43.410366 3.3735887,42.877915 3.3735887,42.216529 L 3.3624173,40.049613 L 5.7873775,5.7002099 C 5.7873775,5.0388241 6.4012931,4.5063726 7.1638699,4.5063726 z " | ||
601 | - style="color:#000000;fill:url(#linearGradient2861-627);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient2879-751);stroke-width:0.99999982;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> | ||
602 | - <path | ||
603 | - sodipodi:type="arc" | ||
604 | - style="opacity:0.31578944;color:#000000;fill:url(#radialGradient3010-591);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" | ||
605 | - id="path3008" | ||
606 | - sodipodi:cx="23.5625" | ||
607 | - sodipodi:cy="40.4375" | ||
608 | - sodipodi:rx="19.5625" | ||
609 | - sodipodi:ry="6.8125" | ||
610 | - d="M 43.125 40.4375 A 19.5625 6.8125 0 1 1 4,40.4375 A 19.5625 6.8125 0 1 1 43.125 40.4375 z" | ||
611 | - transform="matrix(0.616613,0.000000,0.000000,0.440367,10.61425,13.94266)" /> | ||
612 | - <rect | ||
613 | - ry="0.67937863" | ||
614 | - rx="0.67937863" | ||
615 | - y="39.868271" | ||
616 | - x="3.9770372" | ||
617 | - height="3.0714951" | ||
618 | - width="39.048077" | ||
619 | - id="rect2851" | ||
620 | - style="opacity:1;color:#000000;fill:#a4a4a4;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> | ||
621 | - <path | ||
622 | - sodipodi:nodetypes="ccccccc" | ||
623 | - id="path2853" | ||
624 | - d="M 3.9267507,40.442796 C 3.9267507,40.442796 4.0776125,39.912466 4.6307727,39.868272 L 42.195375,39.868272 C 42.949684,39.868272 42.999971,40.619573 42.999971,40.619573 C 42.999971,40.619573 43.02357,39 41.7161,39 L 5.3042159,39 C 4.2984702,39.088388 3.9267507,39.779883 3.9267507,40.442796 z " | ||
625 | - style="opacity:1;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> | ||
626 | - <path | ||
627 | - sodipodi:nodetypes="ccccccccc" | ||
628 | - id="path2915" | ||
629 | - d="M 6.25,5.7343749 L 6,10.125 C 6,10.125 6.3125,8.9999999 7,8.9999999 L 40.125,8.9999999 C 40.828125,8.9843749 40.859375,9.3124999 40.984375,9.8281249 C 40.984375,9.8281249 40.734375,5.9531249 40.734375,5.9531249 C 40.703125,5.4062499 40.515625,4.9999999 39.953125,4.9999999 L 7.0625,4.9999999 C 6.609375,4.9999999 6.296875,5.3437499 6.25,5.7343749 z " | ||
630 | - style="opacity:1;color:#000000;fill:url(#linearGradient2925-565);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> | ||
631 | - <path | ||
632 | - style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.99999946;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;opacity:0.43859649" | ||
633 | - d="M 7.8126474,5.5404503 L 38.944983,5.5404503 C 39.66702,5.5404503 40.2483,5.3883462 40.2483,6.014572 C 40.2483,6.014572 42.521973,39.023077 42.521973,39.023077 C 42.521973,39.023077 42.622156,41.732033 42.622156,41.732033 C 42.622156,42.358259 42.48282,42.376269 41.760782,42.376269 L 4.8620444,42.376269 C 4.4493662,42.376269 4.4426114,42.269871 4.4426114,41.864615 L 4.4320338,39.194177 L 6.7280807,6.045822 C 6.7280807,5.4195962 7.09061,5.5404503 7.8126474,5.5404503 z " | ||
634 | - id="path2917" | ||
635 | - sodipodi:nodetypes="ccccccccccc" /> | ||
636 | - <g | ||
637 | - id="g2950"> | ||
638 | - <rect | ||
639 | - style="opacity:1;color:#000000;fill:#a5a5a5;fill-opacity:1;fill-rule:evenodd;stroke:#444444;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" | ||
640 | - id="rect2899" | ||
641 | - width="2" | ||
642 | - height="5" | ||
643 | - x="8.5" | ||
644 | - y="2.5" | ||
645 | - rx="1" | ||
646 | - ry="1" /> | ||
647 | - <rect | ||
648 | - ry="1" | ||
649 | - rx="1" | ||
650 | - y="2.5" | ||
651 | - x="12.5" | ||
652 | - height="5" | ||
653 | - width="2" | ||
654 | - id="rect2901" | ||
655 | - style="opacity:1;color:#000000;fill:#a5a5a5;fill-opacity:1;fill-rule:evenodd;stroke:#444444;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> | ||
656 | - <rect | ||
657 | - style="opacity:1;color:#000000;fill:#a5a5a5;fill-opacity:1;fill-rule:evenodd;stroke:#444444;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" | ||
658 | - id="rect2903" | ||
659 | - width="2" | ||
660 | - height="5" | ||
661 | - x="16.5" | ||
662 | - y="2.5" | ||
663 | - rx="1" | ||
664 | - ry="1" /> | ||
665 | - <rect | ||
666 | - ry="1" | ||
667 | - rx="1" | ||
668 | - y="2.5" | ||
669 | - x="20.5" | ||
670 | - height="5" | ||
671 | - width="2" | ||
672 | - id="rect2905" | ||
673 | - style="opacity:1;color:#000000;fill:#a5a5a5;fill-opacity:1;fill-rule:evenodd;stroke:#444444;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> | ||
674 | - <rect | ||
675 | - style="opacity:1;color:#000000;fill:#a5a5a5;fill-opacity:1;fill-rule:evenodd;stroke:#444444;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" | ||
676 | - id="rect2907" | ||
677 | - width="2" | ||
678 | - height="5" | ||
679 | - x="24.5" | ||
680 | - y="2.5" | ||
681 | - rx="1" | ||
682 | - ry="1" /> | ||
683 | - <rect | ||
684 | - ry="1" | ||
685 | - rx="1" | ||
686 | - y="2.5" | ||
687 | - x="28.5" | ||
688 | - height="5" | ||
689 | - width="2" | ||
690 | - id="rect2909" | ||
691 | - style="opacity:1;color:#000000;fill:#a5a5a5;fill-opacity:1;fill-rule:evenodd;stroke:#444444;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> | ||
692 | - <rect | ||
693 | - style="opacity:1;color:#000000;fill:#a5a5a5;fill-opacity:1;fill-rule:evenodd;stroke:#444444;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" | ||
694 | - id="rect2911" | ||
695 | - width="2" | ||
696 | - height="5" | ||
697 | - x="32.5" | ||
698 | - y="2.5" | ||
699 | - rx="1" | ||
700 | - ry="1" /> | ||
701 | - <rect | ||
702 | - ry="1" | ||
703 | - rx="1" | ||
704 | - y="2.5" | ||
705 | - x="36.5" | ||
706 | - height="5" | ||
707 | - width="2" | ||
708 | - id="rect2913" | ||
709 | - style="opacity:1;color:#000000;fill:#a5a5a5;fill-opacity:1;fill-rule:evenodd;stroke:#444444;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> | ||
710 | - </g> | ||
711 | - <g | ||
712 | - id="g2941"> | ||
713 | - <rect | ||
714 | - style="opacity:0.28070175;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" | ||
715 | - id="rect2927" | ||
716 | - width="29" | ||
717 | - height="1" | ||
718 | - x="9" | ||
719 | - y="12" /> | ||
720 | - <rect | ||
721 | - y="14.981792" | ||
722 | - x="9" | ||
723 | - height="1" | ||
724 | - width="29" | ||
725 | - id="rect2929" | ||
726 | - style="opacity:0.28070176;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> | ||
727 | - <rect | ||
728 | - style="opacity:0.28070176;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" | ||
729 | - id="rect2931" | ||
730 | - width="13" | ||
731 | - height="1" | ||
732 | - x="9" | ||
733 | - y="18.003939" /> | ||
734 | - <rect | ||
735 | - y="22.985731" | ||
736 | - x="9" | ||
737 | - height="1" | ||
738 | - width="29" | ||
739 | - id="rect2933" | ||
740 | - style="opacity:0.28070176;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> | ||
741 | - <rect | ||
742 | - style="opacity:0.28070176;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" | ||
743 | - id="rect2935" | ||
744 | - width="29" | ||
745 | - height="1" | ||
746 | - x="9" | ||
747 | - y="26.007877" /> | ||
748 | - <rect | ||
749 | - y="29.030024" | ||
750 | - x="9" | ||
751 | - height="1" | ||
752 | - width="29" | ||
753 | - id="rect2937" | ||
754 | - style="opacity:0.28070176;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> | ||
755 | - <rect | ||
756 | - style="opacity:0.28070176;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" | ||
757 | - id="rect2939" | ||
758 | - width="8" | ||
759 | - height="1" | ||
760 | - x="9" | ||
761 | - y="32.05217" /> | ||
762 | - </g> | ||
763 | - <path | ||
764 | - sodipodi:nodetypes="cccccc" | ||
765 | - id="path2960" | ||
766 | - d="M 17.34116,32.5 L 22.96616,26.875 L 43.059909,17.125 C 46.309909,15.875 48.247409,20.5 45.372409,22.125 L 25.34116,31.5 L 17.34116,32.5 z " | ||
767 | - style="opacity:1;color:#000000;fill:#767676;fill-opacity:1;fill-rule:evenodd;stroke:#343434;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> | ||
768 | - <path | ||
769 | - style="opacity:1;color:#000000;fill:url(#linearGradient2972-839);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" | ||
770 | - d="M 38.330708,20 C 38.330708,20 39.768208,20.09375 40.330708,21.34375 C 40.910201,22.631511 40.330708,24 40.330708,24 L 45.361958,21.53125 C 45.361958,21.53125 46.81399,20.649883 46.018208,18.6875 C 45.233296,16.751923 43.330708,17.53125 43.330708,17.53125 L 38.330708,20 z " | ||
771 | - id="path2964" | ||
772 | - sodipodi:nodetypes="czcczcc" /> | ||
773 | - <path | ||
774 | - sodipodi:nodetypes="czcczcc" | ||
775 | - id="path2962" | ||
776 | - d="M 38.330708,20 C 38.330708,20 39.768208,20.09375 40.330708,21.34375 C 40.910201,22.631511 40.330708,24 40.330708,24 L 42.330708,23 C 42.330708,23 43.15774,21.681133 42.549458,20.3125 C 41.924458,18.90625 40.330708,19 40.330708,19 L 38.330708,20 z " | ||
777 | - style="opacity:1;color:#000000;fill:url(#linearGradient2980-769);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> | ||
778 | - <path | ||
779 | - sodipodi:nodetypes="cccc" | ||
780 | - id="path2982" | ||
781 | - d="M 18.768208,31.78125 L 23.268208,27.28125 C 24.768208,28.09375 25.549458,29.4375 25.143208,31 L 18.768208,31.78125 z " | ||
782 | - style="opacity:1;color:#000000;fill:url(#radialGradient2990-357);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> | ||
783 | - <path | ||
784 | - sodipodi:nodetypes="cccc" | ||
785 | - id="path2992" | ||
786 | - d="M 20.111958,30.375 L 18.486958,31.96875 L 20.830708,31.65625 C 21.049458,30.9375 20.643208,30.59375 20.111958,30.375 z " | ||
787 | - style="opacity:1;color:#000000;fill:url(#linearGradient3000-327);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> | ||
788 | - <path | ||
789 | - sodipodi:nodetypes="ccccc" | ||
790 | - id="path3002" | ||
791 | - d="M 23.268208,27.25 L 24.830708,28.5 L 40.218048,21.18133 C 39.773616,20.325286 38.976281,20.096733 38.314669,20.019068 L 23.268208,27.25 z " | ||
792 | - style="opacity:1;color:#000000;fill:#ffffff;fill-opacity:0.36363639;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> | ||
793 | - <path | ||
794 | - sodipodi:nodetypes="ccccc" | ||
795 | - id="path3004" | ||
796 | - d="M 25.143208,31.0625 L 25.330708,30.3125 L 40.561798,23.1829 C 40.561798,23.1829 40.451638,23.796527 40.345919,23.93225 L 25.143208,31.0625 z " | ||
797 | - style="opacity:1;color:#000000;fill:#000000;fill-opacity:0.36363639;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> | ||
798 | - </g> | ||
799 | -</svg> |
public/javascripts/application.js
@@ -45,3 +45,28 @@ function convToValidIdentifier( str, sep ) { | @@ -45,3 +45,28 @@ function convToValidIdentifier( str, sep ) { | ||
45 | .replace( /ç/g, "c" ) | 45 | .replace( /ç/g, "c" ) |
46 | .replace( /[^-_a-z0-9.]+/g, sep ) | 46 | .replace( /[^-_a-z0-9.]+/g, sep ) |
47 | } | 47 | } |
48 | + | ||
49 | +function updateUrlField(name_field, id) { | ||
50 | + url_field = $(id); | ||
51 | + url_field.value = convToValidIdentifier(name_field.value, "-"); | ||
52 | + warn_value_change(url_field); | ||
53 | +} | ||
54 | + | ||
55 | +function show_warning(field, message) { | ||
56 | + new Effect.Highlight(field, {duration:3}); | ||
57 | + $(message).show(); | ||
58 | +} | ||
59 | + | ||
60 | +function hide_warning(field) { | ||
61 | + $(field).hide(); | ||
62 | +} | ||
63 | + | ||
64 | +function enable_button(button) { | ||
65 | + button.enable(); | ||
66 | + button.removeClassName("disabled"); | ||
67 | +} | ||
68 | + | ||
69 | +function disable_button(button) { | ||
70 | + button.disable(); | ||
71 | + button.addClassName("disabled"); | ||
72 | +} |
public/stylesheets/common.css
@@ -577,3 +577,21 @@ div.pending-tasks { | @@ -577,3 +577,21 @@ div.pending-tasks { | ||
577 | .post-date { | 577 | .post-date { |
578 | color: #E68A00; | 578 | color: #E68A00; |
579 | } | 579 | } |
580 | + | ||
581 | +/**** Change confirmation message ****/ | ||
582 | + | ||
583 | +.change-confirmation { | ||
584 | + background-color: #ef2929; | ||
585 | + border: 6px solid #a40000; | ||
586 | + padding: 20px; | ||
587 | + margin: 5px 30px 10px 30px; | ||
588 | +} | ||
589 | + | ||
590 | +.change-confirmation div { | ||
591 | + text-align: right; | ||
592 | + padding: 20px 10px 0px 0px; | ||
593 | +} | ||
594 | + | ||
595 | +code input { | ||
596 | + font-family: monospace; | ||
597 | +} |
public/stylesheets/controller_profile_editor.css
@@ -31,22 +31,6 @@ | @@ -31,22 +31,6 @@ | ||
31 | -moz-border-radius: 3px; | 31 | -moz-border-radius: 3px; |
32 | } | 32 | } |
33 | 33 | ||
34 | -#identifier-change-confirmation { | ||
35 | - background-color: #ef2929; | ||
36 | - border: 6px solid #a40000; | ||
37 | - padding: 20px; | ||
38 | - margin: 5px 30px 10px 30px; | ||
39 | -} | ||
40 | - | ||
41 | -#identifier-change-confirmation div { | ||
42 | - text-align: right; | ||
43 | - padding: 20px 10px 0px 0px; | ||
44 | -} | ||
45 | - | ||
46 | -code input { | ||
47 | - font-family: monospace; | ||
48 | -} | ||
49 | - | ||
50 | a.control-panel-groups { background-image: url(../images/control-panel/system-users.png) } | 34 | a.control-panel-groups { background-image: url(../images/control-panel/system-users.png) } |
51 | .msie6 a.control-panel-groups { background-image: url(../images/control-panel/system-users.gif) } | 35 | .msie6 a.control-panel-groups { background-image: url(../images/control-panel/system-users.gif) } |
52 | 36 |
test/functional/cms_controller_test.rb
@@ -583,7 +583,7 @@ class CmsControllerTest < Test::Unit::TestCase | @@ -583,7 +583,7 @@ class CmsControllerTest < Test::Unit::TestCase | ||
583 | should 'record when coming from public view on edit' do | 583 | should 'record when coming from public view on edit' do |
584 | article = @profile.articles.create!(:name => 'myarticle') | 584 | article = @profile.articles.create!(:name => 'myarticle') |
585 | 585 | ||
586 | - @request.expects(:referer).returns('http://colivre.net/testinguser/myarticle') | 586 | + @request.expects(:referer).returns('http://colivre.net/testinguser/myarticle').at_least_once |
587 | 587 | ||
588 | get :edit, :profile => 'testinguser', :id => article.id | 588 | get :edit, :profile => 'testinguser', :id => article.id |
589 | assert_tag :tag => 'input', :attributes => { :type => 'hidden', :name => 'back_to', :value => 'public_view' } | 589 | assert_tag :tag => 'input', :attributes => { :type => 'hidden', :name => 'back_to', :value => 'public_view' } |
@@ -591,7 +591,7 @@ class CmsControllerTest < Test::Unit::TestCase | @@ -591,7 +591,7 @@ class CmsControllerTest < Test::Unit::TestCase | ||
591 | end | 591 | end |
592 | 592 | ||
593 | should 'detect when comming from home page' do | 593 | should 'detect when comming from home page' do |
594 | - @request.expects(:referer).returns('http://colivre.net/testinguser') | 594 | + @request.expects(:referer).returns('http://colivre.net/testinguser').at_least_once |
595 | get :edit, :profile => 'testinguser', :id => @profile.home_page.id | 595 | get :edit, :profile => 'testinguser', :id => @profile.home_page.id |
596 | assert_tag :tag => 'input', :attributes => { :type => 'hidden', :name => 'back_to', :value => 'public_view' } | 596 | assert_tag :tag => 'input', :attributes => { :type => 'hidden', :name => 'back_to', :value => 'public_view' } |
597 | assert_tag :tag => 'a', :descendant => { :content => 'Cancel' }, :attributes => { :href => /^https?:\/\/colivre.net\/testinguser\/#{@profile.home_page.slug}$/ } | 597 | assert_tag :tag => 'a', :descendant => { :content => 'Cancel' }, :attributes => { :href => /^https?:\/\/colivre.net\/testinguser\/#{@profile.home_page.slug}$/ } |
@@ -605,7 +605,7 @@ class CmsControllerTest < Test::Unit::TestCase | @@ -605,7 +605,7 @@ class CmsControllerTest < Test::Unit::TestCase | ||
605 | end | 605 | end |
606 | 606 | ||
607 | should 'record as coming from public view when creating article' do | 607 | should 'record as coming from public view when creating article' do |
608 | - @request.expects(:referer).returns('http://colivre.net/testinguser/testingusers-home-page') | 608 | + @request.expects(:referer).returns('http://colivre.net/testinguser/testingusers-home-page').at_least_once |
609 | get :new, :profile => 'testinguser', :type => 'TextileArticle' | 609 | get :new, :profile => 'testinguser', :type => 'TextileArticle' |
610 | assert_tag :tag => 'input', :attributes => { :type => 'hidden', :name => 'back_to', :value => 'public_view' } | 610 | assert_tag :tag => 'input', :attributes => { :type => 'hidden', :name => 'back_to', :value => 'public_view' } |
611 | assert_tag :tag => 'a', :descendant => { :content => 'Cancel' }, :attributes => { :href => 'http://colivre.net/testinguser/testingusers-home-page' } | 611 | assert_tag :tag => 'a', :descendant => { :content => 'Cancel' }, :attributes => { :href => 'http://colivre.net/testinguser/testingusers-home-page' } |
@@ -712,11 +712,6 @@ class CmsControllerTest < Test::Unit::TestCase | @@ -712,11 +712,6 @@ class CmsControllerTest < Test::Unit::TestCase | ||
712 | assert_no_tag :tag => 'div', :descendant => { :tag => 'h4', :content => 'Categorize your article' } | 712 | assert_no_tag :tag => 'div', :descendant => { :tag => 'h4', :content => 'Categorize your article' } |
713 | end | 713 | end |
714 | 714 | ||
715 | - should 'not display input name on create blog' do | ||
716 | - get :new, :profile => profile.identifier, :type => 'Blog' | ||
717 | - assert_no_tag :tag => 'input', :attributes => { :name => 'article[name]', :type => 'text' } | ||
718 | - end | ||
719 | - | ||
720 | should 'display posts per page input with default value on edit blog' do | 715 | should 'display posts per page input with default value on edit blog' do |
721 | n = Blog.new.posts_per_page.to_s | 716 | n = Blog.new.posts_per_page.to_s |
722 | get :new, :profile => profile.identifier, :type => 'Blog' | 717 | get :new, :profile => profile.identifier, :type => 'Blog' |
@@ -789,11 +784,6 @@ class CmsControllerTest < Test::Unit::TestCase | @@ -789,11 +784,6 @@ class CmsControllerTest < Test::Unit::TestCase | ||
789 | assert_equal 5, profile.blog.posts_per_page | 784 | assert_equal 5, profile.blog.posts_per_page |
790 | end | 785 | end |
791 | 786 | ||
792 | - should 'display input title on create blog' do | ||
793 | - get :new, :profile => profile.identifier, :type => 'Blog' | ||
794 | - assert_tag :tag => 'input', :attributes => { :name => 'article[title]', :type => 'text' } | ||
795 | - end | ||
796 | - | ||
797 | should "display 'New article' when create children of folder" do | 787 | should "display 'New article' when create children of folder" do |
798 | a = Folder.new(:name => 'article folder'); profile.articles << a; a.save! | 788 | a = Folder.new(:name => 'article folder'); profile.articles << a; a.save! |
799 | Article.stubs(:short_description).returns('bli') | 789 | Article.stubs(:short_description).returns('bli') |
@@ -868,7 +858,7 @@ class CmsControllerTest < Test::Unit::TestCase | @@ -868,7 +858,7 @@ class CmsControllerTest < Test::Unit::TestCase | ||
868 | should 'record when coming from public view on upload files' do | 858 | should 'record when coming from public view on upload files' do |
869 | folder = Folder.create!(:name => 'testfolder', :profile => profile) | 859 | folder = Folder.create!(:name => 'testfolder', :profile => profile) |
870 | 860 | ||
871 | - @request.expects(:referer).returns("http://colivre.net/#{profile.identifier}/#{folder.slug}") | 861 | + @request.expects(:referer).returns("http://colivre.net/#{profile.identifier}/#{folder.slug}").at_least_once |
872 | 862 | ||
873 | get :upload_files, :profile => profile.identifier, :parent_id => folder.id | 863 | get :upload_files, :profile => profile.identifier, :parent_id => folder.id |
874 | assert_tag :tag => 'input', :attributes => { :type => 'hidden', :name => 'back_to', :value => 'public_view' } | 864 | assert_tag :tag => 'input', :attributes => { :type => 'hidden', :name => 'back_to', :value => 'public_view' } |
@@ -931,14 +921,14 @@ class CmsControllerTest < Test::Unit::TestCase | @@ -931,14 +921,14 @@ class CmsControllerTest < Test::Unit::TestCase | ||
931 | end | 921 | end |
932 | 922 | ||
933 | should "display 'Fetch posts from an external feed' checked if blog has enabled external feed" do | 923 | should "display 'Fetch posts from an external feed' checked if blog has enabled external feed" do |
934 | - profile.articles << Blog.new(:title => 'test blog', :profile => profile) | 924 | + profile.articles << Blog.new(:name => 'test blog', :profile => profile) |
935 | profile.blog.create_external_feed(:address => 'address', :enabled => true) | 925 | profile.blog.create_external_feed(:address => 'address', :enabled => true) |
936 | get :edit, :profile => profile.identifier, :id => profile.blog.id | 926 | get :edit, :profile => profile.identifier, :id => profile.blog.id |
937 | assert_tag :tag => 'input', :attributes => { :name => 'article[external_feed_builder][enabled]', :checked => 'checked' } | 927 | assert_tag :tag => 'input', :attributes => { :name => 'article[external_feed_builder][enabled]', :checked => 'checked' } |
938 | end | 928 | end |
939 | 929 | ||
940 | should "display 'Fetch posts from an external feed' unchecked if blog has disabled external feed" do | 930 | should "display 'Fetch posts from an external feed' unchecked if blog has disabled external feed" do |
941 | - profile.articles << Blog.new(:title => 'test blog', :profile => profile) | 931 | + profile.articles << Blog.new(:name => 'test blog', :profile => profile) |
942 | profile.blog.create_external_feed(:address => 'address', :enabled => false) | 932 | profile.blog.create_external_feed(:address => 'address', :enabled => false) |
943 | get :edit, :profile => profile.identifier, :id => profile.blog.id | 933 | get :edit, :profile => profile.identifier, :id => profile.blog.id |
944 | assert_tag :tag => 'input', :attributes => { :name => 'article[external_feed_builder][enabled]', :checked => nil } | 934 | assert_tag :tag => 'input', :attributes => { :name => 'article[external_feed_builder][enabled]', :checked => nil } |
test/functional/content_viewer_controller_test.rb
@@ -719,14 +719,14 @@ class ContentViewerControllerTest < Test::Unit::TestCase | @@ -719,14 +719,14 @@ class ContentViewerControllerTest < Test::Unit::TestCase | ||
719 | 719 | ||
720 | should 'add meta tag to rss feed on view blog' do | 720 | should 'add meta tag to rss feed on view blog' do |
721 | login_as(profile.identifier) | 721 | login_as(profile.identifier) |
722 | - profile.articles << Blog.new(:title => 'article blog', :profile => profile) | 722 | + profile.articles << Blog.new(:name => 'Blog', :profile => profile) |
723 | get :view_page, :profile => profile.identifier, :page => ['blog'] | 723 | get :view_page, :profile => profile.identifier, :page => ['blog'] |
724 | assert_tag :tag => 'link', :attributes => { :rel => 'alternate', :type => 'application/rss+xml', :title => 'feed', :href => "http://#{environment.default_hostname}/testinguser/blog/feed" } | 724 | assert_tag :tag => 'link', :attributes => { :rel => 'alternate', :type => 'application/rss+xml', :title => 'feed', :href => "http://#{environment.default_hostname}/testinguser/blog/feed" } |
725 | end | 725 | end |
726 | 726 | ||
727 | should 'add meta tag to rss feed on view post blog' do | 727 | should 'add meta tag to rss feed on view post blog' do |
728 | login_as(profile.identifier) | 728 | login_as(profile.identifier) |
729 | - profile.articles << Blog.new(:name => 'article folder', :profile => profile) | 729 | + profile.articles << Blog.new(:name => 'Blog', :profile => profile) |
730 | profile.blog.posts << TextileArticle.new(:name => 'first post', :parent => profile.blog, :profile => profile) | 730 | profile.blog.posts << TextileArticle.new(:name => 'first post', :parent => profile.blog, :profile => profile) |
731 | get :view_page, :profile => profile.identifier, :page => ['blog', 'first-post'] | 731 | get :view_page, :profile => profile.identifier, :page => ['blog', 'first-post'] |
732 | assert_tag :tag => 'link', :attributes => { :rel => 'alternate', :type => 'application/rss+xml', :title => 'feed', :href => "http://#{environment.default_hostname}/testinguser/blog/feed" } | 732 | assert_tag :tag => 'link', :attributes => { :rel => 'alternate', :type => 'application/rss+xml', :title => 'feed', :href => "http://#{environment.default_hostname}/testinguser/blog/feed" } |
test/functional/tasks_controller_test.rb
@@ -208,8 +208,8 @@ class TasksControllerTest < Test::Unit::TestCase | @@ -208,8 +208,8 @@ class TasksControllerTest < Test::Unit::TestCase | ||
208 | @controller.stubs(:profile).returns(c) | 208 | @controller.stubs(:profile).returns(c) |
209 | c.affiliate(profile, Profile::Roles.all_roles(c.environment)) | 209 | c.affiliate(profile, Profile::Roles.all_roles(c.environment)) |
210 | person = create_user('test_user').person | 210 | person = create_user('test_user').person |
211 | - p_blog = Blog.create!(:profile => person) | ||
212 | - c_blog1 = Blog.create!(:profile => c) | 211 | + p_blog = Blog.create!(:profile => person, :name => 'Blog') |
212 | + c_blog1 = Blog.create!(:profile => c, :name => 'Blog') | ||
213 | c_blog2 = Blog.new(:profile => c); c_blog2.name = 'blog2'; c_blog2.save! | 213 | c_blog2 = Blog.new(:profile => c); c_blog2.name = 'blog2'; c_blog2.save! |
214 | 214 | ||
215 | article = person.articles.create!(:name => 'test article', :parent => p_blog) | 215 | article = person.articles.create!(:name => 'test article', :parent => p_blog) |
test/unit/article_test.rb
@@ -794,4 +794,11 @@ class ArticleTest < Test::Unit::TestCase | @@ -794,4 +794,11 @@ class ArticleTest < Test::Unit::TestCase | ||
794 | assert a.allow_post_content?(p) | 794 | assert a.allow_post_content?(p) |
795 | end | 795 | end |
796 | 796 | ||
797 | + should 'update slug from name' do | ||
798 | + article = Article.create!(:name => 'A test article', :profile => profile) | ||
799 | + assert_equal 'a-test-article', article.slug | ||
800 | + article.name = 'Changed name' | ||
801 | + assert_equal 'changed-name', article.slug | ||
802 | + end | ||
803 | + | ||
797 | end | 804 | end |
test/unit/blog_archives_block_test.rb
@@ -4,7 +4,7 @@ class BlogArchivesBlockTest < ActiveSupport::TestCase | @@ -4,7 +4,7 @@ class BlogArchivesBlockTest < ActiveSupport::TestCase | ||
4 | 4 | ||
5 | def setup | 5 | def setup |
6 | @profile = create_user('flatline').person | 6 | @profile = create_user('flatline').person |
7 | - @profile.articles << Blog.new(:name => 'blog-test', :profile => @profile) | 7 | + @profile.articles << Blog.new(:name => 'Blog One', :profile => @profile) |
8 | end | 8 | end |
9 | attr_reader :profile | 9 | attr_reader :profile |
10 | 10 | ||
@@ -34,11 +34,11 @@ class BlogArchivesBlockTest < ActiveSupport::TestCase | @@ -34,11 +34,11 @@ class BlogArchivesBlockTest < ActiveSupport::TestCase | ||
34 | blog = profile.blog | 34 | blog = profile.blog |
35 | for i in 1..10 do | 35 | for i in 1..10 do |
36 | post = TextileArticle.create!(:name => "post #{i} test", :profile => profile, :parent => blog) | 36 | post = TextileArticle.create!(:name => "post #{i} test", :profile => profile, :parent => blog) |
37 | - post.update_attribute(:published_at, date) | 37 | + assert post.update_attribute(:published_at, date) |
38 | end | 38 | end |
39 | block = BlogArchivesBlock.new | 39 | block = BlogArchivesBlock.new |
40 | block.stubs(:owner).returns(profile) | 40 | block.stubs(:owner).returns(profile) |
41 | - assert_tag_in_string block.content, :tag => 'a', :content => 'January (10)', :attributes => {:href => /^http:\/\/.*\/flatline\/blog\?month=01&year=2008$/ } | 41 | + assert_tag_in_string block.content, :tag => 'a', :content => 'January (10)', :attributes => {:href => /^http:\/\/.*\/flatline\/blog-one\?month=01&year=2008$/ } |
42 | end | 42 | end |
43 | 43 | ||
44 | should 'order list of amount posts' do | 44 | should 'order list of amount posts' do |
@@ -77,11 +77,29 @@ class BlogArchivesBlockTest < ActiveSupport::TestCase | @@ -77,11 +77,29 @@ class BlogArchivesBlockTest < ActiveSupport::TestCase | ||
77 | end | 77 | end |
78 | 78 | ||
79 | should 'not display any content if has no blog' do | 79 | should 'not display any content if has no blog' do |
80 | - profile.stubs(:has_blog?).returns(false) | ||
81 | - assert !profile.has_blog? | 80 | + profile.blogs.destroy_all |
82 | block = BlogArchivesBlock.new | 81 | block = BlogArchivesBlock.new |
83 | block.stubs(:owner).returns(profile) | 82 | block.stubs(:owner).returns(profile) |
84 | assert_nil block.content | 83 | assert_nil block.content |
85 | end | 84 | end |
86 | 85 | ||
86 | + should 'has field to configure blog' do | ||
87 | + b = BlogArchivesBlock.new | ||
88 | + assert b.respond_to?(:blog_id) | ||
89 | + assert b.respond_to?(:blog_id=) | ||
90 | + end | ||
91 | + | ||
92 | + should 'show posts from first blog' do | ||
93 | + (blog_one, blog_two) = profile.blogs | ||
94 | + profile.articles << Blog.new(:name => 'Blog Two', :profile => profile) | ||
95 | + for month in 1..3 | ||
96 | + TextileArticle.create!(:name => "blog one - post #{month}", :profile => profile, :parent => blog_one) | ||
97 | + TextileArticle.create!(:name => "blog two - post #{month}", :profile => profile, :parent => blog_two) | ||
98 | + end | ||
99 | + block = BlogArchivesBlock.new | ||
100 | + block.stubs(:owner).returns(profile) | ||
101 | + assert_match(/blog-one/m, block.content) | ||
102 | + assert_no_match(/blog-two/m, block.content) | ||
103 | + end | ||
104 | + | ||
87 | end | 105 | end |
test/unit/blog_test.rb
@@ -139,4 +139,20 @@ class BlogTest < ActiveSupport::TestCase | @@ -139,4 +139,20 @@ class BlogTest < ActiveSupport::TestCase | ||
139 | end | 139 | end |
140 | end | 140 | end |
141 | 141 | ||
142 | + should 'profile has more then one blog' do | ||
143 | + p = create_user('testuser').person | ||
144 | + Blog.create!(:name => 'Blog test', :profile => p) | ||
145 | + assert_nothing_raised ActiveRecord::RecordInvalid do | ||
146 | + Blog.create!(:name => 'Another Blog', :profile => p) | ||
147 | + end | ||
148 | + end | ||
149 | + | ||
150 | + should 'not update slug from name for existing blog' do | ||
151 | + p = create_user('testuser').person | ||
152 | + blog = Blog.create!(:name => 'Blog test', :profile => p) | ||
153 | + assert_equal 'blog-test', blog.slug | ||
154 | + blog.name = 'Changed name' | ||
155 | + assert_not_equal 'changed-name', blog.slug | ||
156 | + end | ||
157 | + | ||
142 | end | 158 | end |
test/unit/profile_test.rb
@@ -1393,6 +1393,15 @@ class ProfileTest < Test::Unit::TestCase | @@ -1393,6 +1393,15 @@ class ProfileTest < Test::Unit::TestCase | ||
1393 | assert_equal [c], profile.categories | 1393 | assert_equal [c], profile.categories |
1394 | end | 1394 | end |
1395 | 1395 | ||
1396 | + should 'get first blog when has multiple blogs' do | ||
1397 | + p = create_user('testuser').person | ||
1398 | + p.blogs << Blog.new(:profile => p, :name => 'Blog one') | ||
1399 | + p.blogs << Blog.new(:profile => p, :name => 'Blog two') | ||
1400 | + p.blogs << Blog.new(:profile => p, :name => 'Blog three') | ||
1401 | + assert_equal 'Blog one', p.blog.name | ||
1402 | + assert_equal 3, p.blogs.count | ||
1403 | + end | ||
1404 | + | ||
1396 | private | 1405 | private |
1397 | 1406 | ||
1398 | def assert_invalid_identifier(id) | 1407 | def assert_invalid_identifier(id) |