Commit 907bb8d2c28353bcbc14da35e6d26b5caa023ab2
Committed by
Antonio Terceiro
1 parent
666aae2c
Exists in
master
and in
28 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) | ... | ... |