mirror of
https://github.com/chenasraf/snpr.git
synced 2026-05-17 17:38:07 +00:00
Merging bootstrap2 into master
This commit is contained in:
2
.rvmrc
2
.rvmrc
@@ -4,7 +4,7 @@
|
||||
# development environment upon cd'ing into the directory
|
||||
|
||||
# First we specify our desired <ruby>[@<gemset>], the @gemset name is optional.
|
||||
environment_id="ruby-1.9.2-p290@rails3"
|
||||
environment_id="ruby-1.9.2-p290@opensnp"
|
||||
|
||||
#
|
||||
# Uncomment following line if you want options to be set only for given project.
|
||||
|
||||
@@ -36,7 +36,7 @@ gem 'recommendify', :git => 'https://github.com/paulasmuth/recommendify.git'
|
||||
gem 'RubyInline'
|
||||
gem 'shoulda-context'
|
||||
gem 'shoulda-matchers'
|
||||
gem 'factory_girl'
|
||||
gem 'factory_girl', '~> 3.4.2'
|
||||
gem 'mocha'
|
||||
gem 'sunspot_test'
|
||||
gem 'ruby-debug19'
|
||||
|
||||
20
MIT-LICENSE.txt
Normal file
20
MIT-LICENSE.txt
Normal file
@@ -0,0 +1,20 @@
|
||||
Copyright © openSNP-project
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a
|
||||
copy of this software and associated documentation files (the
|
||||
“Software”), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
2
Rakefile
2
Rakefile
@@ -1,7 +1,7 @@
|
||||
# Add your own tasks in files placed in lib/tasks ending in .rake,
|
||||
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
|
||||
|
||||
require 'resque/tasks'
|
||||
#require 'resque/tasks'
|
||||
require File.expand_path('../config/application', __FILE__)
|
||||
require 'rake'
|
||||
|
||||
|
||||
@@ -1,12 +1,19 @@
|
||||
<h3>Achievement: <%=@achievement.award%> <%=image_tag("/images/achievements/"+@achievement.short_name+"_80px.png",:style => "vertical-align:middle",:height=>"70",:alt => @achievement.award)%></h3>
|
||||
|
||||
<h6>Statistics</h6>
|
||||
<ul>
|
||||
<li><%=((@achievement.user_achievements.length.to_f / User.find(:all).length)*100).to_s[0,5]%> % of all users got this achievement</li>
|
||||
<li>Those users got this achievement:</li>
|
||||
<ul>
|
||||
<%=((@achievement.user_achievements.length.to_f / User.find(:all).length)*100).to_s[0,5]%> % of all users received this achievement.
|
||||
<h6>Users who received this achievement</h6>
|
||||
<table class="table table-striped">
|
||||
<tr>
|
||||
<th>Number</th>
|
||||
<th>User</th>
|
||||
<th>Received on</th>
|
||||
</tr>
|
||||
<%@achievement.user_achievements.each do |ua|%>
|
||||
<li><%=link_to ua.user.name, ua.user%></li>
|
||||
<tr>
|
||||
<td><%= ua.id %></td>
|
||||
<td><%=link_to ua.user.name, ua.user%></td>
|
||||
<td><%= ua.created_at %></td>
|
||||
</tr>
|
||||
<%end%>
|
||||
</ul>
|
||||
</ul>
|
||||
</table>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<div class="row">
|
||||
<div class="span8 columns">
|
||||
<div class="span6 columns">
|
||||
<%= form_for(@genotype,:html => {:class => "form-stacked", :multipart => true}) do |f| %>
|
||||
<%= render 'shared/error_messages', :target => @genotype %>
|
||||
<div class="well">
|
||||
@@ -41,7 +41,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="actions">
|
||||
<%= f.submit "Upload", :class => "primary btn" %>
|
||||
<%= f.submit "Upload", :class => "btn btn-primary" %>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
@@ -1,17 +1,22 @@
|
||||
<%=link_to(image_tag("/images/rss_small.png"),"/rss")%><h1>Listing all Genotypes</h1>
|
||||
<%=link_to(image_tag("/images/rss_small.png"),"/rss")%><legend>Listing all Genotypes</legend>
|
||||
|
||||
<%=auto_discovery_link_tag(:rss,"/rss", {:title => "RSS for all genotypes"})%>
|
||||
|
||||
|
||||
<%if current_user%><h5><%=link_to(image_tag("/images/filedownload_small.png",:style => "vertical-align:middle"),{:controller => "genotypes", :action => "get_dump"})%> <%=link_to("Download the dump: Includes all genotyping files plus a CSV with all phenotypes of those users",{:controller => "genotypes", :action => "get_dump"}, :title => "Request download")%></h5>
|
||||
<%if current_user%>
|
||||
<h4>
|
||||
<%=link_to(image_tag("/images/filedownload_small.png",:style => "vertical-align:middle"),{:controller => "genotypes", :action => "get_dump"})%> <%=link_to("Download the dump: Includes all genotyping files plus a CSV with all phenotypes of those users",{:controller => "genotypes", :action => "get_dump"}, :title => "Request download")%>
|
||||
</h4>
|
||||
<% end %>
|
||||
<br/>
|
||||
<% if not current_user and @filelink != nil%>
|
||||
<h5><%= link_to(image_tag("/images/filedownload_small.png", :style => "vertical-align:middle"), {:controller => "genotypes",:action => "dump_download"})%> <%= link_to("Download the dump: Includes all genotyping files plus a CSV with all phenotypes of those users",{:controller => "genotypes", :action => "dump_download"}, :title => "Download the dump") %></h5>
|
||||
<h4>
|
||||
<%= link_to(image_tag("/images/filedownload_small.png", :style => "vertical-align:middle"), {:controller => "genotypes",:action => "dump_download"})%> <%= link_to("Download the dump: Includes all genotyping files plus a CSV with all phenotypes of those users",{:controller => "genotypes", :action => "dump_download"}, :title => "Download the dump") %>
|
||||
</h4>
|
||||
<%end%>
|
||||
<h5><a href="https://github.com/superbobry/snpy">Python-library to parse the provided files</a>, courtesy of <a href="https://github.com/superbobry/">Sergei Lebedev</a></h5>
|
||||
|
||||
<table class="zebra-striped" id="all_genotypes">
|
||||
<thead>
|
||||
<h4><a href="https://github.com/superbobry/snpy">Python-library to parse the provided files</a>, courtesy of <a href="https://github.com/superbobry/">Sergei Lebedev</a></h4>
|
||||
<br/>
|
||||
<table class="table table-striped" id="all_genotypes">
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th><%= sortable "id", "ID"%></th>
|
||||
@@ -20,8 +25,6 @@
|
||||
<th><%= sortable "created_at", "Created"%></th>
|
||||
<th>Download</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<% @genotypes_paginate.each do |g| %>
|
||||
<tr>
|
||||
<td><%= Genotype.all.sort! { |a,b| a.id <=> b.id }.index(g) + 1 %></td>
|
||||
@@ -32,7 +35,6 @@
|
||||
<td><%= link_to "Right-click and 'Save as..'", '../data/' + g.fs_filename %></td>
|
||||
</tr>
|
||||
<% end %>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="pagination">
|
||||
<%= will_paginate(@genotypes_paginate) %>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<h1>Upload Genotyping-File</h1>
|
||||
<legend>Upload Genotyping-File</legend>
|
||||
<%= render 'shared/warning' %>
|
||||
<%= render 'form' %>
|
||||
|
||||
|
||||
@@ -1,75 +1,57 @@
|
||||
<div class="leftside">
|
||||
<h1>Welcome to <em>openSNP</em></h1>
|
||||
<p><%=image_tag "/images/microarray.png",:style => "float:left;margin: 10px"%></p>
|
||||
<p><h7><em>openSNP</em> allows customers of direct-to-customer genetic tests to publish their test results, find others with similar genetic variations, learn more about their results, find the latest primary literature on their variations and help scientists to find new associations.</h7></p> <center><a href="/signup" class="btn large primary">Sign Up!</a></center><br/><br/>
|
||||
<p><h7><em>openSNP</em> allows customers of direct-to-customer genetic tests to publish their test results, find others with similar genetic variations, learn more about their results, find the latest primary literature on their variations and help scientists to find new associations.</h7></p> <center><a href="/signup" class="btn btn-primary btn-large">Sign Up!</a></center><br/><br/>
|
||||
<div id="tab-container">
|
||||
<ul class="tabs">
|
||||
<ul class="nav nav-tabs">
|
||||
<li><a href="#dtcustomers">For Genotyping Users</a></li>
|
||||
<li><a href="#scientists">For Scientists</a></li>
|
||||
<li><a href="#faq">FAQ</a></li>
|
||||
</ul>
|
||||
<div id="dtcustomers">
|
||||
<div class ="well">
|
||||
<div class="row">
|
||||
<div class="span3 columns">
|
||||
<div class="alert-message block-message success" data-alert="alert">
|
||||
<h5>Upload Your Genotyping File</h5>
|
||||
<%=image_tag("/images/fileupload.png")%>
|
||||
<div class="row-fluid">
|
||||
<div class="well span3">
|
||||
<h4>Upload Your Genotyping File</h4>
|
||||
<%=image_tag("/images/fileupload.png")%><br/>
|
||||
Upload the genotyping raw-data you got from <em><%=link_to "23andMe","http://www.23andme.com"%></em> or <em><%=link_to "deCODEme","http://www.decodeme.com/"%></em> to the database of <em>openSNP</em> to make it available for everybody.
|
||||
</div>
|
||||
</div>
|
||||
<div class="span4 columns">
|
||||
<div class="alert-message block-message success" data-alert="alert">
|
||||
<h5>Share Your Phenotypes & Traits</h5>
|
||||
<%=image_tag("/images/phenotypes.png")%>
|
||||
<div class="well span3">
|
||||
<h4>Share Your Phenotypes & Traits</h4>
|
||||
<%=image_tag("/images/phenotypes.png")%><br/>
|
||||
Share as many phenotypes, characteristics and traits with other <em>openSNP</em> users and find others with similar characteristics.<br/>And maybe help scientists to discover new genetic associations.
|
||||
</div>
|
||||
</div>
|
||||
<div class="span4 columns">
|
||||
<div class="alert-message block-message success" data-alert="alert">
|
||||
<h5>Share your stories on variations & phenotypes</h5>
|
||||
<%=image_tag("/images/sendmessage.png")%>
|
||||
<div class="well span3">
|
||||
<h4>Share your stories on variations & phenotypes</h4>
|
||||
<%=image_tag("/images/sendmessage.png")%></br>
|
||||
<em>openSNP</em> lets you share your stories on your genetic variations & phenotypes with others. Discover the stories of other users.<br/>Find others to exchange experiences about your variations.
|
||||
</div>
|
||||
</div>
|
||||
<div class="span4 columns">
|
||||
<div class="alert-message block-message success" data-alert="alert">
|
||||
<h5>Find literature on genetic variation</h5>
|
||||
<%=image_tag("/images/literature.png")%>
|
||||
<div class="well span3">
|
||||
<h4>Find literature on genetic variation</h4>
|
||||
<%=image_tag("/images/literature.png")%></br>
|
||||
<em>openSNP</em> gets the latest open access journal articles on genetic variations via the <em><%=link_to "Public Library of Science","http://www.plos.org/"%></em>. Additionally popular articles are indexed via the social reference manager <em><%=link_to "Mendeley","http://www.mendeley.com/"%></em>. Summaries are provided by <em><%=link_to "SNPedia","http://snpedia.com"%></em>.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="scientists">
|
||||
<div id="scientists">
|
||||
<div class ="well">
|
||||
<div class="row">
|
||||
<div class="span5 columns offset">
|
||||
<div class="alert-message block-message success" data-alert="alert">
|
||||
<h5>Search for phenotypes</h5>
|
||||
<%=image_tag("/images/phenotypesearch.png")%>
|
||||
<div class="row-fluid">
|
||||
<div class="well span4">
|
||||
<h4>Search for phenotypes</h4>
|
||||
<%=image_tag("/images/phenotypesearch.png")%><br/>
|
||||
Many diseases and traits are suspected to have genetical components. Genome Wide Association Studies are a simple tool find genetic markers. Easily find people with the variation you are interested in via openSNP.<br/><br/>The variation you are looking for is not entered yet? Just add it to <em>openSNP</em>
|
||||
</div>
|
||||
</div>
|
||||
<div class="span5 columns">
|
||||
<div class="alert-message block-message success" data-alert="alert">
|
||||
<h5>Easily download datasets</h5>
|
||||
<%=image_tag("/images/filedownload.png")%>
|
||||
<div class="well span4">
|
||||
<h4>Easily download datasets</h4>
|
||||
<%=image_tag("/images/filedownload.png")%><br/>
|
||||
The mass download-function of <em>openSNP</em> allows you to easily download the full genotyping raw-data in the file formats that are provided by <em>23andMe</em> and <em>deCODEme</em>.<br/><br/>As the files can be grouped by their variations for specific phenotypes it is easy to get datasets that are already usable for association studies.
|
||||
</div>
|
||||
</div>
|
||||
<div class="span5 columns">
|
||||
<div class="alert-message block-message success" data-alert="alert">
|
||||
<h5>Get notified about new data</h5>
|
||||
<%=image_tag("/images/rss.png")%>
|
||||
<div class="well span4">
|
||||
<h4>Get notified about new data</h4>
|
||||
<%=image_tag("/images/rss.png")%><br/>
|
||||
<em>openSNP</em> delivers a RSS-feed for each phenotype. So you can easily get all new datasets that get available for the phenotypes of your interest, without the need to check for new entries by hand.<br/><br/>For all data junkies that need more data: There is also a feed that carries all new datasets.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="faq">
|
||||
<b>Visit our FAQ on <a href="/faq#dtcustomers">uploading</a> or <a href="/faq#scientists">downloading</a> data.</b>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -10,124 +10,116 @@
|
||||
<title>openSNP <% if @title %>| <%= @title %><% end %></title>
|
||||
<link rel="shortcut icon" href="/favicon.ico" />
|
||||
<%= stylesheet_link_tag :all %>
|
||||
<%= javascript_include_tag :defaults, "nested_form","jquery-1.7.1.min","jquery.tablesorter.min", "jquery.ba-hashchange.min","jquery.easytabs","jquery-ui-1.8.16.custom.min","bootstrap-alerts", "bootstrap-modal"%>
|
||||
<%= javascript_include_tag :defaults, "nested_form","jquery-1.7.1.min","jquery.tablesorter.min", "jquery.ba-hashchange.min","jquery.easytabs","jquery-ui-1.8.16.custom.min","bootstrap-alert", "bootstrap-modal","bootstrap-tooltip","bootstrap-popover","jquery.jqplot.min.js", "jqplot.pieRenderer.min.js"%>
|
||||
<%= csrf_meta_tag %>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<div class="topbar">
|
||||
<div class="fill" >
|
||||
<div class="container">
|
||||
<h3><%= link_to("openSNP", root_path, :class =>"logo") %></h3>
|
||||
<ul class="nav">
|
||||
<li><%= link_to("News", '/news') %></li>
|
||||
<li><%= link_to("Genotypes", :controller => "genotypes", :action => "index")%>
|
||||
<li><%= link_to("Phenotypes", :controller => "phenotypes", :action => "index")%>
|
||||
<li><%= link_to("SNPs", :controller => "snps", :action => "index") %></li>
|
||||
<li><%= link_to("Users", '/user_index') %></li>
|
||||
</ul>
|
||||
<%= form_tag "/search", :method => "get", :authenticity_token => true do %>
|
||||
<%= text_field_tag :search, nil, :placeholder => "Search here" %>
|
||||
<% end %>
|
||||
<ul class="nav secondary-nav">
|
||||
<% if current_user %>
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle"><%= image_tag current_user.avatar.url(:head),:style => "vertical-align:middle"%> <%= current_user.name %></a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><%= link_to("Settings", :controller => "users", :action => "edit",:id => current_user) %></li>
|
||||
<li><%= link_to("Edit Your Phenotypes", "/users/"+current_user.id.to_s+"/edit#phenotypes")%>
|
||||
<li class="divider"></li>
|
||||
<li><%= link_to("Messages ("+current_user.messages.where(:user_has_seen => false).length.to_s+")","/users/" + current_user.id.to_s + "#messages")%>
|
||||
|
||||
<li class="divider"></li>
|
||||
<li><%= link_to("Sign out", '/signout') %></li>
|
||||
</ul>
|
||||
</li>
|
||||
<% else %>
|
||||
<li><%= link_to("Sign in", '/signin') %></li>
|
||||
<% end %>
|
||||
<li><%= link_to("FAQ", '/faq') %></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="navbar-inverse navbar navbar-fixed-top">
|
||||
<div class="navbar-inner">
|
||||
<div class="container">
|
||||
<a class="brand" href="/">openSNP</a>
|
||||
<ul class="nav">
|
||||
<li class=""><%= link_to("News", '/news') %></li>
|
||||
<li class=""><%= link_to("Genotypes", :controller => "genotypes", :action => "index")%></li>
|
||||
<li class=""><%= link_to("Phenotypes", :controller => "phenotypes", :action => "index")%></li>
|
||||
<li class=""><%= link_to("SNPs", :controller => "snps", :action => "index") %></li>
|
||||
<li class=""><%= link_to("Users", '/user_index') %></li>
|
||||
</ul>
|
||||
<%= form_tag "/search", :method => "get",:class => "navbar-search pull-left", :authenticity_token => true do %>
|
||||
<%= text_field_tag :search, nil, :placeholder => "Search here", :class => "search-query" %>
|
||||
<% end %>
|
||||
<ul class="nav pull-right">
|
||||
<% if current_user %>
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||
<i class="icon-user icon-white"></i>
|
||||
<%= current_user.name %>
|
||||
<b class="caret"></b></a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><%= link_to("Settings", :controller => "users", :action => "edit",:id => current_user) %></li>
|
||||
<li><%= link_to("Edit Your Phenotypes", "/users/"+current_user.id.to_s+"/edit#phenotypes")%></li>
|
||||
<li class="divider"></li>
|
||||
<li><%= link_to("Messages ("+current_user.messages.where(:user_has_seen => false).length.to_s+")","/users/" + current_user.id.to_s + "#messages")%></li>
|
||||
<li class="divider"></li>
|
||||
<li><%= link_to("Sign out", '/signout') %></li>
|
||||
</ul>
|
||||
</li>
|
||||
<% else %>
|
||||
<li><%= link_to("Sign in", '/signin') %></li>
|
||||
<% end %>
|
||||
<li><%= link_to("FAQ", '/faq') %></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<%if current_user %>
|
||||
<%unless (current_user.help_one or current_user.has_sequence) && (current_user.help_two or current_user.user_phenotypes != []) && (current_user.help_three or current_user.phenotype_creation_counter != 0) == true%>
|
||||
<div class ="well">
|
||||
<div class="row">
|
||||
<center><h4>Welcome to openSNP. Here are some first steps you could do:</h4></center>
|
||||
<%if current_user.has_sequence == false and current_user.help_one == false%>
|
||||
<div class="span5 columns offset1">
|
||||
<div class="alert-message block-message success" data-alert="alert">
|
||||
<%=link_to(raw("×"),{:controller => "users", :action => "remove_help_one", :id => current_user},:remote => true, id: "remove_help_one", :class => "close")%>
|
||||
<h5>Upload Your Genotyping File</h5>
|
||||
<%=link_to(image_tag("/images/fileupload.png"), "/genotypes/new")%>
|
||||
<%=link_to("Upload the genotyping raw-data you got","/genotypes/new")%> from <em>23andMe</em> or <em>deCODEme</em> to the database of <em>openSNP</em> to share it with other personal genomics customers and scientists from all over the world.
|
||||
</div>
|
||||
</div>
|
||||
<%end%>
|
||||
<%if current_user.user_phenotypes == [] and current_user.help_two == false%>
|
||||
<div class="span5 columns">
|
||||
<div class="alert-message block-message success" data-alert="alert">
|
||||
<%=link_to(raw("×"),{:controller => "users", :action => "remove_help_two", :id => current_user},:remote => true, id: "remove_help_two", :class => "close")%>
|
||||
<h5>Enter Your Variations</h5>
|
||||
<%=link_to(image_tag("/images/phenotypes.png"), "/users/"+current_user.id.to_s+"#unentered_variations")%>
|
||||
Let us, and the other <em>openSNP</em>-users, know some of your characteristics. Like hair or eye color. Or about some diseases? <%=link_to("Whatever you feel like sharing","/users/"+current_user.id.to_s+"#unentered_variations")%>.
|
||||
</div>
|
||||
</div>
|
||||
<%end%>
|
||||
<%if current_user.phenotype_creation_counter == 0 and current_user.help_three == false %>
|
||||
<div class="span5 columns">
|
||||
<div class="alert-message block-message success" data-alert="alert">
|
||||
<%=link_to(raw("×"),{:controller => "users", :action => "remove_help_three", :id => current_user},:remote => true, id: "remove_help_three", :class => "close")%>
|
||||
<h5>Enter a New Phenotype</h5>
|
||||
<%=link_to(image_tag("/images/addphenotype.png"), "/phenotypes/new")%>
|
||||
Got an idea for a phenotype that has not been asked about yet and that could have genetical roots? <%=link_to("Great, you can easily add this","/phenotypes/new")%> to the <em>openSNP</em>-database.
|
||||
</div>
|
||||
</div>
|
||||
<%end%>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<%end%>
|
||||
<%end%>
|
||||
|
||||
<div class="container" id="help_block">
|
||||
<%if current_user %>
|
||||
<%unless (current_user.help_one or current_user.has_sequence) && (current_user.help_two or current_user.user_phenotypes != []) && (current_user.help_three or current_user.phenotype_creation_counter != 0) == true%>
|
||||
<div class ="well row-fluid">
|
||||
<center><h3>Welcome to openSNP. Here are some first steps you could do:</h3></center><br/>
|
||||
<%if current_user.has_sequence == false and current_user.help_one == false%>
|
||||
<div class="well span4" id="help_one">
|
||||
<%=link_to "x",{:controller => "users", :action => "remove_help_one", :id => current_user}, :remote => true, id: "remove_help_one",:class => "close" %>
|
||||
<h4 class="alert-heading">Upload Your Genotyping File</h4>
|
||||
<%=link_to(image_tag("/images/fileupload.png"), "/genotypes/new")%><br/>
|
||||
<%=link_to("Upload the genotyping raw-data you got","/genotypes/new")%> from <em>23andMe</em>, <em>deCODEme</em> or <em>FamilyTreeDNA</em> to the database of <em>openSNP</em> to share it with other personal genomics customers and scientists from all over the world.
|
||||
</div>
|
||||
<%end%>
|
||||
<%if current_user.user_phenotypes == [] and current_user.help_two == false%>
|
||||
<div class="well span3" id="help_two">
|
||||
<%=link_to("x",{:controller => "users", :action => "remove_help_two", :id => current_user},:remote => true, id: "remove_help_two", :class => "close")%>
|
||||
<h4 class="alert-heading">Enter Your Variations</h4>
|
||||
<%=link_to(image_tag("/images/phenotypes.png"), "/users/"+current_user.id.to_s+"#unentered_variations")%><br/>
|
||||
Let us, and the other <em>openSNP</em>-users, know some of your characteristics -like hair or eye color! Or how about some diseases? <%=link_to("Whatever you feel like sharing!","/users/"+current_user.id.to_s+"#unentered_variations")%>.
|
||||
</div>
|
||||
<%end%>
|
||||
<%if current_user.phenotype_creation_counter == 0 and current_user.help_three == false %>
|
||||
<div class="well span3" id="help_three">
|
||||
<%=link_to("x",{:controller => "users", :action => "remove_help_three", :id => current_user},:remote => true, id: "remove_help_three", :class => "close")%>
|
||||
<h4 class="alert-heading">Enter a New Phenotype</h4>
|
||||
<%=link_to(image_tag("/images/addphenotype.png"), "/phenotypes/new")%><br/>
|
||||
Got an idea for a phenotype that has not been asked about yet and that could have genetical roots? <%=link_to("Great, you can add one","/phenotypes/new")%> to the <em>openSNP</em>-database.
|
||||
</div>
|
||||
<%end%>
|
||||
</div>
|
||||
</div>
|
||||
<%end%>
|
||||
<%end%>
|
||||
<div class="container" id="alert-messages">
|
||||
<div id="flash_notice" class="alert-message success" style="display:none"></div>
|
||||
<% if flash[:notice] %>
|
||||
<div class="alert-message success" data-alert="alert">
|
||||
<a class="close" href="#">x</a>
|
||||
<p><%= flash[:notice] %></p>
|
||||
</div>
|
||||
<% end %>
|
||||
<% if flash[:warning] %>
|
||||
<div class="alert-message error" data-alert="alert">
|
||||
<a class="close" href="#">x</a>
|
||||
<p><%= flash[:warning] %></p>
|
||||
</div>
|
||||
<% end %>
|
||||
<% if flash[:achievement] %>
|
||||
<div class="alert-message info" data-alert="alert">
|
||||
<a class="close" href="#">x</a>
|
||||
<p><%= flash[:achievement] %></p>
|
||||
</div>
|
||||
<% end %>
|
||||
<%= yield %>
|
||||
</div>
|
||||
<div id="flash_notice" class="alert alert-success" style="display:none"></div>
|
||||
<% if flash[:notice] %>
|
||||
<div class="alert alert-success" data-dismiss="alert">
|
||||
<button type="button" class="close" data-dismiss="alert">x</button>
|
||||
<strong><%= flash[:notice] %></strong>
|
||||
</div>
|
||||
<% end %>
|
||||
<% if flash[:warning] %>
|
||||
<div class="alert alert-error" data-dismiss="alert">
|
||||
<button type="button" class="close" data-dismiss="alert">x</button>
|
||||
<strong><%= flash[:warning] %></strong>
|
||||
</div>
|
||||
<% end %>
|
||||
<% if flash[:achievement] %>
|
||||
<div class="alert alert-info" data-dismiss="alert">
|
||||
<button type="button" class="close" data-dismiss="alert">x</button>
|
||||
<strong><%= flash[:achievement] %></strong>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
<%= yield %>
|
||||
|
||||
</div>
|
||||
<hr />
|
||||
|
||||
<footer class="footer">
|
||||
<div class="container">
|
||||
<div class="container">
|
||||
<p>
|
||||
Contact openSNP: <a href="http://opensnp.wordpress.com" target="_blank">Blog</a> | <a href="http://www.twitter.com/openSNPorg" target="_blank">Twitter</a> | <a href="mailto:info@opensnp.org">Mail</a> | <a href="https://www.iubenda.com/privacy-policy/641811" class="iubenda-nostyle " id="iubenda-embed" title="Privacy Policy">Privacy Policy</a> | <%= link_to "openSNP in the press", "/press"%>
|
||||
<script type="text/javascript">(function (w,d) {var loader = function () {var s = d.createElement("script"), tag = d.getElementsByTagName("script")[0]; s.src = "https://cdn.iubenda.com/iubenda.js"; tag.parentNode.insertBefore(s,tag);}; w.addEventListener ? w.addEventListener("load", loader, false) : w.attachEvent("onload", loader);})(window, document);</script></br></br>
|
||||
The openSNP project is licensed under <a href="https://github.com/gedankenstuecke/snpr/blob/master/MIT-license.txt">the MIT-license</a>. The data is licensed under <a href="http://creativecommons.org/publicdomain/zero/1.0/" target="_blank">CC0 1.0</a>. The hand drawn icons were created by <a href="http://oneseventyseven.com/" target="_blank">one seventy seven</a> and are licensed under <a href="http://creativecommons.org/licenses/by/3.0/" target="_blank">CC BY 3.0</a>, the CSS of openSNP is provided by <a href="http://twitter.github.com/bootstrap/">Bootstrap, from Twitter</a> and is licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License v2.0</a>.
|
||||
Twitter-JS-script and modified CSS for display on the news-page from <a href="https://github.com/seaofclouds/tweet/">seaofclouds</a>.
|
||||
Contact openSNP: <a href="http://opensnp.wordpress.com" target="_blank">Blog</a> | <a href="http://www.twitter.com/openSNPorg" target="_blank">Twitter</a> | <a href="mailto:info@opensnp.org">Mail</a> | <a href="https://www.iubenda.com/privacy-policy/641811" class="iubenda-nostyle " id="iubenda-embed" title="Privacy Policy">Privacy Policy</a> | <%= link_to "openSNP in the press", "/press"%>
|
||||
<script type="text/javascript">(function (w,d) {var loader = function () {var s = d.createElement("script"), tag = d.getElementsByTagName("script")[0]; s.src = "https://cdn.iubenda.com/iubenda.js"; tag.parentNode.insertBefore(s,tag);}; w.addEventListener ? w.addEventListener("load", loader, false) : w.attachEvent("onload", loader);})(window, document);</script></br></br>
|
||||
The openSNP project is licensed under <a href="http://creativecommons.org/licenses/by-sa/3.0/" target="_blank">CC BY SA 3.0</a>. The data is licensed under <a href="http://creativecommons.org/publicdomain/zero/1.0/" target="_blank">CC0 1.0</a>. The hand drawn icons were created by <a href="http://oneseventyseven.com/" target="_blank">one seventy seven</a> and are licensed under <a href="http://creativecommons.org/licenses/by/3.0/" target="_blank">CC BY 3.0</a>, the CSS of openSNP is provided by <a href="http://twitter.github.com/bootstrap/">Bootstrap, from Twitter</a> and is licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License v2.0</a>. Tiny white person in the navigational-bar from <a href="http://glyphicons.com/">glyphicons</a>.
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -19,6 +19,6 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="actions">
|
||||
<%= f.submit "Send", :class => "primary btn"%>
|
||||
<%= f.submit "Send", :class => "btn btn-primary"%>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
@@ -1,12 +1,28 @@
|
||||
<h1>Message</h1>
|
||||
<h4>From: <%if @from != "Deleted User"%><%=image_tag @from.avatar.url(:head)%><%= link_to @from.name, @from %><%else%>Deleted User<%end%>, received on <%= @message.created_at %></h4>
|
||||
<h3>Subject: <%=@message.subject %></h3>
|
||||
<div class="row">
|
||||
<div class="span2">
|
||||
<h3>Subject: <%=@message.subject %></h3>
|
||||
</div>
|
||||
|
||||
<div class="span2 offset6">
|
||||
<%if @from != "Deleted User"%>
|
||||
<%= link_to "Reply", {:controller => "messages", :action => "new", :user_to_send => @from.id}, :class => "btn primary" %>
|
||||
<%end%>
|
||||
</div>
|
||||
<div class="span2">
|
||||
<%= button_to "Delete", message_path(@message.id), :method => :delete, :confirm => "Are you sure?", :class => "danger btn"%>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="well">
|
||||
<p><%= simple_format(h @message.body) %></p>
|
||||
</div>
|
||||
<%if @from != "Deleted User"%><p><%= link_to "Reply", {:controller => "messages", :action => "new", :user_to_send => @from.id}, :class => "btn primary" %></p><%end%>
|
||||
<p><%= button_to "Delete", message_path(@message.id), :method => :delete, :confirm => "Are you sure?", :class => "danger btn"%></p>
|
||||
|
||||
|
||||
<%= link_to "Back to your homepage", current_user %> | <%= link_to "Back to your messages", "/users/" + current_user.id.to_s + "#messages" %>
|
||||
<div class="row">
|
||||
<div class="span4">
|
||||
<%= link_to "Back to your homepage", current_user %>
|
||||
</div>
|
||||
<div class="span4 offset4">
|
||||
<%= link_to "Back to your messages", "/users/" + current_user.id.to_s + "#messages" %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<h1>News</h1>
|
||||
<legend>News</legend>
|
||||
<div id="tab-container">
|
||||
<ul class="tabs">
|
||||
<ul class="nav nav-tabs">
|
||||
<li><a href="#general">On openSNP</a></li>
|
||||
<li><a href="#users">New users</a></li>
|
||||
<li><a href="#genotypes">New genotypes</a></li>
|
||||
@@ -41,23 +41,35 @@ new TWTR.Widget({
|
||||
</script>
|
||||
</div>
|
||||
<h5>Support the Open Access petition of access2research</h5>
|
||||
We support the <a href="http://wh.gov/6TH">access2research petition for Open Access</a> directed to the Obama administration. The petition wants to make Open Access publication of tax-funded publications mandatory. In total, 25,000 signatures are needed to have the petition officially reviewed by the White House. Non-US-citizens may sign the petition, too, so <a href="http://wh.gov/6TH">it would be great if you sign it</a>, too! For more information, please <a href="http://opensnp.wordpress.com/2012/05/23/a-petition-on-open-access/">read our blogpost on the petition</a>.
|
||||
<p>We support the <a href="http://wh.gov/6TH">access2research petition for Open Access</a> directed to the Obama administration. The petition wants to make Open Access publication of tax-funded publications mandatory. In total, 25,000 signatures are needed to have the petition officially reviewed by the White House. Non-US-citizens may sign the petition, too, so <a href="http://wh.gov/6TH">it would be great if you sign it</a>, too! For more information, please <a href="http://opensnp.wordpress.com/2012/05/23/a-petition-on-open-access/">read our blogpost on the petition</a>.
|
||||
<div align="center"><img src="/images/a2r.png"/></div>
|
||||
</p>
|
||||
<h5>API: JSON methods</h5>
|
||||
<p>
|
||||
The promised support for the <em>Distributed Annotation System</em> will take some time. But in the meantime you can access <em>openSNP</em> using some simple JSON-methods. Examples can be found for <a href="http://opensnp.org/snps/json/rs9939609/1.json">SNPs</a>, <a href="http://opensnp.org/users.json">users</a> and <a href="http://opensnp.org/phenotypes/json/1,6,8.json">phenotypes</a>. To learn more about how to use those methods you may want to <a href="http://opensnp.org/faq#api">read the FAQ</a> or this blogpost we've written about this.
|
||||
</p>
|
||||
<h5>SSL-Support</h5>
|
||||
<p>
|
||||
Hello everyone! We've bought a SSL-certificate so that you can safely browse this site (especially relevant if you log in to this site over an open WLAN). You can access the SSL-version of openSNP over <a href="https://opensnp.org">this link</a>. It's still experimental, so if you find anything please message <a href"http://opensnp.org/messages/new?user_to_send=23">Philipp</a> or <a href="http://opensnp.org/messages/new?user_to_send=1">Bastian</a>.
|
||||
</p>
|
||||
<h5>Winning the Binary Battle and Data-Dumps</h5>
|
||||
<p>
|
||||
What a shame: We totally forgot to announce it here. But <a href="http://opensnp.wordpress.com/2011/11/30/results-of-the-binary-battle/"><b>we are the winner of the Mendeley/PLoS Binary Battle</b></a>. Since this we got many new users and it's great to see how many of you are willing to share their data. If you are interested in downloading the information that is uploaded to our website you are lucky. <br/><br/><b>We just implemented three new features: The genotype-overview, the data-dump and several uploads for each user. </b><%=link_to "The first one gives you a table of all the genotyping files we have in our database", :controller => "genotypes", :action => "index"%>. The second can be found on the genotype-overview and it produces a zipped file that includes all genotyping-information, as well as a tabular file that includes all phenotypic information of those users. You can now also upload several genotypings, have a look at the Settings-page.<br/><br/>Enjoy playing around with it. And as usual: If you find any bugs please contact <a href="http://opensnp.org/messages/new?user_to_send=23">Philipp</a> or <a href="http://opensnp.org/messages/new?user_to_send=1">Bastian</a>.
|
||||
</p>
|
||||
<h5>SNP-ids/names</h5>
|
||||
<p>
|
||||
Hello everyone! We've implemented a minor change, you can now access SNPs over their name directly, together with the ID (like we had it before) - e.g. http://opensnp.org/snps/rs7566605 now leads to the SNP named rs7566605. If you encounter any problems please contact <a href="http://opensnp.org/messages/new?user_to_send=23">Philipp</a> or <a href="http://opensnp.org/messages/new?user_to_send=1">Basti</a>.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div id="genotypes">
|
||||
<%=auto_discovery_link_tag(:rss,"/rss", {:title => "RSS for all genotypes"})%>
|
||||
<h2>Genotypes</h2>
|
||||
<%=link_to(image_tag("/images/rss_small.png"),"/rss")%>
|
||||
<table class="common-table zebra-striped">
|
||||
<div class="row-fluid">
|
||||
<div class="span2"><h3>Genotypes</h3></div>
|
||||
<div class="span2"><%=link_to(image_tag("/images/rss_small.png"),"/rss")%></div>
|
||||
</div>
|
||||
<br/>
|
||||
<table class="table table-striped">
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th>Genotype-ID</th>
|
||||
@@ -79,10 +91,10 @@ Hello everyone! We've implemented a minor change, you can now access SNPs over t
|
||||
</table>
|
||||
</div>
|
||||
<div id="users">
|
||||
<h2>Users</h2>
|
||||
<table class="common-table zebra-striped">
|
||||
<h3>Users</h3><br/>
|
||||
<table class="table table-striped">
|
||||
<tr>
|
||||
<td>#</th>
|
||||
<th>#</th>
|
||||
<th>ID</th>
|
||||
<th>Name</th>
|
||||
<th>Joined on</th>
|
||||
@@ -100,8 +112,8 @@ Hello everyone! We've implemented a minor change, you can now access SNPs over t
|
||||
</table>
|
||||
</div>
|
||||
<div id="phenotypes">
|
||||
<h2>Phenotypes</h2>
|
||||
<table class="common-table zebra-striped">
|
||||
<h3>Phenotypes</h3><br/>
|
||||
<table class="table table-striped">
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Variations</th>
|
||||
@@ -118,8 +130,8 @@ Hello everyone! We've implemented a minor change, you can now access SNPs over t
|
||||
</div>
|
||||
|
||||
<div id="phenotypecomments">
|
||||
<h2>Phenotype Comments</h2>
|
||||
<table class="common-table zebra-striped">
|
||||
<h3>Phenotype Comments</h3><br/>
|
||||
<table class="table table-striped">
|
||||
<tr>
|
||||
<th>Phenotype</th>
|
||||
<th>Comment By</th>
|
||||
@@ -140,8 +152,8 @@ Hello everyone! We've implemented a minor change, you can now access SNPs over t
|
||||
</div>
|
||||
|
||||
<div id="snpcomments">
|
||||
<h2>SNP Comments</h2>
|
||||
<table class="common-table zebra-striped">
|
||||
<h3>SNP Comments</h3><br/>
|
||||
<table class="table table-striped">
|
||||
<tr>
|
||||
<th>SNP</th>
|
||||
<th>Comment By</th>
|
||||
@@ -160,10 +172,12 @@ Hello everyone! We've implemented a minor change, you can now access SNPs over t
|
||||
</div>
|
||||
|
||||
<div id="publications">
|
||||
<%=link_to(image_tag("/images/rss_small.png"),"/paper/rss")%>
|
||||
<%=auto_discovery_link_tag(:rss,"/paper/rss", {:title => "RSS for latest publications"})%>
|
||||
<h2>Latest publications</h2>
|
||||
<table class="common-table zebra-striped">
|
||||
<div class="row">
|
||||
<div class="span3"><h3>Latest publications</h3></div>
|
||||
<div class="span2"><%=link_to(image_tag("/images/rss_small.png"),"/paper/rss")%></div>
|
||||
</div>
|
||||
<br/>
|
||||
<table class="table table-striped">
|
||||
<tr>
|
||||
<th>SNP</th>
|
||||
<th>Author</th>
|
||||
@@ -184,5 +198,3 @@ Hello everyone! We've implemented a minor change, you can now access SNPs over t
|
||||
<%end%>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
@@ -6,5 +6,5 @@ Fill out the form below and instructions to reset your password will be emailed
|
||||
<% form_tag password_resets_path do %>
|
||||
<label>Email:</label>
|
||||
<%= text_field_tag "email" %>
|
||||
<%= submit_tag "Reset my password", :class => "primary btn" %>
|
||||
<%= submit_tag "Reset my password", :class => "btn btn-primary" %>
|
||||
<% end %>
|
||||
|
||||
@@ -12,6 +12,6 @@
|
||||
<%= f.text_area :comment_text, :size => "20x5" %>
|
||||
</div>
|
||||
|
||||
<%= f.submit "Comment", :class => "primary btn" %>
|
||||
<%= f.submit "Comment", :class => "btn btn-primary" %>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
@@ -4,41 +4,21 @@ function sendCommentId(e, text)
|
||||
e.value = text + e.value
|
||||
}
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
<!--
|
||||
wmtt = null;
|
||||
document.onmousemove = updateWMTT;
|
||||
function updateWMTT(e) {
|
||||
if (wmtt != null && wmtt.style.display == 'block') {
|
||||
x = (e.pageX ? e.pageX : window.event.x);
|
||||
y = (e.pageY ? e.pageY : window.event.y);
|
||||
wmtt.style.left = x + "px";
|
||||
wmtt.style.top = (y - wmtt.offsetHeight) + "px";
|
||||
}
|
||||
}
|
||||
function showWMTT(id) {
|
||||
wmtt = document.getElementById(id);
|
||||
wmtt.style.display = "block";
|
||||
}
|
||||
function hideWMTT() {
|
||||
wmtt.style.display = "none";
|
||||
}
|
||||
-->
|
||||
</script>
|
||||
|
||||
<% @comments.each do |c|%>
|
||||
|
||||
<%if c.reply_to_id != -1 and c.reply_to_id != nil%>
|
||||
<div id="<%="comment_hover"+c.id.to_s%>" class="tooltip">
|
||||
<b><%if PhenotypeComment.find_by_id(c.reply_to_id).user != nil%><%=PhenotypeComment.find_by_id(c.reply_to_id).user.name%><%else%>Deleted User<%end%></b>: <%=PhenotypeComment.find_by_id(c.reply_to_id).comment_text%>
|
||||
</div>
|
||||
<%end%>
|
||||
|
||||
<div id="<%="comment"+c.id.to_s%>">
|
||||
<b><%= c.subject %></b> by <%if c.user != nil %><%= link_to c.user.name, c.user%><%else%>Deleted User<%end%> on <%= c.created_at %><br/>
|
||||
<div class="well">
|
||||
<% if c.reply_to_id != -1 and c.reply_to_id != nil %><a onmouseover="showWMTT('<%="comment_hover"+c.id.to_s%>')" onmouseout="hideWMTT()" href="#"><%if PhenotypeComment.find_by_id(c.reply_to_id).user != nil%>@<%=PhenotypeComment.find_by_id(c.reply_to_id).user.name%><%else%>@Deleted User<%end%></a><% end %>
|
||||
<a href="#" rel="comment_tooltip" title="<%if c.reply_to_id != -1 and c.reply_to_id != nil%><%if PhenotypeComment.find_by_id(c.reply_to_id).user != nil%><b><%=PhenotypeComment.find_by_id(c.reply_to_id).user.name%><%else%>Deleted User<%end%></b> wrote:"data-content="<%=PhenotypeComment.find_by_id(c.reply_to_id).comment_text%><%end%>"><% if c.reply_to_id != -1 and c.reply_to_id != nil%><%if PhenotypeComment.find_by_id(c.reply_to_id).user%>@<%=PhenotypeComment.find_by_id(c.reply_to_id).user.name%><%else%>@Deleted User<%end%><% end %></a>
|
||||
<%if c.user != nil%><%=image_tag c.user.avatar.url(:head),:style => "vertical-align:middle;margin: 10px;float:left"%><%end%> <%= simple_format(h c.comment_text) %><br/><%=link_to_function "reply to", "sendCommentId(document.new_comment.phenotype_comment_comment_text,'@#"+c.id.to_s+": ')"%>
|
||||
</div>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function () {
|
||||
$("[rel=comment_tooltip]").popover({placement:'right'});
|
||||
});
|
||||
</script>
|
||||
@@ -1,5 +1,5 @@
|
||||
<h3>Your Download can start soon...</h3>
|
||||
|
||||
<div class="alert-message block-message success">
|
||||
<div class="alert alert-block alert-success">
|
||||
<%=image_tag("/images/filedownload.png",:style => "float:left")%><h7>Our servers are working hard to deliver you a file that includes all the genotyping files of users with a variation of <em><%=@variation%></em> at the phenotype <em><%=@phenotype.characteristic%></em>.<br/><br/>The genotyping-files currently get zipped to lighten your download. You will receive the download-link via the eMail-address you registered your account with, as soon as the file is ready.</h7></div>
|
||||
<%=link_to "Go Back","/phenotypes/"+@phenotype.id.to_s%>
|
||||
@@ -1,7 +1,15 @@
|
||||
<h1>Listing all Phenotypes</h1>
|
||||
<%if current_user%><div class="row"><div class="span10 columns offset6"><h5><%=link_to(image_tag("/images/addphenotype_small.png",:style => "vertical-align:middle" ),:action =>"new")%> <%=link_to "The phenotype of your interest is missing? Add a new one!",:action => "new"%></h5></div></div><%end%>
|
||||
<table class="zebra-striped" id="no_snp_overview">
|
||||
<thead>
|
||||
<legend>Listing all Phenotypes</legend>
|
||||
<%if current_user%>
|
||||
<div class="row">
|
||||
<div class="span10">
|
||||
<h4>
|
||||
<%=link_to(image_tag("/images/addphenotype_small.png",:style => "vertical-align:middle" ),:action =>"new")%> <%=link_to "The phenotype of your interest is missing? Add a new one!",:action => "new"%>
|
||||
</h4>
|
||||
</div>
|
||||
</div>
|
||||
<%end%>
|
||||
<br/>
|
||||
<table class="table table-striped" id="no_snp_overview">
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th><%= sortable "id", "ID"%></th>
|
||||
@@ -9,8 +17,6 @@
|
||||
<th><%= sortable "number_of_users","Number of users"%></th>
|
||||
<th><%= sortable "created_at", "Created"%>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<% @phenotypes_paginate.each do |s| %>
|
||||
<tr>
|
||||
<td><%= Phenotype.all.sort! { |a,b| a.id <=> b.id}.index(s) + 1%></td>
|
||||
@@ -20,7 +26,6 @@
|
||||
<td><%=s.created_at%></td>
|
||||
</tr>
|
||||
<% end %>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="pagination">
|
||||
<%= will_paginate(@phenotypes_paginate) %>
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<h3>Create a new phenotype</h3>
|
||||
<%= form_for @phenotype, :html => {:class => "form-stacked"} do |f| %>
|
||||
<legend>Create a new phenotype</legend>
|
||||
<div class="row span6">
|
||||
<%= form_for @phenotype do |f| %>
|
||||
<%= render 'shared/error_messages', :target => @phenotype %>
|
||||
<%phenotype_array = []%>
|
||||
<%Phenotype.find(:all).each do |p| phenotype_array << p.characteristic end%>
|
||||
@@ -14,20 +15,22 @@
|
||||
</script>
|
||||
|
||||
<%= f.label :characteristic %> <%= f.text_field :characteristic %>
|
||||
<br/><span class ="help-inline">Hair colour, Blood type, Skin colour etc. <br/>Please <b>enter only one phenotypic characteristic <br/>at once</b> and <b>make use of the auto-completion</b><br/>, as this phenotype might be already in our database.</span>
|
||||
<span class="help-block">Hair colour, Blood type, Skin colour etc. <br/>Please <b>enter only one phenotypic characteristic at once</b> and <b>make use of the auto-completion</b>, as this phenotype might be already in our database.</span>
|
||||
|
||||
<%= f.label :description %> <%= f.text_area :description, :rows => 10%>
|
||||
<br/><span class ="help-inline">Give users some more details:<br/>What are different variations of this phenotype?</br>Why this phenotype is interesting?<br/>Some links to web resources on the topic?</span>
|
||||
<span class="help-block">Give users some more details:<ul><li>What are different variations of this phenotype?</li><li>Why this phenotype is interesting?</li><li>Some links to web resources on the topic?</li></ul></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearfix">
|
||||
<div class="inline-inputs">
|
||||
<%= fields_for @user_phenotype do |up| %>
|
||||
<%= up.label :variation %> <%= up.text_field :variation %>
|
||||
<br/><span class="help-inline">Blonde, 00, Caucasian etc.<br/><b>Only enter your variation</b> for this phenotype,<br/>don't list all possible answers (you can use the <br/>description for this).<br/>Again: <b>Please use the auto-completion.</b></span>
|
||||
<span class="help-block">Blonde, 00, Caucasian etc.<br/><b>Only enter your variation</b> for this phenotype, don't list all possible answers (you can use the description for this). Again: <b>Please use the auto-completion.</b></span>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<%= f.submit :class => "primary btn" %>
|
||||
<%= f.submit :class => "btn btn-primary" %>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -19,7 +19,7 @@ Below you find <%=@similar_phenotypes.size%> <%if @similar_phenotypes.size > 1%>
|
||||
<div class="row">
|
||||
<%@similar_phenotypes.each do |s|%>
|
||||
<div class="span<%=(16/@similar_phenotypes.size).to_i%> columns">
|
||||
<div class="alert-message block-message success" data-alert="alert">
|
||||
<div class="alert alert-block alert-success" data-alert="alert">
|
||||
<h6><%=link_to s.characteristic,s%></h6>
|
||||
Description: <em><%=s.description%></em>
|
||||
</div>
|
||||
|
||||
@@ -2,10 +2,6 @@
|
||||
|
||||
<div class="row">
|
||||
<div class="span6 columns"><h1>Phenotype: <%= @phenotype.characteristic %></h1> </div>
|
||||
<% if current_user %>
|
||||
<div class="span6 columns offset4"><%= link_to "Back to your homepage", current_user %></div>
|
||||
<div class="span6 columns offset4"><%= link_to "Back to your phenotypes", "/users/" + current_user.id.to_s + "#variations" %></div>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
<% if current_user %>
|
||||
@@ -14,8 +10,9 @@
|
||||
<%= render 'user_phenotypes/form' %>
|
||||
<%end%>
|
||||
<% end %>
|
||||
<div class="container">
|
||||
<%=link_to(image_tag("/images/rss_small.png"),:action =>"feed")%>
|
||||
<h6>Known Phenotypes:</h6>
|
||||
<h5>Known Phenotypes:</h5>
|
||||
<ul>
|
||||
<%@phenotype.known_phenotypes.each do |p|%>
|
||||
<%if p != ""%>
|
||||
@@ -25,7 +22,7 @@
|
||||
</ul>
|
||||
|
||||
<div id="tab-container">
|
||||
<ul class="tabs">
|
||||
<ul class="nav nav-tabs">
|
||||
<li><a href="#description">Description</a></li>
|
||||
<li><a href="#similar">Similar phenotypes</a></li>
|
||||
<li><a href="#users">Users sharing this phenotype (<%=@phenotype.user_phenotypes.length%>)</a></li>
|
||||
@@ -38,7 +35,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div id="users">
|
||||
<table class="zebra-striped">
|
||||
<table class="table table-striped">
|
||||
<tr>
|
||||
<th>User</th>
|
||||
<th>Variation</th>
|
||||
@@ -65,7 +62,7 @@
|
||||
</div>
|
||||
|
||||
<div id="similar">
|
||||
<table class="zebra-striped">
|
||||
<table class="table table-striped">
|
||||
<tr>
|
||||
<th>Phenotype</th>
|
||||
<th>Number of Users</th>
|
||||
@@ -85,4 +82,5 @@
|
||||
*<b>Bold</b> phenotypes are the one you have not provided information about yet
|
||||
<%end%>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,39 +1,30 @@
|
||||
<h2>Search results</h2>
|
||||
|
||||
<div id="tab-container">
|
||||
<ul class="tabs">
|
||||
<ul class="nav nav-tabs">
|
||||
<%if not @users.results == [] %>
|
||||
<li><a href="#users">Users (<%=@users.results.length%>)</a></li>
|
||||
<%end%>
|
||||
|
||||
<%if not @phenotypes.results == []%>
|
||||
<li><a href="#phenotypes">Phenotypes (<%=@phenotypes.results.length%>)</a></li>
|
||||
<%end%>
|
||||
|
||||
<%if not @snps.results == []%>
|
||||
<li><a href="#snps">SNPs (<%=@snps.results.length%>)</a></li>
|
||||
<%end%>
|
||||
|
||||
<% if not (@mendeley_papers.results == [] and @plos_papers.results == [])%>
|
||||
<li><a href="#papers">Papers (<%=@plos_papers.results.length + @mendeley_papers.results.length%>)</a></li>
|
||||
<%end%>
|
||||
|
||||
<%if not (@snp_comments.results == [] and @phenotype_comments.results == [])%>
|
||||
<li><a href="#comments">Comments (<%=@snp_comments.results.length + @phenotype_comments.results.length%>)</a></li>
|
||||
<%end%>
|
||||
</ul>
|
||||
|
||||
<% if not @phenotypes.results == [] %>
|
||||
<div id="phenotypes">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Phenotype</th>
|
||||
<th># of Users</th>
|
||||
<th>Known Variation</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<% for p in @phenotypes.results %>
|
||||
<tr>
|
||||
<td><%= link_to p.characteristic, p %></td>
|
||||
@@ -46,12 +37,9 @@
|
||||
</ul></td>
|
||||
</tr>
|
||||
<% end %>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
|
||||
<% if not @snps.results == [] %>
|
||||
<div id="snps">
|
||||
<h5>Snps</h5>
|
||||
@@ -66,15 +54,12 @@
|
||||
<% if not @users.results == [] %>
|
||||
<div id="users">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Genotype-file?</th>
|
||||
<th># of Phenotypes</th>
|
||||
<th># of Achievements</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<% for u in @users.results %>
|
||||
<tr>
|
||||
<td><%= image_tag u.avatar.url(:head),:style => "vertical-align:middle"%> <%= link_to u.name, u %></td>
|
||||
@@ -87,25 +72,20 @@
|
||||
<td><%=u.achievements.length%></td>
|
||||
</tr>
|
||||
<% end %>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
<%if not (@snp_comments.results == [] and @phenotype_comments.results == [])%>
|
||||
<div id="comments">
|
||||
<% if not @snp_comments.results == [] %>
|
||||
<h5>On SNPs</h5>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>SNP</th>
|
||||
<th>From</th>
|
||||
<th>Subject</th>
|
||||
<th>Text</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<% for p in @snp_comments.results %>
|
||||
<tr>
|
||||
<td><%=link_to(p.snp.name,"/snps/"+p.snp.id.to_s+"#comments")%></td>
|
||||
@@ -118,22 +98,17 @@
|
||||
<td><%=p.comment_text%></td>
|
||||
</tr>
|
||||
<% end %>
|
||||
</tbody>
|
||||
</table>
|
||||
<% end %>
|
||||
|
||||
<% if not @phenotype_comments.results == [] %>
|
||||
<h5>On Phenotypes</h5>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Phenotype</th>
|
||||
<th>From</th>
|
||||
<th>Subject</th>
|
||||
<th>Text</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<% for p in @phenotype_comments.results %>
|
||||
<tr>
|
||||
<td><%=link_to(p.phenotype.characteristic,"/snps/"+p.phenotype.id.to_s+"#comments")%></td>
|
||||
@@ -146,18 +121,15 @@
|
||||
<td><%=p.comment_text%></td>
|
||||
</tr>
|
||||
<% end %>
|
||||
</tbody>
|
||||
</table>
|
||||
<% end %>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
<% if not (@mendeley_papers.results == [] and @plos_papers.results == [] and @snpedia_papers.results == [])%>
|
||||
<div id="papers">
|
||||
<% if not @mendeley_papers.results == [] %>
|
||||
<h5>Papers on Mendeley</h5>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Author</th>
|
||||
<th>Title</th>
|
||||
@@ -166,8 +138,6 @@
|
||||
<th># of Readers</th>
|
||||
<th>DOI</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<% for p in @mendeley_papers.results %>
|
||||
<tr>
|
||||
<td><%= p.first_author%></td>
|
||||
@@ -186,14 +156,11 @@
|
||||
<%end%>
|
||||
</tr>
|
||||
<% end %>
|
||||
</tbody>
|
||||
</table>
|
||||
<% end %>
|
||||
|
||||
<% if not @plos_papers.results == [] %>
|
||||
<h5>Papers at the Public Library of Science</h5>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Author</th>
|
||||
<th>Title</th>
|
||||
@@ -201,8 +168,6 @@
|
||||
<th>Year of Publication</th>
|
||||
<th># of Readers</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<% for p in @plos_papers.results %>
|
||||
<tr>
|
||||
<td><%= p.first_author%></td>
|
||||
@@ -212,27 +177,21 @@
|
||||
<td><%= p.reader%></td>
|
||||
</tr>
|
||||
<% end %>
|
||||
</tbody>
|
||||
</table>
|
||||
<% end %>
|
||||
|
||||
<% if not @snpedia_papers.results == [] %>
|
||||
<h5>Entries in the SNPedia</h5>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Title</th>
|
||||
<th>Summary</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<% for p in @snpedia_papers.results %>
|
||||
<tr>
|
||||
<td><%=link_to p.snp.name+" "+p.url[-4]+"/"+p.url[-2], p.url%></td>
|
||||
<td><%=p.summary%></td>
|
||||
</tr>
|
||||
<% end %>
|
||||
</tbody>
|
||||
</table>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
<% if target.errors.any? %>
|
||||
<div class="alert-message block-message error">
|
||||
<div class="alert alert-block alert-error">
|
||||
<ul>
|
||||
<% target.errors.full_messages.each do |msg| %>
|
||||
<%= msg %><br/>
|
||||
<li><%= msg %></li>
|
||||
<% end %>
|
||||
</ul>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<div class="row">
|
||||
<div class="span14 columns offset1">
|
||||
<div class="alert-message block-message error">
|
||||
<div class="span12">
|
||||
<div class="alert alert-block alert-error">
|
||||
<p><strong>Important:</strong> Please carefully read the disclaimer on the right-hand side.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -12,6 +12,6 @@
|
||||
<%= f.text_area :comment_text, :size => "20x5" %>
|
||||
</div>
|
||||
|
||||
<%= f.submit "Comment", :class => "primary btn" %>
|
||||
<%= f.submit "Comment", :class => "btn btn-primary" %>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
@@ -4,40 +4,20 @@ function sendCommentId(e, text)
|
||||
e.value = text + e.value
|
||||
}
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
<!--
|
||||
wmtt = null;
|
||||
document.onmousemove = updateWMTT;
|
||||
function updateWMTT(e) {
|
||||
if (wmtt != null && wmtt.style.display == 'block') {
|
||||
x = (e.pageX ? e.pageX : window.event.x);
|
||||
y = (e.pageY ? e.pageY : window.event.y);
|
||||
wmtt.style.left = x + "px";
|
||||
wmtt.style.top = (y - wmtt.offsetHeight) + "px";
|
||||
}
|
||||
}
|
||||
function showWMTT(id) {
|
||||
wmtt = document.getElementById(id);
|
||||
wmtt.style.display = "block";
|
||||
}
|
||||
function hideWMTT() {
|
||||
wmtt.style.display = "none";
|
||||
}
|
||||
-->
|
||||
</script>
|
||||
|
||||
<% @comments.each do |c|%>
|
||||
<%if c.reply_to_id != -1 and c.reply_to_id != nil%>
|
||||
<div id="<%="comment_hover"+c.id.to_s%>" class="tooltip">
|
||||
<b><%if SnpComment.find_by_id(c.reply_to_id).user != nil%><%=SnpComment.find_by_id(c.reply_to_id).user.name%><%else%>Deleted User<%end%></b>: <%=SnpComment.find_by_id(c.reply_to_id).comment_text%>
|
||||
</div>
|
||||
<%end%>
|
||||
|
||||
<div id="<%="comment"+c.id.to_s%>">
|
||||
<b><%= c.subject %></b> by user <%if User.find_by_id(c.user_id) != nil%><%= link_to User.find_by_id(c.user_id).name, User.find_by_id(c.user_id)%><%else%>Deleted User<%end%> on <%= c.created_at %><br/>
|
||||
<div class="well">
|
||||
<% if c.reply_to_id != -1 and c.reply_to_id != nil%><a onmouseover="showWMTT('<%="comment_hover"+c.id.to_s%>')" onmouseout="hideWMTT()" href="#"><%if SnpComment.find_by_id(c.reply_to_id).user%>@<%=SnpComment.find_by_id(c.reply_to_id).user.name%><%else%>@Deleted User<%end%></a><% end %>
|
||||
<a href="#" rel="comment_tooltip" title="<%if c.reply_to_id != -1 and c.reply_to_id != nil%><%if SnpComment.find_by_id(c.reply_to_id).user != nil%><b><%=SnpComment.find_by_id(c.reply_to_id).user.name%><%else%>Deleted User<%end%></b> wrote:"data-content="<%=SnpComment.find_by_id(c.reply_to_id).comment_text%><%end%>"><% if c.reply_to_id != -1 and c.reply_to_id != nil%><%if SnpComment.find_by_id(c.reply_to_id).user%>@<%=SnpComment.find_by_id(c.reply_to_id).user.name%><%else%>@Deleted User<%end%><% end %></a>
|
||||
<%if User.find_by_id(c.user_id) != nil%><%=image_tag c.user.avatar.url(:head),:style => "vertical-align:middle;margin: 10px;float:left"%><%end%> <%= simple_format(h c.comment_text) %><br/><%=link_to_function "reply to", "sendCommentId(document.new_comment.snp_comment_comment_text,'@#"+c.id.to_s+": ')"%>
|
||||
</div>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function () {
|
||||
$("[rel=comment_tooltip]").popover({placement:'right'});
|
||||
});
|
||||
</script>
|
||||
@@ -1,6 +1,5 @@
|
||||
<h1>Listing all SNPs</h1>
|
||||
<table class="zebra-striped" id="no_snp_overview">
|
||||
<thead>
|
||||
<legend>Listing all SNPs</legend>
|
||||
<table class="table table-striped" id="no_snp_overview">
|
||||
<tr>
|
||||
<th><%= sortable "id", "SNP-ID"%></th>
|
||||
<th><%= sortable "name","Name"%></th>
|
||||
@@ -9,8 +8,6 @@
|
||||
<th>Your Genotype</th>
|
||||
<th><%= sortable "ranking","Ranking*"%></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<% @snps_paginate.each do |s| %>
|
||||
<tr>
|
||||
<td><%= s.id %></td>
|
||||
@@ -25,7 +22,6 @@
|
||||
<td><%= s.ranking %></td>
|
||||
</tr>
|
||||
<% end %>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>* The Ranking reflects how much information <em>openSNP</em> has mined for this SNP. An entry in SNPedia is worth 5 points, a paper in the PLoS 2 points, a paper on mendeley 1 point.</p>
|
||||
<div class="pagination">
|
||||
|
||||
@@ -1,18 +1,10 @@
|
||||
<div class="row">
|
||||
<div class="span6 columns"><h2>SNP <%= @snp.name %></h2></div>
|
||||
<% if current_user %>
|
||||
<div class="span6 columns offset4"><%= link_to "Back to your homepage", current_user %></div>
|
||||
<% end %>
|
||||
<div class="span6 columns offset4"><%= link_to "Back to SNPs", :snps%></div>
|
||||
<div class="span3 columns"><h2>SNP <%= @snp.name %></h2></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="span5 columns">
|
||||
<div class="span3 columns">
|
||||
<h6><center>Basic Information</center></h6>
|
||||
<table>
|
||||
<tr>
|
||||
<th> </th>
|
||||
<th> </th>
|
||||
</tr>
|
||||
<table class="table table-striped">
|
||||
<tr>
|
||||
<td><b>Name</b></td>
|
||||
<td><%=@snp.name%></td>
|
||||
@@ -35,15 +27,12 @@
|
||||
<div class="span3 columns">
|
||||
<%if current_user != nil and UserSnp.find_by_user_id_and_snp_name(current_user.id,@snp.name) != nil%>
|
||||
|
||||
<div id="your_genotype" class="tooltip">
|
||||
Your genetic variation at <em><%=@snp.name%></em>.
|
||||
</div>
|
||||
|
||||
<h6><center><a onmouseover="showWMTT('your_genotype')" onmouseout="hideWMTT()" href="#">Your Genotype</a></center></h6>
|
||||
<table>
|
||||
<center><h6><a href="#" rel="tooltip" title="Your genetic variation at <em><%=@snp.name%></em>.">Your Genotype</a></h6></center>
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th> </th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tr>
|
||||
<td><center><b><%=@user_snp.local_genotype%></b></center></td>
|
||||
</tr>
|
||||
@@ -51,71 +40,21 @@
|
||||
<%end%>
|
||||
</div>
|
||||
|
||||
<div id="geno_frequency" class="tooltip">
|
||||
How the different genetic variation at this position is distributed over all <em>openSNP</em> users.
|
||||
</div>
|
||||
|
||||
<div class="span4 columns">
|
||||
<h6><center><a onmouseover="showWMTT('geno_frequency')" onmouseout="hideWMTT()" href="#">Genotype Frequency</a></center></h6>
|
||||
<div class="span3 columns">
|
||||
<center><h6><a href="#" rel="tooltip" title="How the different genetic variation at this position is distributed over all <em>openSNP</em> users.">Genotype Frequency</a></h6></center>
|
||||
<%if @total_genotypes != 0%>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th> </th>
|
||||
<th> </th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<%@snp.genotype_frequency.each do |key,value|%>
|
||||
<%if current_user != nil and UserSnp.find_by_user_id_and_snp_name(current_user.id,@snp.name) != nil%>
|
||||
<%if key == @user_snp.local_genotype%>
|
||||
<tr>
|
||||
<td><b><%=key%></b></td>
|
||||
<td><b><%=(value.to_f/@total_genotypes).to_s[0,4]%></b></td>
|
||||
</tr>
|
||||
<%else%>
|
||||
<tr>
|
||||
<td><%=key%></td>
|
||||
<td><%=(value.to_f/@total_genotypes).to_s[0,4]%></td>
|
||||
</tr>
|
||||
<%end%>
|
||||
<%else%>
|
||||
<tr>
|
||||
<td><%=key%></td>
|
||||
<td><%=(value.to_f/@total_genotypes).to_s[0,4]%></td>
|
||||
</tr>
|
||||
<%end%>
|
||||
<%end%>
|
||||
</tbody>
|
||||
</table>
|
||||
<center>
|
||||
<div id="freq_chart" style="height:200px; width:200px;"></div>
|
||||
</center>
|
||||
<%else%>
|
||||
We don't have enough users yet.
|
||||
<%end%>
|
||||
</div>
|
||||
|
||||
<div id="allele_frequency" class="tooltip">
|
||||
How the single nucleotides on this position are distributed over all <em>openSNP</em> users.
|
||||
</div>
|
||||
|
||||
<div class="span4 columns">
|
||||
<h6><center><a onmouseover="showWMTT('geno_frequency')" onmouseout="hideWMTT()" href="#">Allele Frequency</a></center></h6>
|
||||
<div class="span3 columns">
|
||||
<center><h6><a href="#" rel="tooltip" title="How the single nucleotides on this position are distributed over all <em>openSNP</em> users.">Allele Frequency</a></h6></center>
|
||||
<%if @total_alleles != 0%>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th> </th>
|
||||
<th> </th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<%@snp.allele_frequency.each do |key,value|%>
|
||||
<tr>
|
||||
<td><%=key%></td>
|
||||
<td><%=(value.to_f/@total_alleles).to_s[0,4]%></td>
|
||||
</tr>
|
||||
<%end%>
|
||||
</tbody>
|
||||
</table>
|
||||
<div id="allele_chart" style="height:200px; width:200px;"></div>
|
||||
<%else%>
|
||||
We don't have enough users yet.
|
||||
<%end%>
|
||||
@@ -124,7 +63,7 @@
|
||||
<h6>Additional Information</h6>
|
||||
|
||||
<div id="tab-container">
|
||||
<ul class="tabs">
|
||||
<ul class="nav nav-tabs">
|
||||
<li><a href="#snpedia">SNPedia (<%=@snp.snpedia_paper.length%>)</a></li>
|
||||
<li><a href="#plos">PLoS (<%=@snp.plos_paper.length%>)</a></li>
|
||||
<li><a href="#mendeley">Mendeley (<%=@snp.mendeley_paper.length%>)</a></li>
|
||||
@@ -135,7 +74,7 @@
|
||||
<div id="plos">
|
||||
<h3>Publications on this SNP on the Public Library of Science:</h3>
|
||||
<% if @snp.plos_paper != [] %>
|
||||
<table class="zebra-striped" id="PaperPlos">
|
||||
<table class="table table-striped" id="PaperPlos">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>First Author</th>
|
||||
@@ -163,7 +102,7 @@
|
||||
<div id="mendeley">
|
||||
<h3>Publications on this SNP on Mendeley</h3>
|
||||
<% if @snp.mendeley_paper != [] %>
|
||||
<table class="zebra-striped" id="PaperMendeley">
|
||||
<table class="table table-striped" id="PaperMendeley">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>First Author</th>
|
||||
@@ -200,7 +139,7 @@
|
||||
<div id="snpedia">
|
||||
<h3>Links to SNPedia</h3>
|
||||
<% if @snp.snpedia_paper != [] %>
|
||||
<table class="zebra-striped">
|
||||
<table class="table table-striped">
|
||||
<tr>
|
||||
<th>Title</th>
|
||||
<th>Summary</th>
|
||||
@@ -226,7 +165,7 @@
|
||||
<div id="users">
|
||||
<h3>Users who share this SNP:</h3>
|
||||
<% if @users != [] %>
|
||||
<table>
|
||||
<table class="table table-striped">
|
||||
<tr>
|
||||
<th>User</th>
|
||||
<th>Genotype</th>
|
||||
@@ -269,6 +208,7 @@
|
||||
viewStart: <%=@snp.position.to_i-10000%>,
|
||||
viewEnd: <%=@snp.position.to_i+10000%>,
|
||||
cookieKey: '<%=@snp.name%>',
|
||||
pageName: "<%=@snp.name%>",
|
||||
|
||||
sources: [{name: 'Genome',
|
||||
desc: 'Human reference genome build NCBI36',
|
||||
@@ -302,4 +242,61 @@
|
||||
});
|
||||
|
||||
</script>
|
||||
<div id="svgHolder"></div>
|
||||
<div id="<%=@snp.name%>"></div>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function () {
|
||||
|
||||
$("[rel=tooltip]").tooltip({placement:'left'});
|
||||
|
||||
<%if @total_genotypes != 0%>
|
||||
<% counter = 0 %>
|
||||
var freq_data=[
|
||||
<%@snp.genotype_frequency.each do |key,value|%>
|
||||
<% counter += 1 %>
|
||||
['<%=key%>',<%=(value.to_f/@total_genotypes).to_s[0,4]%>]<% if counter != @snp.genotype_frequency.length %>,<%end%>
|
||||
<%end%>
|
||||
];
|
||||
var plot1 = jQuery.jqplot ('freq_chart', [freq_data],
|
||||
{
|
||||
/*seriesColors: ["#B0EDFF","#8EB5E8","#6E7CDB","#5F4DD6","#4823AD"],*/
|
||||
seriesDefaults: {
|
||||
renderer: jQuery.jqplot.PieRenderer,
|
||||
rendererOptions: {
|
||||
showDataLabels: true,
|
||||
fill: false
|
||||
}
|
||||
},
|
||||
legend: { show:true, location: 'e' },
|
||||
grid: { shadow:false,
|
||||
borderWidth: 0,
|
||||
background: '#ffffff'}
|
||||
}
|
||||
);
|
||||
<% counter = 0 %>
|
||||
var allele_data=[
|
||||
<%@snp.allele_frequency.each do |key,value|%>
|
||||
<% counter += 1 %>
|
||||
['<%=key%>', <%=(value.to_f/@total_alleles).to_s[0,4]%>]<% if counter != @snp.allele_frequency.length %>,<%end%>
|
||||
<%end%>
|
||||
];
|
||||
var plot2 = jQuery.jqplot ('allele_chart', [allele_data],
|
||||
{
|
||||
/*seriesColors: ["#B0EDFF","#8EB5E8","#6E7CDB","#5F4DD6","#4823AD"],*/
|
||||
seriesDefaults: {
|
||||
dataLabelPositionFactor: 3,
|
||||
renderer: jQuery.jqplot.PieRenderer,
|
||||
rendererOptions: {
|
||||
showDataLabels: true,
|
||||
fill: false
|
||||
}
|
||||
},
|
||||
legend: { show:true, location: 'e' },
|
||||
grid: { shadow:false,
|
||||
borderWidth: 0,
|
||||
background: '#ffffff'}
|
||||
}
|
||||
);
|
||||
});
|
||||
<%end%>
|
||||
</script>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<div class="span8 columns">
|
||||
<div class="span6 columns">
|
||||
<div class="well">
|
||||
<p><strong>By signing up for openSNP you declare that you have understood the possible risks and side-effects that can occur by making your genetical and medical information available on this platform. In short:</strong><br/><br/></p>
|
||||
<p><ul>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<h3>Frequently Asked Questions</h3>
|
||||
<div id="tab-container">
|
||||
<ul class="tabs">
|
||||
<ul class="nav nav-tabs">
|
||||
<li><a href="#dtcustomers"><%=image_tag("/images/fileupload_small.png",:style => "vertical-align:middle" )%> Uploading data</a></li>
|
||||
<li><a href="#scientists"><%=image_tag("/images/filedownload_small.png",:style => "vertical-align:middle" )%> Downloading data</a></li>
|
||||
<li><a href="#enteringphenotypes"><%=image_tag("/images/add_variation_small.png",:style => "vertical-align:middle")%> Entering phenotypes</a></li>
|
||||
@@ -10,10 +10,10 @@
|
||||
</ul>
|
||||
<div id="dtcustomers">
|
||||
<h5>• What does OpenSNP offer me as a genotyping-customers?</h5>
|
||||
<p>If you got genotyped by <a href="http://www.23andme.com">23andMe</a> or <a href="http://www.decodeme.com/">deCODEme</a> you can upload the raw genotype data which you can download from your DTC test provider. The data will then be openly available for the world to see and download. We also parse these SNPs and annotate them.</p><p>For annotation we include the manually curated <a href="http://www.snpedia.com">SNPedia</a> and find Open Access primary publications which appear in the journals of <a href="http://www.plos.org">The Public Library of Science</a> (PLoS), a Open Access publishing group. Additionally we screen <a href="http://www.mendeley.com/">Mendeley</a>, a crowd-sourced repository of scientific publications.</p><p>You can also publish some of your phenotypes so some day it might get possible to associate some SNPs with phenotypes (because of this we really would like to encourage you to do so, helping science generates this warm, fuzzy feeling inside of you).</p><p>And of course you can also share your knowledge about SNPs and phenotypes with other users and can socialize.</p>
|
||||
<p>If you got genotyped by <a href="http://www.23andme.com">23andMe</a>, <a href="http://www.decodeme.com/">deCODEme</a> or <a href="http://www.familytreedna.com/">FamilyTreeDNA</a> you can upload the raw genotype data which you can download from your DTC test provider. The data will then be openly available for the world to see and download. We also parse these SNPs and annotate them.</p><p>For annotation we include the manually curated <a href="http://www.snpedia.com">SNPedia</a> and find Open Access primary publications which appear in the journals of <a href="http://www.plos.org">The Public Library of Science</a> (PLoS), a Open Access publishing group. Additionally we screen <a href="http://www.mendeley.com/">Mendeley</a>, a crowd-sourced repository of scientific publications.</p><p>You can also publish some of your phenotypes so some day it might get possible to associate some SNPs with phenotypes (because of this we really would like to encourage you to do so, helping science generates this warm, fuzzy feeling inside of you).</p><p>And of course you can also share your knowledge about SNPs and phenotypes with other users and can socialize.</p>
|
||||
|
||||
<h5>• Who is behind openSNP?</h5>
|
||||
The site is hosted and was coded by <a href="http://www.twitter.com/gedankenstuecke">Bastian</a>, <a href="https://plus.google.com/108875984450420228123/posts">Fabian</a>, <a href="http://twitter.com/helgerausch">Helge</a> and <a href="http://twitter.com/#!/PhilippBayer">Philipp</a>. Bastian, Fabian and Philipp did their undergraduate studies in Life Sciences and are currently doing their master-programmes. Bastian currently studies Ecology & Evolution, Fabian studies Biology and Philipp studies Computer Science. Helge is the only “real” web developer on the team and has helped us a lot in testing much of the things we did. We are not working full time on this project, this is more of a hobby. Please give us some time to answer your questions, fix bugs and stuff like this as we are doing this in our free time besides our studies and day jobs.
|
||||
The site is hosted and was coded by <a href="http://www.twitter.com/gedankenstuecke">Bastian</a>, <a href="https://plus.google.com/108875984450420228123/posts">Fabian</a>, <a href="http://twitter.com/helgerausch">Helge</a> and <a href="http://twitter.com/#!/PhilippBayer">Philipp</a>. Bastian, Fabian and Philipp did their undergraduate studies in Life Sciences and are currently doing their master-programmes. Bastian currently studies Ecology & Evolution, Fabian studies Biology and Philipp is a PhD-candidate in bioinformatics. Helge is the only “real” web developer on the team and has helped us a lot in testing much of the things we did. We are not working full time on this project, this is more of a hobby. Please give us some time to answer your questions, fix bugs and stuff like this as we are doing this in our free time besides our studies and day jobs.
|
||||
|
||||
<h5>• Why all this?</h5>
|
||||
<em>openSNP</em> is a non-profit, <a href="https://github.com/gedankenstuecke/snpr">open-source</a> project that is about sharing genetical and phenotypic information. The idea to this project came to Bastian after he was genotyped by 23andMe in May 2011 and started playing around with his data. During his research he became frustrated, because it was not that easy to find mode data. He started working on openSNP to fix this. To be clear: This project is not about making money, selling data or to quote Google: “We don’t wanna be evil”. We are just interested in making science more open and accessible.
|
||||
@@ -22,7 +22,7 @@ The site is hosted and was coded by <a href="http://www.twitter.com/gedankenstue
|
||||
We take the "open" in openSNP serious, so everything is free of charge.
|
||||
|
||||
<h5>• Where can I download my raw data on the page of my DTC company?</h5>
|
||||
<em>23andMe</em> customers can <a href="https://www.23andme.com/you/download/"> download the data here</a>. <em>deCODEme</em> customers can <a href="https://www.decodeme.com/download">find the data here</a>. If you were genotyped by <em>FamilytreeDNA</em> you can <a href="https://www.familytreedna.com/my-ftdna/download-files.aspx">find your files here</a>.
|
||||
<em>23andMe</em> customers can <a href="https://www.23andme.com/you/download/">download the data here</a>. <em>deCODEme</em> customers can <a href="https://www.decodeme.com/download">find the data here</a>. If you were genotyped by <em>FamilytreeDNA</em> you can <a href="https://www.familytreedna.com/my-ftdna/download-files.aspx">find your files here</a>.
|
||||
|
||||
<h5>• How long does it take until my genotyping data is available on the site after uploading?</h5>
|
||||
This heavily depends on how many other users are in the queue, waiting for their data to be parsed. Right now openSNP runs on a small scale server so it may take 2-3 days until all your variations can be found on the site. But you can start using openSNP right away and others can download your raw-data right from the start. The parsing only affects the "other users sharing this SNP" and the "my genotype"-views.
|
||||
|
||||
@@ -55,7 +55,7 @@ alert("hi");
|
||||
|
||||
|
||||
<div class="alert-actions">
|
||||
<%= f.submit "Submit your variation", :class => "primary btn" %>
|
||||
<%= f.submit "Submit your variation", :class => "btn btn-primary" %>
|
||||
</p></div>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
<h1>Login</h1>
|
||||
<div class="well">
|
||||
<%= form_for @user_session, :html => {:class => "form-stacked"}, :url => {:action => "create"} do |f| %>
|
||||
<legend>Login</legend>
|
||||
<%= form_for @user_session, :html => {:class => "well"}, :url => {:action => "create"} do |f| %>
|
||||
<%= render "shared/error_messages", :target => @user_session %>
|
||||
<div class="clearfix">
|
||||
<%= f.label :email %>
|
||||
@@ -16,22 +15,19 @@
|
||||
</div>
|
||||
<div class="clearfix">
|
||||
<div class="input">
|
||||
<ul class="inputs-list">
|
||||
<li><label>
|
||||
<label class="checkbox">
|
||||
<%= f.check_box :remember_me %>
|
||||
<span>Remember me</span>
|
||||
</label></li>
|
||||
</ul>
|
||||
Remember me
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearfix">
|
||||
<%= f.submit "Login", :class => "primary btn" %>
|
||||
<%= f.submit "Login", :class => "btn btn-primary" %>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="span8 columns"><%= link_to("Not registered? Click here!", '/signup') %></div>
|
||||
<div class="span8 columns"><%= link_to("Forgot password? Click here!", :controller => "password_resets", :action => "new") %></div>
|
||||
<div class="span3"><%= link_to("Not registered? Click here!", '/signup') %></div>
|
||||
<div class="span3 offset6"><%= link_to("Forgot password? Click here!", :controller => "password_resets", :action => "new") %></div>
|
||||
</div>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<%= render 'shared/error_messages', :target => @user %>
|
||||
<div id="post_errors" style="display:none"></div>
|
||||
<div id="tab-container">
|
||||
<ul class="tabs">
|
||||
<ul class="nav nav-tabs">
|
||||
<li><a href="#general">General</a></li>
|
||||
<li><a href="#phenotypes">Phenotypes</a></li>
|
||||
<li><a href="#details">Details</a></li>
|
||||
@@ -85,22 +85,14 @@
|
||||
<div id="notifications">
|
||||
<div class="well">
|
||||
<h2>Notifications</h2>
|
||||
<h6>Set up mail notifications to make sure you don't miss a thing that happens at openSNP</h6>
|
||||
<div class="clearfix">
|
||||
<%= f.label :message_on_newsletter, "From the openSNP-team"%>The openSNP-team may sent me mails on updates, new features, things like this: <%= f.check_box :message_on_newsletter%>
|
||||
</div>
|
||||
<div class="clearfix">
|
||||
<%= f.label :message_on_message, "Messages"%>Get a mail on new messages: <%= f.check_box :message_on_message%>
|
||||
</div>
|
||||
<div class="clearfix">
|
||||
<%= f.label :message_on_new_phenotype, "New Phenotypes"%>Get a mail as soon as a new phenotype gets available: <%= f.check_box :message_on_new_phenotype%>
|
||||
</div>
|
||||
<div class="clearfix">
|
||||
<%= f.label :message_on_phenotype_comment_reply, "Phenotype Comments"%>Get a mail on each phenotype comment that is a reply to one of yours: <%= f.check_box :message_on_phenotype_comment_reply%>
|
||||
</div>
|
||||
<div class="clearfix">
|
||||
<%= f.label :message_on_snp_comment_reply, "SNP Comments"%>Get a mail on each SNP comment that is a reply to one of yours: <%= f.check_box :message_on_snp_comment_reply%>
|
||||
</div>
|
||||
<h5>Set up mail notifications to make sure you don't miss a thing happening at openSNP</h5>
|
||||
<dl>
|
||||
<dt><%= f.label :message_on_newsletter, "From the openSNP-team"%></dt><dd>The openSNP-team may sent me mails on updates, new features, things like this: <%= f.check_box :message_on_newsletter%></dd><br/>
|
||||
<dt><%= f.label :message_on_message, "Messages"%></dt><dd>Get a mail on new messages: <%= f.check_box :message_on_message%></dd><br/>
|
||||
<dt><%= f.label :message_on_new_phenotype, "New Phenotypes"%></dt><dd>Get a mail as soon as a new phenotype gets available: <%= f.check_box :message_on_new_phenotype%></dd><br/>
|
||||
<dt><%= f.label :message_on_phenotype_comment_reply, "Phenotype Comments"%></dt><dd>Get a mail on each phenotype comment that is a reply to one of yours: <%= f.check_box :message_on_phenotype_comment_reply%></dd><br/>
|
||||
<dt><%= f.label :message_on_snp_comment_reply, "SNP Comments"%></dt><dd>Get a mail on each SNP comment that is a reply to one of yours: <%= f.check_box :message_on_snp_comment_reply%></dd><br/>
|
||||
</dl>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -118,6 +110,6 @@
|
||||
|
||||
|
||||
<div class="actions">
|
||||
<%= f.submit "Update Information", :class => "primary btn", :id => "update_user" %>
|
||||
<%= f.submit "Update Information", :class => "btn btn-primary", :id => "update_user" %>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
<div class="row">
|
||||
<div class="span8 columns">
|
||||
<div class="span5">
|
||||
<% # helper thing so we don't have to put up fields into every page %>
|
||||
<div class="well">
|
||||
<%= form_for @user, :html => {:class => "form-stacked"} do |f| %>
|
||||
<%= form_for @user, :html => {:class => "form"} do |f| %>
|
||||
<%= render 'shared/error_messages', :target => @user %>
|
||||
<div class="clearfix">
|
||||
<%= f.label :name %>
|
||||
<div class="input">
|
||||
<%= f.text_field :name %>
|
||||
@@ -22,20 +21,17 @@
|
||||
<%= f.password_field :password_confirmation %>
|
||||
</div>
|
||||
<br/>
|
||||
<div class="clearfix">
|
||||
<div class="input">
|
||||
<ul class="inputs-list">
|
||||
<li><label>
|
||||
<%= check_box_tag(:read) %>
|
||||
<span>I understand the warning and I am willing to take these risks.</span>
|
||||
</label></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<%= f.submit :class => "btn primary"%>
|
||||
</div>
|
||||
<div class="input">
|
||||
<label class="checkbox">
|
||||
<%= check_box_tag(:read, :type => "checkbox") %>
|
||||
I understand the warning and I am willing to take these risks.
|
||||
</label>
|
||||
</div>
|
||||
<%= f.submit :class => "btn btn-primary"%>
|
||||
<% end %>
|
||||
<p>Already a user? <%= link_to("Log in now!", "/signin")%></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="span6">
|
||||
<%=render "static/disclaimer"%>
|
||||
</div>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<div class="span0 columns">
|
||||
<%= image_tag @user.avatar.url(:thumb),:style => "vertical-align:middle" %>
|
||||
</div>
|
||||
<div class="span6 columns"><h1><%= @user.name %>'s page</h1>
|
||||
<div class="span6 columns"><legend><%= @user.name %>'s page</legend>
|
||||
<% @user.achievements.each do |a|%>
|
||||
|
||||
<div id="<%=a.short_name%>" class="tooltip">
|
||||
@@ -12,8 +12,9 @@
|
||||
<a onmouseover="showWMTT('<%=a.short_name%>')" onmouseout="hideWMTT()" href="/achievements/<%=a.id%>"><%=image_tag("/images/achievements/"+a.short_name+"_32px.png",:style => "vertical-align:middle",:height=>"20",:alt => a.award)%></a>
|
||||
<%end%>
|
||||
|
||||
</div>
|
||||
<%if current_user%><div class="span6 columns offset2"><h5><%=link_to(image_tag("/images/sendmessage_small.png",:style => "vertical-align:middle" ), :controller => "messages", :action => "new", :user_to_send => @user.id)%> <%= link_to("Send "+ @first_name + " a message", :controller => "messages", :action => "new", :user_to_send => @user.id) %></h5></div><%end%>
|
||||
</div>
|
||||
<%if current_user%><div class="span3"><h5><%=link_to(image_tag("/images/sendmessage_small.png",:style => "vertical-align:middle" ), :controller => "messages", :action => "new", :user_to_send => @user.id)%> <%= link_to("Send "+ @first_name + " a message", :controller => "messages", :action => "new", :user_to_send => @user.id) %></h5></div><%end%>
|
||||
</div>
|
||||
</div>
|
||||
<% if @user.genotypes != [] %>
|
||||
<p><%= @first_name %> has uploaded genotyping rawdata.</p>
|
||||
@@ -27,7 +28,7 @@
|
||||
<% end %>
|
||||
|
||||
<% if @user.description != "" and not @user.homepages.empty?%><h3>On <%= @first_name %>:</h3><%end %>
|
||||
<div class="well"><h5>Description</h5><% if @user.description != nil %><%= simple_format(h @user.description) %><% else %>This user has not entered a description yet.<% end %> </p></div>
|
||||
<div class="well"><h5>Description</h5><p><% if @user.description != nil %><%= simple_format(h @user.description) %><% else %>This user has not entered a description yet.<% end %> </p></div>
|
||||
<% if @user.homepages != [] %>
|
||||
<p>
|
||||
<h3>Homepages</h3>
|
||||
@@ -37,10 +38,10 @@
|
||||
<%= link_to uh.url, uh.url, :target => "_blank" %><br/>
|
||||
<% end %>
|
||||
<% end %>
|
||||
</p>
|
||||
<% end %>
|
||||
</p>
|
||||
<div id="tab-container">
|
||||
<ul class="tabs">
|
||||
<ul class="nav nav-tabs">
|
||||
<% if 1==2 %><li><a href="#snps"><%=@first_name%>'s SNPs</a></li><% end %>
|
||||
<li><a href="#variations"><%= @first_name %>'s variations</a></li>
|
||||
</ul>
|
||||
|
||||
@@ -1,20 +1,16 @@
|
||||
<div class="row">
|
||||
<%if @user.avatar_file_name != nil%>
|
||||
<div class="span0 columns">
|
||||
<%= image_tag @user.avatar.url(:thumb),:style => "vertical-align:middle" %>
|
||||
</div><%end%>
|
||||
<div class="span6 columns"><h1>Hello <%= @first_name %>!</h1>
|
||||
<%end%>
|
||||
<div class="span3"><h1>Hello <%= @first_name %>!</h1></div>
|
||||
<br/>
|
||||
<div class="span4">
|
||||
<% current_user.achievements.each do |a|%>
|
||||
|
||||
<div id="<%=a.short_name%>" class="tooltip">
|
||||
Achievement: <%=a.award%>.
|
||||
</div>
|
||||
|
||||
<a onmouseover="showWMTT('<%=a.short_name%>')" onmouseout="hideWMTT()" href="/achievements/<%=a.id%>"><%=image_tag("/images/achievements/"+a.short_name+"_32px.png",:style => "vertical-align:middle",:height=>"20",:alt => a.award)%></a>
|
||||
<a href=<%= a%> rel="tooltip" title="Achievement: <%=a.award%>"><%=image_tag("/images/achievements/"+a.short_name+"_32px.png",:height=>"20px",:alt => a.award)%></a>
|
||||
<%end%>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br/>
|
||||
<% if current_user.messages.where(:user_has_seen => false) != [] %>
|
||||
<p><a href="#messages">You have messages!</a></p>
|
||||
<% end %>
|
||||
@@ -24,7 +20,7 @@
|
||||
<% end %>
|
||||
|
||||
<div id="tab-container">
|
||||
<ul class="tabs">
|
||||
<ul class="nav nav-tabs">
|
||||
<%if @unentered_phenotypes != []%>
|
||||
<li><a href="#unentered_variations">Variations you did not enter yet (<%=@unentered_phenotypes.length%>)</a></li>
|
||||
<%end%>
|
||||
@@ -39,7 +35,7 @@
|
||||
|
||||
<%if @unentered_phenotypes != []%>
|
||||
<div id="unentered_variations">
|
||||
<table>
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name of Phenotype</th>
|
||||
@@ -84,7 +80,7 @@
|
||||
<p><%= link_to "Write a new message", :controller => "messages", :action => "new" %></p>
|
||||
<h4>Received</h4>
|
||||
<% if @received_messages != [] %>
|
||||
<table>
|
||||
<table class="table table-striped">
|
||||
<tr>
|
||||
<th>From</th>
|
||||
<th>Subject</th>
|
||||
@@ -113,7 +109,7 @@
|
||||
<% end %>
|
||||
<h3>Sent</h3>
|
||||
<% if @sent_messages != [] %>
|
||||
<table>
|
||||
<table class="table table-striped">
|
||||
<tr>
|
||||
<th>To</th>
|
||||
<th>Subject</th>
|
||||
@@ -139,7 +135,7 @@
|
||||
<% if @paginated_phenotype_replies != [] %>
|
||||
<h4>Latest replies on your comments on Phenotypes</h4>
|
||||
|
||||
<table class="zebra-striped" id="phenotype_reply_comments">
|
||||
<table class="table table-striped" id="phenotype_reply_comments">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>On Phenotype</th>
|
||||
@@ -166,7 +162,7 @@
|
||||
|
||||
<% if @paginated_snp_replies != [] %>
|
||||
<h4>Latest replies on your comments on SNPs</h4>
|
||||
<table class="zebra-striped" id="snp_reply_comments">
|
||||
<table class="table table-striped" id="snp_reply_comments">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>On SNP</th>
|
||||
@@ -193,23 +189,7 @@
|
||||
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
<!--
|
||||
wmtt = null;
|
||||
document.onmousemove = updateWMTT;
|
||||
function updateWMTT(e) {
|
||||
if (wmtt != null && wmtt.style.display == 'block') {
|
||||
x = (e.pageX ? e.pageX : window.event.x);
|
||||
y = (e.pageY ? e.pageY : window.event.y);
|
||||
wmtt.style.left = x + "px";
|
||||
wmtt.style.top = (y - wmtt.offsetHeight) + "px";
|
||||
}
|
||||
}
|
||||
function showWMTT(id) {
|
||||
wmtt = document.getElementById(id);
|
||||
wmtt.style.display = "block";
|
||||
}
|
||||
function hideWMTT() {
|
||||
wmtt.style.display = "none";
|
||||
}
|
||||
-->
|
||||
$(document).ready(function () {
|
||||
$("[rel=tooltip]").tooltip({placement:'bottom'});
|
||||
});
|
||||
</script>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<table class="common-table zebra-striped">
|
||||
<table class="table table-striped">
|
||||
<tr>
|
||||
<th>Characteristic</th>
|
||||
<th>Variation</th>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<h3>Change your email-address and password</h3>
|
||||
<div class="row">
|
||||
<div class="span8 columns">
|
||||
<div class="span12 columns">
|
||||
<% # helper thing so we don't have to put up fields into every page %>
|
||||
<div class="well">
|
||||
<%= form_for @user, :html => {:class => "form-stacked"} do |f| %>
|
||||
@@ -22,7 +22,7 @@
|
||||
</div>
|
||||
|
||||
<div class="actions">
|
||||
<%= f.submit "Update Information",:class => "primary btn"%>
|
||||
<%= f.submit "Update Information",:class => "btn btn-primary"%>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
<h1>Sign up</h1>
|
||||
|
||||
<%= form_for(@user) do |f| %>
|
||||
<div class="actions">
|
||||
<%= f.submit "Sign up",:class => "primary btn" %>
|
||||
</div>
|
||||
<% end %>
|
||||
@@ -1,6 +1,4 @@
|
||||
<div class="row">
|
||||
<div class="span10"><h1>Edit your details</h1></div>
|
||||
<div class="span6"><%= link_to 'Back Home', current_user %></div>
|
||||
</div>
|
||||
<legend>Edit your details</legend>
|
||||
<br/>
|
||||
<%= render 'edit' %>
|
||||
|
||||
|
||||
@@ -1,13 +1,10 @@
|
||||
<h1>Listing all users</h1>
|
||||
<table class="zebra-striped" id="user_overview">
|
||||
<thead>
|
||||
<legend>Listing all users</legend>
|
||||
<table class="table table-striped" id="user_overview">
|
||||
<tr>
|
||||
<th><%= sortable "name", "Name" %></th>
|
||||
<th><%= sortable "has_sequence", "SNPs" %></th>
|
||||
<th><%= sortable "phenotypes.length", "# of Phenotypes" %></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<% @users_paginate.each do |u| %>
|
||||
<tr>
|
||||
<td><%=image_tag u.avatar.url(:head),:style => "vertical-align:middle"%><%= link_to(u.name,u) %></td>
|
||||
@@ -15,7 +12,6 @@
|
||||
<td><%=u.phenotypes.length%></td>
|
||||
</td>
|
||||
<% end %>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="pagination">
|
||||
<%= will_paginate(@users_paginate) %>
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
<h1>Sign up</h1>
|
||||
<legend>Sign up</legend>
|
||||
<%= render 'shared/warning' %>
|
||||
<%= render 'form' %>
|
||||
|
||||
<p>Already a user? <%= link_to("Log in now!", "/signin")%></p>
|
||||
|
||||
@@ -138,9 +138,9 @@ ActiveRecord::Schema.define(:version => 20120509234035) do
|
||||
t.string "allele_frequency"
|
||||
t.integer "ranking"
|
||||
t.integer "number_of_users", :default => 0
|
||||
t.datetime "mendeley_updated", :default => '2012-07-03 01:07:50'
|
||||
t.datetime "plos_updated", :default => '2012-07-03 01:07:50'
|
||||
t.datetime "snpedia_updated", :default => '2012-07-03 01:07:50'
|
||||
t.datetime "mendeley_updated", :default => '2012-05-17 02:16:30'
|
||||
t.datetime "plos_updated", :default => '2012-05-17 02:16:30'
|
||||
t.datetime "snpedia_updated", :default => '2012-05-17 02:16:30'
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
end
|
||||
|
||||
BIN
public/images/glyphicons-halflings-white.png
Normal file
BIN
public/images/glyphicons-halflings-white.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 8.6 KiB |
BIN
public/images/glyphicons-halflings.png
Normal file
BIN
public/images/glyphicons-halflings.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 12 KiB |
@@ -1,29 +1,46 @@
|
||||
// Place your application-specific JavaScript functions and classes here
|
||||
// This file is automatically included by javascript_include_tag :defaults
|
||||
|
||||
|
||||
$(document).ready(function()
|
||||
{
|
||||
$('#update_user').click(function() {
|
||||
$('#update_user').val("Updating...").addClass("disabled");
|
||||
setTimeout(function(){ $('#update_user').val("Update Information").removeClass("disabled");},1000);
|
||||
});
|
||||
$(document).ready(function() {
|
||||
$('#update_user').click(function() {
|
||||
$('#update_user').val("Updating...").addClass("disabled");
|
||||
setTimeout(function(){ $('#update_user').val("Update Information").removeClass("disabled");},1000);
|
||||
});
|
||||
|
||||
$("#PaperMendeley").tablesorter({sortList: [[2,1]]});
|
||||
$("#PaperPlos").tablesorter({sortList: [[2,1]]});
|
||||
}
|
||||
);
|
||||
|
||||
$(document).ready(function(){
|
||||
$('#remove_help_one').click(function() {
|
||||
if( $('#help_three').is(":hidden") && $('#help_two').is(":hidden") ){
|
||||
$("#help_block").hide("slow");
|
||||
}
|
||||
else {
|
||||
$('#help_one').hide('slow');
|
||||
}
|
||||
});$
|
||||
$('#remove_help_two').click(function() {
|
||||
if( $('#help_one').is(":hidden") && $('#help_three').is(":hidden") ){
|
||||
$("#help_block").hide("slow");
|
||||
}
|
||||
else {
|
||||
$('#help_two').hide('slow');
|
||||
}
|
||||
});
|
||||
$('#remove_help_three').click(function() {
|
||||
if( $('#help_one').is(":hidden") && $('#help_two').is(":hidden") ){
|
||||
$("#help_block").hide("slow");
|
||||
}
|
||||
else {
|
||||
$('#help_three').hide('slow');
|
||||
};
|
||||
});
|
||||
|
||||
$('#tab-container').easytabs();
|
||||
});$
|
||||
|
||||
$(document).ready(function(){
|
||||
$("body").bind("click", function (e) {
|
||||
$('.dropdown-toggle, .menu').parent("li").removeClass("open");
|
||||
});
|
||||
$(".dropdown-toggle, .menu").click(function (e) {
|
||||
var $li = $(this).parent("li").toggleClass('open');
|
||||
return false;
|
||||
});
|
||||
$("body").bind("click", function (e) {
|
||||
$('.dropdown-toggle, .menu').parent("li").removeClass("open");
|
||||
});
|
||||
$(".dropdown-toggle, .menu").click(function (e) {
|
||||
var $li = $(this).parent("li").toggleClass('open');
|
||||
return false;
|
||||
});
|
||||
});
|
||||
|
||||
90
public/javascripts/bootstrap-alert.js
vendored
Normal file
90
public/javascripts/bootstrap-alert.js
vendored
Normal file
@@ -0,0 +1,90 @@
|
||||
/* ==========================================================
|
||||
* bootstrap-alert.js v2.0.4
|
||||
* http://twitter.github.com/bootstrap/javascript.html#alerts
|
||||
* ==========================================================
|
||||
* Copyright 2012 Twitter, Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
* ========================================================== */
|
||||
|
||||
|
||||
!function ($) {
|
||||
|
||||
"use strict"; // jshint ;_;
|
||||
|
||||
|
||||
/* ALERT CLASS DEFINITION
|
||||
* ====================== */
|
||||
|
||||
var dismiss = '[data-dismiss="alert"]'
|
||||
, Alert = function (el) {
|
||||
$(el).on('click', dismiss, this.close)
|
||||
}
|
||||
|
||||
Alert.prototype.close = function (e) {
|
||||
var $this = $(this)
|
||||
, selector = $this.attr('data-target')
|
||||
, $parent
|
||||
|
||||
if (!selector) {
|
||||
selector = $this.attr('href')
|
||||
selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
|
||||
}
|
||||
|
||||
$parent = $(selector)
|
||||
|
||||
e && e.preventDefault()
|
||||
|
||||
$parent.length || ($parent = $this.hasClass('alert') ? $this : $this.parent())
|
||||
|
||||
$parent.trigger(e = $.Event('close'))
|
||||
|
||||
if (e.isDefaultPrevented()) return
|
||||
|
||||
$parent.removeClass('in')
|
||||
|
||||
function removeElement() {
|
||||
$parent
|
||||
.trigger('closed')
|
||||
.remove()
|
||||
}
|
||||
|
||||
$.support.transition && $parent.hasClass('fade') ?
|
||||
$parent.on($.support.transition.end, removeElement) :
|
||||
removeElement()
|
||||
}
|
||||
|
||||
|
||||
/* ALERT PLUGIN DEFINITION
|
||||
* ======================= */
|
||||
|
||||
$.fn.alert = function (option) {
|
||||
return this.each(function () {
|
||||
var $this = $(this)
|
||||
, data = $this.data('alert')
|
||||
if (!data) $this.data('alert', (data = new Alert(this)))
|
||||
if (typeof option == 'string') data[option].call($this)
|
||||
})
|
||||
}
|
||||
|
||||
$.fn.alert.Constructor = Alert
|
||||
|
||||
|
||||
/* ALERT DATA-API
|
||||
* ============== */
|
||||
|
||||
$(function () {
|
||||
$('body').on('click.alert.data-api', dismiss, Alert.prototype.close)
|
||||
})
|
||||
|
||||
}(window.jQuery);
|
||||
104
public/javascripts/bootstrap-alerts.js
vendored
104
public/javascripts/bootstrap-alerts.js
vendored
@@ -1,104 +0,0 @@
|
||||
/* ==========================================================
|
||||
* bootstrap-alerts.js v1.3.0
|
||||
* http://twitter.github.com/bootstrap/javascript.html#alerts
|
||||
* ==========================================================
|
||||
* Copyright 2011 Twitter, Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
* ========================================================== */
|
||||
|
||||
|
||||
(function( $ ){
|
||||
|
||||
/* CSS TRANSITION SUPPORT (https://gist.github.com/373874)
|
||||
* ======================================================= */
|
||||
|
||||
var transitionEnd
|
||||
|
||||
$(document).ready(function () {
|
||||
|
||||
$.support.transition = (function () {
|
||||
var thisBody = document.body || document.documentElement
|
||||
, thisStyle = thisBody.style
|
||||
, support = thisStyle.transition !== undefined || thisStyle.WebkitTransition !== undefined || thisStyle.MozTransition !== undefined || thisStyle.MsTransition !== undefined || thisStyle.OTransition !== undefined
|
||||
return support
|
||||
})()
|
||||
|
||||
// set CSS transition event type
|
||||
if ( $.support.transition ) {
|
||||
transitionEnd = "TransitionEnd"
|
||||
if ( $.browser.webkit ) {
|
||||
transitionEnd = "webkitTransitionEnd"
|
||||
} else if ( $.browser.mozilla ) {
|
||||
transitionEnd = "transitionend"
|
||||
} else if ( $.browser.opera ) {
|
||||
transitionEnd = "oTransitionEnd"
|
||||
}
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
/* ALERT CLASS DEFINITION
|
||||
* ====================== */
|
||||
|
||||
var Alert = function ( content, selector ) {
|
||||
this.$element = $(content)
|
||||
.delegate(selector || '.close', 'click', this.close)
|
||||
}
|
||||
|
||||
Alert.prototype = {
|
||||
|
||||
close: function (e) {
|
||||
var $element = $(this).parent('.alert-message')
|
||||
|
||||
e && e.preventDefault()
|
||||
$element.removeClass('in')
|
||||
|
||||
function removeElement () {
|
||||
$element.remove()
|
||||
}
|
||||
|
||||
$.support.transition && $element.hasClass('fade') ?
|
||||
$element.bind(transitionEnd, removeElement) :
|
||||
removeElement()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/* ALERT PLUGIN DEFINITION
|
||||
* ======================= */
|
||||
|
||||
$.fn.alert = function ( options ) {
|
||||
|
||||
if ( options === true ) {
|
||||
return this.data('alert')
|
||||
}
|
||||
|
||||
return this.each(function () {
|
||||
var $this = $(this)
|
||||
|
||||
if ( typeof options == 'string' ) {
|
||||
return $this.data('alert')[options]()
|
||||
}
|
||||
|
||||
$(this).data('alert', new Alert( this ))
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
$(document).ready(function () {
|
||||
new Alert($('body'), '.alert-message[data-alert] .close')
|
||||
})
|
||||
|
||||
})( window.jQuery || window.ender )
|
||||
98
public/javascripts/bootstrap-popover.js
vendored
Normal file
98
public/javascripts/bootstrap-popover.js
vendored
Normal file
@@ -0,0 +1,98 @@
|
||||
/* ===========================================================
|
||||
* bootstrap-popover.js v2.0.4
|
||||
* http://twitter.github.com/bootstrap/javascript.html#popovers
|
||||
* ===========================================================
|
||||
* Copyright 2012 Twitter, Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
* =========================================================== */
|
||||
|
||||
|
||||
!function ($) {
|
||||
|
||||
"use strict"; // jshint ;_;
|
||||
|
||||
|
||||
/* POPOVER PUBLIC CLASS DEFINITION
|
||||
* =============================== */
|
||||
|
||||
var Popover = function ( element, options ) {
|
||||
this.init('popover', element, options)
|
||||
}
|
||||
|
||||
|
||||
/* NOTE: POPOVER EXTENDS BOOTSTRAP-TOOLTIP.js
|
||||
========================================== */
|
||||
|
||||
Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype, {
|
||||
|
||||
constructor: Popover
|
||||
|
||||
, setContent: function () {
|
||||
var $tip = this.tip()
|
||||
, title = this.getTitle()
|
||||
, content = this.getContent()
|
||||
|
||||
$tip.find('.popover-title')[this.isHTML(title) ? 'html' : 'text'](title)
|
||||
$tip.find('.popover-content > *')[this.isHTML(content) ? 'html' : 'text'](content)
|
||||
|
||||
$tip.removeClass('fade top bottom left right in')
|
||||
}
|
||||
|
||||
, hasContent: function () {
|
||||
return this.getTitle() || this.getContent()
|
||||
}
|
||||
|
||||
, getContent: function () {
|
||||
var content
|
||||
, $e = this.$element
|
||||
, o = this.options
|
||||
|
||||
content = $e.attr('data-content')
|
||||
|| (typeof o.content == 'function' ? o.content.call($e[0]) : o.content)
|
||||
|
||||
return content
|
||||
}
|
||||
|
||||
, tip: function () {
|
||||
if (!this.$tip) {
|
||||
this.$tip = $(this.options.template)
|
||||
}
|
||||
return this.$tip
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
|
||||
/* POPOVER PLUGIN DEFINITION
|
||||
* ======================= */
|
||||
|
||||
$.fn.popover = function (option) {
|
||||
return this.each(function () {
|
||||
var $this = $(this)
|
||||
, data = $this.data('popover')
|
||||
, options = typeof option == 'object' && option
|
||||
if (!data) $this.data('popover', (data = new Popover(this, options)))
|
||||
if (typeof option == 'string') data[option]()
|
||||
})
|
||||
}
|
||||
|
||||
$.fn.popover.Constructor = Popover
|
||||
|
||||
$.fn.popover.defaults = $.extend({} , $.fn.tooltip.defaults, {
|
||||
placement: 'right'
|
||||
, content: ''
|
||||
, template: '<div class="popover"><div class="arrow"></div><div class="popover-inner"><h3 class="popover-title"></h3><div class="popover-content"><p></p></div></div></div>'
|
||||
})
|
||||
|
||||
}(window.jQuery);
|
||||
275
public/javascripts/bootstrap-tooltip.js
vendored
Normal file
275
public/javascripts/bootstrap-tooltip.js
vendored
Normal file
@@ -0,0 +1,275 @@
|
||||
/* ===========================================================
|
||||
* bootstrap-tooltip.js v2.0.4
|
||||
* http://twitter.github.com/bootstrap/javascript.html#tooltips
|
||||
* Inspired by the original jQuery.tipsy by Jason Frame
|
||||
* ===========================================================
|
||||
* Copyright 2012 Twitter, Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
* ========================================================== */
|
||||
|
||||
|
||||
!function ($) {
|
||||
|
||||
"use strict"; // jshint ;_;
|
||||
|
||||
|
||||
/* TOOLTIP PUBLIC CLASS DEFINITION
|
||||
* =============================== */
|
||||
|
||||
var Tooltip = function (element, options) {
|
||||
this.init('tooltip', element, options)
|
||||
}
|
||||
|
||||
Tooltip.prototype = {
|
||||
|
||||
constructor: Tooltip
|
||||
|
||||
, init: function (type, element, options) {
|
||||
var eventIn
|
||||
, eventOut
|
||||
|
||||
this.type = type
|
||||
this.$element = $(element)
|
||||
this.options = this.getOptions(options)
|
||||
this.enabled = true
|
||||
|
||||
if (this.options.trigger != 'manual') {
|
||||
eventIn = this.options.trigger == 'hover' ? 'mouseenter' : 'focus'
|
||||
eventOut = this.options.trigger == 'hover' ? 'mouseleave' : 'blur'
|
||||
this.$element.on(eventIn, this.options.selector, $.proxy(this.enter, this))
|
||||
this.$element.on(eventOut, this.options.selector, $.proxy(this.leave, this))
|
||||
}
|
||||
|
||||
this.options.selector ?
|
||||
(this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :
|
||||
this.fixTitle()
|
||||
}
|
||||
|
||||
, getOptions: function (options) {
|
||||
options = $.extend({}, $.fn[this.type].defaults, options, this.$element.data())
|
||||
|
||||
if (options.delay && typeof options.delay == 'number') {
|
||||
options.delay = {
|
||||
show: options.delay
|
||||
, hide: options.delay
|
||||
}
|
||||
}
|
||||
|
||||
return options
|
||||
}
|
||||
|
||||
, enter: function (e) {
|
||||
var self = $(e.currentTarget)[this.type](this._options).data(this.type)
|
||||
|
||||
if (!self.options.delay || !self.options.delay.show) return self.show()
|
||||
|
||||
clearTimeout(this.timeout)
|
||||
self.hoverState = 'in'
|
||||
this.timeout = setTimeout(function() {
|
||||
if (self.hoverState == 'in') self.show()
|
||||
}, self.options.delay.show)
|
||||
}
|
||||
|
||||
, leave: function (e) {
|
||||
var self = $(e.currentTarget)[this.type](this._options).data(this.type)
|
||||
|
||||
if (this.timeout) clearTimeout(this.timeout)
|
||||
if (!self.options.delay || !self.options.delay.hide) return self.hide()
|
||||
|
||||
self.hoverState = 'out'
|
||||
this.timeout = setTimeout(function() {
|
||||
if (self.hoverState == 'out') self.hide()
|
||||
}, self.options.delay.hide)
|
||||
}
|
||||
|
||||
, show: function () {
|
||||
var $tip
|
||||
, inside
|
||||
, pos
|
||||
, actualWidth
|
||||
, actualHeight
|
||||
, placement
|
||||
, tp
|
||||
|
||||
if (this.hasContent() && this.enabled) {
|
||||
$tip = this.tip()
|
||||
this.setContent()
|
||||
|
||||
if (this.options.animation) {
|
||||
$tip.addClass('fade')
|
||||
}
|
||||
|
||||
placement = typeof this.options.placement == 'function' ?
|
||||
this.options.placement.call(this, $tip[0], this.$element[0]) :
|
||||
this.options.placement
|
||||
|
||||
inside = /in/.test(placement)
|
||||
|
||||
$tip
|
||||
.remove()
|
||||
.css({ top: 0, left: 0, display: 'block' })
|
||||
.appendTo(inside ? this.$element : document.body)
|
||||
|
||||
pos = this.getPosition(inside)
|
||||
|
||||
actualWidth = $tip[0].offsetWidth
|
||||
actualHeight = $tip[0].offsetHeight
|
||||
|
||||
switch (inside ? placement.split(' ')[1] : placement) {
|
||||
case 'bottom':
|
||||
tp = {top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2}
|
||||
break
|
||||
case 'top':
|
||||
tp = {top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2}
|
||||
break
|
||||
case 'left':
|
||||
tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth}
|
||||
break
|
||||
case 'right':
|
||||
tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width}
|
||||
break
|
||||
}
|
||||
|
||||
$tip
|
||||
.css(tp)
|
||||
.addClass(placement)
|
||||
.addClass('in')
|
||||
}
|
||||
}
|
||||
|
||||
, isHTML: function(text) {
|
||||
// html string detection logic adapted from jQuery
|
||||
return typeof text != 'string'
|
||||
|| ( text.charAt(0) === "<"
|
||||
&& text.charAt( text.length - 1 ) === ">"
|
||||
&& text.length >= 3
|
||||
) || /^(?:[^<]*<[\w\W]+>[^>]*$)/.exec(text)
|
||||
}
|
||||
|
||||
, setContent: function () {
|
||||
var $tip = this.tip()
|
||||
, title = this.getTitle()
|
||||
|
||||
$tip.find('.tooltip-inner')[this.isHTML(title) ? 'html' : 'text'](title)
|
||||
$tip.removeClass('fade in top bottom left right')
|
||||
}
|
||||
|
||||
, hide: function () {
|
||||
var that = this
|
||||
, $tip = this.tip()
|
||||
|
||||
$tip.removeClass('in')
|
||||
|
||||
function removeWithAnimation() {
|
||||
var timeout = setTimeout(function () {
|
||||
$tip.off($.support.transition.end).remove()
|
||||
}, 500)
|
||||
|
||||
$tip.one($.support.transition.end, function () {
|
||||
clearTimeout(timeout)
|
||||
$tip.remove()
|
||||
})
|
||||
}
|
||||
|
||||
$.support.transition && this.$tip.hasClass('fade') ?
|
||||
removeWithAnimation() :
|
||||
$tip.remove()
|
||||
}
|
||||
|
||||
, fixTitle: function () {
|
||||
var $e = this.$element
|
||||
if ($e.attr('title') || typeof($e.attr('data-original-title')) != 'string') {
|
||||
$e.attr('data-original-title', $e.attr('title') || '').removeAttr('title')
|
||||
}
|
||||
}
|
||||
|
||||
, hasContent: function () {
|
||||
return this.getTitle()
|
||||
}
|
||||
|
||||
, getPosition: function (inside) {
|
||||
return $.extend({}, (inside ? {top: 0, left: 0} : this.$element.offset()), {
|
||||
width: this.$element[0].offsetWidth
|
||||
, height: this.$element[0].offsetHeight
|
||||
})
|
||||
}
|
||||
|
||||
, getTitle: function () {
|
||||
var title
|
||||
, $e = this.$element
|
||||
, o = this.options
|
||||
|
||||
title = $e.attr('data-original-title')
|
||||
|| (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)
|
||||
|
||||
return title
|
||||
}
|
||||
|
||||
, tip: function () {
|
||||
return this.$tip = this.$tip || $(this.options.template)
|
||||
}
|
||||
|
||||
, validate: function () {
|
||||
if (!this.$element[0].parentNode) {
|
||||
this.hide()
|
||||
this.$element = null
|
||||
this.options = null
|
||||
}
|
||||
}
|
||||
|
||||
, enable: function () {
|
||||
this.enabled = true
|
||||
}
|
||||
|
||||
, disable: function () {
|
||||
this.enabled = false
|
||||
}
|
||||
|
||||
, toggleEnabled: function () {
|
||||
this.enabled = !this.enabled
|
||||
}
|
||||
|
||||
, toggle: function () {
|
||||
this[this.tip().hasClass('in') ? 'hide' : 'show']()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/* TOOLTIP PLUGIN DEFINITION
|
||||
* ========================= */
|
||||
|
||||
$.fn.tooltip = function ( option ) {
|
||||
return this.each(function () {
|
||||
var $this = $(this)
|
||||
, data = $this.data('tooltip')
|
||||
, options = typeof option == 'object' && option
|
||||
if (!data) $this.data('tooltip', (data = new Tooltip(this, options)))
|
||||
if (typeof option == 'string') data[option]()
|
||||
})
|
||||
}
|
||||
|
||||
$.fn.tooltip.Constructor = Tooltip
|
||||
|
||||
$.fn.tooltip.defaults = {
|
||||
animation: true
|
||||
, placement: 'top'
|
||||
, selector: false
|
||||
, template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'
|
||||
, trigger: 'hover'
|
||||
, title: ''
|
||||
, delay: 0
|
||||
}
|
||||
|
||||
}(window.jQuery);
|
||||
57
public/javascripts/jqplot.pieRenderer.min.js
vendored
Normal file
57
public/javascripts/jqplot.pieRenderer.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
57
public/javascripts/jquery.jqplot.min.js
vendored
Normal file
57
public/javascripts/jquery.jqplot.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
667
public/stylesheets/bootstrap-1.2.0.min.css
vendored
667
public/stylesheets/bootstrap-1.2.0.min.css
vendored
@@ -1,667 +0,0 @@
|
||||
.twtr-doc {
|
||||
float: right; /* float to the right of news */
|
||||
border-style: solid;
|
||||
border-color: grey;
|
||||
border-width: 1px;
|
||||
margin: 10px;
|
||||
}
|
||||
html,body{margin:0;padding:40px;}
|
||||
h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,cite,code,del,dfn,em,img,q,s,samp,small,strike,strong,sub,sup,tt,var,dd,dl,dt,li,ol,ul,fieldset,form,label,legend,button,table,caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;border:0;font-weight:normal;font-style:normal;font-size:100%;line-height:1;font-family:inherit;}
|
||||
table{border-collapse:collapse;border-spacing:0;}
|
||||
ol,ul{list-style:none;}
|
||||
q:before,q:after,blockquote:before,blockquote:after{content:"";}
|
||||
html{overflow-y:scroll;font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;}
|
||||
a:focus{outline:thin dotted;}
|
||||
article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block;}
|
||||
audio,canvas,video{display:inline-block;*display:inline;*zoom:1;}
|
||||
audio:not([controls]){display:none;}
|
||||
sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline;}
|
||||
sup{top:-0.5em;}
|
||||
sub{bottom:-0.25em;}
|
||||
img{border:0;-ms-interpolation-mode:bicubic;}
|
||||
button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle;}
|
||||
button,input{line-height:normal;*overflow:visible;}
|
||||
button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0;}
|
||||
button,input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button;}
|
||||
input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;}
|
||||
input[type="search"]::-webkit-search-decoration{-webkit-appearance:none;}
|
||||
textarea{overflow:auto;vertical-align:top;}
|
||||
.clearfix{zoom:1;}.clearfix:before,.clearfix:after{display:table;content:"";}
|
||||
.clearfix:after{clear:both;}
|
||||
.center-block{display:block;margin:0 auto;}
|
||||
.container{width:940px;margin:0 auto;zoom:1;margin-bottom:18px;}.container:before,.container:after{display:table;content:"";}
|
||||
.container:after{clear:both;}
|
||||
.btn.danger,.alert-message.danger,.btn.danger:hover,.alert-message.danger:hover,.btn.error,.alert-message.error,.btn.error:hover,.alert-message.error:hover,.btn.success,.alert-message.success,.btn.success:hover,.alert-message.success:hover,.btn.info,.alert-message.info,.btn.info:hover,.alert-message.info:hover{color:#ffffff;}
|
||||
.btn.danger,.alert-message.danger,.btn.error,.alert-message.error{background-color:#c43c35;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#ee5f5b), to(#c43c35));background-image:-moz-linear-gradient(top, #ee5f5b, #c43c35);background-image:-ms-linear-gradient(top, #ee5f5b, #c43c35);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #ee5f5b), color-stop(100%, #c43c35));background-image:-webkit-linear-gradient(top, #ee5f5b, #c43c35);background-image:-o-linear-gradient(top, #ee5f5b, #c43c35);background-image:linear-gradient(top, #ee5f5b, #c43c35);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0);text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);border-color:#c43c35 #c43c35 #882a25;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);}
|
||||
.btn.success,.alert-message.success{background-color:#57a957;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#62c462), to(#57a957));background-image:-moz-linear-gradient(top, #62c462, #57a957);background-image:-ms-linear-gradient(top, #62c462, #57a957);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #62c462), color-stop(100%, #57a957));background-image:-webkit-linear-gradient(top, #62c462, #57a957);background-image:-o-linear-gradient(top, #62c462, #57a957);background-image:linear-gradient(top, #62c462, #57a957);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0);text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);border-color:#57a957 #57a957 #3d773d;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);}
|
||||
.btn.info,.alert-message.info{background-color:#339bb9;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#5bc0de), to(#339bb9));background-image:-moz-linear-gradient(top, #5bc0de, #339bb9);background-image:-ms-linear-gradient(top, #5bc0de, #339bb9);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #5bc0de), color-stop(100%, #339bb9));background-image:-webkit-linear-gradient(top, #5bc0de, #339bb9);background-image:-o-linear-gradient(top, #5bc0de, #339bb9);background-image:linear-gradient(top, #5bc0de, #339bb9);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0);text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);border-color:#339bb9 #339bb9 #22697d;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);}
|
||||
.row{zoom:1;margin-bottom:18px;margin-left:-20px;}.row:before,.row:after{display:table;content:"";}
|
||||
.row:after{clear:both;}
|
||||
.row [class^="span"]{display:inline;float:left;margin-left:20px;}
|
||||
.row .span1{width:40px;}
|
||||
.row .span2{width:100px;}
|
||||
.row .span3{width:160px;}
|
||||
.row .span4{width:220px;}
|
||||
.row .span5{width:280px;}
|
||||
.row .span6{width:340px;}
|
||||
.row .span7{width:400px;}
|
||||
.row .span8{width:460px;}
|
||||
.row .span9{width:520px;}
|
||||
.row .span10{width:580px;}
|
||||
.row .span11{width:640px;}
|
||||
.row .span12{width:700px;}
|
||||
.row .span13{width:760px;}
|
||||
.row .span14{width:820px;}
|
||||
.row .span15{width:880px;}
|
||||
.row .span16{width:940px;}
|
||||
.row .offset1{margin-left:80px;}
|
||||
.row .offset2{margin-left:140px;}
|
||||
.row .offset3{margin-left:200px;}
|
||||
.row .offset4{margin-left:260px;}
|
||||
.row .offset5{margin-left:320px;}
|
||||
.row .offset6{margin-left:380px;}
|
||||
.row .offset7{margin-left:440px;}
|
||||
.row .offset8{margin-left:500px;}
|
||||
.row .offset9{margin-left:560px;}
|
||||
.row .offset10{margin-left:620px;}
|
||||
.row .offset11{margin-left:680px;}
|
||||
.row .offset12{margin-left:740px;}
|
||||
.row .span-one-third{width:300px;}
|
||||
.row .span-two-thirds{width:620px;}
|
||||
.row .offset-one-third{margin-left:340px;}
|
||||
.row .offset-two-thirds{margin-left:660px;}
|
||||
html,body{background-color:#fff;}
|
||||
body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:18px;color:#808080;}
|
||||
.container{width:940px;margin:0 auto;}
|
||||
.container-fluid{padding:0 20px;zoom:1;margin-bottom:18px;}.container-fluid:before,.container-fluid:after{display:table;content:"";}
|
||||
.container-fluid:after{clear:both;}
|
||||
.container-fluid>.sidebar{float:left;width:220px;}
|
||||
.container-fluid>.content{min-width:700px;max-width:1180px;margin-left:240px;}
|
||||
a{color:#0069d6;text-decoration:none;line-height:inherit;font-weight:inherit;}a:hover{color:#0050a3;text-decoration:underline;}
|
||||
p{font-size:13px;font-weight:normal;line-height:18px;margin-bottom:9px;}p small{font-size:11px;color:#bfbfbf;}
|
||||
h1,h2,h3,h4,h5,h6{font-weight:bold;color:#404040;}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{color:#bfbfbf;}
|
||||
h1{margin-bottom:18px;font-size:30px;line-height:36px;}h1 small{font-size:18px;}
|
||||
h2{font-size:24px;line-height:36px;}h2 small{font-size:14px;}
|
||||
h3,h4,h5,h6{line-height:36px;}
|
||||
h3{font-size:18px;}h3 small{font-size:14px;}
|
||||
h4{font-size:16px;}h4 small{font-size:12px;}
|
||||
h5{font-size:14px;}
|
||||
h6{font-size:13px;color:#bfbfbf;text-transform:uppercase;}
|
||||
ul,ol{margin:0 0 18px 25px;}
|
||||
ul ul,ul ol,ol ol,ol ul{margin-bottom:0;}
|
||||
ul{list-style:disc;}
|
||||
ol{list-style:decimal;}
|
||||
li{line-height:18px;color:#808080;}
|
||||
ul.unstyled{list-style:none;margin-left:0;}
|
||||
dl{margin-bottom:18px;}dl dt,dl dd{line-height:18px;}
|
||||
dl dt{font-weight:bold;}
|
||||
dl dd{margin-left:9px;}
|
||||
hr{margin:0 0 19px;border:0;border-bottom:1px solid #eee;}
|
||||
strong{font-style:inherit;font-weight:bold;line-height:inherit;}
|
||||
em{font-style:italic;font-weight:inherit;line-height:inherit;}
|
||||
.muted{color:#bfbfbf;}
|
||||
blockquote{margin-bottom:18px;border-left:5px solid #eee;padding-left:15px;}blockquote p{font-size:14px;font-weight:300;line-height:18px;margin-bottom:0;}
|
||||
blockquote small{display:block;font-size:12px;font-weight:300;line-height:18px;color:#bfbfbf;}blockquote small:before{content:'\2014 \00A0';}
|
||||
address{display:block;line-height:18px;margin-bottom:18px;}
|
||||
code,pre{padding:0 3px 2px;font-family:Monaco, Andale Mono, Courier New, monospace;font-size:12px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
|
||||
code{background-color:#fee9cc;color:rgba(0, 0, 0, 0.75);padding:1px 3px;}
|
||||
pre{background-color:#f5f5f5;display:block;padding:17px;margin:0 0 18px;line-height:18px;font-size:12px;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.15);-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;white-space:pre;white-space:pre-wrap;word-wrap:break-word;}
|
||||
form{margin-bottom:18px;}
|
||||
fieldset{margin-bottom:18px;padding-top:18px;}fieldset legend{display:block;margin-left:150px;font-size:20px;line-height:1;*margin:0 0 5px 145px;*line-height:1.5;color:#404040;}
|
||||
.clearfix{margin-bottom:18px;}
|
||||
label,input,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:normal;}
|
||||
label{padding-top:6px;font-size:13px;line-height:18px;float:left;width:130px;text-align:right;color:#404040;}
|
||||
div.input{margin-left:150px;}
|
||||
input[type=checkbox],input[type=radio]{cursor:pointer;}
|
||||
input,textarea,select,.uneditable-input{display:inline-block;width:210px;height:18px;padding:4px;font-size:13px;line-height:18px;color:#808080;border:1px solid #ccc;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
|
||||
input[type=checkbox],input[type=radio]{width:auto;height:auto;padding:0;margin:3px 0;*margin-top:0;line-height:normal;border:none;}
|
||||
input[type=file]{background-color:#fff;padding:initial;border:initial;line-height:initial;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;}
|
||||
input[type=button],input[type=reset],input[type=submit]{width:auto;height:auto;}
|
||||
select,input[type=file]{height:27px;line-height:27px;}
|
||||
textarea{height:auto;}
|
||||
.uneditable-input{background-color:#eee;display:block;border-color:#ccc;-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.075);}
|
||||
:-moz-placeholder{color:#bfbfbf;}
|
||||
::-webkit-input-placeholder{color:#bfbfbf;}
|
||||
input,select,textarea{-webkit-transition:border linear 0.2s,box-shadow linear 0.2s;-moz-transition:border linear 0.2s,box-shadow linear 0.2s;transition:border linear 0.2s,box-shadow linear 0.2s;-webkit-box-shadow:inset 0 1px 3px rgba(0, 0, 0, 0.1);-moz-box-shadow:inset 0 1px 3px rgba(0, 0, 0, 0.1);box-shadow:inset 0 1px 3px rgba(0, 0, 0, 0.1);}
|
||||
input:focus,textarea:focus{outline:none;border-color:rgba(82, 168, 236, 0.8);-webkit-box-shadow:inset 0 1px 3px rgba(0, 0, 0, 0.1),0 0 8px rgba(82, 168, 236, 0.6);-moz-box-shadow:inset 0 1px 3px rgba(0, 0, 0, 0.1),0 0 8px rgba(82, 168, 236, 0.6);box-shadow:inset 0 1px 3px rgba(0, 0, 0, 0.1),0 0 8px rgba(82, 168, 236, 0.6);}
|
||||
form div.error{background:#fae5e3;padding:10px 0;margin:-10px 0 10px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}form div.error>label,form div.error span.help-inline,form div.error span.help-block{color:#9d261d;}
|
||||
form div.error input,form div.error textarea{border-color:#c87872;-webkit-box-shadow:0 0 3px rgba(171, 41, 32, 0.25);-moz-box-shadow:0 0 3px rgba(171, 41, 32, 0.25);box-shadow:0 0 3px rgba(171, 41, 32, 0.25);}form div.error input:focus,form div.error textarea:focus{border-color:#b9554d;-webkit-box-shadow:0 0 6px rgba(171, 41, 32, 0.5);-moz-box-shadow:0 0 6px rgba(171, 41, 32, 0.5);box-shadow:0 0 6px rgba(171, 41, 32, 0.5);}
|
||||
form div.error .input-prepend span.add-on,form div.error .input-append span.add-on{background:#f4c8c5;border-color:#c87872;color:#b9554d;}
|
||||
.input-mini,input.mini,textarea.mini,select.mini{width:60px;}
|
||||
.input-small,input.small,textarea.small,select.small{width:90px;}
|
||||
.input-medium,input.medium,textarea.medium,select.medium{width:150px;}
|
||||
.input-large,input.large,textarea.large,select.large{width:210px;}
|
||||
.input-xlarge,input.xlarge,textarea.xlarge,select.xlarge{width:270px;}
|
||||
.input-xxlarge,input.xxlarge,textarea.xxlarge,select.xxlarge{width:530px;}
|
||||
textarea.xxlarge{overflow-y:scroll;}
|
||||
input[readonly]:focus,textarea[readonly]:focus,input.disabled{background:#f5f5f5;border-color:#ddd;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;}
|
||||
.actions{background:#f5f5f5;margin-top:18px;margin-bottom:18px;padding:17px 20px 18px 150px;border-top:1px solid #ddd;-webkit-border-radius:0 0 3px 3px;-moz-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;}.actions .secondary-action{float:right;}.actions .secondary-action a{line-height:30px;}.actions .secondary-action a:hover{text-decoration:underline;}
|
||||
.help-inline,.help-block{font-size:12px;line-height:18px;color:#bfbfbf;}
|
||||
.help-inline{padding-left:5px;*position:relative;*top:-5px;}
|
||||
.help-block{display:block;max-width:600px;}
|
||||
.inline-inputs{color:#808080;}.inline-inputs span,.inline-inputs input{display:inline-block;}
|
||||
.inline-inputs input.mini{width:60px;}
|
||||
.inline-inputs input.small{width:90px;}
|
||||
.inline-inputs span{padding:0 2px 0 1px;}
|
||||
.input-prepend input,.input-append input{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0;}
|
||||
.input-prepend .add-on,.input-append .add-on{background:#f5f5f5;float:left;display:block;width:auto;min-width:16px;padding:4px 4px 4px 5px;color:#bfbfbf;font-weight:normal;line-height:18px;height:18px;text-align:center;text-shadow:0 1px 0 #fff;border:1px solid #ccc;border-right-width:0;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;}
|
||||
.input-prepend .active,.input-append .active{background:#a9dba9;border-color:#46a546;}
|
||||
.input-prepend .add-on{*margin-top:1px;}
|
||||
.input-append input{float:left;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;}
|
||||
.input-append .add-on{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0;border-right-width:1px;border-left-width:0;}
|
||||
.inputs-list{margin:0 0 5px;width:100%;}.inputs-list li{display:block;padding:0;width:100%;}.inputs-list li label{display:block;float:none;width:auto;padding:0;line-height:18px;text-align:left;white-space:normal;}.inputs-list li label strong{color:#808080;}
|
||||
.inputs-list li label small{font-size:12px;font-weight:normal;}
|
||||
.inputs-list li ul.inputs-list{margin-left:25px;margin-bottom:10px;padding-top:0;}
|
||||
.inputs-list li:first-child{padding-top:5px;}
|
||||
.inputs-list input[type=radio],.inputs-list input[type=checkbox]{margin-bottom:0;}
|
||||
.form-stacked{padding-left:20px;}.form-stacked fieldset{padding-top:9px;}
|
||||
.form-stacked legend{margin-left:0;}
|
||||
.form-stacked label{display:block;float:none;width:auto;font-weight:bold;text-align:left;line-height:20px;padding-top:0;}
|
||||
.form-stacked .clearfix{margin-bottom:9px;}.form-stacked .clearfix div.input{margin-left:0;}
|
||||
.form-stacked .inputs-list{margin-bottom:0;}.form-stacked .inputs-list li{padding-top:0;}.form-stacked .inputs-list li label{font-weight:normal;padding-top:0;}
|
||||
.form-stacked div.error{padding-top:10px;padding-bottom:10px;padding-left:10px;margin-top:0;margin-left:-10px;}
|
||||
.form-stacked .actions{margin-left:-20px;padding-left:20px;}
|
||||
table{width:100%;margin-bottom:18px;padding:0;border-collapse:separate;font-size:13px;}table th,table td{padding:10px 10px 9px;line-height:13.5px;text-align:left;vertical-align:middle;border-bottom:1px solid #ddd;}
|
||||
table th{padding-top:9px;font-weight:bold;border-bottom-width:2px;}
|
||||
.zebra-striped tbody tr:nth-child(odd) td{background-color:#f9f9f9;}
|
||||
.zebra-striped tbody tr:hover td{background-color:#f5f5f5;}
|
||||
.zebra-striped .header{cursor:pointer;}.zebra-striped .header:after{content:"";float:right;margin-top:7px;border-width:0 4px 4px;border-style:solid;border-color:#000 transparent;visibility:hidden;}
|
||||
.zebra-striped .headerSortUp,.zebra-striped .headerSortDown{background-color:rgba(141, 192, 219, 0.25);text-shadow:0 1px 1px rgba(255, 255, 255, 0.75);-webkit-border-radius:3px 3px 0 0;-moz-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;}
|
||||
.zebra-striped .header:hover:after{visibility:visible;}
|
||||
.zebra-striped .headerSortDown:after,.zebra-striped .headerSortDown:hover:after{visibility:visible;filter:alpha(opacity=60);-khtml-opacity:0.6;-moz-opacity:0.6;opacity:0.6;}
|
||||
.zebra-striped .headerSortUp:after{border-bottom:none;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #000;visibility:visible;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:alpha(opacity=60);-khtml-opacity:0.6;-moz-opacity:0.6;opacity:0.6;}
|
||||
table .blue{color:#049cdb;border-bottom-color:#049cdb;}
|
||||
table .headerSortUp.blue,table .headerSortDown.blue{background-color:#ade6fe;}
|
||||
table .green{color:#46a546;border-bottom-color:#46a546;}
|
||||
table .headerSortUp.green,table .headerSortDown.green{background-color:#cdeacd;}
|
||||
table .red{color:#9d261d;border-bottom-color:#9d261d;}
|
||||
table .headerSortUp.red,table .headerSortDown.red{background-color:#f4c8c5;}
|
||||
table .yellow{color:#ffc40d;border-bottom-color:#ffc40d;}
|
||||
table .headerSortUp.yellow,table .headerSortDown.yellow{background-color:#fff6d9;}
|
||||
table .orange{color:#f89406;border-bottom-color:#f89406;}
|
||||
table .headerSortUp.orange,table .headerSortDown.orange{background-color:#fee9cc;}
|
||||
table .purple{color:#7a43b6;border-bottom-color:#7a43b6;}
|
||||
table .headerSortUp.purple,table .headerSortDown.purple{background-color:#e2d5f0;}
|
||||
.topbar{height:40px;position:fixed;top:0;left:0;right:0;z-index:10000;overflow:visible;}.topbar a{color:#bfbfbf;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);}
|
||||
.topbar a:hover,.topbar ul .active a{background-color:#333;background-color:rgba(255, 255, 255, 0.05);color:#ffffff;text-decoration:none;}
|
||||
.topbar h3{position:relative;}.topbar h3 a{float:left;display:block;padding:8px 20px 12px;margin-left:-20px;color:#ffffff;font-size:20px;font-weight:200;line-height:1;}
|
||||
.topbar form{float:left;margin:5px 0 0 0;position:relative;filter:alpha(opacity=100);-khtml-opacity:1;-moz-opacity:1;opacity:1;}
|
||||
.topbar input{background-color:#444;background-color:rgba(255, 255, 255, 0.3);font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:normal;font-weight:13px;line-height:1;padding:4px 9px;color:#fff;color:rgba(255, 255, 255, 0.75);border:1px solid #111;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1),0 1px 0px rgba(255, 255, 255, 0.25);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1),0 1px 0px rgba(255, 255, 255, 0.25);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1),0 1px 0px rgba(255, 255, 255, 0.25);-webkit-transition:none;-moz-transition:none;transition:none;}.topbar input:-moz-placeholder{color:#e6e6e6;}
|
||||
.topbar input::-webkit-input-placeholder{color:#e6e6e6;}
|
||||
.topbar input:hover{background-color:#bfbfbf;background-color:rgba(255, 255, 255, 0.5);color:#fff;}
|
||||
.topbar input:focus,.topbar input.focused{outline:none;background-color:#fff;color:#404040;text-shadow:0 1px 0 #fff;border:0;padding:5px 10px;-webkit-box-shadow:0 0 3px rgba(0, 0, 0, 0.15);-moz-box-shadow:0 0 3px rgba(0, 0, 0, 0.15);box-shadow:0 0 3px rgba(0, 0, 0, 0.15);}
|
||||
.topbar-inner,.topbar .fill{background-color:#222;background-color:#222222;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#333333), to(#222222));background-image:-moz-linear-gradient(top, #333333, #222222);background-image:-ms-linear-gradient(top, #333333, #222222);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #333333), color-stop(100%, #222222));background-image:-webkit-linear-gradient(top, #333333, #222222);background-image:-o-linear-gradient(top, #333333, #222222);background-image:linear-gradient(top, #333333, #222222);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0);-webkit-box-shadow:0 1px 3px rgba(0, 0, 0, 0.25),inset 0 -1px 0 rgba(0, 0, 0, 0.1);-moz-box-shadow:0 1px 3px rgba(0, 0, 0, 0.25),inset 0 -1px 0 rgba(0, 0, 0, 0.1);box-shadow:0 1px 3px rgba(0, 0, 0, 0.25),inset 0 -1px 0 rgba(0, 0, 0, 0.1);}
|
||||
.topbar div>ul,.nav{display:block;float:left;margin:0 10px 0 0;position:relative;left:0;}.topbar div>ul>li,.nav>li{display:block;float:left;}
|
||||
.topbar div>ul a,.nav a{display:block;float:none;padding:10px 10px 11px;line-height:19px;text-decoration:none;}.topbar div>ul a:hover,.nav a:hover{color:#fff;text-decoration:none;}
|
||||
.topbar div>ul .active a,.nav .active a{background-color:#222;background-color:rgba(0, 0, 0, 0.5);}
|
||||
.topbar div>ul.secondary-nav,.nav.secondary-nav{float:right;margin-left:10px;margin-right:0;}.topbar div>ul.secondary-nav .menu-dropdown,.nav.secondary-nav .menu-dropdown,.topbar div>ul.secondary-nav .dropdown-menu,.nav.secondary-nav .dropdown-menu{right:0;}
|
||||
.topbar div>ul a.menu:hover,.nav a.menu:hover,.topbar div>ul li.open .menu,.nav li.open .menu,.topbar div>ul .dropdown-toggle:hover,.nav .dropdown-toggle:hover,.topbar div>ul .dropdown.open .dropdown-toggle,.nav .dropdown.open .dropdown-toggle{background:#444;background:rgba(255, 255, 255, 0.05);}
|
||||
.topbar div>ul .menu-dropdown,.nav .menu-dropdown,.topbar div>ul .dropdown-menu,.nav .dropdown-menu{background-color:#333;}.topbar div>ul .menu-dropdown a.menu,.nav .menu-dropdown a.menu,.topbar div>ul .dropdown-menu a.menu,.nav .dropdown-menu a.menu,.topbar div>ul .menu-dropdown .dropdown-toggle,.nav .menu-dropdown .dropdown-toggle,.topbar div>ul .dropdown-menu .dropdown-toggle,.nav .dropdown-menu .dropdown-toggle{color:#fff;}.topbar div>ul .menu-dropdown a.menu.open,.nav .menu-dropdown a.menu.open,.topbar div>ul .dropdown-menu a.menu.open,.nav .dropdown-menu a.menu.open,.topbar div>ul .menu-dropdown .dropdown-toggle.open,.nav .menu-dropdown .dropdown-toggle.open,.topbar div>ul .dropdown-menu .dropdown-toggle.open,.nav .dropdown-menu .dropdown-toggle.open{background:#444;background:rgba(255, 255, 255, 0.05);}
|
||||
.topbar div>ul .menu-dropdown li a,.nav .menu-dropdown li a,.topbar div>ul .dropdown-menu li a,.nav .dropdown-menu li a{color:#999;text-shadow:0 1px 0 rgba(0, 0, 0, 0.5);}.topbar div>ul .menu-dropdown li a:hover,.nav .menu-dropdown li a:hover,.topbar div>ul .dropdown-menu li a:hover,.nav .dropdown-menu li a:hover{background-color:#191919;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#292929), to(#191919));background-image:-moz-linear-gradient(top, #292929, #191919);background-image:-ms-linear-gradient(top, #292929, #191919);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #292929), color-stop(100%, #191919));background-image:-webkit-linear-gradient(top, #292929, #191919);background-image:-o-linear-gradient(top, #292929, #191919);background-image:linear-gradient(top, #292929, #191919);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#292929', endColorstr='#191919', GradientType=0);color:#fff;}
|
||||
.topbar div>ul .menu-dropdown .divider,.nav .menu-dropdown .divider,.topbar div>ul .dropdown-menu .divider,.nav .dropdown-menu .divider{background-color:#222;border-color:#444;}
|
||||
.topbar ul .menu-dropdown li a,.topbar ul .dropdown-menu li a{padding:4px 15px;}
|
||||
li.menu,.dropdown{position:relative;}
|
||||
a.menu:after,.dropdown-toggle:after{width:0;height:0;display:inline-block;content:"↓";text-indent:-99999px;vertical-align:top;margin-top:8px;margin-left:4px;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #fff;filter:alpha(opacity=50);-khtml-opacity:0.5;-moz-opacity:0.5;opacity:0.5;}
|
||||
.menu-dropdown,.dropdown-menu{background-color:#fff;float:left;display:none;position:absolute;top:40px;min-width:160px;max-width:220px;_width:160px;margin-left:0;margin-right:0;padding:6px 0;zoom:1;border-color:#999;border-color:rgba(0, 0, 0, 0.2);border-style:solid;border-width:0 1px 1px;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;-webkit-box-shadow:0 2px 4px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 2px 4px rgba(0, 0, 0, 0.2);box-shadow:0 2px 4px rgba(0, 0, 0, 0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;}.menu-dropdown li,.dropdown-menu li{float:none;display:block;background-color:none;}
|
||||
.menu-dropdown .divider,.dropdown-menu .divider{height:1px;margin:5px 0;overflow:hidden;background-color:#eee;border-bottom:1px solid #fff;}
|
||||
.topbar .dropdown-menu a,.dropdown-menu a{display:block;padding:4px 15px;clear:both;font-weight:normal;line-height:18px;color:#808080;text-shadow:0 1px 0 #fff;}.topbar .dropdown-menu a:hover,.dropdown-menu a:hover{background-color:#dddddd;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#eeeeee), to(#dddddd));background-image:-moz-linear-gradient(top, #eeeeee, #dddddd);background-image:-ms-linear-gradient(top, #eeeeee, #dddddd);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #eeeeee), color-stop(100%, #dddddd));background-image:-webkit-linear-gradient(top, #eeeeee, #dddddd);background-image:-o-linear-gradient(top, #eeeeee, #dddddd);background-image:linear-gradient(top, #eeeeee, #dddddd);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#dddddd', GradientType=0);color:#404040;text-decoration:none;-webkit-box-shadow:inset 0 1px 0 rgba(0, 0, 0, 0.025),inset 0 -1px rgba(0, 0, 0, 0.025);-moz-box-shadow:inset 0 1px 0 rgba(0, 0, 0, 0.025),inset 0 -1px rgba(0, 0, 0, 0.025);box-shadow:inset 0 1px 0 rgba(0, 0, 0, 0.025),inset 0 -1px rgba(0, 0, 0, 0.025);}
|
||||
.open .menu,.dropdown.open .menu,.open .dropdown-toggle,.dropdown.open .dropdown-toggle{color:#fff;background:#ccc;background:rgba(0, 0, 0, 0.3);}
|
||||
.open .menu-dropdown,.dropdown.open .menu-dropdown,.open .dropdown-menu,.dropdown.open .dropdown-menu{display:block;}
|
||||
.tabs,.pills{margin:0 0 20px;padding:0;list-style:none;zoom:1;margin-bottom:18px;}.tabs:before,.pills:before,.tabs:after,.pills:after{display:table;content:"";}
|
||||
.tabs:after,.pills:after{clear:both;}
|
||||
.tabs>li,.pills>li{float:left;}.tabs>li>a,.pills>li>a{display:block;}
|
||||
.tabs{width:100%;border-bottom:1px solid #ddd;}.tabs>li{position:relative;top:1px;}.tabs>li>a{margin-right:2px;padding:0 15px;line-height:35px;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;}.tabs>li>a:hover{background-color:#eee;border-bottom:1px solid #ddd;text-decoration:none;}
|
||||
.tabs>li.active>a{background-color:#fff;padding:0 14px;border:1px solid #ddd;border-bottom:0;color:#808080;}
|
||||
.tabs .menu-dropdown,.tabs .dropdown-menu{top:35px;border-width:1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px;}
|
||||
.tabs a.menu:after,.tabs .dropdown-toggle:after{border-top-color:#999;margin-top:15px;margin-left:5px;}
|
||||
.tabs li.open a.menu:after,.tabs .dropdown.open .dropdown-toggle:after{border-top-color:#555;}
|
||||
.pills a{margin:5px 3px 5px 0;padding:0 15px;text-shadow:0 1px 1px #fff;line-height:30px;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px;}.pills a:hover{background:#0050a3;color:#fff;text-decoration:none;text-shadow:0 1px 1px rgba(0, 0, 0, 0.25);}
|
||||
.pills .active a{background:#0069d6;color:#fff;text-shadow:0 1px 1px rgba(0, 0, 0, 0.25);}
|
||||
.hero-unit{background-color:#f5f5f5;margin-top:60px;margin-bottom:30px;padding:60px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px;}
|
||||
.hero-unit p{font-size:18px;font-weight:200;line-height:27px;}
|
||||
footer{margin-top:17px;padding-top:17px;border-top:1px solid #eee;}
|
||||
.page-header{margin-bottom:17px;border-bottom:1px solid #ddd;-webkit-box-shadow:0 1px 0 rgba(255, 255, 255, 0.5);-moz-box-shadow:0 1px 0 rgba(255, 255, 255, 0.5);box-shadow:0 1px 0 rgba(255, 255, 255, 0.5);}.page-header h1{margin-bottom:8px;}
|
||||
.btn{cursor:pointer;display:inline-block;background-color:#e6e6e6;background-repeat:no-repeat;background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), color-stop(25%, #ffffff), to(#e6e6e6));background-image:-webkit-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);background-image:-moz-linear-gradient(top, #ffffff, #ffffff 25%, #e6e6e6);background-image:-ms-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);background-image:-o-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);background-image:linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);padding:5px 14px 6px;text-shadow:0 1px 1px rgba(255, 255, 255, 0.75);color:#333;font-size:13px;line-height:normal;border:1px solid #ccc;border-bottom-color:#bbb;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);-webkit-transition:0.1s linear all;-moz-transition:0.1s linear all;transition:0.1s linear all;}.btn:hover{background-position:0 -15px;color:#333;text-decoration:none;}
|
||||
.btn.primary{color:#fff;background-color:#0064cd;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#049cdb), to(#0064cd));background-image:-moz-linear-gradient(top, #049cdb, #0064cd);background-image:-ms-linear-gradient(top, #049cdb, #0064cd);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #049cdb), color-stop(100%, #0064cd));background-image:-webkit-linear-gradient(top, #049cdb, #0064cd);background-image:-o-linear-gradient(top, #049cdb, #0064cd);background-image:linear-gradient(top, #049cdb, #0064cd);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#049cdb', endColorstr='#0064cd', GradientType=0);text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);border-color:#0064cd #0064cd #003f81;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);}
|
||||
.btn:active{-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.25),0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.25),0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.25),0 1px 2px rgba(0, 0, 0, 0.05);}
|
||||
.btn.disabled{cursor:default;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=65);-khtml-opacity:0.65;-moz-opacity:0.65;opacity:0.65;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;}
|
||||
.btn[disabled]{cursor:default;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=65);-khtml-opacity:0.65;-moz-opacity:0.65;opacity:0.65;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;}
|
||||
.btn.large{font-size:16px;line-height:normal;padding:9px 14px 9px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}
|
||||
.btn.small{padding:7px 9px 7px;font-size:11px;}
|
||||
:root .alert-message,:root .btn{border-radius:0 \0;}
|
||||
button.btn::-moz-focus-inner,input[type=submit].btn::-moz-focus-inner{padding:0;border:0;}
|
||||
.alert-message{background-color:#eedc94;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#fceec1), to(#eedc94));background-image:-moz-linear-gradient(top, #fceec1, #eedc94);background-image:-ms-linear-gradient(top, #fceec1, #eedc94);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #fceec1), color-stop(100%, #eedc94));background-image:-webkit-linear-gradient(top, #fceec1, #eedc94);background-image:-o-linear-gradient(top, #fceec1, #eedc94);background-image:linear-gradient(top, #fceec1, #eedc94);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fceec1', endColorstr='#eedc94', GradientType=0);text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);border-color:#eedc94 #eedc94 #e4c652;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);margin-bottom:18px;padding:7px 14px;color:#404040;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);border-width:1px;border-style:solid;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.25);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.25);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.25);}.alert-message h5{line-height:18px;}
|
||||
.alert-message p{margin-bottom:0;}
|
||||
.alert-message div{margin-top:5px;margin-bottom:2px;line-height:28px;}
|
||||
.alert-message .btn{-webkit-box-shadow:0 1px 0 rgba(255, 255, 255, 0.25);-moz-box-shadow:0 1px 0 rgba(255, 255, 255, 0.25);box-shadow:0 1px 0 rgba(255, 255, 255, 0.25);}
|
||||
.alert-message .close{float:right;margin-top:-2px;color:#000000;font-size:20px;font-weight:bold;text-shadow:0 1px 0 #ffffff;filter:alpha(opacity=20);-khtml-opacity:0.2;-moz-opacity:0.2;opacity:0.2;}.alert-message .close:hover{color:#000000;text-decoration:none;filter:alpha(opacity=40);-khtml-opacity:0.4;-moz-opacity:0.4;opacity:0.4;}
|
||||
.alert-message.block-message{background-image:none;background-color:#fdf5d9;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);padding:14px;border-color:#fceec1;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;}.alert-message.block-message p{margin-right:30px;}
|
||||
.alert-message.block-message .alert-actions{margin-top:5px;}
|
||||
.alert-message.block-message.error,.alert-message.block-message.success,.alert-message.block-message.info{color:#404040;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);}
|
||||
.alert-message.block-message.error{background-color:#fddfde;border-color:#fbc7c6;}
|
||||
.alert-message.block-message.success{background-color:#d1eed1;border-color:#bfe7bf;}
|
||||
.alert-message.block-message.info{background-color:#ddf4fb;border-color:#c6edf9;}
|
||||
.pagination{height:36px;margin:18px 0;}.pagination ul{float:left;margin:0;border:1px solid #ddd;border:1px solid rgba(0, 0, 0, 0.15);-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);}
|
||||
.pagination li{display:inline;}
|
||||
.pagination a{float:left;padding:0 14px;line-height:34px;border-right:1px solid;border-right-color:#ddd;border-right-color:rgba(0, 0, 0, 0.15);*border-right-color:#ddd;text-decoration:none;}
|
||||
.pagination a:hover,.pagination .active a{background-color:#c7eefe;}
|
||||
.pagination .disabled a,.pagination .disabled a:hover{background-color:transparent;color:#bfbfbf;}
|
||||
.pagination .next a{border:0;}
|
||||
.well{background-color:#f5f5f5;margin-bottom:20px;padding:19px;min-height:20px;border:1px solid #eee;border:1px solid rgba(0, 0, 0, 0.05);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);}
|
||||
.modal-backdrop{background-color:rgba(0, 0, 0, 0.5);position:fixed;top:0;left:0;right:0;bottom:0;z-index:1000;}
|
||||
.modal{position:fixed;top:65%;left:50%;z-index:2000;width:560px;margin:-280px 0 0 -250px;background-color:#ffffff;border:1px solid #999;border:1px solid rgba(0, 0, 0, 0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;overflow:auto;max-height:80%}
|
||||
.modal-header{border-bottom:1px solid #eee;padding:5px 20px;}.modal-header .close{position:absolute;right:10px;top:10px;color:#999;line-height:10px;font-size:18px;}
|
||||
.modal-body{padding:20px;}
|
||||
.modal-footer{background-color:#f5f5f5;padding:14px 20px 15px;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;-webkit-box-shadow:inset 0 1px 0 #ffffff;-moz-box-shadow:inset 0 1px 0 #ffffff;box-shadow:inset 0 1px 0 #ffffff;zoom:1;margin-bottom:18px;margin-bottom:0;}.modal-footer:before,.modal-footer:after{display:table;content:"";}
|
||||
.modal-footer:after{clear:both;}
|
||||
.modal-footer .btn{float:right;margin-left:10px;}
|
||||
.twipsy{display:block;position:absolute;visibility:visible;padding:5px;font-size:11px;z-index:1000;filter:alpha(opacity=80);-khtml-opacity:0.8;-moz-opacity:0.8;opacity:0.8;}.twipsy.above .twipsy-arrow{bottom:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #000000;}
|
||||
.twipsy.left .twipsy-arrow{top:50%;right:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid #000000;}
|
||||
.twipsy.below .twipsy-arrow{top:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid #000000;}
|
||||
.twipsy.right .twipsy-arrow{top:50%;left:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-right:5px solid #000000;}
|
||||
.twipsy-inner{padding:3px 8px;background-color:#000;color:white;text-align:center;max-width:200px;text-decoration:none;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
|
||||
.twipsy-arrow{position:absolute;width:0;height:0;}
|
||||
.popover{position:absolute;top:0;left:0;z-index:1000;padding:5px;display:none;}.popover.above .arrow{bottom:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #000000;}
|
||||
.popover.right .arrow{top:50%;left:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-right:5px solid #000000;}
|
||||
.popover.below .arrow{top:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid #000000;}
|
||||
.popover.left .arrow{top:50%;right:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid #000000;}
|
||||
.popover .arrow{position:absolute;width:0;height:0;}
|
||||
.popover .inner{background:#333;background:rgba(0, 0, 0, 0.8);padding:3px;overflow:hidden;width:280px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);}
|
||||
.popover .title{background-color:#f5f5f5;padding:9px 15px;line-height:1;-webkit-border-radius:3px 3px 0 0;-moz-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;border-bottom:1px solid #eee;}
|
||||
.popover .content{background-color:#ffffff;padding:14px;-webkit-border-radius:0 0 3px 3px;-moz-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;}.popover .content p,.popover .content ul,.popover .content ol{margin-bottom:0;}
|
||||
|
||||
<!--
|
||||
.tooltip {
|
||||
position: absolute;
|
||||
display: none;
|
||||
background-color: #EEEEEE;
|
||||
}
|
||||
-->
|
||||
|
||||
.hiddenbar {display:none}
|
||||
.shownbar {display:inline}
|
||||
|
||||
/*
|
||||
* jQuery UI CSS Framework 1.8.16
|
||||
*
|
||||
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Theming/API
|
||||
*/
|
||||
|
||||
/* Layout helpers
|
||||
----------------------------------*/
|
||||
.ui-helper-hidden { display: none; }
|
||||
.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
|
||||
.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
|
||||
.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
|
||||
.ui-helper-clearfix { display: inline-block; }
|
||||
/* required comment for clearfix to work in Opera \*/
|
||||
* html .ui-helper-clearfix { height:1%; }
|
||||
.ui-helper-clearfix { display:block; }
|
||||
/* end clearfix */
|
||||
.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
|
||||
|
||||
|
||||
/* Interaction Cues
|
||||
----------------------------------*/
|
||||
.ui-state-disabled { cursor: default !important; }
|
||||
|
||||
|
||||
/* Icons
|
||||
----------------------------------*/
|
||||
|
||||
/* states and images */
|
||||
.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
|
||||
|
||||
|
||||
/* Misc visuals
|
||||
----------------------------------*/
|
||||
|
||||
/* Overlays */
|
||||
.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
|
||||
|
||||
|
||||
/*
|
||||
* jQuery UI CSS Framework 1.8.16
|
||||
*
|
||||
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Theming/API
|
||||
*
|
||||
* To view and modify this theme, visit http://jqueryui.com/themeroller/?ctl=themeroller
|
||||
*/
|
||||
|
||||
|
||||
/* Component containers
|
||||
----------------------------------*/
|
||||
.ui-widget { font-family: Verdana,Arial,sans-serif; font-size: 1.1em; }
|
||||
.ui-widget .ui-widget { font-size: 1em; }
|
||||
.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif; font-size: 1em; }
|
||||
.ui-widget-content { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_glass_75_ffffff_1x400.png) 50% 50% repeat-x; color: #222222; }
|
||||
.ui-widget-content a { color: #222222; }
|
||||
.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; }
|
||||
.ui-widget-header a { color: #222222; }
|
||||
|
||||
/* Interaction states
|
||||
----------------------------------*/
|
||||
.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; }
|
||||
.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555; text-decoration: none; }
|
||||
.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; }
|
||||
.ui-state-hover a, .ui-state-hover a:hover { color: #212121; text-decoration: none; }
|
||||
.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; }
|
||||
.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121; text-decoration: none; }
|
||||
.ui-widget :active { outline: none; }
|
||||
|
||||
/* Interaction Cues
|
||||
----------------------------------*/
|
||||
.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; }
|
||||
.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
|
||||
.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; }
|
||||
.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; }
|
||||
.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; }
|
||||
.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
|
||||
.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
|
||||
.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
|
||||
|
||||
/* Icons
|
||||
----------------------------------*/
|
||||
|
||||
/* states and images */
|
||||
.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
|
||||
.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
|
||||
.ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
|
||||
.ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png); }
|
||||
.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
|
||||
.ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
|
||||
.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); }
|
||||
.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); }
|
||||
|
||||
/* positioning */
|
||||
.ui-icon-carat-1-n { background-position: 0 0; }
|
||||
.ui-icon-carat-1-ne { background-position: -16px 0; }
|
||||
.ui-icon-carat-1-e { background-position: -32px 0; }
|
||||
.ui-icon-carat-1-se { background-position: -48px 0; }
|
||||
.ui-icon-carat-1-s { background-position: -64px 0; }
|
||||
.ui-icon-carat-1-sw { background-position: -80px 0; }
|
||||
.ui-icon-carat-1-w { background-position: -96px 0; }
|
||||
.ui-icon-carat-1-nw { background-position: -112px 0; }
|
||||
.ui-icon-carat-2-n-s { background-position: -128px 0; }
|
||||
.ui-icon-carat-2-e-w { background-position: -144px 0; }
|
||||
.ui-icon-triangle-1-n { background-position: 0 -16px; }
|
||||
.ui-icon-triangle-1-ne { background-position: -16px -16px; }
|
||||
.ui-icon-triangle-1-e { background-position: -32px -16px; }
|
||||
.ui-icon-triangle-1-se { background-position: -48px -16px; }
|
||||
.ui-icon-triangle-1-s { background-position: -64px -16px; }
|
||||
.ui-icon-triangle-1-sw { background-position: -80px -16px; }
|
||||
.ui-icon-triangle-1-w { background-position: -96px -16px; }
|
||||
.ui-icon-triangle-1-nw { background-position: -112px -16px; }
|
||||
.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
|
||||
.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
|
||||
.ui-icon-arrow-1-n { background-position: 0 -32px; }
|
||||
.ui-icon-arrow-1-ne { background-position: -16px -32px; }
|
||||
.ui-icon-arrow-1-e { background-position: -32px -32px; }
|
||||
.ui-icon-arrow-1-se { background-position: -48px -32px; }
|
||||
.ui-icon-arrow-1-s { background-position: -64px -32px; }
|
||||
.ui-icon-arrow-1-sw { background-position: -80px -32px; }
|
||||
.ui-icon-arrow-1-w { background-position: -96px -32px; }
|
||||
.ui-icon-arrow-1-nw { background-position: -112px -32px; }
|
||||
.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
|
||||
.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
|
||||
.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
|
||||
.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
|
||||
.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
|
||||
.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
|
||||
.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
|
||||
.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
|
||||
.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
|
||||
.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
|
||||
.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
|
||||
.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
|
||||
.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
|
||||
.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
|
||||
.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
|
||||
.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
|
||||
.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
|
||||
.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
|
||||
.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
|
||||
.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
|
||||
.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
|
||||
.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
|
||||
.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
|
||||
.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
|
||||
.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
|
||||
.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
|
||||
.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
|
||||
.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
|
||||
.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
|
||||
.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
|
||||
.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
|
||||
.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
|
||||
.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
|
||||
.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
|
||||
.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
|
||||
.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
|
||||
.ui-icon-arrow-4 { background-position: 0 -80px; }
|
||||
.ui-icon-arrow-4-diag { background-position: -16px -80px; }
|
||||
.ui-icon-extlink { background-position: -32px -80px; }
|
||||
.ui-icon-newwin { background-position: -48px -80px; }
|
||||
.ui-icon-refresh { background-position: -64px -80px; }
|
||||
.ui-icon-shuffle { background-position: -80px -80px; }
|
||||
.ui-icon-transfer-e-w { background-position: -96px -80px; }
|
||||
.ui-icon-transferthick-e-w { background-position: -112px -80px; }
|
||||
.ui-icon-folder-collapsed { background-position: 0 -96px; }
|
||||
.ui-icon-folder-open { background-position: -16px -96px; }
|
||||
.ui-icon-document { background-position: -32px -96px; }
|
||||
.ui-icon-document-b { background-position: -48px -96px; }
|
||||
.ui-icon-note { background-position: -64px -96px; }
|
||||
.ui-icon-mail-closed { background-position: -80px -96px; }
|
||||
.ui-icon-mail-open { background-position: -96px -96px; }
|
||||
.ui-icon-suitcase { background-position: -112px -96px; }
|
||||
.ui-icon-comment { background-position: -128px -96px; }
|
||||
.ui-icon-person { background-position: -144px -96px; }
|
||||
.ui-icon-print { background-position: -160px -96px; }
|
||||
.ui-icon-trash { background-position: -176px -96px; }
|
||||
.ui-icon-locked { background-position: -192px -96px; }
|
||||
.ui-icon-unlocked { background-position: -208px -96px; }
|
||||
.ui-icon-bookmark { background-position: -224px -96px; }
|
||||
.ui-icon-tag { background-position: -240px -96px; }
|
||||
.ui-icon-home { background-position: 0 -112px; }
|
||||
.ui-icon-flag { background-position: -16px -112px; }
|
||||
.ui-icon-calendar { background-position: -32px -112px; }
|
||||
.ui-icon-cart { background-position: -48px -112px; }
|
||||
.ui-icon-pencil { background-position: -64px -112px; }
|
||||
.ui-icon-clock { background-position: -80px -112px; }
|
||||
.ui-icon-disk { background-position: -96px -112px; }
|
||||
.ui-icon-calculator { background-position: -112px -112px; }
|
||||
.ui-icon-zoomin { background-position: -128px -112px; }
|
||||
.ui-icon-zoomout { background-position: -144px -112px; }
|
||||
.ui-icon-search { background-position: -160px -112px; }
|
||||
.ui-icon-wrench { background-position: -176px -112px; }
|
||||
.ui-icon-gear { background-position: -192px -112px; }
|
||||
.ui-icon-heart { background-position: -208px -112px; }
|
||||
.ui-icon-star { background-position: -224px -112px; }
|
||||
.ui-icon-link { background-position: -240px -112px; }
|
||||
.ui-icon-cancel { background-position: 0 -128px; }
|
||||
.ui-icon-plus { background-position: -16px -128px; }
|
||||
.ui-icon-plusthick { background-position: -32px -128px; }
|
||||
.ui-icon-minus { background-position: -48px -128px; }
|
||||
.ui-icon-minusthick { background-position: -64px -128px; }
|
||||
.ui-icon-close { background-position: -80px -128px; }
|
||||
.ui-icon-closethick { background-position: -96px -128px; }
|
||||
.ui-icon-key { background-position: -112px -128px; }
|
||||
.ui-icon-lightbulb { background-position: -128px -128px; }
|
||||
.ui-icon-scissors { background-position: -144px -128px; }
|
||||
.ui-icon-clipboard { background-position: -160px -128px; }
|
||||
.ui-icon-copy { background-position: -176px -128px; }
|
||||
.ui-icon-contact { background-position: -192px -128px; }
|
||||
.ui-icon-image { background-position: -208px -128px; }
|
||||
.ui-icon-video { background-position: -224px -128px; }
|
||||
.ui-icon-script { background-position: -240px -128px; }
|
||||
.ui-icon-alert { background-position: 0 -144px; }
|
||||
.ui-icon-info { background-position: -16px -144px; }
|
||||
.ui-icon-notice { background-position: -32px -144px; }
|
||||
.ui-icon-help { background-position: -48px -144px; }
|
||||
.ui-icon-check { background-position: -64px -144px; }
|
||||
.ui-icon-bullet { background-position: -80px -144px; }
|
||||
.ui-icon-radio-off { background-position: -96px -144px; }
|
||||
.ui-icon-radio-on { background-position: -112px -144px; }
|
||||
.ui-icon-pin-w { background-position: -128px -144px; }
|
||||
.ui-icon-pin-s { background-position: -144px -144px; }
|
||||
.ui-icon-play { background-position: 0 -160px; }
|
||||
.ui-icon-pause { background-position: -16px -160px; }
|
||||
.ui-icon-seek-next { background-position: -32px -160px; }
|
||||
.ui-icon-seek-prev { background-position: -48px -160px; }
|
||||
.ui-icon-seek-end { background-position: -64px -160px; }
|
||||
.ui-icon-seek-start { background-position: -80px -160px; }
|
||||
/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
|
||||
.ui-icon-seek-first { background-position: -80px -160px; }
|
||||
.ui-icon-stop { background-position: -96px -160px; }
|
||||
.ui-icon-eject { background-position: -112px -160px; }
|
||||
.ui-icon-volume-off { background-position: -128px -160px; }
|
||||
.ui-icon-volume-on { background-position: -144px -160px; }
|
||||
.ui-icon-power { background-position: 0 -176px; }
|
||||
.ui-icon-signal-diag { background-position: -16px -176px; }
|
||||
.ui-icon-signal { background-position: -32px -176px; }
|
||||
.ui-icon-battery-0 { background-position: -48px -176px; }
|
||||
.ui-icon-battery-1 { background-position: -64px -176px; }
|
||||
.ui-icon-battery-2 { background-position: -80px -176px; }
|
||||
.ui-icon-battery-3 { background-position: -96px -176px; }
|
||||
.ui-icon-circle-plus { background-position: 0 -192px; }
|
||||
.ui-icon-circle-minus { background-position: -16px -192px; }
|
||||
.ui-icon-circle-close { background-position: -32px -192px; }
|
||||
.ui-icon-circle-triangle-e { background-position: -48px -192px; }
|
||||
.ui-icon-circle-triangle-s { background-position: -64px -192px; }
|
||||
.ui-icon-circle-triangle-w { background-position: -80px -192px; }
|
||||
.ui-icon-circle-triangle-n { background-position: -96px -192px; }
|
||||
.ui-icon-circle-arrow-e { background-position: -112px -192px; }
|
||||
.ui-icon-circle-arrow-s { background-position: -128px -192px; }
|
||||
.ui-icon-circle-arrow-w { background-position: -144px -192px; }
|
||||
.ui-icon-circle-arrow-n { background-position: -160px -192px; }
|
||||
.ui-icon-circle-zoomin { background-position: -176px -192px; }
|
||||
.ui-icon-circle-zoomout { background-position: -192px -192px; }
|
||||
.ui-icon-circle-check { background-position: -208px -192px; }
|
||||
.ui-icon-circlesmall-plus { background-position: 0 -208px; }
|
||||
.ui-icon-circlesmall-minus { background-position: -16px -208px; }
|
||||
.ui-icon-circlesmall-close { background-position: -32px -208px; }
|
||||
.ui-icon-squaresmall-plus { background-position: -48px -208px; }
|
||||
.ui-icon-squaresmall-minus { background-position: -64px -208px; }
|
||||
.ui-icon-squaresmall-close { background-position: -80px -208px; }
|
||||
.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
|
||||
.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
|
||||
.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
|
||||
.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
|
||||
.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
|
||||
.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
|
||||
|
||||
|
||||
/* Misc visuals
|
||||
----------------------------------*/
|
||||
|
||||
/* Corner radius */
|
||||
.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -khtml-border-top-left-radius: 4px; border-top-left-radius: 4px; }
|
||||
.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -khtml-border-top-right-radius: 4px; border-top-right-radius: 4px; }
|
||||
.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -khtml-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
|
||||
.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; -khtml-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
|
||||
|
||||
/* Overlays */
|
||||
.ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); }
|
||||
.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; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/*
|
||||
* jQuery UI Autocomplete 1.8.16
|
||||
*
|
||||
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Autocomplete#theming
|
||||
*/
|
||||
.ui-autocomplete { position: absolute; cursor: default; }
|
||||
|
||||
/* workarounds */
|
||||
* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
|
||||
|
||||
/*
|
||||
* jQuery UI Menu 1.8.16
|
||||
*
|
||||
* Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Menu#theming
|
||||
*/
|
||||
.ui-menu {
|
||||
list-style:none;
|
||||
padding: 2px;
|
||||
margin: 0;
|
||||
display:block;
|
||||
float: left;
|
||||
}
|
||||
.ui-menu .ui-menu {
|
||||
margin-top: -3px;
|
||||
}
|
||||
.ui-menu .ui-menu-item {
|
||||
margin:0;
|
||||
padding: 0;
|
||||
zoom: 1;
|
||||
float: left;
|
||||
clear: left;
|
||||
width: 100%;
|
||||
}
|
||||
.ui-menu .ui-menu-item a {
|
||||
text-decoration:none;
|
||||
display:block;
|
||||
padding:.2em .4em;
|
||||
line-height:1.5;
|
||||
zoom:1;
|
||||
}
|
||||
.ui-menu .ui-menu-item a.ui-state-hover,
|
||||
.ui-menu .ui-menu-item a.ui-state-active {
|
||||
font-weight: normal;
|
||||
margin: -1px;
|
||||
}
|
||||
h7{font-size:16px;font-weight:bold;color:#404040}
|
||||
|
||||
.media-grid{margin-left:-20px;margin-bottom:0;zoom:1;}.media-grid:before,.media-grid:after{display:table;content:"";zoom:1;*display:inline;}
|
||||
.media-grid:after{clear:both;}
|
||||
.media-grid li{display:inline;}
|
||||
.media-grid a{float:left;padding:4px;margin:0 0 20px 20px;border:0px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:0 1px 1px rgba(0, 0, 0, 0.075);}.media-grid a img{display:block;}
|
||||
.media-grid a:hover{border-color:#0069d6;-webkit-box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);-moz-box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);}
|
||||
|
||||
pre.prettyprint {
|
||||
background: #fefbf3;
|
||||
padding: 9px;
|
||||
border: 1px solid rgba(0,0,0,.2);
|
||||
-webkit-box-shadow: 0 1px 2px rgba(0,0,0,.1);
|
||||
-moz-box-shadow: 0 1px 2px rgba(0,0,0,.1);
|
||||
box-shadow: 0 1px 2px rgba(0,0,0,.1);
|
||||
}
|
||||
|
||||
/* Specify class=linenums on a pre to get line numbering */
|
||||
ol.linenums { margin: 0 0 0 40px; } /* IE indents via margin-left */
|
||||
ol.linenums li { color: rgba(0,0,0,.15); line-height: 20px; }
|
||||
/* Alternate shading for lines */
|
||||
li.L1, li.L3, li.L5, li.L7, li.L9 { }
|
||||
|
||||
|
||||
|
||||
|
||||
#dialog-form {
|
||||
border: 1px solid #ccc;
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
.ui-widget {
|
||||
background: white;
|
||||
}
|
||||
|
||||
.ui-widget-overlay {
|
||||
background: black;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
opacity: 0.6;
|
||||
}
|
||||
5637
public/stylesheets/bootstrap.css
vendored
Normal file
5637
public/stylesheets/bootstrap.css
vendored
Normal file
File diff suppressed because it is too large
Load Diff
259
public/stylesheets/jquery.jqplot.css
Normal file
259
public/stylesheets/jquery.jqplot.css
Normal file
@@ -0,0 +1,259 @@
|
||||
/*rules for the plot target div. These will be cascaded down to all plot elements according to css rules*/
|
||||
.jqplot-target {
|
||||
position: relative;
|
||||
color: #666666;
|
||||
font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
|
||||
font-size: 1em;
|
||||
/* height: 300px;
|
||||
width: 400px;*/
|
||||
}
|
||||
|
||||
/*rules applied to all axes*/
|
||||
.jqplot-axis {
|
||||
font-size: 0.75em;
|
||||
}
|
||||
|
||||
.jqplot-xaxis {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.jqplot-x2axis {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.jqplot-yaxis {
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.jqplot-y2axis, .jqplot-y3axis, .jqplot-y4axis, .jqplot-y5axis, .jqplot-y6axis, .jqplot-y7axis, .jqplot-y8axis, .jqplot-y9axis, .jqplot-yMidAxis {
|
||||
margin-left: 10px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
/*rules applied to all axis tick divs*/
|
||||
.jqplot-axis-tick, .jqplot-xaxis-tick, .jqplot-yaxis-tick, .jqplot-x2axis-tick, .jqplot-y2axis-tick, .jqplot-y3axis-tick, .jqplot-y4axis-tick, .jqplot-y5axis-tick, .jqplot-y6axis-tick, .jqplot-y7axis-tick, .jqplot-y8axis-tick, .jqplot-y9axis-tick, .jqplot-yMidAxis-tick {
|
||||
position: absolute;
|
||||
white-space: pre;
|
||||
}
|
||||
|
||||
|
||||
.jqplot-xaxis-tick {
|
||||
top: 0px;
|
||||
/* initial position untill tick is drawn in proper place */
|
||||
left: 15px;
|
||||
/* padding-top: 10px;*/
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.jqplot-x2axis-tick {
|
||||
bottom: 0px;
|
||||
/* initial position untill tick is drawn in proper place */
|
||||
left: 15px;
|
||||
/* padding-bottom: 10px;*/
|
||||
vertical-align: bottom;
|
||||
}
|
||||
|
||||
.jqplot-yaxis-tick {
|
||||
right: 0px;
|
||||
/* initial position untill tick is drawn in proper place */
|
||||
top: 15px;
|
||||
/* padding-right: 10px;*/
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.jqplot-yaxis-tick.jqplot-breakTick {
|
||||
right: -20px;
|
||||
margin-right: 0px;
|
||||
padding:1px 5px 1px 5px;
|
||||
/* background-color: white;*/
|
||||
z-index: 2;
|
||||
font-size: 1.5em;
|
||||
}
|
||||
|
||||
.jqplot-y2axis-tick, .jqplot-y3axis-tick, .jqplot-y4axis-tick, .jqplot-y5axis-tick, .jqplot-y6axis-tick, .jqplot-y7axis-tick, .jqplot-y8axis-tick, .jqplot-y9axis-tick {
|
||||
left: 0px;
|
||||
/* initial position untill tick is drawn in proper place */
|
||||
top: 15px;
|
||||
/* padding-left: 10px;*/
|
||||
/* padding-right: 15px;*/
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.jqplot-yMidAxis-tick {
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.jqplot-xaxis-label {
|
||||
margin-top: 10px;
|
||||
font-size: 11pt;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.jqplot-x2axis-label {
|
||||
margin-bottom: 10px;
|
||||
font-size: 11pt;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.jqplot-yaxis-label {
|
||||
margin-right: 10px;
|
||||
/* text-align: center;*/
|
||||
font-size: 11pt;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.jqplot-yMidAxis-label {
|
||||
font-size: 11pt;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.jqplot-y2axis-label, .jqplot-y3axis-label, .jqplot-y4axis-label, .jqplot-y5axis-label, .jqplot-y6axis-label, .jqplot-y7axis-label, .jqplot-y8axis-label, .jqplot-y9axis-label {
|
||||
/* text-align: center;*/
|
||||
font-size: 11pt;
|
||||
margin-left: 10px;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.jqplot-meterGauge-tick {
|
||||
font-size: 0.75em;
|
||||
color: #999999;
|
||||
}
|
||||
|
||||
.jqplot-meterGauge-label {
|
||||
font-size: 1em;
|
||||
color: #999999;
|
||||
}
|
||||
|
||||
table.jqplot-table-legend {
|
||||
margin-top: 12px;
|
||||
margin-bottom: 12px;
|
||||
margin-left: 12px;
|
||||
margin-right: 12px;
|
||||
}
|
||||
|
||||
table.jqplot-table-legend, table.jqplot-cursor-legend {
|
||||
background-color: rgba(255,255,255,0.6);
|
||||
border: 1px solid #cccccc;
|
||||
position: absolute;
|
||||
font-size: 0.75em;
|
||||
}
|
||||
|
||||
td.jqplot-table-legend {
|
||||
vertical-align:middle;
|
||||
}
|
||||
|
||||
/*
|
||||
These rules could be used instead of assigning
|
||||
element styles and relying on js object properties.
|
||||
*/
|
||||
|
||||
/*
|
||||
td.jqplot-table-legend-swatch {
|
||||
padding-top: 0.5em;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
tr.jqplot-table-legend:first td.jqplot-table-legend-swatch {
|
||||
padding-top: 0px;
|
||||
}
|
||||
*/
|
||||
|
||||
td.jqplot-seriesToggle:hover, td.jqplot-seriesToggle:active {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.jqplot-table-legend .jqplot-series-hidden {
|
||||
text-decoration: line-through;
|
||||
}
|
||||
|
||||
div.jqplot-table-legend-swatch-outline {
|
||||
border: 1px solid #cccccc;
|
||||
padding:1px;
|
||||
}
|
||||
|
||||
div.jqplot-table-legend-swatch {
|
||||
width:0px;
|
||||
height:0px;
|
||||
border-top-width: 5px;
|
||||
border-bottom-width: 5px;
|
||||
border-left-width: 6px;
|
||||
border-right-width: 6px;
|
||||
border-top-style: solid;
|
||||
border-bottom-style: solid;
|
||||
border-left-style: solid;
|
||||
border-right-style: solid;
|
||||
}
|
||||
|
||||
.jqplot-title {
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
padding-bottom: 0.5em;
|
||||
font-size: 1.2em;
|
||||
}
|
||||
|
||||
table.jqplot-cursor-tooltip {
|
||||
border: 1px solid #cccccc;
|
||||
font-size: 0.75em;
|
||||
}
|
||||
|
||||
|
||||
.jqplot-cursor-tooltip {
|
||||
border: 1px solid #cccccc;
|
||||
font-size: 0.75em;
|
||||
white-space: nowrap;
|
||||
background: rgba(208,208,208,0.5);
|
||||
padding: 1px;
|
||||
}
|
||||
|
||||
.jqplot-highlighter-tooltip, .jqplot-canvasOverlay-tooltip {
|
||||
border: 1px solid #cccccc;
|
||||
font-size: 0.75em;
|
||||
white-space: nowrap;
|
||||
background: rgba(208,208,208,0.5);
|
||||
padding: 1px;
|
||||
}
|
||||
|
||||
.jqplot-point-label {
|
||||
font-size: 0.75em;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
td.jqplot-cursor-legend-swatch {
|
||||
vertical-align: middle;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
div.jqplot-cursor-legend-swatch {
|
||||
width: 1.2em;
|
||||
height: 0.7em;
|
||||
}
|
||||
|
||||
.jqplot-error {
|
||||
/* Styles added to the plot target container when there is an error go here.*/
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.jqplot-error-message {
|
||||
/* Styling of the custom error message div goes here.*/
|
||||
position: relative;
|
||||
top: 46%;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
div.jqplot-bubble-label {
|
||||
font-size: 0.8em;
|
||||
/* background: rgba(90%, 90%, 90%, 0.15);*/
|
||||
padding-left: 2px;
|
||||
padding-right: 2px;
|
||||
color: rgb(20%, 20%, 20%);
|
||||
}
|
||||
|
||||
div.jqplot-bubble-label.jqplot-bubble-label-highlight {
|
||||
background: rgba(90%, 90%, 90%, 0.7);
|
||||
}
|
||||
|
||||
div.jqplot-noData-container {
|
||||
text-align: center;
|
||||
background-color: rgba(96%, 96%, 96%, 0.3);
|
||||
}
|
||||
@@ -1,49 +1,40 @@
|
||||
FactoryGirl.define do
|
||||
factory :user do |u|
|
||||
u.name "Dogbert"
|
||||
u.sequence(:email) { |i| "fubert#{i}@example.org" }
|
||||
u.password "jeheim"
|
||||
u.password_confirmation "jeheim"
|
||||
u.sex 'yes please'
|
||||
u.yearofbirth '1970'
|
||||
end
|
||||
end
|
||||
|
||||
FactoryGirl.define do
|
||||
factory :genotype do |g|
|
||||
g.originalfilename "foo.txt"
|
||||
g.uploadtime { Time.now }
|
||||
g.association :user
|
||||
end
|
||||
end
|
||||
|
||||
FactoryGirl.define do
|
||||
factory :snp do |s|
|
||||
s.sequence(:name) { |i| "name #{i}" }
|
||||
s.sequence(:position) { |i| i }
|
||||
s.sequence(:chromosome) { |i| i }
|
||||
s.genotype_frequency("AA" => 1)
|
||||
s.allele_frequency("A" => 0, "T" => 0, "G" => 0, "C" => 0)
|
||||
s.ranking 0
|
||||
end
|
||||
end
|
||||
|
||||
FactoryGirl.define do
|
||||
factory :achievement do |a|
|
||||
a.award "Foooooooo"
|
||||
end
|
||||
end
|
||||
|
||||
FactoryGirl.define do
|
||||
factory :phenotype do |p|
|
||||
p.characteristic "Penis length"
|
||||
end
|
||||
end
|
||||
|
||||
FactoryGirl.define do
|
||||
factory :user_phenotype do |up|
|
||||
up.association :user
|
||||
up.association :phenotype
|
||||
up.variation "pink"
|
||||
|
||||
factory :user do
|
||||
name "Dogbert"
|
||||
sequence(:email) { |i| "fubert#{i}@example.org" }
|
||||
password "jeheim"
|
||||
password_confirmation "jeheim"
|
||||
sex 'yes please'
|
||||
yearofbirth '1970'
|
||||
end
|
||||
|
||||
factory :genotype do
|
||||
originalfilename "foo.txt"
|
||||
uploadtime { Time.now }
|
||||
association :user
|
||||
end
|
||||
|
||||
factory :snp do
|
||||
sequence(:name) { |i| "name #{i}" }
|
||||
sequence(:position) { |i| i }
|
||||
sequence(:chromosome) { |i| i }
|
||||
genotype_frequency("AA" => 1)
|
||||
allele_frequency("A" => 0, "T" => 0, "G" => 0, "C" => 0)
|
||||
ranking 0
|
||||
end
|
||||
|
||||
factory :achievement do
|
||||
award "Foooooooo"
|
||||
end
|
||||
|
||||
factory :phenotype do
|
||||
characteristic "Penis length"
|
||||
end
|
||||
|
||||
factory :user_phenotype do
|
||||
association :user
|
||||
association :phenotype
|
||||
variation "pink"
|
||||
end
|
||||
end
|
||||
|
||||
@@ -4,6 +4,7 @@ require 'rails/test_help'
|
||||
require "authlogic/test_case"
|
||||
SunspotTest.solr_startup_timeout = 30
|
||||
require 'sunspot_test/test_unit'
|
||||
require 'factory_girl'
|
||||
|
||||
#class ActiveSupport::TestCase
|
||||
FactoryGirl.find_definitions
|
||||
|
||||
@@ -10,11 +10,11 @@ class ParsingTest < ActiveSupport::TestCase
|
||||
|
||||
@file_23andMe = "#{Rails.root}/test/data/23andMe_test.csv"
|
||||
@genotype_23andme = Factory :genotype,
|
||||
originalfilename: @file_23andMe.split('/').last, filetype: '23andme'
|
||||
originalfilename: @file_23andMe.split('/').last, filetype: '23andme'
|
||||
|
||||
@file_deCODEme = "#{Rails.root}/test/data/deCODEme_test.csv"
|
||||
@genotype_decodeme = Factory :genotype,
|
||||
originalfilename: @file_deCODEme.split('/').last, filetype: 'decodeme'
|
||||
originalfilename: @file_deCODEme.split('/').last, filetype: 'decodeme'
|
||||
|
||||
@temp_file = "#{Rails.root}/tmp/snp_file.txt"
|
||||
FileUtils.rm(@temp_file) if File.exist?(@temp_file)
|
||||
|
||||
Reference in New Issue
Block a user