Commit 907bb8d2c28353bcbc14da35e6d26b5caa023ab2
Committed by
Antonio Terceiro
1 parent
666aae2c
Exists in
master
and in
23 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 | 275 | elsif @article.parent |
| 276 | 276 | redirect_to :action => 'view', :id => @article.parent |
| 277 | 277 | else |
| 278 | - redirect_to :action => 'index' | |
| 278 | + redirect_back_or_default :action => 'index' | |
| 279 | 279 | end |
| 280 | 280 | end |
| 281 | 281 | |
| ... | ... | @@ -286,6 +286,9 @@ class CmsController < MyProfileController |
| 286 | 286 | @back_to = 'public_view' |
| 287 | 287 | @back_url = @article.view_url |
| 288 | 288 | end |
| 289 | + if !request.post? and @article.blog? | |
| 290 | + store_location(request.referer) | |
| 291 | + end | |
| 289 | 292 | end |
| 290 | 293 | |
| 291 | 294 | def record_creating_from_public_view |
| ... | ... | @@ -294,6 +297,9 @@ class CmsController < MyProfileController |
| 294 | 297 | @back_to = 'public_view' |
| 295 | 298 | @back_url = referer |
| 296 | 299 | end |
| 300 | + if !request.post? and @article.blog? | |
| 301 | + store_location(request.referer) | |
| 302 | + end | |
| 297 | 303 | end |
| 298 | 304 | |
| 299 | 305 | def maybe_ssl(url) | ... | ... |
app/models/blog.rb
| ... | ... | @@ -11,12 +11,6 @@ class Blog < Folder |
| 11 | 11 | end |
| 12 | 12 | |
| 13 | 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 | 15 | def self.short_description |
| 22 | 16 | _('Blog') |
| ... | ... | @@ -96,4 +90,13 @@ class Blog < Folder |
| 96 | 90 | end |
| 97 | 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 | 102 | end | ... | ... |
app/models/blog_archives_block.rb
| ... | ... | @@ -14,21 +14,27 @@ class BlogArchivesBlock < Block |
| 14 | 14 | _('Blog posts') |
| 15 | 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 | 23 | def content |
| 18 | - return nil unless owner.has_blog? | |
| 24 | + owner_blog = self.blog | |
| 25 | + return nil unless owner_blog | |
| 19 | 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 | 28 | results << content_tag('li', content_tag('strong', "#{year} (#{results_by_year.size})")) |
| 23 | 29 | results << "<ul class='#{year}-archive'>" |
| 24 | 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 | 32 | end |
| 27 | 33 | results << "</ul>" |
| 28 | 34 | end |
| 29 | 35 | block_title(title) + |
| 30 | 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 | 38 | end |
| 33 | 39 | |
| 34 | 40 | end | ... | ... |
app/models/profile.rb
| ... | ... | @@ -590,14 +590,14 @@ private :generate_url, :url_options |
| 590 | 590 | LayoutTemplate.find(layout_template).number_of_boxes |
| 591 | 591 | end |
| 592 | 592 | |
| 593 | + has_many :blogs, :source => 'articles', :class_name => 'Blog' | |
| 594 | + | |
| 593 | 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 | 597 | end |
| 598 | 598 | |
| 599 | 599 | def has_blog? |
| 600 | - !self.articles.count(:conditions => {:type => 'Blog'}).zero? | |
| 600 | + self.blogs.count.nonzero? | |
| 601 | 601 | end |
| 602 | 602 | |
| 603 | 603 | def admins | ... | ... |
app/views/cms/_blog.rhtml
| ... | ... | @@ -4,7 +4,51 @@ |
| 4 | 4 | |
| 5 | 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 | 53 | <%= labelled_form_field(_('Description:'), text_area(:article, :body, :cols => 64, :rows => 10)) %> |
| 10 | 54 | |
| ... | ... | @@ -34,5 +78,3 @@ |
| 34 | 78 | </div> |
| 35 | 79 | </div> |
| 36 | 80 | <% end %> |
| 37 | - | |
| 38 | -<%= javascript_tag "$('back_to').value = 'control_panel'" %> | ... | ... |
app/views/cms/edit.rhtml
| ... | ... | @@ -37,7 +37,9 @@ |
| 37 | 37 | |
| 38 | 38 | <% button_bar do %> |
| 39 | 39 | <%= submit_button :save, _('Save') %> |
| 40 | - <% if @back_url %> | |
| 40 | + <% if @return_to %> | |
| 41 | + <%= button :cancel, _('Cancel'), @return_to %> | |
| 42 | + <% elsif @back_url %> | |
| 41 | 43 | <%= button :cancel, _('Cancel'), @back_url %> |
| 42 | 44 | <% elsif @parent_id || @article.parent %> |
| 43 | 45 | <%= button :cancel, _('Cancel'), :action => 'view', :id => @parent_id || @article.parent %> | ... | ... |
app/views/cms/view.rhtml
| ... | ... | @@ -7,6 +7,7 @@ |
| 7 | 7 | |
| 8 | 8 | <% if !@article or !@article.blog? %> |
| 9 | 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 | 11 | <%= button('upload-file', _('Upload files'), :action => 'upload_files', :parent_id => parent_id) %> |
| 11 | 12 | <% end %> |
| 12 | 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 | 2 | |
| 3 | 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 | 5 | <div class="formfieldline"> |
| 16 | 6 | <label class="formlabel" for="profile_data_nickname"><%= _('Display name') %></label> |
| 17 | 7 | <div class="formfield type-text"> |
| ... | ... | @@ -23,33 +13,42 @@ |
| 23 | 13 | <% if @environment.enabled?('enable_organization_url_change') %> |
| 24 | 14 | <script type="text/javascript"> |
| 25 | 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 | 32 | </script> |
| 42 | 33 | |
| 43 | 34 | <%= hidden_field_tag 'old_profile_identifier', @profile.identifier %> |
| 44 | 35 | <div id="profile-identifier-formitem"> |
| 45 | 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 | 54 | </div> | ... | ... |
app/views/profile_editor/index.rhtml
| ... | ... | @@ -27,11 +27,14 @@ |
| 27 | 27 | <%= control_panel_button(_('Manage Content'), 'cms', :controller => 'cms') if !environment.enabled?('disable_cms') || profile.community? %> |
| 28 | 28 | |
| 29 | 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 | 38 | <% end %> |
| 36 | 39 | |
| 37 | 40 | <%= control_panel_button(_('Change Password'), 'change-password', :controller => 'account', :action => 'change_password') if profile.person? %> | ... | ... |
| ... | ... | @@ -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 | 9 | # |
| 10 | 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 | 14 | create_table "article_versions", :force => true do |t| |
| 15 | 15 | t.integer "article_id" | ... | ... |
| ... | ... | @@ -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 @@ |
| 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 | 19 | end |
| 20 | 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 | 32 | klass = { |
| 24 | 33 | 'articles' => TextileArticle, |
| 25 | 34 | 'events' => Event, |
| 35 | + 'blogs' => Blog, | |
| 26 | 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 | 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 | 53 | end |
| 33 | 54 | end |
| 34 | 55 | |
| ... | ... | @@ -40,3 +61,8 @@ Given /^the following products$/ do |table| |
| 40 | 61 | end |
| 41 | 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
features/support/paths.rb
| ... | ... | @@ -13,7 +13,16 @@ module NavigationHelpers |
| 13 | 13 | |
| 14 | 14 | when /^\// |
| 15 | 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 | 26 | # Add more mappings here. |
| 18 | 27 | # Here is a more fancy example: |
| 19 | 28 | # | ... | ... |
lib/acts_as_filesystem.rb
| ... | ... | @@ -97,13 +97,16 @@ module ActsAsFileSystem |
| 97 | 97 | self.children.empty? |
| 98 | 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 | 101 | if self.name != value |
| 103 | 102 | self.recalculate_path = true |
| 104 | 103 | end |
| 105 | - | |
| 106 | 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 | 110 | unless self.name.blank? |
| 108 | 111 | self.slug = self.name.to_slug |
| 109 | 112 | end | ... | ... |
lib/authenticated_system.rb
| ... | ... | @@ -80,7 +80,7 @@ module AuthenticatedSystem |
| 80 | 80 | # |
| 81 | 81 | # We can return to this location by calling #redirect_back_or_default. |
| 82 | 82 | def store_location(location = request.request_uri) |
| 83 | - session[:return_to] = location | |
| 83 | + @return_to = session[:return_to] = location | |
| 84 | 84 | end |
| 85 | 85 | |
| 86 | 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 @@ |
| 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 | 5 | .icon-new { background-image: url(Tango/16x16/actions/filenew.png) } |
| 6 | 6 | .icon-close { background-image: url(Tango/16x16/actions/gtk-cancel.png) } |
| 7 | 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 | 9 | /*.icon-open { background-image: url(folder-open.gif) } UNUSED*/ |
| 9 | 10 | /*.icon-cms { background-image: url(abiword_48.png) } UNUSED*/ |
| 10 | 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 | -<?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 | 45 | .replace( /ç/g, "c" ) |
| 46 | 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 | 577 | .post-date { |
| 578 | 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 | 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 | 34 | a.control-panel-groups { background-image: url(../images/control-panel/system-users.png) } |
| 51 | 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 | 583 | should 'record when coming from public view on edit' do |
| 584 | 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 | 588 | get :edit, :profile => 'testinguser', :id => article.id |
| 589 | 589 | assert_tag :tag => 'input', :attributes => { :type => 'hidden', :name => 'back_to', :value => 'public_view' } |
| ... | ... | @@ -591,7 +591,7 @@ class CmsControllerTest < Test::Unit::TestCase |
| 591 | 591 | end |
| 592 | 592 | |
| 593 | 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 | 595 | get :edit, :profile => 'testinguser', :id => @profile.home_page.id |
| 596 | 596 | assert_tag :tag => 'input', :attributes => { :type => 'hidden', :name => 'back_to', :value => 'public_view' } |
| 597 | 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 | 605 | end |
| 606 | 606 | |
| 607 | 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 | 609 | get :new, :profile => 'testinguser', :type => 'TextileArticle' |
| 610 | 610 | assert_tag :tag => 'input', :attributes => { :type => 'hidden', :name => 'back_to', :value => 'public_view' } |
| 611 | 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 | 712 | assert_no_tag :tag => 'div', :descendant => { :tag => 'h4', :content => 'Categorize your article' } |
| 713 | 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 | 715 | should 'display posts per page input with default value on edit blog' do |
| 721 | 716 | n = Blog.new.posts_per_page.to_s |
| 722 | 717 | get :new, :profile => profile.identifier, :type => 'Blog' |
| ... | ... | @@ -789,11 +784,6 @@ class CmsControllerTest < Test::Unit::TestCase |
| 789 | 784 | assert_equal 5, profile.blog.posts_per_page |
| 790 | 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 | 787 | should "display 'New article' when create children of folder" do |
| 798 | 788 | a = Folder.new(:name => 'article folder'); profile.articles << a; a.save! |
| 799 | 789 | Article.stubs(:short_description).returns('bli') |
| ... | ... | @@ -868,7 +858,7 @@ class CmsControllerTest < Test::Unit::TestCase |
| 868 | 858 | should 'record when coming from public view on upload files' do |
| 869 | 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 | 863 | get :upload_files, :profile => profile.identifier, :parent_id => folder.id |
| 874 | 864 | assert_tag :tag => 'input', :attributes => { :type => 'hidden', :name => 'back_to', :value => 'public_view' } |
| ... | ... | @@ -931,14 +921,14 @@ class CmsControllerTest < Test::Unit::TestCase |
| 931 | 921 | end |
| 932 | 922 | |
| 933 | 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 | 925 | profile.blog.create_external_feed(:address => 'address', :enabled => true) |
| 936 | 926 | get :edit, :profile => profile.identifier, :id => profile.blog.id |
| 937 | 927 | assert_tag :tag => 'input', :attributes => { :name => 'article[external_feed_builder][enabled]', :checked => 'checked' } |
| 938 | 928 | end |
| 939 | 929 | |
| 940 | 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 | 932 | profile.blog.create_external_feed(:address => 'address', :enabled => false) |
| 943 | 933 | get :edit, :profile => profile.identifier, :id => profile.blog.id |
| 944 | 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 | 719 | |
| 720 | 720 | should 'add meta tag to rss feed on view blog' do |
| 721 | 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 | 723 | get :view_page, :profile => profile.identifier, :page => ['blog'] |
| 724 | 724 | assert_tag :tag => 'link', :attributes => { :rel => 'alternate', :type => 'application/rss+xml', :title => 'feed', :href => "http://#{environment.default_hostname}/testinguser/blog/feed" } |
| 725 | 725 | end |
| 726 | 726 | |
| 727 | 727 | should 'add meta tag to rss feed on view post blog' do |
| 728 | 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 | 730 | profile.blog.posts << TextileArticle.new(:name => 'first post', :parent => profile.blog, :profile => profile) |
| 731 | 731 | get :view_page, :profile => profile.identifier, :page => ['blog', 'first-post'] |
| 732 | 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 | 208 | @controller.stubs(:profile).returns(c) |
| 209 | 209 | c.affiliate(profile, Profile::Roles.all_roles(c.environment)) |
| 210 | 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 | 213 | c_blog2 = Blog.new(:profile => c); c_blog2.name = 'blog2'; c_blog2.save! |
| 214 | 214 | |
| 215 | 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 | 794 | assert a.allow_post_content?(p) |
| 795 | 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 | 804 | end | ... | ... |
test/unit/blog_archives_block_test.rb
| ... | ... | @@ -4,7 +4,7 @@ class BlogArchivesBlockTest < ActiveSupport::TestCase |
| 4 | 4 | |
| 5 | 5 | def setup |
| 6 | 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 | 8 | end |
| 9 | 9 | attr_reader :profile |
| 10 | 10 | |
| ... | ... | @@ -34,11 +34,11 @@ class BlogArchivesBlockTest < ActiveSupport::TestCase |
| 34 | 34 | blog = profile.blog |
| 35 | 35 | for i in 1..10 do |
| 36 | 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 | 38 | end |
| 39 | 39 | block = BlogArchivesBlock.new |
| 40 | 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 | 42 | end |
| 43 | 43 | |
| 44 | 44 | should 'order list of amount posts' do |
| ... | ... | @@ -77,11 +77,29 @@ class BlogArchivesBlockTest < ActiveSupport::TestCase |
| 77 | 77 | end |
| 78 | 78 | |
| 79 | 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 | 81 | block = BlogArchivesBlock.new |
| 83 | 82 | block.stubs(:owner).returns(profile) |
| 84 | 83 | assert_nil block.content |
| 85 | 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 | 105 | end | ... | ... |
test/unit/blog_test.rb
| ... | ... | @@ -139,4 +139,20 @@ class BlogTest < ActiveSupport::TestCase |
| 139 | 139 | end |
| 140 | 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 | 158 | end | ... | ... |
test/unit/profile_test.rb
| ... | ... | @@ -1393,6 +1393,15 @@ class ProfileTest < Test::Unit::TestCase |
| 1393 | 1393 | assert_equal [c], profile.categories |
| 1394 | 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 | 1405 | private |
| 1397 | 1406 | |
| 1398 | 1407 | def assert_invalid_identifier(id) | ... | ... |