muck-users 0.2.23 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +3 -1
- data/VERSION +1 -1
- data/app/controllers/admin/muck/access_codes_controller.rb +78 -0
- data/app/controllers/admin/muck/roles_controller.rb +34 -24
- data/app/controllers/admin/muck/users_controller.rb +56 -21
- data/app/controllers/muck/access_code_requests_controller.rb +27 -0
- data/app/controllers/muck/activations_controller.rb +0 -1
- data/app/controllers/muck/users_controller.rb +122 -110
- data/app/models/role.rb +5 -2
- data/app/models/user_mailer.rb +7 -0
- data/app/views/access_code_requests/new.html.erb +7 -0
- data/app/views/access_code_requests/show.html.erb +1 -0
- data/app/views/admin/access_codes/_access_code.html.erb +8 -0
- data/app/views/admin/access_codes/_form.html.erb +15 -0
- data/app/views/admin/access_codes/_user.html.erb +6 -0
- data/app/views/admin/access_codes/bulk.html.erb +12 -0
- data/app/views/admin/access_codes/edit.html.erb +6 -0
- data/app/views/admin/access_codes/index.html.erb +18 -0
- data/app/views/admin/access_codes/new.html.erb +6 -0
- data/app/views/admin/access_codes/show.html.erb +30 -0
- data/app/views/admin/permissions/_permission.html.erb +3 -0
- data/app/views/admin/roles/_role.html.erb +5 -9
- data/app/views/admin/roles/edit.html.erb +4 -17
- data/app/views/admin/roles/index.html.erb +16 -8
- data/app/views/admin/roles/new.html.erb +4 -16
- data/app/views/admin/roles/show.html.erb +3 -7
- data/app/views/admin/users/_activate.html.erb +2 -2
- data/app/views/admin/users/_row.html.erb +8 -2
- data/app/views/admin/users/_table.html.erb +10 -15
- data/app/views/admin/users/permissions.html.erb +8 -0
- data/app/views/user_mailer/access_code.text.html.erb +3 -0
- data/app/views/user_mailer/access_code.text.plain.erb +5 -0
- data/app/views/users/_signup_form.html.erb +7 -0
- data/app/views/users/welcome.html.erb +1 -1
- data/config/muck_users_routes.rb +5 -2
- data/db/migrate/20100123035450_create_access_codes.rb +19 -0
- data/db/migrate/20100123233654_create_access_code_requests.rb +14 -0
- data/lib/action_controller/authentic_application.rb +1 -1
- data/lib/active_record/acts/muck_access_code.rb +75 -0
- data/lib/active_record/acts/muck_access_code_request.rb +33 -0
- data/lib/active_record/acts/muck_user.rb +13 -1
- data/lib/muck_users.rb +8 -1
- data/lib/muck_users/muck_custom_form_builder.rb +10 -0
- data/locales/en.yml +163 -102
- data/muck-users.gemspec +41 -2
- data/test/rails_root/app/models/access_code.rb +3 -0
- data/test/rails_root/app/models/access_code_request.rb +3 -0
- data/test/rails_root/app/models/user.rb +12 -9
- data/test/rails_root/config/environment.rb +1 -0
- data/test/rails_root/config/global_config.yml +1 -1
- data/test/rails_root/db/migrate/20100123035450_create_access_codes.rb +19 -0
- data/test/rails_root/db/migrate/20100123233654_create_access_code_requests.rb +14 -0
- data/test/rails_root/public/javascripts/jquery/jquery.jgrowl.js +9 -2
- data/test/rails_root/public/javascripts/muck.js +39 -13
- data/test/rails_root/public/stylesheets/admin.css +20 -3
- data/test/rails_root/public/stylesheets/jquery/cupertino/jquery-ui-1.7.2.custom.css +160 -0
- data/test/rails_root/public/stylesheets/jquery/redmond/jquery-ui-1.7.2.custom.css +160 -0
- data/test/rails_root/public/stylesheets/jquery/smoothness/jquery-ui-1.7.2.custom.css +160 -0
- data/test/rails_root/public/stylesheets/jquery/ui-lightness/jquery-ui-1.7.2.custom.css +160 -0
- data/test/rails_root/public/stylesheets/styles.css +9 -8
- data/test/rails_root/test/functional/access_code_requests_controller_test.rb +33 -0
- data/test/rails_root/test/functional/admin/access_codes_controller_test.rb +166 -0
- data/test/rails_root/test/unit/access_code_test.rb +100 -0
- data/test/rails_root/test/unit/role_test.rb +1 -0
- data/test/rails_root/test/unit/user_mailer_test.rb +13 -1
- data/test/rails_root/test/unit/user_test.rb +13 -9
- metadata +41 -2
@@ -2,29 +2,32 @@
|
|
2
2
|
#
|
3
3
|
# Table name: users
|
4
4
|
#
|
5
|
-
# id :integer
|
5
|
+
# id :integer(4) not null, primary key
|
6
6
|
# login :string(255)
|
7
7
|
# email :string(255)
|
8
8
|
# first_name :string(255)
|
9
9
|
# last_name :string(255)
|
10
10
|
# crypted_password :string(255)
|
11
11
|
# password_salt :string(255)
|
12
|
-
# persistence_token :string(255)
|
13
|
-
# single_access_token :string(255)
|
14
|
-
# perishable_token :string(255)
|
15
|
-
# login_count :integer
|
16
|
-
# failed_login_count :integer
|
12
|
+
# persistence_token :string(255) not null
|
13
|
+
# single_access_token :string(255) not null
|
14
|
+
# perishable_token :string(255) not null
|
15
|
+
# login_count :integer(4) default(0), not null
|
16
|
+
# failed_login_count :integer(4) default(0), not null
|
17
17
|
# last_request_at :datetime
|
18
|
-
# last_login_at :datetime
|
19
18
|
# current_login_at :datetime
|
19
|
+
# last_login_at :datetime
|
20
20
|
# current_login_ip :string(255)
|
21
21
|
# last_login_ip :string(255)
|
22
|
-
# terms_of_service :boolean
|
22
|
+
# terms_of_service :boolean(1) not null
|
23
23
|
# time_zone :string(255) default("UTC")
|
24
24
|
# disabled_at :datetime
|
25
|
-
# activated_at :datetime
|
26
25
|
# created_at :datetime
|
26
|
+
# activated_at :datetime
|
27
27
|
# updated_at :datetime
|
28
|
+
# identity_url :string(255)
|
29
|
+
# url_key :string(255)
|
30
|
+
# beta_code_id :integer(4)
|
28
31
|
#
|
29
32
|
|
30
33
|
class User < ActiveRecord::Base
|
@@ -19,6 +19,7 @@ Rails::Initializer.run do |config|
|
|
19
19
|
config.gem "authlogic"
|
20
20
|
config.gem "searchlogic"
|
21
21
|
config.gem "bcrypt-ruby", :lib => "bcrypt"
|
22
|
+
config.gem 'jrails'
|
22
23
|
config.gem "overlord"
|
23
24
|
config.gem 'muck-engine', :lib => 'muck_engine'
|
24
25
|
config.plugin_locators << TestGemLocator
|
@@ -24,7 +24,7 @@ default: &DEFAULT
|
|
24
24
|
automatically_activate: true
|
25
25
|
automatically_login_after_account_create: true
|
26
26
|
send_welcome: true
|
27
|
-
|
27
|
+
require_access_code: false
|
28
28
|
application_url: localhost:3000
|
29
29
|
|
30
30
|
# if you use recaptcha you will need to also provide a public and private
|
@@ -0,0 +1,19 @@
|
|
1
|
+
class CreateAccessCodes < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
create_table :access_codes do |t|
|
4
|
+
t.string :code
|
5
|
+
t.integer :uses, :default => 0, :null => false
|
6
|
+
t.boolean :unlimited, :default => false, :null => false
|
7
|
+
t.datetime :expires_at
|
8
|
+
t.integer :use_limit, :default => 1, :null => false
|
9
|
+
t.timestamps
|
10
|
+
end
|
11
|
+
add_index :access_codes, :code
|
12
|
+
add_column :users, :access_code_id, :integer
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.down
|
16
|
+
drop_table :access_codes
|
17
|
+
remove_column :users, :access_code_id
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
class CreateAccessCodeRequests < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
create_table :access_code_requests do |t|
|
4
|
+
t.string :email
|
5
|
+
t.datetime :code_sent_at
|
6
|
+
t.timestamps
|
7
|
+
end
|
8
|
+
add_index :access_code_requests, :email
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.down
|
12
|
+
drop_table :access_code_requests
|
13
|
+
end
|
14
|
+
end
|
@@ -1,2 +1,9 @@
|
|
1
|
-
(function($){$.jGrowl=function(m,o){if($('#jGrowl').size()==0)
|
2
|
-
|
1
|
+
(function($){$.jGrowl=function(m,o){if($('#jGrowl').size()==0)
|
2
|
+
$('<div id="jGrowl"></div>').addClass($.jGrowl.defaults.position).appendTo('body');$('#jGrowl').jGrowl(m,o);};$.fn.jGrowl=function(m,o){if($.isFunction(this.each)){var args=arguments;return this.each(function(){var self=this;if($(this).data('jGrowl.instance')==undefined){$(this).data('jGrowl.instance',$.extend(new $.fn.jGrowl(),{notifications:[],element:null,interval:null}));$(this).data('jGrowl.instance').startup(this);}
|
3
|
+
if($.isFunction($(this).data('jGrowl.instance')[m])){$(this).data('jGrowl.instance')[m].apply($(this).data('jGrowl.instance'),$.makeArray(args).slice(1));}else{$(this).data('jGrowl.instance').create(m,o);}});};};$.extend($.fn.jGrowl.prototype,{defaults:{pool:0,header:'',group:'',sticky:false,position:'top-right',glue:'after',theme:'default',corners:'10px',check:250,life:3000,speed:'normal',easing:'swing',closer:true,closeTemplate:'×',closerTemplate:'<div>[ close all ]</div>',log:function(e,m,o){},beforeOpen:function(e,m,o){},open:function(e,m,o){},beforeClose:function(e,m,o){},close:function(e,m,o){},animateOpen:{opacity:'show'},animateClose:{opacity:'hide'}},notifications:[],element:null,interval:null,create:function(message,o){var o=$.extend({},this.defaults,o);this.notifications.push({message:message,options:o});o.log.apply(this.element,[this.element,message,o]);},render:function(notification){var self=this;var message=notification.message;var o=notification.options;var notification=$('<div class="jGrowl-notification ui-state-highlight ui-corner-all'+
|
4
|
+
((o.group!=undefined&&o.group!='')?' '+o.group:'')+'">'+'<div class="close">'+o.closeTemplate+'</div>'+'<div class="header">'+o.header+'</div>'+'<div class="message">'+message+'</div></div>').data("jGrowl",o).addClass(o.theme).children('div.close').bind("click.jGrowl",function(){$(this).parent().trigger('jGrowl.close');}).parent();$(notification).bind("mouseover.jGrowl",function(){$('div.jGrowl-notification',self.element).data("jGrowl.pause",true);}).bind("mouseout.jGrowl",function(){$('div.jGrowl-notification',self.element).data("jGrowl.pause",false);}).bind('jGrowl.beforeOpen',function(){if(o.beforeOpen.apply(notification,[notification,message,o,self.element])!=false){$(this).trigger('jGrowl.open');}}).bind('jGrowl.open',function(){if(o.open.apply(notification,[notification,message,o,self.element])!=false){if(o.glue=='after'){$('div.jGrowl-notification:last',self.element).after(notification);}else{$('div.jGrowl-notification:first',self.element).before(notification);}
|
5
|
+
$(this).animate(o.animateOpen,o.speed,o.easing,function(){if($.browser.msie&&(parseInt($(this).css('opacity'),10)===1||parseInt($(this).css('opacity'),10)===0))
|
6
|
+
this.style.removeAttribute('filter');$(this).data("jGrowl").created=new Date();});}}).bind('jGrowl.beforeClose',function(){if(o.beforeClose.apply(notification,[notification,message,o,self.element])!=false)
|
7
|
+
$(this).trigger('jGrowl.close');}).bind('jGrowl.close',function(){$(this).data('jGrowl.pause',true);$(this).animate(o.animateClose,o.speed,o.easing,function(){$(this).remove();var close=o.close.apply(notification,[notification,message,o,self.element]);if($.isFunction(close))
|
8
|
+
close.apply(notification,[notification,message,o,self.element]);});}).trigger('jGrowl.beforeOpen');if($.fn.corner!=undefined)$(notification).corner(o.corners);if($('div.jGrowl-notification:parent',self.element).size()>1&&$('div.jGrowl-closer',self.element).size()==0&&this.defaults.closer!=false){$(this.defaults.closerTemplate).addClass('jGrowl-closer ui-state-highlight ui-corner-all').addClass(this.defaults.theme).appendTo(self.element).animate(this.defaults.animateOpen,this.defaults.speed,this.defaults.easing).bind("click.jGrowl",function(){$(this).siblings().children('div.close').trigger("click.jGrowl");if($.isFunction(self.defaults.closer)){self.defaults.closer.apply($(this).parent()[0],[$(this).parent()[0]]);}});};},update:function(){$(this.element).find('div.jGrowl-notification:parent').each(function(){if($(this).data("jGrowl")!=undefined&&$(this).data("jGrowl").created!=undefined&&($(this).data("jGrowl").created.getTime()+$(this).data("jGrowl").life)<(new Date()).getTime()&&$(this).data("jGrowl").sticky!=true&&($(this).data("jGrowl.pause")==undefined||$(this).data("jGrowl.pause")!=true)){$(this).trigger('jGrowl.beforeClose');}});if(this.notifications.length>0&&(this.defaults.pool==0||$(this.element).find('div.jGrowl-notification:parent').size()<this.defaults.pool))
|
9
|
+
this.render(this.notifications.shift());if($(this.element).find('div.jGrowl-notification:parent').size()<2){$(this.element).find('div.jGrowl-closer').animate(this.defaults.animateClose,this.defaults.speed,this.defaults.easing,function(){$(this).remove();});}},startup:function(e){this.element=$(e).addClass('jGrowl').append('<div class="jGrowl-notification"></div>');this.interval=setInterval(function(){$(e).data('jGrowl.instance').update();},this.defaults.check);if($.browser.msie&&parseInt($.browser.version)<7&&!window["XMLHttpRequest"]){$(this.element).addClass('ie6');}},shutdown:function(){$(this.element).removeClass('jGrowl').find('div.jGrowl-notification').remove();clearInterval(this.interval);},close:function(){$(this.element).find('div.jGrowl-notification').each(function(){$(this).trigger('jGrowl.beforeClose');});}});$.jGrowl.defaults=$.fn.jGrowl.prototype.defaults;})(jQuery);
|
@@ -1,8 +1,6 @@
|
|
1
1
|
//jQuery.noConflict();
|
2
2
|
jQuery(document).ajaxSend(function(event, request, settings) {
|
3
|
-
request
|
4
|
-
request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
|
5
|
-
|
3
|
+
add_headers(request);
|
6
4
|
if (settings.type.toUpperCase() == 'GET' || typeof(AUTH_TOKEN) == "undefined") return; // for details see: http://www.justinball.com/2009/07/08/jquery-ajax-get-in-firefox-post-in-internet-explorer/
|
7
5
|
// settings.data is a serialized string like "foo=bar&baz=boink" (or null)
|
8
6
|
settings.data = settings.data || "";
|
@@ -92,21 +90,49 @@ function setup_country(force_load){
|
|
92
90
|
}
|
93
91
|
}
|
94
92
|
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
}
|
100
|
-
|
101
|
-
jQuery.jGrowl.warn = function(msg){
|
102
|
-
jQuery.jGrowl(msg);
|
93
|
+
function apply_ajax_forms() {
|
94
|
+
jQuery('form.ajax').ajaxForm({
|
95
|
+
dataType: 'script',
|
96
|
+
beforeSend: add_headers
|
97
|
+
});
|
98
|
+
jQuery('form.ajax').append('<input type="hidden" name="format" value="js" />');
|
103
99
|
}
|
104
100
|
|
105
|
-
|
106
|
-
|
101
|
+
function add_headers(xhr){
|
102
|
+
xhr.setRequestHeader("Accept", "text/javascript");
|
103
|
+
xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
|
107
104
|
}
|
108
105
|
|
109
106
|
jQuery(document).ready(function() {
|
107
|
+
|
108
|
+
jQuery('a.ajax-delete').live('click', function() {
|
109
|
+
jQuery.post(this.href, { _method: 'delete', format: 'js' }, null, "script");
|
110
|
+
return false;
|
111
|
+
});
|
112
|
+
|
113
|
+
jQuery('a.ajax-update').live('click', function() {
|
114
|
+
jQuery.post(this.href, { _method: 'put', format: 'js' }, null, "script");
|
115
|
+
return false;
|
116
|
+
});
|
117
|
+
|
118
|
+
jQuery(".submit-form").click(function() {
|
119
|
+
jQuery(this).parent('form').submit();
|
120
|
+
});
|
121
|
+
|
122
|
+
apply_ajax_forms();
|
123
|
+
|
124
|
+
jQuery('a.fancy-pop').fancybox({'hideOnContentClick':false, 'overlayShow':true, 'frameWidth':600, 'frameHeight':500 });
|
125
|
+
|
126
|
+
jQuery('a.dialog-pop').live('click', function() {
|
127
|
+
var d = jQuery('<div class="dialog"></div>').appendTo("body");
|
128
|
+
d.dialog({ modal: true, autoOpen: false, width: 'auto', title: jQuery(this).attr('title') });
|
129
|
+
d.load(jQuery(this).attr('href'), '', function(){
|
130
|
+
d.dialog("open");
|
131
|
+
apply_ajax_forms();
|
132
|
+
});
|
133
|
+
return false;
|
134
|
+
});
|
135
|
+
|
110
136
|
jQuery("#global-login").focus(function() {
|
111
137
|
jQuery("#global-login").val("");
|
112
138
|
});
|
@@ -1,19 +1,36 @@
|
|
1
1
|
/* header */
|
2
|
+
a {color:#000;}
|
2
3
|
#main-navigation{}
|
3
4
|
#account-navigation {}
|
4
5
|
.navigation ul{padding:2px;margin:0;}
|
5
6
|
.navigation ul li{list-style:none;font-weight:bold;display:inline-block;}
|
6
7
|
.navigation ul li a{float:left;text-decoration:none;font-weight:bold;}
|
7
8
|
.navigation ul li a:hover{text-decoration:underline;}
|
8
|
-
|
9
|
+
ul.inline{padding:0;margin:0;}
|
10
|
+
ul.inline li{list-style:none;}
|
11
|
+
ul.admin-list li {list-style:none;}
|
12
|
+
ul.admin-list li a{font-size:1.2em;}
|
13
|
+
#header{border-bottom:solid 2px #333;}
|
9
14
|
#admin-account{width:100%;float:right;}
|
10
15
|
#admin-account ul{float:right;}
|
11
16
|
#admin-account ul li{margin:1px;padding:0 4px;float:left;}
|
12
|
-
|
17
|
+
/*#admin-nav li a{background-repeat:no-repeat;height:20px;margin:0 4px;padding-top:35px;text-align:center;width:40px;}*/
|
18
|
+
#admin-nav li a{margin:0 12px 0 0;}
|
13
19
|
#sub-header{width:100%;float:left;}
|
14
20
|
/* dashboard widgets */
|
15
21
|
.dashboard-widget{padding:5px;}
|
16
22
|
.dashboard-widget h2{font-size:12px;border-bottom:solid 1px #555;}
|
17
23
|
/* themes */
|
18
24
|
#current-theme{clear:both;float:left;width:100%;}
|
19
|
-
.theme-block{width:250px;height:300px;float:left;clear:none;margin:10px;}
|
25
|
+
.theme-block{width:250px;height:300px;float:left;clear:none;margin:10px;}
|
26
|
+
/* errors, message */
|
27
|
+
.notify-box{font-size:1.2em;color:#555;width:100%}
|
28
|
+
.error,.notice,.success {margin:0;}
|
29
|
+
#errorExplanation{margin:0;padding:0;}
|
30
|
+
/* tables */
|
31
|
+
.adminTable{margin:5px 0 0 0;padding:0 0 40px 0px;width:980px;}
|
32
|
+
.adminTable a{color:#000;text-decoration:none;font-weight:bold;}
|
33
|
+
.adminTable a:hover{;text-decoration:underline;}
|
34
|
+
.adminTable tr{background-color:#fff;}
|
35
|
+
.adminTable table{border:2px solid #c4ad63;}
|
36
|
+
.adminTable tr td{font-size:1.1em;font-weight:bold;padding:5px;border-bottom:1px solid #eee;}
|
@@ -0,0 +1,160 @@
|
|
1
|
+
/*
|
2
|
+
* jQuery UI CSS Framework
|
3
|
+
* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
|
4
|
+
* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
|
5
|
+
*/
|
6
|
+
|
7
|
+
/* Layout helpers
|
8
|
+
----------------------------------*/
|
9
|
+
.ui-helper-hidden { display: none; }
|
10
|
+
.ui-helper-hidden-accessible { position: absolute; left: -99999999px; }
|
11
|
+
.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
|
12
|
+
.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
|
13
|
+
.ui-helper-clearfix { display: inline-block; }
|
14
|
+
/* required comment for clearfix to work in Opera \*/
|
15
|
+
* html .ui-helper-clearfix { height:1%; }
|
16
|
+
.ui-helper-clearfix { display:block; }
|
17
|
+
/* end clearfix */
|
18
|
+
.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
|
19
|
+
|
20
|
+
|
21
|
+
/* Interaction Cues
|
22
|
+
----------------------------------*/
|
23
|
+
.ui-state-disabled { cursor: default !important; }
|
24
|
+
|
25
|
+
|
26
|
+
/* Icons
|
27
|
+
----------------------------------*/
|
28
|
+
|
29
|
+
/* states and images */
|
30
|
+
.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
|
31
|
+
|
32
|
+
|
33
|
+
/* Misc visuals
|
34
|
+
----------------------------------*/
|
35
|
+
|
36
|
+
/* Overlays */
|
37
|
+
.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }/* Accordion
|
38
|
+
----------------------------------*/
|
39
|
+
.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
|
40
|
+
.ui-accordion .ui-accordion-li-fix { display: inline; }
|
41
|
+
.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
|
42
|
+
.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em 2.2em; }
|
43
|
+
.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
|
44
|
+
.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; }
|
45
|
+
.ui-accordion .ui-accordion-content-active { display: block; }/* Datepicker
|
46
|
+
----------------------------------*/
|
47
|
+
.ui-datepicker { width: 17em; padding: .2em .2em 0; }
|
48
|
+
.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
|
49
|
+
.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
|
50
|
+
.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
|
51
|
+
.ui-datepicker .ui-datepicker-prev { left:2px; }
|
52
|
+
.ui-datepicker .ui-datepicker-next { right:2px; }
|
53
|
+
.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
|
54
|
+
.ui-datepicker .ui-datepicker-next-hover { right:1px; }
|
55
|
+
.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; }
|
56
|
+
.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
|
57
|
+
.ui-datepicker .ui-datepicker-title select { float:left; font-size:1em; margin:1px 0; }
|
58
|
+
.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
|
59
|
+
.ui-datepicker select.ui-datepicker-month,
|
60
|
+
.ui-datepicker select.ui-datepicker-year { width: 49%;}
|
61
|
+
.ui-datepicker .ui-datepicker-title select.ui-datepicker-year { float: right; }
|
62
|
+
.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
|
63
|
+
.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
|
64
|
+
.ui-datepicker td { border: 0; padding: 1px; }
|
65
|
+
.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
|
66
|
+
.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
|
67
|
+
.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
|
68
|
+
.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
|
69
|
+
|
70
|
+
/* with multiple calendars */
|
71
|
+
.ui-datepicker.ui-datepicker-multi { width:auto; }
|
72
|
+
.ui-datepicker-multi .ui-datepicker-group { float:left; }
|
73
|
+
.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
|
74
|
+
.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
|
75
|
+
.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
|
76
|
+
.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
|
77
|
+
.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
|
78
|
+
.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
|
79
|
+
.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
|
80
|
+
.ui-datepicker-row-break { clear:both; width:100%; }
|
81
|
+
|
82
|
+
/* RTL support */
|
83
|
+
.ui-datepicker-rtl { direction: rtl; }
|
84
|
+
.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
|
85
|
+
.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
|
86
|
+
.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
|
87
|
+
.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
|
88
|
+
.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
|
89
|
+
.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
|
90
|
+
.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
|
91
|
+
.ui-datepicker-rtl .ui-datepicker-group { float:right; }
|
92
|
+
.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
|
93
|
+
.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
|
94
|
+
|
95
|
+
/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
|
96
|
+
.ui-datepicker-cover {
|
97
|
+
display: none; /*sorry for IE5*/
|
98
|
+
display/**/: block; /*sorry for IE5*/
|
99
|
+
position: absolute; /*must have*/
|
100
|
+
z-index: -1; /*must have*/
|
101
|
+
filter: mask(); /*must have*/
|
102
|
+
top: -4px; /*must have*/
|
103
|
+
left: -4px; /*must have*/
|
104
|
+
width: 200px; /*must have*/
|
105
|
+
height: 200px; /*must have*/
|
106
|
+
}/* Dialog
|
107
|
+
----------------------------------*/
|
108
|
+
.ui-dialog { position: relative; padding: .2em; width: 300px; }
|
109
|
+
.ui-dialog .ui-dialog-titlebar { padding: .5em .3em .3em 1em; position: relative; }
|
110
|
+
.ui-dialog .ui-dialog-title { float: left; margin: .1em 0 .2em; }
|
111
|
+
.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
|
112
|
+
.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
|
113
|
+
.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
|
114
|
+
.ui-dialog .ui-dialog-content { border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
|
115
|
+
.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
|
116
|
+
.ui-dialog .ui-dialog-buttonpane button { float: right; margin: .5em .4em .5em 0; cursor: pointer; padding: .2em .6em .3em .6em; line-height: 1.4em; width:auto; overflow:visible; }
|
117
|
+
.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
|
118
|
+
.ui-draggable .ui-dialog-titlebar { cursor: move; }
|
119
|
+
/* Progressbar
|
120
|
+
----------------------------------*/
|
121
|
+
.ui-progressbar { height:2em; text-align: left; }
|
122
|
+
.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }/* Resizable
|
123
|
+
----------------------------------*/
|
124
|
+
.ui-resizable { position: relative;}
|
125
|
+
.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
|
126
|
+
.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
|
127
|
+
.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0px; }
|
128
|
+
.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0px; }
|
129
|
+
.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0px; height: 100%; }
|
130
|
+
.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0px; height: 100%; }
|
131
|
+
.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
|
132
|
+
.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
|
133
|
+
.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
|
134
|
+
.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/* Slider
|
135
|
+
----------------------------------*/
|
136
|
+
.ui-slider { position: relative; text-align: left; }
|
137
|
+
.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
|
138
|
+
.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; }
|
139
|
+
|
140
|
+
.ui-slider-horizontal { height: .8em; }
|
141
|
+
.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
|
142
|
+
.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
|
143
|
+
.ui-slider-horizontal .ui-slider-range-min { left: 0; }
|
144
|
+
.ui-slider-horizontal .ui-slider-range-max { right: 0; }
|
145
|
+
|
146
|
+
.ui-slider-vertical { width: .8em; height: 100px; }
|
147
|
+
.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
|
148
|
+
.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
|
149
|
+
.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
|
150
|
+
.ui-slider-vertical .ui-slider-range-max { top: 0; }/* Tabs
|
151
|
+
----------------------------------*/
|
152
|
+
.ui-tabs { padding: .2em; zoom: 1; }
|
153
|
+
.ui-tabs .ui-tabs-nav { list-style: none; position: relative; padding: .2em .2em 0; }
|
154
|
+
.ui-tabs .ui-tabs-nav li { position: relative; float: left; border-bottom-width: 0 !important; margin: 0 .2em -1px 0; padding: 0; }
|
155
|
+
.ui-tabs .ui-tabs-nav li a { float: left; text-decoration: none; padding: .5em 1em; }
|
156
|
+
.ui-tabs .ui-tabs-nav li.ui-tabs-selected { padding-bottom: 1px; border-bottom-width: 0; }
|
157
|
+
.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
|
158
|
+
.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
|
159
|
+
.ui-tabs .ui-tabs-panel { padding: 1em 1.4em; display: block; border-width: 0; background: none; }
|
160
|
+
.ui-tabs .ui-tabs-hide { display: none !important; }
|
@@ -0,0 +1,160 @@
|
|
1
|
+
/*
|
2
|
+
* jQuery UI CSS Framework
|
3
|
+
* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
|
4
|
+
* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
|
5
|
+
*/
|
6
|
+
|
7
|
+
/* Layout helpers
|
8
|
+
----------------------------------*/
|
9
|
+
.ui-helper-hidden { display: none; }
|
10
|
+
.ui-helper-hidden-accessible { position: absolute; left: -99999999px; }
|
11
|
+
.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
|
12
|
+
.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
|
13
|
+
.ui-helper-clearfix { display: inline-block; }
|
14
|
+
/* required comment for clearfix to work in Opera \*/
|
15
|
+
* html .ui-helper-clearfix { height:1%; }
|
16
|
+
.ui-helper-clearfix { display:block; }
|
17
|
+
/* end clearfix */
|
18
|
+
.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
|
19
|
+
|
20
|
+
|
21
|
+
/* Interaction Cues
|
22
|
+
----------------------------------*/
|
23
|
+
.ui-state-disabled { cursor: default !important; }
|
24
|
+
|
25
|
+
|
26
|
+
/* Icons
|
27
|
+
----------------------------------*/
|
28
|
+
|
29
|
+
/* states and images */
|
30
|
+
.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
|
31
|
+
|
32
|
+
|
33
|
+
/* Misc visuals
|
34
|
+
----------------------------------*/
|
35
|
+
|
36
|
+
/* Overlays */
|
37
|
+
.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }/* Accordion
|
38
|
+
----------------------------------*/
|
39
|
+
.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
|
40
|
+
.ui-accordion .ui-accordion-li-fix { display: inline; }
|
41
|
+
.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
|
42
|
+
.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em 2.2em; }
|
43
|
+
.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
|
44
|
+
.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; }
|
45
|
+
.ui-accordion .ui-accordion-content-active { display: block; }/* Datepicker
|
46
|
+
----------------------------------*/
|
47
|
+
.ui-datepicker { width: 17em; padding: .2em .2em 0; }
|
48
|
+
.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
|
49
|
+
.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
|
50
|
+
.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
|
51
|
+
.ui-datepicker .ui-datepicker-prev { left:2px; }
|
52
|
+
.ui-datepicker .ui-datepicker-next { right:2px; }
|
53
|
+
.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
|
54
|
+
.ui-datepicker .ui-datepicker-next-hover { right:1px; }
|
55
|
+
.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; }
|
56
|
+
.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
|
57
|
+
.ui-datepicker .ui-datepicker-title select { float:left; font-size:1em; margin:1px 0; }
|
58
|
+
.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
|
59
|
+
.ui-datepicker select.ui-datepicker-month,
|
60
|
+
.ui-datepicker select.ui-datepicker-year { width: 49%;}
|
61
|
+
.ui-datepicker .ui-datepicker-title select.ui-datepicker-year { float: right; }
|
62
|
+
.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
|
63
|
+
.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
|
64
|
+
.ui-datepicker td { border: 0; padding: 1px; }
|
65
|
+
.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
|
66
|
+
.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
|
67
|
+
.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
|
68
|
+
.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
|
69
|
+
|
70
|
+
/* with multiple calendars */
|
71
|
+
.ui-datepicker.ui-datepicker-multi { width:auto; }
|
72
|
+
.ui-datepicker-multi .ui-datepicker-group { float:left; }
|
73
|
+
.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
|
74
|
+
.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
|
75
|
+
.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
|
76
|
+
.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
|
77
|
+
.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
|
78
|
+
.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
|
79
|
+
.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
|
80
|
+
.ui-datepicker-row-break { clear:both; width:100%; }
|
81
|
+
|
82
|
+
/* RTL support */
|
83
|
+
.ui-datepicker-rtl { direction: rtl; }
|
84
|
+
.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
|
85
|
+
.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
|
86
|
+
.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
|
87
|
+
.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
|
88
|
+
.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
|
89
|
+
.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
|
90
|
+
.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
|
91
|
+
.ui-datepicker-rtl .ui-datepicker-group { float:right; }
|
92
|
+
.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
|
93
|
+
.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
|
94
|
+
|
95
|
+
/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
|
96
|
+
.ui-datepicker-cover {
|
97
|
+
display: none; /*sorry for IE5*/
|
98
|
+
display/**/: block; /*sorry for IE5*/
|
99
|
+
position: absolute; /*must have*/
|
100
|
+
z-index: -1; /*must have*/
|
101
|
+
filter: mask(); /*must have*/
|
102
|
+
top: -4px; /*must have*/
|
103
|
+
left: -4px; /*must have*/
|
104
|
+
width: 200px; /*must have*/
|
105
|
+
height: 200px; /*must have*/
|
106
|
+
}/* Dialog
|
107
|
+
----------------------------------*/
|
108
|
+
.ui-dialog { position: relative; padding: .2em; width: 300px; }
|
109
|
+
.ui-dialog .ui-dialog-titlebar { padding: .5em .3em .3em 1em; position: relative; }
|
110
|
+
.ui-dialog .ui-dialog-title { float: left; margin: .1em 0 .2em; }
|
111
|
+
.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
|
112
|
+
.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
|
113
|
+
.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
|
114
|
+
.ui-dialog .ui-dialog-content { border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
|
115
|
+
.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
|
116
|
+
.ui-dialog .ui-dialog-buttonpane button { float: right; margin: .5em .4em .5em 0; cursor: pointer; padding: .2em .6em .3em .6em; line-height: 1.4em; width:auto; overflow:visible; }
|
117
|
+
.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
|
118
|
+
.ui-draggable .ui-dialog-titlebar { cursor: move; }
|
119
|
+
/* Progressbar
|
120
|
+
----------------------------------*/
|
121
|
+
.ui-progressbar { height:2em; text-align: left; }
|
122
|
+
.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }/* Resizable
|
123
|
+
----------------------------------*/
|
124
|
+
.ui-resizable { position: relative;}
|
125
|
+
.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
|
126
|
+
.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
|
127
|
+
.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0px; }
|
128
|
+
.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0px; }
|
129
|
+
.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0px; height: 100%; }
|
130
|
+
.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0px; height: 100%; }
|
131
|
+
.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
|
132
|
+
.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
|
133
|
+
.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
|
134
|
+
.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/* Slider
|
135
|
+
----------------------------------*/
|
136
|
+
.ui-slider { position: relative; text-align: left; }
|
137
|
+
.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
|
138
|
+
.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; }
|
139
|
+
|
140
|
+
.ui-slider-horizontal { height: .8em; }
|
141
|
+
.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
|
142
|
+
.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
|
143
|
+
.ui-slider-horizontal .ui-slider-range-min { left: 0; }
|
144
|
+
.ui-slider-horizontal .ui-slider-range-max { right: 0; }
|
145
|
+
|
146
|
+
.ui-slider-vertical { width: .8em; height: 100px; }
|
147
|
+
.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
|
148
|
+
.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
|
149
|
+
.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
|
150
|
+
.ui-slider-vertical .ui-slider-range-max { top: 0; }/* Tabs
|
151
|
+
----------------------------------*/
|
152
|
+
.ui-tabs { padding: .2em; zoom: 1; }
|
153
|
+
.ui-tabs .ui-tabs-nav { list-style: none; position: relative; padding: .2em .2em 0; }
|
154
|
+
.ui-tabs .ui-tabs-nav li { position: relative; float: left; border-bottom-width: 0 !important; margin: 0 .2em -1px 0; padding: 0; }
|
155
|
+
.ui-tabs .ui-tabs-nav li a { float: left; text-decoration: none; padding: .5em 1em; }
|
156
|
+
.ui-tabs .ui-tabs-nav li.ui-tabs-selected { padding-bottom: 1px; border-bottom-width: 0; }
|
157
|
+
.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
|
158
|
+
.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
|
159
|
+
.ui-tabs .ui-tabs-panel { padding: 1em 1.4em; display: block; border-width: 0; background: none; }
|
160
|
+
.ui-tabs .ui-tabs-hide { display: none !important; }
|