├── .gitignore ├── config.ru ├── oauth_example.yml ├── public ├── css │ ├── blue │ │ ├── bg.gif │ │ ├── asc.gif │ │ ├── desc.gif │ │ └── style.css │ ├── jquery-ui │ │ ├── images │ │ │ ├── ui-icons_222222_256x240.png │ │ │ ├── ui-icons_2e83ff_256x240.png │ │ │ ├── ui-icons_454545_256x240.png │ │ │ ├── ui-icons_888888_256x240.png │ │ │ ├── ui-icons_cd0a0a_256x240.png │ │ │ ├── ui-bg_flat_0_aaaaaa_40x100.png │ │ │ ├── ui-bg_glass_55_fbf9ee_1x400.png │ │ │ ├── ui-bg_glass_65_ffffff_1x400.png │ │ │ ├── ui-bg_glass_75_dadada_1x400.png │ │ │ ├── ui-bg_glass_75_e6e6e6_1x400.png │ │ │ ├── ui-bg_glass_75_ffffff_1x400.png │ │ │ ├── ui-bg_inset-soft_95_fef1ec_1x100.png │ │ │ └── ui-bg_highlight-soft_75_cccccc_1x100.png │ │ └── jquery-ui-1.8.13.custom.css │ └── unwatch.css ├── unwatch.js └── jquery.tablesorter.min.js ├── screenshot └── screenshot1.png ├── Gemfile ├── views ├── index.erb └── unwatch.erb ├── Gemfile.lock ├── README.md ├── test ├── unwatch.rb └── test_helper.rb └── lib └── unwatch.rb /.gitignore: -------------------------------------------------------------------------------- 1 | oauth.yml -------------------------------------------------------------------------------- /config.ru: -------------------------------------------------------------------------------- 1 | require './lib/unwatch' 2 | run Unwatch -------------------------------------------------------------------------------- /oauth_example.yml: -------------------------------------------------------------------------------- 1 | development: 2 | client_id: YOUR_CLIENT_ID 3 | secret: YOUR_SECRET -------------------------------------------------------------------------------- /public/css/blue/bg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengjia/unwatch/master/public/css/blue/bg.gif -------------------------------------------------------------------------------- /public/css/blue/asc.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengjia/unwatch/master/public/css/blue/asc.gif -------------------------------------------------------------------------------- /public/css/blue/desc.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengjia/unwatch/master/public/css/blue/desc.gif -------------------------------------------------------------------------------- /screenshot/screenshot1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengjia/unwatch/master/screenshot/screenshot1.png -------------------------------------------------------------------------------- /public/css/jquery-ui/images/ui-icons_222222_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengjia/unwatch/master/public/css/jquery-ui/images/ui-icons_222222_256x240.png -------------------------------------------------------------------------------- /public/css/jquery-ui/images/ui-icons_2e83ff_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengjia/unwatch/master/public/css/jquery-ui/images/ui-icons_2e83ff_256x240.png -------------------------------------------------------------------------------- /public/css/jquery-ui/images/ui-icons_454545_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengjia/unwatch/master/public/css/jquery-ui/images/ui-icons_454545_256x240.png -------------------------------------------------------------------------------- /public/css/jquery-ui/images/ui-icons_888888_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengjia/unwatch/master/public/css/jquery-ui/images/ui-icons_888888_256x240.png -------------------------------------------------------------------------------- /public/css/jquery-ui/images/ui-icons_cd0a0a_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengjia/unwatch/master/public/css/jquery-ui/images/ui-icons_cd0a0a_256x240.png -------------------------------------------------------------------------------- /public/css/jquery-ui/images/ui-bg_flat_0_aaaaaa_40x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengjia/unwatch/master/public/css/jquery-ui/images/ui-bg_flat_0_aaaaaa_40x100.png -------------------------------------------------------------------------------- /public/css/jquery-ui/images/ui-bg_glass_55_fbf9ee_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengjia/unwatch/master/public/css/jquery-ui/images/ui-bg_glass_55_fbf9ee_1x400.png -------------------------------------------------------------------------------- /public/css/jquery-ui/images/ui-bg_glass_65_ffffff_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengjia/unwatch/master/public/css/jquery-ui/images/ui-bg_glass_65_ffffff_1x400.png -------------------------------------------------------------------------------- /public/css/jquery-ui/images/ui-bg_glass_75_dadada_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengjia/unwatch/master/public/css/jquery-ui/images/ui-bg_glass_75_dadada_1x400.png -------------------------------------------------------------------------------- /public/css/jquery-ui/images/ui-bg_glass_75_e6e6e6_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengjia/unwatch/master/public/css/jquery-ui/images/ui-bg_glass_75_e6e6e6_1x400.png -------------------------------------------------------------------------------- /public/css/jquery-ui/images/ui-bg_glass_75_ffffff_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengjia/unwatch/master/public/css/jquery-ui/images/ui-bg_glass_75_ffffff_1x400.png -------------------------------------------------------------------------------- /public/css/jquery-ui/images/ui-bg_inset-soft_95_fef1ec_1x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengjia/unwatch/master/public/css/jquery-ui/images/ui-bg_inset-soft_95_fef1ec_1x100.png -------------------------------------------------------------------------------- /public/css/jquery-ui/images/ui-bg_highlight-soft_75_cccccc_1x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengjia/unwatch/master/public/css/jquery-ui/images/ui-bg_highlight-soft_75_cccccc_1x100.png -------------------------------------------------------------------------------- /public/css/unwatch.css: -------------------------------------------------------------------------------- 1 | table.tablesorter { 2 | font-size: 12px; 3 | } 4 | table.tablesorter tbody tr:hover { 5 | background: #EAE9E4; 6 | } 7 | table.tablesorter tbody tr { 8 | background-color: #FFF; 9 | } -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source :rubygems 2 | 3 | gem 'oauth2' 4 | gem 'json' 5 | gem 'sinatra' 6 | 7 | group :test do 8 | gem 'rack-test' 9 | gem 'test-unit' 10 | end 11 | 12 | group :development do 13 | gem 'pry' 14 | end 15 | -------------------------------------------------------------------------------- /views/index.erb: -------------------------------------------------------------------------------- 1 |

unwatch

2 |
3 | Authorize on github... 4 |
5 |

6 | unwatch filters your watched repositories based on last updated date. 7 |

8 |

9 | Currently github's interface for your watched repositories is not very user-friendly. If you are watching a lot of repositories and don't remember what the funny names are about, you have to visit the individual repository to find out. 10 |

11 |

12 | unwatch provides a simple interface to show the descriptions of your watched repositories and filter them based on last updated date. You can more easily unwatch an outdated repository. 13 |

14 | Fork me on github. 15 | -------------------------------------------------------------------------------- /public/unwatch.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function(){ 2 | $("table.tablesorter").tablesorter(); 3 | 4 | $(".unwatchLink").click(function(){ 5 | var that = this 6 | $.ajax({ 7 | type: "POST", 8 | dataType: "text", 9 | url: "/unwatch/" + $(this).data('username') + '/' + $(this).data('repo'), 10 | success: function(msg){ 11 | $("#notice").html(msg); 12 | $(that).parent().parent().remove(); 13 | }, 14 | error:function(xhr, ajaxOptions, thrownError){ 15 | $("#notice").html(xhr.responseText); 16 | } 17 | }); 18 | return false; 19 | }) 20 | 21 | $('#datePicker').datepicker(); 22 | $("#datePicker").bind("change", function(){ 23 | $('tr').show() 24 | var date_str = $(this).val() 25 | var date = Date.parse(date_str) 26 | if( jQuery.trim( date_str ) != "" ){ 27 | $(".pushDate").each(function(){ 28 | if(Date.parse( $(this).text() ) > date){ 29 | $(this).parent().hide(); 30 | } 31 | }) 32 | } 33 | else{ 34 | $('tr').show() 35 | } 36 | 37 | }); 38 | 39 | }) -------------------------------------------------------------------------------- /Gemfile.lock: -------------------------------------------------------------------------------- 1 | GEM 2 | remote: http://rubygems.org/ 3 | specs: 4 | coderay (1.1.0) 5 | faraday (0.9.1) 6 | multipart-post (>= 1.2, < 3) 7 | json (1.8.2) 8 | jwt (1.2.1) 9 | method_source (0.8.2) 10 | multi_json (1.10.1) 11 | multi_xml (0.5.5) 12 | multipart-post (2.0.0) 13 | oauth2 (1.0.0) 14 | faraday (>= 0.8, < 0.10) 15 | jwt (~> 1.0) 16 | multi_json (~> 1.3) 17 | multi_xml (~> 0.5) 18 | rack (~> 1.2) 19 | pry (0.10.1) 20 | coderay (~> 1.1.0) 21 | method_source (~> 0.8.1) 22 | slop (~> 3.4) 23 | rack (1.6.0) 24 | rack-protection (1.5.3) 25 | rack 26 | rack-test (0.6.3) 27 | rack (>= 1.0) 28 | sinatra (1.4.5) 29 | rack (~> 1.4) 30 | rack-protection (~> 1.4) 31 | tilt (~> 1.3, >= 1.3.4) 32 | slop (3.6.0) 33 | test-unit (2.1.2.0) 34 | tilt (1.4.1) 35 | 36 | PLATFORMS 37 | ruby 38 | 39 | DEPENDENCIES 40 | json 41 | oauth2 42 | pry 43 | rack-test 44 | sinatra 45 | test-unit 46 | -------------------------------------------------------------------------------- /public/css/blue/style.css: -------------------------------------------------------------------------------- 1 | /* tables */ 2 | table.tablesorter { 3 | font-family:arial; 4 | background-color: #CDCDCD; 5 | margin:10px 0pt 15px; 6 | font-size: 8pt; 7 | width: 100%; 8 | text-align: left; 9 | } 10 | table.tablesorter thead tr th, table.tablesorter tfoot tr th { 11 | background-color: #e6EEEE; 12 | border: 1px solid #FFF; 13 | font-size: 8pt; 14 | padding: 4px; 15 | } 16 | table.tablesorter thead tr .header { 17 | background-image: url(bg.gif); 18 | background-repeat: no-repeat; 19 | background-position: center right; 20 | cursor: pointer; 21 | } 22 | table.tablesorter tbody td { 23 | color: #3D3D3D; 24 | padding: 4px; 25 | vertical-align: top; 26 | } 27 | table.tablesorter tbody tr.odd td { 28 | background-color:#F0F0F6; 29 | } 30 | table.tablesorter thead tr .headerSortUp { 31 | background-image: url(asc.gif); 32 | } 33 | table.tablesorter thead tr .headerSortDown { 34 | background-image: url(desc.gif); 35 | } 36 | table.tablesorter thead tr .headerSortDown, table.tablesorter thead tr .headerSortUp { 37 | background-color: #8dbdd8; 38 | } 39 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | unwatch 2 | ------- 3 | unwatch filters your starred repos based on last updated date. You can more easily unstar an outdated repo. 4 | 5 | Note: This app actually **unstar** your repos, instead of **unwatch**. The repo was named before github add the "star" functionality. The repo should be changed to unstar to avoid confusion. 6 | 7 | Updates: Due to [high demand](https://twitter.com/danieljohngrant/status/553099594293608448), unwatch is made available again. 8 | 9 | demo 10 | ---- 11 | A demo is at [http://unwatch.heroku.com](http://unwatch.herokuapp.com). If you get an error when accessing the demo, it's likely because unwatch tries to load too many repositories and reaches Heroku's a 30 seconds execution limit. Please try running unwatch locally. 12 | 13 | screenshot 14 | ---------- 15 | ![unwatch](https://github.com/zhengjia/unwatch/raw/master/screenshot/screenshot1.png "unwatch") 16 | 17 | Currently github's interface of your starred repository is not very user-friendly. If you starred a lot of repositories and don't remember what the funny names are about, you have to visit individual repository to find out. 18 | 19 | unwatch provides a simple interface to show the descriptions of your starred repositories and filter them based on last updated date. 20 | 21 | development setup 22 | ----------------- 23 | 1. It's tested against ruby 2.2. 24 | 2. git clone https://github.com/zhengjia/unwatch.git 25 | 3. Register unwatch at https://github.com/settings/applications. You can name it unwatch-development; the url is a local ip like http://127.0.0.1:9292; callback is http://127.0.0.1:9292/auth/github/callback; 26 | 4. Copy oauth_example.yml to oauth.yml. Add you development client_id and secret obtained from step 3. 27 | 5. bundle 28 | 6. run test: ruby -Itest test/unwatch.rb 29 | 7. rackup 30 | 31 | production setup 32 | ---------------- 33 | 1. Register unwatch at https://github.com/settings/applications/ 34 | 2. Set the environment variable ENV['RACK_ENV'] to 'production'. 35 | 3. Set the oauth credentials obtained from step 1 in ENV['client_id'] and ENV['secret']. 36 | 37 | heroku deploy 38 | ------------- 39 | heroku config:set client_id=XXX secret=XXX RACK_ENV=production 40 | 41 | -------------------------------------------------------------------------------- /views/unwatch.erb: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
Username: <%= @username %>
16 |
17 | Repositories pushed before: 18 |
19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | <% @watched.each do |repository| %> 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | <% end %> 44 | 45 |
NameDescriptionOwnerWatchersForksPushed AtAction
<%= repository["name"]%><%= repository["description"]%><%= repository["owner"]["login"]%><%= repository["watchers"]%><%= repository["forks"]%><%= Time.parse(repository["pushed_at"]).strftime("%m/%d/%Y") %>Unstar
46 |
47 | 48 | 49 | -------------------------------------------------------------------------------- /test/unwatch.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path('../test_helper', __FILE__) 2 | 3 | class UnwatchTest < Test::Unit::TestCase 4 | 5 | def test_index_unauthorized 6 | get '/' 7 | assert last_response.ok? 8 | end 9 | 10 | def test_index_authorized 11 | get '/', {}, 'rack.session' => { :access_token => 'dummy' } 12 | assert_equal 302, last_response.status 13 | assert_equal "http://unwatch.heroku.com/list", last_response.location 14 | end 15 | 16 | def test_redirect_to_github_for_authentication 17 | get '/auth/github' 18 | follow_redirect! 19 | assert_match /https:\/\/github.com\/login\/oauth\/authorize/, last_request.url 20 | end 21 | 22 | def test_pass_client_id_to_github 23 | get '/auth/github' 24 | follow_redirect! 25 | assert_not_nil last_request.params['client_id'] 26 | assert !last_request.params['client_id'].empty? 27 | end 28 | 29 | def test_pass_scope_to_github 30 | get '/auth/github' 31 | follow_redirect! 32 | assert_not_nil last_request.params['scope'] 33 | assert !last_request.params['scope'].empty? 34 | end 35 | 36 | def test_redirect_uri 37 | get '/auth/github' 38 | follow_redirect! 39 | assert_equal "http://unwatch.heroku.com/auth/github/callback", last_request.params['redirect_uri'] 40 | end 41 | 42 | def test_github_callback_authorized 43 | 44 | mock_app(Unwatch) do 45 | helpers do 46 | def get_token(code) 47 | "dummy_token" 48 | end 49 | end 50 | end 51 | 52 | get '/auth/github/callback' 53 | assert_equal 302, last_response.status 54 | assert_equal "http://unwatch.heroku.com/", last_response.location 55 | end 56 | 57 | def test_list_unauthorized 58 | get '/list' 59 | assert_equal 302, last_response.status 60 | assert_equal "http://unwatch.heroku.com/", last_response.location 61 | end 62 | 63 | def test_list_authorized 64 | mock_app(Unwatch) do 65 | helpers do 66 | def get_init_data 67 | @username = "zhengjia" 68 | @watched = fixture_watched 69 | end 70 | end 71 | end 72 | get '/list', {}, 'rack.session' => { :access_token => 'dummy' } 73 | assert_equal 200, last_response.status 74 | end 75 | 76 | def test_unwatch_repo 77 | mock_app(Unwatch) do 78 | helpers do 79 | def unwatch_repo(username, repo) 80 | end 81 | end 82 | end 83 | post '/unwatch/zhengjia/unwatch' 84 | assert_equal 200, last_response.status 85 | end 86 | 87 | end 88 | -------------------------------------------------------------------------------- /lib/unwatch.rb: -------------------------------------------------------------------------------- 1 | ENV['RACK_ENV'] ||= 'development' 2 | 3 | require 'sinatra/base' 4 | require 'oauth2' 5 | require 'json' 6 | require 'yaml' 7 | 8 | if ENV['RACK_ENV'] == 'development' 9 | require 'pry' 10 | end 11 | 12 | class Unwatch < Sinatra::Base 13 | 14 | set :views, [File.expand_path('../views', File.dirname(__FILE__))] 15 | 16 | configure do 17 | if production? 18 | set :client_id, ENV['client_id'] 19 | set :secret, ENV['secret'] 20 | else 21 | config = YAML::load(File.open('oauth.yml')) 22 | set :client_id, config['development']['client_id'] 23 | set :secret, config['development']['secret'] 24 | end 25 | enable :sessions unless test? 26 | set :static, true 27 | set :public_folder, 'public' 28 | set :session_secret, "unwatch" # shotgun bug 29 | end 30 | 31 | helpers do 32 | def client 33 | if !session[:access_token] 34 | @auth_client ||= OAuth2::Client.new(settings.client_id, settings.secret, :site => 'https://github.com', :authorize_url => '/login/oauth/authorize', :token_url => '/login/oauth/access_token') 35 | else 36 | @api_client ||= OAuth2::Client.new(settings.client_id, settings.secret, :site => 'https://api.github.com') 37 | end 38 | end 39 | 40 | def access_token 41 | @access_token ||= OAuth2::AccessToken.new(client, session[:access_token]) 42 | end 43 | 44 | def send_request(uri, method='get') 45 | begin 46 | oauth_response = access_token.send(method, uri, headers) 47 | JSON.parse(oauth_response.body) unless oauth_response.body.empty? 48 | rescue OAuth2::Error => e 49 | session[:access_token] = nil 50 | status 503 51 | puts e.inspect 52 | halt %(

#{$!}

Retry

) 53 | end 54 | end 55 | 56 | def get_init_data 57 | @watched = [] 58 | @username = send_request('/user')['login'] 59 | @watched = walk_repos 60 | end 61 | 62 | def walk_repos 63 | page = 1 64 | results = [] 65 | res = [] 66 | begin 67 | res = send_request("/users/#{@username}/watched?page=#{page}") 68 | results.concat res 69 | page = page + 1 70 | end while !res.empty? 71 | results 72 | end 73 | 74 | def headers 75 | {'Accept' => 'application/vnd.github.3+json'} 76 | end 77 | 78 | def unwatch_repo(username, repo) 79 | send_request("/user/watched/#{username}/#{repo}", 'delete') 80 | end 81 | 82 | def redirect_uri(path = '/auth/github/callback', query = nil) 83 | uri = URI.parse(request.url) 84 | uri.path = path 85 | uri.query = query 86 | uri.to_s 87 | end 88 | 89 | def get_token(code) 90 | client.auth_code.get_token(code, :redirect_uri => redirect_uri).token 91 | end 92 | 93 | def has_access 94 | unless session[:access_token] 95 | redirect '/' 96 | end 97 | end 98 | 99 | end 100 | 101 | get "/" do 102 | if session[:access_token] 103 | redirect '/list' 104 | end 105 | erb :index 106 | end 107 | 108 | get '/list' do 109 | has_access 110 | get_init_data 111 | erb :unwatch 112 | end 113 | 114 | post '/unwatch/:username/:repo' do 115 | if params[:username] && params[:repo] 116 | unwatch_repo(params[:username], params[:repo]) 117 | repo_str = "#{params[:username]}/#{params[:repo]}" 118 | "Successfully unwatched #{repo_str}" 119 | else 120 | status 503 121 | halt "Failed to unwatch #{repo_str}" 122 | end 123 | end 124 | 125 | get '/auth/github' do 126 | url = client.auth_code.authorize_url(:redirect_uri => redirect_uri, :scope => 'public_repo') 127 | redirect url 128 | end 129 | 130 | get '/auth/github/callback' do 131 | token = get_token(params[:code]) 132 | session[:access_token] = token unless token.empty? 133 | if session[:access_token] 134 | redirect '/' 135 | else 136 | status 401 137 | halt %(

Please authorize on github.

Retry

) 138 | end 139 | end 140 | 141 | end 142 | -------------------------------------------------------------------------------- /public/jquery.tablesorter.min.js: -------------------------------------------------------------------------------- 1 | 2 | (function($){$.extend({tablesorter:new 3 | function(){var parsers=[],widgets=[];this.defaults={cssHeader:"header",cssAsc:"headerSortUp",cssDesc:"headerSortDown",cssChildRow:"expand-child",sortInitialOrder:"asc",sortMultiSortKey:"shiftKey",sortForce:null,sortAppend:null,sortLocaleCompare:true,textExtraction:"simple",parsers:{},widgets:[],widgetZebra:{css:["even","odd"]},headers:{},widthFixed:false,cancelSelection:true,sortList:[],headerList:[],dateFormat:"us",decimal:'/\.|\,/g',onRenderHeader:null,selectorHeaders:'thead th',debug:false};function benchmark(s,d){log(s+","+(new Date().getTime()-d.getTime())+"ms");}this.benchmark=benchmark;function log(s){if(typeof console!="undefined"&&typeof console.debug!="undefined"){console.log(s);}else{alert(s);}}function buildParserCache(table,$headers){if(table.config.debug){var parsersDebug="";}if(table.tBodies.length==0)return;var rows=table.tBodies[0].rows;if(rows[0]){var list=[],cells=rows[0].cells,l=cells.length;for(var i=0;i1){arr=arr.concat(checkCellColSpan(table,headerArr,row++));}else{if(table.tHead.length==1||(cell.rowSpan>1||!r[row+1])){arr.push(cell);}}}return arr;};function checkHeaderMetadata(cell){if(($.metadata)&&($(cell).metadata().sorter===false)){return true;};return false;}function checkHeaderOptions(table,i){if((table.config.headers[i])&&(table.config.headers[i].sorter===false)){return true;};return false;}function checkHeaderOptionsSortingLocked(table,i){if((table.config.headers[i])&&(table.config.headers[i].lockedOrder))return table.config.headers[i].lockedOrder;return false;}function applyWidget(table){var c=table.config.widgets;var l=c.length;for(var i=0;i');$("tr:first td",table.tBodies[0]).each(function(){colgroup.append($('').css('width',$(this).width()));});$(table).prepend(colgroup);};}function updateHeaderSortCount(table,sortList){var c=table.config,l=sortList.length;for(var i=0;i b["+i+"]) ? 1 : 0));";};function makeSortTextDesc(i){return"((b["+i+"] < a["+i+"]) ? -1 : ((b["+i+"] > a["+i+"]) ? 1 : 0));";};function makeSortNumeric(i){return"a["+i+"]-b["+i+"];";};function makeSortNumericDesc(i){return"b["+i+"]-a["+i+"];";};function sortText(a,b){if(table.config.sortLocaleCompare)return a.localeCompare(b);return((ab)?1:0));};function sortTextDesc(a,b){if(table.config.sortLocaleCompare)return b.localeCompare(a);return((ba)?1:0));};function sortNumeric(a,b){return a-b;};function sortNumericDesc(a,b){return b-a;};function getCachedSortType(parsers,i){return parsers[i].type;};this.construct=function(settings){return this.each(function(){if(!this.tHead||!this.tBodies)return;var $this,$document,$headers,cache,config,shiftDown=0,sortOrder;this.config={};config=$.extend(this.config,$.tablesorter.defaults,settings);$this=$(this);$.data(this,"tablesorter",config);$headers=buildHeaders(this);this.config.parsers=buildParserCache(this,$headers);cache=buildCache(this);var sortCSS=[config.cssDesc,config.cssAsc];fixColumnWidth(this);$headers.click(function(e){var totalRows=($this[0].tBodies[0]&&$this[0].tBodies[0].rows.length)||0;if(!this.sortDisabled&&totalRows>0){$this.trigger("sortStart");var $cell=$(this);var i=this.column;this.order=this.count++%2;if(this.lockedOrder)this.order=this.lockedOrder;if(!e[config.sortMultiSortKey]){config.sortList=[];if(config.sortForce!=null){var a=config.sortForce;for(var j=0;j0){$this.trigger("sorton",[config.sortList]);}applyWidget(this);});};this.addParser=function(parser){var l=parsers.length,a=true;for(var i=0;i"https://api.github.com/repos/zhengjia/ruby", "watchers"=>1, "has_downloads"=>false, "created_at"=>"2011-12-09T15:04:24Z", "ssh_url"=>"git@github.com:zhengjia/ruby.git", "description"=>"The Ruby Programming Language", "mirror_url"=>nil, "forks"=>0, "fork"=>true, "has_wiki"=>false, "clone_url"=>"https://github.com/zhengjia/ruby.git", "private"=>false, "homepage"=>"http://www.ruby-lang.org/", "size"=>168, "master_branch"=>"trunk", "pushed_at"=>"2011-12-09T18:37:09Z", "html_url"=>"https://github.com/zhengjia/ruby", "open_issues"=>0, "updated_at"=>"2011-12-09T18:37:13Z", "owner"=>{"url"=>"https://api.github.com/users/zhengjia", "gravatar_id"=>"a434c7b2837e1d09bc1a32b17e3ca2a6", "login"=>"zhengjia", "avatar_url"=>"https://secure.gravatar.com/avatar/a434c7b2837e1d09bc1a32b17e3ca2a6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png", "id"=>192933}, "name"=>"ruby", "id"=>2947978, "language"=>"Ruby"}, {"git_url"=>"git://github.com/visionmedia/watch.git", "svn_url"=>"https://github.com/visionmedia/watch", "has_issues"=>true, "url"=>"https://api.github.com/repos/visionmedia/watch", "watchers"=>105, "has_downloads"=>true, "created_at"=>"2011-12-09T21:12:07Z", "ssh_url"=>"git@github.com:visionmedia/watch.git", "description"=>"watch(1) periodically executes the given command - useful for auto-testing, auto-building, auto-anything ", "mirror_url"=>nil, "forks"=>9, "fork"=>false, "has_wiki"=>true, "clone_url"=>"https://github.com/visionmedia/watch.git", "private"=>false, "homepage"=>"", "size"=>180, "master_branch"=>nil, "pushed_at"=>"2011-12-17T19:40:04Z", "html_url"=>"https://github.com/visionmedia/watch", "open_issues"=>2, "updated_at"=>"2012-02-14T21:06:27Z", "owner"=>{"url"=>"https://api.github.com/users/visionmedia", "gravatar_id"=>"f1e3ab214a976a39cfd713bc93deb10f", "login"=>"visionmedia", "avatar_url"=>"https://secure.gravatar.com/avatar/f1e3ab214a976a39cfd713bc93deb10f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png", "id"=>25254}, "name"=>"watch", "id"=>2950145, "language"=>"C"}, {"git_url"=>"git://github.com/oscardelben/json_formatter.git", "svn_url"=>"https://github.com/oscardelben/json_formatter", "has_issues"=>true, "url"=>"https://api.github.com/repos/oscardelben/json_formatter", "watchers"=>25, "has_downloads"=>true, "created_at"=>"2011-12-09T22:27:33Z", "ssh_url"=>"git@github.com:oscardelben/json_formatter.git", "description"=>"Simple JSON formatter command line utility", "mirror_url"=>nil, "forks"=>1, "fork"=>false, "has_wiki"=>true, "clone_url"=>"https://github.com/oscardelben/json_formatter.git", "private"=>false, "homepage"=>"", "size"=>100, "master_branch"=>nil, "pushed_at"=>"2011-12-09T22:46:18Z", "html_url"=>"https://github.com/oscardelben/json_formatter", "open_issues"=>0, "updated_at"=>"2011-12-30T21:31:29Z", "owner"=>{"url"=>"https://api.github.com/users/oscardelben", "gravatar_id"=>"e7f9d52790d6ef7dd61956c65b8117e6", "login"=>"oscardelben", "avatar_url"=>"https://secure.gravatar.com/avatar/e7f9d52790d6ef7dd61956c65b8117e6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png", "id"=>3892}, "name"=>"json_formatter", "id"=>2950584, "language"=>"Ruby"}, {"git_url"=>"git://github.com/shichuan/javascript-patterns.git", "svn_url"=>"https://github.com/shichuan/javascript-patterns", "has_issues"=>true, "url"=>"https://api.github.com/repos/shichuan/javascript-patterns", "watchers"=>1007, "has_downloads"=>true, "created_at"=>"2011-12-10T01:10:29Z", "ssh_url"=>"git@github.com:shichuan/javascript-patterns.git", "description"=>"JavaScript Patterns", "mirror_url"=>nil, "forks"=>98, "fork"=>false, "has_wiki"=>true, "clone_url"=>"https://github.com/shichuan/javascript-patterns.git", "private"=>false, "homepage"=>"http://shichuan.github.com/javascript-patterns", "size"=>404, "master_branch"=>nil, "pushed_at"=>"2012-02-14T15:48:20Z", "html_url"=>"https://github.com/shichuan/javascript-patterns", "open_issues"=>10, "updated_at"=>"2012-02-16T02:15:53Z", "owner"=>{"url"=>"https://api.github.com/users/shichuan", "gravatar_id"=>"336ce96c7588ffb9c86b3cb5e83b52d5", "login"=>"shichuan", "avatar_url"=>"https://secure.gravatar.com/avatar/336ce96c7588ffb9c86b3cb5e83b52d5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png", "id"=>153513}, "name"=>"javascript-patterns", "id"=>2951379, "language"=>"JavaScript"}, {"git_url"=>"git://github.com/infochimps-cookbooks/resque.git", "svn_url"=>"https://github.com/infochimps-cookbooks/resque", "has_issues"=>false, "url"=>"https://api.github.com/repos/infochimps-cookbooks/resque", "watchers"=>2, "has_downloads"=>true, "created_at"=>"2011-12-13T03:13:13Z", "ssh_url"=>"git@github.com:infochimps-cookbooks/resque.git", "description"=>"resque chef cookbook - automatically installs and configures resque", "mirror_url"=>nil, "forks"=>1, "fork"=>false, "has_wiki"=>false, "clone_url"=>"https://github.com/infochimps-cookbooks/resque.git", "private"=>false, "homepage"=>"http://github.com/infochimps-labs/cluster_chef-homebase", "size"=>140, "master_branch"=>nil, "pushed_at"=>"2012-01-31T06:59:42Z", "html_url"=>"https://github.com/infochimps-cookbooks/resque", "open_issues"=>0, "updated_at"=>"2012-01-31T06:59:43Z", "owner"=>{"url"=>"https://api.github.com/users/infochimps-cookbooks", "gravatar_id"=>"e39621e1e183d5bd00fd68c67b5a623a", "login"=>"infochimps-cookbooks", "avatar_url"=>"https://secure.gravatar.com/avatar/e39621e1e183d5bd00fd68c67b5a623a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png", "id"=>1241015}, "name"=>"resque", "id"=>2969435, "language"=>"Ruby"}, {"git_url"=>"git://github.com/enyojs/enyo.git", "svn_url"=>"https://github.com/enyojs/enyo", "has_issues"=>true, "url"=>"https://api.github.com/repos/enyojs/enyo", "watchers"=>814, "has_downloads"=>true, "created_at"=>"2011-12-14T21:30:25Z", "ssh_url"=>"git@github.com:enyojs/enyo.git", "description"=>"A JavaScript application framework emphasizing modularity and encapsulation", "mirror_url"=>nil, "forks"=>47, "fork"=>false, "has_wiki"=>true, "clone_url"=>"https://github.com/enyojs/enyo.git", "private"=>false, "homepage"=>"", "size"=>2664, "master_branch"=>nil, "pushed_at"=>"2012-02-14T17:49:14Z", "html_url"=>"https://github.com/enyojs/enyo", "open_issues"=>12, "updated_at"=>"2012-02-16T00:58:43Z", "owner"=>{"url"=>"https://api.github.com/users/enyojs", "gravatar_id"=>"70103c13ada6801c095816e50198045c", "login"=>"enyojs", "avatar_url"=>"https://secure.gravatar.com/avatar/70103c13ada6801c095816e50198045c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png", "id"=>1266337}, "name"=>"enyo", "id"=>2983241, "language"=>"JavaScript"}, {"git_url"=>"git://github.com/igrigorik/bugspots.git", "svn_url"=>"https://github.com/igrigorik/bugspots", "has_issues"=>true, "url"=>"https://api.github.com/repos/igrigorik/bugspots", "watchers"=>243, "has_downloads"=>true, "created_at"=>"2011-12-15T07:03:46Z", "ssh_url"=>"git@github.com:igrigorik/bugspots.git", "description"=>"Implementation of simple bug prediction hotspot heuristic", "mirror_url"=>nil, "forks"=>15, "fork"=>false, "has_wiki"=>false, "clone_url"=>"https://github.com/igrigorik/bugspots.git", "private"=>false, "homepage"=>"http://google-engtools.blogspot.com/2011/12/bug-prediction-at-google.html", "size"=>132, "master_branch"=>nil, "pushed_at"=>"2012-01-15T16:29:47Z", "html_url"=>"https://github.com/igrigorik/bugspots", "open_issues"=>4, "updated_at"=>"2012-02-13T15:19:57Z", "owner"=>{"url"=>"https://api.github.com/users/igrigorik", "gravatar_id"=>"a17f0025641b4be419a6cd3845e55dd2", "login"=>"igrigorik", "avatar_url"=>"https://secure.gravatar.com/avatar/a17f0025641b4be419a6cd3845e55dd2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png", "id"=>10652}, "name"=>"bugspots", "id"=>2985945, "language"=>"Ruby"}, {"git_url"=>"git://github.com/visionmedia/screenshot-app.git", "svn_url"=>"https://github.com/visionmedia/screenshot-app", "has_issues"=>true, "url"=>"https://api.github.com/repos/visionmedia/screenshot-app", "watchers"=>259, "has_downloads"=>true, "created_at"=>"2011-12-18T15:26:01Z", "ssh_url"=>"git@github.com:visionmedia/screenshot-app.git", "description"=>"website screenshot service & app - powered by node.js, express, redis, node-canvas, phantomjs and more ", "mirror_url"=>nil, "forks"=>14, "fork"=>false, "has_wiki"=>true, "clone_url"=>"https://github.com/visionmedia/screenshot-app.git", "private"=>false, "homepage"=>"", "size"=>124, "master_branch"=>nil, "pushed_at"=>"2012-01-05T20:37:59Z", "html_url"=>"https://github.com/visionmedia/screenshot-app", "open_issues"=>0, "updated_at"=>"2012-02-15T23:00:44Z", "owner"=>{"url"=>"https://api.github.com/users/visionmedia", "gravatar_id"=>"f1e3ab214a976a39cfd713bc93deb10f", "login"=>"visionmedia", "avatar_url"=>"https://secure.gravatar.com/avatar/f1e3ab214a976a39cfd713bc93deb10f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png", "id"=>25254}, "name"=>"screenshot-app", "id"=>3006470, "language"=>"JavaScript"}, {"git_url"=>"git://github.com/addyosmani/backbone-fundamentals.git", "svn_url"=>"https://github.com/addyosmani/backbone-fundamentals", "has_issues"=>true, "url"=>"https://api.github.com/repos/addyosmani/backbone-fundamentals", "watchers"=>2515, "has_downloads"=>true, "created_at"=>"2011-12-20T20:49:44Z", "ssh_url"=>"git@github.com:addyosmani/backbone-fundamentals.git", "description"=>"A creative-commons book on Backbone.js for beginners and advanced users alike", "mirror_url"=>nil, "forks"=>125, "fork"=>false, "has_wiki"=>true, "clone_url"=>"https://github.com/addyosmani/backbone-fundamentals.git", "private"=>false, "homepage"=>"", "size"=>360, "master_branch"=>nil, "pushed_at"=>"2012-02-07T15:20:22Z", "html_url"=>"https://github.com/addyosmani/backbone-fundamentals", "open_issues"=>11, "updated_at"=>"2012-02-15T22:50:25Z", "owner"=>{"url"=>"https://api.github.com/users/addyosmani", "gravatar_id"=>"96270e4c3e5e9806cf7245475c00b275", "login"=>"addyosmani", "avatar_url"=>"https://secure.gravatar.com/avatar/96270e4c3e5e9806cf7245475c00b275?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png", "id"=>110953}, "name"=>"backbone-fundamentals", "id"=>3022431, "language"=>"JavaScript"}, {"git_url"=>"git://github.com/fnichol/chef-rbenv.git", "svn_url"=>"https://github.com/fnichol/chef-rbenv", "has_issues"=>true, "url"=>"https://api.github.com/repos/fnichol/chef-rbenv", "watchers"=>17, "has_downloads"=>true, "created_at"=>"2011-12-21T19:13:56Z", "ssh_url"=>"git@github.com:fnichol/chef-rbenv.git", "description"=>"Chef cookbook for ruby-build. Manages rbenv and its installed rubies. Several LWRPs are also defined.", "mirror_url"=>nil, "forks"=>4, "fork"=>false, "has_wiki"=>true, "clone_url"=>"https://github.com/fnichol/chef-rbenv.git", "private"=>false, "homepage"=>"", "size"=>196, "master_branch"=>nil, "pushed_at"=>"2012-01-23T21:57:29Z", "html_url"=>"https://github.com/fnichol/chef-rbenv", "open_issues"=>3, "updated_at"=>"2012-02-13T09:51:18Z", "owner"=>{"url"=>"https://api.github.com/users/fnichol", "gravatar_id"=>"9891e8299426fb9b6e361b84b3155a2d", "login"=>"fnichol", "avatar_url"=>"https://secure.gravatar.com/avatar/9891e8299426fb9b6e361b84b3155a2d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png", "id"=>261548}, "name"=>"chef-rbenv", "id"=>3029040, "language"=>"Ruby"}] 26 | [{"description"=>"A compiler for the Mustache templating language", "ssh_url"=>"git@github.com:twitter/hogan.js.git", "clone_url"=>"https://github.com/twitter/hogan.js.git", "forks"=>56, "mirror_url"=>nil, "has_wiki"=>true, "updated_at"=>"2012-02-16T01:47:22Z", "owner"=>{"gravatar_id"=>"74e977ae0a10f06057a119eef30c6660", "login"=>"twitter", "avatar_url"=>"https://secure.gravatar.com/avatar/74e977ae0a10f06057a119eef30c6660?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png", "url"=>"https://api.github.com/users/twitter", "id"=>50278}, "homepage"=>"http://twitter.github.com/hogan.js", "open_issues"=>9, "created_at"=>"2011-12-21T19:58:09Z", "git_url"=>"git://github.com/twitter/hogan.js.git", "language"=>"JavaScript", "master_branch"=>nil, "html_url"=>"https://github.com/twitter/hogan.js", "svn_url"=>"https://github.com/twitter/hogan.js", "watchers"=>1416, "fork"=>false, "size"=>176, "has_issues"=>true, "has_downloads"=>true, "pushed_at"=>"2012-02-14T17:43:46Z", "name"=>"hogan.js", "private"=>false, "id"=>3029324, "url"=>"https://api.github.com/repos/twitter/hogan.js"}, {"description"=>"bootstrap vagrant with rbenv and ruby 1.9.3 installed", "ssh_url"=>"git@github.com:zhengjia/vagrant-rbenv.git", "clone_url"=>"https://github.com/zhengjia/vagrant-rbenv.git", "forks"=>1, "mirror_url"=>nil, "has_wiki"=>true, "updated_at"=>"2011-12-24T06:06:51Z", "owner"=>{"gravatar_id"=>"a434c7b2837e1d09bc1a32b17e3ca2a6", "login"=>"zhengjia", "avatar_url"=>"https://secure.gravatar.com/avatar/a434c7b2837e1d09bc1a32b17e3ca2a6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png", "url"=>"https://api.github.com/users/zhengjia", "id"=>192933}, "homepage"=>"", "open_issues"=>0, "created_at"=>"2011-12-24T06:05:15Z", "git_url"=>"git://github.com/zhengjia/vagrant-rbenv.git", "language"=>"Ruby", "master_branch"=>nil, "html_url"=>"https://github.com/zhengjia/vagrant-rbenv", "svn_url"=>"https://github.com/zhengjia/vagrant-rbenv", "watchers"=>1, "fork"=>false, "size"=>116, "has_issues"=>true, "has_downloads"=>true, "pushed_at"=>"2011-12-24T06:06:51Z", "name"=>"vagrant-rbenv", "private"=>false, "id"=>3043849, "url"=>"https://api.github.com/repos/zhengjia/vagrant-rbenv"}, {"description"=>"HTML, CSS, and JS toolkit for facebook apps", "ssh_url"=>"git@github.com:ckrack/fbootstrapp.git", "clone_url"=>"https://github.com/ckrack/fbootstrapp.git", "forks"=>59, "mirror_url"=>nil, "has_wiki"=>true, "updated_at"=>"2012-02-15T21:07:23Z", "owner"=>{"gravatar_id"=>"53c2a1ad8ab5303551797c85b4db5f84", "login"=>"ckrack", "avatar_url"=>"https://secure.gravatar.com/avatar/53c2a1ad8ab5303551797c85b4db5f84?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png", "url"=>"https://api.github.com/users/ckrack", "id"=>154858}, "homepage"=>"http://ckrack.github.com/fbootstrapp/", "open_issues"=>5, "created_at"=>"2011-12-24T16:39:07Z", "git_url"=>"git://github.com/ckrack/fbootstrapp.git", "language"=>"JavaScript", "master_branch"=>"master", "html_url"=>"https://github.com/ckrack/fbootstrapp", "svn_url"=>"https://github.com/ckrack/fbootstrapp", "watchers"=>1036, "fork"=>true, "size"=>244, "has_issues"=>true, "has_downloads"=>true, "pushed_at"=>"2012-01-17T16:16:41Z", "name"=>"fbootstrapp", "private"=>false, "id"=>3045317, "url"=>"https://api.github.com/repos/ckrack/fbootstrapp"}, {"description"=>"A playground tinkertool for rapid web iteration", "ssh_url"=>"git@github.com:rocktronica/tmpltr.git", "clone_url"=>"https://github.com/rocktronica/tmpltr.git", "forks"=>14, "mirror_url"=>nil, "has_wiki"=>true, "updated_at"=>"2012-02-10T17:12:29Z", "owner"=>{"gravatar_id"=>"10b94e1bbcf20410a01bf3340360ead6", "login"=>"rocktronica", "avatar_url"=>"https://secure.gravatar.com/avatar/10b94e1bbcf20410a01bf3340360ead6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png", "url"=>"https://api.github.com/users/rocktronica", "id"=>270539}, "homepage"=>"http://tmpltr.com/", "open_issues"=>0, "created_at"=>"2011-12-26T06:32:41Z", "git_url"=>"git://github.com/rocktronica/tmpltr.git", "language"=>"JavaScript", "master_branch"=>"gh-pages", "html_url"=>"https://github.com/rocktronica/tmpltr", "svn_url"=>"https://github.com/rocktronica/tmpltr", "watchers"=>167, "fork"=>false, "size"=>140, "has_issues"=>true, "has_downloads"=>true, "pushed_at"=>"2012-01-19T04:21:14Z", "name"=>"tmpltr", "private"=>false, "id"=>3050548, "url"=>"https://api.github.com/repos/rocktronica/tmpltr"}, {"description"=>"GitPaste is a clone of GitHub's Gist.", "ssh_url"=>"git@github.com:justinvh/gitpaste.git", "clone_url"=>"https://github.com/justinvh/gitpaste.git", "forks"=>7, "mirror_url"=>nil, "has_wiki"=>true, "updated_at"=>"2012-02-13T05:46:51Z", "owner"=>{"gravatar_id"=>"9942d7ad2424e1bf308fe61ec18b6ff2", "login"=>"justinvh", "avatar_url"=>"https://secure.gravatar.com/avatar/9942d7ad2424e1bf308fe61ec18b6ff2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png", "url"=>"https://api.github.com/users/justinvh", "id"=>45720}, "homepage"=>"http://www.gitpaste.com/", "open_issues"=>2, "created_at"=>"2011-12-26T20:32:33Z", "git_url"=>"git://github.com/justinvh/gitpaste.git", "language"=>"Python", "master_branch"=>nil, "html_url"=>"https://github.com/justinvh/gitpaste", "svn_url"=>"https://github.com/justinvh/gitpaste", "watchers"=>43, "fork"=>false, "size"=>180, "has_issues"=>true, "has_downloads"=>true, "pushed_at"=>"2012-02-13T05:13:34Z", "name"=>"gitpaste", "private"=>false, "id"=>3053245, "url"=>"https://api.github.com/repos/justinvh/gitpaste"}, {"description"=>"It's a presentation framework based on the power of CSS3 transforms and transitions in modern browsers and inspired by the idea behind prezi.com.", "ssh_url"=>"git@github.com:bartaz/impress.js.git", "clone_url"=>"https://github.com/bartaz/impress.js.git", "forks"=>893, "mirror_url"=>nil, "has_wiki"=>false, "updated_at"=>"2012-02-16T03:16:10Z", "owner"=>{"gravatar_id"=>"b1d34875b6175ed2b5377b13a4782dba", "login"=>"bartaz", "avatar_url"=>"https://secure.gravatar.com/avatar/b1d34875b6175ed2b5377b13a4782dba?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png", "url"=>"https://api.github.com/users/bartaz", "id"=>83575}, "homepage"=>"http://bartaz.github.com/impress.js", "open_issues"=>17, "created_at"=>"2011-12-28T22:23:19Z", "git_url"=>"git://github.com/bartaz/impress.js.git", "language"=>"JavaScript", "master_branch"=>nil, "html_url"=>"https://github.com/bartaz/impress.js", "svn_url"=>"https://github.com/bartaz/impress.js", "watchers"=>6325, "fork"=>false, "size"=>292, "has_issues"=>true, "has_downloads"=>true, "pushed_at"=>"2012-02-15T22:57:05Z", "name"=>"impress.js", "private"=>false, "id"=>3065454, "url"=>"https://api.github.com/repos/bartaz/impress.js"}, {"description"=>"A simple Rails app for testing CRUD with ember.js and ember-data.js", "ssh_url"=>"git@github.com:dgeb/ember_data_example.git", "clone_url"=>"https://github.com/dgeb/ember_data_example.git", "forks"=>1, "mirror_url"=>nil, "has_wiki"=>true, "updated_at"=>"2012-02-13T14:32:08Z", "owner"=>{"gravatar_id"=>"e01ec1de2f7783812d2235a6a9aaaeea", "login"=>"dgeb", "avatar_url"=>"https://secure.gravatar.com/avatar/e01ec1de2f7783812d2235a6a9aaaeea?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png", "url"=>"https://api.github.com/users/dgeb", "id"=>29122}, "homepage"=>"", "open_issues"=>3, "created_at"=>"2011-12-30T22:01:33Z", "git_url"=>"git://github.com/dgeb/ember_data_example.git", "language"=>"JavaScript", "master_branch"=>nil, "html_url"=>"https://github.com/dgeb/ember_data_example", "svn_url"=>"https://github.com/dgeb/ember_data_example", "watchers"=>13, "fork"=>false, "size"=>1016, "has_issues"=>true, "has_downloads"=>true, "pushed_at"=>"2012-02-13T14:32:07Z", "name"=>"ember_data_example", "private"=>false, "id"=>3076933, "url"=>"https://api.github.com/repos/dgeb/ember_data_example"}, {"description"=>"Pointers to useful, well-written, and otherwise beautiful documentation.", "ssh_url"=>"git@github.com:PharkMillups/beautiful-docs.git", "clone_url"=>"https://github.com/PharkMillups/beautiful-docs.git", "forks"=>33, "mirror_url"=>nil, "has_wiki"=>true, "updated_at"=>"2012-02-15T06:24:59Z", "owner"=>{"gravatar_id"=>"886ea54452bb5377840a3569d1952f1b", "login"=>"PharkMillups", "avatar_url"=>"https://secure.gravatar.com/avatar/886ea54452bb5377840a3569d1952f1b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png", "url"=>"https://api.github.com/users/PharkMillups", "id"=>177426}, "homepage"=>"", "open_issues"=>0, "created_at"=>"2012-01-04T22:23:26Z", "git_url"=>"git://github.com/PharkMillups/beautiful-docs.git", "language"=>nil, "master_branch"=>nil, "html_url"=>"https://github.com/PharkMillups/beautiful-docs", "svn_url"=>"https://github.com/PharkMillups/beautiful-docs", "watchers"=>284, "fork"=>false, "size"=>196, "has_issues"=>true, "has_downloads"=>true, "pushed_at"=>"2012-02-13T21:11:01Z", "name"=>"beautiful-docs", "private"=>false, "id"=>3105906, "url"=>"https://api.github.com/repos/PharkMillups/beautiful-docs"}, {"description"=>"A web interface for managing redis: cli, admin, and live monitoring", "ssh_url"=>"git@github.com:steelThread/redmon.git", "clone_url"=>"https://github.com/steelThread/redmon.git", "forks"=>17, "mirror_url"=>nil, "has_wiki"=>false, "updated_at"=>"2012-02-15T04:15:57Z", "owner"=>{"gravatar_id"=>"01ab3366912eb69c14092f933c89e9e1", "login"=>"steelThread", "avatar_url"=>"https://secure.gravatar.com/avatar/01ab3366912eb69c14092f933c89e9e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png", "url"=>"https://api.github.com/users/steelThread", "id"=>346510}, "homepage"=>"", "open_issues"=>1, "created_at"=>"2012-01-05T00:59:07Z", "git_url"=>"git://github.com/steelThread/redmon.git", "language"=>"JavaScript", "master_branch"=>nil, "html_url"=>"https://github.com/steelThread/redmon", "svn_url"=>"https://github.com/steelThread/redmon", "watchers"=>552, "fork"=>false, "size"=>172, "has_issues"=>true, "has_downloads"=>true, "pushed_at"=>"2012-02-14T01:23:31Z", "name"=>"redmon", "private"=>false, "id"=>3106812, "url"=>"https://api.github.com/repos/steelThread/redmon"}, {"description"=>"Session.js - Get user session information", "ssh_url"=>"git@github.com:codejoust/session.js.git", "clone_url"=>"https://github.com/codejoust/session.js.git", "forks"=>60, "mirror_url"=>nil, "has_wiki"=>true, "updated_at"=>"2012-02-15T02:39:52Z", "owner"=>{"gravatar_id"=>"b96e4f3c5b1eb95587507aaabfe9ac2f", "login"=>"codejoust", "avatar_url"=>"https://secure.gravatar.com/avatar/b96e4f3c5b1eb95587507aaabfe9ac2f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png", "url"=>"https://api.github.com/users/codejoust", "id"=>123693}, "homepage"=>"", "open_issues"=>4, "created_at"=>"2012-01-06T21:54:35Z", "git_url"=>"git://github.com/codejoust/session.js.git", "language"=>"JavaScript", "master_branch"=>nil, "html_url"=>"https://github.com/codejoust/session.js", "svn_url"=>"https://github.com/codejoust/session.js", "watchers"=>985, "fork"=>false, "size"=>172, "has_issues"=>true, "has_downloads"=>true, "pushed_at"=>"2012-02-01T18:26:02Z", "name"=>"session.js", "private"=>false, "id"=>3121301, "url"=>"https://api.github.com/repos/codejoust/session.js"}, {"description"=>"", "ssh_url"=>"git@github.com:zhengjia/test1-mongo.git", "clone_url"=>"https://github.com/zhengjia/test1-mongo.git", "forks"=>1, "mirror_url"=>nil, "has_wiki"=>true, "updated_at"=>"2012-01-12T03:26:31Z", "owner"=>{"gravatar_id"=>"a434c7b2837e1d09bc1a32b17e3ca2a6", "login"=>"zhengjia", "avatar_url"=>"https://secure.gravatar.com/avatar/a434c7b2837e1d09bc1a32b17e3ca2a6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png", "url"=>"https://api.github.com/users/zhengjia", "id"=>192933}, "homepage"=>"", "open_issues"=>0, "created_at"=>"2012-01-12T03:26:16Z", "git_url"=>"git://github.com/zhengjia/test1-mongo.git", "language"=>"Ruby", "master_branch"=>nil, "html_url"=>"https://github.com/zhengjia/test1-mongo", "svn_url"=>"https://github.com/zhengjia/test1-mongo", "watchers"=>1, "fork"=>false, "size"=>120, "has_issues"=>true, "has_downloads"=>true, "pushed_at"=>"2012-01-12T03:26:31Z", "name"=>"test1-mongo", "private"=>false, "id"=>3159488, "url"=>"https://api.github.com/repos/zhengjia/test1-mongo"}, {"description"=>"Simple, efficient message processing for Ruby", "ssh_url"=>"git@github.com:mperham/sidekiq.git", "clone_url"=>"https://github.com/mperham/sidekiq.git", "forks"=>14, "mirror_url"=>nil, "has_wiki"=>true, "updated_at"=>"2012-02-15T23:44:45Z", "owner"=>{"gravatar_id"=>"af54a0871600db7fbdbb5c558a6e29a3", "login"=>"mperham", "avatar_url"=>"https://secure.gravatar.com/avatar/af54a0871600db7fbdbb5c558a6e29a3?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png", "url"=>"https://api.github.com/users/mperham", "id"=>2911}, "homepage"=>"http://mperham.github.com/sidekiq", "open_issues"=>7, "created_at"=>"2012-01-16T23:17:27Z", "git_url"=>"git://github.com/mperham/sidekiq.git", "language"=>"Ruby", "master_branch"=>nil, "html_url"=>"https://github.com/mperham/sidekiq", "svn_url"=>"https://github.com/mperham/sidekiq", "watchers"=>353, "fork"=>false, "size"=>152, "has_issues"=>true, "has_downloads"=>true, "pushed_at"=>"2012-02-15T20:30:47Z", "name"=>"sidekiq", "private"=>false, "id"=>3195124, "url"=>"https://api.github.com/repos/mperham/sidekiq"}, {"description"=>"Pretty documentation generator for Github projects with proper Readme.", "ssh_url"=>"git@github.com:jeromegn/DocumentUp.git", "clone_url"=>"https://github.com/jeromegn/DocumentUp.git", "forks"=>21, "mirror_url"=>nil, "has_wiki"=>true, "updated_at"=>"2012-02-15T18:50:59Z", "owner"=>{"gravatar_id"=>"c96dbcc746d551ea0665da4a23536280", "login"=>"jeromegn", "avatar_url"=>"https://secure.gravatar.com/avatar/c96dbcc746d551ea0665da4a23536280?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png", "url"=>"https://api.github.com/users/jeromegn", "id"=>43325}, "homepage"=>"http://documentup.com", "open_issues"=>10, "created_at"=>"2012-01-22T17:41:35Z", "git_url"=>"git://github.com/jeromegn/DocumentUp.git", "language"=>"CoffeeScript", "master_branch"=>nil, "html_url"=>"https://github.com/jeromegn/DocumentUp", "svn_url"=>"https://github.com/jeromegn/DocumentUp", "watchers"=>259, "fork"=>false, "size"=>244, "has_issues"=>true, "has_downloads"=>true, "pushed_at"=>"2012-02-08T04:56:23Z", "name"=>"DocumentUp", "private"=>false, "id"=>3240891, "url"=>"https://api.github.com/repos/jeromegn/DocumentUp"}, {"description"=>"A small library for manipulating the favicon, in particular adding alert bubbles and changing images. ", "ssh_url"=>"git@github.com:tommoor/tinycon.git", "clone_url"=>"https://github.com/tommoor/tinycon.git", "forks"=>53, "mirror_url"=>nil, "has_wiki"=>true, "updated_at"=>"2012-02-15T21:50:17Z", "owner"=>{"gravatar_id"=>"166e0b975c36bbe15caa65209940035c", "login"=>"tommoor", "avatar_url"=>"https://secure.gravatar.com/avatar/166e0b975c36bbe15caa65209940035c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png", "url"=>"https://api.github.com/users/tommoor", "id"=>380914}, "homepage"=>"", "open_issues"=>1, "created_at"=>"2012-01-30T02:17:54Z", "git_url"=>"git://github.com/tommoor/tinycon.git", "language"=>"JavaScript", "master_branch"=>nil, "html_url"=>"https://github.com/tommoor/tinycon", "svn_url"=>"https://github.com/tommoor/tinycon", "watchers"=>1252, "fork"=>false, "size"=>168, "has_issues"=>true, "has_downloads"=>true, "pushed_at"=>"2012-02-13T08:25:39Z", "name"=>"tinycon", "private"=>false, "id"=>3301623, "url"=>"https://api.github.com/repos/tommoor/tinycon"}, {"description"=>"a Library for Javascript that allows easy page parallaxing", "ssh_url"=>"git@github.com:stolksdorf/Parallaxjs.git", "clone_url"=>"https://github.com/stolksdorf/Parallaxjs.git", "forks"=>40, "mirror_url"=>nil, "has_wiki"=>true, "updated_at"=>"2012-02-15T05:27:15Z", "owner"=>{"gravatar_id"=>"8aae4225a941c639109291dae503668f", "login"=>"stolksdorf", "avatar_url"=>"https://secure.gravatar.com/avatar/8aae4225a941c639109291dae503668f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png", "url"=>"https://api.github.com/users/stolksdorf", "id"=>387742}, "homepage"=>"", "open_issues"=>1, "created_at"=>"2012-01-30T23:39:37Z", "git_url"=>"git://github.com/stolksdorf/Parallaxjs.git", "language"=>"JavaScript", "master_branch"=>nil, "html_url"=>"https://github.com/stolksdorf/Parallaxjs", "svn_url"=>"https://github.com/stolksdorf/Parallaxjs", "watchers"=>286, "fork"=>false, "size"=>116, "has_issues"=>true, "has_downloads"=>true, "pushed_at"=>"2012-02-06T18:37:39Z", "name"=>"Parallaxjs", "private"=>false, "id"=>3310124, "url"=>"https://api.github.com/repos/stolksdorf/Parallaxjs"}, {"description"=>"A simple light-weight JavaScript library for dealing with touch events", "ssh_url"=>"git@github.com:jairajs89/Touchy.js.git", "clone_url"=>"https://github.com/jairajs89/Touchy.js.git", "forks"=>25, "mirror_url"=>nil, "has_wiki"=>true, "updated_at"=>"2012-02-16T00:23:22Z", "owner"=>{"gravatar_id"=>"caaaaf3289559e8b568375a6d4d92157", "login"=>"jairajs89", "avatar_url"=>"https://secure.gravatar.com/avatar/caaaaf3289559e8b568375a6d4d92157?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png", "url"=>"https://api.github.com/users/jairajs89", "id"=>117957}, "homepage"=>"", "open_issues"=>0, "created_at"=>"2012-02-03T23:39:55Z", "git_url"=>"git://github.com/jairajs89/Touchy.js.git", "language"=>"JavaScript", "master_branch"=>nil, "html_url"=>"https://github.com/jairajs89/Touchy.js", "svn_url"=>"https://github.com/jairajs89/Touchy.js", "watchers"=>728, "fork"=>false, "size"=>116, "has_issues"=>true, "has_downloads"=>true, "pushed_at"=>"2012-02-05T00:25:29Z", "name"=>"Touchy.js", "private"=>false, "id"=>3349413, "url"=>"https://api.github.com/repos/jairajs89/Touchy.js"}, {"description"=>"turn.js The page flip effect for HTML5", "ssh_url"=>"git@github.com:blasten/turn.js.git", "clone_url"=>"https://github.com/blasten/turn.js.git", "forks"=>72, "mirror_url"=>nil, "has_wiki"=>true, "updated_at"=>"2012-02-16T03:19:51Z", "owner"=>{"gravatar_id"=>"43aa05faa169312bbebfba825087869b", "login"=>"blasten", "avatar_url"=>"https://secure.gravatar.com/avatar/43aa05faa169312bbebfba825087869b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png", "url"=>"https://api.github.com/users/blasten", "id"=>1410613}, "homepage"=>"www.turnjs.com", "open_issues"=>6, "created_at"=>"2012-02-05T20:07:10Z", "git_url"=>"git://github.com/blasten/turn.js.git", "language"=>"JavaScript", "master_branch"=>nil, "html_url"=>"https://github.com/blasten/turn.js", "svn_url"=>"https://github.com/blasten/turn.js", "watchers"=>721, "fork"=>false, "size"=>144, "has_issues"=>true, "has_downloads"=>true, "pushed_at"=>"2012-02-15T05:34:51Z", "name"=>"turn.js", "private"=>false, "id"=>3361835, "url"=>"https://api.github.com/repos/blasten/turn.js"}, {"description"=>"Themed swatches for Twitter Bootstrap.", "ssh_url"=>"git@github.com:thomaspark/bootswatch.git", "clone_url"=>"https://github.com/thomaspark/bootswatch.git", "forks"=>6, "mirror_url"=>nil, "has_wiki"=>true, "updated_at"=>"2012-02-16T04:04:51Z", "owner"=>{"gravatar_id"=>"cf3a5458baaf561511a1103ca19b630a", "login"=>"thomaspark", "avatar_url"=>"https://secure.gravatar.com/avatar/cf3a5458baaf561511a1103ca19b630a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png", "url"=>"https://api.github.com/users/thomaspark", "id"=>900407}, "homepage"=>"http://bootswatch.com", "open_issues"=>0, "created_at"=>"2012-02-07T04:31:56Z", "git_url"=>"git://github.com/thomaspark/bootswatch.git", "language"=>nil, "master_branch"=>nil, "html_url"=>"https://github.com/thomaspark/bootswatch", "svn_url"=>"https://github.com/thomaspark/bootswatch", "watchers"=>137, "fork"=>false, "size"=>132, "has_issues"=>true, "has_downloads"=>true, "pushed_at"=>"2012-02-16T03:27:52Z", "name"=>"bootswatch", "private"=>false, "id"=>3374332, "url"=>"https://api.github.com/repos/thomaspark/bootswatch"}, {"description"=>"Very low footprint JSON parser written in portable ANSI C", "ssh_url"=>"git@github.com:udp/json-parser.git", "clone_url"=>"https://github.com/udp/json-parser.git", "forks"=>12, "mirror_url"=>nil, "has_wiki"=>true, "updated_at"=>"2012-02-15T14:02:45Z", "owner"=>{"gravatar_id"=>"4a799663c0ed015c925ea4234762539c", "login"=>"udp", "avatar_url"=>"https://secure.gravatar.com/avatar/4a799663c0ed015c925ea4234762539c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png", "url"=>"https://api.github.com/users/udp", "id"=>454895}, "homepage"=>"", "open_issues"=>0, "created_at"=>"2012-02-12T18:15:15Z", "git_url"=>"git://github.com/udp/json-parser.git", "language"=>"C", "master_branch"=>nil, "html_url"=>"https://github.com/udp/json-parser", "svn_url"=>"https://github.com/udp/json-parser", "watchers"=>205, "fork"=>false, "size"=>128, "has_issues"=>true, "has_downloads"=>true, "pushed_at"=>"2012-02-13T14:16:49Z", "name"=>"json-parser", "private"=>false, "id"=>3423596, "url"=>"https://api.github.com/repos/udp/json-parser"} ] 27 | end 28 | 29 | require 'unwatch' 30 | -------------------------------------------------------------------------------- /public/css/jquery-ui/jquery-ui-1.8.13.custom.css: -------------------------------------------------------------------------------- 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 | 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/?ctl=themeroller 54 | */ 55 | 56 | 57 | /* Component containers 58 | ----------------------------------*/ 59 | .ui-widget { font-family: Verdana,Arial,sans-serif; font-size: 1.1em; } 60 | .ui-widget .ui-widget { font-size: 1em; } 61 | .ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif; font-size: 1em; } 62 | .ui-widget-content { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_glass_75_ffffff_1x400.png) 50% 50% repeat-x; color: #222222; } 63 | .ui-widget-content a { color: #222222; } 64 | .ui-widget-header { border: 1px solid #aaaaaa; background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; color: #222222; font-weight: bold; } 65 | .ui-widget-header a { color: #222222; } 66 | 67 | /* Interaction states 68 | ----------------------------------*/ 69 | .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3; background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #555555; } 70 | .ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555; text-decoration: none; } 71 | .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 #999999; background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; } 72 | .ui-state-hover a, .ui-state-hover a:hover { color: #212121; text-decoration: none; } 73 | .ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; } 74 | .ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121; text-decoration: none; } 75 | .ui-widget :active { outline: none; } 76 | 77 | /* Interaction Cues 78 | ----------------------------------*/ 79 | .ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fcefa1; background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; color: #363636; } 80 | .ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; } 81 | .ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(images/ui-bg_inset-soft_95_fef1ec_1x100.png) 50% bottom repeat-x; color: #cd0a0a; } 82 | .ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; } 83 | .ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; } 84 | .ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } 85 | .ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } 86 | .ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } 87 | 88 | /* Icons 89 | ----------------------------------*/ 90 | 91 | /* states and images */ 92 | .ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); } 93 | .ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); } 94 | .ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); } 95 | .ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png); } 96 | .ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); } 97 | .ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); } 98 | .ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); } 99 | .ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); } 100 | 101 | /* positioning */ 102 | .ui-icon-carat-1-n { background-position: 0 0; } 103 | .ui-icon-carat-1-ne { background-position: -16px 0; } 104 | .ui-icon-carat-1-e { background-position: -32px 0; } 105 | .ui-icon-carat-1-se { background-position: -48px 0; } 106 | .ui-icon-carat-1-s { background-position: -64px 0; } 107 | .ui-icon-carat-1-sw { background-position: -80px 0; } 108 | .ui-icon-carat-1-w { background-position: -96px 0; } 109 | .ui-icon-carat-1-nw { background-position: -112px 0; } 110 | .ui-icon-carat-2-n-s { background-position: -128px 0; } 111 | .ui-icon-carat-2-e-w { background-position: -144px 0; } 112 | .ui-icon-triangle-1-n { background-position: 0 -16px; } 113 | .ui-icon-triangle-1-ne { background-position: -16px -16px; } 114 | .ui-icon-triangle-1-e { background-position: -32px -16px; } 115 | .ui-icon-triangle-1-se { background-position: -48px -16px; } 116 | .ui-icon-triangle-1-s { background-position: -64px -16px; } 117 | .ui-icon-triangle-1-sw { background-position: -80px -16px; } 118 | .ui-icon-triangle-1-w { background-position: -96px -16px; } 119 | .ui-icon-triangle-1-nw { background-position: -112px -16px; } 120 | .ui-icon-triangle-2-n-s { background-position: -128px -16px; } 121 | .ui-icon-triangle-2-e-w { background-position: -144px -16px; } 122 | .ui-icon-arrow-1-n { background-position: 0 -32px; } 123 | .ui-icon-arrow-1-ne { background-position: -16px -32px; } 124 | .ui-icon-arrow-1-e { background-position: -32px -32px; } 125 | .ui-icon-arrow-1-se { background-position: -48px -32px; } 126 | .ui-icon-arrow-1-s { background-position: -64px -32px; } 127 | .ui-icon-arrow-1-sw { background-position: -80px -32px; } 128 | .ui-icon-arrow-1-w { background-position: -96px -32px; } 129 | .ui-icon-arrow-1-nw { background-position: -112px -32px; } 130 | .ui-icon-arrow-2-n-s { background-position: -128px -32px; } 131 | .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } 132 | .ui-icon-arrow-2-e-w { background-position: -160px -32px; } 133 | .ui-icon-arrow-2-se-nw { background-position: -176px -32px; } 134 | .ui-icon-arrowstop-1-n { background-position: -192px -32px; } 135 | .ui-icon-arrowstop-1-e { background-position: -208px -32px; } 136 | .ui-icon-arrowstop-1-s { background-position: -224px -32px; } 137 | .ui-icon-arrowstop-1-w { background-position: -240px -32px; } 138 | .ui-icon-arrowthick-1-n { background-position: 0 -48px; } 139 | .ui-icon-arrowthick-1-ne { background-position: -16px -48px; } 140 | .ui-icon-arrowthick-1-e { background-position: -32px -48px; } 141 | .ui-icon-arrowthick-1-se { background-position: -48px -48px; } 142 | .ui-icon-arrowthick-1-s { background-position: -64px -48px; } 143 | .ui-icon-arrowthick-1-sw { background-position: -80px -48px; } 144 | .ui-icon-arrowthick-1-w { background-position: -96px -48px; } 145 | .ui-icon-arrowthick-1-nw { background-position: -112px -48px; } 146 | .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } 147 | .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } 148 | .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } 149 | .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } 150 | .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } 151 | .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } 152 | .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } 153 | .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } 154 | .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } 155 | .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } 156 | .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } 157 | .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } 158 | .ui-icon-arrowreturn-1-w { background-position: -64px -64px; } 159 | .ui-icon-arrowreturn-1-n { background-position: -80px -64px; } 160 | .ui-icon-arrowreturn-1-e { background-position: -96px -64px; } 161 | .ui-icon-arrowreturn-1-s { background-position: -112px -64px; } 162 | .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } 163 | .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } 164 | .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } 165 | .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } 166 | .ui-icon-arrow-4 { background-position: 0 -80px; } 167 | .ui-icon-arrow-4-diag { background-position: -16px -80px; } 168 | .ui-icon-extlink { background-position: -32px -80px; } 169 | .ui-icon-newwin { background-position: -48px -80px; } 170 | .ui-icon-refresh { background-position: -64px -80px; } 171 | .ui-icon-shuffle { background-position: -80px -80px; } 172 | .ui-icon-transfer-e-w { background-position: -96px -80px; } 173 | .ui-icon-transferthick-e-w { background-position: -112px -80px; } 174 | .ui-icon-folder-collapsed { background-position: 0 -96px; } 175 | .ui-icon-folder-open { background-position: -16px -96px; } 176 | .ui-icon-document { background-position: -32px -96px; } 177 | .ui-icon-document-b { background-position: -48px -96px; } 178 | .ui-icon-note { background-position: -64px -96px; } 179 | .ui-icon-mail-closed { background-position: -80px -96px; } 180 | .ui-icon-mail-open { background-position: -96px -96px; } 181 | .ui-icon-suitcase { background-position: -112px -96px; } 182 | .ui-icon-comment { background-position: -128px -96px; } 183 | .ui-icon-person { background-position: -144px -96px; } 184 | .ui-icon-print { background-position: -160px -96px; } 185 | .ui-icon-trash { background-position: -176px -96px; } 186 | .ui-icon-locked { background-position: -192px -96px; } 187 | .ui-icon-unlocked { background-position: -208px -96px; } 188 | .ui-icon-bookmark { background-position: -224px -96px; } 189 | .ui-icon-tag { background-position: -240px -96px; } 190 | .ui-icon-home { background-position: 0 -112px; } 191 | .ui-icon-flag { background-position: -16px -112px; } 192 | .ui-icon-calendar { background-position: -32px -112px; } 193 | .ui-icon-cart { background-position: -48px -112px; } 194 | .ui-icon-pencil { background-position: -64px -112px; } 195 | .ui-icon-clock { background-position: -80px -112px; } 196 | .ui-icon-disk { background-position: -96px -112px; } 197 | .ui-icon-calculator { background-position: -112px -112px; } 198 | .ui-icon-zoomin { background-position: -128px -112px; } 199 | .ui-icon-zoomout { background-position: -144px -112px; } 200 | .ui-icon-search { background-position: -160px -112px; } 201 | .ui-icon-wrench { background-position: -176px -112px; } 202 | .ui-icon-gear { background-position: -192px -112px; } 203 | .ui-icon-heart { background-position: -208px -112px; } 204 | .ui-icon-star { background-position: -224px -112px; } 205 | .ui-icon-link { background-position: -240px -112px; } 206 | .ui-icon-cancel { background-position: 0 -128px; } 207 | .ui-icon-plus { background-position: -16px -128px; } 208 | .ui-icon-plusthick { background-position: -32px -128px; } 209 | .ui-icon-minus { background-position: -48px -128px; } 210 | .ui-icon-minusthick { background-position: -64px -128px; } 211 | .ui-icon-close { background-position: -80px -128px; } 212 | .ui-icon-closethick { background-position: -96px -128px; } 213 | .ui-icon-key { background-position: -112px -128px; } 214 | .ui-icon-lightbulb { background-position: -128px -128px; } 215 | .ui-icon-scissors { background-position: -144px -128px; } 216 | .ui-icon-clipboard { background-position: -160px -128px; } 217 | .ui-icon-copy { background-position: -176px -128px; } 218 | .ui-icon-contact { background-position: -192px -128px; } 219 | .ui-icon-image { background-position: -208px -128px; } 220 | .ui-icon-video { background-position: -224px -128px; } 221 | .ui-icon-script { background-position: -240px -128px; } 222 | .ui-icon-alert { background-position: 0 -144px; } 223 | .ui-icon-info { background-position: -16px -144px; } 224 | .ui-icon-notice { background-position: -32px -144px; } 225 | .ui-icon-help { background-position: -48px -144px; } 226 | .ui-icon-check { background-position: -64px -144px; } 227 | .ui-icon-bullet { background-position: -80px -144px; } 228 | .ui-icon-radio-off { background-position: -96px -144px; } 229 | .ui-icon-radio-on { background-position: -112px -144px; } 230 | .ui-icon-pin-w { background-position: -128px -144px; } 231 | .ui-icon-pin-s { background-position: -144px -144px; } 232 | .ui-icon-play { background-position: 0 -160px; } 233 | .ui-icon-pause { background-position: -16px -160px; } 234 | .ui-icon-seek-next { background-position: -32px -160px; } 235 | .ui-icon-seek-prev { background-position: -48px -160px; } 236 | .ui-icon-seek-end { background-position: -64px -160px; } 237 | .ui-icon-seek-start { background-position: -80px -160px; } 238 | /* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ 239 | .ui-icon-seek-first { background-position: -80px -160px; } 240 | .ui-icon-stop { background-position: -96px -160px; } 241 | .ui-icon-eject { background-position: -112px -160px; } 242 | .ui-icon-volume-off { background-position: -128px -160px; } 243 | .ui-icon-volume-on { background-position: -144px -160px; } 244 | .ui-icon-power { background-position: 0 -176px; } 245 | .ui-icon-signal-diag { background-position: -16px -176px; } 246 | .ui-icon-signal { background-position: -32px -176px; } 247 | .ui-icon-battery-0 { background-position: -48px -176px; } 248 | .ui-icon-battery-1 { background-position: -64px -176px; } 249 | .ui-icon-battery-2 { background-position: -80px -176px; } 250 | .ui-icon-battery-3 { background-position: -96px -176px; } 251 | .ui-icon-circle-plus { background-position: 0 -192px; } 252 | .ui-icon-circle-minus { background-position: -16px -192px; } 253 | .ui-icon-circle-close { background-position: -32px -192px; } 254 | .ui-icon-circle-triangle-e { background-position: -48px -192px; } 255 | .ui-icon-circle-triangle-s { background-position: -64px -192px; } 256 | .ui-icon-circle-triangle-w { background-position: -80px -192px; } 257 | .ui-icon-circle-triangle-n { background-position: -96px -192px; } 258 | .ui-icon-circle-arrow-e { background-position: -112px -192px; } 259 | .ui-icon-circle-arrow-s { background-position: -128px -192px; } 260 | .ui-icon-circle-arrow-w { background-position: -144px -192px; } 261 | .ui-icon-circle-arrow-n { background-position: -160px -192px; } 262 | .ui-icon-circle-zoomin { background-position: -176px -192px; } 263 | .ui-icon-circle-zoomout { background-position: -192px -192px; } 264 | .ui-icon-circle-check { background-position: -208px -192px; } 265 | .ui-icon-circlesmall-plus { background-position: 0 -208px; } 266 | .ui-icon-circlesmall-minus { background-position: -16px -208px; } 267 | .ui-icon-circlesmall-close { background-position: -32px -208px; } 268 | .ui-icon-squaresmall-plus { background-position: -48px -208px; } 269 | .ui-icon-squaresmall-minus { background-position: -64px -208px; } 270 | .ui-icon-squaresmall-close { background-position: -80px -208px; } 271 | .ui-icon-grip-dotted-vertical { background-position: 0 -224px; } 272 | .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } 273 | .ui-icon-grip-solid-vertical { background-position: -32px -224px; } 274 | .ui-icon-grip-solid-horizontal { background-position: -48px -224px; } 275 | .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } 276 | .ui-icon-grip-diagonal-se { background-position: -80px -224px; } 277 | 278 | 279 | /* Misc visuals 280 | ----------------------------------*/ 281 | 282 | /* Corner radius */ 283 | .ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; } 284 | .ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; } 285 | .ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; } 286 | .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; } 287 | .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; } 288 | .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; } 289 | .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; } 290 | .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; } 291 | .ui-corner-all { -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; } 292 | 293 | /* Overlays */ 294 | .ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); } 295 | .ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/* 296 | * jQuery UI Resizable 1.8.13 297 | * 298 | * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) 299 | * Dual licensed under the MIT or GPL Version 2 licenses. 300 | * http://jquery.org/license 301 | * 302 | * http://docs.jquery.com/UI/Resizable#theming 303 | */ 304 | .ui-resizable { position: relative;} 305 | .ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block; 306 | /* http://bugs.jqueryui.com/ticket/7233 307 | - Resizable: resizable handles fail to work in IE if transparent and content overlaps 308 | */ 309 | background-image:url(data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=); 310 | } 311 | .ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } 312 | .ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; } 313 | .ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; } 314 | .ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; } 315 | .ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; } 316 | .ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } 317 | .ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } 318 | .ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } 319 | .ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/* 320 | * jQuery UI Selectable 1.8.13 321 | * 322 | * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) 323 | * Dual licensed under the MIT or GPL Version 2 licenses. 324 | * http://jquery.org/license 325 | * 326 | * http://docs.jquery.com/UI/Selectable#theming 327 | */ 328 | .ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; } 329 | /* 330 | * jQuery UI Accordion 1.8.13 331 | * 332 | * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) 333 | * Dual licensed under the MIT or GPL Version 2 licenses. 334 | * http://jquery.org/license 335 | * 336 | * http://docs.jquery.com/UI/Accordion#theming 337 | */ 338 | /* IE/Win - Fix animation bug - #4615 */ 339 | .ui-accordion { width: 100%; } 340 | .ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; } 341 | .ui-accordion .ui-accordion-li-fix { display: inline; } 342 | .ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; } 343 | .ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; } 344 | .ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; } 345 | .ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; } 346 | .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; zoom: 1; } 347 | .ui-accordion .ui-accordion-content-active { display: block; } 348 | /* 349 | * jQuery UI Autocomplete 1.8.13 350 | * 351 | * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) 352 | * Dual licensed under the MIT or GPL Version 2 licenses. 353 | * http://jquery.org/license 354 | * 355 | * http://docs.jquery.com/UI/Autocomplete#theming 356 | */ 357 | .ui-autocomplete { position: absolute; cursor: default; } 358 | 359 | /* workarounds */ 360 | * html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */ 361 | 362 | /* 363 | * jQuery UI Menu 1.8.13 364 | * 365 | * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) 366 | * Dual licensed under the MIT or GPL Version 2 licenses. 367 | * http://jquery.org/license 368 | * 369 | * http://docs.jquery.com/UI/Menu#theming 370 | */ 371 | .ui-menu { 372 | list-style:none; 373 | padding: 2px; 374 | margin: 0; 375 | display:block; 376 | float: left; 377 | } 378 | .ui-menu .ui-menu { 379 | margin-top: -3px; 380 | } 381 | .ui-menu .ui-menu-item { 382 | margin:0; 383 | padding: 0; 384 | zoom: 1; 385 | float: left; 386 | clear: left; 387 | width: 100%; 388 | } 389 | .ui-menu .ui-menu-item a { 390 | text-decoration:none; 391 | display:block; 392 | padding:.2em .4em; 393 | line-height:1.5; 394 | zoom:1; 395 | } 396 | .ui-menu .ui-menu-item a.ui-state-hover, 397 | .ui-menu .ui-menu-item a.ui-state-active { 398 | font-weight: normal; 399 | margin: -1px; 400 | } 401 | /* 402 | * jQuery UI Button 1.8.13 403 | * 404 | * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) 405 | * Dual licensed under the MIT or GPL Version 2 licenses. 406 | * http://jquery.org/license 407 | * 408 | * http://docs.jquery.com/UI/Button#theming 409 | */ 410 | .ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */ 411 | .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */ 412 | button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */ 413 | .ui-button-icons-only { width: 3.4em; } 414 | button.ui-button-icons-only { width: 3.7em; } 415 | 416 | /*button text element */ 417 | .ui-button .ui-button-text { display: block; line-height: 1.4; } 418 | .ui-button-text-only .ui-button-text { padding: .4em 1em; } 419 | .ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; } 420 | .ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; } 421 | .ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; } 422 | .ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; } 423 | /* no icon support for input elements, provide padding by default */ 424 | input.ui-button { padding: .4em 1em; } 425 | 426 | /*button icon element(s) */ 427 | .ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; } 428 | .ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; } 429 | .ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; } 430 | .ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } 431 | .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } 432 | 433 | /*button sets*/ 434 | .ui-buttonset { margin-right: 7px; } 435 | .ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; } 436 | 437 | /* workarounds */ 438 | button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */ 439 | /* 440 | * jQuery UI Dialog 1.8.13 441 | * 442 | * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) 443 | * Dual licensed under the MIT or GPL Version 2 licenses. 444 | * http://jquery.org/license 445 | * 446 | * http://docs.jquery.com/UI/Dialog#theming 447 | */ 448 | .ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; } 449 | .ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; } 450 | .ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } 451 | .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; } 452 | .ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; } 453 | .ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; } 454 | .ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; } 455 | .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; } 456 | .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; } 457 | .ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; } 458 | .ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; } 459 | .ui-draggable .ui-dialog-titlebar { cursor: move; } 460 | /* 461 | * jQuery UI Slider 1.8.13 462 | * 463 | * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) 464 | * Dual licensed under the MIT or GPL Version 2 licenses. 465 | * http://jquery.org/license 466 | * 467 | * http://docs.jquery.com/UI/Slider#theming 468 | */ 469 | .ui-slider { position: relative; text-align: left; } 470 | .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } 471 | .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } 472 | 473 | .ui-slider-horizontal { height: .8em; } 474 | .ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } 475 | .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } 476 | .ui-slider-horizontal .ui-slider-range-min { left: 0; } 477 | .ui-slider-horizontal .ui-slider-range-max { right: 0; } 478 | 479 | .ui-slider-vertical { width: .8em; height: 100px; } 480 | .ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } 481 | .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } 482 | .ui-slider-vertical .ui-slider-range-min { bottom: 0; } 483 | .ui-slider-vertical .ui-slider-range-max { top: 0; }/* 484 | * jQuery UI Tabs 1.8.13 485 | * 486 | * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) 487 | * Dual licensed under the MIT or GPL Version 2 licenses. 488 | * http://jquery.org/license 489 | * 490 | * http://docs.jquery.com/UI/Tabs#theming 491 | */ 492 | .ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ 493 | .ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; } 494 | .ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; } 495 | .ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; } 496 | .ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; } 497 | .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; } 498 | .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... */ 499 | .ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; } 500 | .ui-tabs .ui-tabs-hide { display: none !important; } 501 | /* 502 | * jQuery UI Datepicker 1.8.13 503 | * 504 | * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) 505 | * Dual licensed under the MIT or GPL Version 2 licenses. 506 | * http://jquery.org/license 507 | * 508 | * http://docs.jquery.com/UI/Datepicker#theming 509 | */ 510 | .ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; } 511 | .ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; } 512 | .ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; } 513 | .ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; } 514 | .ui-datepicker .ui-datepicker-prev { left:2px; } 515 | .ui-datepicker .ui-datepicker-next { right:2px; } 516 | .ui-datepicker .ui-datepicker-prev-hover { left:1px; } 517 | .ui-datepicker .ui-datepicker-next-hover { right:1px; } 518 | .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; } 519 | .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; } 520 | .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; } 521 | .ui-datepicker select.ui-datepicker-month-year {width: 100%;} 522 | .ui-datepicker select.ui-datepicker-month, 523 | .ui-datepicker select.ui-datepicker-year { width: 49%;} 524 | .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; } 525 | .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; } 526 | .ui-datepicker td { border: 0; padding: 1px; } 527 | .ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; } 528 | .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; } 529 | .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; } 530 | .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; } 531 | 532 | /* with multiple calendars */ 533 | .ui-datepicker.ui-datepicker-multi { width:auto; } 534 | .ui-datepicker-multi .ui-datepicker-group { float:left; } 535 | .ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; } 536 | .ui-datepicker-multi-2 .ui-datepicker-group { width:50%; } 537 | .ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; } 538 | .ui-datepicker-multi-4 .ui-datepicker-group { width:25%; } 539 | .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; } 540 | .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; } 541 | .ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; } 542 | .ui-datepicker-row-break { clear:both; width:100%; } 543 | 544 | /* RTL support */ 545 | .ui-datepicker-rtl { direction: rtl; } 546 | .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; } 547 | .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } 548 | .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; } 549 | .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } 550 | .ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; } 551 | .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } 552 | .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; } 553 | .ui-datepicker-rtl .ui-datepicker-group { float:right; } 554 | .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; } 555 | .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; } 556 | 557 | /* IE6 IFRAME FIX (taken from datepicker 1.5.3 */ 558 | .ui-datepicker-cover { 559 | display: none; /*sorry for IE5*/ 560 | display/**/: block; /*sorry for IE5*/ 561 | position: absolute; /*must have*/ 562 | z-index: -1; /*must have*/ 563 | filter: mask(); /*must have*/ 564 | top: -4px; /*must have*/ 565 | left: -4px; /*must have*/ 566 | width: 200px; /*must have*/ 567 | height: 200px; /*must have*/ 568 | }/* 569 | * jQuery UI Progressbar 1.8.13 570 | * 571 | * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) 572 | * Dual licensed under the MIT or GPL Version 2 licenses. 573 | * http://jquery.org/license 574 | * 575 | * http://docs.jquery.com/UI/Progressbar#theming 576 | */ 577 | .ui-progressbar { height:2em; text-align: left; } 578 | .ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; } --------------------------------------------------------------------------------