refinerycms-blog 1.5.2 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. data/app/controllers/admin/blog/posts_controller.rb +7 -0
  2. data/app/controllers/blog/categories_controller.rb +4 -0
  3. data/app/models/blog_category.rb +4 -1
  4. data/app/models/blog_post.rb +10 -1
  5. data/app/views/admin/blog/_submenu.html.erb +2 -9
  6. data/app/views/admin/blog/comments/show.html.erb +2 -5
  7. data/app/views/admin/blog/posts/_form.html.erb +39 -11
  8. data/app/views/admin/blog/posts/_form.js.erb +3 -11
  9. data/app/views/admin/blog/posts/_form_part.html.erb +3 -0
  10. data/app/views/blog/categories/show.html.erb +5 -4
  11. data/app/views/blog/posts/_post.html.erb +4 -4
  12. data/app/views/blog/posts/show.html.erb +8 -21
  13. data/app/views/blog/posts/tagged.html.erb +1 -1
  14. data/app/views/blog/shared/_post.html.erb +4 -4
  15. data/app/views/blog/shared/_tags.html.erb +1 -1
  16. data/app/views/shared/admin/_autocomplete.html.erb +55 -0
  17. data/changelog.md +9 -0
  18. data/config/locales/de.yml +2 -0
  19. data/config/locales/en.yml +23 -1
  20. data/config/locales/fr.yml +31 -2
  21. data/config/locales/nl.yml +3 -3
  22. data/config/locales/pt-BR.yml +10 -0
  23. data/config/locales/ru.yml +3 -0
  24. data/config/routes.rb +4 -1
  25. data/db/migrate/5_add_cached_slugs.rb +11 -0
  26. data/db/migrate/6_add_custom_url_field_to_blog_posts.rb +9 -0
  27. data/features/authors.feature +1 -1
  28. data/features/category.feature +23 -0
  29. data/features/support/step_definitions/category_steps.rb +11 -0
  30. data/features/tags.feature +1 -1
  31. data/lib/refinery/blog/tabs.rb +28 -0
  32. data/lib/refinery/blog/version.rb +2 -2
  33. data/lib/refinerycms-blog.rb +6 -1
  34. data/public/stylesheets/refinerycms-blog.css +3 -2
  35. data/public/stylesheets/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
  36. data/public/stylesheets/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
  37. data/public/stylesheets/ui-lightness/images/ui-bg_flat_10_000000_40x100.png +0 -0
  38. data/public/stylesheets/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
  39. data/public/stylesheets/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
  40. data/public/stylesheets/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  41. data/public/stylesheets/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
  42. data/public/stylesheets/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
  43. data/public/stylesheets/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
  44. data/public/stylesheets/ui-lightness/images/ui-icons_222222_256x240.png +0 -0
  45. data/public/stylesheets/ui-lightness/images/ui-icons_228ef1_256x240.png +0 -0
  46. data/public/stylesheets/ui-lightness/images/ui-icons_ef8c08_256x240.png +0 -0
  47. data/public/stylesheets/ui-lightness/images/ui-icons_ffd27a_256x240.png +0 -0
  48. data/public/stylesheets/ui-lightness/images/ui-icons_ffffff_256x240.png +0 -0
  49. data/public/stylesheets/ui-lightness/jquery-ui-1.8.13.custom.css +337 -0
  50. metadata +77 -62
@@ -9,7 +9,7 @@ nl:
9
9
  edit: Bewerk deze categorie
10
10
  delete: Verwijder deze categorie definitief
11
11
  index:
12
- no_items_yet: 'Er zijn momenteel geen categori�n. Klik op "%{create}" om uw eerste categorie toe te voegen.'
12
+ no_items_yet: 'Er zijn momenteel geen categorien. Klik op "%{create}" om uw eerste categorie toe te voegen.'
13
13
  comments:
14
14
  approved: 'De reactie van "%{author}" is goedgekeurd.'
15
15
  comment:
@@ -55,7 +55,7 @@ nl:
55
55
  updated: 'De ontvanger(s) van notificaties is/zijn gewijzigd naar "%{recipients}"'
56
56
  submenu:
57
57
  categories:
58
- title: Categori�n
58
+ title: Categorien
59
59
  manage: Beheren
60
60
  new: Voeg een nieuwe categorie toe
61
61
  comments:
@@ -89,7 +89,7 @@ nl:
89
89
  ps: 'P.S. Alle reacties worden opgeslagen in de "Blog" sectie van Refinery onder het submenu "Comments", voor als u deze reacties later wilt bekijken.'
90
90
  shared:
91
91
  categories:
92
- title: Categori�n
92
+ title: Categorien
93
93
  rss_feed:
94
94
  title: RSS Feed
95
95
  subscribe: Aanmelden
@@ -2,6 +2,14 @@ pt-BR:
2
2
  plugins:
3
3
  refinerycms_blog:
4
4
  title: Blog
5
+ activerecord:
6
+ attributes:
7
+ blog_post:
8
+ title: Título
9
+ body: Corpo
10
+ blog_comment:
11
+ name: Nome
12
+ message: Mensagem
5
13
  admin:
6
14
  blog:
7
15
  categories:
@@ -101,6 +109,8 @@ pt-BR:
101
109
  singular: comentário
102
110
  none: não há comentários
103
111
  archives: Arquivos
112
+ tags:
113
+ title: Tags
104
114
  categories:
105
115
  show:
106
116
  no_posts: Não há posts aqui ainda.
@@ -40,6 +40,8 @@ ru:
40
40
  published_at: Дата публикации
41
41
  index:
42
42
  no_items_yet: 'Записи в блоге отстутствуют. Нажмите "%{create}", чтобы добавить первую запись.'
43
+ uncategorized:
44
+ no_items_yet: 'Записи без категорий отсутствуют.'
43
45
  post:
44
46
  view_live_html: Посмотреть запись на сайте <br/><em>(откроется в новом окне)</em>
45
47
  edit: Редактировать запись
@@ -67,6 +69,7 @@ ru:
67
69
  title: Записи
68
70
  manage: Редактировать записи
69
71
  new: Создать новую запись
72
+ uncategorized: Записи без категорий
70
73
  settings:
71
74
  title: Настройки
72
75
  moderation: Модерирование
data/config/routes.rb CHANGED
@@ -13,7 +13,10 @@
13
13
  scope(:path => 'blog', :as => 'blog', :module => 'blog') do
14
14
  root :to => 'posts#index'
15
15
  resources :posts do
16
- get 'uncategorized', :on => :collection
16
+ collection do
17
+ get :uncategorized
18
+ get :tags
19
+ end
17
20
  end
18
21
 
19
22
  resources :categories
@@ -0,0 +1,11 @@
1
+ class AddCachedSlugs < ActiveRecord::Migration
2
+ def self.up
3
+ add_column :blog_categories, :cached_slug, :string
4
+ add_column :blog_posts, :cached_slug, :string
5
+ end
6
+
7
+ def self.down
8
+ remove_column :blog_categories, :cached_slug
9
+ remove_column :blog_posts, :cached_slug
10
+ end
11
+ end
@@ -0,0 +1,9 @@
1
+ class AddCustomUrlFieldToBlogPosts < ActiveRecord::Migration
2
+ def self.up
3
+ add_column :blog_posts, :custom_url, :string
4
+ end
5
+
6
+ def self.down
7
+ remove_column :blog_posts, :custom_url
8
+ end
9
+ end
@@ -8,7 +8,7 @@ Feature: Blog Post Authors
8
8
 
9
9
  When I am on the new blog post form
10
10
  And I fill in "Title" with "This is my blog post"
11
- And I fill in "Body" with "And I love it"
11
+ And I fill in "blog_post_body" with "And I love it"
12
12
  And I press "Save"
13
13
 
14
14
  Then there should be 1 blog post
@@ -0,0 +1,23 @@
1
+ @blog @blog_categories
2
+ Feature: Blog Post Categories
3
+ Blog posts can be assigned categories
4
+
5
+ Background:
6
+ Given I am a logged in refinery user
7
+ Given there is a category titled "Videos"
8
+
9
+ Scenario: The blog post new/edit form has category_list
10
+ When I am on the new blog post form
11
+ Then I should see "Tags"
12
+ Then I should see "Videos"
13
+
14
+ Scenario: The blog post new/edit form saves categories
15
+ When I am on the new blog post form
16
+ And I fill in "Title" with "This is my blog post"
17
+ And I fill in "blog_post_body" with "And I love it"
18
+ And I check "Videos"
19
+ And I press "Save"
20
+
21
+ Then there should be 1 blog post
22
+ And the blog post should have "1" category
23
+ And the blog post should have the category "Videos"
@@ -0,0 +1,11 @@
1
+ Given /^there is a category titled "([^"]*)"$/ do |title|
2
+ @category = Factory(:blog_category, :title => title)
3
+ end
4
+
5
+ Then /^the blog post should have "([^"]*)" category$/ do |num_category|
6
+ BlogPost.last.categories.count.should == num_category
7
+ end
8
+
9
+ Then /^the blog post should have the category "([^"]*)"$/ do |category|
10
+ BlogPost.last.categories.first.title.should == category
11
+ end
@@ -12,7 +12,7 @@ Feature: Blog Post Tags
12
12
  Scenario: The blog post new/edit form saves tag_list
13
13
  When I am on the new blog post form
14
14
  And I fill in "Title" with "This is my blog post"
15
- And I fill in "Body" with "And I love it"
15
+ And I fill in "blog_post_body" with "And I love it"
16
16
  And I fill in "Tags" with "chicago, bikes, beers, babes"
17
17
  And I press "Save"
18
18
 
@@ -0,0 +1,28 @@
1
+ module Refinery
2
+ module Blog
3
+ attr_accessor :tabs
4
+
5
+ def self.tabs
6
+ @tabs ||= []
7
+ end
8
+
9
+ class Tab
10
+ attr_accessor :name, :partial
11
+
12
+ def self.register(&block)
13
+ tab = self.new
14
+
15
+ yield tab
16
+
17
+ raise "A tab MUST have a name!: #{tab.inspect}" if tab.name.blank?
18
+ raise "A tab MUST have a partial!: #{tab.inspect}" if tab.partial.blank?
19
+ end
20
+
21
+ protected
22
+
23
+ def initialize
24
+ ::Refinery::Blog.tabs << self # add me to the collection of registered page tabs
25
+ end
26
+ end
27
+ end
28
+ end
@@ -2,8 +2,8 @@ module Refinery
2
2
  module Blog
3
3
  class Version
4
4
  @major = 1
5
- @minor = 5
6
- @tiny = 2
5
+ @minor = 6
6
+ @tiny = 0
7
7
 
8
8
  class << self
9
9
  attr_reader :major, :minor, :tiny
@@ -2,8 +2,9 @@ require 'filters_spam'
2
2
 
3
3
  module Refinery
4
4
  module Blog
5
-
6
5
  autoload :Version, File.expand_path('../refinery/blog/version', __FILE__)
6
+ autoload :Tab, File.expand_path("../refinery/blog/tabs", __FILE__)
7
+
7
8
  class << self
8
9
  def version
9
10
  ::Refinery::Blog::Version.to_s
@@ -15,6 +16,10 @@ module Refinery
15
16
  app.middleware.insert_after ::ActionDispatch::Static, ::ActionDispatch::Static, "#{root}/public"
16
17
  end
17
18
 
19
+ config.to_prepare do
20
+ require File.expand_path('../refinery/blog/tabs', __FILE__)
21
+ end
22
+
18
23
  config.after_initialize do
19
24
  Refinery::Plugin.register do |plugin|
20
25
  plugin.name = "refinerycms_blog"
@@ -1,6 +1,7 @@
1
+ .blog_post header, .blog_post footer {
2
+ width: auto;
3
+ }
1
4
  .blog_post .posted_at{
2
- display:block;
3
- margin:0 0 10px;
4
5
  }
5
6
  .post_categories .filed_in {
6
7
  display: inline;
@@ -0,0 +1,337 @@
1
+ /*
2
+ * jQuery UI CSS Framework 1.8.13
3
+ *
4
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
5
+ * Dual licensed under the MIT or GPL Version 2 licenses.
6
+ * http://jquery.org/license
7
+ *
8
+ * http://docs.jquery.com/UI/Theming/API
9
+ */
10
+
11
+ /* Layout helpers
12
+ ----------------------------------*/
13
+ .ui-helper-hidden { display: none; }
14
+ .ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
15
+ .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
16
+ .ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
17
+ .ui-helper-clearfix { display: inline-block; }
18
+ /* required comment for clearfix to work in Opera \*/
19
+ * html .ui-helper-clearfix { height:1%; }
20
+ .ui-helper-clearfix { display:block; }
21
+ /* end clearfix */
22
+ .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
23
+
24
+
25
+ /* Interaction Cues
26
+ ----------------------------------*/
27
+ .ui-state-disabled { cursor: default !important; }
28
+
29
+
30
+ /* Icons
31
+ ----------------------------------*/
32
+
33
+ /* states and images */
34
+ .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
35
+
36
+
37
+ /* Misc visuals
38
+ ----------------------------------*/
39
+
40
+ /* Overlays */
41
+ .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
42
+ .ui-autocomplete{ background:#fff; border:solid #ccc; border-width:0 1px 1px; }
43
+
44
+ /*
45
+ * jQuery UI CSS Framework 1.8.13
46
+ *
47
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
48
+ * Dual licensed under the MIT or GPL Version 2 licenses.
49
+ * http://jquery.org/license
50
+ *
51
+ * http://docs.jquery.com/UI/Theming/API
52
+ *
53
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS,%20Tahoma,%20Verdana,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=03_highlight_soft.png&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=08_diagonals_thick.png&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=08_diagonals_thick.png&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=01_flat.png&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px
54
+ */
55
+
56
+
57
+ /* Interaction states
58
+ ----------------------------------*/
59
+ .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #cccccc; background: #f6f6f6 url(images/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #1c94c4; }
60
+ .ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #1c94c4; text-decoration: none; }
61
+ .ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #fbcb09; background: #fdf5ce url(images/ui-bg_glass_100_fdf5ce_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #c77405; }
62
+ .ui-state-hover a, .ui-state-hover a:hover { color: #c77405; text-decoration: none; }
63
+ .ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #fbd850; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #eb8f00; }
64
+ .ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #eb8f00; text-decoration: none; }
65
+ .ui-widget :active { outline: none; }
66
+
67
+ /* Interaction Cues
68
+ ----------------------------------*/
69
+ .ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fed22f; background: #ffe45c url(images/ui-bg_highlight-soft_75_ffe45c_1x100.png) 50% top repeat-x; color: #363636; }
70
+ .ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
71
+ .ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #b81900 url(images/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat; color: #ffffff; }
72
+ .ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #ffffff; }
73
+ .ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #ffffff; }
74
+ .ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
75
+ .ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
76
+ .ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
77
+
78
+ /* Icons
79
+ ----------------------------------*/
80
+
81
+ /* states and images */
82
+ .ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
83
+ .ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
84
+ .ui-widget-header .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
85
+ .ui-state-default .ui-icon { background-image: url(images/ui-icons_ef8c08_256x240.png); }
86
+ .ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); }
87
+ .ui-state-active .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); }
88
+ .ui-state-highlight .ui-icon {background-image: url(images/ui-icons_228ef1_256x240.png); }
89
+ .ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ffd27a_256x240.png); }
90
+
91
+ /* positioning */
92
+ .ui-icon-carat-1-n { background-position: 0 0; }
93
+ .ui-icon-carat-1-ne { background-position: -16px 0; }
94
+ .ui-icon-carat-1-e { background-position: -32px 0; }
95
+ .ui-icon-carat-1-se { background-position: -48px 0; }
96
+ .ui-icon-carat-1-s { background-position: -64px 0; }
97
+ .ui-icon-carat-1-sw { background-position: -80px 0; }
98
+ .ui-icon-carat-1-w { background-position: -96px 0; }
99
+ .ui-icon-carat-1-nw { background-position: -112px 0; }
100
+ .ui-icon-carat-2-n-s { background-position: -128px 0; }
101
+ .ui-icon-carat-2-e-w { background-position: -144px 0; }
102
+ .ui-icon-triangle-1-n { background-position: 0 -16px; }
103
+ .ui-icon-triangle-1-ne { background-position: -16px -16px; }
104
+ .ui-icon-triangle-1-e { background-position: -32px -16px; }
105
+ .ui-icon-triangle-1-se { background-position: -48px -16px; }
106
+ .ui-icon-triangle-1-s { background-position: -64px -16px; }
107
+ .ui-icon-triangle-1-sw { background-position: -80px -16px; }
108
+ .ui-icon-triangle-1-w { background-position: -96px -16px; }
109
+ .ui-icon-triangle-1-nw { background-position: -112px -16px; }
110
+ .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
111
+ .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
112
+ .ui-icon-arrow-1-n { background-position: 0 -32px; }
113
+ .ui-icon-arrow-1-ne { background-position: -16px -32px; }
114
+ .ui-icon-arrow-1-e { background-position: -32px -32px; }
115
+ .ui-icon-arrow-1-se { background-position: -48px -32px; }
116
+ .ui-icon-arrow-1-s { background-position: -64px -32px; }
117
+ .ui-icon-arrow-1-sw { background-position: -80px -32px; }
118
+ .ui-icon-arrow-1-w { background-position: -96px -32px; }
119
+ .ui-icon-arrow-1-nw { background-position: -112px -32px; }
120
+ .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
121
+ .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
122
+ .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
123
+ .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
124
+ .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
125
+ .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
126
+ .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
127
+ .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
128
+ .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
129
+ .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
130
+ .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
131
+ .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
132
+ .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
133
+ .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
134
+ .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
135
+ .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
136
+ .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
137
+ .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
138
+ .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
139
+ .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
140
+ .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
141
+ .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
142
+ .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
143
+ .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
144
+ .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
145
+ .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
146
+ .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
147
+ .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
148
+ .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
149
+ .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
150
+ .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
151
+ .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
152
+ .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
153
+ .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
154
+ .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
155
+ .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
156
+ .ui-icon-arrow-4 { background-position: 0 -80px; }
157
+ .ui-icon-arrow-4-diag { background-position: -16px -80px; }
158
+ .ui-icon-extlink { background-position: -32px -80px; }
159
+ .ui-icon-newwin { background-position: -48px -80px; }
160
+ .ui-icon-refresh { background-position: -64px -80px; }
161
+ .ui-icon-shuffle { background-position: -80px -80px; }
162
+ .ui-icon-transfer-e-w { background-position: -96px -80px; }
163
+ .ui-icon-transferthick-e-w { background-position: -112px -80px; }
164
+ .ui-icon-folder-collapsed { background-position: 0 -96px; }
165
+ .ui-icon-folder-open { background-position: -16px -96px; }
166
+ .ui-icon-document { background-position: -32px -96px; }
167
+ .ui-icon-document-b { background-position: -48px -96px; }
168
+ .ui-icon-note { background-position: -64px -96px; }
169
+ .ui-icon-mail-closed { background-position: -80px -96px; }
170
+ .ui-icon-mail-open { background-position: -96px -96px; }
171
+ .ui-icon-suitcase { background-position: -112px -96px; }
172
+ .ui-icon-comment { background-position: -128px -96px; }
173
+ .ui-icon-person { background-position: -144px -96px; }
174
+ .ui-icon-print { background-position: -160px -96px; }
175
+ .ui-icon-trash { background-position: -176px -96px; }
176
+ .ui-icon-locked { background-position: -192px -96px; }
177
+ .ui-icon-unlocked { background-position: -208px -96px; }
178
+ .ui-icon-bookmark { background-position: -224px -96px; }
179
+ .ui-icon-tag { background-position: -240px -96px; }
180
+ .ui-icon-home { background-position: 0 -112px; }
181
+ .ui-icon-flag { background-position: -16px -112px; }
182
+ .ui-icon-calendar { background-position: -32px -112px; }
183
+ .ui-icon-cart { background-position: -48px -112px; }
184
+ .ui-icon-pencil { background-position: -64px -112px; }
185
+ .ui-icon-clock { background-position: -80px -112px; }
186
+ .ui-icon-disk { background-position: -96px -112px; }
187
+ .ui-icon-calculator { background-position: -112px -112px; }
188
+ .ui-icon-zoomin { background-position: -128px -112px; }
189
+ .ui-icon-zoomout { background-position: -144px -112px; }
190
+ .ui-icon-search { background-position: -160px -112px; }
191
+ .ui-icon-wrench { background-position: -176px -112px; }
192
+ .ui-icon-gear { background-position: -192px -112px; }
193
+ .ui-icon-heart { background-position: -208px -112px; }
194
+ .ui-icon-star { background-position: -224px -112px; }
195
+ .ui-icon-link { background-position: -240px -112px; }
196
+ .ui-icon-cancel { background-position: 0 -128px; }
197
+ .ui-icon-plus { background-position: -16px -128px; }
198
+ .ui-icon-plusthick { background-position: -32px -128px; }
199
+ .ui-icon-minus { background-position: -48px -128px; }
200
+ .ui-icon-minusthick { background-position: -64px -128px; }
201
+ .ui-icon-close { background-position: -80px -128px; }
202
+ .ui-icon-closethick { background-position: -96px -128px; }
203
+ .ui-icon-key { background-position: -112px -128px; }
204
+ .ui-icon-lightbulb { background-position: -128px -128px; }
205
+ .ui-icon-scissors { background-position: -144px -128px; }
206
+ .ui-icon-clipboard { background-position: -160px -128px; }
207
+ .ui-icon-copy { background-position: -176px -128px; }
208
+ .ui-icon-contact { background-position: -192px -128px; }
209
+ .ui-icon-image { background-position: -208px -128px; }
210
+ .ui-icon-video { background-position: -224px -128px; }
211
+ .ui-icon-script { background-position: -240px -128px; }
212
+ .ui-icon-alert { background-position: 0 -144px; }
213
+ .ui-icon-info { background-position: -16px -144px; }
214
+ .ui-icon-notice { background-position: -32px -144px; }
215
+ .ui-icon-help { background-position: -48px -144px; }
216
+ .ui-icon-check { background-position: -64px -144px; }
217
+ .ui-icon-bullet { background-position: -80px -144px; }
218
+ .ui-icon-radio-off { background-position: -96px -144px; }
219
+ .ui-icon-radio-on { background-position: -112px -144px; }
220
+ .ui-icon-pin-w { background-position: -128px -144px; }
221
+ .ui-icon-pin-s { background-position: -144px -144px; }
222
+ .ui-icon-play { background-position: 0 -160px; }
223
+ .ui-icon-pause { background-position: -16px -160px; }
224
+ .ui-icon-seek-next { background-position: -32px -160px; }
225
+ .ui-icon-seek-prev { background-position: -48px -160px; }
226
+ .ui-icon-seek-end { background-position: -64px -160px; }
227
+ .ui-icon-seek-start { background-position: -80px -160px; }
228
+ /* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
229
+ .ui-icon-seek-first { background-position: -80px -160px; }
230
+ .ui-icon-stop { background-position: -96px -160px; }
231
+ .ui-icon-eject { background-position: -112px -160px; }
232
+ .ui-icon-volume-off { background-position: -128px -160px; }
233
+ .ui-icon-volume-on { background-position: -144px -160px; }
234
+ .ui-icon-power { background-position: 0 -176px; }
235
+ .ui-icon-signal-diag { background-position: -16px -176px; }
236
+ .ui-icon-signal { background-position: -32px -176px; }
237
+ .ui-icon-battery-0 { background-position: -48px -176px; }
238
+ .ui-icon-battery-1 { background-position: -64px -176px; }
239
+ .ui-icon-battery-2 { background-position: -80px -176px; }
240
+ .ui-icon-battery-3 { background-position: -96px -176px; }
241
+ .ui-icon-circle-plus { background-position: 0 -192px; }
242
+ .ui-icon-circle-minus { background-position: -16px -192px; }
243
+ .ui-icon-circle-close { background-position: -32px -192px; }
244
+ .ui-icon-circle-triangle-e { background-position: -48px -192px; }
245
+ .ui-icon-circle-triangle-s { background-position: -64px -192px; }
246
+ .ui-icon-circle-triangle-w { background-position: -80px -192px; }
247
+ .ui-icon-circle-triangle-n { background-position: -96px -192px; }
248
+ .ui-icon-circle-arrow-e { background-position: -112px -192px; }
249
+ .ui-icon-circle-arrow-s { background-position: -128px -192px; }
250
+ .ui-icon-circle-arrow-w { background-position: -144px -192px; }
251
+ .ui-icon-circle-arrow-n { background-position: -160px -192px; }
252
+ .ui-icon-circle-zoomin { background-position: -176px -192px; }
253
+ .ui-icon-circle-zoomout { background-position: -192px -192px; }
254
+ .ui-icon-circle-check { background-position: -208px -192px; }
255
+ .ui-icon-circlesmall-plus { background-position: 0 -208px; }
256
+ .ui-icon-circlesmall-minus { background-position: -16px -208px; }
257
+ .ui-icon-circlesmall-close { background-position: -32px -208px; }
258
+ .ui-icon-squaresmall-plus { background-position: -48px -208px; }
259
+ .ui-icon-squaresmall-minus { background-position: -64px -208px; }
260
+ .ui-icon-squaresmall-close { background-position: -80px -208px; }
261
+ .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
262
+ .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
263
+ .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
264
+ .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
265
+ .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
266
+ .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
267
+
268
+
269
+ /* Misc visuals
270
+ ----------------------------------*/
271
+
272
+ /* Corner radius */
273
+ .ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; }
274
+ .ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; }
275
+ .ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
276
+ .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
277
+ .ui-corner-top { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; }
278
+ .ui-corner-bottom { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
279
+ .ui-corner-right { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
280
+ .ui-corner-left { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
281
+ .ui-corner-all { -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; }
282
+
283
+ /* Overlays */
284
+ .ui-widget-overlay { background: #666666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat; opacity: .50;filter:Alpha(Opacity=50); }
285
+ .ui-widget-shadow { margin: -5px 0 0 -5px; padding: 5px; background: #000000 url(images/ui-bg_flat_10_000000_40x100.png) 50% 50% repeat-x; opacity: .20;filter:Alpha(Opacity=20); -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; }/*
286
+ * jQuery UI Autocomplete 1.8.13
287
+ *
288
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
289
+ * Dual licensed under the MIT or GPL Version 2 licenses.
290
+ * http://jquery.org/license
291
+ *
292
+ * http://docs.jquery.com/UI/Autocomplete#theming
293
+ */
294
+ .ui-autocomplete { position: absolute; cursor: default; }
295
+
296
+ /* workarounds */
297
+ * html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
298
+
299
+ /*
300
+ * jQuery UI Menu 1.8.13
301
+ *
302
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
303
+ * Dual licensed under the MIT or GPL Version 2 licenses.
304
+ * http://jquery.org/license
305
+ *
306
+ * http://docs.jquery.com/UI/Menu#theming
307
+ */
308
+ .ui-menu {
309
+ list-style:none;
310
+ padding: 2px;
311
+ margin: 0;
312
+ display:block;
313
+ float: left;
314
+ }
315
+ .ui-menu .ui-menu {
316
+ margin-top: -3px;
317
+ }
318
+ .ui-menu .ui-menu-item {
319
+ margin:0;
320
+ padding: 0;
321
+ zoom: 1;
322
+ float: left;
323
+ clear: left;
324
+ width: 100%;
325
+ }
326
+ .ui-menu .ui-menu-item a {
327
+ text-decoration:none;
328
+ display:block;
329
+ padding:.2em .4em;
330
+ line-height:1.5;
331
+ zoom:1;
332
+ }
333
+ .ui-menu .ui-menu-item a.ui-state-hover,
334
+ .ui-menu .ui-menu-item a.ui-state-active {
335
+ font-weight: normal;
336
+ margin: -1px;
337
+ }