galaxy-commits
Threads by month
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
July 2012
- 1 participants
- 99 discussions
commit/galaxy-central: james_taylor: style: do not define .overlay, conflicts with trackster
by Bitbucket 23 Jul '12
by Bitbucket 23 Jul '12
23 Jul '12
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/a3a698fbafcf/
changeset: a3a698fbafcf
user: james_taylor
date: 2012-07-23 16:38:17
summary: style: do not define .overlay, conflicts with trackster
affected #: 2 files
diff -r c81172ba88a7d2ee619a32f6de8bdfdcfe5614e2 -r a3a698fbafcf1e1b8f48a3c954e1729b4ce8a0d1 static/june_2007_style/base.less
--- a/static/june_2007_style/base.less
+++ b/static/june_2007_style/base.less
@@ -307,7 +307,7 @@
}
}
-#overlay, .overlay {
+#overlay {
position: fixed;
top: 0; left: 0; width: 100%; height: 100%;
z-index: 20000;
diff -r c81172ba88a7d2ee619a32f6de8bdfdcfe5614e2 -r a3a698fbafcf1e1b8f48a3c954e1729b4ce8a0d1 static/june_2007_style/blue/base.css
--- a/static/june_2007_style/blue/base.css
+++ b/static/june_2007_style/blue/base.css
@@ -655,7 +655,7 @@
.panel-header-button{color:#333;text-decoration:none;display:inline-block;cursor:pointer;margin:-1px;padding:1px;margin-top:-0.2em;padding-right:0.5em;padding-left:0.5em;}.panel-header-button:hover{color:maroon;-webkit-transition:color 0.25s linear;-moz-transition:color 0.25s linear;-ms-transition:color 0.25s linear;-o-transition:color 0.25s linear;transition:color 0.25s linear;}
.panel-header-button .caret{margin-top:7px;}
.panel-header-button.popup{padding-right:1.75em;background:url(../images/dropdownarrow.png) no-repeat right 7px;}
-#overlay,.overlay{position:fixed;top:0;left:0;width:100%;height:100%;z-index:20000;}
+#overlay{position:fixed;top:0;left:0;width:100%;height:100%;z-index:20000;}
#overlay.is_modal #overlay-background,.overlay-background{background:rgba(0, 0, 0, 0.5);}
.panel-error-message,.panel-warning-message,.panel-done-message,.panel-info-message{height:24px;line-height:24px;color:#303030;padding:0px;padding-left:26px;background-color:#ffcccc;background-image:url(error_small.png);background-repeat:no-repeat;background-position:6px 50%;}
.panel-warning-message{background-image:url(warn_small.png);background-color:#ffffcc;}
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
2 new commits in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/c1a640fa6b3d/
changeset: c1a640fa6b3d
user: Brad Langhorst
date: 2012-07-20 21:15:14
summary: copies the tags from a source history when a workflow is creating new histories to store results.
moves tag copying logic into the model for TagAssociation class
adds copy_tags_from method to history and storedworkflow classes
affected #: 2 files
diff -r 4c22a2fbf25a8ee05d870dcebe9f7b729fa22f07 -r c1a640fa6b3d4f0486d3a20b7f0eebb605c923db lib/galaxy/model/__init__.py
--- a/lib/galaxy/model/__init__.py
+++ b/lib/galaxy/model/__init__.py
@@ -434,7 +434,10 @@
# Copy annotation.
self.copy_item_annotation( db_session, self.user, self, target_user, new_history )
-
+
+ #Copy Tags
+ new_history.copy_tags_from(target_user=target_user, source_history=self)
+
# Copy HDAs.
if activatable:
hdas = self.activatable_datasets
@@ -494,6 +497,12 @@
if nice_size:
rval = galaxy.datatypes.data.nice_size( rval )
return rval
+
+ def copy_tags_from(self,target_user,source_history):
+ for src_shta in source_history.tags:
+ new_shta = src_shta.copy()
+ new_shta.user = target_user
+ self.tags.append(new_shta)
class HistoryUserShareAssociation( object ):
def __init__( self ):
@@ -1717,6 +1726,12 @@
self.published = False
self.latest_workflow_id = None
self.workflows = []
+
+ def copy_tags_from(self,target_user,source_workflow):
+ for src_swta in source_workflow.owner_tags:
+ new_swta = src_swta.copy()
+ new_swta.user = target_user
+ self.tags.append(new_swta)
class Workflow( object ):
def __init__( self ):
@@ -2543,7 +2558,15 @@
self.user_tname = user_tname
self.value = None
self.user_value = None
-
+
+ def copy(self):
+ new_ta = type(self)()
+ new_ta.tag_id = self.tag_id
+ new_ta.user_tname = self.user_tname
+ new_ta.value = self.value
+ new_ta.user_value = self.user_value
+ return new_ta
+
class HistoryTagAssociation ( ItemTagAssociation ):
pass
diff -r 4c22a2fbf25a8ee05d870dcebe9f7b729fa22f07 -r c1a640fa6b3d4f0486d3a20b7f0eebb605c923db lib/galaxy/web/controllers/workflow.py
--- a/lib/galaxy/web/controllers/workflow.py
+++ b/lib/galaxy/web/controllers/workflow.py
@@ -508,7 +508,6 @@
trans.response.set_content_type("image/svg+xml")
return self._workflow_to_svg_canvas( trans, stored ).standalone_xml()
-
@web.expose
@web.require_login( "use Galaxy workflows" )
def clone( self, trans, id ):
@@ -531,15 +530,8 @@
annotation_obj = self.get_item_annotation_obj( trans.sa_session, stored.user, stored )
if annotation_obj:
self.add_item_annotation( trans.sa_session, trans.get_user(), new_stored, annotation_obj.annotation )
- # Clone tags.
- for swta in stored.owner_tags:
- new_swta = model.StoredWorkflowTagAssociation()
- new_swta.tag = swta.tag
- new_swta.user = trans.user
- new_swta.user_tname = swta.user_tname
- new_swta.user_value = swta.user_value
- new_swta.value = swta.value
- new_stored.tags.append( new_swta )
+ new_stored.copy_tags_from(trans.user,stored)
+
if not owner:
new_stored.name += " shared by '%s'" % stored.user.email
new_stored.user = user
@@ -1408,6 +1400,7 @@
mx_ds_name = trans.sa_session.query(trans.app.model.HistoryDatasetAssociation).get( single_input ).name
nh_name = '%s on %s' % (nh_name, mx_ds_name)
new_history = trans.app.model.History( user=trans.user, name=nh_name )
+ new_history.copy_tags_from(trans.user, trans.get_history())
trans.sa_session.add( new_history )
target_history = new_history
else:
https://bitbucket.org/galaxy/galaxy-central/changeset/c81172ba88a7/
changeset: c81172ba88a7
user: dannon
date: 2012-07-23 00:02:43
summary: Merge pull request #54 from bwlang - parent tag copying for multiple workflow run output histories.
affected #: 2 files
diff -r ed01365064b2644531c783f01a12b28384fd64ad -r c81172ba88a7d2ee619a32f6de8bdfdcfe5614e2 lib/galaxy/model/__init__.py
--- a/lib/galaxy/model/__init__.py
+++ b/lib/galaxy/model/__init__.py
@@ -102,7 +102,7 @@
class Job( object ):
"""
- A job represents a request to run a tool given input datasets, tool
+ A job represents a request to run a tool given input datasets, tool
parameters, and output datasets.
"""
states = Bunch( NEW = 'new',
@@ -216,7 +216,7 @@
self.stdout = None
self.stderr = None
self.prepare_input_files_cmd = prepare_files_cmd
-
+
def set_state( self, state ):
self.state = state
@@ -285,7 +285,7 @@
class JobExportHistoryArchive( object ):
def __init__( self, job=None, history=None, dataset=None, compressed=False, \
- history_attrs_filename=None, datasets_attrs_filename=None,
+ history_attrs_filename=None, datasets_attrs_filename=None,
jobs_attrs_filename=None ):
self.job = job
self.history = history
@@ -378,7 +378,7 @@
self.datasets = []
self.galaxy_sessions = []
def _next_hid( self ):
- # TODO: override this with something in the database that ensures
+ # TODO: override this with something in the database that ensures
# better integrity
if len( self.datasets ) == 0:
return 1
@@ -435,6 +435,9 @@
# Copy annotation.
self.copy_item_annotation( db_session, self.user, self, target_user, new_history )
+ #Copy Tags
+ new_history.copy_tags_from(target_user=target_user, source_history=self)
+
# Copy HDAs.
if activatable:
hdas = self.activatable_datasets
@@ -495,6 +498,12 @@
rval = galaxy.datatypes.data.nice_size( rval )
return rval
+ def copy_tags_from(self,target_user,source_history):
+ for src_shta in source_history.tags:
+ new_shta = src_shta.copy()
+ new_shta.user = target_user
+ self.tags.append(new_shta)
+
class HistoryUserShareAssociation( object ):
def __init__( self ):
self.history = None
@@ -514,7 +523,7 @@
api_collection_visible_keys = ( 'id', 'name' )
api_element_visible_keys = ( 'id', 'name', 'description', 'type' )
private_id = None
- types = Bunch(
+ types = Bunch(
PRIVATE = 'private',
SYSTEM = 'system',
USER = 'user',
@@ -657,7 +666,7 @@
self.external_filename = external_filename
self._extra_files_path = extra_files_path
self.file_size = file_size
-
+
def get_file_name( self ):
if not self.external_filename:
assert self.id is not None, "ID must be set before filename used (commit the object)"
@@ -961,17 +970,17 @@
session.flush()
return None
def get_metadata_dataset( self, trans, dataset_ext ):
- """
- Returns an HDA that points to a metadata file which contains a
+ """
+ Returns an HDA that points to a metadata file which contains a
converted data with the requested extension.
"""
for name, value in self.metadata.items():
# HACK: MetadataFile objects do not have a type/ext, so need to use metadata name
# to determine type.
if dataset_ext == 'bai' and name == 'bam_index' and isinstance( value, trans.app.model.MetadataFile ):
- # HACK: MetadataFile objects cannot be used by tools, so return
+ # HACK: MetadataFile objects cannot be used by tools, so return
# a fake HDA that points to metadata file.
- fake_dataset = trans.app.model.Dataset( state=trans.app.model.Dataset.states.OK,
+ fake_dataset = trans.app.model.Dataset( state=trans.app.model.Dataset.states.OK,
external_filename=value.file_name )
fake_hda = trans.app.model.HistoryDatasetAssociation( dataset=fake_dataset )
return fake_hda
@@ -1039,14 +1048,14 @@
return self.datatype.get_display_applications_by_dataset( self, trans )
class HistoryDatasetAssociation( DatasetInstance ):
- def __init__( self,
- hid = None,
- history = None,
- copied_from_history_dataset_association = None,
- copied_from_library_dataset_dataset_association = None,
+ def __init__( self,
+ hid = None,
+ history = None,
+ copied_from_history_dataset_association = None,
+ copied_from_library_dataset_dataset_association = None,
sa_session = None,
**kwd ):
- # FIXME: sa_session is must be passed to DataSetInstance if the create_dataset
+ # FIXME: sa_session is must be passed to DataSetInstance if the create_dataset
# parameter is True so that the new object can be flushed. Is there a better way?
DatasetInstance.__init__( self, sa_session=sa_session, **kwd )
self.hid = hid
@@ -1055,18 +1064,18 @@
self.copied_from_history_dataset_association = copied_from_history_dataset_association
self.copied_from_library_dataset_dataset_association = copied_from_library_dataset_dataset_association
def copy( self, copy_children = False, parent_id = None ):
- hda = HistoryDatasetAssociation( hid=self.hid,
- name=self.name,
- info=self.info,
- blurb=self.blurb,
- peek=self.peek,
- tool_version=self.tool_version,
- extension=self.extension,
- dbkey=self.dbkey,
- dataset = self.dataset,
- visible=self.visible,
- deleted=self.deleted,
- parent_id=parent_id,
+ hda = HistoryDatasetAssociation( hid=self.hid,
+ name=self.name,
+ info=self.info,
+ blurb=self.blurb,
+ peek=self.peek,
+ tool_version=self.tool_version,
+ extension=self.extension,
+ dbkey=self.dbkey,
+ dataset = self.dataset,
+ visible=self.visible,
+ deleted=self.deleted,
+ parent_id=parent_id,
copied_from_history_dataset_association=self )
object_session( self ).add( hda )
object_session( self ).flush()
@@ -1086,7 +1095,7 @@
# The replace_dataset param ( when not None ) refers to a LibraryDataset that is being replaced with a new version.
library_dataset = replace_dataset
else:
- # If replace_dataset is None, the Library level permissions will be taken from the folder and applied to the new
+ # If replace_dataset is None, the Library level permissions will be taken from the folder and applied to the new
# LibraryDataset, and the current user's DefaultUserPermissions will be applied to the associated Dataset.
library_dataset = LibraryDataset( folder=target_folder, name=self.name, info=self.info )
object_session( self ).add( library_dataset )
@@ -1094,17 +1103,17 @@
if not user:
# This should never happen since users must be authenticated to upload to a data library
user = self.history.user
- ldda = LibraryDatasetDatasetAssociation( name=self.name,
+ ldda = LibraryDatasetDatasetAssociation( name=self.name,
info=self.info,
- blurb=self.blurb,
- peek=self.peek,
- tool_version=self.tool_version,
- extension=self.extension,
- dbkey=self.dbkey,
- dataset=self.dataset,
+ blurb=self.blurb,
+ peek=self.peek,
+ tool_version=self.tool_version,
+ extension=self.extension,
+ dbkey=self.dbkey,
+ dataset=self.dataset,
library_dataset=library_dataset,
- visible=self.visible,
- deleted=self.deleted,
+ visible=self.visible,
+ deleted=self.deleted,
parent_id=parent_id,
copied_from_history_dataset_association=self,
user=user )
@@ -1202,7 +1211,7 @@
self.history_dataset_association = hda
self.user = user
self.site = site
-
+
class HistoryDatasetAssociationSubset( object ):
def __init__(self, hda, subset, location):
self.hda = hda
@@ -1252,7 +1261,7 @@
# inherited is not applicable at the library level. The get_contents
# param is passed by callers that are inheriting a template - these
# are usually new library datsets for which we want to include template
- # fields on the upload form, but not necessarily the contents of the
+ # fields on the upload form, but not necessarily the contents of the
# inherited template saved for the parent.
info_association, inherited = self.get_info_association()
if info_association:
@@ -1271,7 +1280,7 @@
roles.append( lp.role )
return roles
def get_display_name( self ):
- # Library name can be either a string or a unicode object. If string,
+ # Library name can be either a string or a unicode object. If string,
# convert to unicode object assuming 'utf-8' format.
name = self.name
if isinstance( name, str ):
@@ -1329,7 +1338,7 @@
# not inherited ( we do not want to display the inherited contents ).
# (gvk: 8/30/10) Based on conversations with Dan, we agreed to ALWAYS inherit
# contents. We'll use this behavior until we hear from the community that
- # contents should not be inherited. If we don't hear anything for a while,
+ # contents should not be inherited. If we don't hear anything for a while,
# eliminate the old commented out behavior.
#if not inherited and get_contents:
if get_contents:
@@ -1344,7 +1353,7 @@
# This needs to be a list
return [ ld for ld in self.datasets if ld.library_dataset_dataset_association and not ld.library_dataset_dataset_association.dataset.deleted ]
def get_display_name( self ):
- # Library folder name can be either a string or a unicode object. If string,
+ # Library folder name can be either a string or a unicode object. If string,
# convert to unicode object assuming 'utf-8' format.
name = self.name
if isinstance( name, str ):
@@ -1451,7 +1460,7 @@
user=None,
sa_session=None,
**kwd ):
- # FIXME: sa_session is must be passed to DataSetInstance if the create_dataset
+ # FIXME: sa_session is must be passed to DataSetInstance if the create_dataset
# parameter in kwd is True so that the new object can be flushed. Is there a better way?
DatasetInstance.__init__( self, sa_session=sa_session, **kwd )
if copied_from_history_dataset_association:
@@ -1461,17 +1470,17 @@
self.library_dataset = library_dataset
self.user = user
def to_history_dataset_association( self, target_history, parent_id = None, add_to_history = False ):
- hda = HistoryDatasetAssociation( name=self.name,
+ hda = HistoryDatasetAssociation( name=self.name,
info=self.info,
- blurb=self.blurb,
- peek=self.peek,
- tool_version=self.tool_version,
- extension=self.extension,
- dbkey=self.dbkey,
- dataset=self.dataset,
- visible=self.visible,
- deleted=self.deleted,
- parent_id=parent_id,
+ blurb=self.blurb,
+ peek=self.peek,
+ tool_version=self.tool_version,
+ extension=self.extension,
+ dbkey=self.dbkey,
+ dataset=self.dataset,
+ visible=self.visible,
+ deleted=self.deleted,
+ parent_id=parent_id,
copied_from_library_dataset_dataset_association=self,
history=target_history )
object_session( self ).add( hda )
@@ -1486,17 +1495,17 @@
object_session( self ).flush()
return hda
def copy( self, copy_children = False, parent_id = None, target_folder = None ):
- ldda = LibraryDatasetDatasetAssociation( name=self.name,
- info=self.info,
- blurb=self.blurb,
- peek=self.peek,
- tool_version=self.tool_version,
- extension=self.extension,
- dbkey=self.dbkey,
- dataset=self.dataset,
- visible=self.visible,
- deleted=self.deleted,
- parent_id=parent_id,
+ ldda = LibraryDatasetDatasetAssociation( name=self.name,
+ info=self.info,
+ blurb=self.blurb,
+ peek=self.peek,
+ tool_version=self.tool_version,
+ extension=self.extension,
+ dbkey=self.dbkey,
+ dataset=self.dataset,
+ visible=self.visible,
+ deleted=self.deleted,
+ parent_id=parent_id,
copied_from_library_dataset_dataset_association=self,
folder=target_folder )
object_session( self ).add( ldda )
@@ -1534,7 +1543,7 @@
# See if we have any associated templatesThe get_contents
# param is passed by callers that are inheriting a template - these
# are usually new library datsets for which we want to include template
- # fields on the upload form, but not necessarily the contents of the
+ # fields on the upload form, but not necessarily the contents of the
# inherited template saved for the parent.
info_association, inherited = self.get_info_association()
if info_association:
@@ -1546,7 +1555,7 @@
# not inherited ( we do not want to display the inherited contents ).
# (gvk: 8/30/10) Based on conversations with Dan, we agreed to ALWAYS inherit
# contents. We'll use this behavior until we hear from the community that
- # contents should not be inherited. If we don't hear anything for a while,
+ # contents should not be inherited. If we don't hear anything for a while,
# eliminate the old commented out behavior.
#if not inherited and get_contents:
if get_contents:
@@ -1663,15 +1672,15 @@
self.message = message
class GalaxySession( object ):
- def __init__( self,
- id=None,
- user=None,
- remote_host=None,
- remote_addr=None,
- referer=None,
- current_history=None,
- session_key=None,
- is_valid=False,
+ def __init__( self,
+ id=None,
+ user=None,
+ remote_host=None,
+ remote_addr=None,
+ referer=None,
+ current_history=None,
+ session_key=None,
+ is_valid=False,
prev_session_id=None ):
self.id = id
self.user = user
@@ -1718,6 +1727,12 @@
self.latest_workflow_id = None
self.workflows = []
+ def copy_tags_from(self,target_user,source_workflow):
+ for src_swta in source_workflow.owner_tags:
+ new_swta = src_swta.copy()
+ new_swta.user = target_user
+ self.tags.append(new_swta)
+
class Workflow( object ):
def __init__( self ):
self.user = None
@@ -1797,7 +1812,7 @@
raise
# Return filename inside hashed directory
return os.path.abspath( os.path.join( path, "metadata_%d.dat" % self.id ) )
-
+
class FormDefinition( object, APIItem ):
# The following form_builder classes are supported by the FormDefinition class.
@@ -1813,7 +1828,7 @@
def __init__( self, name=None, desc=None, fields=[], form_definition_current=None, form_type=None, layout=None ):
self.name = name
self.desc = desc
- self.fields = fields
+ self.fields = fields
self.form_definition_current = form_definition_current
self.type = form_type
self.layout = layout
@@ -2012,7 +2027,7 @@
samples.append( sample )
return samples
def send_email_notification( self, trans, common_state, final_state=False ):
- # Check if an email notification is configured to be sent when the samples
+ # Check if an email notification is configured to be sent when the samples
# are in this state
if self.notification and common_state.id not in self.notification[ 'sample_states' ]:
return
@@ -2036,13 +2051,13 @@
All samples in state: %(sample_state)s
"""
- values = dict( user=self.user.email,
- request_name=self.name,
- request_type=self.type.name,
- request_state=self.state,
- num_samples=str( len( self.samples ) ),
- sample_state=common_state.name,
- create_time=self.create_time,
+ values = dict( user=self.user.email,
+ request_name=self.name,
+ request_type=self.type.name,
+ request_state=self.state,
+ num_samples=str( len( self.samples ) ),
+ sample_state=common_state.name,
+ create_time=self.create_time,
submit_time=self.create_time )
body = body % values
# check if this is the final state of the samples
@@ -2207,7 +2222,7 @@
class Sample( object, APIItem ):
# The following form_builder classes are supported by the Sample class.
supported_field_types = [ CheckboxField, SelectField, TextField, WorkflowField, WorkflowMappingField, HistoryField ]
- bulk_operations = Bunch( CHANGE_STATE = 'Change state',
+ bulk_operations = Bunch( CHANGE_STATE = 'Change state',
SELECT_LIBRARY = 'Select data library and folder' )
api_collection_visible_keys = ( 'id', 'name' )
def __init__(self, name=None, desc=None, request=None, form_values=None, bar_code=None, library=None, folder=None, workflow=None, history=None):
@@ -2290,8 +2305,8 @@
cmd = 'ssh %s "du -sh \'%s\'"' % ( login_str, filepath )
try:
output = pexpect.run( cmd,
- events={ '.ssword:*': scp_configs['password']+'\r\n',
- pexpect.TIMEOUT:print_ticks},
+ events={ '.ssword:*': scp_configs['password']+'\r\n',
+ pexpect.TIMEOUT:print_ticks},
timeout=10 )
except Exception, e:
return error_msg
@@ -2383,8 +2398,8 @@
self.run = run
class UserAddress( object ):
- def __init__( self, user=None, desc=None, name=None, institution=None,
- address=None, city=None, state=None, postal_code=None,
+ def __init__( self, user=None, desc=None, name=None, institution=None,
+ address=None, city=None, state=None, postal_code=None,
country=None, phone=None ):
self.user = user
self.desc = desc
@@ -2493,8 +2508,8 @@
if not visualization:
visualization = self.visualization
- return VisualizationRevision(
- visualization=visualization,
+ return VisualizationRevision(
+ visualization=visualization,
title=self.title,
dbkey=self.dbkey,
config=self.config
@@ -2544,6 +2559,14 @@
self.value = None
self.user_value = None
+ def copy(self):
+ new_ta = type(self)()
+ new_ta.tag_id = self.tag_id
+ new_ta.user_tname = self.user_tname
+ new_ta.value = self.value
+ new_ta.user_value = self.user_value
+ return new_ta
+
class HistoryTagAssociation ( ItemTagAssociation ):
pass
@@ -2806,7 +2829,7 @@
if tva:
return sa_session.query( app.model.ToolVersion ) \
.filter( app.model.ToolVersion.table.c.id == tva.tool_id ) \
- .first()
+ .first()
return None
def get_versions( self, app ):
sa_session = app.model.context.current
diff -r ed01365064b2644531c783f01a12b28384fd64ad -r c81172ba88a7d2ee619a32f6de8bdfdcfe5614e2 lib/galaxy/web/controllers/workflow.py
--- a/lib/galaxy/web/controllers/workflow.py
+++ b/lib/galaxy/web/controllers/workflow.py
@@ -508,7 +508,6 @@
trans.response.set_content_type("image/svg+xml")
return self._workflow_to_svg_canvas( trans, stored ).standalone_xml()
-
@web.expose
@web.require_login( "use Galaxy workflows" )
def clone( self, trans, id ):
@@ -531,15 +530,7 @@
annotation_obj = self.get_item_annotation_obj( trans.sa_session, stored.user, stored )
if annotation_obj:
self.add_item_annotation( trans.sa_session, trans.get_user(), new_stored, annotation_obj.annotation )
- # Clone tags.
- for swta in stored.owner_tags:
- new_swta = model.StoredWorkflowTagAssociation()
- new_swta.tag = swta.tag
- new_swta.user = trans.user
- new_swta.user_tname = swta.user_tname
- new_swta.user_value = swta.user_value
- new_swta.value = swta.value
- new_stored.tags.append( new_swta )
+ new_stored.copy_tags_from(trans.user,stored)
if not owner:
new_stored.name += " shared by '%s'" % stored.user.email
new_stored.user = user
@@ -918,11 +909,11 @@
# TODO: handle the case where the imported workflow requires tools that are not available in
# the local Galaxy instance.
pass
-
+
# Provide user feedback.
workflow_list_str = " <br>Return to <a href='%s'>workflow list." % url_for( action='list' )
if response.status != 200:
- return trans.show_error_message( "There was a problem importing the workflow. Error: %s %s" % (response_data, workflow_list_str) )
+ return trans.show_error_message( "There was a problem importing the workflow. Error: %s %s" % (response_data, workflow_list_str) )
if workflow.has_errors:
return trans.show_warn_message( "Imported, but some steps in this workflow have validation errors. %s" % workflow_list_str )
if workflow.has_cycles:
@@ -1408,6 +1399,7 @@
mx_ds_name = trans.sa_session.query(trans.app.model.HistoryDatasetAssociation).get( single_input ).name
nh_name = '%s on %s' % (nh_name, mx_ds_name)
new_history = trans.app.model.History( user=trans.user, name=nh_name )
+ new_history.copy_tags_from(trans.user, trans.get_history())
trans.sa_session.add( new_history )
target_history = new_history
else:
@@ -1834,9 +1826,9 @@
trans.sa_session.flush()
return stored, missing_tool_tups
-
- def _workflow_to_svg_canvas( self, trans, stored ):
-
+
+ def _workflow_to_svg_canvas( self, trans, stored ):
+
workflow = stored.latest_workflow
data = []
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/ed01365064b2/
changeset: ed01365064b2
user: dannon
date: 2012-07-21 20:46:27
summary: Task runner cleanup.
affected #: 1 file
diff -r 4c22a2fbf25a8ee05d870dcebe9f7b729fa22f07 -r ed01365064b2644531c783f01a12b28384fd64ad lib/galaxy/jobs/runners/tasks.py
--- a/lib/galaxy/jobs/runners/tasks.py
+++ b/lib/galaxy/jobs/runners/tasks.py
@@ -59,26 +59,22 @@
# If we were able to get a command line, run the job. ( must be passed to tasks )
if command_line:
try:
- # DBTODO read tool info and use the right kind of parallelism.
- # For now, the only splitter is the 'basic' one
job_wrapper.change_state( model.Job.states.RUNNING )
self.sa_session.flush()
# Split with the tool-defined method.
try:
splitter = getattr(__import__('galaxy.jobs.splitters', globals(), locals(), [job_wrapper.tool.parallelism.method]), job_wrapper.tool.parallelism.method)
- except:
+ except:
job_wrapper.change_state( model.Job.states.ERROR )
job_wrapper.fail("Job Splitting Failed, no match for '%s'" % job_wrapper.tool.parallelism)
return
tasks = splitter.do_split(job_wrapper)
-
# Not an option for now. Task objects don't *do* anything useful yet, but we'll want them tracked outside this thread to do anything.
# if track_tasks_in_database:
task_wrappers = []
for task in tasks:
self.sa_session.add(task)
self.sa_session.flush()
-
# Must flush prior to the creation and queueing of task wrappers.
for task in tasks:
tw = TaskWrapper(task, job_wrapper.queue)
@@ -108,14 +104,9 @@
sleep( sleep_time )
if sleep_time < 8:
sleep_time *= 2
-
- import time
-
job_wrapper.reclaim_ownership() # if running as the actual user, change ownership before merging.
-
log.debug('execution finished - beginning merge: %s' % command_line)
stdout, stderr = splitter.do_merge(job_wrapper, task_wrappers)
-
except Exception:
job_wrapper.fail( "failure running job", exception=True )
log.exception("failure running job %d" % job_wrapper.job_id)
@@ -129,15 +120,15 @@
set_extension = True,
kwds = { 'overwrite' : False } ) #we don't want to overwrite metadata that was copied over in init_meta(), as per established behavior
log.debug( 'executing external set_meta script for job %d: %s' % ( job_wrapper.job_id, external_metadata_script ) )
- external_metadata_proc = subprocess.Popen( args = external_metadata_script,
- shell = True,
+ external_metadata_proc = subprocess.Popen( args = external_metadata_script,
+ shell = True,
env = os.environ,
preexec_fn = os.setpgrp )
job_wrapper.external_output_metadata.set_job_runner_external_pid( external_metadata_proc.pid, self.sa_session )
external_metadata_proc.wait()
log.debug( 'execution of external set_meta finished for job %d' % job_wrapper.job_id )
-
- # Finish the job
+
+ # Finish the job
try:
job_wrapper.finish( stdout, stderr )
except:
@@ -149,7 +140,7 @@
# Change to queued state before handing to worker thread so the runner won't pick it up again
job_wrapper.change_state( model.Job.states.QUEUED )
self.queue.put( job_wrapper )
-
+
def shutdown( self ):
"""Attempts to gracefully shut down the worker threads"""
log.info( "sending stop signal to worker threads" )
@@ -175,14 +166,13 @@
# runner because the task runner also starts all the tasks.
# First, get the list of tasks from job.tasks, which uses SQL
# alchemy to retrieve a job's list of tasks.
- tasks = job.tasks
if ( len( job.tasks ) > 0 ):
for task in job.tasks:
self.stop_pid( task.task_runner_external_id, job.id )
# There were no subtasks, so just kill the job. We'll touch
# this if the tasks runner is used but the tool does not use
- # parallelism.
+ # parallelism.
else:
#if our local job has JobExternalOutputMetadata associated, then our primary job has to have already finished
if job.external_output_metadata:
@@ -197,7 +187,7 @@
def stop_pid( self, pid, job_id ):
"""
This method stops the given process id whether it's a task or job.
- It is meant to be a private helper method, but it is mostly reusable.
+ It is meant to be a private helper method, but it is mostly reusable.
The first argument is the process id to stop, and the second id is the
job's id (which is used for logging messages only right now).
"""
@@ -210,12 +200,12 @@
try:
os.killpg( pid, sig )
except OSError, e:
- # This warning could be bogus; many tasks are stopped with
- # SIGTERM (signal 15), but ymmv depending on the platform.
+ # This warning could be bogus; many tasks are stopped with
+ # SIGTERM (signal 15), but ymmv depending on the platform.
log.warning( "stop_job(): %s: Got errno %s when attempting to signal %d to PID %d: %s" % ( job_id, errno.errorcode[e.errno], sig, pid, e.strerror ) )
return
- # TODO: If we're stopping lots of tasks, then we will want to put this
- # avoid a two-second overhead using some other asynchronous method.
+ # TODO: If we're stopping lots of tasks, then we will want to put this
+ # avoid a two-second overhead using some other asynchronous method.
sleep( 2 )
if not self.check_pid( pid ):
log.debug( "stop_job(): %s: PID %d successfully killed with signal %d" %( job_id, pid, sig ) )
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
2 new commits in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/0c654a26ef0f/
changeset: 0c654a26ef0f
user: james_taylor
date: 2012-07-20 22:43:13
summary: Add bootstrap transition to bootstrap.js, makes animations much more tolerable
affected #: 1 file
diff -r dc5ab5e987e483647148afde42f3f257a557c742 -r 0c654a26ef0f0c0da616aefef2e3c3d25f833b55 static/scripts/bootstrap.js
--- a/static/scripts/bootstrap.js
+++ b/static/scripts/bootstrap.js
@@ -1,3 +1,65 @@
+/* ===================================================
+ * bootstrap-transition.js v2.0.4
+ * http://twitter.github.com/bootstrap/javascript.html#transitions
+ * ===================================================
+ * 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 ($) {
+
+ $(function () {
+
+ "use strict"; // jshint ;_;
+
+
+ /* CSS TRANSITION SUPPORT (http://www.modernizr.com/)
+ * ======================================================= */
+
+ $.support.transition = (function () {
+
+ var transitionEnd = (function () {
+
+ var el = document.createElement('bootstrap')
+ , transEndEventNames = {
+ 'WebkitTransition' : 'webkitTransitionEnd'
+ , 'MozTransition' : 'transitionend'
+ , 'OTransition' : 'oTransitionEnd'
+ , 'msTransition' : 'MSTransitionEnd'
+ , 'transition' : 'transitionend'
+ }
+ , name
+
+ for (name in transEndEventNames){
+ if (el.style[name] !== undefined) {
+ return transEndEventNames[name]
+ }
+ }
+
+ }())
+
+ return transitionEnd && {
+ end: transitionEnd
+ }
+
+ })()
+
+ })
+
+}(window.jQuery);
+
/* ========================================================
* bootstrap-tab.js v2.0.4
* http://twitter.github.com/bootstrap/javascript.html#tabs
https://bitbucket.org/galaxy/galaxy-central/changeset/4c22a2fbf25a/
changeset: 4c22a2fbf25a
user: james_taylor
date: 2012-07-20 22:47:58
summary: style: Increase z-index of top nav tabs so the are over the brand when the window is narrow
affected #: 2 files
diff -r 0c654a26ef0f0c0da616aefef2e3c3d25f833b55 -r 4c22a2fbf25a8ee05d870dcebe9f7b729fa22f07 static/june_2007_style/base.less
--- a/static/june_2007_style/base.less
+++ b/static/june_2007_style/base.less
@@ -417,6 +417,11 @@
}
*/
+ .nav {
+ z-index: 10000;
+ background-color: @masthead_bg;
+ }
+
.nav > li > a {
// Override height of navbar links
padding: 6px 10px 8px;
diff -r 0c654a26ef0f0c0da616aefef2e3c3d25f833b55 -r 4c22a2fbf25a8ee05d870dcebe9f7b729fa22f07 static/june_2007_style/blue/base.css
--- a/static/june_2007_style/blue/base.css
+++ b/static/june_2007_style/blue/base.css
@@ -667,6 +667,7 @@
#masthead .navbar-link{color:#999999;}#masthead .navbar-link:hover{color:#ffffff;}
#masthead .btn,#masthead .btn-group{margin-top:1px;}
#masthead .btn-group .btn{margin:0;}
+#masthead .nav{z-index:10000;background-color:#2c3143;}
#masthead .nav>li>a{padding:6px 10px 8px;cursor:pointer;}#masthead .nav>li>a:hover{color:gold;}
#masthead .dropdown-menu a,#masthead .dropdown-menu a:hover{text-decoration:none;}
#masthead .title{position:absolute;left:0;top:0;font-family:verdana;font-weight:bold;font-size:20px;line-height:1;color:white;padding:5px 20px 12px;margin-left:-15px;z-index:2000;}#masthead .title img{display:inline;width:26px;vertical-align:top;}
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
commit/galaxy-central: james_taylor: tooltips: Replace all uses of tipsy with bootstrap style (with the same modifications for placement we previously used for tipsy). This will allow us to start using popovers
by Bitbucket 20 Jul '12
by Bitbucket 20 Jul '12
20 Jul '12
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/dc5ab5e987e4/
changeset: dc5ab5e987e4
user: james_taylor
date: 2012-07-20 22:28:23
summary: tooltips: Replace all uses of tipsy with bootstrap style (with the same modifications for placement we previously used for tipsy). This will allow us to start using popovers
affected #: 21 files
diff -r 96bc3ef032671042f389696d510538f0f5f9b643 -r dc5ab5e987e483647148afde42f3f257a557c742 static/june_2007_style/blue/base.css
--- a/static/june_2007_style/blue/base.css
+++ b/static/june_2007_style/blue/base.css
@@ -453,6 +453,17 @@
.nav-tabs{border-bottom:1px solid #999999;}
.nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #999999;}
.nav-tabs>.active>a,.nav-tabs>.active>a:hover{border:1px solid #999999;border-bottom-color:transparent;}
+.bs-tooltip{position:absolute;z-index:1020;display:block;visibility:visible;padding:5px;font-size:11px;opacity:0;filter:alpha(opacity=0);}.bs-tooltip.in{opacity:0.8;filter:alpha(opacity=80);}
+.bs-tooltip.top{margin-top:-2px;}
+.bs-tooltip.right{margin-left:2px;}
+.bs-tooltip.bottom{margin-top:2px;}
+.bs-tooltip.left{margin-left:-2px;}
+.bs-tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #000000;}
+.bs-tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid #000000;}
+.bs-tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid #000000;}
+.bs-tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-right:5px solid #000000;}
+.bs-tooltip .tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;text-decoration:none;background-color:#000000;}
+.bs-tooltip .tooltip-arrow{position:absolute;width:0;height:0;}
@font-face{font-family:'FontAwesome';src:url('../images/fonts/fontawesome-webfont.eot');src:url('../images/fonts/fontawesome-webfont.eot?#iefix') format('embedded-opentype'),url('../images/fonts/fontawesome-webfont.woff') format('woff'),url('../images/fonts/fontawesome-webfont.ttf') format('truetype'),url('../images/fonts/fontawesome-webfont.svgz#FontAwesomeRegular') format('svg'),url('../images/fonts/fontawesome-webfont.svg#FontAwesomeRegular') format('svg');font-weight:normal;font-style:normal;}.ficon,[class^="ficon"]:before,[class*=" ficon"]:before{font-family:FontAwesome;font-weight:normal;font-style:normal;display:inline-block;}
.ficon.large:before{font-size:1.3333333333333333em;}
.btn [class^="ficon"],.btn [class*=" ficon"]{line-height:.9em;}
diff -r 96bc3ef032671042f389696d510538f0f5f9b643 -r dc5ab5e987e483647148afde42f3f257a557c742 static/june_2007_style/galaxy_bootstrap.less
--- a/static/june_2007_style/galaxy_bootstrap.less
+++ b/static/june_2007_style/galaxy_bootstrap.less
@@ -57,7 +57,7 @@
// Components: Popovers
@import "bootstrap/modals.less";
-// @import "bootstrap/tooltip.less";
+//@import "bootstrap/tooltip.less";
@import "bootstrap/popovers.less";
// Components: Misc
@@ -113,3 +113,38 @@
border: 1px solid @btnBorder;
border-bottom-color: transparent;
}
+
+// Tooltips -- we use the class tooltip to indicate that an element has a tooltip, so we need to define these differently
+.bs-tooltip {
+ position: absolute;
+ z-index: @zindexTooltip;
+ display: block;
+ visibility: visible;
+ padding: 5px;
+ font-size: 11px;
+ .opacity(0);
+ &.in { .opacity(80); }
+ &.top { margin-top: -2px; }
+ &.right { margin-left: 2px; }
+ &.bottom { margin-top: 2px; }
+ &.left { margin-left: -2px; }
+ &.top .tooltip-arrow { #popoverArrow > .top(); }
+ &.left .tooltip-arrow { #popoverArrow > .left(); }
+ &.bottom .tooltip-arrow { #popoverArrow > .bottom(); }
+ &.right .tooltip-arrow { #popoverArrow > .right(); }
+
+ .tooltip-inner {
+ max-width: 200px;
+ padding: 3px 8px;
+ color: @white;
+ text-align: center;
+ text-decoration: none;
+ background-color: @black;
+ //.border-radius(4px);
+ }
+ .tooltip-arrow {
+ position: absolute;
+ width: 0;
+ height: 0;
+ }
+}
\ No newline at end of file
diff -r 96bc3ef032671042f389696d510538f0f5f9b643 -r dc5ab5e987e483647148afde42f3f257a557c742 static/scripts/bootstrap.js
--- a/static/scripts/bootstrap.js
+++ b/static/scripts/bootstrap.js
@@ -132,4 +132,326 @@
})
})
+}(window.jQuery);
+
+/* ===========================================================
+ * 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
+ }
+
+ // BEGIN GALAXY MODIFICATION
+
+ // Shift if off screen
+ var $w = $(window),
+ p = inside ? placement.split(' ')[1] : placement;
+
+ // If off the top of the screen, flip
+ if ( tp.top < $w.scrollTop() && placement == 'top' ) {
+ tp.top = pos.top + pos.height;
+ placement = inside ? 'inside bottom' : 'bottom';
+ }
+
+ // If off bottom, just shift for now
+ tp.top = Math.min( tp.top, $w.scrollTop() + $w.height() - $tip.outerHeight() );
+
+
+ // Shift left or right
+ var leftShift = 0;
+ if ( tp.left < $w.scrollLeft() ) {
+ leftShift = tp.left - $w.scrollLeft();
+ }
+ var t = $w.scrollLeft() + $w.width() - $tip.outerWidth();
+ if ( tp.left > t ) {
+ leftShift = tp.left - t;
+ }
+
+ tp.left -= leftShift;
+
+ // Shift background to center over element (not implemented for east/west)
+ switch (inside ? placement.split(' ')[1] : placement) {
+ case 'bottom':
+ $tip.find('.tooltip-arrow').css( 'left', ( $tip.outerWidth() / 2 ) + leftShift + "px" );
+ break;
+ case 'top':
+ $tip.find('.tooltip-arrow').css( 'left', ( $tip.outerWidth() / 2 ) + leftShift + "px" );
+ break;
+ case 'left':
+ break;
+ case 'right':
+ break;
+ }
+
+ // END GALAXY MODIFICATION
+
+
+
+ $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: false
+ , placement: 'top'
+ , selector: false
+ , template: '<div class="bs-tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'
+ , trigger: 'hover'
+ , title: ''
+ , delay: 0
+ }
+
}(window.jQuery);
\ No newline at end of file
diff -r 96bc3ef032671042f389696d510538f0f5f9b643 -r dc5ab5e987e483647148afde42f3f257a557c742 static/scripts/galaxy.base.js
--- a/static/scripts/galaxy.base.js
+++ b/static/scripts/galaxy.base.js
@@ -417,7 +417,7 @@
// Add help text if there some.
if (help_text) {
- container.attr("title", help_text).tipsy( { gravity: 's' } );
+ container.attr("title", help_text).tooltip();
}
return container;
@@ -704,10 +704,13 @@
return confirm( $(this).attr("confirm") );
});
// Tooltips
- if ( $.fn.tipsy ) {
- // FIXME: tipsy gravity cannot be updated, so need classes that specify N/S gravity and
- // initialize each separately.
- $(".tooltip").tipsy( { gravity: 's' } );
+ // if ( $.fn.tipsy ) {
+ // // FIXME: tipsy gravity cannot be updated, so need classes that specify N/S gravity and
+ // // initialize each separately.
+ // $(".tooltip").tipsy( { gravity: 's' } );
+ // }
+ if ( $.fn.tooltip ) {
+ $(".tooltip").tooltip( { placement: 'top' } );
}
// Make popup menus.
make_popup_menus();
diff -r 96bc3ef032671042f389696d510538f0f5f9b643 -r dc5ab5e987e483647148afde42f3f257a557c742 static/scripts/galaxy.workflow_editor.canvas.js
--- a/static/scripts/galaxy.workflow_editor.canvas.js
+++ b/static/scripts/galaxy.workflow_editor.canvas.js
@@ -346,7 +346,7 @@
workflow.has_changes = true;
canvas_manager.draw_overview();
})))
- .tipsy({delayIn:500, fallback: "Flag this as a workflow output. All non-flagged outputs will be hidden." });
+ .tooltip({delay:500, title: "Flag this as a workflow output. All non-flagged outputs will be hidden." });
callout.css({
top: '50%',
margin:'-8px 0px 0px 0px',
diff -r 96bc3ef032671042f389696d510538f0f5f9b643 -r dc5ab5e987e483647148afde42f3f257a557c742 static/scripts/mvc/ui.js
--- a/static/scripts/mvc/ui.js
+++ b/static/scripts/mvc/ui.js
@@ -43,7 +43,7 @@
title: "",
icon_class: "",
on_click: null,
- tipsy_config: {}
+ tooltip_config: {}
}
});
@@ -73,8 +73,8 @@
.appendTo(self.$el)
.click(button.attributes.on_click);
- if (button.attributes.tipsy_config) {
- elt.tipsy(button.attributes.tipsy_config);
+ if (button.attributes.tooltip_config) {
+ elt.tooltip(button.attributes.tooltip_config);
}
});
return this;
diff -r 96bc3ef032671042f389696d510538f0f5f9b643 -r dc5ab5e987e483647148afde42f3f257a557c742 static/scripts/packed/bootstrap.js
--- a/static/scripts/packed/bootstrap.js
+++ b/static/scripts/packed/bootstrap.js
@@ -1,1 +1,1 @@
-!function(b){var a=function(c){this.element=b(c)};a.prototype={constructor:a,show:function(){var i=this.element,f=i.closest("ul:not(.dropdown-menu)"),d=i.attr("data-target"),g,c,h;if(!d){d=i.attr("href");d=d&&d.replace(/.*(?=#[^\s]*$)/,"")}if(i.parent("li").hasClass("active")){return}g=f.find(".active a").last()[0];h=b.Event("show",{relatedTarget:g});i.trigger(h);if(h.isDefaultPrevented()){return}c=b(d);this.activate(i.parent("li"),f);this.activate(c,c.parent(),function(){i.trigger({type:"shown",relatedTarget:g})})},activate:function(e,d,h){var c=d.find("> .active"),g=h&&b.support.transition&&c.hasClass("fade");function f(){c.removeClass("active").find("> .dropdown-menu > .active").removeClass("active");e.addClass("active");if(g){e[0].offsetWidth;e.addClass("in")}else{e.removeClass("fade")}if(e.parent(".dropdown-menu")){e.closest("li.dropdown").addClass("active")}h&&h()}g?c.one(b.support.transition.end,f):f();c.removeClass("in")}};b.fn.tab=function(c){return this.each(function(){var e=b(this),d=e.data("tab");if(!d){e.data("tab",(d=new a(this)))}if(typeof c=="string"){d[c]()}})};b.fn.tab.Constructor=a;b(function(){b("body").on("click.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(c){c.preventDefault();b(this).tab("show")})})}(window.jQuery);
\ No newline at end of file
+!function(b){var a=function(c){this.element=b(c)};a.prototype={constructor:a,show:function(){var i=this.element,f=i.closest("ul:not(.dropdown-menu)"),d=i.attr("data-target"),g,c,h;if(!d){d=i.attr("href");d=d&&d.replace(/.*(?=#[^\s]*$)/,"")}if(i.parent("li").hasClass("active")){return}g=f.find(".active a").last()[0];h=b.Event("show",{relatedTarget:g});i.trigger(h);if(h.isDefaultPrevented()){return}c=b(d);this.activate(i.parent("li"),f);this.activate(c,c.parent(),function(){i.trigger({type:"shown",relatedTarget:g})})},activate:function(e,d,h){var c=d.find("> .active"),g=h&&b.support.transition&&c.hasClass("fade");function f(){c.removeClass("active").find("> .dropdown-menu > .active").removeClass("active");e.addClass("active");if(g){e[0].offsetWidth;e.addClass("in")}else{e.removeClass("fade")}if(e.parent(".dropdown-menu")){e.closest("li.dropdown").addClass("active")}h&&h()}g?c.one(b.support.transition.end,f):f();c.removeClass("in")}};b.fn.tab=function(c){return this.each(function(){var e=b(this),d=e.data("tab");if(!d){e.data("tab",(d=new a(this)))}if(typeof c=="string"){d[c]()}})};b.fn.tab.Constructor=a;b(function(){b("body").on("click.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(c){c.preventDefault();b(this).tab("show")})})}(window.jQuery);!function(b){var a=function(d,c){this.init("tooltip",d,c)};a.prototype={constructor:a,init:function(f,e,d){var g,c;this.type=f;this.$element=b(e);this.options=this.getOptions(d);this.enabled=true;if(this.options.trigger!="manual"){g=this.options.trigger=="hover"?"mouseenter":"focus";c=this.options.trigger=="hover"?"mouseleave":"blur";this.$element.on(g,this.options.selector,b.proxy(this.enter,this));this.$element.on(c,this.options.selector,b.proxy(this.leave,this))}this.options.selector?(this._options=b.extend({},this.options,{trigger:"manual",selector:""})):this.fixTitle()},getOptions:function(c){c=b.extend({},b.fn[this.type].defaults,c,this.$element.data());if(c.delay&&typeof c.delay=="number"){c.delay={show:c.delay,hide:c.delay}}return c},enter:function(d){var c=b(d.currentTarget)[this.type](this._options).data(this.type);if(!c.options.delay||!c.options.delay.show){return c.show()}clearTimeout(this.timeout);c.hoverState="in";this.timeout=setTimeout(function(){if(c.hoverState=="in"){c.show()}},c.options.delay.show)},leave:function(d){var c=b(d.currentTarget)[this.type](this._options).data(this.type);if(this.timeout){clearTimeout(this.timeout)}if(!c.options.delay||!c.options.delay.hide){return c.hide()}c.hoverState="out";this.timeout=setTimeout(function(){if(c.hoverState=="out"){c.hide()}},c.options.delay.hide)},show:function(){var i,f,k,c,j,h,l;if(this.hasContent()&&this.enabled){i=this.tip();this.setContent();if(this.options.animation){i.addClass("fade")}h=typeof this.options.placement=="function"?this.options.placement.call(this,i[0],this.$element[0]):this.options.placement;f=/in/.test(h);i.remove().css({top:0,left:0,display:"block"}).appendTo(f?this.$element:document.body);k=this.getPosition(f);c=i[0].offsetWidth;j=i[0].offsetHeight;switch(f?h.split(" ")[1]:h){case"bottom":l={top:k.top+k.height,left:k.left+k.width/2-c/2};break;case"top":l={top:k.top-j,left:k.left+k.width/2-c/2};break;case"left":l={top:k.top+k.height/2-j/2,left:k.left-c};break;case"right":l={top:k.top+k.height/2-j/2,left:k.left+k.width};break}var e=b(window),d=f?h.split(" ")[1]:h;if(l.top<e.scrollTop()&&h=="top"){l.top=k.top+k.height;h=f?"inside bottom":"bottom"}l.top=Math.min(l.top,e.scrollTop()+e.height()-i.outerHeight());var g=0;if(l.left<e.scrollLeft()){g=l.left-e.scrollLeft()}var m=e.scrollLeft()+e.width()-i.outerWidth();if(l.left>m){g=l.left-m}l.left-=g;switch(f?h.split(" ")[1]:h){case"bottom":i.find(".tooltip-arrow").css("left",(i.outerWidth()/2)+g+"px");break;case"top":i.find(".tooltip-arrow").css("left",(i.outerWidth()/2)+g+"px");break;case"left":break;case"right":break}i.css(l).addClass(h).addClass("in")}},isHTML:function(c){return typeof c!="string"||(c.charAt(0)==="<"&&c.charAt(c.length-1)===">"&&c.length>=3)||/^(?:[^<]*<[\w\W]+>[^>]*$)/.exec(c)},setContent:function(){var d=this.tip(),c=this.getTitle();d.find(".tooltip-inner")[this.isHTML(c)?"html":"text"](c);d.removeClass("fade in top bottom left right")},hide:function(){var c=this,d=this.tip();d.removeClass("in");function e(){var f=setTimeout(function(){d.off(b.support.transition.end).remove()},500);d.one(b.support.transition.end,function(){clearTimeout(f);d.remove()})}b.support.transition&&this.$tip.hasClass("fade")?e():d.remove()},fixTitle:function(){var c=this.$element;if(c.attr("title")||typeof(c.attr("data-original-title"))!="string"){c.attr("data-original-title",c.attr("title")||"").removeAttr("title")}},hasContent:function(){return this.getTitle()},getPosition:function(c){return b.extend({},(c?{top:0,left:0}:this.$element.offset()),{width:this.$element[0].offsetWidth,height:this.$element[0].offsetHeight})},getTitle:function(){var e,c=this.$element,d=this.options;e=c.attr("data-original-title")||(typeof d.title=="function"?d.title.call(c[0]):d.title);return e},tip:function(){return this.$tip=this.$tip||b(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"]()}};b.fn.tooltip=function(c){return this.each(function(){var f=b(this),e=f.data("tooltip"),d=typeof c=="object"&&c;if(!e){f.data("tooltip",(e=new a(this,d)))}if(typeof c=="string"){e[c]()}})};b.fn.tooltip.Constructor=a;b.fn.tooltip.defaults={animation:false,placement:"top",selector:false,template:'<div class="bs-tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover",title:"",delay:0}}(window.jQuery);
\ No newline at end of file
diff -r 96bc3ef032671042f389696d510538f0f5f9b643 -r dc5ab5e987e483647148afde42f3f257a557c742 static/scripts/packed/galaxy.base.js
--- a/static/scripts/packed/galaxy.base.js
+++ b/static/scripts/packed/galaxy.base.js
@@ -1,1 +1,1 @@
-if(!Array.indexOf){Array.prototype.indexOf=function(c){for(var b=0,a=this.length;b<a;b++){if(this[b]==c){return b}}return -1}}function obj_length(c){if(c.length!==undefined){return c.length}var b=0;for(var a in c){b++}return b}$.fn.makeAbsolute=function(a){return this.each(function(){var b=$(this);var c=b.position();b.css({position:"absolute",marginLeft:0,marginTop:0,top:c.top,left:c.left,right:$(window).width()-(c.left+b.width())});if(a){b.remove().appendTo("body")}})};function make_popupmenu(b,c){var a=(b.data("menu_options"));b.data("menu_options",c);if(a){return}b.bind("click.show_popup",function(d){$(".popmenu-wrapper").remove();setTimeout(function(){var g=$("<ul class='dropdown-menu' id='"+b.attr("id")+"-menu'></ul>");var f=b.data("menu_options");if(obj_length(f)<=0){$("<li>No Options.</li>").appendTo(g)}$.each(f,function(j,i){if(i){g.append($("<li></li>").append($("<a href='#'></a>").html(j).click(i)))}else{g.append($("<li></li>").addClass("head").append($("<a href='#'></a>").html(j)))}});var h=$("<div class='popmenu-wrapper' style='position: absolute;left: 0; top: -1000;'></div>").append(g).appendTo("body");var e=d.pageX-h.width()/2;e=Math.min(e,$(document).scrollLeft()+$(window).width()-$(h).width()-5);e=Math.max(e,$(document).scrollLeft()+5);h.css({top:d.pageY,left:e})},10);setTimeout(function(){var f=function(h){$(h).bind("click.close_popup",function(){$(".popmenu-wrapper").remove();h.unbind("click.close_popup")})};f($(window.document));f($(window.top.document));for(var e=window.top.frames.length;e--;){var g=$(window.top.frames[e].document);f(g)}},50);return false})}function make_popup_menus(){jQuery("div[popupmenu]").each(function(){var a={};var c=$(this);c.find("a").each(function(){var f=$(this),h=f.get(0);var d=h.getAttribute("confirm"),e=h.getAttribute("href"),g=h.getAttribute("target");if(!e){a[f.text()]=null}else{a[f.text()]=function(){if(!d||confirm(d)){var i;if(g=="_parent"){window.parent.location=e}else{if(g=="_top"){window.top.location=e}else{if(g=="demo"){if(i==undefined||i.closed){i=window.open(e,g);i.creator=self}}else{window.location=e}}}}}}});var b=$("#"+c.attr("popupmenu"));b.find("a").bind("click",function(d){d.stopPropagation();return true});make_popupmenu(b,a);b.addClass("popup");c.remove()})}function naturalSort(j,h){var p=/(-?[0-9\.]+)/g,k=j.toString().toLowerCase()||"",g=h.toString().toLowerCase()||"",l=String.fromCharCode(0),n=k.replace(p,l+"$1"+l).split(l),e=g.replace(p,l+"$1"+l).split(l),d=(new Date(k)).getTime(),o=d?(new Date(g)).getTime():null;if(o){if(d<o){return -1}else{if(d>o){return 1}}}var m,f;for(var i=0,c=Math.max(n.length,e.length);i<c;i++){m=parseFloat(n[i])||n[i];f=parseFloat(e[i])||e[i];if(m<f){return -1}else{if(m>f){return 1}}}return 0}function replace_big_select_inputs(a,b){if(!jQuery().autocomplete){return}if(a===undefined){a=20}if(b===undefined){b=3000}$("select").each(function(){var d=$(this);var g=d.find("option").length;if((g<a)||(g>b)){return}if(d.attr("multiple")==="multiple"){return}if(d.hasClass("no-autocomplete")){return}var m=d.attr("value");var c=$("<input type='text' class='text-and-autocomplete-select'></input>");c.attr("size",40);c.attr("name",d.attr("name"));c.attr("id",d.attr("id"));c.click(function(){var n=$(this).val();$(this).val("Loading...");$(this).showAllInCache();$(this).val(n);$(this).select()});var e=[];var i={};d.children("option").each(function(){var o=$(this).text();var n=$(this).attr("value");e.push(o);i[o]=n;i[n]=n;if(n==m){c.attr("value",o)}});if(m===""||m==="?"){c.attr("value","Click to Search or Select")}if(d.attr("name")=="dbkey"){e=e.sort(naturalSort)}var f={selectFirst:false,autoFill:false,mustMatch:false,matchContains:true,max:b,minChars:0,hideForLessThanMinChars:false};c.autocomplete(e,f);d.replaceWith(c);var k=function(){var o=c.attr("value");var n=i[o];if(n!==null&&n!==undefined){c.attr("value",n)}else{if(m!==""){c.attr("value",m)}else{c.attr("value","?")}}};c.parents("form").submit(function(){k()});$(document).bind("convert_to_values",function(){k()});if(d.attr("refresh_on_change")=="true"){var h=d.attr("refresh_on_change_values"),l=d.attr("last_selected_value");if(h!==undefined){h=h.split(",")}var j=function(){var n=i[c.attr("value")];if(l!==n&&n!==null&&n!==undefined){if(h!==undefined&&$.inArray(n,h)===-1&&$.inArray(l,h)===-1){return}c.attr("value",n);$(window).trigger("refresh_on_change");c.parents("form").submit()}};c.bind("result",j);c.keyup(function(n){if(n.keyCode===13){j()}});c.keydown(function(n){if(n.keyCode===13){return false}})}})}$.fn.make_text_editable=function(g){var d=("num_cols" in g?g.num_cols:30),c=("num_rows" in g?g.num_rows:4),e=("use_textarea" in g?g.use_textarea:false),b=("on_finish" in g?g.on_finish:null),f=("help_text" in g?g.help_text:null);var a=$(this);a.addClass("editable-text").click(function(l){if($(this).children(":input").length>0){return}a.removeClass("editable-text");var i=function(m){a.find(":input").remove();if(m!=""){a.text(m)}else{a.html("<br>")}a.addClass("editable-text");if(b){b(m)}};var h=a.text(),k,j;if(e){k=$("<textarea/>").attr({rows:c,cols:d}).text($.trim(h)).keyup(function(m){if(m.keyCode===27){i(h)}});j=$("<button/>").text("Done").click(function(){i(k.val());return false})}else{k=$("<input type='text'/>").attr({value:$.trim(h),size:d}).blur(function(){i(h)}).keyup(function(m){if(m.keyCode===27){$(this).trigger("blur")}else{if(m.keyCode===13){i($(this).val())}}})}a.text("");a.append(k);if(j){a.append(j)}k.focus();k.select();l.stopPropagation()});if(f){a.attr("title",f).tipsy({gravity:"s"})}return a};function async_save_text(d,f,e,a,c,h,i,g,b){if(c===undefined){c=30}if(i===undefined){i=4}$("#"+d).live("click",function(){if($("#renaming-active").length>0){return}var l=$("#"+f),k=l.text(),j;if(h){j=$("<textarea></textarea>").attr({rows:i,cols:c}).text($.trim(k))}else{j=$("<input type='text'></input>").attr({value:$.trim(k),size:c})}j.attr("id","renaming-active");j.blur(function(){$(this).remove();l.show();if(b){b(j)}});j.keyup(function(n){if(n.keyCode===27){$(this).trigger("blur")}else{if(n.keyCode===13){var m={};m[a]=$(this).val();$(this).trigger("blur");$.ajax({url:e,data:m,error:function(){alert("Text editing for elt "+f+" failed")},success:function(o){if(o!==""){l.text(o)}else{l.html("<em>None</em>")}if(b){b(j)}}})}}});if(g){g(j)}l.hide();j.insertAfter(l);j.focus();j.select();return})}function init_history_items(d,a,c){var b=function(){try{var e=$.jStorage.get("history_expand_state");if(e){for(var g in e){$("#"+g+" div.historyItemBody").show()}}}catch(f){$.jStorage.deleteKey("history_expand_state")}if($.browser.mozilla){$("div.historyItemBody").each(function(){if(!$(this).is(":visible")){$(this).find("pre.peek").css("overflow","hidden")}})}d.each(function(){var j=this.id,h=$(this).children("div.historyItemBody"),i=h.find("pre.peek");$(this).find(".historyItemTitleBar > .historyItemTitle").wrap("<a href='javascript:void(0);'></a>").click(function(){var k;if(h.is(":visible")){if($.browser.mozilla){i.css("overflow","hidden")}h.slideUp("fast");if(!c){k=$.jStorage.get("history_expand_state");if(k){delete k[j];$.jStorage.set("history_expand_state",k)}}}else{h.slideDown("fast",function(){if($.browser.mozilla){i.css("overflow","auto")}});if(!c){k=$.jStorage.get("history_expand_state");if(!k){k={}}k[j]=true;$.jStorage.set("history_expand_state",k)}}return false})});$("#top-links > a.toggle").click(function(){var h=$.jStorage.get("history_expand_state");if(!h){h={}}$("div.historyItemBody:visible").each(function(){if($.browser.mozilla){$(this).find("pre.peek").css("overflow","hidden")}$(this).slideUp("fast");if(h){delete h[$(this).parent().attr("id")]}});$.jStorage.set("history_expand_state",h)}).show()};b()}function commatize(b){b+="";var a=/(\d+)(\d{3})/;while(a.test(b)){b=b.replace(a,"$1,$2")}return b}function reset_tool_search(a){var c=$("#galaxy_tools").contents();if(c.length===0){c=$(document)}$(this).removeClass("search_active");c.find(".toolTitle").removeClass("search_match");c.find(".toolSectionBody").hide();c.find(".toolTitle").show();c.find(".toolPanelLabel").show();c.find(".toolSectionWrapper").each(function(){if($(this).attr("id")!="recently_used_wrapper"){$(this).show()}else{if($(this).hasClass("user_pref_visible")){$(this).show()}}});c.find("#search-no-results").hide();c.find("#search-spinner").hide();if(a){var b=c.find("#tool-search-query");b.val("search tools")}}var GalaxyAsync=function(a){this.url_dict={};this.log_action=(a===undefined?false:a)};GalaxyAsync.prototype.set_func_url=function(a,b){this.url_dict[a]=b};GalaxyAsync.prototype.set_user_pref=function(a,b){var c=this.url_dict[arguments.callee];if(c===undefined){return false}$.ajax({url:c,data:{pref_name:a,pref_value:b},error:function(){return false},success:function(){return true}})};GalaxyAsync.prototype.log_user_action=function(c,b,d){if(!this.log_action){return}var a=this.url_dict[arguments.callee];if(a===undefined){return false}$.ajax({url:a,data:{action:c,context:b,params:d},error:function(){return false},success:function(){return true}})};$(document).ready(function(){$("select[refresh_on_change='true']").change(function(){var a=$(this),e=a.val(),d=false,c=a.attr("refresh_on_change_values");if(c){c=c.split(",");var b=a.attr("last_selected_value");if($.inArray(e,c)===-1&&$.inArray(b,c)===-1){return}}$(window).trigger("refresh_on_change");$(document).trigger("convert_to_values");a.get(0).form.submit()});$(":checkbox[refresh_on_change='true']").click(function(){var a=$(this),e=a.val(),d=false,c=a.attr("refresh_on_change_values");if(c){c=c.split(",");var b=a.attr("last_selected_value");if($.inArray(e,c)===-1&&$.inArray(b,c)===-1){return}}$(window).trigger("refresh_on_change");a.get(0).form.submit()});$("a[confirm]").click(function(){return confirm($(this).attr("confirm"))});if($.fn.tipsy){$(".tooltip").tipsy({gravity:"s"})}make_popup_menus();replace_big_select_inputs(20,1500);$("a").click(function(){var b=$(this);var c=(parent.frames&&parent.frames.galaxy_main);if((b.attr("target")=="galaxy_main")&&(!c)){var a=b.attr("href");if(a.indexOf("?")==-1){a+="?"}else{a+="&"}a+="use_panels=True";b.attr("href",a);b.attr("target","_self")}return b})});
\ No newline at end of file
+if(!Array.indexOf){Array.prototype.indexOf=function(c){for(var b=0,a=this.length;b<a;b++){if(this[b]==c){return b}}return -1}}function obj_length(c){if(c.length!==undefined){return c.length}var b=0;for(var a in c){b++}return b}$.fn.makeAbsolute=function(a){return this.each(function(){var b=$(this);var c=b.position();b.css({position:"absolute",marginLeft:0,marginTop:0,top:c.top,left:c.left,right:$(window).width()-(c.left+b.width())});if(a){b.remove().appendTo("body")}})};function make_popupmenu(b,c){var a=(b.data("menu_options"));b.data("menu_options",c);if(a){return}b.bind("click.show_popup",function(d){$(".popmenu-wrapper").remove();setTimeout(function(){var g=$("<ul class='dropdown-menu' id='"+b.attr("id")+"-menu'></ul>");var f=b.data("menu_options");if(obj_length(f)<=0){$("<li>No Options.</li>").appendTo(g)}$.each(f,function(j,i){if(i){g.append($("<li></li>").append($("<a href='#'></a>").html(j).click(i)))}else{g.append($("<li></li>").addClass("head").append($("<a href='#'></a>").html(j)))}});var h=$("<div class='popmenu-wrapper' style='position: absolute;left: 0; top: -1000;'></div>").append(g).appendTo("body");var e=d.pageX-h.width()/2;e=Math.min(e,$(document).scrollLeft()+$(window).width()-$(h).width()-5);e=Math.max(e,$(document).scrollLeft()+5);h.css({top:d.pageY,left:e})},10);setTimeout(function(){var f=function(h){$(h).bind("click.close_popup",function(){$(".popmenu-wrapper").remove();h.unbind("click.close_popup")})};f($(window.document));f($(window.top.document));for(var e=window.top.frames.length;e--;){var g=$(window.top.frames[e].document);f(g)}},50);return false})}function make_popup_menus(){jQuery("div[popupmenu]").each(function(){var a={};var c=$(this);c.find("a").each(function(){var f=$(this),h=f.get(0);var d=h.getAttribute("confirm"),e=h.getAttribute("href"),g=h.getAttribute("target");if(!e){a[f.text()]=null}else{a[f.text()]=function(){if(!d||confirm(d)){var i;if(g=="_parent"){window.parent.location=e}else{if(g=="_top"){window.top.location=e}else{if(g=="demo"){if(i===undefined||i.closed){i=window.open(e,g);i.creator=self}}else{window.location=e}}}}}}});var b=$("#"+c.attr("popupmenu"));b.find("a").bind("click",function(d){d.stopPropagation();return true});make_popupmenu(b,a);b.addClass("popup");c.remove()})}function naturalSort(j,h){var p=/(-?[0-9\.]+)/g,k=j.toString().toLowerCase()||"",g=h.toString().toLowerCase()||"",l=String.fromCharCode(0),n=k.replace(p,l+"$1"+l).split(l),e=g.replace(p,l+"$1"+l).split(l),d=(new Date(k)).getTime(),o=d?(new Date(g)).getTime():null;if(o){if(d<o){return -1}else{if(d>o){return 1}}}var m,f;for(var i=0,c=Math.max(n.length,e.length);i<c;i++){m=parseFloat(n[i])||n[i];f=parseFloat(e[i])||e[i];if(m<f){return -1}else{if(m>f){return 1}}}return 0}function replace_big_select_inputs(a,b){if(!jQuery().autocomplete){return}if(a===undefined){a=20}if(b===undefined){b=3000}$("select").each(function(){var d=$(this);var g=d.find("option").length;if((g<a)||(g>b)){return}if(d.attr("multiple")==="multiple"){return}if(d.hasClass("no-autocomplete")){return}var m=d.attr("value");var c=$("<input type='text' class='text-and-autocomplete-select'></input>");c.attr("size",40);c.attr("name",d.attr("name"));c.attr("id",d.attr("id"));c.click(function(){var n=$(this).val();$(this).val("Loading...");$(this).showAllInCache();$(this).val(n);$(this).select()});var e=[];var i={};d.children("option").each(function(){var o=$(this).text();var n=$(this).attr("value");e.push(o);i[o]=n;i[n]=n;if(n==m){c.attr("value",o)}});if(m===""||m==="?"){c.attr("value","Click to Search or Select")}if(d.attr("name")=="dbkey"){e=e.sort(naturalSort)}var f={selectFirst:false,autoFill:false,mustMatch:false,matchContains:true,max:b,minChars:0,hideForLessThanMinChars:false};c.autocomplete(e,f);d.replaceWith(c);var k=function(){var o=c.attr("value");var n=i[o];if(n!==null&&n!==undefined){c.attr("value",n)}else{if(m!==""){c.attr("value",m)}else{c.attr("value","?")}}};c.parents("form").submit(function(){k()});$(document).bind("convert_to_values",function(){k()});if(d.attr("refresh_on_change")=="true"){var h=d.attr("refresh_on_change_values"),l=d.attr("last_selected_value");if(h!==undefined){h=h.split(",")}var j=function(){var n=i[c.attr("value")];if(l!==n&&n!==null&&n!==undefined){if(h!==undefined&&$.inArray(n,h)===-1&&$.inArray(l,h)===-1){return}c.attr("value",n);$(window).trigger("refresh_on_change");c.parents("form").submit()}};c.bind("result",j);c.keyup(function(n){if(n.keyCode===13){j()}});c.keydown(function(n){if(n.keyCode===13){return false}})}})}$.fn.make_text_editable=function(g){var d=("num_cols" in g?g.num_cols:30),c=("num_rows" in g?g.num_rows:4),e=("use_textarea" in g?g.use_textarea:false),b=("on_finish" in g?g.on_finish:null),f=("help_text" in g?g.help_text:null);var a=$(this);a.addClass("editable-text").click(function(l){if($(this).children(":input").length>0){return}a.removeClass("editable-text");var i=function(m){a.find(":input").remove();if(m!==""){a.text(m)}else{a.html("<br>")}a.addClass("editable-text");if(b){b(m)}};var h=a.text(),k,j;if(e){k=$("<textarea/>").attr({rows:c,cols:d}).text($.trim(h)).keyup(function(m){if(m.keyCode===27){i(h)}});j=$("<button/>").text("Done").click(function(){i(k.val());return false})}else{k=$("<input type='text'/>").attr({value:$.trim(h),size:d}).blur(function(){i(h)}).keyup(function(m){if(m.keyCode===27){$(this).trigger("blur")}else{if(m.keyCode===13){i($(this).val())}}})}a.text("");a.append(k);if(j){a.append(j)}k.focus();k.select();l.stopPropagation()});if(f){a.attr("title",f).tooltip()}return a};function async_save_text(d,f,e,a,c,h,i,g,b){if(c===undefined){c=30}if(i===undefined){i=4}$("#"+d).live("click",function(){if($("#renaming-active").length>0){return}var l=$("#"+f),k=l.text(),j;if(h){j=$("<textarea></textarea>").attr({rows:i,cols:c}).text($.trim(k))}else{j=$("<input type='text'></input>").attr({value:$.trim(k),size:c})}j.attr("id","renaming-active");j.blur(function(){$(this).remove();l.show();if(b){b(j)}});j.keyup(function(n){if(n.keyCode===27){$(this).trigger("blur")}else{if(n.keyCode===13){var m={};m[a]=$(this).val();$(this).trigger("blur");$.ajax({url:e,data:m,error:function(){alert("Text editing for elt "+f+" failed")},success:function(o){if(o!==""){l.text(o)}else{l.html("<em>None</em>")}if(b){b(j)}}})}}});if(g){g(j)}l.hide();j.insertAfter(l);j.focus();j.select();return})}function init_history_items(d,a,c){var b=function(){try{var e=$.jStorage.get("history_expand_state");if(e){for(var g in e){$("#"+g+" div.historyItemBody").show()}}}catch(f){$.jStorage.deleteKey("history_expand_state")}if($.browser.mozilla){$("div.historyItemBody").each(function(){if(!$(this).is(":visible")){$(this).find("pre.peek").css("overflow","hidden")}})}d.each(function(){var j=this.id,h=$(this).children("div.historyItemBody"),i=h.find("pre.peek");$(this).find(".historyItemTitleBar > .historyItemTitle").wrap("<a href='javascript:void(0);'></a>").click(function(){var k;if(h.is(":visible")){if($.browser.mozilla){i.css("overflow","hidden")}h.slideUp("fast");if(!c){k=$.jStorage.get("history_expand_state");if(k){delete k[j];$.jStorage.set("history_expand_state",k)}}}else{h.slideDown("fast",function(){if($.browser.mozilla){i.css("overflow","auto")}});if(!c){k=$.jStorage.get("history_expand_state");if(!k){k={}}k[j]=true;$.jStorage.set("history_expand_state",k)}}return false})});$("#top-links > a.toggle").click(function(){var h=$.jStorage.get("history_expand_state");if(!h){h={}}$("div.historyItemBody:visible").each(function(){if($.browser.mozilla){$(this).find("pre.peek").css("overflow","hidden")}$(this).slideUp("fast");if(h){delete h[$(this).parent().attr("id")]}});$.jStorage.set("history_expand_state",h)}).show()};b()}function commatize(b){b+="";var a=/(\d+)(\d{3})/;while(a.test(b)){b=b.replace(a,"$1,$2")}return b}function reset_tool_search(a){var c=$("#galaxy_tools").contents();if(c.length===0){c=$(document)}$(this).removeClass("search_active");c.find(".toolTitle").removeClass("search_match");c.find(".toolSectionBody").hide();c.find(".toolTitle").show();c.find(".toolPanelLabel").show();c.find(".toolSectionWrapper").each(function(){if($(this).attr("id")!="recently_used_wrapper"){$(this).show()}else{if($(this).hasClass("user_pref_visible")){$(this).show()}}});c.find("#search-no-results").hide();c.find("#search-spinner").hide();if(a){var b=c.find("#tool-search-query");b.val("search tools")}}var GalaxyAsync=function(a){this.url_dict={};this.log_action=(a===undefined?false:a)};GalaxyAsync.prototype.set_func_url=function(a,b){this.url_dict[a]=b};GalaxyAsync.prototype.set_user_pref=function(a,b){var c=this.url_dict[arguments.callee];if(c===undefined){return false}$.ajax({url:c,data:{pref_name:a,pref_value:b},error:function(){return false},success:function(){return true}})};GalaxyAsync.prototype.log_user_action=function(c,b,d){if(!this.log_action){return}var a=this.url_dict[arguments.callee];if(a===undefined){return false}$.ajax({url:a,data:{action:c,context:b,params:d},error:function(){return false},success:function(){return true}})};$(document).ready(function(){$("select[refresh_on_change='true']").change(function(){var a=$(this),e=a.val(),d=false,c=a.attr("refresh_on_change_values");if(c){c=c.split(",");var b=a.attr("last_selected_value");if($.inArray(e,c)===-1&&$.inArray(b,c)===-1){return}}$(window).trigger("refresh_on_change");$(document).trigger("convert_to_values");a.get(0).form.submit()});$(":checkbox[refresh_on_change='true']").click(function(){var a=$(this),e=a.val(),d=false,c=a.attr("refresh_on_change_values");if(c){c=c.split(",");var b=a.attr("last_selected_value");if($.inArray(e,c)===-1&&$.inArray(b,c)===-1){return}}$(window).trigger("refresh_on_change");a.get(0).form.submit()});$("a[confirm]").click(function(){return confirm($(this).attr("confirm"))});if($.fn.tooltip){$(".tooltip").tooltip({placement:"top"})}make_popup_menus();replace_big_select_inputs(20,1500);$("a").click(function(){var b=$(this);var c=(parent.frames&&parent.frames.galaxy_main);if((b.attr("target")=="galaxy_main")&&(!c)){var a=b.attr("href");if(a.indexOf("?")==-1){a+="?"}else{a+="&"}a+="use_panels=True";b.attr("href",a);b.attr("target","_self")}return b})});
\ No newline at end of file
diff -r 96bc3ef032671042f389696d510538f0f5f9b643 -r dc5ab5e987e483647148afde42f3f257a557c742 static/scripts/packed/galaxy.workflow_editor.canvas.js
--- a/static/scripts/packed/galaxy.workflow_editor.canvas.js
+++ b/static/scripts/packed/galaxy.workflow_editor.canvas.js
@@ -1,1 +1,1 @@
-function Terminal(a){this.element=a;this.connectors=[]}$.extend(Terminal.prototype,{connect:function(a){this.connectors.push(a);if(this.node){this.node.changed()}},disconnect:function(a){this.connectors.splice($.inArray(a,this.connectors),1);if(this.node){this.node.changed()}},redraw:function(){$.each(this.connectors,function(a,b){b.redraw()})},destroy:function(){$.each(this.connectors.slice(),function(a,b){b.destroy()})}});function OutputTerminal(a,b){Terminal.call(this,a);this.datatypes=b}OutputTerminal.prototype=new Terminal();function InputTerminal(a,b){Terminal.call(this,a);this.datatypes=b}InputTerminal.prototype=new Terminal();$.extend(InputTerminal.prototype,{can_accept:function(a){if(this.connectors.length<1){for(var c in this.datatypes){var f=new Array();f=f.concat(a.datatypes);if(a.node.post_job_actions){for(var d in a.node.post_job_actions){var g=a.node.post_job_actions[d];if(g.action_type=="ChangeDatatypeAction"&&(g.output_name==""||g.output_name==a.name)&&g.action_arguments){f.push(g.action_arguments.newtype)}}}for(var b in f){if(f[b]=="input"||issubtype(f[b],this.datatypes[c])){return true}}}}return false}});function Connector(b,a){this.canvas=null;this.dragging=false;this.inner_color="#FFFFFF";this.outer_color="#D8B365";if(b&&a){this.connect(b,a)}}$.extend(Connector.prototype,{connect:function(b,a){this.handle1=b;this.handle1.connect(this);this.handle2=a;this.handle2.connect(this)},destroy:function(){if(this.handle1){this.handle1.disconnect(this)}if(this.handle2){this.handle2.disconnect(this)}$(this.canvas).remove()},redraw:function(){var d=$("#canvas-container");if(!this.canvas){this.canvas=document.createElement("canvas");if(window.G_vmlCanvasManager){G_vmlCanvasManager.initElement(this.canvas)}d.append($(this.canvas));if(this.dragging){this.canvas.style.zIndex="300"}}var n=function(c){return $(c).offset().left-d.offset().left};var i=function(c){return $(c).offset().top-d.offset().top};var h=n(this.handle1.element)+5;var g=i(this.handle1.element)+5;var p=n(this.handle2.element)+5;var m=i(this.handle2.element)+5;var f=100;var k=Math.min(h,p);var a=Math.max(h,p);var j=Math.min(g,m);var t=Math.max(g,m);var b=Math.min(Math.max(Math.abs(t-j)/2,100),300);var o=k-f;var s=j-f;var q=a-k+2*f;var l=t-j+2*f;this.canvas.style.left=o+"px";this.canvas.style.top=s+"px";this.canvas.setAttribute("width",q);this.canvas.setAttribute("height",l);h-=o;g-=s;p-=o;m-=s;var r=this.canvas.getContext("2d");r.lineCap="round";r.strokeStyle=this.outer_color;r.lineWidth=7;r.beginPath();r.moveTo(h,g);r.bezierCurveTo(h+b,g,p-b,m,p,m);r.stroke();r.strokeStyle=this.inner_color;r.lineWidth=5;r.beginPath();r.moveTo(h,g);r.bezierCurveTo(h+b,g,p-b,m,p,m);r.stroke()}});function Node(a){this.element=a;this.input_terminals={};this.output_terminals={};this.tool_errors={}}$.extend(Node.prototype,{enable_input_terminal:function(d,a,b){var c=this;$(d).each(function(){var f=this.terminal=new InputTerminal(this,b);f.node=c;f.name=a;$(this).bind("dropinit",function(g,h){return $(h.drag).hasClass("output-terminal")&&f.can_accept(h.drag.terminal)}).bind("dropstart",function(g,h){h.proxy.terminal.connectors[0].inner_color="#BBFFBB"}).bind("dropend",function(g,h){h.proxy.terminal.connectors[0].inner_color="#FFFFFF"}).bind("drop",function(g,h){(new Connector(h.drag.terminal,f)).redraw()}).bind("hover",function(){if(f.connectors.length>0){var g=$("<div class='callout'></div>").css({display:"none"}).appendTo("body").append($("<div class='buttons'></div>").append($("<img/>").attr("src",galaxy_paths.attributes.image_path+"/delete_icon.png").click(function(){$.each(f.connectors,function(i,h){h.destroy()});g.remove()}))).bind("mouseleave",function(){$(this).remove()});g.css({top:$(this).offset().top-2,left:$(this).offset().left-g.width(),"padding-right":$(this).width()}).show()}});c.input_terminals[a]=f})},enable_output_terminal:function(d,a,b){var c=this;$(d).each(function(){var g=this;var f=this.terminal=new OutputTerminal(this,b);f.node=c;f.name=a;$(this).bind("dragstart",function(j,k){$(k.available).addClass("input-terminal-active");workflow.check_changes_in_active_form();var i=$('<div class="drag-terminal" style="position: absolute;"></div>').appendTo("#canvas-container").get(0);i.terminal=new OutputTerminal(i);var l=new Connector();l.dragging=true;l.connect(this.terminal,i.terminal);return i}).bind("drag",function(i,j){var h=function(){var l=$(j.proxy).offsetParent().offset(),k=j.offsetX-l.left,m=j.offsetY-l.top;$(j.proxy).css({left:k,top:m});j.proxy.terminal.redraw();canvas_manager.update_viewport_overlay()};h();$("#canvas-container").get(0).scroll_panel.test(i,h)}).bind("dragend",function(h,i){i.proxy.terminal.connectors[0].destroy();$(i.proxy).remove();$(i.available).removeClass("input-terminal-active");$("#canvas-container").get(0).scroll_panel.stop()});c.output_terminals[a]=f})},redraw:function(){$.each(this.input_terminals,function(a,b){b.redraw()});$.each(this.output_terminals,function(a,b){b.redraw()})},destroy:function(){$.each(this.input_terminals,function(a,b){b.destroy()});$.each(this.output_terminals,function(a,b){b.destroy()});workflow.remove_node(this);$(this.element).remove()},make_active:function(){$(this.element).addClass("toolForm-active")},make_inactive:function(){var a=this.element.get(0);(function(b){b.removeChild(a);b.appendChild(a)})(a.parentNode);$(a).removeClass("toolForm-active")},init_field_data:function(h){var g=this.element;if(h.type){this.type=h.type}this.name=h.name;this.form_html=h.form_html;this.tool_state=h.tool_state;this.tool_errors=h.tool_errors;this.tooltip=h.tooltip?h.tooltip:"";this.annotation=h.annotation;this.post_job_actions=h.post_job_actions?h.post_job_actions:{};this.workflow_outputs=h.workflow_outputs?h.workflow_outputs:[];if(this.tool_errors){g.addClass("tool-node-error")}else{g.removeClass("tool-node-error")}var d=this;var c=Math.max(150,g.width());var a=g.find(".toolFormBody");a.find("div").remove();var i=$("<div class='inputs'></div>").appendTo(a);$.each(h.data_inputs,function(k,f){var j=$("<div class='terminal input-terminal'></div>");d.enable_input_terminal(j,f.name,f.extensions);var b=$("<div class='form-row dataRow input-data-row' name='"+f.name+"'>"+f.label+"</div>");b.css({position:"absolute",left:-1000,top:-1000,display:"none"});$("body").append(b);c=Math.max(c,b.outerWidth());b.css({position:"",left:"",top:"",display:""});b.remove();i.append(b.prepend(j))});if((h.data_inputs.length>0)&&(h.data_outputs.length>0)){a.append($("<div class='rule'></div>"))}$.each(h.data_outputs,function(k,b){var j=$("<div class='terminal output-terminal'></div>");d.enable_output_terminal(j,b.name,b.extensions);var f=b.name;if(b.extensions.indexOf("input")<0){f=f+" ("+b.extensions.join(", ")+")"}var m=$("<div class='form-row dataRow'>"+f+"</div>");if(d.type=="tool"){var l=$("<div class='callout "+f+"'></div>").css({display:"none"}).append($("<div class='buttons'></div>").append($("<img/>").attr("src",galaxy_paths.attributes.image_path+"/fugue/asterisk-small-outline.png").click(function(){if($.inArray(b.name,d.workflow_outputs)!=-1){d.workflow_outputs.splice($.inArray(b.name,d.workflow_outputs),1);l.find("img").attr("src",galaxy_paths.attributes.image_path+"/fugue/asterisk-small-outline.png")}else{d.workflow_outputs.push(b.name);l.find("img").attr("src",galaxy_paths.attributes.image_path+"/fugue/asterisk-small.png")}workflow.has_changes=true;canvas_manager.draw_overview()}))).tipsy({delayIn:500,fallback:"Flag this as a workflow output. All non-flagged outputs will be hidden."});l.css({top:"50%",margin:"-8px 0px 0px 0px",right:8});l.show();m.append(l);if($.inArray(b.name,d.workflow_outputs)===-1){l.find("img").attr("src",galaxy_paths.attributes.image_path+"/fugue/asterisk-small-outline.png")}else{l.find("img").attr("src",galaxy_paths.attributes.image_path+"/fugue/asterisk-small.png")}m.hover(function(){l.find("img").attr("src",galaxy_paths.attributes.image_path+"/fugue/asterisk-small-yellow.png")},function(){if($.inArray(b.name,d.workflow_outputs)===-1){l.find("img").attr("src",galaxy_paths.attributes.image_path+"/fugue/asterisk-small-outline.png")}else{l.find("img").attr("src",galaxy_paths.attributes.image_path+"/fugue/asterisk-small.png")}})}m.css({position:"absolute",left:-1000,top:-1000,display:"none"});$("body").append(m);c=Math.max(c,m.outerWidth()+17);m.css({position:"",left:"",top:"",display:""});m.detach();a.append(m.append(j))});g.css("width",Math.min(250,Math.max(g.width(),c)));workflow.node_changed(this)},update_field_data:function(f){var c=$(this.element),d=this;this.tool_state=f.tool_state;this.form_html=f.form_html;this.tool_errors=f.tool_errors;this.annotation=f.annotation;var g=$.parseJSON(f.post_job_actions);this.post_job_actions=g?g:{};if(this.tool_errors){c.addClass("tool-node-error")}else{c.removeClass("tool-node-error")}var h=c.find("div.inputs");var b=$("<div class='inputs'></div>");var a=h.find("div.input-data-row");$.each(f.data_inputs,function(l,j){var k=$("<div class='terminal input-terminal'></div>");d.enable_input_terminal(k,j.name,j.extensions);h.find("div[name='"+j.name+"']").each(function(){$(this).find(".input-terminal").each(function(){var i=this.terminal.connectors[0];if(i){k[0].terminal.connectors[0]=i;i.handle2=k[0].terminal}});$(this).remove()});b.append($("<div class='form-row dataRow input-data-row' name='"+j.name+"'>"+j.label+"</div>").prepend(k))});h.replaceWith(b);h.find("div.input-data-row > .terminal").each(function(){this.terminal.destroy()});this.changed();this.redraw()},error:function(d){var a=$(this.element).find(".toolFormBody");a.find("div").remove();var c="<div style='color: red; text-style: italic;'>"+d+"</div>";this.form_html=c;a.html(c);workflow.node_changed(this)},changed:function(){workflow.node_changed(this)}});function Workflow(a){this.canvas_container=a;this.id_counter=0;this.nodes={};this.name=null;this.has_changes=false;this.active_form_has_changes=false}$.extend(Workflow.prototype,{add_node:function(a){a.id=this.id_counter;a.element.attr("id","wf-node-step-"+a.id);this.id_counter++;this.nodes[a.id]=a;this.has_changes=true;a.workflow=this},remove_node:function(a){if(this.active_node==a){this.clear_active_node()}delete this.nodes[a.id];this.has_changes=true},remove_all:function(){wf=this;$.each(this.nodes,function(b,a){a.destroy();wf.remove_node(a)})},rectify_workflow_outputs:function(){var b,a=false;$.each(this.nodes,function(c,d){if(d.workflow_outputs&&d.workflow_outputs.length>0){b=true}$.each(d.post_job_actions,function(g,f){if(f.action_type==="HideDatasetAction"){a=true}})});if(b!==false||a!==false){$.each(this.nodes,function(c,g){if(g.type==="tool"){var f=false;if(g.post_job_actions==null){g.post_job_actions={};f=true}var d=[];$.each(g.post_job_actions,function(i,h){if(h.action_type=="HideDatasetAction"){d.push(i)}});if(d.length>0&&g==workflow.active_node){$.each(d,function(h,j){f=true;delete g.post_job_actions[j]})}if(b){$.each(g.output_terminals,function(i,j){var h=true;$.each(g.workflow_outputs,function(l,m){if(j.name===m){h=false}});if(h===true){f=true;var k={action_type:"HideDatasetAction",output_name:j.name,action_arguments:{}};g.post_job_actions["HideDatasetAction"+j.name]=null;g.post_job_actions["HideDatasetAction"+j.name]=k}})}if(workflow.active_node==g&&f===true){workflow.reload_active_node()}}})}},to_simple:function(){var a={};$.each(this.nodes,function(c,f){var g={};$.each(f.input_terminals,function(h,i){g[i.name]=null;$.each(i.connectors,function(j,k){g[i.name]={id:k.handle1.node.id,output_name:k.handle1.name}})});var b={};if(f.post_job_actions){$.each(f.post_job_actions,function(j,h){var k={action_type:h.action_type,output_name:h.output_name,action_arguments:h.action_arguments};b[h.action_type+h.output_name]=null;b[h.action_type+h.output_name]=k})}if(!f.workflow_outputs){f.workflow_outputs=[]}var d={id:f.id,type:f.type,tool_id:f.tool_id,tool_state:f.tool_state,tool_errors:f.tool_errors,input_connections:g,position:$(f.element).position(),annotation:f.annotation,post_job_actions:f.post_job_actions,workflow_outputs:f.workflow_outputs};a[f.id]=d});return{steps:a}},from_simple:function(b){wf=this;var c=0;wf.name=b.name;var a=false;$.each(b.steps,function(g,f){var d=prebuild_node("tool",f.name,f.tool_id);d.init_field_data(f);if(f.position){d.element.css({top:f.position.top,left:f.position.left})}d.id=f.id;wf.nodes[d.id]=d;c=Math.max(c,parseInt(g));if(!a&&d.type==="tool"){if(d.workflow_outputs.length>0){a=true}else{$.each(d.post_job_actions,function(i,h){if(h.action_type==="HideDatasetAction"){a=true}})}}});wf.id_counter=c+1;$.each(b.steps,function(g,f){var d=wf.nodes[g];$.each(f.input_connections,function(i,h){if(h){var j=wf.nodes[h.id];var l=new Connector();l.connect(j.output_terminals[h.output_name],d.input_terminals[i]);l.redraw()}});if(a&&d.type==="tool"){$.each(d.output_terminals,function(h,i){if(d.post_job_actions["HideDatasetAction"+i.name]===undefined){d.workflow_outputs.push(i.name);callout=$(d.element).find(".callout."+i.name);callout.find("img").attr("src",galaxy_paths.attributes.image_path+"/fugue/asterisk-small.png");workflow.has_changes=true}})}})},check_changes_in_active_form:function(){if(this.active_form_has_changes){this.has_changes=true;$("#right-content").find("form").submit();this.active_form_has_changes=false}},reload_active_node:function(){if(this.active_node){var a=this.active_node;this.clear_active_node();this.activate_node(a)}},clear_active_node:function(){if(this.active_node){this.active_node.make_inactive();this.active_node=null}parent.show_form_for_tool("<div>No node selected</div>")},activate_node:function(a){if(this.active_node!=a){this.check_changes_in_active_form();this.clear_active_node();parent.show_form_for_tool(a.form_html+a.tooltip,a);a.make_active();this.active_node=a}},node_changed:function(a){this.has_changes=true;if(this.active_node==a){this.check_changes_in_active_form();parent.show_form_for_tool(a.form_html+a.tooltip,a)}},layout:function(){this.check_changes_in_active_form();this.has_changes=true;var i={};var b={};$.each(this.nodes,function(l,k){if(i[l]===undefined){i[l]=0}if(b[l]===undefined){b[l]=[]}});$.each(this.nodes,function(l,k){$.each(k.input_terminals,function(m,n){$.each(n.connectors,function(p,q){var o=q.handle1.node;i[k.id]+=1;b[o.id].push(k.id)})})});node_ids_by_level=[];while(true){level_parents=[];for(var a in i){if(i[a]==0){level_parents.push(a)}}if(level_parents.length==0){break}node_ids_by_level.push(level_parents);for(var f in level_parents){var j=level_parents[f];delete i[j];for(var g in b[j]){i[b[j][g]]-=1}}}if(i.length){return}var d=this.nodes;var h=80;v_pad=30;var c=h;$.each(node_ids_by_level,function(k,l){l.sort(function(p,o){return $(d[p].element).position().top-$(d[o].element).position().top});var m=0;var n=v_pad;$.each(l,function(o,r){var q=d[r];var p=$(q.element);$(p).css({top:n,left:c});m=Math.max(m,$(p).width());n+=$(p).height()+v_pad});c+=m+h});$.each(d,function(k,l){l.redraw()})},bounds_for_all_nodes:function(){var d=Infinity,b=-Infinity,c=Infinity,a=-Infinity,f;$.each(this.nodes,function(h,g){e=$(g.element);f=e.position();d=Math.min(d,f.left);b=Math.max(b,f.left+e.width());c=Math.min(c,f.top);a=Math.max(a,f.top+e.width())});return{xmin:d,xmax:b,ymin:c,ymax:a}},fit_canvas_to_nodes:function(){var a=this.bounds_for_all_nodes();var f=this.canvas_container.position();var i=this.canvas_container.parent();var d=fix_delta(a.xmin,100);var h=fix_delta(a.ymin,100);d=Math.max(d,f.left);h=Math.max(h,f.top);var c=f.left-d;var g=f.top-h;var b=round_up(a.xmax+100,100)+d;var j=round_up(a.ymax+100,100)+h;b=Math.max(b,-c+i.width());j=Math.max(j,-g+i.height());this.canvas_container.css({left:c,top:g,width:b,height:j});this.canvas_container.children().each(function(){var k=$(this).position();$(this).css("left",k.left+d);$(this).css("top",k.top+h)})}});function fix_delta(a,b){if(a<b||a>3*b){new_pos=(Math.ceil(((a%b))/b)+1)*b;return(-(a-new_pos))}return 0}function round_up(a,b){return Math.ceil(a/b)*b}function prebuild_node(l,j,r){var i=$("<div class='toolForm toolFormInCanvas'></div>");var g=new Node(i);g.type=l;if(l=="tool"){g.tool_id=r}var n=$("<div class='toolFormTitle unselectable'>"+j+"</div>");i.append(n);i.css("left",$(window).scrollLeft()+20);i.css("top",$(window).scrollTop()+20);var m=$("<div class='toolFormBody'></div>");var h="<div><img height='16' align='middle' src='"+galaxy_paths.attributes.image_path+"/loading_small_white_bg.gif'/> loading tool info...</div>";m.append(h);g.form_html=h;i.append(m);var k=$("<div class='buttons' style='float: right;'></div>");k.append($("<img/>").attr("src",galaxy_paths.attributes.image_path+"/delete_icon.png").click(function(b){g.destroy()}).hover(function(){$(this).attr("src",galaxy_paths.attributes.image_path+"/delete_icon_dark.png")},function(){$(this).attr("src",galaxy_paths.attributes.image_path+"/delete_icon.png")}));i.appendTo("#canvas-container");var d=$("#canvas-container").position();var c=$("#canvas-container").parent();var a=i.width();var q=i.height();i.css({left:(-d.left)+(c.width()/2)-(a/2),top:(-d.top)+(c.height()/2)-(q/2)});k.prependTo(n);a+=(k.width()+10);i.css("width",a);$(i).bind("dragstart",function(){workflow.activate_node(g)}).bind("dragend",function(){workflow.node_changed(this);workflow.fit_canvas_to_nodes();canvas_manager.draw_overview()}).bind("dragclickonly",function(){workflow.activate_node(g)}).bind("drag",function(o,p){var f=$(this).offsetParent().offset(),b=p.offsetX-f.left,s=p.offsetY-f.top;$(this).css({left:b,top:s});$(this).find(".terminal").each(function(){this.terminal.redraw()})});return g}var ext_to_type=null;var type_to_type=null;function issubtype(b,a){b=ext_to_type[b];a=ext_to_type[a];return(type_to_type[b])&&(a in type_to_type[b])}function populate_datatype_info(a){ext_to_type=a.ext_to_class_name;type_to_type=a.class_to_classes}function ScrollPanel(a){this.panel=a}$.extend(ScrollPanel.prototype,{test:function(v,d){clearTimeout(this.timeout);var k=v.pageX,j=v.pageY,l=$(this.panel),c=l.position(),b=l.width(),i=l.height(),w=l.parent(),s=w.width(),a=w.height(),r=w.offset(),p=r.left,m=r.top,A=p+w.width(),u=m+w.height(),B=-(b-(s/2)),z=-(i-(a/2)),g=(s/2),f=(a/2),h=false,q=5,o=23;if(k-q<p){if(c.left<g){var n=Math.min(o,g-c.left);l.css("left",c.left+n);h=true}}else{if(k+q>A){if(c.left>B){var n=Math.min(o,c.left-B);l.css("left",c.left-n);h=true}}else{if(j-q<m){if(c.top<f){var n=Math.min(o,f-c.top);l.css("top",c.top+n);h=true}}else{if(j+q>u){if(c.top>z){var n=Math.min(o,c.top-B);l.css("top",(c.top-n)+"px");h=true}}}}}if(h){d();var l=this;this.timeout=setTimeout(function(){l.test(v,d)},50)}},stop:function(b,a){clearTimeout(this.timeout)}});function CanvasManager(b,a){this.cv=b;this.cc=this.cv.find("#canvas-container");this.oc=a.find("#overview-canvas");this.ov=a.find("#overview-viewport");this.init_drag()}$.extend(CanvasManager.prototype,{init_drag:function(){var b=this;var a=function(f,g){f=Math.min(f,b.cv.width()/2);f=Math.max(f,-b.cc.width()+b.cv.width()/2);g=Math.min(g,b.cv.height()/2);g=Math.max(g,-b.cc.height()+b.cv.height()/2);b.cc.css({left:f,top:g});b.update_viewport_overlay()};this.cc.each(function(){this.scroll_panel=new ScrollPanel(this)});var d,c;this.cv.bind("dragstart",function(){var g=$(this).offset();var f=b.cc.position();c=f.top-g.top;d=f.left-g.left}).bind("drag",function(f,g){a(g.offsetX+d,g.offsetY+c)}).bind("dragend",function(){workflow.fit_canvas_to_nodes();b.draw_overview()});this.ov.bind("drag",function(k,l){var h=b.cc.width(),n=b.cc.height(),m=b.oc.width(),j=b.oc.height(),f=$(this).offsetParent().offset(),i=l.offsetX-f.left,g=l.offsetY-f.top;a(-(i/m*h),-(g/j*n))}).bind("dragend",function(){workflow.fit_canvas_to_nodes();b.draw_overview()});$("#overview-border").bind("drag",function(g,i){var j=$(this).offsetParent();var h=j.offset();var f=Math.max(j.width()-(i.offsetX-h.left),j.height()-(i.offsetY-h.top));$(this).css({width:f,height:f});b.draw_overview()});$("#overview-border div").bind("drag",function(){})},update_viewport_overlay:function(){var b=this.cc,f=this.cv,a=this.oc,c=this.ov,d=b.width(),j=b.height(),i=a.width(),g=a.height(),h=b.position();c.css({left:-(h.left/d*i),top:-(h.top/j*g),width:(f.width()/d*i)-2,height:(f.height()/j*g)-2})},draw_overview:function(){var j=$("#overview-canvas"),m=j.parent().parent().width(),i=j.get(0).getContext("2d"),d=$("#canvas-container").width(),l=$("#canvas-container").height();var g,a,k,f;var h=this.cv.width();var b=this.cv.height();if(d<h&&l<b){k=d/h*m;f=(m-k)/2;g=l/b*m;a=(m-g)/2}else{if(d<l){a=0;g=m;k=Math.ceil(g*d/l);f=(m-k)/2}else{k=m;f=0;g=Math.ceil(k*l/d);a=(m-g)/2}}j.parent().css({left:f,top:a,width:k,height:g});j.attr("width",k);j.attr("height",g);$.each(workflow.nodes,function(t,q){i.fillStyle="#D2C099";i.strokeStyle="#D8B365";i.lineWidth=1;var s=$(q.element),n=s.position(),c=n.left/d*k,r=n.top/l*g,o=s.width()/d*k,p=s.height()/l*g;if(q.tool_errors){i.fillStyle="#FFCCCC";i.strokeStyle="#AA6666"}else{if(q.workflow_outputs!=undefined&&q.workflow_outputs.length>0){i.fillStyle="#E8A92D";i.strokeStyle="#E8A92D"}}i.fillRect(c,r,o,p);i.strokeRect(c,r,o,p)});this.update_viewport_overlay()}});
\ No newline at end of file
+function Terminal(a){this.element=a;this.connectors=[]}$.extend(Terminal.prototype,{connect:function(a){this.connectors.push(a);if(this.node){this.node.changed()}},disconnect:function(a){this.connectors.splice($.inArray(a,this.connectors),1);if(this.node){this.node.changed()}},redraw:function(){$.each(this.connectors,function(a,b){b.redraw()})},destroy:function(){$.each(this.connectors.slice(),function(a,b){b.destroy()})}});function OutputTerminal(a,b){Terminal.call(this,a);this.datatypes=b}OutputTerminal.prototype=new Terminal();function InputTerminal(a,b){Terminal.call(this,a);this.datatypes=b}InputTerminal.prototype=new Terminal();$.extend(InputTerminal.prototype,{can_accept:function(a){if(this.connectors.length<1){for(var c in this.datatypes){var f=new Array();f=f.concat(a.datatypes);if(a.node.post_job_actions){for(var d in a.node.post_job_actions){var g=a.node.post_job_actions[d];if(g.action_type=="ChangeDatatypeAction"&&(g.output_name==""||g.output_name==a.name)&&g.action_arguments){f.push(g.action_arguments.newtype)}}}for(var b in f){if(f[b]=="input"||issubtype(f[b],this.datatypes[c])){return true}}}}return false}});function Connector(b,a){this.canvas=null;this.dragging=false;this.inner_color="#FFFFFF";this.outer_color="#D8B365";if(b&&a){this.connect(b,a)}}$.extend(Connector.prototype,{connect:function(b,a){this.handle1=b;this.handle1.connect(this);this.handle2=a;this.handle2.connect(this)},destroy:function(){if(this.handle1){this.handle1.disconnect(this)}if(this.handle2){this.handle2.disconnect(this)}$(this.canvas).remove()},redraw:function(){var d=$("#canvas-container");if(!this.canvas){this.canvas=document.createElement("canvas");if(window.G_vmlCanvasManager){G_vmlCanvasManager.initElement(this.canvas)}d.append($(this.canvas));if(this.dragging){this.canvas.style.zIndex="300"}}var n=function(c){return $(c).offset().left-d.offset().left};var i=function(c){return $(c).offset().top-d.offset().top};var h=n(this.handle1.element)+5;var g=i(this.handle1.element)+5;var p=n(this.handle2.element)+5;var m=i(this.handle2.element)+5;var f=100;var k=Math.min(h,p);var a=Math.max(h,p);var j=Math.min(g,m);var t=Math.max(g,m);var b=Math.min(Math.max(Math.abs(t-j)/2,100),300);var o=k-f;var s=j-f;var q=a-k+2*f;var l=t-j+2*f;this.canvas.style.left=o+"px";this.canvas.style.top=s+"px";this.canvas.setAttribute("width",q);this.canvas.setAttribute("height",l);h-=o;g-=s;p-=o;m-=s;var r=this.canvas.getContext("2d");r.lineCap="round";r.strokeStyle=this.outer_color;r.lineWidth=7;r.beginPath();r.moveTo(h,g);r.bezierCurveTo(h+b,g,p-b,m,p,m);r.stroke();r.strokeStyle=this.inner_color;r.lineWidth=5;r.beginPath();r.moveTo(h,g);r.bezierCurveTo(h+b,g,p-b,m,p,m);r.stroke()}});function Node(a){this.element=a;this.input_terminals={};this.output_terminals={};this.tool_errors={}}$.extend(Node.prototype,{enable_input_terminal:function(d,a,b){var c=this;$(d).each(function(){var f=this.terminal=new InputTerminal(this,b);f.node=c;f.name=a;$(this).bind("dropinit",function(g,h){return $(h.drag).hasClass("output-terminal")&&f.can_accept(h.drag.terminal)}).bind("dropstart",function(g,h){h.proxy.terminal.connectors[0].inner_color="#BBFFBB"}).bind("dropend",function(g,h){h.proxy.terminal.connectors[0].inner_color="#FFFFFF"}).bind("drop",function(g,h){(new Connector(h.drag.terminal,f)).redraw()}).bind("hover",function(){if(f.connectors.length>0){var g=$("<div class='callout'></div>").css({display:"none"}).appendTo("body").append($("<div class='buttons'></div>").append($("<img/>").attr("src",galaxy_paths.attributes.image_path+"/delete_icon.png").click(function(){$.each(f.connectors,function(i,h){h.destroy()});g.remove()}))).bind("mouseleave",function(){$(this).remove()});g.css({top:$(this).offset().top-2,left:$(this).offset().left-g.width(),"padding-right":$(this).width()}).show()}});c.input_terminals[a]=f})},enable_output_terminal:function(d,a,b){var c=this;$(d).each(function(){var g=this;var f=this.terminal=new OutputTerminal(this,b);f.node=c;f.name=a;$(this).bind("dragstart",function(j,k){$(k.available).addClass("input-terminal-active");workflow.check_changes_in_active_form();var i=$('<div class="drag-terminal" style="position: absolute;"></div>').appendTo("#canvas-container").get(0);i.terminal=new OutputTerminal(i);var l=new Connector();l.dragging=true;l.connect(this.terminal,i.terminal);return i}).bind("drag",function(i,j){var h=function(){var l=$(j.proxy).offsetParent().offset(),k=j.offsetX-l.left,m=j.offsetY-l.top;$(j.proxy).css({left:k,top:m});j.proxy.terminal.redraw();canvas_manager.update_viewport_overlay()};h();$("#canvas-container").get(0).scroll_panel.test(i,h)}).bind("dragend",function(h,i){i.proxy.terminal.connectors[0].destroy();$(i.proxy).remove();$(i.available).removeClass("input-terminal-active");$("#canvas-container").get(0).scroll_panel.stop()});c.output_terminals[a]=f})},redraw:function(){$.each(this.input_terminals,function(a,b){b.redraw()});$.each(this.output_terminals,function(a,b){b.redraw()})},destroy:function(){$.each(this.input_terminals,function(a,b){b.destroy()});$.each(this.output_terminals,function(a,b){b.destroy()});workflow.remove_node(this);$(this.element).remove()},make_active:function(){$(this.element).addClass("toolForm-active")},make_inactive:function(){var a=this.element.get(0);(function(b){b.removeChild(a);b.appendChild(a)})(a.parentNode);$(a).removeClass("toolForm-active")},init_field_data:function(h){var g=this.element;if(h.type){this.type=h.type}this.name=h.name;this.form_html=h.form_html;this.tool_state=h.tool_state;this.tool_errors=h.tool_errors;this.tooltip=h.tooltip?h.tooltip:"";this.annotation=h.annotation;this.post_job_actions=h.post_job_actions?h.post_job_actions:{};this.workflow_outputs=h.workflow_outputs?h.workflow_outputs:[];if(this.tool_errors){g.addClass("tool-node-error")}else{g.removeClass("tool-node-error")}var d=this;var c=Math.max(150,g.width());var a=g.find(".toolFormBody");a.find("div").remove();var i=$("<div class='inputs'></div>").appendTo(a);$.each(h.data_inputs,function(k,f){var j=$("<div class='terminal input-terminal'></div>");d.enable_input_terminal(j,f.name,f.extensions);var b=$("<div class='form-row dataRow input-data-row' name='"+f.name+"'>"+f.label+"</div>");b.css({position:"absolute",left:-1000,top:-1000,display:"none"});$("body").append(b);c=Math.max(c,b.outerWidth());b.css({position:"",left:"",top:"",display:""});b.remove();i.append(b.prepend(j))});if((h.data_inputs.length>0)&&(h.data_outputs.length>0)){a.append($("<div class='rule'></div>"))}$.each(h.data_outputs,function(k,b){var j=$("<div class='terminal output-terminal'></div>");d.enable_output_terminal(j,b.name,b.extensions);var f=b.name;if(b.extensions.indexOf("input")<0){f=f+" ("+b.extensions.join(", ")+")"}var m=$("<div class='form-row dataRow'>"+f+"</div>");if(d.type=="tool"){var l=$("<div class='callout "+f+"'></div>").css({display:"none"}).append($("<div class='buttons'></div>").append($("<img/>").attr("src",galaxy_paths.attributes.image_path+"/fugue/asterisk-small-outline.png").click(function(){if($.inArray(b.name,d.workflow_outputs)!=-1){d.workflow_outputs.splice($.inArray(b.name,d.workflow_outputs),1);l.find("img").attr("src",galaxy_paths.attributes.image_path+"/fugue/asterisk-small-outline.png")}else{d.workflow_outputs.push(b.name);l.find("img").attr("src",galaxy_paths.attributes.image_path+"/fugue/asterisk-small.png")}workflow.has_changes=true;canvas_manager.draw_overview()}))).tooltip({delay:500,title:"Flag this as a workflow output. All non-flagged outputs will be hidden."});l.css({top:"50%",margin:"-8px 0px 0px 0px",right:8});l.show();m.append(l);if($.inArray(b.name,d.workflow_outputs)===-1){l.find("img").attr("src",galaxy_paths.attributes.image_path+"/fugue/asterisk-small-outline.png")}else{l.find("img").attr("src",galaxy_paths.attributes.image_path+"/fugue/asterisk-small.png")}m.hover(function(){l.find("img").attr("src",galaxy_paths.attributes.image_path+"/fugue/asterisk-small-yellow.png")},function(){if($.inArray(b.name,d.workflow_outputs)===-1){l.find("img").attr("src",galaxy_paths.attributes.image_path+"/fugue/asterisk-small-outline.png")}else{l.find("img").attr("src",galaxy_paths.attributes.image_path+"/fugue/asterisk-small.png")}})}m.css({position:"absolute",left:-1000,top:-1000,display:"none"});$("body").append(m);c=Math.max(c,m.outerWidth()+17);m.css({position:"",left:"",top:"",display:""});m.detach();a.append(m.append(j))});g.css("width",Math.min(250,Math.max(g.width(),c)));workflow.node_changed(this)},update_field_data:function(f){var c=$(this.element),d=this;this.tool_state=f.tool_state;this.form_html=f.form_html;this.tool_errors=f.tool_errors;this.annotation=f.annotation;var g=$.parseJSON(f.post_job_actions);this.post_job_actions=g?g:{};if(this.tool_errors){c.addClass("tool-node-error")}else{c.removeClass("tool-node-error")}var h=c.find("div.inputs");var b=$("<div class='inputs'></div>");var a=h.find("div.input-data-row");$.each(f.data_inputs,function(l,j){var k=$("<div class='terminal input-terminal'></div>");d.enable_input_terminal(k,j.name,j.extensions);h.find("div[name='"+j.name+"']").each(function(){$(this).find(".input-terminal").each(function(){var i=this.terminal.connectors[0];if(i){k[0].terminal.connectors[0]=i;i.handle2=k[0].terminal}});$(this).remove()});b.append($("<div class='form-row dataRow input-data-row' name='"+j.name+"'>"+j.label+"</div>").prepend(k))});h.replaceWith(b);h.find("div.input-data-row > .terminal").each(function(){this.terminal.destroy()});this.changed();this.redraw()},error:function(d){var a=$(this.element).find(".toolFormBody");a.find("div").remove();var c="<div style='color: red; text-style: italic;'>"+d+"</div>";this.form_html=c;a.html(c);workflow.node_changed(this)},changed:function(){workflow.node_changed(this)}});function Workflow(a){this.canvas_container=a;this.id_counter=0;this.nodes={};this.name=null;this.has_changes=false;this.active_form_has_changes=false}$.extend(Workflow.prototype,{add_node:function(a){a.id=this.id_counter;a.element.attr("id","wf-node-step-"+a.id);this.id_counter++;this.nodes[a.id]=a;this.has_changes=true;a.workflow=this},remove_node:function(a){if(this.active_node==a){this.clear_active_node()}delete this.nodes[a.id];this.has_changes=true},remove_all:function(){wf=this;$.each(this.nodes,function(b,a){a.destroy();wf.remove_node(a)})},rectify_workflow_outputs:function(){var b,a=false;$.each(this.nodes,function(c,d){if(d.workflow_outputs&&d.workflow_outputs.length>0){b=true}$.each(d.post_job_actions,function(g,f){if(f.action_type==="HideDatasetAction"){a=true}})});if(b!==false||a!==false){$.each(this.nodes,function(c,g){if(g.type==="tool"){var f=false;if(g.post_job_actions==null){g.post_job_actions={};f=true}var d=[];$.each(g.post_job_actions,function(i,h){if(h.action_type=="HideDatasetAction"){d.push(i)}});if(d.length>0&&g==workflow.active_node){$.each(d,function(h,j){f=true;delete g.post_job_actions[j]})}if(b){$.each(g.output_terminals,function(i,j){var h=true;$.each(g.workflow_outputs,function(l,m){if(j.name===m){h=false}});if(h===true){f=true;var k={action_type:"HideDatasetAction",output_name:j.name,action_arguments:{}};g.post_job_actions["HideDatasetAction"+j.name]=null;g.post_job_actions["HideDatasetAction"+j.name]=k}})}if(workflow.active_node==g&&f===true){workflow.reload_active_node()}}})}},to_simple:function(){var a={};$.each(this.nodes,function(c,f){var g={};$.each(f.input_terminals,function(h,i){g[i.name]=null;$.each(i.connectors,function(j,k){g[i.name]={id:k.handle1.node.id,output_name:k.handle1.name}})});var b={};if(f.post_job_actions){$.each(f.post_job_actions,function(j,h){var k={action_type:h.action_type,output_name:h.output_name,action_arguments:h.action_arguments};b[h.action_type+h.output_name]=null;b[h.action_type+h.output_name]=k})}if(!f.workflow_outputs){f.workflow_outputs=[]}var d={id:f.id,type:f.type,tool_id:f.tool_id,tool_state:f.tool_state,tool_errors:f.tool_errors,input_connections:g,position:$(f.element).position(),annotation:f.annotation,post_job_actions:f.post_job_actions,workflow_outputs:f.workflow_outputs};a[f.id]=d});return{steps:a}},from_simple:function(b){wf=this;var c=0;wf.name=b.name;var a=false;$.each(b.steps,function(g,f){var d=prebuild_node("tool",f.name,f.tool_id);d.init_field_data(f);if(f.position){d.element.css({top:f.position.top,left:f.position.left})}d.id=f.id;wf.nodes[d.id]=d;c=Math.max(c,parseInt(g));if(!a&&d.type==="tool"){if(d.workflow_outputs.length>0){a=true}else{$.each(d.post_job_actions,function(i,h){if(h.action_type==="HideDatasetAction"){a=true}})}}});wf.id_counter=c+1;$.each(b.steps,function(g,f){var d=wf.nodes[g];$.each(f.input_connections,function(i,h){if(h){var j=wf.nodes[h.id];var l=new Connector();l.connect(j.output_terminals[h.output_name],d.input_terminals[i]);l.redraw()}});if(a&&d.type==="tool"){$.each(d.output_terminals,function(h,i){if(d.post_job_actions["HideDatasetAction"+i.name]===undefined){d.workflow_outputs.push(i.name);callout=$(d.element).find(".callout."+i.name);callout.find("img").attr("src",galaxy_paths.attributes.image_path+"/fugue/asterisk-small.png");workflow.has_changes=true}})}})},check_changes_in_active_form:function(){if(this.active_form_has_changes){this.has_changes=true;$("#right-content").find("form").submit();this.active_form_has_changes=false}},reload_active_node:function(){if(this.active_node){var a=this.active_node;this.clear_active_node();this.activate_node(a)}},clear_active_node:function(){if(this.active_node){this.active_node.make_inactive();this.active_node=null}parent.show_form_for_tool("<div>No node selected</div>")},activate_node:function(a){if(this.active_node!=a){this.check_changes_in_active_form();this.clear_active_node();parent.show_form_for_tool(a.form_html+a.tooltip,a);a.make_active();this.active_node=a}},node_changed:function(a){this.has_changes=true;if(this.active_node==a){this.check_changes_in_active_form();parent.show_form_for_tool(a.form_html+a.tooltip,a)}},layout:function(){this.check_changes_in_active_form();this.has_changes=true;var i={};var b={};$.each(this.nodes,function(l,k){if(i[l]===undefined){i[l]=0}if(b[l]===undefined){b[l]=[]}});$.each(this.nodes,function(l,k){$.each(k.input_terminals,function(m,n){$.each(n.connectors,function(p,q){var o=q.handle1.node;i[k.id]+=1;b[o.id].push(k.id)})})});node_ids_by_level=[];while(true){level_parents=[];for(var a in i){if(i[a]==0){level_parents.push(a)}}if(level_parents.length==0){break}node_ids_by_level.push(level_parents);for(var f in level_parents){var j=level_parents[f];delete i[j];for(var g in b[j]){i[b[j][g]]-=1}}}if(i.length){return}var d=this.nodes;var h=80;v_pad=30;var c=h;$.each(node_ids_by_level,function(k,l){l.sort(function(p,o){return $(d[p].element).position().top-$(d[o].element).position().top});var m=0;var n=v_pad;$.each(l,function(o,r){var q=d[r];var p=$(q.element);$(p).css({top:n,left:c});m=Math.max(m,$(p).width());n+=$(p).height()+v_pad});c+=m+h});$.each(d,function(k,l){l.redraw()})},bounds_for_all_nodes:function(){var d=Infinity,b=-Infinity,c=Infinity,a=-Infinity,f;$.each(this.nodes,function(h,g){e=$(g.element);f=e.position();d=Math.min(d,f.left);b=Math.max(b,f.left+e.width());c=Math.min(c,f.top);a=Math.max(a,f.top+e.width())});return{xmin:d,xmax:b,ymin:c,ymax:a}},fit_canvas_to_nodes:function(){var a=this.bounds_for_all_nodes();var f=this.canvas_container.position();var i=this.canvas_container.parent();var d=fix_delta(a.xmin,100);var h=fix_delta(a.ymin,100);d=Math.max(d,f.left);h=Math.max(h,f.top);var c=f.left-d;var g=f.top-h;var b=round_up(a.xmax+100,100)+d;var j=round_up(a.ymax+100,100)+h;b=Math.max(b,-c+i.width());j=Math.max(j,-g+i.height());this.canvas_container.css({left:c,top:g,width:b,height:j});this.canvas_container.children().each(function(){var k=$(this).position();$(this).css("left",k.left+d);$(this).css("top",k.top+h)})}});function fix_delta(a,b){if(a<b||a>3*b){new_pos=(Math.ceil(((a%b))/b)+1)*b;return(-(a-new_pos))}return 0}function round_up(a,b){return Math.ceil(a/b)*b}function prebuild_node(l,j,r){var i=$("<div class='toolForm toolFormInCanvas'></div>");var g=new Node(i);g.type=l;if(l=="tool"){g.tool_id=r}var n=$("<div class='toolFormTitle unselectable'>"+j+"</div>");i.append(n);i.css("left",$(window).scrollLeft()+20);i.css("top",$(window).scrollTop()+20);var m=$("<div class='toolFormBody'></div>");var h="<div><img height='16' align='middle' src='"+galaxy_paths.attributes.image_path+"/loading_small_white_bg.gif'/> loading tool info...</div>";m.append(h);g.form_html=h;i.append(m);var k=$("<div class='buttons' style='float: right;'></div>");k.append($("<img/>").attr("src",galaxy_paths.attributes.image_path+"/delete_icon.png").click(function(b){g.destroy()}).hover(function(){$(this).attr("src",galaxy_paths.attributes.image_path+"/delete_icon_dark.png")},function(){$(this).attr("src",galaxy_paths.attributes.image_path+"/delete_icon.png")}));i.appendTo("#canvas-container");var d=$("#canvas-container").position();var c=$("#canvas-container").parent();var a=i.width();var q=i.height();i.css({left:(-d.left)+(c.width()/2)-(a/2),top:(-d.top)+(c.height()/2)-(q/2)});k.prependTo(n);a+=(k.width()+10);i.css("width",a);$(i).bind("dragstart",function(){workflow.activate_node(g)}).bind("dragend",function(){workflow.node_changed(this);workflow.fit_canvas_to_nodes();canvas_manager.draw_overview()}).bind("dragclickonly",function(){workflow.activate_node(g)}).bind("drag",function(o,p){var f=$(this).offsetParent().offset(),b=p.offsetX-f.left,s=p.offsetY-f.top;$(this).css({left:b,top:s});$(this).find(".terminal").each(function(){this.terminal.redraw()})});return g}var ext_to_type=null;var type_to_type=null;function issubtype(b,a){b=ext_to_type[b];a=ext_to_type[a];return(type_to_type[b])&&(a in type_to_type[b])}function populate_datatype_info(a){ext_to_type=a.ext_to_class_name;type_to_type=a.class_to_classes}function ScrollPanel(a){this.panel=a}$.extend(ScrollPanel.prototype,{test:function(v,d){clearTimeout(this.timeout);var k=v.pageX,j=v.pageY,l=$(this.panel),c=l.position(),b=l.width(),i=l.height(),w=l.parent(),s=w.width(),a=w.height(),r=w.offset(),p=r.left,m=r.top,A=p+w.width(),u=m+w.height(),B=-(b-(s/2)),z=-(i-(a/2)),g=(s/2),f=(a/2),h=false,q=5,o=23;if(k-q<p){if(c.left<g){var n=Math.min(o,g-c.left);l.css("left",c.left+n);h=true}}else{if(k+q>A){if(c.left>B){var n=Math.min(o,c.left-B);l.css("left",c.left-n);h=true}}else{if(j-q<m){if(c.top<f){var n=Math.min(o,f-c.top);l.css("top",c.top+n);h=true}}else{if(j+q>u){if(c.top>z){var n=Math.min(o,c.top-B);l.css("top",(c.top-n)+"px");h=true}}}}}if(h){d();var l=this;this.timeout=setTimeout(function(){l.test(v,d)},50)}},stop:function(b,a){clearTimeout(this.timeout)}});function CanvasManager(b,a){this.cv=b;this.cc=this.cv.find("#canvas-container");this.oc=a.find("#overview-canvas");this.ov=a.find("#overview-viewport");this.init_drag()}$.extend(CanvasManager.prototype,{init_drag:function(){var b=this;var a=function(f,g){f=Math.min(f,b.cv.width()/2);f=Math.max(f,-b.cc.width()+b.cv.width()/2);g=Math.min(g,b.cv.height()/2);g=Math.max(g,-b.cc.height()+b.cv.height()/2);b.cc.css({left:f,top:g});b.update_viewport_overlay()};this.cc.each(function(){this.scroll_panel=new ScrollPanel(this)});var d,c;this.cv.bind("dragstart",function(){var g=$(this).offset();var f=b.cc.position();c=f.top-g.top;d=f.left-g.left}).bind("drag",function(f,g){a(g.offsetX+d,g.offsetY+c)}).bind("dragend",function(){workflow.fit_canvas_to_nodes();b.draw_overview()});this.ov.bind("drag",function(k,l){var h=b.cc.width(),n=b.cc.height(),m=b.oc.width(),j=b.oc.height(),f=$(this).offsetParent().offset(),i=l.offsetX-f.left,g=l.offsetY-f.top;a(-(i/m*h),-(g/j*n))}).bind("dragend",function(){workflow.fit_canvas_to_nodes();b.draw_overview()});$("#overview-border").bind("drag",function(g,i){var j=$(this).offsetParent();var h=j.offset();var f=Math.max(j.width()-(i.offsetX-h.left),j.height()-(i.offsetY-h.top));$(this).css({width:f,height:f});b.draw_overview()});$("#overview-border div").bind("drag",function(){})},update_viewport_overlay:function(){var b=this.cc,f=this.cv,a=this.oc,c=this.ov,d=b.width(),j=b.height(),i=a.width(),g=a.height(),h=b.position();c.css({left:-(h.left/d*i),top:-(h.top/j*g),width:(f.width()/d*i)-2,height:(f.height()/j*g)-2})},draw_overview:function(){var j=$("#overview-canvas"),m=j.parent().parent().width(),i=j.get(0).getContext("2d"),d=$("#canvas-container").width(),l=$("#canvas-container").height();var g,a,k,f;var h=this.cv.width();var b=this.cv.height();if(d<h&&l<b){k=d/h*m;f=(m-k)/2;g=l/b*m;a=(m-g)/2}else{if(d<l){a=0;g=m;k=Math.ceil(g*d/l);f=(m-k)/2}else{k=m;f=0;g=Math.ceil(k*l/d);a=(m-g)/2}}j.parent().css({left:f,top:a,width:k,height:g});j.attr("width",k);j.attr("height",g);$.each(workflow.nodes,function(t,q){i.fillStyle="#D2C099";i.strokeStyle="#D8B365";i.lineWidth=1;var s=$(q.element),n=s.position(),c=n.left/d*k,r=n.top/l*g,o=s.width()/d*k,p=s.height()/l*g;if(q.tool_errors){i.fillStyle="#FFCCCC";i.strokeStyle="#AA6666"}else{if(q.workflow_outputs!=undefined&&q.workflow_outputs.length>0){i.fillStyle="#E8A92D";i.strokeStyle="#E8A92D"}}i.fillRect(c,r,o,p);i.strokeRect(c,r,o,p)});this.update_viewport_overlay()}});
\ No newline at end of file
diff -r 96bc3ef032671042f389696d510538f0f5f9b643 -r dc5ab5e987e483647148afde42f3f257a557c742 static/scripts/packed/mvc/ui.js
--- a/static/scripts/packed/mvc/ui.js
+++ b/static/scripts/packed/mvc/ui.js
@@ -1,1 +1,1 @@
-var create_icon_buttons_menu=function(b,a){if(!a){a={}}var c=new IconButtonCollection(_.map(b,function(d){return new IconButton(_.extend(d,a))}));return new IconButtonMenuView({collection:c})};var GalaxyPaths=Backbone.Model.extend({defaults:{root_path:"",image_path:""}});var IconButton=Backbone.Model.extend({defaults:{title:"",icon_class:"",on_click:null,tipsy_config:{}}});var IconButtonCollection=Backbone.Collection.extend({model:IconButton});var IconButtonMenuView=Backbone.View.extend({tagName:"div",initialize:function(){this.render()},render:function(){var a=this;this.collection.each(function(c){var b=$("<a/>").attr("href","javascript:void(0)").attr("title",c.attributes.title).addClass("icon-button menu-button").addClass(c.attributes.icon_class).appendTo(a.$el).click(c.attributes.on_click);if(c.attributes.tipsy_config){b.tipsy(c.attributes.tipsy_config)}});return this}});var Grid=Backbone.Collection.extend({});var GridView=Backbone.View.extend({});
\ No newline at end of file
+var create_icon_buttons_menu=function(b,a){if(!a){a={}}var c=new IconButtonCollection(_.map(b,function(d){return new IconButton(_.extend(d,a))}));return new IconButtonMenuView({collection:c})};var GalaxyPaths=Backbone.Model.extend({defaults:{root_path:"",image_path:""}});var IconButton=Backbone.Model.extend({defaults:{title:"",icon_class:"",on_click:null,tooltip_config:{}}});var IconButtonCollection=Backbone.Collection.extend({model:IconButton});var IconButtonMenuView=Backbone.View.extend({tagName:"div",initialize:function(){this.render()},render:function(){var a=this;this.collection.each(function(c){var b=$("<a/>").attr("href","javascript:void(0)").attr("title",c.attributes.title).addClass("icon-button menu-button").addClass(c.attributes.icon_class).appendTo(a.$el).click(c.attributes.on_click);if(c.attributes.tooltip_config){b.tooltip(c.attributes.tooltip_config)}});return this}});var Grid=Backbone.Collection.extend({});var GridView=Backbone.View.extend({});
\ No newline at end of file
diff -r 96bc3ef032671042f389696d510538f0f5f9b643 -r dc5ab5e987e483647148afde42f3f257a557c742 static/scripts/packed/viz/paramamonster.js
--- a/static/scripts/packed/viz/paramamonster.js
+++ b/static/scripts/packed/viz/paramamonster.js
@@ -1,1 +1,1 @@
-var ToolInputsSettings=Backbone.Model.extend({defaults:{inputs:null,values:null}});var ToolParameterTree=Backbone.RelationalModel.extend({defaults:{tool:null,tree_data:null},initialize:function(b){var a=this;this.get("tool").get("inputs").each(function(c){if(!c.get_samples()){return}c.on("change:min change:max change:num_samples",function(d){if(d.get("in_ptree")){a.set_tree_data()}},a);c.on("change:in_ptree",function(d){if(d.get("in_ptree")){a.add_param(d)}else{a.remove_param(d)}a.set_tree_data()},a)});if(b.config){_.each(b.config,function(d){var c=a.get("tool").get("inputs").find(function(e){return e.get("name")===d.name});a.add_param(c);c.set(d)})}},add_param:function(a){if(a.get("ptree_index")){return}a.set("in_ptree",true);a.set("ptree_index",this.get_tree_params().length)},remove_param:function(a){a.set("in_ptree",false);a.set("ptree_index",null);_(this.get_tree_params()).each(function(b,c){b.set("ptree_index",c+1)})},set_tree_data:function(){var b=_.map(this.get_tree_params(),function(d){return{param:d,samples:d.get_samples()}});var a=0,c=function(g,d){var i=g[d],h=i.param,f=h.get("label"),e=i.samples;if(g.length-1===d){return _.map(e,function(j){return{id:a++,name:j,param:h,value:j}})}return _.map(e,function(j){return{id:a++,name:j,param:h,value:j,children:c(g,d+1)}})};this.set("tree_data",{name:"Root",id:a++,children:(b.length!==0?c(b,0):null)})},get_tree_params:function(){return _(this.get("tool").get("inputs").where({in_ptree:true})).sortBy(function(a){return a.get("ptree_index")})},get_num_leaves:function(){return this.get_tree_params().reduce(function(a,b){return a*b.get_samples().length},1)},get_node_settings:function(e){var c=this.get("tool").get_inputs_dict();var f=e.parent;if(f){while(f.depth!==0){c[f.param.get("name")]=f.value;f=f.parent}}var a=this,b=function(h,g){if(h.param){g[h.param.get("name")]=h.value}if(!h.children){return new ToolInputsSettings({inputs:a.get("tool").get("inputs"),values:g})}else{return _.flatten(_.map(h.children,function(i){return b(i,_.clone(g))}))}},d=b(e,c);if(!_.isArray(d)){d=[d]}return d},get_connected_nodes:function(c){var d=function(e){if(!e.children){return e}else{return _.flatten([e,_.map(e.children,function(f){return d(f)})])}};var b=[],a=c.parent;while(a){b.push(a);a=a.parent}return _.flatten([b,d(c)])},get_leaf:function(b){var c=this.get("tree_data"),a=function(d){return _.find(d,function(e){return b[e.param.get("name")]===e.value})};while(c.children){c=a(c.children)}return c},toJSON:function(){return this.get_tree_params().map(function(a){return{name:a.get("name"),min:a.get("min"),max:a.get("max"),num_samples:a.get("num_samples")}})}});var ParamaMonsterTrack=Backbone.RelationalModel.extend({defaults:{track:null,mode:"Pack",settings:null,regions:null},relations:[{type:Backbone.HasMany,key:"regions",relatedModel:"GenomeRegion"}],initialize:function(a){if(a.track){var b=_.extend({data_url:galaxy_paths.get("raw_data_url"),converted_datasets_state_url:galaxy_paths.get("dataset_state_url")},a.track);this.set("track",object_from_template(b,{},null))}},same_settings:function(a){var b=this.get("settings"),c=a.get("settings");for(var d in b){if(!c[d]||b[d]!==c[d]){return false}}return true},toJSON:function(){return{track:this.get("track").to_dict(),settings:this.get("settings"),regions:this.get("regions")}}});var TrackCollection=Backbone.Collection.extend({model:ParamaMonsterTrack});var ParamaMonsterVisualization=Visualization.extend({defaults:_.extend({},Visualization.prototype.defaults,{dataset:null,tool:null,parameter_tree:null,regions:null,tracks:null,default_mode:"Pack"}),relations:[{type:Backbone.HasOne,key:"dataset",relatedModel:"Dataset"},{type:Backbone.HasOne,key:"tool",relatedModel:"Tool"},{type:Backbone.HasMany,key:"regions",relatedModel:"GenomeRegion"},{type:Backbone.HasMany,key:"tracks",relatedModel:"ParamaMonsterTrack"}],initialize:function(a){var b=this.get("tool").copy(true);this.set("tool_with_samplable_inputs",b);this.set("parameter_tree",new ToolParameterTree({tool:b,config:a.tree_config}))},add_track:function(a){this.get("tracks").add(a)},toJSON:function(){return{id:this.get("id"),title:"Parameter exploration for dataset '"+this.get("dataset").get("name")+"'",type:"paramamonster",dataset_id:this.get("dataset").id,tool_id:this.get("tool").id,regions:this.get("regions").toJSON(),tree_config:this.get("parameter_tree").toJSON(),tracks:this.get("tracks").toJSON()}}});var ParamaMonsterTrackView=Backbone.View.extend({tagName:"tr",TILE_LEN:250,initialize:function(a){this.canvas_manager=a.canvas_manager;this.render();this.model.on("change:track change:mode",this.draw_tiles,this)},render:function(){var f=this.model.get("settings"),b=f.get("values"),d=$("<td/>").addClass("settings").appendTo(this.$el),c=$("<div/>").addClass("track-info").hide().appendTo(d);c.append($("<div/>").css("font-weight","bold").text("Track Settings"));f.get("inputs").each(function(h){c.append(h.get("label")+": "+b[h.get("name")]+"<br/>")});var a=this,g=$("<button/>").appendTo(c).text("Run on complete dataset").click(function(){c.toggle();a.trigger("run_on_dataset",f)});var e=create_icon_buttons_menu([{title:"Settings",icon_class:"gear track-settings",on_click:function(){c.toggle()},tipsy_config:{gravity:"s"}},{title:"Remove",icon_class:"cross-circle",on_click:function(){a.$el.remove();$(".tipsy").remove()}}]);d.prepend(e.$el);this.model.get("regions").each(function(){a.$el.append($("<td/>").addClass("tile").html($("<img/>").attr("src",galaxy_paths.get("image_path")+"/loading_large_white_bg.gif")))});if(this.model.get("track")){this.draw_tiles()}},draw_tiles:function(){var b=this,a=this.model.get("track"),d=this.model.get("regions"),c=this.$el.find("td.tile");if(!a){return}$.when(a.data_manager.data_is_ready()).then(function(e){d.each(function(h,g){var f=h.length()/b.TILE_LEN,j=1/f,i=b.model.get("mode");$.when(a.data_manager.get_data(h,i,f,{})).then(function(l){var k=b.canvas_manager.new_canvas();k.width=b.TILE_LEN;k.height=a.get_canvas_height(l,i,j,k.width);a.draw_tile(l,k.getContext("2d"),i,f,h,j);$(c[g]).empty().append(k)})})})}});var ToolInputValOrSweepView=Backbone.View.extend({number_input_template:'<div class="form-row-input sweep"><input class="min" type="text" size="6" value="<%= min %>"> - <input class="max" type="text" size="6" value="<%= max %>"> samples: <input class="num_samples" type="text" size="1" value="<%= num_samples %>"></div>',select_input_template:'<div class="form-row-input sweep"><%= options %></div>',initialize:function(a){this.$el=a.tool_row;this.render()},render:function(){var b=this.model,f=b.get("type"),h=this.$el.find(".form-row-input"),d=null;h.find(":input").change(function(){b.set("value",$(this).val())});if(f==="number"){d=$(_.template(this.number_input_template,this.model.toJSON()))}else{if(f==="select"){var c=_.map(this.$el.find("select option"),function(i){return $(i).val()}),e=c.join(", ");d=$(_.template(this.select_input_template,{options:e}))}}d.insertAfter(h);var a=this,g=create_icon_buttons_menu([{title:"Add parameter to tree",icon_class:"plus-button",on_click:function(){b.set("in_ptree",true);h.hide();d.show();$(this).hide();a.$el.find(".icon-button.toggle").show()}},{title:"Remove parameter from tree",icon_class:"toggle",on_click:function(){b.set("in_ptree",false);d.hide();h.show();$(this).hide();a.$el.find(".icon-button.plus-button").show()}}],{tipsy_config:{gravity:"s"}});this.$el.prepend(g.$el);if(b.get("in_ptree")){h.hide();a.$el.find(".icon-button.plus-button").hide()}else{a.$el.find(".icon-button.toggle").hide();d.hide()}_.each(["min","max","num_samples"],function(i){d.find("."+i).change(function(){b.set(i,parseFloat($(this).val()))})})}});var ToolParameterTreeDesignView=Backbone.View.extend({className:"tree-design",initialize:function(a){this.render()},render:function(){var c=new ToolFormView({model:this.model.get("tool")});c.render();this.$el.append(c.$el);var b=this,a=b.model.get("tool").get("inputs");this.$el.find(".form-row").not(".form-actions").each(function(d){var e=new ToolInputValOrSweepView({model:a.at(d),tool_row:$(this)})})}});var ToolParameterTreeView=Backbone.View.extend({className:"tool-parameter-tree",initialize:function(a){this.model.on("change:tree_data",this.render,this)},render:function(){this.$el.children().remove();var i=this.model.get_tree_params();if(!i.length){return}this.width=100*(2+i.length);this.height=15*this.model.get_num_leaves();var h=this;var g=d3.layout.cluster().size([this.height,this.width-160]);var c=d3.svg.diagonal().projection(function(j){return[j.y,j.x]});var a=g.nodes(this.model.get("tree_data"));var d=_.uniq(_.pluck(a,"y"));_.each(i,function(l,k){var j=d[k+1],m=$("#center").position().left;h.$el.append($("<div>").addClass("label").text(l.get("label")).css("left",j+m))});var b=d3.select(this.$el[0]).append("svg").attr("width",this.width).attr("height",this.height+30).append("g").attr("transform","translate(40, 20)");var f=b.selectAll("path.link").data(g.links(a)).enter().append("path").attr("class","link").attr("d",c);var e=b.selectAll("g.node").data(a).enter().append("g").attr("class","node").attr("transform",function(j){return"translate("+j.y+","+j.x+")"}).on("mouseover",function(k){var j=_.pluck(h.model.get_connected_nodes(k),"id");e.filter(function(l){return _.find(j,function(m){return m===l.id})!==undefined}).style("fill","#f00")}).on("mouseout",function(){e.style("fill","#000")});e.append("circle").attr("r",9);e.append("text").attr("dx",function(j){return j.children?-12:12}).attr("dy",3).attr("text-anchor",function(j){return j.children?"end":"start"}).text(function(j){return j.name})}});var ParamaMonsterVisualizationView=Backbone.View.extend({className:"paramamonster",helpText:"<div><h4>Getting Started</h4><ol><li>Create a parameter tree by using the icons next to the tool's parameter names to add or remove parameters.<li>Adjust the tree by using parameter inputs to select min, max, and number of samples<li>Run the tool with different settings by clicking on tree nodes</ol></div>",initialize:function(b){this.canvas_manager=new CanvasManager(this.$el.parents("body"));this.tool_param_tree_view=new ToolParameterTreeView({model:this.model.get("parameter_tree")});this.track_collection_container=$("<table/>").addClass("tracks");this.model.get("parameter_tree").on("change:tree_data",this.handle_node_clicks,this);var a=this;this.model.get("tracks").each(function(c){c.get("track").view=a});this.block_color=get_random_color();this.reverse_strand_color=get_random_color([this.block_color,"#ffffff"])},render:function(){var g=new ToolParameterTreeDesignView({model:this.model.get("parameter_tree")});$("#left").append(g.$el);var j=this,d=j.model.get("regions"),h=$("<tr/>").appendTo(this.track_collection_container);d.each(function(k){h.append($("<th>").text(k.toString()))});h.children().first().attr("colspan",2);var e=$("<div>").addClass("tiles");$("#right").append(e.append(this.track_collection_container));j.model.get("tracks").each(function(k){j.add_track(k)});var i=$(this.helpText).addClass("help"),f=create_icon_buttons_menu([{title:"Close",icon_class:"cross-circle",on_click:function(){$(".tipsy").remove();i.remove()},tipsy_config:{gravity:"s"}}]);i.prepend(f.$el.css("float","right"));$("#center").append(i);this.tool_param_tree_view.render();$("#center").append(this.tool_param_tree_view.$el);this.handle_node_clicks();var c=create_icon_buttons_menu([{icon_class:"chevron-expand",title:"Set display mode"},{icon_class:"cross-circle",title:"Close",on_click:function(){window.location="${h.url_for( controller='visualization', action='list' )}"}}],{tipsy_config:{gravity:"n"}});var b=["Squish","Pack"],a={};_.each(b,function(k){a[k]=function(){j.model.set("default_mode",k);j.model.get("tracks").each(function(l){l.set("mode",k)})}});make_popupmenu(c.$el.find(".chevron-expand"),a);c.$el.attr("style","float: right");$("#right .unified-panel-header-inner").append(c.$el)},run_tool_on_dataset:function(b){var a=this.model.get("tool"),d=a.get("name"),c=this.model.get("dataset");a.set_input_values(b.get("values"));$.when(a.rerun(c)).then(function(e){});show_modal("Running "+d+" on complete dataset",d+" is running on dataset '"+c.get("name")+"'. Outputs are in the dataset's history.",{Ok:function(){hide_modal()}})},add_track:function(d){var b=this,c=this.model.get("parameter_tree");b.model.add_track(d);var a=new ParamaMonsterTrackView({model:d,canvas_manager:b.canvas_manager});a.on("run_on_dataset",b.run_tool_on_dataset,b);b.track_collection_container.append(a.$el);a.$el.hover(function(){var f=c.get_leaf(d.get("settings").get("values"));var e=_.pluck(c.get_connected_nodes(f),"id");d3.select(b.tool_param_tree_view.$el[0]).selectAll("g.node").filter(function(g){return _.find(e,function(h){return h===g.id})!==undefined}).style("fill","#f00")},function(){d3.select(b.tool_param_tree_view.$el[0]).selectAll("g.node").style("fill","#000")});return d},handle_node_clicks:function(){var a=this,b=this.model.get("parameter_tree"),d=this.model.get("regions"),c=d3.select(this.tool_param_tree_view.$el[0]).selectAll("g.node");c.on("click",function(k,g){var f=a.model.get("tool"),j=a.model.get("dataset"),h=b.get_node_settings(k),e=$.Deferred();if(h.length>=10){show_modal("Whoa there cowboy!","You clicked on a node to try "+a.model.get("tool").get("name")+" with "+h.length+" different combinations of settings. You can only run 10 jobs at a time.",{Ok:function(){hide_modal();e.resolve(false)}})}else{e.resolve(true)}$.when(e).then(function(i){if(!i){return}var l=_.map(h,function(m){var n=new ParamaMonsterTrack({settings:m,regions:d,mode:a.model.get("default_mode")});a.add_track(n);return n});_.each(l,function(n,m){setTimeout(function(){f.set_input_values(n.get("settings").get("values"));$.when(f.rerun(j,d)).then(function(p){var q=_.extend({data_url:galaxy_paths.get("raw_data_url"),converted_datasets_state_url:galaxy_paths.get("dataset_state_url")},p.first().get("track_config")),o=object_from_template(q,a,null);o.prefs.block_color=a.block_color;o.prefs.reverse_strand_color=a.reverse_strand_color;n.set("track",o)})},m*10000)})})})}});
\ No newline at end of file
+var ToolInputsSettings=Backbone.Model.extend({defaults:{inputs:null,values:null}});var ToolParameterTree=Backbone.RelationalModel.extend({defaults:{tool:null,tree_data:null},initialize:function(b){var a=this;this.get("tool").get("inputs").each(function(c){if(!c.get_samples()){return}c.on("change:min change:max change:num_samples",function(d){if(d.get("in_ptree")){a.set_tree_data()}},a);c.on("change:in_ptree",function(d){if(d.get("in_ptree")){a.add_param(d)}else{a.remove_param(d)}a.set_tree_data()},a)});if(b.config){_.each(b.config,function(d){var c=a.get("tool").get("inputs").find(function(e){return e.get("name")===d.name});a.add_param(c);c.set(d)})}},add_param:function(a){if(a.get("ptree_index")){return}a.set("in_ptree",true);a.set("ptree_index",this.get_tree_params().length)},remove_param:function(a){a.set("in_ptree",false);a.set("ptree_index",null);_(this.get_tree_params()).each(function(b,c){b.set("ptree_index",c+1)})},set_tree_data:function(){var b=_.map(this.get_tree_params(),function(d){return{param:d,samples:d.get_samples()}});var a=0,c=function(g,d){var i=g[d],h=i.param,f=h.get("label"),e=i.samples;if(g.length-1===d){return _.map(e,function(j){return{id:a++,name:j,param:h,value:j}})}return _.map(e,function(j){return{id:a++,name:j,param:h,value:j,children:c(g,d+1)}})};this.set("tree_data",{name:"Root",id:a++,children:(b.length!==0?c(b,0):null)})},get_tree_params:function(){return _(this.get("tool").get("inputs").where({in_ptree:true})).sortBy(function(a){return a.get("ptree_index")})},get_num_leaves:function(){return this.get_tree_params().reduce(function(a,b){return a*b.get_samples().length},1)},get_node_settings:function(e){var c=this.get("tool").get_inputs_dict();var f=e.parent;if(f){while(f.depth!==0){c[f.param.get("name")]=f.value;f=f.parent}}var a=this,b=function(h,g){if(h.param){g[h.param.get("name")]=h.value}if(!h.children){return new ToolInputsSettings({inputs:a.get("tool").get("inputs"),values:g})}else{return _.flatten(_.map(h.children,function(i){return b(i,_.clone(g))}))}},d=b(e,c);if(!_.isArray(d)){d=[d]}return d},get_connected_nodes:function(c){var d=function(e){if(!e.children){return e}else{return _.flatten([e,_.map(e.children,function(f){return d(f)})])}};var b=[],a=c.parent;while(a){b.push(a);a=a.parent}return _.flatten([b,d(c)])},get_leaf:function(b){var c=this.get("tree_data"),a=function(d){return _.find(d,function(e){return b[e.param.get("name")]===e.value})};while(c.children){c=a(c.children)}return c},toJSON:function(){return this.get_tree_params().map(function(a){return{name:a.get("name"),min:a.get("min"),max:a.get("max"),num_samples:a.get("num_samples")}})}});var ParamaMonsterTrack=Backbone.RelationalModel.extend({defaults:{track:null,mode:"Pack",settings:null,regions:null},relations:[{type:Backbone.HasMany,key:"regions",relatedModel:"GenomeRegion"}],initialize:function(a){if(a.track){var b=_.extend({data_url:galaxy_paths.get("raw_data_url"),converted_datasets_state_url:galaxy_paths.get("dataset_state_url")},a.track);this.set("track",object_from_template(b,{},null))}},same_settings:function(a){var b=this.get("settings"),c=a.get("settings");for(var d in b){if(!c[d]||b[d]!==c[d]){return false}}return true},toJSON:function(){return{track:this.get("track").to_dict(),settings:this.get("settings"),regions:this.get("regions")}}});var TrackCollection=Backbone.Collection.extend({model:ParamaMonsterTrack});var ParamaMonsterVisualization=Visualization.extend({defaults:_.extend({},Visualization.prototype.defaults,{dataset:null,tool:null,parameter_tree:null,regions:null,tracks:null,default_mode:"Pack"}),relations:[{type:Backbone.HasOne,key:"dataset",relatedModel:"Dataset"},{type:Backbone.HasOne,key:"tool",relatedModel:"Tool"},{type:Backbone.HasMany,key:"regions",relatedModel:"GenomeRegion"},{type:Backbone.HasMany,key:"tracks",relatedModel:"ParamaMonsterTrack"}],initialize:function(a){var b=this.get("tool").copy(true);this.set("tool_with_samplable_inputs",b);this.set("parameter_tree",new ToolParameterTree({tool:b,config:a.tree_config}))},add_track:function(a){this.get("tracks").add(a)},toJSON:function(){return{id:this.get("id"),title:"Parameter exploration for dataset '"+this.get("dataset").get("name")+"'",type:"paramamonster",dataset_id:this.get("dataset").id,tool_id:this.get("tool").id,regions:this.get("regions").toJSON(),tree_config:this.get("parameter_tree").toJSON(),tracks:this.get("tracks").toJSON()}}});var ParamaMonsterTrackView=Backbone.View.extend({tagName:"tr",TILE_LEN:250,initialize:function(a){this.canvas_manager=a.canvas_manager;this.render();this.model.on("change:track change:mode",this.draw_tiles,this)},render:function(){var f=this.model.get("settings"),b=f.get("values"),d=$("<td/>").addClass("settings").appendTo(this.$el),c=$("<div/>").addClass("track-info").hide().appendTo(d);c.append($("<div/>").css("font-weight","bold").text("Track Settings"));f.get("inputs").each(function(h){c.append(h.get("label")+": "+b[h.get("name")]+"<br/>")});var a=this,g=$("<button/>").appendTo(c).text("Run on complete dataset").click(function(){c.toggle();a.trigger("run_on_dataset",f)});var e=create_icon_buttons_menu([{title:"Settings",icon_class:"gear track-settings",on_click:function(){c.toggle()}},{title:"Remove",icon_class:"cross-circle",on_click:function(){a.$el.remove();$(".tooltip").remove()}}]);d.prepend(e.$el);this.model.get("regions").each(function(){a.$el.append($("<td/>").addClass("tile").html($("<img/>").attr("src",galaxy_paths.get("image_path")+"/loading_large_white_bg.gif")))});if(this.model.get("track")){this.draw_tiles()}},draw_tiles:function(){var b=this,a=this.model.get("track"),d=this.model.get("regions"),c=this.$el.find("td.tile");if(!a){return}$.when(a.data_manager.data_is_ready()).then(function(e){d.each(function(h,g){var f=h.length()/b.TILE_LEN,j=1/f,i=b.model.get("mode");$.when(a.data_manager.get_data(h,i,f,{})).then(function(l){var k=b.canvas_manager.new_canvas();k.width=b.TILE_LEN;k.height=a.get_canvas_height(l,i,j,k.width);a.draw_tile(l,k.getContext("2d"),i,f,h,j);$(c[g]).empty().append(k)})})})}});var ToolInputValOrSweepView=Backbone.View.extend({number_input_template:'<div class="form-row-input sweep"><input class="min" type="text" size="6" value="<%= min %>"> - <input class="max" type="text" size="6" value="<%= max %>"> samples: <input class="num_samples" type="text" size="1" value="<%= num_samples %>"></div>',select_input_template:'<div class="form-row-input sweep"><%= options %></div>',initialize:function(a){this.$el=a.tool_row;this.render()},render:function(){var b=this.model,f=b.get("type"),h=this.$el.find(".form-row-input"),d=null;h.find(":input").change(function(){b.set("value",$(this).val())});if(f==="number"){d=$(_.template(this.number_input_template,this.model.toJSON()))}else{if(f==="select"){var c=_.map(this.$el.find("select option"),function(i){return $(i).val()}),e=c.join(", ");d=$(_.template(this.select_input_template,{options:e}))}}d.insertAfter(h);var a=this,g=create_icon_buttons_menu([{title:"Add parameter to tree",icon_class:"plus-button",on_click:function(){b.set("in_ptree",true);h.hide();d.show();$(this).hide();a.$el.find(".icon-button.toggle").show()}},{title:"Remove parameter from tree",icon_class:"toggle",on_click:function(){b.set("in_ptree",false);d.hide();h.show();$(this).hide();a.$el.find(".icon-button.plus-button").show()}}],{});this.$el.prepend(g.$el);if(b.get("in_ptree")){h.hide();a.$el.find(".icon-button.plus-button").hide()}else{a.$el.find(".icon-button.toggle").hide();d.hide()}_.each(["min","max","num_samples"],function(i){d.find("."+i).change(function(){b.set(i,parseFloat($(this).val()))})})}});var ToolParameterTreeDesignView=Backbone.View.extend({className:"tree-design",initialize:function(a){this.render()},render:function(){var c=new ToolFormView({model:this.model.get("tool")});c.render();this.$el.append(c.$el);var b=this,a=b.model.get("tool").get("inputs");this.$el.find(".form-row").not(".form-actions").each(function(d){var e=new ToolInputValOrSweepView({model:a.at(d),tool_row:$(this)})})}});var ToolParameterTreeView=Backbone.View.extend({className:"tool-parameter-tree",initialize:function(a){this.model.on("change:tree_data",this.render,this)},render:function(){this.$el.children().remove();var i=this.model.get_tree_params();if(!i.length){return}this.width=100*(2+i.length);this.height=15*this.model.get_num_leaves();var h=this;var g=d3.layout.cluster().size([this.height,this.width-160]);var c=d3.svg.diagonal().projection(function(j){return[j.y,j.x]});var a=g.nodes(this.model.get("tree_data"));var d=_.uniq(_.pluck(a,"y"));_.each(i,function(l,k){var j=d[k+1],m=$("#center").position().left;h.$el.append($("<div>").addClass("label").text(l.get("label")).css("left",j+m))});var b=d3.select(this.$el[0]).append("svg").attr("width",this.width).attr("height",this.height+30).append("g").attr("transform","translate(40, 20)");var f=b.selectAll("path.link").data(g.links(a)).enter().append("path").attr("class","link").attr("d",c);var e=b.selectAll("g.node").data(a).enter().append("g").attr("class","node").attr("transform",function(j){return"translate("+j.y+","+j.x+")"}).on("mouseover",function(k){var j=_.pluck(h.model.get_connected_nodes(k),"id");e.filter(function(l){return _.find(j,function(m){return m===l.id})!==undefined}).style("fill","#f00")}).on("mouseout",function(){e.style("fill","#000")});e.append("circle").attr("r",9);e.append("text").attr("dx",function(j){return j.children?-12:12}).attr("dy",3).attr("text-anchor",function(j){return j.children?"end":"start"}).text(function(j){return j.name})}});var ParamaMonsterVisualizationView=Backbone.View.extend({className:"paramamonster",helpText:"<div><h4>Getting Started</h4><ol><li>Create a parameter tree by using the icons next to the tool's parameter names to add or remove parameters.<li>Adjust the tree by using parameter inputs to select min, max, and number of samples<li>Run the tool with different settings by clicking on tree nodes</ol></div>",initialize:function(b){this.canvas_manager=new CanvasManager(this.$el.parents("body"));this.tool_param_tree_view=new ToolParameterTreeView({model:this.model.get("parameter_tree")});this.track_collection_container=$("<table/>").addClass("tracks");this.model.get("parameter_tree").on("change:tree_data",this.handle_node_clicks,this);var a=this;this.model.get("tracks").each(function(c){c.get("track").view=a});this.block_color=get_random_color();this.reverse_strand_color=get_random_color([this.block_color,"#ffffff"])},render:function(){var g=new ToolParameterTreeDesignView({model:this.model.get("parameter_tree")});$("#left").append(g.$el);var j=this,d=j.model.get("regions"),h=$("<tr/>").appendTo(this.track_collection_container);d.each(function(k){h.append($("<th>").text(k.toString()))});h.children().first().attr("colspan",2);var e=$("<div>").addClass("tiles");$("#right").append(e.append(this.track_collection_container));j.model.get("tracks").each(function(k){j.add_track(k)});var i=$(this.helpText).addClass("help"),f=create_icon_buttons_menu([{title:"Close",icon_class:"cross-circle",on_click:function(){$(".tooltip").remove();i.remove()}}]);i.prepend(f.$el.css("float","right"));$("#center").append(i);this.tool_param_tree_view.render();$("#center").append(this.tool_param_tree_view.$el);this.handle_node_clicks();var c=create_icon_buttons_menu([{icon_class:"chevron-expand",title:"Set display mode"},{icon_class:"cross-circle",title:"Close",on_click:function(){window.location="${h.url_for( controller='visualization', action='list' )}"}}],{tooltip_config:{placement:"bottom"}});var b=["Squish","Pack"],a={};_.each(b,function(k){a[k]=function(){j.model.set("default_mode",k);j.model.get("tracks").each(function(l){l.set("mode",k)})}});make_popupmenu(c.$el.find(".chevron-expand"),a);c.$el.attr("style","float: right");$("#right .unified-panel-header-inner").append(c.$el)},run_tool_on_dataset:function(b){var a=this.model.get("tool"),d=a.get("name"),c=this.model.get("dataset");a.set_input_values(b.get("values"));$.when(a.rerun(c)).then(function(e){});show_modal("Running "+d+" on complete dataset",d+" is running on dataset '"+c.get("name")+"'. Outputs are in the dataset's history.",{Ok:function(){hide_modal()}})},add_track:function(d){var b=this,c=this.model.get("parameter_tree");b.model.add_track(d);var a=new ParamaMonsterTrackView({model:d,canvas_manager:b.canvas_manager});a.on("run_on_dataset",b.run_tool_on_dataset,b);b.track_collection_container.append(a.$el);a.$el.hover(function(){var f=c.get_leaf(d.get("settings").get("values"));var e=_.pluck(c.get_connected_nodes(f),"id");d3.select(b.tool_param_tree_view.$el[0]).selectAll("g.node").filter(function(g){return _.find(e,function(h){return h===g.id})!==undefined}).style("fill","#f00")},function(){d3.select(b.tool_param_tree_view.$el[0]).selectAll("g.node").style("fill","#000")});return d},handle_node_clicks:function(){var a=this,b=this.model.get("parameter_tree"),d=this.model.get("regions"),c=d3.select(this.tool_param_tree_view.$el[0]).selectAll("g.node");c.on("click",function(k,g){var f=a.model.get("tool"),j=a.model.get("dataset"),h=b.get_node_settings(k),e=$.Deferred();if(h.length>=10){show_modal("Whoa there cowboy!","You clicked on a node to try "+a.model.get("tool").get("name")+" with "+h.length+" different combinations of settings. You can only run 10 jobs at a time.",{Ok:function(){hide_modal();e.resolve(false)}})}else{e.resolve(true)}$.when(e).then(function(i){if(!i){return}var l=_.map(h,function(m){var n=new ParamaMonsterTrack({settings:m,regions:d,mode:a.model.get("default_mode")});a.add_track(n);return n});_.each(l,function(n,m){setTimeout(function(){f.set_input_values(n.get("settings").get("values"));$.when(f.rerun(j,d)).then(function(p){var q=_.extend({data_url:galaxy_paths.get("raw_data_url"),converted_datasets_state_url:galaxy_paths.get("dataset_state_url")},p.first().get("track_config")),o=object_from_template(q,a,null);o.prefs.block_color=a.block_color;o.prefs.reverse_strand_color=a.reverse_strand_color;n.set("track",o)})},m*10000)})})})}});
\ No newline at end of file
diff -r 96bc3ef032671042f389696d510538f0f5f9b643 -r dc5ab5e987e483647148afde42f3f257a557c742 static/scripts/packed/viz/trackster.js
--- a/static/scripts/packed/viz/trackster.js
+++ b/static/scripts/packed/viz/trackster.js
@@ -1,1 +1,1 @@
-var class_module=function(b,a){var c=function(){var g=arguments[0];for(var f=1;f<arguments.length;f++){var d=arguments[f];for(var e in d){g[e]=d[e]}}return g};a.extend=c};var requestAnimationFrame=(function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(b,a){window.setTimeout(b,1000/60)}})();var BEFORE=1001,CONTAINS=1002,OVERLAP_START=1003,OVERLAP_END=1004,CONTAINED_BY=1005,AFTER=1006;var compute_overlap=function(e,b){var g=e[0],f=e[1],d=b[0],c=b[1],a;if(g<d){if(f<d){a=BEFORE}else{if(f<=c){a=OVERLAP_START}else{a=CONTAINS}}}else{if(g>c){a=AFTER}else{if(f<=c){a=CONTAINED_BY}else{a=OVERLAP_END}}}return a};var is_overlap=function(c,b){var a=compute_overlap(c,b);return(a!==BEFORE&&a!==AFTER)};var is_deferred=function(a){return("isResolved" in a)};var get_random_color=function(a){if(!a){a="#ffffff"}if(typeof(a)==="string"){a=[a]}for(var j=0;j<a.length;j++){a[j]=parseInt(a[j].slice(1),16)}var n=function(t,s,i){return((t*299)+(s*587)+(i*114))/1000};var e=function(v,u,w,s,i,t){return(Math.max(v,s)-Math.min(v,s))+(Math.max(u,i)-Math.min(u,i))+(Math.max(w,t)-Math.min(w,t))};var g,o,f,k,q,h,r,c,d,b,p,m=false,l=0;do{g=Math.round(Math.random()*16777215);o=(g&16711680)>>16;f=(g&65280)>>8;k=g&255;d=n(o,f,k);m=true;for(j=0;j<a.length;j++){q=a[j];h=(q&16711680)>>16;r=(q&65280)>>8;c=q&255;b=n(h,r,c);p=e(o,f,k,h,r,c);if((Math.abs(d-b)<40)||(p<200)){m=false;break}}l++}while(!m&&l<=10);return"#"+(16777216+g).toString(16).substr(1,6)};var create_action_icon=function(c,b,a){return $("<a/>").attr("href","javascript:void(0);").attr("title",c).addClass("icon-button").addClass(b).tipsy({gravity:"s"}).click(a)};var trackster_module=function(d,R){var o=d("class").extend,r=d("slotting"),H=d("painters");var m={};var k=function(Y,Z){m[Y.attr("id")]=Z};var l=function(Y,aa,ac,ab){ac=".group";var Z={};m[Y.attr("id")]=ab;Y.bind("drag",{handle:"."+aa,relative:true},function(ak,al){var aj=$(this),ao=$(this).parent(),ag=ao.children(),ai=m[$(this).attr("id")],af,ae,am,ad,ah;ae=$(this).parents(ac);if(ae.length!==0){am=ae.position().top;ad=am+ae.outerHeight();if(al.offsetY<am){$(this).insertBefore(ae);var an=m[ae.attr("id")];an.remove_drawable(ai);an.container.add_drawable_before(ai,an);return}else{if(al.offsetY>ad){$(this).insertAfter(ae);var an=m[ae.attr("id")];an.remove_drawable(ai);an.container.add_drawable(ai);return}}}ae=null;for(ah=0;ah<ag.length;ah++){af=$(ag.get(ah));am=af.position().top;ad=am+af.outerHeight();if(af.is(ac)&&this!==af.get(0)&&al.offsetY>=am&&al.offsetY<=ad){if(al.offsetY-am<ad-al.offsetY){af.find(".content-div").prepend(this)}else{af.find(".content-div").append(this)}if(ai.container){ai.container.remove_drawable(ai)}m[af.attr("id")].add_drawable(ai);return}}for(ah=0;ah<ag.length;ah++){af=$(ag.get(ah));if(al.offsetY<af.position().top&&!(af.hasClass("reference-track")||af.hasClass("intro"))){break}}if(ah===ag.length){if(this!==ag.get(ah-1)){ao.append(this);m[ao.attr("id")].move_drawable(ai,ah)}}else{if(this!==ag.get(ah)){$(this).insertBefore(ag.get(ah));m[ao.attr("id")].move_drawable(ai,(al.deltaY>0?ah-1:ah))}}}).bind("dragstart",function(){Z["border-top"]=Y.css("border-top");Z["border-bottom"]=Y.css("border-bottom");$(this).css({"border-top":"1px solid blue","border-bottom":"1px solid blue"})}).bind("dragend",function(){$(this).css(Z)})};R.moveable=l;var X=16,C=9,z=20,w=100,E=12000,O=400,G=5000,t=100,n="There was an error in indexing this dataset. ",F="A converter for this dataset is not installed. Please check your datatypes_conf.xml file.",A="No data for this chrom/contig.",s="Preparing data. This can take a while for a large dataset. If the visualization is saved and closed, preparation will continue in the background.",u="Tool cannot be rerun: ",a="Loading data...",S="Ready for display",M=10,D=20;function T(Z,Y){if(!Y){Y=0}var aa=Math.pow(10,Y);return Math.round(Z*aa)/aa}var p=function(Z,Y,ab){if(!p.id_counter){p.id_counter=0}this.id=p.id_counter++;this.name=ab.name;this.view=Z;this.container=Y;this.config=new B({track:this,params:[{key:"name",label:"Name",type:"text",default_value:this.name}],saved_values:ab.prefs,onchange:function(){this.track.set_name(this.track.config.values.name)}});this.prefs=this.config.values;this.drag_handle_class=ab.drag_handle_class;this.is_overview=false;this.action_icons={};this.content_visible=true;this.container_div=this.build_container_div();this.header_div=this.build_header_div();if(this.header_div){this.container_div.append(this.header_div);this.icons_div=$("<div/>").css("float","left").hide().appendTo(this.header_div);this.build_action_icons(this.action_icons_def);this.header_div.append($("<div style='clear: both'/>"));this.header_div.dblclick(function(ac){ac.stopPropagation()});var aa=this;this.container_div.hover(function(){aa.icons_div.show()},function(){aa.icons_div.hide()});$("<div style='clear: both'/>").appendTo(this.container_div)}};p.prototype.action_icons_def=[{name:"toggle_icon",title:"Hide/show content",css_class:"toggle",on_click_fn:function(Y){if(Y.content_visible){Y.action_icons.toggle_icon.addClass("toggle-expand").removeClass("toggle");Y.hide_contents();Y.content_visible=false}else{Y.action_icons.toggle_icon.addClass("toggle").removeClass("toggle-expand");Y.content_visible=true;Y.show_contents()}}},{name:"settings_icon",title:"Edit settings",css_class:"settings-icon",on_click_fn:function(Z){var ab=function(){hide_modal();$(window).unbind("keypress.check_enter_esc")},Y=function(){Z.config.update_from_form($(".dialog-box"));hide_modal();$(window).unbind("keypress.check_enter_esc")},aa=function(ac){if((ac.keyCode||ac.which)===27){ab()}else{if((ac.keyCode||ac.which)===13){Y()}}};$(window).bind("keypress.check_enter_esc",aa);show_modal("Configure",Z.config.build_form(),{Cancel:ab,OK:Y})}},{name:"remove_icon",title:"Remove",css_class:"remove-icon",on_click_fn:function(Y){$(".tipsy").remove();Y.remove()}}];o(p.prototype,{init:function(){},changed:function(){this.view.changed()},can_draw:function(){if(this.enabled&&this.content_visible){return true}return false},request_draw:function(){},_draw:function(){},to_dict:function(){},set_name:function(Y){this.old_name=this.name;this.name=Y;this.name_div.text(this.name)},revert_name:function(){if(this.old_name){this.name=this.old_name;this.name_div.text(this.name)}},remove:function(){this.changed();this.container.remove_drawable(this);var Y=this.view;this.container_div.hide(0,function(){$(this).remove();Y.update_intro_div()})},build_container_div:function(){},build_header_div:function(){},add_action_icon:function(Z,ae,ad,ac,Y,ab){var aa=this;this.action_icons[Z]=$("<a/>").attr("href","javascript:void(0);").attr("title",ae).addClass("icon-button").addClass(ad).tipsy({gravity:"s"}).click(function(){ac(aa)}).appendTo(this.icons_div);if(ab){this.action_icons[Z].hide()}},build_action_icons:function(Y){var aa;for(var Z=0;Z<Y.length;Z++){aa=Y[Z];this.add_action_icon(aa.name,aa.title,aa.css_class,aa.on_click_fn,aa.prepend,aa.hide)}},update_icons:function(){},hide_contents:function(){},show_contents:function(){}});var v=function(Z,Y,aa){p.call(this,Z,Y,aa);this.obj_type=aa.obj_type;this.drawables=[]};o(v.prototype,p.prototype,{unpack_drawables:function(aa){this.drawables=[];var Z;for(var Y=0;Y<aa.length;Y++){Z=object_from_template(aa[Y],this.view,this);this.add_drawable(Z)}},init:function(){for(var Y=0;Y<this.drawables.length;Y++){this.drawables[Y].init()}},_draw:function(){for(var Y=0;Y<this.drawables.length;Y++){this.drawables[Y]._draw()}},to_dict:function(){var Z=[];for(var Y=0;Y<this.drawables.length;Y++){Z.push(this.drawables[Y].to_dict())}return{name:this.name,prefs:this.prefs,obj_type:this.obj_type,drawables:Z}},add_drawable:function(Y){this.drawables.push(Y);Y.container=this;this.changed()},add_drawable_before:function(aa,Y){this.changed();var Z=this.drawables.indexOf(Y);if(Z!==-1){this.drawables.splice(Z,0,aa);return true}return false},replace_drawable:function(aa,Y,Z){var ab=this.drawables.indexOf(aa);if(ab!==-1){this.drawables[ab]=Y;if(Z){aa.container_div.replaceWith(Y.container_div)}this.changed()}return ab},remove_drawable:function(Z){var Y=this.drawables.indexOf(Z);if(Y!==-1){this.drawables.splice(Y,1);Z.container=null;this.changed();return true}return false},move_drawable:function(Z,aa){var Y=this.drawables.indexOf(Z);if(Y!==-1){this.drawables.splice(Y,1);this.drawables.splice(aa,0,Z);this.changed();return true}return false}});var L=function(Z,Y,ab){o(ab,{obj_type:"DrawableGroup",drag_handle_class:"group-handle"});v.call(this,Z,Y,ab);this.content_div=$("<div/>").addClass("content-div").attr("id","group_"+this.id+"_content_div").appendTo(this.container_div);k(this.container_div,this);k(this.content_div,this);l(this.container_div,this.drag_handle_class,".group",this);this.filters_manager=new U(this);this.header_div.after(this.filters_manager.parent_div);this.saved_filters_managers=[];if("drawables" in ab){this.unpack_drawables(ab.drawables)}if("filters" in ab){var aa=this.filters_manager;this.filters_manager=new U(this,ab.filters);aa.parent_div.replaceWith(this.filters_manager.parent_div);if(ab.filters.visible){this.setup_multitrack_filtering()}}};o(L.prototype,p.prototype,v.prototype,{action_icons_def:[p.prototype.action_icons_def[0],p.prototype.action_icons_def[1],{name:"composite_icon",title:"Show composite track",css_class:"layers-stack",on_click_fn:function(Y){$(".tipsy").remove();Y.show_composite_track()}},{name:"filters_icon",title:"Filters",css_class:"filters-icon",on_click_fn:function(Y){if(Y.filters_manager.visible()){Y.filters_manager.clear_filters();Y._restore_filter_managers()}else{Y.setup_multitrack_filtering();Y.request_draw(true)}Y.filters_manager.toggle()}},p.prototype.action_icons_def[2]],build_container_div:function(){var Y=$("<div/>").addClass("group").attr("id","group_"+this.id);if(this.container){this.container.content_div.append(Y)}return Y},build_header_div:function(){var Y=$("<div/>").addClass("track-header");Y.append($("<div/>").addClass(this.drag_handle_class));this.name_div=$("<div/>").addClass("track-name").text(this.name).appendTo(Y);return Y},hide_contents:function(){this.tiles_div.hide()},show_contents:function(){this.tiles_div.show();this.request_draw()},update_icons:function(){var aa=this.drawables.length;if(aa===0){this.action_icons.composite_icon.hide();this.action_icons.filters_icon.hide()}else{if(aa===1){if(this.drawables[0] instanceof g){this.action_icons.composite_icon.show()}this.action_icons.filters_icon.hide()}else{var ah,ag,ae,ak=true,ac=this.drawables[0].get_type(),Y=0;for(ah=0;ah<aa;ah++){ae=this.drawables[ah];if(ae.get_type()!==ac){can_composite=false;break}if(ae instanceof c){Y++}}if(ak||Y===1){this.action_icons.composite_icon.show()}else{this.action_icons.composite_icon.hide();$(".tipsy").remove()}if(Y>1&&Y===this.drawables.length){var al={},Z;ae=this.drawables[0];for(ag=0;ag<ae.filters_manager.filters.length;ag++){Z=ae.filters_manager.filters[ag];al[Z.name]=[Z]}for(ah=1;ah<this.drawables.length;ah++){ae=this.drawables[ah];for(ag=0;ag<ae.filters_manager.filters.length;ag++){Z=ae.filters_manager.filters[ag];if(Z.name in al){al[Z.name].push(Z)}}}this.filters_manager.remove_all();var ab,ad,af,ai;for(var aj in al){ab=al[aj];if(ab.length===Y){ad=new P({name:ab[0].name,index:ab[0].index});this.filters_manager.add_filter(ad)}}if(this.filters_manager.filters.length>0){this.action_icons.filters_icon.show()}else{this.action_icons.filters_icon.hide()}}else{this.action_icons.filters_icon.hide()}}}},_restore_filter_managers:function(){for(var Y=0;Y<this.drawables.length;Y++){this.drawables[Y].filters_manager=this.saved_filters_managers[Y]}this.saved_filters_managers=[]},setup_multitrack_filtering:function(){if(this.filters_manager.filters.length>0){this.saved_filters_managers=[];for(var Y=0;Y<this.drawables.length;Y++){drawable=this.drawables[Y];this.saved_filters_managers.push(drawable.filters_manager);drawable.filters_manager=this.filters_manager}}this.filters_manager.init_filters()},show_composite_track:function(){var ac=[];for(var Z=0;Z<this.drawables.length;Z++){ac.push(this.drawables[Z].name)}var aa="Composite Track of "+this.drawables.length+" tracks ("+ac.join(", ")+")";var ab=new g(this.view,this.view,{name:aa,drawables:this.drawables});var Y=this.container.replace_drawable(this,ab,true);ab.request_draw()},add_drawable:function(Y){v.prototype.add_drawable.call(this,Y);this.update_icons()},remove_drawable:function(Y){v.prototype.remove_drawable.call(this,Y);this.update_icons()},to_dict:function(){if(this.filters_manager.visible()){this._restore_filter_managers()}var Y=o(v.prototype.to_dict.call(this),{filters:this.filters_manager.to_dict()});if(this.filters_manager.visible()){this.setup_multitrack_filtering()}return Y},request_draw:function(Y,aa){for(var Z=0;Z<this.drawables.length;Z++){this.drawables[Z].request_draw(Y,aa)}}});var W=function(Y){o(Y,{obj_type:"View"});v.call(this,"View",Y.container,Y);this.chrom=null;this.vis_id=Y.vis_id;this.dbkey=Y.dbkey;this.label_tracks=[];this.tracks_to_be_redrawn=[];this.max_low=0;this.max_high=0;this.zoom_factor=3;this.min_separation=30;this.has_changes=false;this.load_chroms_deferred=null;this.init();this.canvas_manager=new CanvasManager(this.container.get(0).ownerDocument);this.reset()};_.extend(W.prototype,Backbone.Events);o(W.prototype,v.prototype,{init:function(){this.requested_redraw=false;var aa=this.container,Y=this;this.top_container=$("<div/>").addClass("top-container").appendTo(aa);this.browser_content_div=$("<div/>").addClass("content").css("position","relative").appendTo(aa);this.bottom_container=$("<div/>").addClass("bottom-container").appendTo(aa);this.top_labeltrack=$("<div/>").addClass("top-labeltrack").appendTo(this.top_container);this.viewport_container=$("<div/>").addClass("viewport-container").attr("id","viewport-container").appendTo(this.browser_content_div);this.content_div=this.viewport_container;k(this.viewport_container,Y);this.intro_div=$("<div/>").addClass("intro").appendTo(this.viewport_container).hide();var ab=$("<div/>").text("Add Datasets to Visualization").addClass("action-button").appendTo(this.intro_div).click(function(){add_datasets(add_datasets_url,add_track_async_url,function(ac){_.each(ac,function(ad){Y.add_drawable(object_from_template(ad,Y,Y))})})});this.nav_labeltrack=$("<div/>").addClass("nav-labeltrack").appendTo(this.bottom_container);this.nav_container=$("<div/>").addClass("trackster-nav-container").prependTo(this.top_container);this.nav=$("<div/>").addClass("trackster-nav").appendTo(this.nav_container);this.overview=$("<div/>").addClass("overview").appendTo(this.bottom_container);this.overview_viewport=$("<div/>").addClass("overview-viewport").appendTo(this.overview);this.overview_close=$("<a/>").attr("href","javascript:void(0);").attr("title","Close overview").addClass("icon-button overview-close tooltip").hide().appendTo(this.overview_viewport);this.overview_highlight=$("<div/>").addClass("overview-highlight").hide().appendTo(this.overview_viewport);this.overview_box_background=$("<div/>").addClass("overview-boxback").appendTo(this.overview_viewport);this.overview_box=$("<div/>").addClass("overview-box").appendTo(this.overview_viewport);this.default_overview_height=this.overview_box.height();this.nav_controls=$("<div/>").addClass("nav-controls").appendTo(this.nav);this.chrom_select=$("<select/>").attr({name:"chrom"}).css("width","15em").addClass("no-autocomplete").append("<option value=''>Loading</option>").appendTo(this.nav_controls);var Z=function(ac){if(ac.type==="focusout"||(ac.keyCode||ac.which)===13||(ac.keyCode||ac.which)===27){if((ac.keyCode||ac.which)!==27){Y.go_to($(this).val())}$(this).hide();$(this).val("");Y.location_span.show();Y.chrom_select.show()}};this.nav_input=$("<input/>").addClass("nav-input").hide().bind("keyup focusout",Z).appendTo(this.nav_controls);this.location_span=$("<span/>").addClass("location").attr("original-title","Click to change location").tipsy({gravity:"n"}).appendTo(this.nav_controls);this.location_span.click(function(){Y.location_span.hide();Y.chrom_select.hide();Y.nav_input.val(Y.chrom+":"+Y.low+"-"+Y.high);Y.nav_input.css("display","inline-block");Y.nav_input.select();Y.nav_input.focus()});if(this.vis_id!==undefined){this.hidden_input=$("<input/>").attr("type","hidden").val(this.vis_id).appendTo(this.nav_controls)}this.zo_link=$("<a/>").attr("id","zoom-out").attr("title","Zoom out").tipsy({gravity:"n"}).click(function(){Y.zoom_out();Y.request_redraw()}).appendTo(this.nav_controls);this.zi_link=$("<a/>").attr("id","zoom-in").attr("title","Zoom in").tipsy({gravity:"n"}).click(function(){Y.zoom_in();Y.request_redraw()}).appendTo(this.nav_controls);this.load_chroms_deferred=this.load_chroms({low:0});this.chrom_select.bind("change",function(){Y.change_chrom(Y.chrom_select.val())});this.browser_content_div.click(function(ac){$(this).find("input").trigger("blur")});this.browser_content_div.bind("dblclick",function(ac){Y.zoom_in(ac.pageX,this.viewport_container)});this.overview_box.bind("dragstart",function(ac,ad){this.current_x=ad.offsetX}).bind("drag",function(ac,ae){var af=ae.offsetX-this.current_x;this.current_x=ae.offsetX;var ad=Math.round(af/Y.viewport_container.width()*(Y.max_high-Y.max_low));Y.move_delta(-ad)});this.overview_close.click(function(){Y.reset_overview()});this.viewport_container.bind("draginit",function(ac,ad){if(ac.clientX>Y.viewport_container.width()-16){return false}}).bind("dragstart",function(ac,ad){ad.original_low=Y.low;ad.current_height=ac.clientY;ad.current_x=ad.offsetX}).bind("drag",function(ae,ag){var ac=$(this);var ah=ag.offsetX-ag.current_x;var ad=ac.scrollTop()-(ae.clientY-ag.current_height);ac.scrollTop(ad);ag.current_height=ae.clientY;ag.current_x=ag.offsetX;var af=Math.round(ah/Y.viewport_container.width()*(Y.high-Y.low));Y.move_delta(af)}).bind("mousewheel",function(ae,ag,ad,ac){if(ad){ad*=50;var af=Math.round(-ad/Y.viewport_container.width()*(Y.high-Y.low));Y.move_delta(af)}});this.top_labeltrack.bind("dragstart",function(ac,ad){return $("<div />").css({height:Y.browser_content_div.height()+Y.top_labeltrack.height()+Y.nav_labeltrack.height()+1,top:"0px",position:"absolute","background-color":"#ccf",opacity:0.5,"z-index":1000}).appendTo($(this))}).bind("drag",function(ag,ah){$(ah.proxy).css({left:Math.min(ag.pageX,ah.startX)-Y.container.offset().left,width:Math.abs(ag.pageX-ah.startX)});var ad=Math.min(ag.pageX,ah.startX)-Y.container.offset().left,ac=Math.max(ag.pageX,ah.startX)-Y.container.offset().left,af=(Y.high-Y.low),ae=Y.viewport_container.width();Y.update_location(Math.round(ad/ae*af)+Y.low,Math.round(ac/ae*af)+Y.low)}).bind("dragend",function(ah,ai){var ad=Math.min(ah.pageX,ai.startX),ac=Math.max(ah.pageX,ai.startX),af=(Y.high-Y.low),ae=Y.viewport_container.width(),ag=Y.low;Y.low=Math.round(ad/ae*af)+ag;Y.high=Math.round(ac/ae*af)+ag;$(ai.proxy).remove();Y.request_redraw()});this.add_label_track(new V(this,{content_div:this.top_labeltrack}));this.add_label_track(new V(this,{content_div:this.nav_labeltrack}));$(window).bind("resize",function(){if(this.resize_timer){clearTimeout(this.resize_timer)}this.resize_timer=setTimeout(function(){Y.resize_window()},500)});$(document).bind("redraw",function(){Y.redraw()});this.reset();$(window).trigger("resize")},changed:function(){this.has_changes=true},update_intro_div:function(){if(this.drawables.length===0){this.intro_div.show()}else{this.intro_div.hide()}},trigger_navigate:function(Z,ab,Y,ac){if(this.timer){clearTimeout(this.timer)}if(ac){var aa=this;this.timer=setTimeout(function(){aa.trigger("navigate",Z+":"+ab+"-"+Y)},500)}else{view.trigger("navigate",Z+":"+ab+"-"+Y)}},update_location:function(Y,aa){this.location_span.text(commatize(Y)+" - "+commatize(aa));this.nav_input.val(this.chrom+":"+commatize(Y)+"-"+commatize(aa));var Z=view.chrom_select.val();if(Z!==""){this.trigger_navigate(Z,view.low,view.high,true)}},load_chroms:function(aa){aa.num=t;aa.dbkey=this.dbkey;var Y=this,Z=$.Deferred();$.ajax({url:chrom_url,data:aa,dataType:"json",success:function(ac){if(ac.chrom_info.length===0){alert("Invalid chromosome: "+aa.chrom);return}if(ac.reference){Y.add_label_track(new x(Y))}Y.chrom_data=ac.chrom_info;var af='<option value="">Select Chrom/Contig</option>';for(var ae=0,ab=Y.chrom_data.length;ae<ab;ae++){var ad=Y.chrom_data[ae].chrom;af+='<option value="'+ad+'">'+ad+"</option>"}if(ac.prev_chroms){af+='<option value="previous">Previous '+t+"</option>"}if(ac.next_chroms){af+='<option value="next">Next '+t+"</option>"}Y.chrom_select.html(af);Y.chrom_start_index=ac.start_index;Z.resolve(ac)},error:function(){alert("Could not load chroms for this dbkey:",Y.dbkey)}});return Z},change_chrom:function(ad,Z,af){var aa=this;if(!aa.chrom_data){aa.load_chroms_deferred.then(function(){aa.change_chrom(ad,Z,af)});return}if(!ad||ad==="None"){return}if(ad==="previous"){aa.load_chroms({low:this.chrom_start_index-t});return}if(ad==="next"){aa.load_chroms({low:this.chrom_start_index+t});return}var ae=$.grep(aa.chrom_data,function(ag,ah){return ag.chrom===ad})[0];if(ae===undefined){aa.load_chroms({chrom:ad},function(){aa.change_chrom(ad,Z,af)});return}else{if(ad!==aa.chrom){aa.chrom=ad;aa.chrom_select.val(aa.chrom);aa.max_high=ae.len-1;aa.reset();aa.request_redraw(true);for(var ac=0,Y=aa.drawables.length;ac<Y;ac++){var ab=aa.drawables[ac];if(ab.init){ab.init()}}if(aa.reference_track){aa.reference_track.init()}}if(Z!==undefined&&af!==undefined){aa.low=Math.max(Z,0);aa.high=Math.min(af,aa.max_high)}else{aa.low=0;aa.high=aa.max_high}aa.reset_overview();aa.request_redraw()}},go_to:function(ac){ac=ac.replace(/ |,/g,"");var ag=this,Y,ab,Z=ac.split(":"),ae=Z[0],af=Z[1];if(af!==undefined){try{var ad=af.split("-");Y=parseInt(ad[0],10);ab=parseInt(ad[1],10)}catch(aa){return false}}ag.change_chrom(ae,Y,ab)},move_fraction:function(aa){var Y=this;var Z=Y.high-Y.low;this.move_delta(aa*Z)},move_delta:function(ab){var Y=this;var aa=Y.high-Y.low;if(Y.low-ab<Y.max_low){Y.low=Y.max_low;Y.high=Y.max_low+aa}else{if(Y.high-ab>Y.max_high){Y.high=Y.max_high;Y.low=Y.max_high-aa}else{Y.high-=ab;Y.low-=ab}}Y.request_redraw();var Z=Y.chrom_select.val();this.trigger_navigate(Z,Y.low,Y.high,true)},add_drawable:function(Y){v.prototype.add_drawable.call(this,Y);Y.init();this.changed();this.update_intro_div()},add_label_track:function(Y){Y.view=this;Y.init();this.label_tracks.push(Y)},remove_drawable:function(aa,Z){v.prototype.remove_drawable.call(this,aa);if(Z){var Y=this;aa.container_div.hide(0,function(){$(this).remove();Y.update_intro_div()})}},reset:function(){this.low=this.max_low;this.high=this.max_high;this.viewport_container.find(".yaxislabel").remove()},request_redraw:function(ag,Y,af,ah){var ae=this,ad=(ah?[ah]:ae.drawables),aa;var Z;for(var ac=0;ac<ad.length;ac++){Z=ad[ac];aa=-1;for(var ab=0;ab<ae.tracks_to_be_redrawn.length;ab++){if(ae.tracks_to_be_redrawn[ab][0]===Z){aa=ab;break}}if(aa<0){ae.tracks_to_be_redrawn.push([Z,Y,af])}else{ae.tracks_to_be_redrawn[ac][1]=Y;ae.tracks_to_be_redrawn[ac][2]=af}}if(!this.requested_redraw){requestAnimationFrame(function(){ae._redraw(ag)});this.requested_redraw=true}},_redraw:function(ai){this.requested_redraw=false;var af=this.low,ab=this.high;if(af<this.max_low){af=this.max_low}if(ab>this.max_high){ab=this.max_high}var ah=this.high-this.low;if(this.high!==0&&ah<this.min_separation){ab=af+this.min_separation}this.low=Math.floor(af);this.high=Math.ceil(ab);this.update_location(this.low,this.high);this.resolution_b_px=(this.high-this.low)/this.viewport_container.width();this.resolution_px_b=this.viewport_container.width()/(this.high-this.low);var Y=(this.low/(this.max_high-this.max_low)*this.overview_viewport.width())||0;var ae=((this.high-this.low)/(this.max_high-this.max_low)*this.overview_viewport.width())||0;var aj=13;this.overview_box.css({left:Y,width:Math.max(aj,ae)}).show();if(ae<aj){this.overview_box.css("left",Y-(aj-ae)/2)}if(this.overview_highlight){this.overview_highlight.css({left:Y,width:ae})}if(!ai){var aa,Z,ag;for(var ac=0,ad=this.tracks_to_be_redrawn.length;ac<ad;ac++){aa=this.tracks_to_be_redrawn[ac][0];Z=this.tracks_to_be_redrawn[ac][1];ag=this.tracks_to_be_redrawn[ac][2];if(aa){aa._draw(Z,ag)}}this.tracks_to_be_redrawn=[];for(ac=0,ad=this.label_tracks.length;ac<ad;ac++){this.label_tracks[ac]._draw()}}},zoom_in:function(Z,aa){if(this.max_high===0||this.high-this.low<=this.min_separation){return}var ab=this.high-this.low,ac=ab/2+this.low,Y=(ab/this.zoom_factor)/2;if(Z){ac=Z/this.viewport_container.width()*(this.high-this.low)+this.low}this.low=Math.round(ac-Y);this.high=Math.round(ac+Y);this.changed();this.request_redraw()},zoom_out:function(){if(this.max_high===0){return}var Z=this.high-this.low,aa=Z/2+this.low,Y=(Z*this.zoom_factor)/2;this.low=Math.round(aa-Y);this.high=Math.round(aa+Y);this.changed();this.request_redraw()},resize_window:function(){this.viewport_container.height(this.container.height()-this.top_container.height()-this.bottom_container.height());this.request_redraw()},set_overview:function(aa){if(this.overview_drawable){if(this.overview_drawable.dataset_id===aa.dataset_id){return}this.overview_viewport.find(".track").remove()}var Z=aa.copy({content_div:this.overview_viewport}),Y=this;Z.header_div.hide();Z.is_overview=true;Y.overview_drawable=Z;this.overview_drawable.postdraw_actions=function(){Y.overview_highlight.show().height(Y.overview_drawable.content_div.height());Y.overview_viewport.height(Y.overview_drawable.content_div.height()+Y.overview_box.outerHeight());Y.overview_close.show();Y.resize_window()};Y.overview_drawable.request_draw();this.changed()},reset_overview:function(){$(".tipsy").remove();this.overview_viewport.find(".track-tile").remove();this.overview_viewport.height(this.default_overview_height);this.overview_box.height(this.default_overview_height);this.overview_close.hide();this.overview_highlight.hide();view.resize_window();view.overview_drawable=null}});var q=function(aa,af,ab){this.track=aa;this.name=af.name;this.params=[];var am=af.params;for(var ac=0;ac<am.length;ac++){var ah=am[ac],Z=ah.name,al=ah.label,ad=unescape(ah.html),an=ah.value,aj=ah.type;if(aj==="number"){this.params.push(new e(Z,al,ad,(Z in ab?ab[Z]:an),ah.min,ah.max))}else{if(aj==="select"){this.params.push(new J(Z,al,ad,(Z in ab?ab[Z]:an)))}else{console.log("WARNING: unrecognized tool parameter type:",Z,aj)}}}this.parent_div=$("<div/>").addClass("dynamic-tool").hide();this.parent_div.bind("drag",function(ap){ap.stopPropagation()}).click(function(ap){ap.stopPropagation()}).bind("dblclick",function(ap){ap.stopPropagation()});var ak=$("<div class='tool-name'>").appendTo(this.parent_div).text(this.name);var ai=this.params;var ag=this;$.each(this.params,function(aq,au){var at=$("<div>").addClass("param-row").appendTo(ag.parent_div);var ap=$("<div>").addClass("param-label").text(au.label).appendTo(at);var ar=$("<div/>").addClass("param-input").html(au.html).appendTo(at);ar.find(":input").val(au.value);$("<div style='clear: both;'/>").appendTo(at)});this.parent_div.find("input").click(function(){$(this).select()});var ao=$("<div>").addClass("param-row").appendTo(this.parent_div);var ae=$("<input type='submit'>").attr("value","Run on complete dataset").appendTo(ao);var Y=$("<input type='submit'>").attr("value","Run on visible region").css("margin-left","3em").appendTo(ao);Y.click(function(){ag.run_on_region()});ae.click(function(){ag.run_on_dataset()});if("visible" in ab&&ab.visible){this.parent_div.show()}};o(q.prototype,{update_params:function(){for(var Y=0;Y<this.params.length;Y++){this.params[Y].update_value()}},state_dict:function(){var Z={};for(var Y=0;Y<this.params.length;Y++){Z[this.params[Y].name]=this.params[Y].value}Z.visible=this.parent_div.is(":visible");return Z},get_param_values_dict:function(){var Y={};this.parent_div.find(":input").each(function(){var Z=$(this).attr("name"),aa=$(this).val();Y[Z]=aa});return Y},get_param_values:function(){var Y=[];this.parent_div.find(":input").each(function(){var Z=$(this).attr("name"),aa=$(this).val();if(Z){Y[Y.length]=aa}});return Y},run_on_dataset:function(){var Y=this;Y.run({target_dataset_id:this.track.original_dataset_id,tool_id:Y.name},null,function(Z){show_modal(Y.name+" is Running",Y.name+" is running on the complete dataset. Tool outputs are in dataset's history.",{Close:hide_modal})})},run_on_region:function(){var Z={target_dataset_id:this.track.original_dataset_id,action:"rerun",tool_id:this.name,regions:[{chrom:this.track.view.chrom,start:this.track.view.low,end:this.track.view.high}]},ad=this.track,aa=Z.tool_id+ad.tool_region_and_parameters_str(Z.chrom,Z.low,Z.high),Y;if(ad.container===view){var ac=new L(view,view,{name:this.name});var ab=ad.container.replace_drawable(ad,ac,false);ac.container_div.insertBefore(ad.view.content_div.children()[ab]);ac.add_drawable(ad);ad.container_div.appendTo(ac.content_div);Y=ac}else{Y=ad.container}var ae=new ad.constructor(view,Y,{name:aa,hda_ldda:"hda"});ae.init_for_tool_data();ae.change_mode(ad.mode);ae.set_filters_manager(ad.filters_manager.copy(ae));ae.update_icons();Y.add_drawable(ae);ae.tiles_div.text("Starting job.");this.update_params();this.run(Z,ae,function(af){ae.set_dataset(new Dataset(af));ae.tiles_div.text("Running job.");ae.init()})},run:function(Y,aa,ab){Y.inputs=this.get_param_values_dict();var Z=new ServerStateDeferred({ajax_settings:{url:galaxy_paths.get("tool_url"),data:JSON.stringify(Y),dataType:"json",contentType:"application/json",type:"POST"},interval:2000,success_fn:function(ac){return ac!=="pending"}});$.when(Z.go()).then(function(ac){if(ac==="no converter"){aa.container_div.addClass("error");aa.content_div.text(F)}else{if(ac.error){aa.container_div.addClass("error");aa.content_div.text(u+ac.message)}else{ab(ac)}}})}});var J=function(Z,Y,aa,ab){this.name=Z;this.label=Y;this.html=$(aa);this.value=ab};o(J.prototype,{update_value:function(){this.value=$(this.html).val()}});var e=function(aa,Z,ac,ad,ab,Y){J.call(this,aa,Z,ac,ad);this.min=ab;this.max=Y};o(e.prototype,J.prototype,{update_value:function(){J.prototype.update_value.call(this);this.value=parseFloat(this.value)}});var f=function(Y){this.manager=null;this.name=Y.name;this.index=Y.index;this.tool_id=Y.tool_id;this.tool_exp_name=Y.tool_exp_name};o(f.prototype,{to_dict:function(){return{name:this.name,index:this.index,tool_id:this.tool_id,tool_exp_name:this.tool_exp_name}}});var P=function(ag){f.call(this,ag);this.low=("low" in ag?ag.low:-Number.MAX_VALUE);this.high=("high" in ag?ag.high:Number.MAX_VALUE);this.min=("min" in ag?ag.min:Number.MAX_VALUE);this.max=("max" in ag?ag.max:-Number.MAX_VALUE);this.container=null;this.slider=null;this.slider_label=null;var ac=function(ah,ai,aj){ah.click(function(){var ao=ai.text(),am=parseFloat(aj.slider("option","max")),al=(am<=1?4:am<=1000000?am.toString().length:6),an=false,ak=$(this).parents(".slider-row");ak.addClass("input");if(aj.slider("option","values")){al=2*al+1;an=true}ai.text("");$("<input type='text'/>").attr("size",al).attr("maxlength",al).attr("value",ao).appendTo(ai).focus().select().click(function(ap){ap.stopPropagation()}).blur(function(){$(this).remove();ai.text(ao);ak.removeClass("input")}).keyup(function(au){if(au.keyCode===27){$(this).trigger("blur")}else{if(au.keyCode===13){var ar=aj.slider("option","min"),ap=aj.slider("option","max"),at=function(av){return(isNaN(av)||av>ap||av<ar)},aq=$(this).val();if(!an){aq=parseFloat(aq);if(at(aq)){alert("Parameter value must be in the range ["+ar+"-"+ap+"]");return $(this)}}else{aq=aq.split("-");aq=[parseFloat(aq[0]),parseFloat(aq[1])];if(at(aq[0])||at(aq[1])){alert("Parameter value must be in the range ["+ar+"-"+ap+"]");return $(this)}}aj.slider((an?"values":"value"),aq);ak.removeClass("input")}}})})};var Z=this;Z.parent_div=$("<div/>").addClass("filter-row slider-row");var Y=$("<div/>").addClass("elt-label").appendTo(Z.parent_div),ae=$("<span/>").addClass("slider-name").text(Z.name+" ").appendTo(Y),aa=$("<span/>").text(this.low+"-"+this.high),ab=$("<span/>").addClass("slider-value").appendTo(Y).append("[").append(aa).append("]");Z.values_span=aa;var ad=$("<div/>").addClass("slider").appendTo(Z.parent_div);Z.control_element=$("<div/>").attr("id",Z.name+"-filter-control").appendTo(ad);Z.control_element.slider({range:true,min:this.min,max:this.max,step:this.get_slider_step(this.min,this.max),values:[this.low,this.high],slide:function(ah,ai){Z.slide(ah,ai)},change:function(ah,ai){Z.control_element.slider("option","slide").call(Z.control_element,ah,ai)}});Z.slider=Z.control_element;Z.slider_label=aa;ac(ab,aa,Z.control_element);var af=$("<div/>").addClass("display-controls").appendTo(Z.parent_div);this.transparency_icon=create_action_icon("Use filter for data transparency","layer-transparent",function(){if(Z.manager.alpha_filter!==Z){Z.manager.alpha_filter=Z;Z.manager.parent_div.find(".layer-transparent").removeClass("active").hide();Z.transparency_icon.addClass("active").show()}else{Z.manager.alpha_filter=null;Z.transparency_icon.removeClass("active")}Z.manager.track.request_draw(true,true)}).appendTo(af).hide();this.height_icon=create_action_icon("Use filter for data height","arrow-resize-090",function(){if(Z.manager.height_filter!==Z){Z.manager.height_filter=Z;Z.manager.parent_div.find(".arrow-resize-090").removeClass("active").hide();Z.height_icon.addClass("active").show()}else{Z.manager.height_filter=null;Z.height_icon.removeClass("active")}Z.manager.track.request_draw(true,true)}).appendTo(af).hide();Z.parent_div.hover(function(){Z.transparency_icon.show();Z.height_icon.show()},function(){if(Z.manager.alpha_filter!==Z){Z.transparency_icon.hide()}if(Z.manager.height_filter!==Z){Z.height_icon.hide()}});$("<div style='clear: both;'/>").appendTo(Z.parent_div)};o(P.prototype,{to_dict:function(){var Y=f.prototype.to_dict.call(this);return o(Y,{type:"number",min:this.min,max:this.max,low:this.low,high:this.high})},copy:function(){return new P({name:this.name,index:this.index,tool_id:this.tool_id,tool_exp_name:this.tool_exp_name})},get_slider_step:function(aa,Y){var Z=Y-aa;return(Z<=2?0.01:1)},slide:function(aa,ab){var Z=ab.values;this.values_span.text(Z[0]+"-"+Z[1]);this.low=Z[0];this.high=Z[1];var Y=this;setTimeout(function(){if(Z[0]===Y.low&&Z[1]===Y.high){Y.manager.track.request_draw(true,true)}},25)},applies_to:function(Y){if(Y.length>this.index){return true}return false},_keep_val:function(Y){return(isNaN(Y)||(Y>=this.low&&Y<=this.high))},keep:function(Z){if(!this.applies_to(Z)){return true}var ab=this;var ac=Z[this.index];if(ac instanceof Array){var aa=true;for(var Y=0;Y<ac.length;Y++){if(!this._keep_val(ac[Y])){aa=false;break}}return aa}else{return this._keep_val(Z[this.index])}},update_attrs:function(ab){var Y=false;if(!this.applies_to(ab)){return Y}var Z=ab[this.index];if(!(Z instanceof Array)){Z=[Z]}for(var aa=0;aa<Z.length;aa++){var ac=Z[aa];if(ac<this.min){this.min=Math.floor(ac);Y=true}if(ac>this.max){this.max=Math.ceil(ac);Y=true}}return Y},update_ui_elt:function(){if(this.min<this.max){this.parent_div.show()}else{this.parent_div.hide()}var Z=this.slider.slider("option","min"),Y=this.slider.slider("option","max");if(this.min<Z||this.max>Y){this.slider.slider("option","min",this.min);this.slider.slider("option","max",this.max);this.slider.slider("option","step",this.get_slider_step(this.min,this.max));this.slider.slider("option","values",[this.min,this.max])}}});var U=function(aa,ag){this.track=aa;this.alpha_filter=null;this.height_filter=null;this.filters=[];this.parent_div=$("<div/>").addClass("filters").hide();this.parent_div.bind("drag",function(ai){ai.stopPropagation()}).click(function(ai){ai.stopPropagation()}).bind("dblclick",function(ai){ai.stopPropagation()}).bind("keydown",function(ai){ai.stopPropagation()});if(ag&&"filters" in ag){var Y=("alpha_filter" in ag?ag.alpha_filter:null),ab=("height_filter" in ag?ag.height_filter:null),ad=ag.filters,Z;for(var ae=0;ae<ad.length;ae++){if(ad[ae].type==="number"){Z=new P(ad[ae]);this.add_filter(Z);if(Z.name===Y){this.alpha_filter=Z;Z.transparency_icon.addClass("active").show()}if(Z.name===ab){this.height_filter=Z;Z.height_icon.addClass("active").show()}}else{console.log("ERROR: unsupported filter: ",name,type)}}if("visible" in ag&&ag.visible){this.parent_div.show()}}if(this.filters.length!==0){var ah=$("<div/>").addClass("param-row").appendTo(this.parent_div);var af=$("<input type='submit'/>").attr("value","Run on complete dataset").appendTo(ah);var ac=this;af.click(function(){ac.run_on_dataset()})}};o(U.prototype,{show:function(){this.parent_div.show()},hide:function(){this.parent_div.hide()},toggle:function(){this.parent_div.toggle()},visible:function(){return this.parent_div.is(":visible")},to_dict:function(){var ab={},aa=[],Z;for(var Y=0;Y<this.filters.length;Y++){Z=this.filters[Y];aa.push(Z.to_dict())}ab.filters=aa;ab.alpha_filter=(this.alpha_filter?this.alpha_filter.name:null);ab.height_filter=(this.height_filter?this.height_filter.name:null);ab.visible=this.parent_div.is(":visible");return ab},copy:function(Z){var aa=new U(Z);for(var Y=0;Y<this.filters.length;Y++){aa.add_filter(this.filters[Y].copy())}return aa},add_filter:function(Y){Y.manager=this;this.parent_div.append(Y.parent_div);this.filters.push(Y)},remove_all:function(){this.filters=[];this.parent_div.children().remove()},init_filters:function(){for(var Y=0;Y<this.filters.length;Y++){var Z=this.filters[Y];Z.update_ui_elt()}},clear_filters:function(){for(var Y=0;Y<this.filters.length;Y++){var Z=this.filters[Y];Z.slider.slider("option","values",[Z.min,Z.max])}this.alpha_filter=null;this.height_filter=null;this.parent_div.find(".icon-button").hide()},run_on_dataset:function(){var ae=function(ai,ag,ah){if(!(ag in ai)){ai[ag]=ah}return ai[ag]};var ad={},af,Y;for(var ac=0;ac<this.filters.length;ac++){af=this.filters[ac];if(af.tool_id){if(af.min!==af.low){Y=ae(ad,af.tool_id,[]);Y[Y.length]=af.tool_exp_name+" >= "+af.low}if(af.max!==af.high){Y=ae(ad,af.tool_id,[]);Y[Y.length]=af.tool_exp_name+" <= "+af.high}}}var Z=[];for(var ab in ad){Z[Z.length]=[ab,ad[ab]]}(function aa(am,aj){var ah=aj[0],ai=ah[0],al=ah[1],ak="("+al.join(") and (")+")",ag={cond:ak,input:am,target_dataset_id:am,tool_id:ai},aj=aj.slice(1);$.getJSON(run_tool_url,ag,function(an){if(an.error){show_modal("Filter Dataset","Error running tool "+ai,{Close:hide_modal})}else{if(aj.length===0){show_modal("Filtering Dataset","Filter(s) are running on the complete dataset. Outputs are in dataset's history.",{Close:hide_modal})}else{aa(an.dataset_id,aj)}}})})(this.track.dataset_id,Z)}});var y=function(Y,Z){H.Scaler.call(this,Z);this.filter=Y};y.prototype.gen_val=function(Y){if(this.filter.high===Number.MAX_VALUE||this.filter.low===-Number.MAX_VALUE||this.filter.low===this.filter.high){return this.default_val}return((parseFloat(Y[this.filter.index])-this.filter.low)/(this.filter.high-this.filter.low))};var B=function(Y){this.track=Y.track;this.params=Y.params;this.values={};this.restore_values((Y.saved_values?Y.saved_values:{}));this.onchange=Y.onchange};o(B.prototype,{restore_values:function(Y){var Z=this;$.each(this.params,function(aa,ab){if(Y[ab.key]!==undefined){Z.values[ab.key]=Y[ab.key]}else{Z.values[ab.key]=ab.default_value}})},build_form:function(){var ab=this;var Y=$("<div />");var aa;function Z(af,ac){for(var aj=0;aj<af.length;aj++){aa=af[aj];if(aa.hidden){continue}var ad="param_"+aj;var an=ab.values[aa.key];var aq=$("<div class='form-row' />").appendTo(ac);aq.append($("<label />").attr("for",ad).text(aa.label+":"));if(aa.type==="bool"){aq.append($('<input type="checkbox" />').attr("id",ad).attr("name",ad).attr("checked",an))}else{if(aa.type==="text"){aq.append($('<input type="text"/>').attr("id",ad).val(an).click(function(){$(this).select()}))}else{if(aa.type==="select"){var al=$("<select />").attr("id",ad);for(var ah=0;ah<aa.options.length;ah++){$("<option/>").text(aa.options[ah].label).attr("value",aa.options[ah].value).appendTo(al)}al.val(an);aq.append(al)}else{if(aa.type==="color"){var ap=$("<div/>").appendTo(aq),ak=$("<input />").attr("id",ad).attr("name",ad).val(an).css("float","left").appendTo(ap).click(function(at){$(".tipsy").hide();var ar=$(this).siblings(".tipsy");ar.css({left:$(this).position().left+$(this).width()+5,top:$(this).position().top-($(ar).height()/2)+($(this).height()/2)}).show();ar.click(function(au){au.stopPropagation()});$(document).bind("click.color-picker",function(){ar.hide();$(document).unbind("click.color-picker")});at.stopPropagation()}),ai=$("<a href='javascript:void(0)'/>").addClass("icon-button arrow-circle").appendTo(ap).attr("title","Set new random color").tipsy({gravity:"s"}),am=$("<div class='tipsy tipsy-west' style='position: absolute;' />").appendTo(ap).hide(),ae=$("<div style='background-color: black; padding: 10px;'></div>").appendTo(am),ao=$("<div/>").appendTo(ae),ag=$.farbtastic(ao,{width:100,height:100,callback:ak,color:an});ap.append($("<div/>").css("clear","both"));(function(ar){ai.click(function(){ar.setColor(get_random_color())})})(ag)}else{aq.append($("<input />").attr("id",ad).attr("name",ad).val(an))}}}}if(aa.help){aq.append($("<div class='help'/>").text(aa.help))}}}Z(this.params,Y);return Y},update_from_form:function(Y){var aa=this;var Z=false;$.each(this.params,function(ab,ad){if(!ad.hidden){var ae="param_"+ab;var ac=Y.find("#"+ae).val();if(ad.type==="float"){ac=parseFloat(ac)}else{if(ad.type==="int"){ac=parseInt(ac)}else{if(ad.type==="bool"){ac=Y.find("#"+ae).is(":checked")}}}if(ac!==aa.values[ad.key]){aa.values[ad.key]=ac;Z=true}}});if(Z){this.onchange();this.track.changed()}}});var b=function(Y,ac,aa,Z,ab){this.track=Y;this.region=ac;this.low=ac.get("start");this.high=ac.get("end");this.resolution=aa;this.html_elt=$("<div class='track-tile'/>").append(Z).height($(Z).attr("height"));this.data=ab;this.stale=false};b.prototype.predisplay_actions=function(){};var j=function(Y,ad,aa,Z,ab,ac){b.call(this,Y,ad,aa,Z,ab);this.max_val=ac};o(j.prototype,b.prototype);var K=function(ab,aj,ac,aa,ae,al,af,am,Z,ai){b.call(this,ab,aj,ac,aa,ae);this.mode=af;this.all_slotted=Z;this.feature_mapper=ai;this.has_icons=false;if(am){this.has_icons=true;var ag=this;aa=this.html_elt.children()[0],message_div=$("<div/>").addClass("tile-message").css({height:z-1,width:aa.width}).prependTo(this.html_elt);var ah=new GenomeRegion({chrom:ab.view.chrom,start:this.low,end:this.high}),ak=ae.length,ad=$("<a href='javascript:void(0);'/>").addClass("icon more-down").attr("title","For speed, only the first "+ak+" features in this region were obtained from server. Click to get more data including depth").tipsy({gravity:"s"}).appendTo(message_div),Y=$("<a href='javascript:void(0);'/>").addClass("icon more-across").attr("title","For speed, only the first "+ak+" features in this region were obtained from server. Click to get more data excluding depth").tipsy({gravity:"s"}).appendTo(message_div);ad.click(function(){ag.stale=true;ab.data_manager.get_more_data(ah,ab.mode,ag.resolution,{},ab.data_manager.DEEP_DATA_REQ);$(".tipsy").hide();ab.request_draw(true)}).dblclick(function(an){an.stopPropagation()});Y.click(function(){ag.stale=true;ab.data_manager.get_more_data(ah,ab.mode,ag.resolution,{},ab.data_manager.BROAD_DATA_REQ);$(".tipsy").hide();ab.request_draw(true)}).dblclick(function(an){an.stopPropagation()})}};o(K.prototype,b.prototype);K.prototype.predisplay_actions=function(){var Z=this,Y={};if(Z.mode!=="Pack"){return}$(this.html_elt).hover(function(){this.hovered=true;$(this).mousemove()},function(){this.hovered=false;$(this).parents(".track-content").children(".overlay").children(".feature-popup").remove()}).mousemove(function(ak){if(!this.hovered){return}var af=$(this).offset(),aj=ak.pageX-af.left,ai=ak.pageY-af.top,ao=Z.feature_mapper.get_feature_data(aj,ai),ag=(ao?ao[0]:null);$(this).parents(".track-content").children(".overlay").children(".feature-popup").each(function(){if(!ag||$(this).attr("id")!==ag.toString()){$(this).remove()}});if(ao){var ab=Y[ag];if(!ab){var ag=ao[0],al={name:ao[3],start:ao[1],end:ao[2],strand:ao[4]},ae=Z.track.filters_manager.filters,ad;for(var ah=0;ah<ae.length;ah++){ad=ae[ah];al[ad.name]=ao[ad.index]}var ab=$("<div/>").attr("id",ag).addClass("feature-popup"),ap=$("<table/>"),an,am,aq;for(an in al){am=al[an];aq=$("<tr/>").appendTo(ap);$("<th/>").appendTo(aq).text(an);$("<td/>").attr("align","left").appendTo(aq).text(typeof(am)==="number"?T(am,2):am)}ab.append($("<div class='feature-popup-inner'>").append(ap));Y[ag]=ab}ab.appendTo($(this).parents(".track-content").children(".overlay"));var ac=aj+parseInt(Z.html_elt.css("left"))-ab.width()/2,aa=ai+parseInt(Z.html_elt.css("top"))+7;ab.css("left",ac+"px").css("top",aa+"px")}else{if(!ak.isPropagationStopped()){ak.stopPropagation();$(this).siblings().each(function(){$(this).trigger(ak)})}}}).mouseleave(function(){$(this).parents(".track-content").children(".overlay").children(".feature-popup").remove()})};var h=function(aa,Z,ac){o(ac,{drag_handle_class:"draghandle"});p.call(this,aa,Z,ac);this.data_url=("data_url" in ac?ac.data_url:default_data_url);this.data_url_extra_params={};this.data_query_wait=("data_query_wait" in ac?ac.data_query_wait:G);this.dataset_check_url=("converted_datasets_state_url" in ac?ac.converted_datasets_state_url:converted_datasets_state_url);var Y=this,ab=new Dataset({id:ac.dataset_id,hda_ldda:ac.hda_ldda});this.data_manager=("data_manager" in ac?ac.data_manager:new GenomeDataManager({dataset:ab,data_url:Y.data_url,dataset_state_url:Y.dataset_check_url,data_mode_compatible:this.data_and_mode_compatible,can_subset:this.can_subset}));this.min_height_px=16;this.max_height_px=800;this.visible_height_px=0;this.content_div=$("<div class='track-content'>").appendTo(this.container_div);if(this.container){this.container.content_div.append(this.container_div);if(!("resize" in ac)||ac.resize){this.add_resize_handle()}}};o(h.prototype,p.prototype,{action_icons_def:[{name:"mode_icon",title:"Set display mode",css_class:"chevron-expand",on_click_fn:function(){}},p.prototype.action_icons_def[0],{name:"overview_icon",title:"Set as overview",css_class:"overview-icon",on_click_fn:function(Y){Y.view.set_overview(Y)}},p.prototype.action_icons_def[1],{name:"filters_icon",title:"Filters",css_class:"filters-icon",on_click_fn:function(Y){if(Y.filters_manager.visible()){Y.filters_manager.clear_filters()}else{Y.filters_manager.init_filters()}Y.filters_manager.toggle()}},{name:"tools_icon",title:"Tool",css_class:"hammer",on_click_fn:function(Y){Y.dynamic_tool_div.toggle();if(Y.dynamic_tool_div.is(":visible")){Y.set_name(Y.name+Y.tool_region_and_parameters_str())}else{Y.revert_name()}$(".tipsy").remove()}},{name:"param_space_viz_icon",title:"Tool parameter space visualization",css_class:"arrow-split",on_click_fn:function(Y){var ab='<strong>Tool</strong>: <%= track.tool.name %><br/><strong>Dataset</strong>: <%= track.name %><br/><strong>Region(s)</strong>: <select name="regions"><option value="cur">current viewing area</option><option value="bookmarks">bookmarks</option><option value="both">current viewing area and bookmarks</option></select>',aa=_.template(ab,{track:Y});var ad=function(){hide_modal();$(window).unbind("keypress.check_enter_esc")},Z=function(){var af=$('select[name="regions"] option:selected').val(),ah,ae=new GenomeRegion({chrom:view.chrom,start:view.low,end:view.high}),ag=_.map($(".bookmark"),function(ai){return new GenomeRegion({from_str:$(ai).children(".position").text()})});if(af==="cur"){ah=[ae]}else{if(af==="bookmarks"){ah=ag}else{ah=[ae].concat(ag)}}hide_modal();window.location.href=galaxy_paths.get("paramamonster_url")+"?"+$.param({dataset_id:Y.dataset_id,hda_ldda:Y.hda_ldda,regions:JSON.stringify(new Backbone.Collection(ah).toJSON())})},ac=function(ae){if((ae.keyCode||ae.which)===27){ad()}else{if((ae.keyCode||ae.which)===13){Z()}}};show_modal("Visualize tool parameter space and output from different parameter settings?",aa,{No:ad,Yes:Z})}},p.prototype.action_icons_def[2]],can_draw:function(){if(this.dataset_id&&p.prototype.can_draw.call(this)){return true}return false},build_container_div:function(){return $("<div/>").addClass("track").attr("id","track_"+this.id).css("position","relative")},build_header_div:function(){var Y=$("<div class='track-header'/>");if(this.view.editor){this.drag_div=$("<div/>").addClass(this.drag_handle_class).appendTo(Y)}this.name_div=$("<div/>").addClass("track-name").appendTo(Y).text(this.name).attr("id",this.name.replace(/\s+/g,"-").replace(/[^a-zA-Z0-9\-]/g,"").toLowerCase());return Y},on_resize:function(){},add_resize_handle:function(){var Y=this;var ab=false;var aa=false;var Z=$("<div class='track-resize'>");$(Y.container_div).hover(function(){if(Y.content_visible){ab=true;Z.show()}},function(){ab=false;if(!aa){Z.hide()}});Z.hide().bind("dragstart",function(ac,ad){aa=true;ad.original_height=$(Y.content_div).height()}).bind("drag",function(ad,ae){var ac=Math.min(Math.max(ae.original_height+ae.deltaY,Y.min_height_px),Y.max_height_px);$(Y.tiles_div).css("height",ac);Y.visible_height_px=(Y.max_height_px===ac?0:ac);Y.on_resize()}).bind("dragend",function(ac,ad){Y.tile_cache.clear();aa=false;if(!ab){Z.hide()}Y.config.values.height=Y.visible_height_px;Y.changed()}).appendTo(Y.container_div)},set_display_modes:function(ab,ae){this.display_modes=ab;this.mode=(ae?ae:(this.config&&this.config.values.mode?this.config.values.mode:this.display_modes[0]));this.action_icons.mode_icon.attr("title","Set display mode (now: "+this.mode+")");var Z=this,ac={};for(var aa=0,Y=Z.display_modes.length;aa<Y;aa++){var ad=Z.display_modes[aa];ac[ad]=function(af){return function(){Z.change_mode(af);Z.icons_div.show();Z.container_div.mouseleave(function(){Z.icons_div.hide()})}}(ad)}make_popupmenu(this.action_icons.mode_icon,ac)},build_action_icons:function(){p.prototype.build_action_icons.call(this,this.action_icons_def);if(this.display_modes!==undefined){this.set_display_modes(this.display_modes)}},hide_contents:function(){this.tiles_div.hide();this.container_div.find(".yaxislabel, .track-resize").hide()},show_contents:function(){this.tiles_div.show();this.container_div.find(".yaxislabel, .track-resize").show();this.request_draw()},get_type:function(){if(this instanceof V){return"LabelTrack"}else{if(this instanceof x){return"ReferenceTrack"}else{if(this instanceof i){return"LineTrack"}else{if(this instanceof Q){return"ReadTrack"}else{if(this instanceof N){return"VcfTrack"}else{if(this instanceof g){return"CompositeTrack"}else{if(this instanceof c){return"FeatureTrack"}}}}}}}return""},init:function(){var Z=this;Z.enabled=false;Z.tile_cache.clear();Z.data_manager.clear();Z.content_div.css("height","auto");Z.tiles_div.children().remove();Z.container_div.removeClass("nodata error pending");if(!Z.dataset_id){return}var Y=$.Deferred();$.getJSON(this.dataset_check_url,{hda_ldda:Z.hda_ldda,dataset_id:Z.dataset_id,chrom:Z.view.chrom},function(aa){if(!aa||aa==="error"||aa.kind==="error"){Z.container_div.addClass("error");Z.tiles_div.text(n);if(aa.message){var ab=$(" <a href='javascript:void(0);'></a>").text("View error").click(function(){show_modal("Trackster Error","<pre>"+aa.message+"</pre>",{Close:hide_modal})});Z.tiles_div.append(ab)}}else{if(aa==="no converter"){Z.container_div.addClass("error");Z.tiles_div.text(F)}else{if(aa==="no data"||(aa.data!==undefined&&(aa.data===null||aa.data.length===0))){Z.container_div.addClass("nodata");Z.tiles_div.text(A)}else{if(aa==="pending"){Z.container_div.addClass("pending");Z.tiles_div.html(s);setTimeout(function(){Z.init()},Z.data_query_wait)}else{if(aa==="data"||aa.status==="data"){if(aa.valid_chroms){Z.valid_chroms=aa.valid_chroms;Z.update_icons()}Z.tiles_div.text(S);if(Z.view.chrom){Z.tiles_div.text("");Z.tiles_div.css("height",Z.visible_height_px+"px");Z.enabled=true;$.when(Z.predraw_init()).done(function(){Y.resolve();Z.container_div.removeClass("nodata error pending");Z.request_draw()})}else{Y.resolve()}}}}}}});this.update_icons();return Y},predraw_init:function(){}});var I=function(aa,Z,ab){h.call(this,aa,Z,ab);var Y=this,aa=Y.view;l(Y.container_div,Y.drag_handle_class,".group",Y);this.filters_manager=new U(this,("filters" in ab?ab.filters:null));this.data_manager.set("filters_manager",this.filters_manager);this.filters_available=false;this.tool=("tool" in ab&&ab.tool?new q(this,ab.tool,ab.tool_state):null);this.tile_cache=new Cache(M);if(this.header_div){this.set_filters_manager(this.filters_manager);if(this.tool){this.dynamic_tool_div=this.tool.parent_div;this.header_div.after(this.dynamic_tool_div)}}this.tiles_div=$("<div/>").addClass("tiles").appendTo(this.content_div);this.overlay_div=$("<div/>").addClass("overlay").appendTo(this.content_div);if(ab.mode){this.change_mode(ab.mode)}};o(I.prototype,p.prototype,h.prototype,{action_icons_def:h.prototype.action_icons_def.concat([{name:"show_more_rows_icon",title:"To minimize track height, not all feature rows are displayed. Click to display more rows.",css_class:"exclamation",on_click_fn:function(Y){$(".tipsy").remove();Y.slotters[Y.view.resolution_px_b].max_rows*=2;Y.request_draw(true)},hide:true}]),copy:function(Y){var Z=this.to_dict();o(Z,{data_manager:this.data_manager});var aa=new this.constructor(this.view,Y,Z);aa.change_mode(this.mode);aa.enabled=this.enabled;return aa},set_filters_manager:function(Y){this.filters_manager=Y;this.header_div.after(this.filters_manager.parent_div)},to_dict:function(){return{track_type:this.get_type(),name:this.name,hda_ldda:this.hda_ldda,dataset_id:this.dataset_id,prefs:this.prefs,mode:this.mode,filters:this.filters_manager.to_dict(),tool_state:(this.tool?this.tool.state_dict():{})}},change_mode:function(Z){var Y=this;Y.mode=Z;Y.config.values.mode=Z;Y.tile_cache.clear();Y.request_draw();this.action_icons.mode_icon.attr("title","Set display mode (now: "+Y.mode+")");return Y},update_icons:function(){var Y=this;if(Y.filters_available){Y.action_icons.filters_icon.show()}else{Y.action_icons.filters_icon.hide()}if(Y.tool){Y.action_icons.tools_icon.show();Y.action_icons.param_space_viz_icon.show()}else{Y.action_icons.tools_icon.hide();Y.action_icons.param_space_viz_icon.hide()}},_gen_tile_cache_key:function(Z,aa,Y){return Z+"_"+aa+"_"+Y},request_draw:function(Z,Y){this.view.request_redraw(false,Z,Y,this)},before_draw:function(){},_draw:function(Z,aj){if(!this.can_draw()){return}var ah=this.view.low,ad=this.view.high,af=ad-ah,aa=this.view.container.width(),al=this.view.resolution_px_b,ac=this.view.resolution_b_px;if(this.is_overview){ah=this.view.max_low;ad=this.view.max_high;ac=Math.pow(RESOLUTION,Math.ceil(Math.log((view.max_high-view.max_low)/O)/Math.log(RESOLUTION)));al=aa/(view.max_high-view.max_low)}this.before_draw();this.tiles_div.children().addClass("remove");var Y=Math.floor(ah/(ac*O)),ag=true,ak=[],ae=function(am){return(am&&"track" in am)};while((Y*O*ac)<ad){var ai=this.draw_helper(Z,aa,Y,ac,this.tiles_div,al);if(ae(ai)){ak.push(ai)}else{ag=false}Y+=1}if(!aj){this.tiles_div.children(".remove").removeClass("remove").remove()}var ab=this;if(ag){this.tiles_div.children(".remove").remove();ab.postdraw_actions(ak,aa,al,aj)}},postdraw_actions:function(ab,ac,ae,Y){var aa=this;var ad=false;for(var Z=0;Z<ab.length;Z++){if(ab[Z].has_icons){ad=true;break}}if(ad){for(var Z=0;Z<ab.length;Z++){tile=ab[Z];if(!tile.has_icons){tile.html_elt.css("padding-top",z)}}}},draw_helper:function(Y,ak,ap,an,ad,ae,al){var aj=this,at=this._gen_tile_cache_key(ak,ae,ap),ab=this._get_tile_bounds(ap,an);if(!al){al={}}var ar=(Y?undefined:aj.tile_cache.get_elt(at));if(ar){aj.show_tile(ar,ad,ae);return ar}var ah=true;var ao=aj.data_manager.get_data(ab,aj.mode,an,aj.data_url_extra_params);if(is_deferred(ao)){ah=false}var af;if(view.reference_track&&ae>view.canvas_manager.char_width_px){af=view.reference_track.data_manager.get_data(ab,aj.mode,an,view.reference_track.data_url_extra_params);if(is_deferred(af)){ah=false}}if(ah){o(ao,al.more_tile_data);var ag=aj.mode;if(ag==="Auto"){ag=aj.get_mode(ao);aj.update_auto_mode(ag)}var aa=aj.view.canvas_manager.new_canvas(),aq=ab.get("start"),Z=ab.get("end"),ak=Math.ceil((Z-aq)*ae)+aj.left_offset,ai=aj.get_canvas_height(ao,ag,ae,ak);aa.width=ak;aa.height=ai;var am=aa.getContext("2d");am.translate(this.left_offset,0);var ar=aj.draw_tile(ao,am,ag,an,ab,ae,af);if(ar!==undefined){aj.tile_cache.set_elt(at,ar);aj.show_tile(ar,ad,ae)}return ar}var ac=$.Deferred();$.when(ao,af).then(function(){view.request_redraw(false,false,false,aj);ac.resolve()});return ac},get_canvas_height:function(Y,aa,ab,Z){return this.visible_height_px},draw_tile:function(Y,Z,ad,ab,ac,ae,aa){console.log("Warning: TiledTrack.draw_tile() not implemented.")},show_tile:function(aa,ac,ad){var Z=this,Y=aa.html_elt;aa.predisplay_actions();var ab=(aa.low-(this.is_overview?this.view.max_low:this.view.low))*ad;if(this.left_offset){ab-=this.left_offset}Y.css({position:"absolute",top:0,left:ab});if(Y.hasClass("remove")){Y.removeClass("remove")}else{ac.append(Y)}Z.after_show_tile(aa)},after_show_tile:function(Y){this.max_height_px=Math.max(this.max_height_px,Y.html_elt.height());Y.html_elt.parent().children().css("height",this.max_height_px+"px");var Z=this.max_height_px;if(this.visible_height_px!==0){Z=Math.min(this.max_height_px,this.visible_height_px)}this.tiles_div.css("height",Z+"px")},_get_tile_bounds:function(Y,Z){var ab=Math.floor(Y*O*Z),ac=Math.ceil(O*Z),aa=(ab+ac<=this.view.max_high?ab+ac:this.view.max_high);return new GenomeRegion({chrom:this.view.chrom,start:ab,end:aa})},tool_region_and_parameters_str:function(aa,Y,ab){var Z=this,ac=(aa!==undefined&&Y!==undefined&&ab!==undefined?aa+":"+Y+"-"+ab:"all");return" - region=["+ac+"], parameters=["+Z.tool.get_param_values().join(", ")+"]"},data_and_mode_compatible:function(Y,Z){return true},can_subset:function(Y){return false},init_for_tool_data:function(){this.data_manager.set("data_url",raw_data_url);this.data_query_wait=1000;this.dataset_check_url=dataset_state_url;this.normal_postdraw_actions=this.postdraw_actions;this.postdraw_actions=function(aa,ab,ad,Y){var Z=this;Z.normal_postdraw_actions(aa,ab,ad,Y);Z.dataset_state_url=converted_datasets_state_url;Z.data_query_wait=G;var ac=new ServerStateDeferred({url:Z.dataset_state_url,url_params:{dataset_id:Z.dataset_id,hda_ldda:Z.hda_ldda},interval:Z.data_query_wait,success_fn:function(ae){return ae!=="pending"}});$.when(ac.go()).then(function(){Z.data_manager.set("data_url",default_data_url)});Z.postdraw_actions=Z.normal_postdraw_actions}}});var V=function(Z,Y){var aa={resize:false};h.call(this,Z,Y,aa);this.container_div.addClass("label-track")};o(V.prototype,h.prototype,{build_header_div:function(){},init:function(){this.enabled=true},_draw:function(){var aa=this.view,ab=aa.high-aa.low,ae=Math.floor(Math.pow(10,Math.floor(Math.log(ab)/Math.log(10)))),Y=Math.floor(aa.low/ae)*ae,ac=this.view.container.width(),Z=$("<div style='position: relative; height: 1.3em;'></div>");while(Y<aa.high){var ad=(Y-aa.low)/ab*ac;Z.append($("<div class='label'>"+commatize(Y)+"</div>").css({position:"absolute",left:ad-1}));Y+=ae}this.content_div.children(":first").remove();this.content_div.append(Z)}});var g=function(Z,Y,ac){I.call(this,Z,Y,ac);this.drawables=[];this.left_offset=0;if("drawables" in ac){var ab;for(var aa=0;aa<ac.drawables.length;aa++){ab=ac.drawables[aa];this.drawables[aa]=object_from_template(ab,Z,null);if(ab.left_offset>this.left_offset){this.left_offset=ab.left_offset}}this.enabled=true}if(this.drawables.length!==0){this.set_display_modes(this.drawables[0].display_modes,this.drawables[0].mode)}this.update_icons();this.obj_type="CompositeTrack"};o(g.prototype,I.prototype,{action_icons_def:[{name:"composite_icon",title:"Show individual tracks",css_class:"layers-stack",on_click_fn:function(Y){$(".tipsy").remove();Y.show_group()}}].concat(I.prototype.action_icons_def),to_dict:v.prototype.to_dict,add_drawable:v.prototype.add_drawable,unpack_drawables:v.prototype.unpack_drawables,change_mode:function(Y){I.prototype.change_mode.call(this,Y);for(var Z=0;Z<this.drawables.length;Z++){this.drawables[Z].change_mode(Y)}},init:function(){var aa=[];for(var Z=0;Z<this.drawables.length;Z++){aa.push(this.drawables[Z].init())}var Y=this;$.when.apply($,aa).then(function(){Y.enabled=true;Y.request_draw()})},update_icons:function(){this.action_icons.filters_icon.hide();this.action_icons.tools_icon.hide();this.action_icons.param_space_viz_icon.hide()},can_draw:p.prototype.can_draw,draw_helper:function(Z,ao,av,ar,ag,ai,ap){var an=this,az=this._gen_tile_cache_key(ao,ai,av),ad=this._get_tile_bounds(av,ar);if(!ap){ap={}}var ay=(Z?undefined:an.tile_cache.get_elt(az));if(ay){an.show_tile(ay,ag,ai);return ay}var ah=[],an,al=true,at,aj;for(var au=0;au<this.drawables.length;au++){an=this.drawables[au];at=an.data_manager.get_data(ad,an.mode,ar,an.data_url_extra_params);if(is_deferred(at)){al=false}ah.push(at);aj=null;if(view.reference_track&&ai>view.canvas_manager.char_width_px){aj=view.reference_track.data_manager.get_data(ad,an.mode,ar,view.reference_track.data_url_extra_params);if(is_deferred(aj)){al=false}}ah.push(aj)}if(al){o(at,ap.more_tile_data);this.tile_predraw_init();var ac=an.view.canvas_manager.new_canvas(),ae=an._get_tile_bounds(av,ar),aw=ad.get("start"),aa=ad.get("end"),ax=0,ao=Math.ceil((aa-aw)*ai)+this.left_offset,am=0,ab=[];var Y=0;for(var au=0;au<this.drawables.length;au++,ax+=2){an=this.drawables[au];at=ah[ax];var ak=an.mode;if(ak==="Auto"){ak=an.get_mode(at);an.update_auto_mode(ak)}ab.push(ak);Y=an.get_canvas_height(at,ak,ai,ao);if(Y>am){am=Y}}ac.width=ao;ac.height=(ap.height?ap.height:am);ax=0;var aq=ac.getContext("2d");aq.translate(this.left_offset,0);aq.globalAlpha=0.5;aq.globalCompositeOperation="source-over";for(var au=0;au<this.drawables.length;au++,ax+=2){an=this.drawables[au];at=ah[ax];aj=ah[ax+1];ay=an.draw_tile(at,aq,ab[au],ar,ad,ai,aj)}this.tile_cache.set_elt(az,ay);this.show_tile(ay,ag,ai);return ay}var af=$.Deferred(),an=this;$.when.apply($,ah).then(function(){view.request_redraw(false,false,false,an);af.resolve()});return af},show_group:function(){var ab=new L(this.view,this.container,{name:this.name}),Y;for(var aa=0;aa<this.drawables.length;aa++){Y=this.drawables[aa];ab.add_drawable(Y);Y.container=ab;ab.content_div.append(Y.container_div)}var Z=this.container.replace_drawable(this,ab,true);ab.request_draw()},tile_predraw_init:function(){var ab=Number.MAX_VALUE,Y=-ab,Z;for(var aa=0;aa<this.drawables.length;aa++){Z=this.drawables[aa];if(Z instanceof i){if(Z.prefs.min_value<ab){ab=Z.prefs.min_value}if(Z.prefs.max_value>Y){Y=Z.prefs.max_value}}}for(var aa=0;aa<this.drawables.length;aa++){Z=this.drawables[aa];Z.prefs.min_value=ab;Z.prefs.max_value=Y}},postdraw_actions:function(aa,ad,af,Z){I.prototype.postdraw_actions.call(this,aa,ad,af,Z);var ac=-1;for(var ab=0;ab<aa.length;ab++){var Y=aa[ab].html_elt.find("canvas").height();if(Y>ac){ac=Y}}for(var ab=0;ab<aa.length;ab++){var ae=aa[ab];if(ae.html_elt.find("canvas").height()!==ac){this.draw_helper(true,ad,ae.index,ae.resolution,ae.html_elt.parent(),af,{height:ac});ae.html_elt.remove()}}}});var x=function(Y){I.call(this,Y,{content_div:Y.top_labeltrack},{resize:false});Y.reference_track=this;this.left_offset=200;this.visible_height_px=12;this.container_div.addClass("reference-track");this.content_div.css("background","none");this.content_div.css("min-height","0px");this.content_div.css("border","none");this.data_url=reference_url;this.data_url_extra_params={dbkey:Y.dbkey};this.data_manager=new ReferenceTrackDataManager({data_url:reference_url});this.hide_contents()};o(x.prototype,p.prototype,I.prototype,{build_header_div:function(){},init:function(){this.data_manager.clear();this.enabled=true},can_draw:p.prototype.can_draw,draw_helper:function(ac,aa,Y,Z,ad,ae,ab){if(ae>this.view.canvas_manager.char_width_px){return I.prototype.draw_helper.call(this,ac,aa,Y,Z,ad,ae,ab)}else{this.hide_contents();return null}},draw_tile:function(ag,ah,ac,ab,ae,ai){var aa=this;if(ai>this.view.canvas_manager.char_width_px){if(ag.data===null){this.hide_contents();return}var Z=ah.canvas;ah.font=ah.canvas.manager.default_font;ah.textAlign="center";ag=ag.data;for(var ad=0,af=ag.length;ad<af;ad++){var Y=Math.floor(ad*ai);ah.fillText(ag[ad],Y,10)}this.show_contents();return new b(aa,ae,ab,Z,ag)}this.hide_contents()}});var i=function(aa,Z,ab){var Y=this;this.display_modes=["Histogram","Line","Filled","Intensity"];this.mode="Histogram";I.call(this,aa,Z,ab);this.hda_ldda=ab.hda_ldda;this.dataset_id=ab.dataset_id;this.original_dataset_id=this.dataset_id;this.left_offset=0;this.config=new B({track:this,params:[{key:"name",label:"Name",type:"text",default_value:this.name},{key:"color",label:"Color",type:"color",default_value:get_random_color()},{key:"min_value",label:"Min Value",type:"float",default_value:undefined},{key:"max_value",label:"Max Value",type:"float",default_value:undefined},{key:"mode",type:"string",default_value:this.mode,hidden:true},{key:"height",type:"int",default_value:32,hidden:true}],saved_values:ab.prefs,onchange:function(){Y.set_name(Y.prefs.name);Y.vertical_range=Y.prefs.max_value-Y.prefs.min_value;Y.set_min_value(Y.prefs.min_value);Y.set_max_value(Y.prefs.max_value)}});this.prefs=this.config.values;this.visible_height_px=this.config.values.height;this.vertical_range=this.config.values.max_value-this.config.values.min_value};o(i.prototype,p.prototype,I.prototype,{on_resize:function(){this.request_draw(true)},set_min_value:function(Y){this.prefs.min_value=Y;$("#linetrack_"+this.dataset_id+"_minval").text(this.prefs.min_value);this.tile_cache.clear();this.request_draw()},set_max_value:function(Y){this.prefs.max_value=Y;$("#linetrack_"+this.dataset_id+"_maxval").text(this.prefs.max_value);this.tile_cache.clear();this.request_draw()},predraw_init:function(){var Y=this;Y.vertical_range=undefined;return $.getJSON(Y.data_url,{stats:true,chrom:Y.view.chrom,low:null,high:null,hda_ldda:Y.hda_ldda,dataset_id:Y.dataset_id},function(Z){Y.container_div.addClass("line-track");var ac=Z.data;if(isNaN(parseFloat(Y.prefs.min_value))||isNaN(parseFloat(Y.prefs.max_value))){var aa=ac.min,ae=ac.max;aa=Math.floor(Math.min(0,Math.max(aa,ac.mean-2*ac.sd)));ae=Math.ceil(Math.max(0,Math.min(ae,ac.mean+2*ac.sd)));Y.prefs.min_value=aa;Y.prefs.max_value=ae;$("#track_"+Y.dataset_id+"_minval").val(Y.prefs.min_value);$("#track_"+Y.dataset_id+"_maxval").val(Y.prefs.max_value)}Y.vertical_range=Y.prefs.max_value-Y.prefs.min_value;Y.total_frequency=ac.total_frequency;Y.container_div.find(".yaxislabel").remove();var ad=$("<div/>").text(T(Y.prefs.min_value,3)).make_text_editable({num_cols:6,on_finish:function(af){$(".tipsy").remove();var af=parseFloat(af);if(!isNaN(af)){Y.set_min_value(af)}},help_text:"Set min value"}).addClass("yaxislabel bottom").attr("id","linetrack_"+Y.dataset_id+"_minval").prependTo(Y.container_div),ab=$("<div/>").text(T(Y.prefs.max_value,3)).make_text_editable({num_cols:6,on_finish:function(af){$(".tipsy").remove();var af=parseFloat(af);if(!isNaN(af)){Y.set_max_value(af)}},help_text:"Set max value"}).addClass("yaxislabel top").attr("id","linetrack_"+Y.dataset_id+"_maxval").prependTo(Y.container_div)})},draw_tile:function(ah,af,aa,Z,ac,ag){var Y=af.canvas,ab=ac.get("start"),ae=ac.get("end"),ad=new H.LinePainter(ah.data,ab,ae,this.prefs,aa);ad.draw(af,Y.width,Y.height,ag);return new b(this,ac,Z,Y,ah.data)},can_subset:function(Y){return false}});var c=function(ab,aa,ad){var Z=this;this.display_modes=["Auto","Histogram","Dense","Squish","Pack"];I.call(this,ab,aa,ad);var ac=get_random_color(),Y=get_random_color([ac,"#ffffff"]);this.config=new B({track:this,params:[{key:"name",label:"Name",type:"text",default_value:this.name},{key:"block_color",label:"Block color",type:"color",default_value:ac},{key:"reverse_strand_color",label:"Antisense strand color",type:"color",default_value:Y},{key:"label_color",label:"Label color",type:"color",default_value:"black"},{key:"show_counts",label:"Show summary counts",type:"bool",default_value:true,help:"Show the number of items in each bin when drawing summary histogram"},{key:"histogram_max",label:"Histogram maximum",type:"float",default_value:null,help:"clear value to set automatically"},{key:"connector_style",label:"Connector style",type:"select",default_value:"fishbones",options:[{label:"Line with arrows",value:"fishbone"},{label:"Arcs",value:"arcs"}]},{key:"mode",type:"string",default_value:this.mode,hidden:true},{key:"height",type:"int",default_value:this.visible_height_px,hidden:true}],saved_values:ad.prefs,onchange:function(){Z.set_name(Z.prefs.name);Z.tile_cache.clear();Z.set_painter_from_config();Z.request_draw()}});this.prefs=this.config.values;this.visible_height_px=this.config.values.height;this.container_div.addClass("feature-track");this.hda_ldda=ad.hda_ldda;this.dataset_id=ad.dataset_id;this.original_dataset_id=ad.dataset_id;this.show_labels_scale=0.001;this.showing_details=false;this.summary_draw_height=30;this.slotters={};this.start_end_dct={};this.left_offset=200;this.set_painter_from_config()};o(c.prototype,p.prototype,I.prototype,{set_dataset:function(Y){this.dataset_id=Y.get("id");this.hda_ldda=Y.get("hda_ldda");this.data_manager.set("dataset",Y)},set_painter_from_config:function(){if(this.config.values.connector_style==="arcs"){this.painter=H.ArcLinkedFeaturePainter}else{this.painter=H.LinkedFeaturePainter}},before_draw:function(){this.max_height_px=0},postdraw_actions:function(an,ai,ad,ac){I.prototype.postdraw_actions.call(this,an,ac);var ah=this;if(ah.mode==="Histogram"){var ak,Z=-1;for(ak=0;ak<an.length;ak++){var aj=an[ak].max_val;if(aj>Z){Z=aj}}for(ak=0;ak<an.length;ak++){var ap=an[ak];if(ap.max_val!==Z){ap.html_elt.remove();ah.draw_helper(true,ai,ap.index,ap.resolution,ap.html_elt.parent(),ad,{more_tile_data:{max:Z}})}}}if(ah.filters_manager){var ae=ah.filters_manager.filters;for(var am=0;am<ae.length;am++){ae[am].update_ui_elt()}var ao=false,Y,af;for(var ak=0;ak<an.length;ak++){if(an[ak].data.length){Y=an[ak].data[0];for(var am=0;am<ae.length;am++){af=ae[am];if(af.applies_to(Y)&&af.min!==af.max){ao=true;break}}}}if(ah.filters_available!==ao){ah.filters_available=ao;if(!ah.filters_available){ah.filters_manager.hide()}ah.update_icons()}}this.container_div.find(".yaxislabel").remove();var ab=an[0];if(ab instanceof j){var ag=(this.prefs.histogram_max?this.prefs.histogram_max:ab.max_val),aa=$("<div/>").text(ag).make_text_editable({num_cols:12,on_finish:function(aq){$(".tipsy").remove();var aq=parseFloat(aq);ah.prefs.histogram_max=(!isNaN(aq)?aq:null);ah.tile_cache.clear();ah.request_draw()},help_text:"Set max value; leave blank to use default"}).addClass("yaxislabel top").css("color",this.prefs.label_color);this.container_div.prepend(aa)}if(ab instanceof K){var al=true;for(var ak=0;ak<an.length;ak++){if(!an[ak].all_slotted){al=false;break}}if(!al){this.action_icons.show_more_rows_icon.show()}else{this.action_icons.show_more_rows_icon.hide()}}else{this.action_icons.show_more_rows_icon.hide()}},update_auto_mode:function(Y){var Y;if(this.mode==="Auto"){if(Y==="no_detail"){Y="feature spans"}else{if(Y==="summary_tree"){Y="coverage histogram"}}this.action_icons.mode_icon.attr("title","Set display mode (now: Auto/"+Y+")")}},incremental_slots:function(ac,Y,ab){var Z=this.view.canvas_manager.dummy_context,aa=this.slotters[ac];if(!aa||(aa.mode!==ab)){aa=new (r.FeatureSlotter)(ac,ab,w,function(ad){return Z.measureText(ad)});this.slotters[ac]=aa}return aa.slot_features(Y)},get_summary_tree_data:function(ac,af,aa,an){if(an>aa-af){an=aa-af}var aj=Math.floor((aa-af)/an),am=[],ab=0;var ad=0,ae=0,ai,al=0,ag=[],ak,ah;var Z=function(aq,ap,ar,ao){aq[0]=ap+ar*ao;aq[1]=ap+(ar+1)*ao};while(al<an&&ad!==ac.length){var Y=false;for(;al<an&&!Y;al++){Z(ag,af,al,aj);for(ae=ad;ae<ac.length;ae++){ai=ac[ae].slice(1,3);if(is_overlap(ai,ag)){Y=true;break}}if(Y){break}}data_start_index=ae;am[am.length]=ak=[ag[0],0];for(;ae<ac.length;ae++){ai=ac[ae].slice(1,3);if(is_overlap(ai,ag)){ak[1]++}else{break}}if(ak[1]>ab){ab=ak[1]}al++}return{max:ab,delta:aj,data:am}},get_mode:function(Y){if(Y.dataset_type==="summary_tree"){mode="summary_tree"}else{if(Y.extra_info==="no_detail"||this.is_overview){mode="no_detail"}else{if(this.view.high-this.view.low>E){mode="Squish"}else{mode="Pack"}}}return mode},get_canvas_height:function(Y,ac,ad,Z){if(ac==="summary_tree"||ac==="Histogram"){return this.summary_draw_height}else{var ab=this.incremental_slots(ad,Y.data,ac);var aa=new (this.painter)(null,null,null,this.prefs,ac);return Math.max(X,aa.get_required_height(ab,Z))}},draw_tile:function(aj,an,al,ao,ab,af,aa){var am=this,Z=an.canvas,av=ab.get("start"),Y=ab.get("end"),aA=25,ac=this.left_offset;if(al==="summary_tree"||al==="Histogram"){if(aj.dataset_type!=="summary_tree"){var ag=this.get_summary_tree_data(aj.data,av,Y,200);if(aj.max){ag.max=aj.max}aj=ag}var ax=new H.SummaryTreePainter(aj,av,Y,this.prefs);ax.draw(an,Z.width,Z.height,af);return new j(am,ab,ao,Z,aj.data,aj.max)}var ae=[],ak=this.slotters[af].slots;all_slotted=true;if(aj.data){var ah=this.filters_manager.filters;for(var ap=0,ar=aj.data.length;ap<ar;ap++){var ad=aj.data[ap];var aq=false;var ai;for(var au=0,az=ah.length;au<az;au++){ai=ah[au];ai.update_attrs(ad);if(!ai.keep(ad)){aq=true;break}}if(!aq){ae.push(ad);if(!(ad[0] in ak)){all_slotted=false}}}}var ay=(this.filters_manager.alpha_filter?new y(this.filters_manager.alpha_filter):null);var aw=(this.filters_manager.height_filter?new y(this.filters_manager.height_filter):null);var ax=new (this.painter)(ae,av,Y,this.prefs,al,ay,aw,aa);var at=null;an.fillStyle=this.prefs.block_color;an.font=an.canvas.manager.default_font;an.textAlign="right";if(aj.data){at=ax.draw(an,Z.width,Z.height,af,ak);at.translation=-ac}return new K(am,ab,ao,Z,aj.data,af,al,aj.message,all_slotted,at)},data_and_mode_compatible:function(Y,Z){if(Z==="Auto"){return true}else{if(Y.extra_info==="no_detail"||Y.dataset_type==="summary_tree"){return false}else{return true}}},can_subset:function(Y){if(Y.dataset_type==="summary_tree"||Y.message||Y.extra_info==="no_detail"){return false}return true}});var N=function(Z,Y,aa){c.call(this,Z,Y,aa);this.config=new B({track:this,params:[{key:"name",label:"Name",type:"text",default_value:this.name},{key:"block_color",label:"Block color",type:"color",default_value:get_random_color()},{key:"label_color",label:"Label color",type:"color",default_value:"black"},{key:"show_insertions",label:"Show insertions",type:"bool",default_value:false},{key:"show_counts",label:"Show summary counts",type:"bool",default_value:true},{key:"mode",type:"string",default_value:this.mode,hidden:true}],saved_values:aa.prefs,onchange:function(){this.track.set_name(this.track.prefs.name);this.track.tile_cache.clear();this.track.request_draw()}});this.prefs=this.config.values;this.painter=H.ReadPainter};o(N.prototype,p.prototype,I.prototype,c.prototype);var Q=function(aa,Z,ac){c.call(this,aa,Z,ac);var ab=get_random_color(),Y=get_random_color([ab,"#ffffff"]);this.config=new B({track:this,params:[{key:"name",label:"Name",type:"text",default_value:this.name},{key:"block_color",label:"Block and sense strand color",type:"color",default_value:ab},{key:"reverse_strand_color",label:"Antisense strand color",type:"color",default_value:Y},{key:"label_color",label:"Label color",type:"color",default_value:"black"},{key:"show_insertions",label:"Show insertions",type:"bool",default_value:false},{key:"show_differences",label:"Show differences only",type:"bool",default_value:true},{key:"show_counts",label:"Show summary counts",type:"bool",default_value:true},{key:"histogram_max",label:"Histogram maximum",type:"float",default_value:null,help:"Clear value to set automatically"},{key:"mode",type:"string",default_value:this.mode,hidden:true}],saved_values:ac.prefs,onchange:function(){this.track.set_name(this.track.prefs.name);this.track.tile_cache.clear();this.track.request_draw()}});this.prefs=this.config.values;this.painter=H.ReadPainter;this.update_icons()};o(Q.prototype,p.prototype,I.prototype,c.prototype);R.View=W;R.DrawableGroup=L;R.LineTrack=i;R.FeatureTrack=c;R.ReadTrack=Q;R.VcfTrack=N;R.CompositeTrack=g};var slotting_module=function(c,b){var e=c("class").extend;var d=2,a=5;b.FeatureSlotter=function(i,h,f,g){this.slots={};this.start_end_dct={};this.w_scale=i;this.mode=h;this.include_label=(h==="Pack");this.max_rows=f;this.measureText=g};e(b.FeatureSlotter.prototype,{slot_features:function(m){var p=this.w_scale,h=this.start_end_dct,x=[],z=[],n=0,y=this.max_rows;for(var v=0,w=m.length;v<w;v++){var k=m[v],o=k[0];if(this.slots[o]!==undefined){n=Math.max(n,this.slots[o]);z.push(this.slots[o])}else{x.push(v)}}var q=function(E,F){for(var D=0;D<=y;D++){var B=false,G=h[D];if(G!==undefined){for(var A=0,C=G.length;A<C;A++){var i=G[A];if(F>i[0]&&E<i[1]){B=true;break}}}if(!B){return D}}return -1};for(var v=0,w=x.length;v<w;v++){var k=m[x[v]],o=k[0],t=k[1],f=k[2],r=k[3],g=Math.floor(t*p),l=Math.ceil(f*p),u=this.measureText(r).width,j;if(r!==undefined&&this.include_label){u+=(d+a);if(g-u>=0){g-=u;j="left"}else{l+=u;j="right"}}var s=q(g,l);if(s>=0){if(h[s]===undefined){h[s]=[]}h[s].push([g,l]);this.slots[o]=s;n=Math.max(n,s)}}return n+1}})};var painters_module=function(i,x){var u=i("class").extend;var p=function(I,A,G,z,F,D){if(D===undefined){D=4}var C=z-A;var B=F-G;var E=Math.floor(Math.sqrt(C*C+B*B)/D);var J=C/E;var H=B/E;var y;for(y=0;y<E;y++,A+=J,G+=H){if(y%2!==0){continue}I.fillRect(A,G,D,1)}};var q=function(B,A,z,E){var D=A-E/2,C=A+E/2,F=z-Math.sqrt(E*3/2);B.beginPath();B.moveTo(D,F);B.lineTo(C,F);B.lineTo(A,z);B.lineTo(D,F);B.strokeStyle=this.fillStyle;B.fill();B.stroke();B.closePath()};var d=function(y){this.default_val=(y?y:1)};d.prototype.gen_val=function(y){return this.default_val};var l=function(A,C,y,z,B){this.data=A;this.view_start=C;this.view_end=y;this.prefs=u({},this.default_prefs,z);this.mode=B};l.prototype.default_prefs={};l.prototype.draw=function(z,A,y,B){};var v=function(A,C,y,z,B){l.call(this,A,C,y,z,B)};v.prototype.default_prefs={show_counts:false};v.prototype.draw=function(L,z,K,M){var E=this.view_start,N=this.view_end-this.view_start,I=this.data.data,G=(this.prefs.histogram_max?this.prefs.histogram_max:this.data.max),B=K;delta_x_px=Math.ceil(this.data.delta*M);L.save();for(var C=0,D=I.length;C<D;C++){var H=Math.floor((I[C][0]-E)*M);var F=I[C][1];if(!F){continue}var J=F/G*K;if(F!==0&&J<1){J=1}L.fillStyle=this.prefs.block_color;L.fillRect(H,B-J,delta_x_px,J);var A=4;if(this.prefs.show_counts&&(L.measureText(F).width+A)<delta_x_px){L.fillStyle=this.prefs.label_color;L.textAlign="center";L.fillText(F,H+(delta_x_px/2),10)}}L.restore()};var b=function(y,C,E,F,A){l.call(this,y,C,E,F,A);if(this.prefs.min_value===undefined){var G=Infinity;for(var z=0,B=this.data.length;z<B;z++){G=Math.min(G,this.data[z][1])}this.prefs.min_value=G}if(this.prefs.max_value===undefined){var D=-Infinity;for(var z=0,B=this.data.length;z<B;z++){D=Math.max(D,this.data[z][1])}this.prefs.max_value=D}};b.prototype.default_prefs={min_value:undefined,max_value:undefined,mode:"Histogram",color:"#000",overflow_color:"#F66"};b.prototype.draw=function(S,Q,N,D){var I=false,K=this.prefs.min_value,F=this.prefs.max_value,M=F-K,B=N,C=this.view_start,P=this.view_end-this.view_start,L=this.mode,aa=this.data;S.save();var ac=Math.round(N+K/M*N);if(L!=="Intensity"){S.fillStyle="#aaa";S.fillRect(0,ac,Q,1)}S.beginPath();var Y,G,E;if(aa.length>1){E=Math.ceil((aa[1][0]-aa[0][0])*D)}else{E=10}var A=parseInt(this.prefs.color.slice(1),16),H=(A&16711680)>>16,R=(A&65280)>>8,V=A&255;for(var T=0,U=aa.length;T<U;T++){S.fillStyle=S.strokeStyle=this.prefs.color;Y=Math.round((aa[T][0]-C)*D);G=aa[T][1];var W=false,J=false;if(G===null){if(I&&L==="Filled"){S.lineTo(Y,B)}I=false;continue}if(G<K){J=true;G=K}else{if(G>F){W=true;G=F}}if(L==="Histogram"){G=Math.round(G/M*B);S.fillRect(Y,ac,E,-G)}else{if(L==="Intensity"){var z=(G-K)/M,O=Math.round(H+(255-H)*(1-z)),X=Math.round(R+(255-R)*(1-z)),ab=Math.round(V+(255-V)*(1-z));S.fillStyle="rgb("+O+","+X+","+ab+")";S.fillRect(Y,0,E,B)}else{G=Math.round(B-(G-K)/M*B);if(I){S.lineTo(Y,G)}else{I=true;if(L==="Filled"){S.moveTo(Y,B);S.lineTo(Y,G)}else{S.moveTo(Y,G)}}}}S.fillStyle=this.prefs.overflow_color;if(W||J){var Z;if(L==="Histogram"||L==="Intensity"){Z=E}else{Y-=2;Z=4}if(W){S.fillRect(Y,0,Z,3)}if(J){S.fillRect(Y,B-3,Z,3)}}S.fillStyle=this.prefs.color}if(L==="Filled"){if(I){S.lineTo(Y,ac);S.lineTo(0,ac)}S.fill()}else{S.stroke()}S.restore()};var m=function(y){this.feature_positions={};this.slot_height=y;this.translation=0;this.y_translation=0};m.prototype.map_feature_data=function(z,B,y,A){if(!this.feature_positions[B]){this.feature_positions[B]=[]}this.feature_positions[B].push({data:z,x_start:y,x_end:A})};m.prototype.get_feature_data=function(z,D){var C=Math.floor((D-this.y_translation)/this.slot_height),B;if(!this.feature_positions[C]){return null}z+=this.translation;for(var A=0;A<this.feature_positions[C].length;A++){B=this.feature_positions[C][A];if(z>=B.x_start&&z<=B.x_end){return B.data}}};var o=function(A,D,y,z,C,E,B){l.call(this,A,D,y,z,C);this.alpha_scaler=(E?E:new d());this.height_scaler=(B?B:new d())};o.prototype.default_prefs={block_color:"#FFF",connector_color:"#FFF"};u(o.prototype,{get_required_height:function(A,z){var y=y_scale=this.get_row_height(),B=this.mode;if(B==="no_detail"||B==="Squish"||B==="Pack"){y=A*y_scale}return y+this.get_top_padding(z)+this.get_bottom_padding(z)},get_top_padding:function(y){return 0},get_bottom_padding:function(y){return Math.max(Math.round(this.get_row_height()/2),5)},draw:function(K,I,G,E,F){var Q=this.data,D=this.view_start,M=this.view_end;K.save();K.fillStyle=this.prefs.block_color;K.textAlign="right";var H=this.view_end-this.view_start,L=this.get_row_height(),P=new m(L),B;for(var N=0,O=Q.length;N<O;N++){var A=Q[N],C=A[0],J=A[1],y=A[2],z=(F&&F[C]!==undefined?F[C]:null);if((J<M&&y>D)&&(this.mode==="Dense"||z!==null)){B=this.draw_element(K,this.mode,A,z,D,M,E,L,I);P.map_feature_data(A,z,B[0],B[1])}}K.restore();P.y_translation=this.get_top_padding(I);return P},draw_element:function(E,A,G,C,B,D,F,z,y){console.log("WARNING: Unimplemented function.");return[0,0]}});var c=10,h=3,k=5,w=10,f=1,s=9,e=3,a=9,j=2,g="#ccc";var r=function(A,D,y,z,C,E,B){o.call(this,A,D,y,z,C,E,B);this.draw_background_connector=true;this.draw_individual_connectors=false};u(r.prototype,o.prototype,{get_row_height:function(){var z=this.mode,y;if(z==="Dense"){y=c}else{if(z==="no_detail"){y=h}else{if(z==="Squish"){y=k}else{y=w}}}return y},draw_element:function(M,D,X,H,O,ai,am,ao,y){var T=X[0],ak=X[1],ad=X[2]-1,Q=X[3],K=X[4],ae=Math.floor(Math.max(0,(ak-O)*am)),N=Math.ceil(Math.min(y,Math.max(0,(ad-O)*am))),ac=ae,an=N,aa=(D==="Dense"?0:(0+H))*ao+this.get_top_padding(y),L,ag,R=null,aq=null,B=B=(!K||K==="+"||K==="."?this.prefs.block_color:this.prefs.reverse_strand_color);label_color=this.prefs.label_color;M.globalAlpha=this.alpha_scaler.gen_val(X);if(D==="Dense"){H=1}if(D==="no_detail"){M.fillStyle=B;M.fillRect(ae,aa+5,N-ae,f)}else{var Z=X[5],af=X[6],C=X[7],V=true;if(Z&&af){R=Math.floor(Math.max(0,(Z-O)*am));aq=Math.ceil(Math.min(y,Math.max(0,(af-O)*am)))}var al,U;if(D==="Squish"){al=1;U=e;V=false}else{if(D==="Dense"){al=5;U=s}else{al=5;U=a}}if(!C){M.fillStyle=B;M.fillRect(ae,aa+1,N-ae,U);if(K&&V){if(K==="+"){M.fillStyle=M.canvas.manager.get_pattern("right_strand_inv")}else{if(K==="-"){M.fillStyle=M.canvas.manager.get_pattern("left_strand_inv")}}M.fillRect(ae,aa+1,N-ae,U)}}else{var J,W;if(D==="Squish"||D==="Dense"){J=aa+Math.floor(e/2)+1;W=1}else{if(K){J=aa;W=U}else{J+=(e/2)+1;W=1}}if(this.draw_background_connector){if(D==="Squish"||D==="Dense"){M.fillStyle=g}else{if(K){if(K==="+"){M.fillStyle=M.canvas.manager.get_pattern("right_strand")}else{if(K==="-"){M.fillStyle=M.canvas.manager.get_pattern("left_strand")}}}else{M.fillStyle=g}}M.fillRect(ae,J,N-ae,W)}var E;for(var aj=0,A=C.length;aj<A;aj++){var F=C[aj],z=Math.floor(Math.max(0,(F[0]-O)*am)),Y=Math.ceil(Math.min(y,Math.max((F[1]-1-O)*am))),S,ab;if(z>Y){continue}M.fillStyle=B;M.fillRect(z,aa+(U-al)/2+1,Y-z,al);if(R!==undefined&&af>Z&&!(z>aq||Y<R)){var ah=Math.max(z,R),I=Math.min(Y,aq);M.fillRect(ah,aa+1,I-ah,U)}if(this.draw_individual_connectors&&S){this.draw_connector(M,S,ab,z,Y,aa)}S=z;ab=Y}if(D==="Pack"){M.globalAlpha=1;M.fillStyle="white";var G=this.height_scaler.gen_val(X),P=Math.ceil(U*G),ap=Math.round((U-P)/2);if(G!==1){M.fillRect(ae,J+1,N-ae,ap);M.fillRect(ae,J+U-ap+1,N-ae,ap)}}}M.globalAlpha=1;if(D==="Pack"&&ak>O){M.fillStyle=label_color;if(O===0&&ae-M.measureText(Q).width<0){M.textAlign="left";M.fillText(Q,N+j,aa+8);an+=M.measureText(Q).width+j}else{M.textAlign="right";M.fillText(Q,ae-j,aa+8);ac-=M.measureText(Q).width+j}}}M.globalAlpha=1;return[ac,an]}});var t=function(B,E,y,A,D,F,C,z){o.call(this,B,E,y,A,D,F,C);this.ref_seq=(z?z.data:null)};u(t.prototype,o.prototype,{get_row_height:function(){var y,z=this.mode;if(z==="Dense"){y=c}else{if(z==="Squish"){y=k}else{y=w;if(this.prefs.show_insertions){y*=2}}}return y},draw_read:function(K,A,ag,V,L,aa,ad,C,B,M){K.textAlign="center";var J=this,R=[L,aa],Z=0,W=0,D=0,F=K.canvas.manager.char_width_px,y=(B==="+"?this.prefs.block_color:this.prefs.reverse_strand_color);var O=[];if((A==="Pack"||this.mode==="Auto")&&M!==undefined&&ag>F){D=Math.round(ag/2)}if(!C){C=[[0,M.length]]}for(var G=0,I=C.length;G<I;G++){var z=C[G],E="MIDNSHP=X"[z[0]],S=z[1];if(E==="H"||E==="S"){Z-=S}var U=ad+Z,Y=Math.floor(Math.max(0,(U-L)*ag)),ab=Math.floor(Math.max(0,(U+S-L)*ag));if(Y===ab){ab+=1}switch(E){case"H":break;case"S":case"M":case"=":if(is_overlap([U,U+S],R)){var N=M.slice(W,W+S);if(D>0){K.fillStyle=y;K.fillRect(Y-D,V+1,ab-Y,9);K.fillStyle=g;for(var af=0,H=N.length;af<H;af++){if(this.prefs.show_differences){if(this.ref_seq){var P=this.ref_seq[U-L+af];if(!P||P.toLowerCase()===N[af].toLowerCase()){continue}}else{continue}}if(U+af>=L&&U+af<=aa){var X=Math.floor(Math.max(0,(U+af-L)*ag));K.fillText(N[af],X,V+9)}}}else{K.fillStyle=y;K.fillRect(Y,V+4,ab-Y,e)}}W+=S;Z+=S;break;case"N":K.fillStyle=g;K.fillRect(Y-D,V+5,ab-Y,1);Z+=S;break;case"D":K.fillStyle="red";K.fillRect(Y-D,V+4,ab-Y,3);Z+=S;break;case"P":break;case"I":var ah=Y-D;if(is_overlap([U,U+S],R)){var N=M.slice(W,W+S);if(this.prefs.show_insertions){var T=Y-(ab-Y)/2;if((A==="Pack"||this.mode==="Auto")&&M!==undefined&&ag>F){K.fillStyle="yellow";K.fillRect(T-D,V-9,ab-Y,9);O[O.length]={type:"triangle",data:[ah,V+4,5]};K.fillStyle=g;switch(compute_overlap([U,U+S],R)){case (OVERLAP_START):N=N.slice(L-U);break;case (OVERLAP_END):N=N.slice(0,U-aa);break;case (CONTAINED_BY):break;case (CONTAINS):N=N.slice(L-U,U-aa);break}for(var af=0,H=N.length;af<H;af++){var X=Math.floor(Math.max(0,(U+af-L)*ag));K.fillText(N[af],X-(ab-Y)/2,V)}}else{K.fillStyle="yellow";K.fillRect(T,V+(this.mode!=="Dense"?2:5),ab-Y,(A!=="Dense"?e:s))}}else{if((A==="Pack"||this.mode==="Auto")&&M!==undefined&&ag>F){O.push({type:"text",data:[N.length,ah,V+9]})}else{}}}W+=S;break;case"X":W+=S;break}}K.fillStyle="yellow";var Q,ai,ae;for(var ac=0;ac<O.length;ac++){Q=O[ac];ai=Q.type;ae=Q.data;if(ai==="text"){K.save();K.font="bold "+K.font;K.fillText(ae[0],ae[1],ae[2]);K.restore()}else{if(ai==="triangle"){q(K,ae[0],ae[1],ae[2])}}}},draw_element:function(R,M,E,B,U,z,I,S,P){var H=E[0],Q=E[1],A=E[2],J=E[3],D=Math.floor(Math.max(0,(Q-U)*I)),F=Math.ceil(Math.min(P,Math.max(0,(A-U)*I))),C=(M==="Dense"?0:(0+B))*S,G=this.prefs.label_color,O=0;if((M==="Pack"||this.mode==="Auto")&&I>R.canvas.manager.char_width_px){var O=Math.round(I/2)}if(E[5] instanceof Array){var N=Math.floor(Math.max(0,(E[4][0]-U)*I)),L=Math.ceil(Math.min(P,Math.max(0,(E[4][1]-U)*I))),K=Math.floor(Math.max(0,(E[5][0]-U)*I)),y=Math.ceil(Math.min(P,Math.max(0,(E[5][1]-U)*I)));if(E[4][1]>=U&&E[4][0]<=z&&E[4][2]){this.draw_read(R,M,I,C,U,z,E[4][0],E[4][2],E[4][3],E[4][4])}if(E[5][1]>=U&&E[5][0]<=z&&E[5][2]){this.draw_read(R,M,I,C,U,z,E[5][0],E[5][2],E[5][3],E[5][4])}if(K>L){R.fillStyle=g;p(R,L-O,C+5,K-O,C+5)}}else{this.draw_read(R,M,I,C,U,z,Q,E[4],E[5],E[6])}if(M==="Pack"&&Q>U&&J!=="."){R.fillStyle=this.prefs.label_color;var T=1;if(T===0&&D-R.measureText(J).width<0){R.textAlign="left";R.fillText(J,F+j-O,C+8)}else{R.textAlign="right";R.fillText(J,D-j-O,C+8)}}return[0,0]}});var n=function(A,D,y,z,C,E,B){r.call(this,A,D,y,z,C,E,B);this.longest_feature_length=this.calculate_longest_feature_length();this.draw_background_connector=false;this.draw_individual_connectors=true};u(n.prototype,o.prototype,r.prototype,{calculate_longest_feature_length:function(){var z=0;for(var C=0,y=this.data.length;C<y;C++){var B=this.data[C],A=B[1],D=B[2];z=Math.max(z,D-A)}return z},get_top_padding:function(z){var y=this.view_end-this.view_start,A=z/y;return Math.min(128,Math.ceil((this.longest_feature_length/2)*A))},draw_connector:function(G,B,F,H,E,D){var y=(F+H)/2,C=H-y;var A=Math.PI,z=0;if(C>0){G.beginPath();G.arc(y,D,H-y,Math.PI,0);G.stroke()}}});x.Scaler=d;x.SummaryTreePainter=v;x.LinePainter=b;x.LinkedFeaturePainter=r;x.ReadPainter=t;x.ArcLinkedFeaturePainter=n};(function(d){var c={};var b=function(e){return c[e]};var a=function(f,g){var e={};g(b,e);c[f]=e};a("class",class_module);a("slotting",slotting_module);a("painters",painters_module);a("trackster",trackster_module);for(key in c.trackster){d[key]=c.trackster[key]}})(window);
\ No newline at end of file
+var class_module=function(b,a){var c=function(){var g=arguments[0];for(var f=1;f<arguments.length;f++){var d=arguments[f];for(var e in d){g[e]=d[e]}}return g};a.extend=c};var requestAnimationFrame=(function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(b,a){window.setTimeout(b,1000/60)}})();var BEFORE=1001,CONTAINS=1002,OVERLAP_START=1003,OVERLAP_END=1004,CONTAINED_BY=1005,AFTER=1006;var compute_overlap=function(e,b){var g=e[0],f=e[1],d=b[0],c=b[1],a;if(g<d){if(f<d){a=BEFORE}else{if(f<=c){a=OVERLAP_START}else{a=CONTAINS}}}else{if(g>c){a=AFTER}else{if(f<=c){a=CONTAINED_BY}else{a=OVERLAP_END}}}return a};var is_overlap=function(c,b){var a=compute_overlap(c,b);return(a!==BEFORE&&a!==AFTER)};var is_deferred=function(a){return("isResolved" in a)};var get_random_color=function(a){if(!a){a="#ffffff"}if(typeof(a)==="string"){a=[a]}for(var j=0;j<a.length;j++){a[j]=parseInt(a[j].slice(1),16)}var n=function(t,s,i){return((t*299)+(s*587)+(i*114))/1000};var e=function(v,u,w,s,i,t){return(Math.max(v,s)-Math.min(v,s))+(Math.max(u,i)-Math.min(u,i))+(Math.max(w,t)-Math.min(w,t))};var g,o,f,k,q,h,r,c,d,b,p,m=false,l=0;do{g=Math.round(Math.random()*16777215);o=(g&16711680)>>16;f=(g&65280)>>8;k=g&255;d=n(o,f,k);m=true;for(j=0;j<a.length;j++){q=a[j];h=(q&16711680)>>16;r=(q&65280)>>8;c=q&255;b=n(h,r,c);p=e(o,f,k,h,r,c);if((Math.abs(d-b)<40)||(p<200)){m=false;break}}l++}while(!m&&l<=10);return"#"+(16777216+g).toString(16).substr(1,6)};var create_action_icon=function(c,b,a){return $("<a/>").attr("href","javascript:void(0);").attr("title",c).addClass("icon-button").addClass(b).tooltip().click(a)};var trackster_module=function(d,S){var o=d("class").extend,s=d("slotting"),I=d("painters");var m={};var k=function(Z,aa){m[Z.attr("id")]=aa};var l=function(Z,ab,ad,ac){ad=".group";var aa={};m[Z.attr("id")]=ac;Z.bind("drag",{handle:"."+ab,relative:true},function(al,am){var ak=$(this),ap=$(this).parent(),ah=ap.children(),aj=m[$(this).attr("id")],ag,af,an,ae,ai;af=$(this).parents(ad);if(af.length!==0){an=af.position().top;ae=an+af.outerHeight();if(am.offsetY<an){$(this).insertBefore(af);var ao=m[af.attr("id")];ao.remove_drawable(aj);ao.container.add_drawable_before(aj,ao);return}else{if(am.offsetY>ae){$(this).insertAfter(af);var ao=m[af.attr("id")];ao.remove_drawable(aj);ao.container.add_drawable(aj);return}}}af=null;for(ai=0;ai<ah.length;ai++){ag=$(ah.get(ai));an=ag.position().top;ae=an+ag.outerHeight();if(ag.is(ad)&&this!==ag.get(0)&&am.offsetY>=an&&am.offsetY<=ae){if(am.offsetY-an<ae-am.offsetY){ag.find(".content-div").prepend(this)}else{ag.find(".content-div").append(this)}if(aj.container){aj.container.remove_drawable(aj)}m[ag.attr("id")].add_drawable(aj);return}}for(ai=0;ai<ah.length;ai++){ag=$(ah.get(ai));if(am.offsetY<ag.position().top&&!(ag.hasClass("reference-track")||ag.hasClass("intro"))){break}}if(ai===ah.length){if(this!==ah.get(ai-1)){ap.append(this);m[ap.attr("id")].move_drawable(aj,ai)}}else{if(this!==ah.get(ai)){$(this).insertBefore(ah.get(ai));m[ap.attr("id")].move_drawable(aj,(am.deltaY>0?ai-1:ai))}}}).bind("dragstart",function(){aa["border-top"]=Z.css("border-top");aa["border-bottom"]=Z.css("border-bottom");$(this).css({"border-top":"1px solid blue","border-bottom":"1px solid blue"})}).bind("dragend",function(){$(this).css(aa)})};S.moveable=l;var Y=16,D=9,A=20,x=100,F=12000,P=400,H=5000,u=100,n="There was an error in indexing this dataset. ",G="A converter for this dataset is not installed. Please check your datatypes_conf.xml file.",B="No data for this chrom/contig.",t="Preparing data. This can take a while for a large dataset. If the visualization is saved and closed, preparation will continue in the background.",v="Tool cannot be rerun: ",a="Loading data...",T="Ready for display",N=10,E=20;function U(aa,Z){if(!Z){Z=0}var ab=Math.pow(10,Z);return Math.round(aa*ab)/ab}var p=function(aa,Z,ac){if(!p.id_counter){p.id_counter=0}this.id=p.id_counter++;this.name=ac.name;this.view=aa;this.container=Z;this.config=new C({track:this,params:[{key:"name",label:"Name",type:"text",default_value:this.name}],saved_values:ac.prefs,onchange:function(){this.track.set_name(this.track.config.values.name)}});this.prefs=this.config.values;this.drag_handle_class=ac.drag_handle_class;this.is_overview=false;this.action_icons={};this.content_visible=true;this.container_div=this.build_container_div();this.header_div=this.build_header_div();if(this.header_div){this.container_div.append(this.header_div);this.icons_div=$("<div/>").css("float","left").hide().appendTo(this.header_div);this.build_action_icons(this.action_icons_def);this.header_div.append($("<div style='clear: both'/>"));this.header_div.dblclick(function(ad){ad.stopPropagation()});var ab=this;this.container_div.hover(function(){ab.icons_div.show()},function(){ab.icons_div.hide()});$("<div style='clear: both'/>").appendTo(this.container_div)}};p.prototype.action_icons_def=[{name:"toggle_icon",title:"Hide/show content",css_class:"toggle",on_click_fn:function(Z){if(Z.content_visible){Z.action_icons.toggle_icon.addClass("toggle-expand").removeClass("toggle");Z.hide_contents();Z.content_visible=false}else{Z.action_icons.toggle_icon.addClass("toggle").removeClass("toggle-expand");Z.content_visible=true;Z.show_contents()}}},{name:"settings_icon",title:"Edit settings",css_class:"settings-icon",on_click_fn:function(aa){var ac=function(){hide_modal();$(window).unbind("keypress.check_enter_esc")},Z=function(){aa.config.update_from_form($(".dialog-box"));hide_modal();$(window).unbind("keypress.check_enter_esc")},ab=function(ad){if((ad.keyCode||ad.which)===27){ac()}else{if((ad.keyCode||ad.which)===13){Z()}}};$(window).bind("keypress.check_enter_esc",ab);show_modal("Configure",aa.config.build_form(),{Cancel:ac,OK:Z})}},{name:"remove_icon",title:"Remove",css_class:"remove-icon",on_click_fn:function(Z){$(".bs-tooltip").remove();Z.remove()}}];o(p.prototype,{init:function(){},changed:function(){this.view.changed()},can_draw:function(){if(this.enabled&&this.content_visible){return true}return false},request_draw:function(){},_draw:function(){},to_dict:function(){},set_name:function(Z){this.old_name=this.name;this.name=Z;this.name_div.text(this.name)},revert_name:function(){if(this.old_name){this.name=this.old_name;this.name_div.text(this.name)}},remove:function(){this.changed();this.container.remove_drawable(this);var Z=this.view;this.container_div.hide(0,function(){$(this).remove();Z.update_intro_div()})},build_container_div:function(){},build_header_div:function(){},add_action_icon:function(aa,af,ae,ad,Z,ac){var ab=this;this.action_icons[aa]=$("<a/>").attr("href","javascript:void(0);").attr("title",af).addClass("icon-button").addClass(ae).tooltip().click(function(){ad(ab)}).appendTo(this.icons_div);if(ac){this.action_icons[aa].hide()}},build_action_icons:function(Z){var ab;for(var aa=0;aa<Z.length;aa++){ab=Z[aa];this.add_action_icon(ab.name,ab.title,ab.css_class,ab.on_click_fn,ab.prepend,ab.hide)}},update_icons:function(){},hide_contents:function(){},show_contents:function(){}});var w=function(aa,Z,ab){p.call(this,aa,Z,ab);this.obj_type=ab.obj_type;this.drawables=[]};o(w.prototype,p.prototype,{unpack_drawables:function(ab){this.drawables=[];var aa;for(var Z=0;Z<ab.length;Z++){aa=object_from_template(ab[Z],this.view,this);this.add_drawable(aa)}},init:function(){for(var Z=0;Z<this.drawables.length;Z++){this.drawables[Z].init()}},_draw:function(){for(var Z=0;Z<this.drawables.length;Z++){this.drawables[Z]._draw()}},to_dict:function(){var aa=[];for(var Z=0;Z<this.drawables.length;Z++){aa.push(this.drawables[Z].to_dict())}return{name:this.name,prefs:this.prefs,obj_type:this.obj_type,drawables:aa}},add_drawable:function(Z){this.drawables.push(Z);Z.container=this;this.changed()},add_drawable_before:function(ab,Z){this.changed();var aa=this.drawables.indexOf(Z);if(aa!==-1){this.drawables.splice(aa,0,ab);return true}return false},replace_drawable:function(ab,Z,aa){var ac=this.drawables.indexOf(ab);if(ac!==-1){this.drawables[ac]=Z;if(aa){ab.container_div.replaceWith(Z.container_div)}this.changed()}return ac},remove_drawable:function(aa){var Z=this.drawables.indexOf(aa);if(Z!==-1){this.drawables.splice(Z,1);aa.container=null;this.changed();return true}return false},move_drawable:function(aa,ab){var Z=this.drawables.indexOf(aa);if(Z!==-1){this.drawables.splice(Z,1);this.drawables.splice(ab,0,aa);this.changed();return true}return false}});var M=function(aa,Z,ac){o(ac,{obj_type:"DrawableGroup",drag_handle_class:"group-handle"});w.call(this,aa,Z,ac);this.content_div=$("<div/>").addClass("content-div").attr("id","group_"+this.id+"_content_div").appendTo(this.container_div);k(this.container_div,this);k(this.content_div,this);l(this.container_div,this.drag_handle_class,".group",this);this.filters_manager=new V(this);this.header_div.after(this.filters_manager.parent_div);this.saved_filters_managers=[];if("drawables" in ac){this.unpack_drawables(ac.drawables)}if("filters" in ac){var ab=this.filters_manager;this.filters_manager=new V(this,ac.filters);ab.parent_div.replaceWith(this.filters_manager.parent_div);if(ac.filters.visible){this.setup_multitrack_filtering()}}};o(M.prototype,p.prototype,w.prototype,{action_icons_def:[p.prototype.action_icons_def[0],p.prototype.action_icons_def[1],{name:"composite_icon",title:"Show composite track",css_class:"layers-stack",on_click_fn:function(Z){$(".bs-tooltip").remove();Z.show_composite_track()}},{name:"filters_icon",title:"Filters",css_class:"filters-icon",on_click_fn:function(Z){if(Z.filters_manager.visible()){Z.filters_manager.clear_filters();Z._restore_filter_managers()}else{Z.setup_multitrack_filtering();Z.request_draw(true)}Z.filters_manager.toggle()}},p.prototype.action_icons_def[2]],build_container_div:function(){var Z=$("<div/>").addClass("group").attr("id","group_"+this.id);if(this.container){this.container.content_div.append(Z)}return Z},build_header_div:function(){var Z=$("<div/>").addClass("track-header");Z.append($("<div/>").addClass(this.drag_handle_class));this.name_div=$("<div/>").addClass("track-name").text(this.name).appendTo(Z);return Z},hide_contents:function(){this.tiles_div.hide()},show_contents:function(){this.tiles_div.show();this.request_draw()},update_icons:function(){var ab=this.drawables.length;if(ab===0){this.action_icons.composite_icon.hide();this.action_icons.filters_icon.hide()}else{if(ab===1){if(this.drawables[0] instanceof g){this.action_icons.composite_icon.show()}this.action_icons.filters_icon.hide()}else{var ai,ah,af,al=true,ad=this.drawables[0].get_type(),Z=0;for(ai=0;ai<ab;ai++){af=this.drawables[ai];if(af.get_type()!==ad){can_composite=false;break}if(af instanceof c){Z++}}if(al||Z===1){this.action_icons.composite_icon.show()}else{this.action_icons.composite_icon.hide();$(".bs-tooltip").remove()}if(Z>1&&Z===this.drawables.length){var am={},aa;af=this.drawables[0];for(ah=0;ah<af.filters_manager.filters.length;ah++){aa=af.filters_manager.filters[ah];am[aa.name]=[aa]}for(ai=1;ai<this.drawables.length;ai++){af=this.drawables[ai];for(ah=0;ah<af.filters_manager.filters.length;ah++){aa=af.filters_manager.filters[ah];if(aa.name in am){am[aa.name].push(aa)}}}this.filters_manager.remove_all();var ac,ae,ag,aj;for(var ak in am){ac=am[ak];if(ac.length===Z){ae=new Q({name:ac[0].name,index:ac[0].index});this.filters_manager.add_filter(ae)}}if(this.filters_manager.filters.length>0){this.action_icons.filters_icon.show()}else{this.action_icons.filters_icon.hide()}}else{this.action_icons.filters_icon.hide()}}}},_restore_filter_managers:function(){for(var Z=0;Z<this.drawables.length;Z++){this.drawables[Z].filters_manager=this.saved_filters_managers[Z]}this.saved_filters_managers=[]},setup_multitrack_filtering:function(){if(this.filters_manager.filters.length>0){this.saved_filters_managers=[];for(var Z=0;Z<this.drawables.length;Z++){drawable=this.drawables[Z];this.saved_filters_managers.push(drawable.filters_manager);drawable.filters_manager=this.filters_manager}}this.filters_manager.init_filters()},show_composite_track:function(){var ad=[];for(var aa=0;aa<this.drawables.length;aa++){ad.push(this.drawables[aa].name)}var ab="Composite Track of "+this.drawables.length+" tracks ("+ad.join(", ")+")";var ac=new g(this.view,this.view,{name:ab,drawables:this.drawables});var Z=this.container.replace_drawable(this,ac,true);ac.request_draw()},add_drawable:function(Z){w.prototype.add_drawable.call(this,Z);this.update_icons()},remove_drawable:function(Z){w.prototype.remove_drawable.call(this,Z);this.update_icons()},to_dict:function(){if(this.filters_manager.visible()){this._restore_filter_managers()}var Z=o(w.prototype.to_dict.call(this),{filters:this.filters_manager.to_dict()});if(this.filters_manager.visible()){this.setup_multitrack_filtering()}return Z},request_draw:function(Z,ab){for(var aa=0;aa<this.drawables.length;aa++){this.drawables[aa].request_draw(Z,ab)}}});var X=function(Z){o(Z,{obj_type:"View"});w.call(this,"View",Z.container,Z);this.chrom=null;this.vis_id=Z.vis_id;this.dbkey=Z.dbkey;this.label_tracks=[];this.tracks_to_be_redrawn=[];this.max_low=0;this.max_high=0;this.zoom_factor=3;this.min_separation=30;this.has_changes=false;this.load_chroms_deferred=null;this.init();this.canvas_manager=new CanvasManager(this.container.get(0).ownerDocument);this.reset()};_.extend(X.prototype,Backbone.Events);o(X.prototype,w.prototype,{init:function(){this.requested_redraw=false;var ab=this.container,Z=this;this.top_container=$("<div/>").addClass("top-container").appendTo(ab);this.browser_content_div=$("<div/>").addClass("content").css("position","relative").appendTo(ab);this.bottom_container=$("<div/>").addClass("bottom-container").appendTo(ab);this.top_labeltrack=$("<div/>").addClass("top-labeltrack").appendTo(this.top_container);this.viewport_container=$("<div/>").addClass("viewport-container").attr("id","viewport-container").appendTo(this.browser_content_div);this.content_div=this.viewport_container;k(this.viewport_container,Z);this.intro_div=$("<div/>").addClass("intro").appendTo(this.viewport_container).hide();var ac=$("<div/>").text("Add Datasets to Visualization").addClass("action-button").appendTo(this.intro_div).click(function(){add_datasets(add_datasets_url,add_track_async_url,function(ad){_.each(ad,function(ae){Z.add_drawable(object_from_template(ae,Z,Z))})})});this.nav_labeltrack=$("<div/>").addClass("nav-labeltrack").appendTo(this.bottom_container);this.nav_container=$("<div/>").addClass("trackster-nav-container").prependTo(this.top_container);this.nav=$("<div/>").addClass("trackster-nav").appendTo(this.nav_container);this.overview=$("<div/>").addClass("overview").appendTo(this.bottom_container);this.overview_viewport=$("<div/>").addClass("overview-viewport").appendTo(this.overview);this.overview_close=$("<a/>").attr("href","javascript:void(0);").attr("title","Close overview").addClass("icon-button overview-close tooltip").hide().appendTo(this.overview_viewport);this.overview_highlight=$("<div/>").addClass("overview-highlight").hide().appendTo(this.overview_viewport);this.overview_box_background=$("<div/>").addClass("overview-boxback").appendTo(this.overview_viewport);this.overview_box=$("<div/>").addClass("overview-box").appendTo(this.overview_viewport);this.default_overview_height=this.overview_box.height();this.nav_controls=$("<div/>").addClass("nav-controls").appendTo(this.nav);this.chrom_select=$("<select/>").attr({name:"chrom"}).css("width","15em").addClass("no-autocomplete").append("<option value=''>Loading</option>").appendTo(this.nav_controls);var aa=function(ad){if(ad.type==="focusout"||(ad.keyCode||ad.which)===13||(ad.keyCode||ad.which)===27){if((ad.keyCode||ad.which)!==27){Z.go_to($(this).val())}$(this).hide();$(this).val("");Z.location_span.show();Z.chrom_select.show()}};this.nav_input=$("<input/>").addClass("nav-input").hide().bind("keyup focusout",aa).appendTo(this.nav_controls);this.location_span=$("<span/>").addClass("location").attr("original-title","Click to change location").tooltip({placement:"bottom"}).appendTo(this.nav_controls);this.location_span.click(function(){Z.location_span.hide();Z.chrom_select.hide();Z.nav_input.val(Z.chrom+":"+Z.low+"-"+Z.high);Z.nav_input.css("display","inline-block");Z.nav_input.select();Z.nav_input.focus()});if(this.vis_id!==undefined){this.hidden_input=$("<input/>").attr("type","hidden").val(this.vis_id).appendTo(this.nav_controls)}this.zo_link=$("<a/>").attr("id","zoom-out").attr("title","Zoom out").tooltip({placement:"bottom"}).click(function(){Z.zoom_out();Z.request_redraw()}).appendTo(this.nav_controls);this.zi_link=$("<a/>").attr("id","zoom-in").attr("title","Zoom in").tooltip({placement:"bottom"}).click(function(){Z.zoom_in();Z.request_redraw()}).appendTo(this.nav_controls);this.load_chroms_deferred=this.load_chroms({low:0});this.chrom_select.bind("change",function(){Z.change_chrom(Z.chrom_select.val())});this.browser_content_div.click(function(ad){$(this).find("input").trigger("blur")});this.browser_content_div.bind("dblclick",function(ad){Z.zoom_in(ad.pageX,this.viewport_container)});this.overview_box.bind("dragstart",function(ad,ae){this.current_x=ae.offsetX}).bind("drag",function(ad,af){var ag=af.offsetX-this.current_x;this.current_x=af.offsetX;var ae=Math.round(ag/Z.viewport_container.width()*(Z.max_high-Z.max_low));Z.move_delta(-ae)});this.overview_close.click(function(){Z.reset_overview()});this.viewport_container.bind("draginit",function(ad,ae){if(ad.clientX>Z.viewport_container.width()-16){return false}}).bind("dragstart",function(ad,ae){ae.original_low=Z.low;ae.current_height=ad.clientY;ae.current_x=ae.offsetX}).bind("drag",function(af,ah){var ad=$(this);var ai=ah.offsetX-ah.current_x;var ae=ad.scrollTop()-(af.clientY-ah.current_height);ad.scrollTop(ae);ah.current_height=af.clientY;ah.current_x=ah.offsetX;var ag=Math.round(ai/Z.viewport_container.width()*(Z.high-Z.low));Z.move_delta(ag)}).bind("mousewheel",function(af,ah,ae,ad){if(ae){ae*=50;var ag=Math.round(-ae/Z.viewport_container.width()*(Z.high-Z.low));Z.move_delta(ag)}});this.top_labeltrack.bind("dragstart",function(ad,ae){return $("<div />").css({height:Z.browser_content_div.height()+Z.top_labeltrack.height()+Z.nav_labeltrack.height()+1,top:"0px",position:"absolute","background-color":"#ccf",opacity:0.5,"z-index":1000}).appendTo($(this))}).bind("drag",function(ah,ai){$(ai.proxy).css({left:Math.min(ah.pageX,ai.startX)-Z.container.offset().left,width:Math.abs(ah.pageX-ai.startX)});var ae=Math.min(ah.pageX,ai.startX)-Z.container.offset().left,ad=Math.max(ah.pageX,ai.startX)-Z.container.offset().left,ag=(Z.high-Z.low),af=Z.viewport_container.width();Z.update_location(Math.round(ae/af*ag)+Z.low,Math.round(ad/af*ag)+Z.low)}).bind("dragend",function(ai,aj){var ae=Math.min(ai.pageX,aj.startX),ad=Math.max(ai.pageX,aj.startX),ag=(Z.high-Z.low),af=Z.viewport_container.width(),ah=Z.low;Z.low=Math.round(ae/af*ag)+ah;Z.high=Math.round(ad/af*ag)+ah;$(aj.proxy).remove();Z.request_redraw()});this.add_label_track(new W(this,{content_div:this.top_labeltrack}));this.add_label_track(new W(this,{content_div:this.nav_labeltrack}));$(window).bind("resize",function(){if(this.resize_timer){clearTimeout(this.resize_timer)}this.resize_timer=setTimeout(function(){Z.resize_window()},500)});$(document).bind("redraw",function(){Z.redraw()});this.reset();$(window).trigger("resize")},changed:function(){this.has_changes=true},update_intro_div:function(){if(this.drawables.length===0){this.intro_div.show()}else{this.intro_div.hide()}},trigger_navigate:function(aa,ac,Z,ad){if(this.timer){clearTimeout(this.timer)}if(ad){var ab=this;this.timer=setTimeout(function(){ab.trigger("navigate",aa+":"+ac+"-"+Z)},500)}else{view.trigger("navigate",aa+":"+ac+"-"+Z)}},update_location:function(Z,ab){this.location_span.text(commatize(Z)+" - "+commatize(ab));this.nav_input.val(this.chrom+":"+commatize(Z)+"-"+commatize(ab));var aa=view.chrom_select.val();if(aa!==""){this.trigger_navigate(aa,view.low,view.high,true)}},load_chroms:function(ab){ab.num=u;ab.dbkey=this.dbkey;var Z=this,aa=$.Deferred();$.ajax({url:chrom_url,data:ab,dataType:"json",success:function(ad){if(ad.chrom_info.length===0){alert("Invalid chromosome: "+ab.chrom);return}if(ad.reference){Z.add_label_track(new y(Z))}Z.chrom_data=ad.chrom_info;var ag='<option value="">Select Chrom/Contig</option>';for(var af=0,ac=Z.chrom_data.length;af<ac;af++){var ae=Z.chrom_data[af].chrom;ag+='<option value="'+ae+'">'+ae+"</option>"}if(ad.prev_chroms){ag+='<option value="previous">Previous '+u+"</option>"}if(ad.next_chroms){ag+='<option value="next">Next '+u+"</option>"}Z.chrom_select.html(ag);Z.chrom_start_index=ad.start_index;aa.resolve(ad)},error:function(){alert("Could not load chroms for this dbkey:",Z.dbkey)}});return aa},change_chrom:function(ae,aa,ag){var ab=this;if(!ab.chrom_data){ab.load_chroms_deferred.then(function(){ab.change_chrom(ae,aa,ag)});return}if(!ae||ae==="None"){return}if(ae==="previous"){ab.load_chroms({low:this.chrom_start_index-u});return}if(ae==="next"){ab.load_chroms({low:this.chrom_start_index+u});return}var af=$.grep(ab.chrom_data,function(ah,ai){return ah.chrom===ae})[0];if(af===undefined){ab.load_chroms({chrom:ae},function(){ab.change_chrom(ae,aa,ag)});return}else{if(ae!==ab.chrom){ab.chrom=ae;ab.chrom_select.val(ab.chrom);ab.max_high=af.len-1;ab.reset();ab.request_redraw(true);for(var ad=0,Z=ab.drawables.length;ad<Z;ad++){var ac=ab.drawables[ad];if(ac.init){ac.init()}}if(ab.reference_track){ab.reference_track.init()}}if(aa!==undefined&&ag!==undefined){ab.low=Math.max(aa,0);ab.high=Math.min(ag,ab.max_high)}else{ab.low=0;ab.high=ab.max_high}ab.reset_overview();ab.request_redraw()}},go_to:function(ad){ad=ad.replace(/ |,/g,"");var ah=this,Z,ac,aa=ad.split(":"),af=aa[0],ag=aa[1];if(ag!==undefined){try{var ae=ag.split("-");Z=parseInt(ae[0],10);ac=parseInt(ae[1],10)}catch(ab){return false}}ah.change_chrom(af,Z,ac)},move_fraction:function(ab){var Z=this;var aa=Z.high-Z.low;this.move_delta(ab*aa)},move_delta:function(ac){var Z=this;var ab=Z.high-Z.low;if(Z.low-ac<Z.max_low){Z.low=Z.max_low;Z.high=Z.max_low+ab}else{if(Z.high-ac>Z.max_high){Z.high=Z.max_high;Z.low=Z.max_high-ab}else{Z.high-=ac;Z.low-=ac}}Z.request_redraw();var aa=Z.chrom_select.val();this.trigger_navigate(aa,Z.low,Z.high,true)},add_drawable:function(Z){w.prototype.add_drawable.call(this,Z);Z.init();this.changed();this.update_intro_div()},add_label_track:function(Z){Z.view=this;Z.init();this.label_tracks.push(Z)},remove_drawable:function(ab,aa){w.prototype.remove_drawable.call(this,ab);if(aa){var Z=this;ab.container_div.hide(0,function(){$(this).remove();Z.update_intro_div()})}},reset:function(){this.low=this.max_low;this.high=this.max_high;this.viewport_container.find(".yaxislabel").remove()},request_redraw:function(ah,Z,ag,ai){var af=this,ae=(ai?[ai]:af.drawables),ab;var aa;for(var ad=0;ad<ae.length;ad++){aa=ae[ad];ab=-1;for(var ac=0;ac<af.tracks_to_be_redrawn.length;ac++){if(af.tracks_to_be_redrawn[ac][0]===aa){ab=ac;break}}if(ab<0){af.tracks_to_be_redrawn.push([aa,Z,ag])}else{af.tracks_to_be_redrawn[ad][1]=Z;af.tracks_to_be_redrawn[ad][2]=ag}}if(!this.requested_redraw){requestAnimationFrame(function(){af._redraw(ah)});this.requested_redraw=true}},_redraw:function(aj){this.requested_redraw=false;var ag=this.low,ac=this.high;if(ag<this.max_low){ag=this.max_low}if(ac>this.max_high){ac=this.max_high}var ai=this.high-this.low;if(this.high!==0&&ai<this.min_separation){ac=ag+this.min_separation}this.low=Math.floor(ag);this.high=Math.ceil(ac);this.update_location(this.low,this.high);this.resolution_b_px=(this.high-this.low)/this.viewport_container.width();this.resolution_px_b=this.viewport_container.width()/(this.high-this.low);var Z=(this.low/(this.max_high-this.max_low)*this.overview_viewport.width())||0;var af=((this.high-this.low)/(this.max_high-this.max_low)*this.overview_viewport.width())||0;var ak=13;this.overview_box.css({left:Z,width:Math.max(ak,af)}).show();if(af<ak){this.overview_box.css("left",Z-(ak-af)/2)}if(this.overview_highlight){this.overview_highlight.css({left:Z,width:af})}if(!aj){var ab,aa,ah;for(var ad=0,ae=this.tracks_to_be_redrawn.length;ad<ae;ad++){ab=this.tracks_to_be_redrawn[ad][0];aa=this.tracks_to_be_redrawn[ad][1];ah=this.tracks_to_be_redrawn[ad][2];if(ab){ab._draw(aa,ah)}}this.tracks_to_be_redrawn=[];for(ad=0,ae=this.label_tracks.length;ad<ae;ad++){this.label_tracks[ad]._draw()}}},zoom_in:function(aa,ab){if(this.max_high===0||this.high-this.low<=this.min_separation){return}var ac=this.high-this.low,ad=ac/2+this.low,Z=(ac/this.zoom_factor)/2;if(aa){ad=aa/this.viewport_container.width()*(this.high-this.low)+this.low}this.low=Math.round(ad-Z);this.high=Math.round(ad+Z);this.changed();this.request_redraw()},zoom_out:function(){if(this.max_high===0){return}var aa=this.high-this.low,ab=aa/2+this.low,Z=(aa*this.zoom_factor)/2;this.low=Math.round(ab-Z);this.high=Math.round(ab+Z);this.changed();this.request_redraw()},resize_window:function(){this.viewport_container.height(this.container.height()-this.top_container.height()-this.bottom_container.height());this.request_redraw()},set_overview:function(ab){if(this.overview_drawable){if(this.overview_drawable.dataset_id===ab.dataset_id){return}this.overview_viewport.find(".track").remove()}var aa=ab.copy({content_div:this.overview_viewport}),Z=this;aa.header_div.hide();aa.is_overview=true;Z.overview_drawable=aa;this.overview_drawable.postdraw_actions=function(){Z.overview_highlight.show().height(Z.overview_drawable.content_div.height());Z.overview_viewport.height(Z.overview_drawable.content_div.height()+Z.overview_box.outerHeight());Z.overview_close.show();Z.resize_window()};Z.overview_drawable.request_draw();this.changed()},reset_overview:function(){$(".bs-tooltip").remove();this.overview_viewport.find(".track-tile").remove();this.overview_viewport.height(this.default_overview_height);this.overview_box.height(this.default_overview_height);this.overview_close.hide();this.overview_highlight.hide();view.resize_window();view.overview_drawable=null}});var q=function(ab,ag,ac){this.track=ab;this.name=ag.name;this.params=[];var an=ag.params;for(var ad=0;ad<an.length;ad++){var ai=an[ad],aa=ai.name,am=ai.label,ae=unescape(ai.html),ao=ai.value,ak=ai.type;if(ak==="number"){this.params.push(new e(aa,am,ae,(aa in ac?ac[aa]:ao),ai.min,ai.max))}else{if(ak==="select"){this.params.push(new K(aa,am,ae,(aa in ac?ac[aa]:ao)))}else{console.log("WARNING: unrecognized tool parameter type:",aa,ak)}}}this.parent_div=$("<div/>").addClass("dynamic-tool").hide();this.parent_div.bind("drag",function(aq){aq.stopPropagation()}).click(function(aq){aq.stopPropagation()}).bind("dblclick",function(aq){aq.stopPropagation()});var al=$("<div class='tool-name'>").appendTo(this.parent_div).text(this.name);var aj=this.params;var ah=this;$.each(this.params,function(ar,av){var au=$("<div>").addClass("param-row").appendTo(ah.parent_div);var aq=$("<div>").addClass("param-label").text(av.label).appendTo(au);var at=$("<div/>").addClass("param-input").html(av.html).appendTo(au);at.find(":input").val(av.value);$("<div style='clear: both;'/>").appendTo(au)});this.parent_div.find("input").click(function(){$(this).select()});var ap=$("<div>").addClass("param-row").appendTo(this.parent_div);var af=$("<input type='submit'>").attr("value","Run on complete dataset").appendTo(ap);var Z=$("<input type='submit'>").attr("value","Run on visible region").css("margin-left","3em").appendTo(ap);Z.click(function(){ah.run_on_region()});af.click(function(){ah.run_on_dataset()});if("visible" in ac&&ac.visible){this.parent_div.show()}};o(q.prototype,{update_params:function(){for(var Z=0;Z<this.params.length;Z++){this.params[Z].update_value()}},state_dict:function(){var aa={};for(var Z=0;Z<this.params.length;Z++){aa[this.params[Z].name]=this.params[Z].value}aa.visible=this.parent_div.is(":visible");return aa},get_param_values_dict:function(){var Z={};this.parent_div.find(":input").each(function(){var aa=$(this).attr("name"),ab=$(this).val();Z[aa]=ab});return Z},get_param_values:function(){var Z=[];this.parent_div.find(":input").each(function(){var aa=$(this).attr("name"),ab=$(this).val();if(aa){Z[Z.length]=ab}});return Z},run_on_dataset:function(){var Z=this;Z.run({target_dataset_id:this.track.original_dataset_id,tool_id:Z.name},null,function(aa){show_modal(Z.name+" is Running",Z.name+" is running on the complete dataset. Tool outputs are in dataset's history.",{Close:hide_modal})})},run_on_region:function(){var aa={target_dataset_id:this.track.original_dataset_id,action:"rerun",tool_id:this.name,regions:[{chrom:this.track.view.chrom,start:this.track.view.low,end:this.track.view.high}]},ae=this.track,ab=aa.tool_id+ae.tool_region_and_parameters_str(aa.chrom,aa.low,aa.high),Z;if(ae.container===view){var ad=new M(view,view,{name:this.name});var ac=ae.container.replace_drawable(ae,ad,false);ad.container_div.insertBefore(ae.view.content_div.children()[ac]);ad.add_drawable(ae);ae.container_div.appendTo(ad.content_div);Z=ad}else{Z=ae.container}var af=new ae.constructor(view,Z,{name:ab,hda_ldda:"hda"});af.init_for_tool_data();af.change_mode(ae.mode);af.set_filters_manager(ae.filters_manager.copy(af));af.update_icons();Z.add_drawable(af);af.tiles_div.text("Starting job.");this.update_params();this.run(aa,af,function(ag){af.set_dataset(new Dataset(ag));af.tiles_div.text("Running job.");af.init()})},run:function(Z,ab,ac){Z.inputs=this.get_param_values_dict();var aa=new ServerStateDeferred({ajax_settings:{url:galaxy_paths.get("tool_url"),data:JSON.stringify(Z),dataType:"json",contentType:"application/json",type:"POST"},interval:2000,success_fn:function(ad){return ad!=="pending"}});$.when(aa.go()).then(function(ad){if(ad==="no converter"){ab.container_div.addClass("error");ab.content_div.text(G)}else{if(ad.error){ab.container_div.addClass("error");ab.content_div.text(v+ad.message)}else{ac(ad)}}})}});var K=function(aa,Z,ab,ac){this.name=aa;this.label=Z;this.html=$(ab);this.value=ac};o(K.prototype,{update_value:function(){this.value=$(this.html).val()}});var e=function(ab,aa,ad,ae,ac,Z){K.call(this,ab,aa,ad,ae);this.min=ac;this.max=Z};o(e.prototype,K.prototype,{update_value:function(){K.prototype.update_value.call(this);this.value=parseFloat(this.value)}});var f=function(Z){this.manager=null;this.name=Z.name;this.index=Z.index;this.tool_id=Z.tool_id;this.tool_exp_name=Z.tool_exp_name};o(f.prototype,{to_dict:function(){return{name:this.name,index:this.index,tool_id:this.tool_id,tool_exp_name:this.tool_exp_name}}});var Q=function(ah){f.call(this,ah);this.low=("low" in ah?ah.low:-Number.MAX_VALUE);this.high=("high" in ah?ah.high:Number.MAX_VALUE);this.min=("min" in ah?ah.min:Number.MAX_VALUE);this.max=("max" in ah?ah.max:-Number.MAX_VALUE);this.container=null;this.slider=null;this.slider_label=null;var ad=function(ai,aj,ak){ai.click(function(){var ap=aj.text(),an=parseFloat(ak.slider("option","max")),am=(an<=1?4:an<=1000000?an.toString().length:6),ao=false,al=$(this).parents(".slider-row");al.addClass("input");if(ak.slider("option","values")){am=2*am+1;ao=true}aj.text("");$("<input type='text'/>").attr("size",am).attr("maxlength",am).attr("value",ap).appendTo(aj).focus().select().click(function(aq){aq.stopPropagation()}).blur(function(){$(this).remove();aj.text(ap);al.removeClass("input")}).keyup(function(av){if(av.keyCode===27){$(this).trigger("blur")}else{if(av.keyCode===13){var at=ak.slider("option","min"),aq=ak.slider("option","max"),au=function(aw){return(isNaN(aw)||aw>aq||aw<at)},ar=$(this).val();if(!ao){ar=parseFloat(ar);if(au(ar)){alert("Parameter value must be in the range ["+at+"-"+aq+"]");return $(this)}}else{ar=ar.split("-");ar=[parseFloat(ar[0]),parseFloat(ar[1])];if(au(ar[0])||au(ar[1])){alert("Parameter value must be in the range ["+at+"-"+aq+"]");return $(this)}}ak.slider((ao?"values":"value"),ar);al.removeClass("input")}}})})};var aa=this;aa.parent_div=$("<div/>").addClass("filter-row slider-row");var Z=$("<div/>").addClass("elt-label").appendTo(aa.parent_div),af=$("<span/>").addClass("slider-name").text(aa.name+" ").appendTo(Z),ab=$("<span/>").text(this.low+"-"+this.high),ac=$("<span/>").addClass("slider-value").appendTo(Z).append("[").append(ab).append("]");aa.values_span=ab;var ae=$("<div/>").addClass("slider").appendTo(aa.parent_div);aa.control_element=$("<div/>").attr("id",aa.name+"-filter-control").appendTo(ae);aa.control_element.slider({range:true,min:this.min,max:this.max,step:this.get_slider_step(this.min,this.max),values:[this.low,this.high],slide:function(ai,aj){aa.slide(ai,aj)},change:function(ai,aj){aa.control_element.slider("option","slide").call(aa.control_element,ai,aj)}});aa.slider=aa.control_element;aa.slider_label=ab;ad(ac,ab,aa.control_element);var ag=$("<div/>").addClass("display-controls").appendTo(aa.parent_div);this.transparency_icon=create_action_icon("Use filter for data transparency","layer-transparent",function(){if(aa.manager.alpha_filter!==aa){aa.manager.alpha_filter=aa;aa.manager.parent_div.find(".layer-transparent").removeClass("active").hide();aa.transparency_icon.addClass("active").show()}else{aa.manager.alpha_filter=null;aa.transparency_icon.removeClass("active")}aa.manager.track.request_draw(true,true)}).appendTo(ag).hide();this.height_icon=create_action_icon("Use filter for data height","arrow-resize-090",function(){if(aa.manager.height_filter!==aa){aa.manager.height_filter=aa;aa.manager.parent_div.find(".arrow-resize-090").removeClass("active").hide();aa.height_icon.addClass("active").show()}else{aa.manager.height_filter=null;aa.height_icon.removeClass("active")}aa.manager.track.request_draw(true,true)}).appendTo(ag).hide();aa.parent_div.hover(function(){aa.transparency_icon.show();aa.height_icon.show()},function(){if(aa.manager.alpha_filter!==aa){aa.transparency_icon.hide()}if(aa.manager.height_filter!==aa){aa.height_icon.hide()}});$("<div style='clear: both;'/>").appendTo(aa.parent_div)};o(Q.prototype,{to_dict:function(){var Z=f.prototype.to_dict.call(this);return o(Z,{type:"number",min:this.min,max:this.max,low:this.low,high:this.high})},copy:function(){return new Q({name:this.name,index:this.index,tool_id:this.tool_id,tool_exp_name:this.tool_exp_name})},get_slider_step:function(ab,Z){var aa=Z-ab;return(aa<=2?0.01:1)},slide:function(ab,ac){var aa=ac.values;this.values_span.text(aa[0]+"-"+aa[1]);this.low=aa[0];this.high=aa[1];var Z=this;setTimeout(function(){if(aa[0]===Z.low&&aa[1]===Z.high){Z.manager.track.request_draw(true,true)}},25)},applies_to:function(Z){if(Z.length>this.index){return true}return false},_keep_val:function(Z){return(isNaN(Z)||(Z>=this.low&&Z<=this.high))},keep:function(aa){if(!this.applies_to(aa)){return true}var ac=this;var ad=aa[this.index];if(ad instanceof Array){var ab=true;for(var Z=0;Z<ad.length;Z++){if(!this._keep_val(ad[Z])){ab=false;break}}return ab}else{return this._keep_val(aa[this.index])}},update_attrs:function(ac){var Z=false;if(!this.applies_to(ac)){return Z}var aa=ac[this.index];if(!(aa instanceof Array)){aa=[aa]}for(var ab=0;ab<aa.length;ab++){var ad=aa[ab];if(ad<this.min){this.min=Math.floor(ad);Z=true}if(ad>this.max){this.max=Math.ceil(ad);Z=true}}return Z},update_ui_elt:function(){if(this.min<this.max){this.parent_div.show()}else{this.parent_div.hide()}var aa=this.slider.slider("option","min"),Z=this.slider.slider("option","max");if(this.min<aa||this.max>Z){this.slider.slider("option","min",this.min);this.slider.slider("option","max",this.max);this.slider.slider("option","step",this.get_slider_step(this.min,this.max));this.slider.slider("option","values",[this.min,this.max])}}});var V=function(ab,ah){this.track=ab;this.alpha_filter=null;this.height_filter=null;this.filters=[];this.parent_div=$("<div/>").addClass("filters").hide();this.parent_div.bind("drag",function(aj){aj.stopPropagation()}).click(function(aj){aj.stopPropagation()}).bind("dblclick",function(aj){aj.stopPropagation()}).bind("keydown",function(aj){aj.stopPropagation()});if(ah&&"filters" in ah){var Z=("alpha_filter" in ah?ah.alpha_filter:null),ac=("height_filter" in ah?ah.height_filter:null),ae=ah.filters,aa;for(var af=0;af<ae.length;af++){if(ae[af].type==="number"){aa=new Q(ae[af]);this.add_filter(aa);if(aa.name===Z){this.alpha_filter=aa;aa.transparency_icon.addClass("active").show()}if(aa.name===ac){this.height_filter=aa;aa.height_icon.addClass("active").show()}}else{console.log("ERROR: unsupported filter: ",name,type)}}if("visible" in ah&&ah.visible){this.parent_div.show()}}if(this.filters.length!==0){var ai=$("<div/>").addClass("param-row").appendTo(this.parent_div);var ag=$("<input type='submit'/>").attr("value","Run on complete dataset").appendTo(ai);var ad=this;ag.click(function(){ad.run_on_dataset()})}};o(V.prototype,{show:function(){this.parent_div.show()},hide:function(){this.parent_div.hide()},toggle:function(){this.parent_div.toggle()},visible:function(){return this.parent_div.is(":visible")},to_dict:function(){var ac={},ab=[],aa;for(var Z=0;Z<this.filters.length;Z++){aa=this.filters[Z];ab.push(aa.to_dict())}ac.filters=ab;ac.alpha_filter=(this.alpha_filter?this.alpha_filter.name:null);ac.height_filter=(this.height_filter?this.height_filter.name:null);ac.visible=this.parent_div.is(":visible");return ac},copy:function(aa){var ab=new V(aa);for(var Z=0;Z<this.filters.length;Z++){ab.add_filter(this.filters[Z].copy())}return ab},add_filter:function(Z){Z.manager=this;this.parent_div.append(Z.parent_div);this.filters.push(Z)},remove_all:function(){this.filters=[];this.parent_div.children().remove()},init_filters:function(){for(var Z=0;Z<this.filters.length;Z++){var aa=this.filters[Z];aa.update_ui_elt()}},clear_filters:function(){for(var Z=0;Z<this.filters.length;Z++){var aa=this.filters[Z];aa.slider.slider("option","values",[aa.min,aa.max])}this.alpha_filter=null;this.height_filter=null;this.parent_div.find(".icon-button").hide()},run_on_dataset:function(){var af=function(aj,ah,ai){if(!(ah in aj)){aj[ah]=ai}return aj[ah]};var ae={},ag,Z;for(var ad=0;ad<this.filters.length;ad++){ag=this.filters[ad];if(ag.tool_id){if(ag.min!==ag.low){Z=af(ae,ag.tool_id,[]);Z[Z.length]=ag.tool_exp_name+" >= "+ag.low}if(ag.max!==ag.high){Z=af(ae,ag.tool_id,[]);Z[Z.length]=ag.tool_exp_name+" <= "+ag.high}}}var aa=[];for(var ac in ae){aa[aa.length]=[ac,ae[ac]]}(function ab(an,ak){var ai=ak[0],aj=ai[0],am=ai[1],al="("+am.join(") and (")+")",ah={cond:al,input:an,target_dataset_id:an,tool_id:aj},ak=ak.slice(1);$.getJSON(run_tool_url,ah,function(ao){if(ao.error){show_modal("Filter Dataset","Error running tool "+aj,{Close:hide_modal})}else{if(ak.length===0){show_modal("Filtering Dataset","Filter(s) are running on the complete dataset. Outputs are in dataset's history.",{Close:hide_modal})}else{ab(ao.dataset_id,ak)}}})})(this.track.dataset_id,aa)}});var z=function(Z,aa){I.Scaler.call(this,aa);this.filter=Z};z.prototype.gen_val=function(Z){if(this.filter.high===Number.MAX_VALUE||this.filter.low===-Number.MAX_VALUE||this.filter.low===this.filter.high){return this.default_val}return((parseFloat(Z[this.filter.index])-this.filter.low)/(this.filter.high-this.filter.low))};var C=function(Z){this.track=Z.track;this.params=Z.params;this.values={};this.restore_values((Z.saved_values?Z.saved_values:{}));this.onchange=Z.onchange};o(C.prototype,{restore_values:function(Z){var aa=this;$.each(this.params,function(ab,ac){if(Z[ac.key]!==undefined){aa.values[ac.key]=Z[ac.key]}else{aa.values[ac.key]=ac.default_value}})},build_form:function(){var ac=this;var Z=$("<div />");var ab;function aa(ah,ad){for(var al=0;al<ah.length;al++){ab=ah[al];if(ab.hidden){continue}var af="param_"+al;var ap=ac.values[ab.key];var ar=$("<div class='form-row' />").appendTo(ad);ar.append($("<label />").attr("for",af).text(ab.label+":"));if(ab.type==="bool"){ar.append($('<input type="checkbox" />').attr("id",af).attr("name",af).attr("checked",ap))}else{if(ab.type==="text"){ar.append($('<input type="text"/>').attr("id",af).val(ap).click(function(){$(this).select()}))}else{if(ab.type==="select"){var an=$("<select />").attr("id",af);for(var aj=0;aj<ab.options.length;aj++){$("<option/>").text(ab.options[aj].label).attr("value",ab.options[aj].value).appendTo(an)}an.val(ap);ar.append(an)}else{if(ab.type==="color"){var aq=$("<div/>").appendTo(ar),am=$("<input />").attr("id",af).attr("name",af).val(ap).css("float","left").appendTo(aq).click(function(au){$(".bs-tooltip").removeClass("in");var at=$(this).siblings(".bs-tooltip").addClass("in");at.css({left:$(this).position().left+$(this).width()+5,top:$(this).position().top-($(at).height()/2)+($(this).height()/2)}).show();at.click(function(av){av.stopPropagation()});$(document).bind("click.color-picker",function(){at.hide();$(document).unbind("click.color-picker")});au.stopPropagation()}),ak=$("<a href='javascript:void(0)'/>").addClass("icon-button arrow-circle").appendTo(aq).attr("title","Set new random color").tooltip(),ao=$("<div class='bs-tooltip right' style='position: absolute;' />").appendTo(aq).hide(),ag=$("<div class='tooltip-inner' style='text-align: inherit'></div>").appendTo(ao),ae=$("<div class='tooltip-arrow'></div>").appendTo(ao),ai=$.farbtastic(ag,{width:100,height:100,callback:am,color:ap});aq.append($("<div/>").css("clear","both"));(function(at){ak.click(function(){at.setColor(get_random_color())})})(ai)}else{ar.append($("<input />").attr("id",af).attr("name",af).val(ap))}}}}if(ab.help){ar.append($("<div class='help'/>").text(ab.help))}}}aa(this.params,Z);return Z},update_from_form:function(Z){var ab=this;var aa=false;$.each(this.params,function(ac,ae){if(!ae.hidden){var af="param_"+ac;var ad=Z.find("#"+af).val();if(ae.type==="float"){ad=parseFloat(ad)}else{if(ae.type==="int"){ad=parseInt(ad)}else{if(ae.type==="bool"){ad=Z.find("#"+af).is(":checked")}}}if(ad!==ab.values[ae.key]){ab.values[ae.key]=ad;aa=true}}});if(aa){this.onchange();this.track.changed()}}});var b=function(Z,ad,ab,aa,ac){this.track=Z;this.region=ad;this.low=ad.get("start");this.high=ad.get("end");this.resolution=ab;this.html_elt=$("<div class='track-tile'/>").append(aa).height($(aa).attr("height"));this.data=ac;this.stale=false};b.prototype.predisplay_actions=function(){};var j=function(Z,ae,ab,aa,ac,ad){b.call(this,Z,ae,ab,aa,ac);this.max_val=ad};o(j.prototype,b.prototype);var L=function(ac,ak,ad,ab,af,am,ag,an,aa,aj){b.call(this,ac,ak,ad,ab,af);this.mode=ag;this.all_slotted=aa;this.feature_mapper=aj;this.has_icons=false;if(an){this.has_icons=true;var ah=this;ab=this.html_elt.children()[0],message_div=$("<div/>").addClass("tile-message").css({height:A-1,width:ab.width}).prependTo(this.html_elt);var ai=new GenomeRegion({chrom:ac.view.chrom,start:this.low,end:this.high}),al=af.length,ae=$("<a href='javascript:void(0);'/>").addClass("icon more-down").attr("title","For speed, only the first "+al+" features in this region were obtained from server. Click to get more data including depth").tooltip().appendTo(message_div),Z=$("<a href='javascript:void(0);'/>").addClass("icon more-across").attr("title","For speed, only the first "+al+" features in this region were obtained from server. Click to get more data excluding depth").tooltip().appendTo(message_div);ae.click(function(){ah.stale=true;ac.data_manager.get_more_data(ai,ac.mode,ah.resolution,{},ac.data_manager.DEEP_DATA_REQ);$(".bs-tooltip").hide();ac.request_draw(true)}).dblclick(function(ao){ao.stopPropagation()});Z.click(function(){ah.stale=true;ac.data_manager.get_more_data(ai,ac.mode,ah.resolution,{},ac.data_manager.BROAD_DATA_REQ);$(".bs-tooltip").hide();ac.request_draw(true)}).dblclick(function(ao){ao.stopPropagation()})}};o(L.prototype,b.prototype);L.prototype.predisplay_actions=function(){var aa=this,Z={};if(aa.mode!=="Pack"){return}$(this.html_elt).hover(function(){this.hovered=true;$(this).mousemove()},function(){this.hovered=false;$(this).parents(".track-content").children(".overlay").children(".feature-popup").remove()}).mousemove(function(al){if(!this.hovered){return}var ag=$(this).offset(),ak=al.pageX-ag.left,aj=al.pageY-ag.top,ap=aa.feature_mapper.get_feature_data(ak,aj),ah=(ap?ap[0]:null);$(this).parents(".track-content").children(".overlay").children(".feature-popup").each(function(){if(!ah||$(this).attr("id")!==ah.toString()){$(this).remove()}});if(ap){var ac=Z[ah];if(!ac){var ah=ap[0],am={name:ap[3],start:ap[1],end:ap[2],strand:ap[4]},af=aa.track.filters_manager.filters,ae;for(var ai=0;ai<af.length;ai++){ae=af[ai];am[ae.name]=ap[ae.index]}var ac=$("<div/>").attr("id",ah).addClass("feature-popup"),aq=$("<table/>"),ao,an,ar;for(ao in am){an=am[ao];ar=$("<tr/>").appendTo(aq);$("<th/>").appendTo(ar).text(ao);$("<td/>").attr("align","left").appendTo(ar).text(typeof(an)==="number"?U(an,2):an)}ac.append($("<div class='feature-popup-inner'>").append(aq));Z[ah]=ac}ac.appendTo($(this).parents(".track-content").children(".overlay"));var ad=ak+parseInt(aa.html_elt.css("left"))-ac.width()/2,ab=aj+parseInt(aa.html_elt.css("top"))+7;ac.css("left",ad+"px").css("top",ab+"px")}else{if(!al.isPropagationStopped()){al.stopPropagation();$(this).siblings().each(function(){$(this).trigger(al)})}}}).mouseleave(function(){$(this).parents(".track-content").children(".overlay").children(".feature-popup").remove()})};var h=function(ab,aa,ad){o(ad,{drag_handle_class:"draghandle"});p.call(this,ab,aa,ad);this.data_url=("data_url" in ad?ad.data_url:default_data_url);this.data_url_extra_params={};this.data_query_wait=("data_query_wait" in ad?ad.data_query_wait:H);this.dataset_check_url=("converted_datasets_state_url" in ad?ad.converted_datasets_state_url:converted_datasets_state_url);var Z=this,ac=new Dataset({id:ad.dataset_id,hda_ldda:ad.hda_ldda});this.data_manager=("data_manager" in ad?ad.data_manager:new GenomeDataManager({dataset:ac,data_url:Z.data_url,dataset_state_url:Z.dataset_check_url,data_mode_compatible:this.data_and_mode_compatible,can_subset:this.can_subset}));this.min_height_px=16;this.max_height_px=800;this.visible_height_px=0;this.content_div=$("<div class='track-content'>").appendTo(this.container_div);if(this.container){this.container.content_div.append(this.container_div);if(!("resize" in ad)||ad.resize){this.add_resize_handle()}}};o(h.prototype,p.prototype,{action_icons_def:[{name:"mode_icon",title:"Set display mode",css_class:"chevron-expand",on_click_fn:function(){}},p.prototype.action_icons_def[0],{name:"overview_icon",title:"Set as overview",css_class:"overview-icon",on_click_fn:function(Z){Z.view.set_overview(Z)}},p.prototype.action_icons_def[1],{name:"filters_icon",title:"Filters",css_class:"filters-icon",on_click_fn:function(Z){if(Z.filters_manager.visible()){Z.filters_manager.clear_filters()}else{Z.filters_manager.init_filters()}Z.filters_manager.toggle()}},{name:"tools_icon",title:"Tool",css_class:"hammer",on_click_fn:function(Z){Z.dynamic_tool_div.toggle();if(Z.dynamic_tool_div.is(":visible")){Z.set_name(Z.name+Z.tool_region_and_parameters_str())}else{Z.revert_name()}$(".bs-tooltip").remove()}},{name:"param_space_viz_icon",title:"Tool parameter space visualization",css_class:"arrow-split",on_click_fn:function(Z){var ac='<strong>Tool</strong>: <%= track.tool.name %><br/><strong>Dataset</strong>: <%= track.name %><br/><strong>Region(s)</strong>: <select name="regions"><option value="cur">current viewing area</option><option value="bookmarks">bookmarks</option><option value="both">current viewing area and bookmarks</option></select>',ab=_.template(ac,{track:Z});var ae=function(){hide_modal();$(window).unbind("keypress.check_enter_esc")},aa=function(){var ag=$('select[name="regions"] option:selected').val(),ai,af=new GenomeRegion({chrom:view.chrom,start:view.low,end:view.high}),ah=_.map($(".bookmark"),function(aj){return new GenomeRegion({from_str:$(aj).children(".position").text()})});if(ag==="cur"){ai=[af]}else{if(ag==="bookmarks"){ai=ah}else{ai=[af].concat(ah)}}hide_modal();window.location.href=galaxy_paths.get("paramamonster_url")+"?"+$.param({dataset_id:Z.dataset_id,hda_ldda:Z.hda_ldda,regions:JSON.stringify(new Backbone.Collection(ai).toJSON())})},ad=function(af){if((af.keyCode||af.which)===27){ae()}else{if((af.keyCode||af.which)===13){aa()}}};show_modal("Visualize tool parameter space and output from different parameter settings?",ab,{No:ae,Yes:aa})}},p.prototype.action_icons_def[2]],can_draw:function(){if(this.dataset_id&&p.prototype.can_draw.call(this)){return true}return false},build_container_div:function(){return $("<div/>").addClass("track").attr("id","track_"+this.id).css("position","relative")},build_header_div:function(){var Z=$("<div class='track-header'/>");if(this.view.editor){this.drag_div=$("<div/>").addClass(this.drag_handle_class).appendTo(Z)}this.name_div=$("<div/>").addClass("track-name").appendTo(Z).text(this.name).attr("id",this.name.replace(/\s+/g,"-").replace(/[^a-zA-Z0-9\-]/g,"").toLowerCase());return Z},on_resize:function(){},add_resize_handle:function(){var Z=this;var ac=false;var ab=false;var aa=$("<div class='track-resize'>");$(Z.container_div).hover(function(){if(Z.content_visible){ac=true;aa.show()}},function(){ac=false;if(!ab){aa.hide()}});aa.hide().bind("dragstart",function(ad,ae){ab=true;ae.original_height=$(Z.content_div).height()}).bind("drag",function(ae,af){var ad=Math.min(Math.max(af.original_height+af.deltaY,Z.min_height_px),Z.max_height_px);$(Z.tiles_div).css("height",ad);Z.visible_height_px=(Z.max_height_px===ad?0:ad);Z.on_resize()}).bind("dragend",function(ad,ae){Z.tile_cache.clear();ab=false;if(!ac){aa.hide()}Z.config.values.height=Z.visible_height_px;Z.changed()}).appendTo(Z.container_div)},set_display_modes:function(ac,af){this.display_modes=ac;this.mode=(af?af:(this.config&&this.config.values.mode?this.config.values.mode:this.display_modes[0]));this.action_icons.mode_icon.attr("title","Set display mode (now: "+this.mode+")");var aa=this,ad={};for(var ab=0,Z=aa.display_modes.length;ab<Z;ab++){var ae=aa.display_modes[ab];ad[ae]=function(ag){return function(){aa.change_mode(ag);aa.icons_div.show();aa.container_div.mouseleave(function(){aa.icons_div.hide()})}}(ae)}make_popupmenu(this.action_icons.mode_icon,ad)},build_action_icons:function(){p.prototype.build_action_icons.call(this,this.action_icons_def);if(this.display_modes!==undefined){this.set_display_modes(this.display_modes)}},hide_contents:function(){this.tiles_div.hide();this.container_div.find(".yaxislabel, .track-resize").hide()},show_contents:function(){this.tiles_div.show();this.container_div.find(".yaxislabel, .track-resize").show();this.request_draw()},get_type:function(){if(this instanceof W){return"LabelTrack"}else{if(this instanceof y){return"ReferenceTrack"}else{if(this instanceof i){return"LineTrack"}else{if(this instanceof R){return"ReadTrack"}else{if(this instanceof O){return"VcfTrack"}else{if(this instanceof g){return"CompositeTrack"}else{if(this instanceof c){return"FeatureTrack"}}}}}}}return""},init:function(){var aa=this;aa.enabled=false;aa.tile_cache.clear();aa.data_manager.clear();aa.content_div.css("height","auto");aa.tiles_div.children().remove();aa.container_div.removeClass("nodata error pending");if(!aa.dataset_id){return}var Z=$.Deferred();$.getJSON(this.dataset_check_url,{hda_ldda:aa.hda_ldda,dataset_id:aa.dataset_id,chrom:aa.view.chrom},function(ab){if(!ab||ab==="error"||ab.kind==="error"){aa.container_div.addClass("error");aa.tiles_div.text(n);if(ab.message){var ac=$(" <a href='javascript:void(0);'></a>").text("View error").click(function(){show_modal("Trackster Error","<pre>"+ab.message+"</pre>",{Close:hide_modal})});aa.tiles_div.append(ac)}}else{if(ab==="no converter"){aa.container_div.addClass("error");aa.tiles_div.text(G)}else{if(ab==="no data"||(ab.data!==undefined&&(ab.data===null||ab.data.length===0))){aa.container_div.addClass("nodata");aa.tiles_div.text(B)}else{if(ab==="pending"){aa.container_div.addClass("pending");aa.tiles_div.html(t);setTimeout(function(){aa.init()},aa.data_query_wait)}else{if(ab==="data"||ab.status==="data"){if(ab.valid_chroms){aa.valid_chroms=ab.valid_chroms;aa.update_icons()}aa.tiles_div.text(T);if(aa.view.chrom){aa.tiles_div.text("");aa.tiles_div.css("height",aa.visible_height_px+"px");aa.enabled=true;$.when(aa.predraw_init()).done(function(){Z.resolve();aa.container_div.removeClass("nodata error pending");aa.request_draw()})}else{Z.resolve()}}}}}}});this.update_icons();return Z},predraw_init:function(){}});var J=function(ab,aa,ac){h.call(this,ab,aa,ac);var Z=this,ab=Z.view;l(Z.container_div,Z.drag_handle_class,".group",Z);this.filters_manager=new V(this,("filters" in ac?ac.filters:null));this.data_manager.set("filters_manager",this.filters_manager);this.filters_available=false;this.tool=("tool" in ac&&ac.tool?new q(this,ac.tool,ac.tool_state):null);this.tile_cache=new Cache(N);if(this.header_div){this.set_filters_manager(this.filters_manager);if(this.tool){this.dynamic_tool_div=this.tool.parent_div;this.header_div.after(this.dynamic_tool_div)}}this.tiles_div=$("<div/>").addClass("tiles").appendTo(this.content_div);this.overlay_div=$("<div/>").addClass("overlay").appendTo(this.content_div);if(ac.mode){this.change_mode(ac.mode)}};o(J.prototype,p.prototype,h.prototype,{action_icons_def:h.prototype.action_icons_def.concat([{name:"show_more_rows_icon",title:"To minimize track height, not all feature rows are displayed. Click to display more rows.",css_class:"exclamation",on_click_fn:function(Z){$(".bs-tooltip").remove();Z.slotters[Z.view.resolution_px_b].max_rows*=2;Z.request_draw(true)},hide:true}]),copy:function(Z){var aa=this.to_dict();o(aa,{data_manager:this.data_manager});var ab=new this.constructor(this.view,Z,aa);ab.change_mode(this.mode);ab.enabled=this.enabled;return ab},set_filters_manager:function(Z){this.filters_manager=Z;this.header_div.after(this.filters_manager.parent_div)},to_dict:function(){return{track_type:this.get_type(),name:this.name,hda_ldda:this.hda_ldda,dataset_id:this.dataset_id,prefs:this.prefs,mode:this.mode,filters:this.filters_manager.to_dict(),tool_state:(this.tool?this.tool.state_dict():{})}},change_mode:function(aa){var Z=this;Z.mode=aa;Z.config.values.mode=aa;Z.tile_cache.clear();Z.request_draw();this.action_icons.mode_icon.attr("title","Set display mode (now: "+Z.mode+")");return Z},update_icons:function(){var Z=this;if(Z.filters_available){Z.action_icons.filters_icon.show()}else{Z.action_icons.filters_icon.hide()}if(Z.tool){Z.action_icons.tools_icon.show();Z.action_icons.param_space_viz_icon.show()}else{Z.action_icons.tools_icon.hide();Z.action_icons.param_space_viz_icon.hide()}},_gen_tile_cache_key:function(aa,ab,Z){return aa+"_"+ab+"_"+Z},request_draw:function(aa,Z){this.view.request_redraw(false,aa,Z,this)},before_draw:function(){},_draw:function(aa,ak){if(!this.can_draw()){return}var ai=this.view.low,ae=this.view.high,ag=ae-ai,ab=this.view.container.width(),am=this.view.resolution_px_b,ad=this.view.resolution_b_px;if(this.is_overview){ai=this.view.max_low;ae=this.view.max_high;ad=Math.pow(RESOLUTION,Math.ceil(Math.log((view.max_high-view.max_low)/P)/Math.log(RESOLUTION)));am=ab/(view.max_high-view.max_low)}this.before_draw();this.tiles_div.children().addClass("remove");var Z=Math.floor(ai/(ad*P)),ah=true,al=[],af=function(an){return(an&&"track" in an)};while((Z*P*ad)<ae){var aj=this.draw_helper(aa,ab,Z,ad,this.tiles_div,am);if(af(aj)){al.push(aj)}else{ah=false}Z+=1}if(!ak){this.tiles_div.children(".remove").removeClass("remove").remove()}var ac=this;if(ah){this.tiles_div.children(".remove").remove();ac.postdraw_actions(al,ab,am,ak)}},postdraw_actions:function(ac,ad,af,Z){var ab=this;var ae=false;for(var aa=0;aa<ac.length;aa++){if(ac[aa].has_icons){ae=true;break}}if(ae){for(var aa=0;aa<ac.length;aa++){tile=ac[aa];if(!tile.has_icons){tile.html_elt.css("padding-top",A)}}}},draw_helper:function(Z,al,aq,ao,ae,af,am){var ak=this,au=this._gen_tile_cache_key(al,af,aq),ac=this._get_tile_bounds(aq,ao);if(!am){am={}}var at=(Z?undefined:ak.tile_cache.get_elt(au));if(at){ak.show_tile(at,ae,af);return at}var ai=true;var ap=ak.data_manager.get_data(ac,ak.mode,ao,ak.data_url_extra_params);if(is_deferred(ap)){ai=false}var ag;if(view.reference_track&&af>view.canvas_manager.char_width_px){ag=view.reference_track.data_manager.get_data(ac,ak.mode,ao,view.reference_track.data_url_extra_params);if(is_deferred(ag)){ai=false}}if(ai){o(ap,am.more_tile_data);var ah=ak.mode;if(ah==="Auto"){ah=ak.get_mode(ap);ak.update_auto_mode(ah)}var ab=ak.view.canvas_manager.new_canvas(),ar=ac.get("start"),aa=ac.get("end"),al=Math.ceil((aa-ar)*af)+ak.left_offset,aj=ak.get_canvas_height(ap,ah,af,al);ab.width=al;ab.height=aj;var an=ab.getContext("2d");an.translate(this.left_offset,0);var at=ak.draw_tile(ap,an,ah,ao,ac,af,ag);if(at!==undefined){ak.tile_cache.set_elt(au,at);ak.show_tile(at,ae,af)}return at}var ad=$.Deferred();$.when(ap,ag).then(function(){view.request_redraw(false,false,false,ak);ad.resolve()});return ad},get_canvas_height:function(Z,ab,ac,aa){return this.visible_height_px},draw_tile:function(Z,aa,ae,ac,ad,af,ab){console.log("Warning: TiledTrack.draw_tile() not implemented.")},show_tile:function(ab,ad,ae){var aa=this,Z=ab.html_elt;ab.predisplay_actions();var ac=(ab.low-(this.is_overview?this.view.max_low:this.view.low))*ae;if(this.left_offset){ac-=this.left_offset}Z.css({position:"absolute",top:0,left:ac});if(Z.hasClass("remove")){Z.removeClass("remove")}else{ad.append(Z)}aa.after_show_tile(ab)},after_show_tile:function(Z){this.max_height_px=Math.max(this.max_height_px,Z.html_elt.height());Z.html_elt.parent().children().css("height",this.max_height_px+"px");var aa=this.max_height_px;if(this.visible_height_px!==0){aa=Math.min(this.max_height_px,this.visible_height_px)}this.tiles_div.css("height",aa+"px")},_get_tile_bounds:function(Z,aa){var ac=Math.floor(Z*P*aa),ad=Math.ceil(P*aa),ab=(ac+ad<=this.view.max_high?ac+ad:this.view.max_high);return new GenomeRegion({chrom:this.view.chrom,start:ac,end:ab})},tool_region_and_parameters_str:function(ab,Z,ac){var aa=this,ad=(ab!==undefined&&Z!==undefined&&ac!==undefined?ab+":"+Z+"-"+ac:"all");return" - region=["+ad+"], parameters=["+aa.tool.get_param_values().join(", ")+"]"},data_and_mode_compatible:function(Z,aa){return true},can_subset:function(Z){return false},init_for_tool_data:function(){this.data_manager.set("data_url",raw_data_url);this.data_query_wait=1000;this.dataset_check_url=dataset_state_url;this.normal_postdraw_actions=this.postdraw_actions;this.postdraw_actions=function(ab,ac,ae,Z){var aa=this;aa.normal_postdraw_actions(ab,ac,ae,Z);aa.dataset_state_url=converted_datasets_state_url;aa.data_query_wait=H;var ad=new ServerStateDeferred({url:aa.dataset_state_url,url_params:{dataset_id:aa.dataset_id,hda_ldda:aa.hda_ldda},interval:aa.data_query_wait,success_fn:function(af){return af!=="pending"}});$.when(ad.go()).then(function(){aa.data_manager.set("data_url",default_data_url)});aa.postdraw_actions=aa.normal_postdraw_actions}}});var W=function(aa,Z){var ab={resize:false};h.call(this,aa,Z,ab);this.container_div.addClass("label-track")};o(W.prototype,h.prototype,{build_header_div:function(){},init:function(){this.enabled=true},_draw:function(){var ab=this.view,ac=ab.high-ab.low,af=Math.floor(Math.pow(10,Math.floor(Math.log(ac)/Math.log(10)))),Z=Math.floor(ab.low/af)*af,ad=this.view.container.width(),aa=$("<div style='position: relative; height: 1.3em;'></div>");while(Z<ab.high){var ae=(Z-ab.low)/ac*ad;aa.append($("<div class='label'>"+commatize(Z)+"</div>").css({position:"absolute",left:ae-1}));Z+=af}this.content_div.children(":first").remove();this.content_div.append(aa)}});var g=function(aa,Z,ad){J.call(this,aa,Z,ad);this.drawables=[];this.left_offset=0;if("drawables" in ad){var ac;for(var ab=0;ab<ad.drawables.length;ab++){ac=ad.drawables[ab];this.drawables[ab]=object_from_template(ac,aa,null);if(ac.left_offset>this.left_offset){this.left_offset=ac.left_offset}}this.enabled=true}if(this.drawables.length!==0){this.set_display_modes(this.drawables[0].display_modes,this.drawables[0].mode)}this.update_icons();this.obj_type="CompositeTrack"};o(g.prototype,J.prototype,{action_icons_def:[{name:"composite_icon",title:"Show individual tracks",css_class:"layers-stack",on_click_fn:function(Z){$(".bs-tooltip").remove();Z.show_group()}}].concat(J.prototype.action_icons_def),to_dict:w.prototype.to_dict,add_drawable:w.prototype.add_drawable,unpack_drawables:w.prototype.unpack_drawables,change_mode:function(Z){J.prototype.change_mode.call(this,Z);for(var aa=0;aa<this.drawables.length;aa++){this.drawables[aa].change_mode(Z)}},init:function(){var ab=[];for(var aa=0;aa<this.drawables.length;aa++){ab.push(this.drawables[aa].init())}var Z=this;$.when.apply($,ab).then(function(){Z.enabled=true;Z.request_draw()})},update_icons:function(){this.action_icons.filters_icon.hide();this.action_icons.tools_icon.hide();this.action_icons.param_space_viz_icon.hide()},can_draw:p.prototype.can_draw,draw_helper:function(aa,ap,aw,at,ah,aj,aq){var ao=this,aA=this._gen_tile_cache_key(ap,aj,aw),ae=this._get_tile_bounds(aw,at);if(!aq){aq={}}var az=(aa?undefined:ao.tile_cache.get_elt(aA));if(az){ao.show_tile(az,ah,aj);return az}var ai=[],ao,am=true,au,ak;for(var av=0;av<this.drawables.length;av++){ao=this.drawables[av];au=ao.data_manager.get_data(ae,ao.mode,at,ao.data_url_extra_params);if(is_deferred(au)){am=false}ai.push(au);ak=null;if(view.reference_track&&aj>view.canvas_manager.char_width_px){ak=view.reference_track.data_manager.get_data(ae,ao.mode,at,view.reference_track.data_url_extra_params);if(is_deferred(ak)){am=false}}ai.push(ak)}if(am){o(au,aq.more_tile_data);this.tile_predraw_init();var ad=ao.view.canvas_manager.new_canvas(),af=ao._get_tile_bounds(aw,at),ax=ae.get("start"),ab=ae.get("end"),ay=0,ap=Math.ceil((ab-ax)*aj)+this.left_offset,an=0,ac=[];var Z=0;for(var av=0;av<this.drawables.length;av++,ay+=2){ao=this.drawables[av];au=ai[ay];var al=ao.mode;if(al==="Auto"){al=ao.get_mode(au);ao.update_auto_mode(al)}ac.push(al);Z=ao.get_canvas_height(au,al,aj,ap);if(Z>an){an=Z}}ad.width=ap;ad.height=(aq.height?aq.height:an);ay=0;var ar=ad.getContext("2d");ar.translate(this.left_offset,0);ar.globalAlpha=0.5;ar.globalCompositeOperation="source-over";for(var av=0;av<this.drawables.length;av++,ay+=2){ao=this.drawables[av];au=ai[ay];ak=ai[ay+1];az=ao.draw_tile(au,ar,ac[av],at,ae,aj,ak)}this.tile_cache.set_elt(aA,az);this.show_tile(az,ah,aj);return az}var ag=$.Deferred(),ao=this;$.when.apply($,ai).then(function(){view.request_redraw(false,false,false,ao);ag.resolve()});return ag},show_group:function(){var ac=new M(this.view,this.container,{name:this.name}),Z;for(var ab=0;ab<this.drawables.length;ab++){Z=this.drawables[ab];ac.add_drawable(Z);Z.container=ac;ac.content_div.append(Z.container_div)}var aa=this.container.replace_drawable(this,ac,true);ac.request_draw()},tile_predraw_init:function(){var ac=Number.MAX_VALUE,Z=-ac,aa;for(var ab=0;ab<this.drawables.length;ab++){aa=this.drawables[ab];if(aa instanceof i){if(aa.prefs.min_value<ac){ac=aa.prefs.min_value}if(aa.prefs.max_value>Z){Z=aa.prefs.max_value}}}for(var ab=0;ab<this.drawables.length;ab++){aa=this.drawables[ab];aa.prefs.min_value=ac;aa.prefs.max_value=Z}},postdraw_actions:function(ab,ae,ag,aa){J.prototype.postdraw_actions.call(this,ab,ae,ag,aa);var ad=-1;for(var ac=0;ac<ab.length;ac++){var Z=ab[ac].html_elt.find("canvas").height();if(Z>ad){ad=Z}}for(var ac=0;ac<ab.length;ac++){var af=ab[ac];if(af.html_elt.find("canvas").height()!==ad){this.draw_helper(true,ae,af.index,af.resolution,af.html_elt.parent(),ag,{height:ad});af.html_elt.remove()}}}});var y=function(Z){J.call(this,Z,{content_div:Z.top_labeltrack},{resize:false});Z.reference_track=this;this.left_offset=200;this.visible_height_px=12;this.container_div.addClass("reference-track");this.content_div.css("background","none");this.content_div.css("min-height","0px");this.content_div.css("border","none");this.data_url=reference_url;this.data_url_extra_params={dbkey:Z.dbkey};this.data_manager=new ReferenceTrackDataManager({data_url:reference_url});this.hide_contents()};o(y.prototype,p.prototype,J.prototype,{build_header_div:function(){},init:function(){this.data_manager.clear();this.enabled=true},can_draw:p.prototype.can_draw,draw_helper:function(ad,ab,Z,aa,ae,af,ac){if(af>this.view.canvas_manager.char_width_px){return J.prototype.draw_helper.call(this,ad,ab,Z,aa,ae,af,ac)}else{this.hide_contents();return null}},draw_tile:function(ah,ai,ad,ac,af,aj){var ab=this;if(aj>this.view.canvas_manager.char_width_px){if(ah.data===null){this.hide_contents();return}var aa=ai.canvas;ai.font=ai.canvas.manager.default_font;ai.textAlign="center";ah=ah.data;for(var ae=0,ag=ah.length;ae<ag;ae++){var Z=Math.floor(ae*aj);ai.fillText(ah[ae],Z,10)}this.show_contents();return new b(ab,af,ac,aa,ah)}this.hide_contents()}});var i=function(ab,aa,ac){var Z=this;this.display_modes=["Histogram","Line","Filled","Intensity"];this.mode="Histogram";J.call(this,ab,aa,ac);this.hda_ldda=ac.hda_ldda;this.dataset_id=ac.dataset_id;this.original_dataset_id=this.dataset_id;this.left_offset=0;this.config=new C({track:this,params:[{key:"name",label:"Name",type:"text",default_value:this.name},{key:"color",label:"Color",type:"color",default_value:get_random_color()},{key:"min_value",label:"Min Value",type:"float",default_value:undefined},{key:"max_value",label:"Max Value",type:"float",default_value:undefined},{key:"mode",type:"string",default_value:this.mode,hidden:true},{key:"height",type:"int",default_value:32,hidden:true}],saved_values:ac.prefs,onchange:function(){Z.set_name(Z.prefs.name);Z.vertical_range=Z.prefs.max_value-Z.prefs.min_value;Z.set_min_value(Z.prefs.min_value);Z.set_max_value(Z.prefs.max_value)}});this.prefs=this.config.values;this.visible_height_px=this.config.values.height;this.vertical_range=this.config.values.max_value-this.config.values.min_value};o(i.prototype,p.prototype,J.prototype,{on_resize:function(){this.request_draw(true)},set_min_value:function(Z){this.prefs.min_value=Z;$("#linetrack_"+this.dataset_id+"_minval").text(this.prefs.min_value);this.tile_cache.clear();this.request_draw()},set_max_value:function(Z){this.prefs.max_value=Z;$("#linetrack_"+this.dataset_id+"_maxval").text(this.prefs.max_value);this.tile_cache.clear();this.request_draw()},predraw_init:function(){var Z=this;Z.vertical_range=undefined;return $.getJSON(Z.data_url,{stats:true,chrom:Z.view.chrom,low:0,high:Z.view.max_high,hda_ldda:Z.hda_ldda,dataset_id:Z.dataset_id},function(aa){Z.container_div.addClass("line-track");var ad=aa.data;if(isNaN(parseFloat(Z.prefs.min_value))||isNaN(parseFloat(Z.prefs.max_value))){var ab=ad.min,af=ad.max;ab=Math.floor(Math.min(0,Math.max(ab,ad.mean-2*ad.sd)));af=Math.ceil(Math.max(0,Math.min(af,ad.mean+2*ad.sd)));Z.prefs.min_value=ab;Z.prefs.max_value=af;$("#track_"+Z.dataset_id+"_minval").val(Z.prefs.min_value);$("#track_"+Z.dataset_id+"_maxval").val(Z.prefs.max_value)}Z.vertical_range=Z.prefs.max_value-Z.prefs.min_value;Z.total_frequency=ad.total_frequency;Z.container_div.find(".yaxislabel").remove();var ae=$("<div/>").text(U(Z.prefs.min_value,3)).make_text_editable({num_cols:6,on_finish:function(ag){$(".bs-tooltip").remove();var ag=parseFloat(ag);if(!isNaN(ag)){Z.set_min_value(ag)}},help_text:"Set min value"}).addClass("yaxislabel bottom").attr("id","linetrack_"+Z.dataset_id+"_minval").prependTo(Z.container_div),ac=$("<div/>").text(U(Z.prefs.max_value,3)).make_text_editable({num_cols:6,on_finish:function(ag){$(".bs-tooltip").remove();var ag=parseFloat(ag);if(!isNaN(ag)){Z.set_max_value(ag)}},help_text:"Set max value"}).addClass("yaxislabel top").attr("id","linetrack_"+Z.dataset_id+"_maxval").prependTo(Z.container_div)})},draw_tile:function(ai,ag,ab,aa,ad,ah){var Z=ag.canvas,ac=ad.get("start"),af=ad.get("end"),ae=new I.LinePainter(ai.data,ac,af,this.prefs,ab);ae.draw(ag,Z.width,Z.height,ah);return new b(this,ad,aa,Z,ai.data)},can_subset:function(Z){return false}});var r=function(ab,aa,ac){var Z=this;this.display_modes=["Heatmap"];this.mode="Heatmap";J.call(this,ab,aa,ac);this.hda_ldda=ac.hda_ldda;this.dataset_id=ac.dataset_id;this.original_dataset_id=this.dataset_id;this.left_offset=0;this.config=new C({track:this,params:[{key:"name",label:"Name",type:"text",default_value:this.name},{key:"pos_color",label:"Positive Color",type:"color",default_value:"4169E1"},{key:"negative_color",label:"Negative Color",type:"color",default_value:"FF8C00"},{key:"min_value",label:"Min Value",type:"float",default_value:0},{key:"max_value",label:"Max Value",type:"float",default_value:1},{key:"mode",type:"string",default_value:this.mode,hidden:true},{key:"height",type:"int",default_value:500,hidden:true}],saved_values:ac.prefs,onchange:function(){Z.set_name(Z.prefs.name);Z.vertical_range=Z.prefs.max_value-Z.prefs.min_value;Z.set_min_value(Z.prefs.min_value);Z.set_max_value(Z.prefs.max_value)}});this.prefs=this.config.values;this.visible_height_px=this.config.values.height;this.vertical_range=this.config.values.max_value-this.config.values.min_value};o(r.prototype,p.prototype,J.prototype,{on_resize:function(){this.request_draw(true)},set_min_value:function(Z){this.prefs.min_value=Z;this.tile_cache.clear();this.request_draw()},set_max_value:function(Z){this.prefs.max_value=Z;this.tile_cache.clear();this.request_draw()},draw_tile:function(aj,ah,ae,ac,aa,ai){var ab=ah.canvas,Z=this._get_tile_bounds(aa,ac),ad=Z[0],ag=Z[1],af=new I.DiagonalHeatmapPainter(aj.data,ad,ag,this.prefs,ae);af.draw(ah,ab.width,ab.height,ai);return new b(this,aa,ac,ab,aj.data)}});var c=function(ac,ab,ae){var aa=this;this.display_modes=["Auto","Histogram","Dense","Squish","Pack"];J.call(this,ac,ab,ae);var ad=get_random_color(),Z=get_random_color([ad,"#ffffff"]);this.config=new C({track:this,params:[{key:"name",label:"Name",type:"text",default_value:this.name},{key:"block_color",label:"Block color",type:"color",default_value:ad},{key:"reverse_strand_color",label:"Antisense strand color",type:"color",default_value:Z},{key:"label_color",label:"Label color",type:"color",default_value:"black"},{key:"show_counts",label:"Show summary counts",type:"bool",default_value:true,help:"Show the number of items in each bin when drawing summary histogram"},{key:"histogram_max",label:"Histogram maximum",type:"float",default_value:null,help:"clear value to set automatically"},{key:"connector_style",label:"Connector style",type:"select",default_value:"fishbones",options:[{label:"Line with arrows",value:"fishbone"},{label:"Arcs",value:"arcs"}]},{key:"mode",type:"string",default_value:this.mode,hidden:true},{key:"height",type:"int",default_value:this.visible_height_px,hidden:true}],saved_values:ae.prefs,onchange:function(){aa.set_name(aa.prefs.name);aa.tile_cache.clear();aa.set_painter_from_config();aa.request_draw()}});this.prefs=this.config.values;this.visible_height_px=this.config.values.height;this.container_div.addClass("feature-track");this.hda_ldda=ae.hda_ldda;this.dataset_id=ae.dataset_id;this.original_dataset_id=ae.dataset_id;this.show_labels_scale=0.001;this.showing_details=false;this.summary_draw_height=30;this.slotters={};this.start_end_dct={};this.left_offset=200;this.set_painter_from_config()};o(c.prototype,p.prototype,J.prototype,{set_dataset:function(Z){this.dataset_id=Z.get("id");this.hda_ldda=Z.get("hda_ldda");this.data_manager.set("dataset",Z)},set_painter_from_config:function(){if(this.config.values.connector_style==="arcs"){this.painter=I.ArcLinkedFeaturePainter}else{this.painter=I.LinkedFeaturePainter}},before_draw:function(){this.max_height_px=0},postdraw_actions:function(ao,aj,ae,ad){J.prototype.postdraw_actions.call(this,ao,ad);var ai=this;if(ai.mode==="Histogram"){var al,aa=-1;for(al=0;al<ao.length;al++){var ak=ao[al].max_val;if(ak>aa){aa=ak}}for(al=0;al<ao.length;al++){var aq=ao[al];if(aq.max_val!==aa){aq.html_elt.remove();ai.draw_helper(true,aj,aq.index,aq.resolution,aq.html_elt.parent(),ae,{more_tile_data:{max:aa}})}}}if(ai.filters_manager){var af=ai.filters_manager.filters;for(var an=0;an<af.length;an++){af[an].update_ui_elt()}var ap=false,Z,ag;for(var al=0;al<ao.length;al++){if(ao[al].data.length){Z=ao[al].data[0];for(var an=0;an<af.length;an++){ag=af[an];if(ag.applies_to(Z)&&ag.min!==ag.max){ap=true;break}}}}if(ai.filters_available!==ap){ai.filters_available=ap;if(!ai.filters_available){ai.filters_manager.hide()}ai.update_icons()}}this.container_div.find(".yaxislabel").remove();var ac=ao[0];if(ac instanceof j){var ah=(this.prefs.histogram_max?this.prefs.histogram_max:ac.max_val),ab=$("<div/>").text(ah).make_text_editable({num_cols:12,on_finish:function(ar){$(".bs-tooltip").remove();var ar=parseFloat(ar);ai.prefs.histogram_max=(!isNaN(ar)?ar:null);ai.tile_cache.clear();ai.request_draw()},help_text:"Set max value; leave blank to use default"}).addClass("yaxislabel top").css("color",this.prefs.label_color);this.container_div.prepend(ab)}if(ac instanceof L){var am=true;for(var al=0;al<ao.length;al++){if(!ao[al].all_slotted){am=false;break}}if(!am){this.action_icons.show_more_rows_icon.show()}else{this.action_icons.show_more_rows_icon.hide()}}else{this.action_icons.show_more_rows_icon.hide()}},update_auto_mode:function(Z){var Z;if(this.mode==="Auto"){if(Z==="no_detail"){Z="feature spans"}else{if(Z==="summary_tree"){Z="coverage histogram"}}this.action_icons.mode_icon.attr("title","Set display mode (now: Auto/"+Z+")")}},incremental_slots:function(ad,Z,ac){var aa=this.view.canvas_manager.dummy_context,ab=this.slotters[ad];if(!ab||(ab.mode!==ac)){ab=new (s.FeatureSlotter)(ad,ac,x,function(ae){return aa.measureText(ae)});this.slotters[ad]=ab}return ab.slot_features(Z)},get_summary_tree_data:function(ad,ag,ab,ao){if(ao>ab-ag){ao=ab-ag}var ak=Math.floor((ab-ag)/ao),an=[],ac=0;var ae=0,af=0,aj,am=0,ah=[],al,ai;var aa=function(ar,aq,at,ap){ar[0]=aq+at*ap;ar[1]=aq+(at+1)*ap};while(am<ao&&ae!==ad.length){var Z=false;for(;am<ao&&!Z;am++){aa(ah,ag,am,ak);for(af=ae;af<ad.length;af++){aj=ad[af].slice(1,3);if(is_overlap(aj,ah)){Z=true;break}}if(Z){break}}data_start_index=af;an[an.length]=al=[ah[0],0];for(;af<ad.length;af++){aj=ad[af].slice(1,3);if(is_overlap(aj,ah)){al[1]++}else{break}}if(al[1]>ac){ac=al[1]}am++}return{max:ac,delta:ak,data:an}},get_mode:function(Z){if(Z.dataset_type==="summary_tree"){mode="summary_tree"}else{if(Z.extra_info==="no_detail"||this.is_overview){mode="no_detail"}else{if(this.view.high-this.view.low>F){mode="Squish"}else{mode="Pack"}}}return mode},get_canvas_height:function(Z,ad,ae,aa){if(ad==="summary_tree"||ad==="Histogram"){return this.summary_draw_height}else{var ac=this.incremental_slots(ae,Z.data,ad);var ab=new (this.painter)(null,null,null,this.prefs,ad);return Math.max(Y,ab.get_required_height(ac,aa))}},draw_tile:function(ak,ao,am,ap,ac,ag,ab){var an=this,aa=ao.canvas,aw=ac.get("start"),Z=ac.get("end"),aB=25,ad=this.left_offset;if(am==="summary_tree"||am==="Histogram"){if(ak.dataset_type!=="summary_tree"){var ah=this.get_summary_tree_data(ak.data,aw,Z,200);if(ak.max){ah.max=ak.max}ak=ah}var ay=new I.SummaryTreePainter(ak,aw,Z,this.prefs);ay.draw(ao,aa.width,aa.height,ag);return new j(an,ac,ap,aa,ak.data,ak.max)}var af=[],al=this.slotters[ag].slots;all_slotted=true;if(ak.data){var ai=this.filters_manager.filters;for(var aq=0,at=ak.data.length;aq<at;aq++){var ae=ak.data[aq];var ar=false;var aj;for(var av=0,aA=ai.length;av<aA;av++){aj=ai[av];aj.update_attrs(ae);if(!aj.keep(ae)){ar=true;break}}if(!ar){af.push(ae);if(!(ae[0] in al)){all_slotted=false}}}}var az=(this.filters_manager.alpha_filter?new z(this.filters_manager.alpha_filter):null);var ax=(this.filters_manager.height_filter?new z(this.filters_manager.height_filter):null);var ay=new (this.painter)(af,aw,Z,this.prefs,am,az,ax,ab);var au=null;ao.fillStyle=this.prefs.block_color;ao.font=ao.canvas.manager.default_font;ao.textAlign="right";if(ak.data){au=ay.draw(ao,aa.width,aa.height,ag,al);au.translation=-ad}return new L(an,ac,ap,aa,ak.data,ag,am,ak.message,all_slotted,au)},data_and_mode_compatible:function(Z,aa){if(aa==="Auto"){return true}else{if(Z.extra_info==="no_detail"||Z.dataset_type==="summary_tree"){return false}else{return true}}},can_subset:function(Z){if(Z.dataset_type==="summary_tree"||Z.message||Z.extra_info==="no_detail"){return false}return true}});var O=function(aa,Z,ab){c.call(this,aa,Z,ab);this.config=new C({track:this,params:[{key:"name",label:"Name",type:"text",default_value:this.name},{key:"block_color",label:"Block color",type:"color",default_value:get_random_color()},{key:"label_color",label:"Label color",type:"color",default_value:"black"},{key:"show_insertions",label:"Show insertions",type:"bool",default_value:false},{key:"show_counts",label:"Show summary counts",type:"bool",default_value:true},{key:"mode",type:"string",default_value:this.mode,hidden:true}],saved_values:ab.prefs,onchange:function(){this.track.set_name(this.track.prefs.name);this.track.tile_cache.clear();this.track.request_draw()}});this.prefs=this.config.values;this.painter=I.ReadPainter};o(O.prototype,p.prototype,J.prototype,c.prototype);var R=function(ab,aa,ad){c.call(this,ab,aa,ad);var ac=get_random_color(),Z=get_random_color([ac,"#ffffff"]);this.config=new C({track:this,params:[{key:"name",label:"Name",type:"text",default_value:this.name},{key:"block_color",label:"Block and sense strand color",type:"color",default_value:ac},{key:"reverse_strand_color",label:"Antisense strand color",type:"color",default_value:Z},{key:"label_color",label:"Label color",type:"color",default_value:"black"},{key:"show_insertions",label:"Show insertions",type:"bool",default_value:false},{key:"show_differences",label:"Show differences only",type:"bool",default_value:true},{key:"show_counts",label:"Show summary counts",type:"bool",default_value:true},{key:"histogram_max",label:"Histogram maximum",type:"float",default_value:null,help:"Clear value to set automatically"},{key:"mode",type:"string",default_value:this.mode,hidden:true}],saved_values:ad.prefs,onchange:function(){this.track.set_name(this.track.prefs.name);this.track.tile_cache.clear();this.track.request_draw()}});this.prefs=this.config.values;this.painter=I.ReadPainter;this.update_icons()};o(R.prototype,p.prototype,J.prototype,c.prototype);S.View=X;S.DrawableGroup=M;S.LineTrack=i;S.FeatureTrack=c;S.DiagonalHeatmapTrack=r;S.ReadTrack=R;S.VcfTrack=O;S.CompositeTrack=g};var slotting_module=function(c,b){var e=c("class").extend;var d=2,a=5;b.FeatureSlotter=function(i,h,f,g){this.slots={};this.start_end_dct={};this.w_scale=i;this.mode=h;this.include_label=(h==="Pack");this.max_rows=f;this.measureText=g};e(b.FeatureSlotter.prototype,{slot_features:function(m){var p=this.w_scale,h=this.start_end_dct,x=[],z=[],n=0,y=this.max_rows;for(var v=0,w=m.length;v<w;v++){var k=m[v],o=k[0];if(this.slots[o]!==undefined){n=Math.max(n,this.slots[o]);z.push(this.slots[o])}else{x.push(v)}}var q=function(E,F){for(var D=0;D<=y;D++){var B=false,G=h[D];if(G!==undefined){for(var A=0,C=G.length;A<C;A++){var i=G[A];if(F>i[0]&&E<i[1]){B=true;break}}}if(!B){return D}}return -1};for(var v=0,w=x.length;v<w;v++){var k=m[x[v]],o=k[0],t=k[1],f=k[2],r=k[3],g=Math.floor(t*p),l=Math.ceil(f*p),u=this.measureText(r).width,j;if(r!==undefined&&this.include_label){u+=(d+a);if(g-u>=0){g-=u;j="left"}else{l+=u;j="right"}}var s=q(g,l);if(s>=0){if(h[s]===undefined){h[s]=[]}h[s].push([g,l]);this.slots[o]=s;n=Math.max(n,s)}}return n+1}})};var painters_module=function(require,exports){var extend=require("class").extend;var dashedLine=function(ctx,x1,y1,x2,y2,dashLen){if(dashLen===undefined){dashLen=4}var dX=x2-x1;var dY=y2-y1;var dashes=Math.floor(Math.sqrt(dX*dX+dY*dY)/dashLen);var dashX=dX/dashes;var dashY=dY/dashes;var q;for(q=0;q<dashes;q++,x1+=dashX,y1+=dashY){if(q%2!==0){continue}ctx.fillRect(x1,y1,dashLen,1)}};var drawDownwardEquilateralTriangle=function(ctx,down_vertex_x,down_vertex_y,side_len){var x1=down_vertex_x-side_len/2,x2=down_vertex_x+side_len/2,y=down_vertex_y-Math.sqrt(side_len*3/2);ctx.beginPath();ctx.moveTo(x1,y);ctx.lineTo(x2,y);ctx.lineTo(down_vertex_x,down_vertex_y);ctx.lineTo(x1,y);ctx.strokeStyle=this.fillStyle;ctx.fill();ctx.stroke();ctx.closePath()};var Scaler=function(default_val){this.default_val=(default_val?default_val:1)};Scaler.prototype.gen_val=function(input){return this.default_val};var Painter=function(data,view_start,view_end,prefs,mode){this.data=data;this.view_start=view_start;this.view_end=view_end;this.prefs=extend({},this.default_prefs,prefs);this.mode=mode};Painter.prototype.default_prefs={};Painter.prototype.draw=function(ctx,width,height,w_scale){};var SummaryTreePainter=function(data,view_start,view_end,prefs,mode){Painter.call(this,data,view_start,view_end,prefs,mode)};SummaryTreePainter.prototype.default_prefs={show_counts:false};SummaryTreePainter.prototype.draw=function(ctx,width,height,w_scale){var view_start=this.view_start,view_range=this.view_end-this.view_start,points=this.data.data,max=(this.prefs.histogram_max?this.prefs.histogram_max:this.data.max),base_y=height;delta_x_px=Math.ceil(this.data.delta*w_scale);ctx.save();for(var i=0,len=points.length;i<len;i++){var x=Math.floor((points[i][0]-view_start)*w_scale);var y=points[i][1];if(!y){continue}var y_px=y/max*height;if(y!==0&&y_px<1){y_px=1}ctx.fillStyle=this.prefs.block_color;ctx.fillRect(x,base_y-y_px,delta_x_px,y_px);var text_padding_req_x=4;if(this.prefs.show_counts&&(ctx.measureText(y).width+text_padding_req_x)<delta_x_px){ctx.fillStyle=this.prefs.label_color;ctx.textAlign="center";ctx.fillText(y,x+(delta_x_px/2),10)}}ctx.restore()};var LinePainter=function(data,view_start,view_end,prefs,mode){Painter.call(this,data,view_start,view_end,prefs,mode);if(this.prefs.min_value===undefined){var min_value=Infinity;for(var i=0,len=this.data.length;i<len;i++){min_value=Math.min(min_value,this.data[i][1])}this.prefs.min_value=min_value}if(this.prefs.max_value===undefined){var max_value=-Infinity;for(var i=0,len=this.data.length;i<len;i++){max_value=Math.max(max_value,this.data[i][1])}this.prefs.max_value=max_value}};LinePainter.prototype.default_prefs={min_value:undefined,max_value:undefined,mode:"Histogram",color:"#000",overflow_color:"#F66"};LinePainter.prototype.draw=function(ctx,width,height,w_scale){var in_path=false,min_value=this.prefs.min_value,max_value=this.prefs.max_value,vertical_range=max_value-min_value,height_px=height,view_start=this.view_start,view_range=this.view_end-this.view_start,mode=this.mode,data=this.data;ctx.save();var y_zero=Math.round(height+min_value/vertical_range*height);if(mode!=="Intensity"){ctx.fillStyle="#aaa";ctx.fillRect(0,y_zero,width,1)}ctx.beginPath();var x_scaled,y,delta_x_px;if(data.length>1){delta_x_px=Math.ceil((data[1][0]-data[0][0])*w_scale)}else{delta_x_px=10}var pref_color=parseInt(this.prefs.color.slice(1),16),pref_r=(pref_color&16711680)>>16,pref_g=(pref_color&65280)>>8,pref_b=pref_color&255;for(var i=0,len=data.length;i<len;i++){ctx.fillStyle=ctx.strokeStyle=this.prefs.color;x_scaled=Math.round((data[i][0]-view_start)*w_scale);y=data[i][1];var top_overflow=false,bot_overflow=false;if(y===null){if(in_path&&mode==="Filled"){ctx.lineTo(x_scaled,height_px)}in_path=false;continue}if(y<min_value){bot_overflow=true;y=min_value}else{if(y>max_value){top_overflow=true;y=max_value}}if(mode==="Histogram"){y=Math.round(y/vertical_range*height_px);ctx.fillRect(x_scaled,y_zero,delta_x_px,-y)}else{if(mode==="Intensity"){var saturation=(y-min_value)/vertical_range,new_r=Math.round(pref_r+(255-pref_r)*(1-saturation)),new_g=Math.round(pref_g+(255-pref_g)*(1-saturation)),new_b=Math.round(pref_b+(255-pref_b)*(1-saturation));ctx.fillStyle="rgb("+new_r+","+new_g+","+new_b+")";ctx.fillRect(x_scaled,0,delta_x_px,height_px)}else{y=Math.round(height_px-(y-min_value)/vertical_range*height_px);if(in_path){ctx.lineTo(x_scaled,y)}else{in_path=true;if(mode==="Filled"){ctx.moveTo(x_scaled,height_px);ctx.lineTo(x_scaled,y)}else{ctx.moveTo(x_scaled,y)}}}}ctx.fillStyle=this.prefs.overflow_color;if(top_overflow||bot_overflow){var overflow_x;if(mode==="Histogram"||mode==="Intensity"){overflow_x=delta_x_px}else{x_scaled-=2;overflow_x=4}if(top_overflow){ctx.fillRect(x_scaled,0,overflow_x,3)}if(bot_overflow){ctx.fillRect(x_scaled,height_px-3,overflow_x,3)}}ctx.fillStyle=this.prefs.color}if(mode==="Filled"){if(in_path){ctx.lineTo(x_scaled,y_zero);ctx.lineTo(0,y_zero)}ctx.fill()}else{ctx.stroke()}ctx.restore()};var FeaturePositionMapper=function(slot_height){this.feature_positions={};this.slot_height=slot_height;this.translation=0;this.y_translation=0};FeaturePositionMapper.prototype.map_feature_data=function(feature_data,slot,x_start,x_end){if(!this.feature_positions[slot]){this.feature_positions[slot]=[]}this.feature_positions[slot].push({data:feature_data,x_start:x_start,x_end:x_end})};FeaturePositionMapper.prototype.get_feature_data=function(x,y){var slot=Math.floor((y-this.y_translation)/this.slot_height),feature_dict;if(!this.feature_positions[slot]){return null}x+=this.translation;for(var i=0;i<this.feature_positions[slot].length;i++){feature_dict=this.feature_positions[slot][i];if(x>=feature_dict.x_start&&x<=feature_dict.x_end){return feature_dict.data}}};var FeaturePainter=function(data,view_start,view_end,prefs,mode,alpha_scaler,height_scaler){Painter.call(this,data,view_start,view_end,prefs,mode);this.alpha_scaler=(alpha_scaler?alpha_scaler:new Scaler());this.height_scaler=(height_scaler?height_scaler:new Scaler())};FeaturePainter.prototype.default_prefs={block_color:"#FFF",connector_color:"#FFF"};extend(FeaturePainter.prototype,{get_required_height:function(rows_required,width){var required_height=y_scale=this.get_row_height(),mode=this.mode;if(mode==="no_detail"||mode==="Squish"||mode==="Pack"){required_height=rows_required*y_scale}return required_height+this.get_top_padding(width)+this.get_bottom_padding(width)},get_top_padding:function(width){return 0},get_bottom_padding:function(width){return Math.max(Math.round(this.get_row_height()/2),5)},draw:function(ctx,width,height,w_scale,slots){var data=this.data,view_start=this.view_start,view_end=this.view_end;ctx.save();ctx.fillStyle=this.prefs.block_color;ctx.textAlign="right";var view_range=this.view_end-this.view_start,y_scale=this.get_row_height(),feature_mapper=new FeaturePositionMapper(y_scale),x_draw_coords;for(var i=0,len=data.length;i<len;i++){var feature=data[i],feature_uid=feature[0],feature_start=feature[1],feature_end=feature[2],slot=(slots&&slots[feature_uid]!==undefined?slots[feature_uid]:null);if((feature_start<view_end&&feature_end>view_start)&&(this.mode==="Dense"||slot!==null)){x_draw_coords=this.draw_element(ctx,this.mode,feature,slot,view_start,view_end,w_scale,y_scale,width);feature_mapper.map_feature_data(feature,slot,x_draw_coords[0],x_draw_coords[1])}}ctx.restore();feature_mapper.y_translation=this.get_top_padding(width);return feature_mapper},draw_element:function(ctx,mode,feature,slot,tile_low,tile_high,w_scale,y_scale,width){console.log("WARNING: Unimplemented function.");return[0,0]}});var DENSE_TRACK_HEIGHT=10,NO_DETAIL_TRACK_HEIGHT=3,SQUISH_TRACK_HEIGHT=5,PACK_TRACK_HEIGHT=10,NO_DETAIL_FEATURE_HEIGHT=1,DENSE_FEATURE_HEIGHT=9,SQUISH_FEATURE_HEIGHT=3,PACK_FEATURE_HEIGHT=9,LABEL_SPACING=2,CONNECTOR_COLOR="#ccc";var LinkedFeaturePainter=function(data,view_start,view_end,prefs,mode,alpha_scaler,height_scaler){FeaturePainter.call(this,data,view_start,view_end,prefs,mode,alpha_scaler,height_scaler);this.draw_background_connector=true;this.draw_individual_connectors=false};extend(LinkedFeaturePainter.prototype,FeaturePainter.prototype,{get_row_height:function(){var mode=this.mode,height;if(mode==="Dense"){height=DENSE_TRACK_HEIGHT}else{if(mode==="no_detail"){height=NO_DETAIL_TRACK_HEIGHT}else{if(mode==="Squish"){height=SQUISH_TRACK_HEIGHT}else{height=PACK_TRACK_HEIGHT}}}return height},draw_element:function(ctx,mode,feature,slot,tile_low,tile_high,w_scale,y_scale,width){var feature_uid=feature[0],feature_start=feature[1],feature_end=feature[2]-1,feature_name=feature[3],feature_strand=feature[4],f_start=Math.floor(Math.max(0,(feature_start-tile_low)*w_scale)),f_end=Math.ceil(Math.min(width,Math.max(0,(feature_end-tile_low)*w_scale))),draw_start=f_start,draw_end=f_end,y_center=(mode==="Dense"?0:(0+slot))*y_scale+this.get_top_padding(width),thickness,y_start,thick_start=null,thick_end=null,block_color=block_color=(!feature_strand||feature_strand==="+"||feature_strand==="."?this.prefs.block_color:this.prefs.reverse_strand_color);label_color=this.prefs.label_color;ctx.globalAlpha=this.alpha_scaler.gen_val(feature);if(mode==="Dense"){slot=1}if(mode==="no_detail"){ctx.fillStyle=block_color;ctx.fillRect(f_start,y_center+5,f_end-f_start,NO_DETAIL_FEATURE_HEIGHT)}else{var feature_ts=feature[5],feature_te=feature[6],feature_blocks=feature[7],full_height=true;if(feature_ts&&feature_te){thick_start=Math.floor(Math.max(0,(feature_ts-tile_low)*w_scale));thick_end=Math.ceil(Math.min(width,Math.max(0,(feature_te-tile_low)*w_scale)))}var thin_height,thick_height;if(mode==="Squish"){thin_height=1;thick_height=SQUISH_FEATURE_HEIGHT;full_height=false}else{if(mode==="Dense"){thin_height=5;thick_height=DENSE_FEATURE_HEIGHT}else{thin_height=5;thick_height=PACK_FEATURE_HEIGHT}}if(!feature_blocks){ctx.fillStyle=block_color;ctx.fillRect(f_start,y_center+1,f_end-f_start,thick_height);if(feature_strand&&full_height){if(feature_strand==="+"){ctx.fillStyle=ctx.canvas.manager.get_pattern("right_strand_inv")}else{if(feature_strand==="-"){ctx.fillStyle=ctx.canvas.manager.get_pattern("left_strand_inv")}}ctx.fillRect(f_start,y_center+1,f_end-f_start,thick_height)}}else{var cur_y_center,cur_height;if(mode==="Squish"||mode==="Dense"){cur_y_center=y_center+Math.floor(SQUISH_FEATURE_HEIGHT/2)+1;cur_height=1}else{if(feature_strand){cur_y_center=y_center;cur_height=thick_height}else{cur_y_center+=(SQUISH_FEATURE_HEIGHT/2)+1;cur_height=1}}if(this.draw_background_connector){if(mode==="Squish"||mode==="Dense"){ctx.fillStyle=CONNECTOR_COLOR}else{if(feature_strand){if(feature_strand==="+"){ctx.fillStyle=ctx.canvas.manager.get_pattern("right_strand")}else{if(feature_strand==="-"){ctx.fillStyle=ctx.canvas.manager.get_pattern("left_strand")}}}else{ctx.fillStyle=CONNECTOR_COLOR}}ctx.fillRect(f_start,cur_y_center,f_end-f_start,cur_height)}var start_and_height;for(var k=0,k_len=feature_blocks.length;k<k_len;k++){var block=feature_blocks[k],block_start=Math.floor(Math.max(0,(block[0]-tile_low)*w_scale)),block_end=Math.ceil(Math.min(width,Math.max((block[1]-1-tile_low)*w_scale))),last_block_start,last_block_end;if(block_start>block_end){continue}ctx.fillStyle=block_color;ctx.fillRect(block_start,y_center+(thick_height-thin_height)/2+1,block_end-block_start,thin_height);if(thick_start!==undefined&&feature_te>feature_ts&&!(block_start>thick_end||block_end<thick_start)){var block_thick_start=Math.max(block_start,thick_start),block_thick_end=Math.min(block_end,thick_end);ctx.fillRect(block_thick_start,y_center+1,block_thick_end-block_thick_start,thick_height);if(feature_blocks.length===1&&mode==="Pack"){if(feature_strand==="+"){ctx.fillStyle=ctx.canvas.manager.get_pattern("right_strand_inv")}else{if(feature_strand==="-"){ctx.fillStyle=ctx.canvas.manager.get_pattern("left_strand_inv")}}if(block_thick_start+14<block_thick_end){block_thick_start+=2;block_thick_end-=2}ctx.fillRect(block_thick_start,y_center+1,block_thick_end-block_thick_start,thick_height)}}if(this.draw_individual_connectors&&last_block_start){this.draw_connector(ctx,last_block_start,last_block_end,block_start,block_end,y_center)}last_block_start=block_start;last_block_end=block_end}if(mode==="Pack"){ctx.globalAlpha=1;ctx.fillStyle="white";var hscale_factor=this.height_scaler.gen_val(feature),new_height=Math.ceil(thick_height*hscale_factor),ws_height=Math.round((thick_height-new_height)/2);if(hscale_factor!==1){ctx.fillRect(f_start,cur_y_center+1,f_end-f_start,ws_height);ctx.fillRect(f_start,cur_y_center+thick_height-ws_height+1,f_end-f_start,ws_height)}}}ctx.globalAlpha=1;if(mode==="Pack"&&feature_start>tile_low){ctx.fillStyle=label_color;if(tile_low===0&&f_start-ctx.measureText(feature_name).width<0){ctx.textAlign="left";ctx.fillText(feature_name,f_end+LABEL_SPACING,y_center+8);draw_end+=ctx.measureText(feature_name).width+LABEL_SPACING}else{ctx.textAlign="right";ctx.fillText(feature_name,f_start-LABEL_SPACING,y_center+8);draw_start-=ctx.measureText(feature_name).width+LABEL_SPACING}}}ctx.globalAlpha=1;return[draw_start,draw_end]}});var ReadPainter=function(data,view_start,view_end,prefs,mode,alpha_scaler,height_scaler,ref_seq){FeaturePainter.call(this,data,view_start,view_end,prefs,mode,alpha_scaler,height_scaler);this.ref_seq=(ref_seq?ref_seq.data:null)};extend(ReadPainter.prototype,FeaturePainter.prototype,{get_row_height:function(){var height,mode=this.mode;if(mode==="Dense"){height=DENSE_TRACK_HEIGHT}else{if(mode==="Squish"){height=SQUISH_TRACK_HEIGHT}else{height=PACK_TRACK_HEIGHT;if(this.prefs.show_insertions){height*=2}}}return height},draw_read:function(ctx,mode,w_scale,y_center,tile_low,tile_high,feature_start,cigar,strand,orig_seq){ctx.textAlign="center";var track=this,tile_region=[tile_low,tile_high],base_offset=0,seq_offset=0,gap=0,char_width_px=ctx.canvas.manager.char_width_px,block_color=(strand==="+"?this.prefs.block_color:this.prefs.reverse_strand_color);var draw_last=[];if((mode==="Pack"||this.mode==="Auto")&&orig_seq!==undefined&&w_scale>char_width_px){gap=Math.round(w_scale/2)}if(!cigar){cigar=[[0,orig_seq.length]]}for(var cig_id=0,len=cigar.length;cig_id<len;cig_id++){var cig=cigar[cig_id],cig_op="MIDNSHP=X"[cig[0]],cig_len=cig[1];if(cig_op==="H"||cig_op==="S"){base_offset-=cig_len}var seq_start=feature_start+base_offset,s_start=Math.floor(Math.max(0,(seq_start-tile_low)*w_scale)),s_end=Math.floor(Math.max(0,(seq_start+cig_len-tile_low)*w_scale));if(s_start===s_end){s_end+=1}switch(cig_op){case"H":break;case"S":case"M":case"=":if(is_overlap([seq_start,seq_start+cig_len],tile_region)){var seq=orig_seq.slice(seq_offset,seq_offset+cig_len);if(gap>0){ctx.fillStyle=block_color;ctx.fillRect(s_start-gap,y_center+1,s_end-s_start,9);ctx.fillStyle=CONNECTOR_COLOR;for(var c=0,str_len=seq.length;c<str_len;c++){if(this.prefs.show_differences){if(this.ref_seq){var ref_char=this.ref_seq[seq_start-tile_low+c];if(!ref_char||ref_char.toLowerCase()===seq[c].toLowerCase()){continue}}else{continue}}if(seq_start+c>=tile_low&&seq_start+c<=tile_high){var c_start=Math.floor(Math.max(0,(seq_start+c-tile_low)*w_scale));ctx.fillText(seq[c],c_start,y_center+9)}}}else{ctx.fillStyle=block_color;ctx.fillRect(s_start,y_center+4,s_end-s_start,SQUISH_FEATURE_HEIGHT)}}seq_offset+=cig_len;base_offset+=cig_len;break;case"N":ctx.fillStyle=CONNECTOR_COLOR;ctx.fillRect(s_start-gap,y_center+5,s_end-s_start,1);base_offset+=cig_len;break;case"D":ctx.fillStyle="red";ctx.fillRect(s_start-gap,y_center+4,s_end-s_start,3);base_offset+=cig_len;break;case"P":break;case"I":var insert_x_coord=s_start-gap;if(is_overlap([seq_start,seq_start+cig_len],tile_region)){var seq=orig_seq.slice(seq_offset,seq_offset+cig_len);if(this.prefs.show_insertions){var x_center=s_start-(s_end-s_start)/2;if((mode==="Pack"||this.mode==="Auto")&&orig_seq!==undefined&&w_scale>char_width_px){ctx.fillStyle="yellow";ctx.fillRect(x_center-gap,y_center-9,s_end-s_start,9);draw_last[draw_last.length]={type:"triangle",data:[insert_x_coord,y_center+4,5]};ctx.fillStyle=CONNECTOR_COLOR;switch(compute_overlap([seq_start,seq_start+cig_len],tile_region)){case (OVERLAP_START):seq=seq.slice(tile_low-seq_start);break;case (OVERLAP_END):seq=seq.slice(0,seq_start-tile_high);break;case (CONTAINED_BY):break;case (CONTAINS):seq=seq.slice(tile_low-seq_start,seq_start-tile_high);break}for(var c=0,str_len=seq.length;c<str_len;c++){var c_start=Math.floor(Math.max(0,(seq_start+c-tile_low)*w_scale));ctx.fillText(seq[c],c_start-(s_end-s_start)/2,y_center)}}else{ctx.fillStyle="yellow";ctx.fillRect(x_center,y_center+(this.mode!=="Dense"?2:5),s_end-s_start,(mode!=="Dense"?SQUISH_FEATURE_HEIGHT:DENSE_FEATURE_HEIGHT))}}else{if((mode==="Pack"||this.mode==="Auto")&&orig_seq!==undefined&&w_scale>char_width_px){draw_last.push({type:"text",data:[seq.length,insert_x_coord,y_center+9]})}else{}}}seq_offset+=cig_len;break;case"X":seq_offset+=cig_len;break}}ctx.fillStyle="yellow";var item,type,data;for(var i=0;i<draw_last.length;i++){item=draw_last[i];type=item.type;data=item.data;if(type==="text"){ctx.save();ctx.font="bold "+ctx.font;ctx.fillText(data[0],data[1],data[2]);ctx.restore()}else{if(type==="triangle"){drawDownwardEquilateralTriangle(ctx,data[0],data[1],data[2])}}}},draw_element:function(ctx,mode,feature,slot,tile_low,tile_high,w_scale,y_scale,width){var feature_uid=feature[0],feature_start=feature[1],feature_end=feature[2],feature_name=feature[3],f_start=Math.floor(Math.max(0,(feature_start-tile_low)*w_scale)),f_end=Math.ceil(Math.min(width,Math.max(0,(feature_end-tile_low)*w_scale))),y_center=(mode==="Dense"?0:(0+slot))*y_scale,label_color=this.prefs.label_color,gap=0;if((mode==="Pack"||this.mode==="Auto")&&w_scale>ctx.canvas.manager.char_width_px){var gap=Math.round(w_scale/2)}if(feature[5] instanceof Array){var b1_start=Math.floor(Math.max(0,(feature[4][0]-tile_low)*w_scale)),b1_end=Math.ceil(Math.min(width,Math.max(0,(feature[4][1]-tile_low)*w_scale))),b2_start=Math.floor(Math.max(0,(feature[5][0]-tile_low)*w_scale)),b2_end=Math.ceil(Math.min(width,Math.max(0,(feature[5][1]-tile_low)*w_scale)));if(feature[4][1]>=tile_low&&feature[4][0]<=tile_high&&feature[4][2]){this.draw_read(ctx,mode,w_scale,y_center,tile_low,tile_high,feature[4][0],feature[4][2],feature[4][3],feature[4][4])}if(feature[5][1]>=tile_low&&feature[5][0]<=tile_high&&feature[5][2]){this.draw_read(ctx,mode,w_scale,y_center,tile_low,tile_high,feature[5][0],feature[5][2],feature[5][3],feature[5][4])}if(b2_start>b1_end){ctx.fillStyle=CONNECTOR_COLOR;dashedLine(ctx,b1_end-gap,y_center+5,b2_start-gap,y_center+5)}}else{this.draw_read(ctx,mode,w_scale,y_center,tile_low,tile_high,feature_start,feature[4],feature[5],feature[6])}if(mode==="Pack"&&feature_start>tile_low&&feature_name!=="."){ctx.fillStyle=this.prefs.label_color;var tile_index=1;if(tile_index===0&&f_start-ctx.measureText(feature_name).width<0){ctx.textAlign="left";ctx.fillText(feature_name,f_end+LABEL_SPACING-gap,y_center+8)}else{ctx.textAlign="right";ctx.fillText(feature_name,f_start-LABEL_SPACING-gap,y_center+8)}}return[0,0]}});var ArcLinkedFeaturePainter=function(data,view_start,view_end,prefs,mode,alpha_scaler,height_scaler){LinkedFeaturePainter.call(this,data,view_start,view_end,prefs,mode,alpha_scaler,height_scaler);this.longest_feature_length=this.calculate_longest_feature_length();this.draw_background_connector=false;this.draw_individual_connectors=true};extend(ArcLinkedFeaturePainter.prototype,FeaturePainter.prototype,LinkedFeaturePainter.prototype,{calculate_longest_feature_length:function(){var longest_feature_length=0;for(var i=0,len=this.data.length;i<len;i++){var feature=this.data[i],feature_start=feature[1],feature_end=feature[2];longest_feature_length=Math.max(longest_feature_length,feature_end-feature_start)}return longest_feature_length},get_top_padding:function(width){var view_range=this.view_end-this.view_start,w_scale=width/view_range;return Math.min(128,Math.ceil((this.longest_feature_length/2)*w_scale))},draw_connector:function(ctx,block1_start,block1_end,block2_start,block2_end,y_center){var x_center=(block1_end+block2_start)/2,radius=block2_start-x_center;var angle1=Math.PI,angle2=0;if(radius>0){ctx.beginPath();ctx.arc(x_center,y_center,block2_start-x_center,Math.PI,0);ctx.stroke()}}});var Color=function(rgb,a){if(Array.isArray(rgb)){this.rgb=rgb}else{if(rgb.length==6){this.rgb=rgb.match(/.{2}/g).map(function(c){return parseInt(c,16)})}else{this.rgb=rgb.split("").map(function(c){return parseInt(c+c,16)})}}this.alpha=typeof(a)==="number"?a:1};Color.prototype={eval:function(){return this},toCSS:function(){if(this.alpha<1){return"rgba("+this.rgb.map(function(c){return Math.round(c)}).concat(this.alpha).join(", ")+")"}else{return"#"+this.rgb.map(function(i){i=Math.round(i);i=(i>255?255:(i<0?0:i)).toString(16);return i.length===1?"0"+i:i}).join("")}},toHSL:function(){var r=this.rgb[0]/255,g=this.rgb[1]/255,b=this.rgb[2]/255,a=this.alpha;var max=Math.max(r,g,b),min=Math.min(r,g,b);var h,s,l=(max+min)/2,d=max-min;if(max===min){h=s=0}else{s=l>0.5?d/(2-max-min):d/(max+min);switch(max){case r:h=(g-b)/d+(g<b?6:0);break;case g:h=(b-r)/d+2;break;case b:h=(r-g)/d+4;break}h/=6}return{h:h*360,s:s,l:l,a:a}},toARGB:function(){var argb=[Math.round(this.alpha*255)].concat(this.rgb);return"#"+argb.map(function(i){i=Math.round(i);i=(i>255?255:(i<0?0:i)).toString(16);return i.length===1?"0"+i:i}).join("")},mix:function(color2,weight){color1=this;var p=weight;var w=p*2-1;var a=color1.toHSL().a-color2.toHSL().a;var w1=(((w*a==-1)?w:(w+a)/(1+w*a))+1)/2;var w2=1-w1;var rgb=[color1.rgb[0]*w1+color2.rgb[0]*w2,color1.rgb[1]*w1+color2.rgb[1]*w2,color1.rgb[2]*w1+color2.rgb[2]*w2];var alpha=color1.alpha*p+color2.alpha*(1-p);return new Color(rgb,alpha)}};var LinearRamp=function(start_color,end_color,start_value,end_value){this.start_color=new Color(start_color);this.end_color=new Color(end_color);this.start_value=start_value;this.end_value=end_value;this.value_range=end_value-start_value};LinearRamp.prototype.map_value=function(value){value=Math.max(value,this.start_value);value=Math.min(value,this.end_value);value=(value-this.start_value)/this.value_range;return this.start_color.mix(this.end_color,1-value).toCSS()};var SplitRamp=function(start_color,middle_color,end_color,start_value,end_value){this.positive_ramp=new LinearRamp(middle_color,end_color,0,end_value);this.negative_ramp=new LinearRamp(middle_color,start_color,0,-start_value);this.start_value=start_value;this.end_value=end_value};SplitRamp.prototype.map_value=function(value){value=Math.max(value,this.start_value);value=Math.min(value,this.end_value);if(value>=0){return this.positive_ramp.map_value(value)}else{return this.negative_ramp.map_value(-value)}};var DiagonalHeatmapPainter=function(data,view_start,view_end,prefs,mode){Painter.call(this,data,view_start,view_end,prefs,mode);if(this.prefs.min_value===undefined){var min_value=Infinity;for(var i=0,len=this.data.length;i<len;i++){min_value=Math.min(min_value,this.data[i][5])}this.prefs.min_value=min_value}if(this.prefs.max_value===undefined){var max_value=-Infinity;for(var i=0,len=this.data.length;i<len;i++){max_value=Math.max(max_value,this.data[i][5])}this.prefs.max_value=max_value}};DiagonalHeatmapPainter.prototype.default_prefs={min_value:undefined,max_value:undefined,mode:"Heatmap",pos_color:"4169E1",neg_color:"FF8C00"};DiagonalHeatmapPainter.prototype.draw=function(ctx,width,height,w_scale){var min_value=this.prefs.min_value,max_value=this.prefs.max_value,value_range=max_value-min_value,height_px=height,view_start=this.view_start,view_range=this.view_end-this.view_start,mode=this.mode,data=this.data,invsqrt2=1/Math.sqrt(2);var ramp=(new SplitRamp(this.prefs.neg_color,"FFFFFF",this.prefs.pos_color,min_value,max_value));var d,s1,e1,s2,e2,value;var scale=function(p){return(p-view_start)*w_scale};ctx.save();ctx.rotate(-45*Math.PI/180);ctx.scale(invsqrt2,invsqrt2);for(var i=0,len=data.length;i<len;i++){d=data[i];s1=scale(d[1]);e1=scale(d[2]);s2=scale(d[4]);e2=scale(d[5]);value=d[6];ctx.fillStyle=(ramp.map_value(value));ctx.fillRect(s1,s2,(e1-s1),(e2-s2))}ctx.restore()};exports.Scaler=Scaler;exports.SummaryTreePainter=SummaryTreePainter;exports.LinePainter=LinePainter;exports.LinkedFeaturePainter=LinkedFeaturePainter;exports.ReadPainter=ReadPainter;exports.ArcLinkedFeaturePainter=ArcLinkedFeaturePainter;exports.DiagonalHeatmapPainter=DiagonalHeatmapPainter};(function(d){var c={};var b=function(e){return c[e]};var a=function(f,g){var e={};g(b,e);c[f]=e};a("class",class_module);a("slotting",slotting_module);a("painters",painters_module);a("trackster",trackster_module);for(key in c.trackster){d[key]=c.trackster[key]}})(window);
\ No newline at end of file
diff -r 96bc3ef032671042f389696d510538f0f5f9b643 -r dc5ab5e987e483647148afde42f3f257a557c742 static/scripts/viz/paramamonster.js
--- a/static/scripts/viz/paramamonster.js
+++ b/static/scripts/viz/paramamonster.js
@@ -405,15 +405,14 @@
icon_class: 'gear track-settings',
on_click: function() {
settings_div.toggle();
- },
- tipsy_config: { gravity: 's' }
+ }
},
{
title: 'Remove',
icon_class: 'cross-circle',
on_click: function() {
self.$el.remove();
- $('.tipsy').remove();
+ $('.tooltip').remove();
// TODO: remove track from viz collection.
}
}
@@ -538,7 +537,7 @@
}
],
{
- tipsy_config: {gravity: 's'}
+
});
this.$el.prepend(menu.$el);
@@ -743,10 +742,9 @@
title: 'Close',
icon_class: 'cross-circle',
on_click: function() {
- $('.tipsy').remove();
+ $('.tooltip').remove();
help_div.remove();
- },
- tipsy_config: { gravity: 's' }
+ }
}
]);
@@ -797,7 +795,7 @@
}
],
{
- tipsy_config: {gravity: 'n'}
+ tooltip_config: {placement: 'bottom'}
});
// Create mode selection popup. Mode selection changes default mode and mode for all tracks.
diff -r 96bc3ef032671042f389696d510538f0f5f9b643 -r dc5ab5e987e483647148afde42f3f257a557c742 static/scripts/viz/trackster.js
--- a/static/scripts/viz/trackster.js
+++ b/static/scripts/viz/trackster.js
@@ -166,7 +166,7 @@
*/
var create_action_icon = function(title, css_class, on_click_fn) {
return $("<a/>").attr("href", "javascript:void(0);").attr("title", title)
- .addClass("icon-button").addClass(css_class).tipsy( {gravity: 's'} )
+ .addClass("icon-button").addClass(css_class).tooltip()
.click(on_click_fn);
};
@@ -485,7 +485,7 @@
css_class: "remove-icon",
on_click_fn: function(drawable) {
// Tipsy for remove icon must be deleted when drawable is deleted.
- $(".tipsy").remove();
+ $(".bs-tooltip").remove();
drawable.remove();
}
}
@@ -555,7 +555,7 @@
add_action_icon: function(name, title, css_class, on_click_fn, prepend, hide) {
var drawable = this;
this.action_icons[name] = $("<a/>").attr("href", "javascript:void(0);").attr("title", title)
- .addClass("icon-button").addClass(css_class).tipsy( {gravity: 's'} )
+ .addClass("icon-button").addClass(css_class).tooltip()
.click( function() { on_click_fn(drawable); } )
.appendTo(this.icons_div);
if (hide) {
@@ -760,7 +760,7 @@
title: "Show composite track",
css_class: "layers-stack",
on_click_fn: function(group) {
- $(".tipsy").remove();
+ $(".bs-tooltip").remove();
group.show_composite_track();
}
},
@@ -855,7 +855,7 @@
}
else {
this.action_icons.composite_icon.hide();
- $(".tipsy").remove();
+ $(".bs-tooltip").remove();
}
//
@@ -1083,7 +1083,7 @@
}
};
this.nav_input = $("<input/>").addClass("nav-input").hide().bind("keyup focusout", submit_nav).appendTo(this.nav_controls);
- this.location_span = $("<span/>").addClass("location").attr('original-title', 'Click to change location').tipsy( { gravity: 'n' } ).appendTo(this.nav_controls);
+ this.location_span = $("<span/>").addClass("location").attr('original-title', 'Click to change location').tooltip( { placement: 'bottom' } ).appendTo(this.nav_controls);
this.location_span.click(function() {
view.location_span.hide();
view.chrom_select.hide();
@@ -1096,9 +1096,9 @@
this.hidden_input = $("<input/>").attr("type", "hidden").val(this.vis_id).appendTo(this.nav_controls);
}
- this.zo_link = $("<a/>").attr("id", "zoom-out").attr("title", "Zoom out").tipsy( {gravity: 'n'} )
+ this.zo_link = $("<a/>").attr("id", "zoom-out").attr("title", "Zoom out").tooltip( {placement: 'bottom'} )
.click(function() { view.zoom_out(); view.request_redraw(); }).appendTo(this.nav_controls);
- this.zi_link = $("<a/>").attr("id", "zoom-in").attr("title", "Zoom in").tipsy( {gravity: 'n'} )
+ this.zi_link = $("<a/>").attr("id", "zoom-in").attr("title", "Zoom in").tooltip( {placement: 'bottom'} )
.click(function() { view.zoom_in(); view.request_redraw(); }).appendTo(this.nav_controls);
// Get initial set of chroms.
@@ -1642,7 +1642,7 @@
/** Close and reset overview. */
reset_overview: function() {
// Update UI.
- $(".tipsy").remove();
+ $(".bs-tooltip").remove();
this.overview_viewport.find(".track-tile").remove();
this.overview_viewport.height(this.default_overview_height);
this.overview_box.height(this.default_overview_height);
@@ -2631,10 +2631,10 @@
input = $('<input />').attr("id", id ).attr("name", id ).val( value ).css("float", "left")
.appendTo(container_div).click(function(e) {
// Hide other pickers.
- $(".tipsy").hide();
+ $(".bs-tooltip").removeClass( "in" );
// Show input's color picker.
- var tip = $(this).siblings(".tipsy");
+ var tip = $(this).siblings(".bs-tooltip").addClass( "in" );
tip.css( {
// left: $(this).position().left + ( $(input).width() / 2 ) - 60,
// top: $(this).position().top + $(this.height)
@@ -2660,13 +2660,13 @@
}),
// Icon for setting a new random color; behavior set below.
new_color_icon = $("<a href='javascript:void(0)'/>").addClass("icon-button arrow-circle").appendTo(container_div)
- .attr("title", "Set new random color").tipsy({ gravity: 's' }),
+ .attr("title", "Set new random color").tooltip(),
// Color picker in tool tip style.
- tip = $( "<div class='tipsy tipsy-west' style='position: absolute;' />" ).appendTo(container_div).hide(),
+ tip = $( "<div class='bs-tooltip right' style='position: absolute;' />" ).appendTo(container_div).hide(),
// Inner div for padding purposes
- tip_inner = $("<div style='background-color: black; padding: 10px;'></div>").appendTo(tip),
- farb_container = $("<div/>").appendTo(tip_inner),
- farb_obj = $.farbtastic(farb_container, { width: 100, height: 100, callback: input, color: value });
+ tip_inner = $("<div class='tooltip-inner' style='text-align: inherit'></div>").appendTo(tip),
+ tip_arrow = $("<div class='tooltip-arrow'></div>").appendTo(tip),
+ farb_obj = $.farbtastic(tip_inner, { width: 100, height: 100, callback: input, color: value });
// Clear floating.
container_div.append( $("<div/>").css("clear", "both"));
@@ -2777,17 +2777,17 @@
num_features = data.length,
more_down_icon = $("<a href='javascript:void(0);'/>").addClass("icon more-down")
.attr("title", "For speed, only the first " + num_features + " features in this region were obtained from server. Click to get more data including depth")
- .tipsy( {gravity: 's'} ).appendTo(message_div),
+ .tooltip().appendTo(message_div),
more_across_icon = $("<a href='javascript:void(0);'/>").addClass("icon more-across")
.attr("title", "For speed, only the first " + num_features + " features in this region were obtained from server. Click to get more data excluding depth")
- .tipsy( {gravity: 's'} ).appendTo(message_div);
+ .tooltip().appendTo(message_div);
// Set up actions for icons.
more_down_icon.click(function() {
// Mark tile as stale, request more data, and redraw track.
tile.stale = true;
track.data_manager.get_more_data(tile_region, track.mode, tile.resolution, {}, track.data_manager.DEEP_DATA_REQ);
- $(".tipsy").hide();
+ $(".bs-tooltip").hide();
track.request_draw(true);
}).dblclick(function(e) {
// Do not propogate as this would normally zoom in.
@@ -2798,7 +2798,7 @@
// Mark tile as stale, request more data, and redraw track.
tile.stale = true;
track.data_manager.get_more_data(tile_region, track.mode, tile.resolution, {}, track.data_manager.BROAD_DATA_REQ);
- $(".tipsy").hide();
+ $(".bs-tooltip").hide();
track.request_draw(true);
}).dblclick(function(e) {
// Do not propogate as this would normally zoom in.
@@ -3025,7 +3025,7 @@
track.revert_name();
}
// HACK: name change modifies icon placement, which leaves tooltip incorrectly placed.
- $(".tipsy").remove();
+ $(".bs-tooltip").remove();
}
},
// Go to parameter exploration visualization.
@@ -3371,7 +3371,7 @@
title: "To minimize track height, not all feature rows are displayed. Click to display more rows.",
css_class: "exclamation",
on_click_fn: function(track) {
- $(".tipsy").remove();
+ $(".bs-tooltip").remove();
// HACKish: is it always reasonble to use view to get w_scale/current resolution?
track.slotters[ track.view.resolution_px_b ].max_rows *= 2;
track.request_draw(true);
@@ -3902,7 +3902,7 @@
title: "Show individual tracks",
css_class: "layers-stack",
on_click_fn: function(track) {
- $(".tipsy").remove();
+ $(".bs-tooltip").remove();
track.show_group();
}
}
@@ -4300,7 +4300,7 @@
min_label = $("<div/>").text(round(track.prefs.min_value, 3)).make_text_editable({
num_cols: 6,
on_finish: function(new_val) {
- $(".tipsy").remove();
+ $(".bs-tooltip").remove();
var new_val = parseFloat(new_val);
if (!isNaN(new_val)) {
track.set_min_value(new_val);
@@ -4312,7 +4312,7 @@
max_label = $("<div/>").text(round(track.prefs.max_value, 3)).make_text_editable({
num_cols: 6,
on_finish: function(new_val) {
- $(".tipsy").remove();
+ $(".bs-tooltip").remove();
var new_val = parseFloat(new_val);
if (!isNaN(new_val)) {
track.set_max_value(new_val);
@@ -4581,7 +4581,7 @@
max_label = $("<div/>").text(max_val).make_text_editable({
num_cols: 12,
on_finish: function(new_val) {
- $(".tipsy").remove();
+ $(".bs-tooltip").remove();
var new_val = parseFloat(new_val);
track.prefs.histogram_max = (!isNaN(new_val) ? new_val : null);
track.tile_cache.clear();
diff -r 96bc3ef032671042f389696d510538f0f5f9b643 -r dc5ab5e987e483647148afde42f3f257a557c742 templates/base_panels.mako
--- a/templates/base_panels.mako
+++ b/templates/base_panels.mako
@@ -48,7 +48,7 @@
<!--[if lt IE 7]>
${h.js( 'IE7', 'ie7-recalc' )}
<![endif]-->
- ${h.js( 'jquery', 'libs/underscore', 'libs/backbone', 'libs/backbone-relational', 'libs/handlebars.runtime', 'mvc/ui' )}
+ ${h.js( 'jquery', 'bootstrap', 'libs/underscore', 'libs/backbone', 'libs/backbone-relational', 'libs/handlebars.runtime', 'mvc/ui' )}
<script type="text/javascript">
// Set up needed paths.
var galaxy_paths = new GalaxyPaths({
@@ -69,7 +69,7 @@
<%def name="late_javascripts()">
## Scripts can be loaded later since they progressively add features to
## the panels, but do not change layout
- ${h.js( 'jquery.event.drag', 'jquery.event.hover', 'jquery.form', 'jquery.rating', 'galaxy.base', 'galaxy.panels', 'jquery.tipsy' )}
+ ${h.js( 'jquery.event.drag', 'jquery.event.hover', 'jquery.form', 'jquery.rating', 'galaxy.base', 'galaxy.panels' )}
<script type="text/javascript">
ensure_dd_helper();
diff -r 96bc3ef032671042f389696d510538f0f5f9b643 -r dc5ab5e987e483647148afde42f3f257a557c742 templates/display_base.mako
--- a/templates/display_base.mako
+++ b/templates/display_base.mako
@@ -32,7 +32,7 @@
<%def name="javascripts()">
${parent.javascripts()}
- ${h.js( "jquery", "jquery.tipsy", "galaxy.base", "json2", "jstorage", "jquery.autocomplete", "jquery.rating",
+ ${h.js( "jquery", "bootstrap", "galaxy.base", "json2", "jstorage", "jquery.autocomplete", "jquery.rating",
"autocomplete_tagging", "viz/trackster", "viz/trackster_ui", "jquery.event.drag", "jquery.mousewheel",
"jquery.autocomplete", "jquery.ui.sortable.slider", "farbtastic", "mvc/data", "viz/visualization" )}
diff -r 96bc3ef032671042f389696d510538f0f5f9b643 -r dc5ab5e987e483647148afde42f3f257a557c742 templates/root/history.mako
--- a/templates/root/history.mako
+++ b/templates/root/history.mako
@@ -17,7 +17,7 @@
<meta http-equiv="Pragma" content="no-cache">
${h.css( "base", "history", "autocomplete_tagging" )}
-${h.js( "jquery", "jquery.tipsy", "galaxy.base", "json2", "jstorage", "jquery.autocomplete", "autocomplete_tagging" )}
+${h.js( "jquery", "bootstrap", "galaxy.base", "json2", "jstorage", "jquery.autocomplete", "autocomplete_tagging" )}
<script type="text/javascript">
@@ -45,7 +45,7 @@
error: function() { alert( "Tagging failed" ) },
success: function(tag_elt_html) {
tag_elt.html(tag_elt_html);
- tag_elt.find(".tooltip").tipsy( { gravity: 's' } );
+ tag_elt.find(".tooltip").tooltip();
tag_area.slideDown("fast");
}
});
@@ -86,7 +86,7 @@
annotation = "<em>Describe or add notes to dataset</em>";
}
annotation_elt.html(annotation);
- annotation_area.find(".tooltip").tipsy( { gravity: 's' } );
+ annotation_area.find(".tooltip").tooltop();
async_save_text(
annotation_elt.attr("id"), annotation_elt.attr("id"),
"${h.url_for( controller='/dataset', action='annotate_async')}?" + href_parms,
@@ -138,7 +138,7 @@
}
});
%endif
- $(".tipsy").remove();
+ $(".tooltip").remove();
} else {
render_message( "Dataset deletion failed", "error" );
}
diff -r 96bc3ef032671042f389696d510538f0f5f9b643 -r dc5ab5e987e483647148afde42f3f257a557c742 templates/tracks/browser.mako
--- a/templates/tracks/browser.mako
+++ b/templates/tracks/browser.mako
@@ -21,7 +21,7 @@
<script type='text/javascript' src="${h.url_for('/static/scripts/excanvas.js')}"></script><![endif]-->
-${h.js( "galaxy.base", "galaxy.panels", "json2", "jquery", "jstorage", "jquery.event.drag", "jquery.event.hover","jquery.mousewheel", "jquery.autocomplete", "mvc/data", "viz/visualization", "viz/trackster", "viz/trackster_ui", "jquery.ui.sortable.slider", "farbtastic" )}
+${h.js( "galaxy.base", "galaxy.panels", "json2", "jquery", "bootstrap", "jstorage", "jquery.event.drag", "jquery.event.hover","jquery.mousewheel", "jquery.autocomplete", "mvc/data", "viz/visualization", "viz/trackster", "viz/trackster_ui", "jquery.ui.sortable.slider", "farbtastic" )}
<script type="text/javascript">
//
@@ -171,7 +171,7 @@
} }
],
{
- tipsy_config: {gravity: 'n'}
+ tooltip_config: { placement: 'bottom' }
});
menu.$el.attr("style", "float: right");
diff -r 96bc3ef032671042f389696d510538f0f5f9b643 -r dc5ab5e987e483647148afde42f3f257a557c742 templates/visualization/circster.mako
--- a/templates/visualization/circster.mako
+++ b/templates/visualization/circster.mako
@@ -55,12 +55,14 @@
{ icon_class: 'cross-circle', title: 'Close', on_click: function() {
window.location = "${h.url_for( controller='visualization', action='list' )}";
} }
- ]);
+ ], {
+ tooltip_config: { placement: 'bottom' }
+ });
menu.$el.attr("style", "float: right");
$("#center .unified-panel-header-inner").append(menu.$el);
- // Manual tipsy config because default gravity is S and cannot be changed.
- $(".menu-button").tipsy( {gravity: 'n'} );
+ // Manual tooltip config because default gravity is S and cannot be changed.
+ $(".menu-button").tooltip( { placement: 'bottom' } );
// -- Viz set up. --
diff -r 96bc3ef032671042f389696d510538f0f5f9b643 -r dc5ab5e987e483647148afde42f3f257a557c742 templates/workflow/editor.mako
--- a/templates/workflow/editor.mako
+++ b/templates/workflow/editor.mako
@@ -26,7 +26,7 @@
<![endif]-->
${h.js( "jquery",
- "jquery.tipsy",
+ "bootstrap",
"jquery.event.drag",
"jquery.event.drop",
"jquery.event.hover",
diff -r 96bc3ef032671042f389696d510538f0f5f9b643 -r dc5ab5e987e483647148afde42f3f257a557c742 templates/workflow/run.mako
--- a/templates/workflow/run.mako
+++ b/templates/workflow/run.mako
@@ -2,7 +2,7 @@
<%def name="javascripts()">
${parent.javascripts()}
- ${h.js( "jquery.autocomplete", "jquery.tipsy" )}
+ ${h.js( "jquery.autocomplete", "bootstrap" )}
<script type="text/javascript">
$( function() {
function show_tool_body(title){
@@ -84,7 +84,7 @@
}).attr('original-title',
'Enable/disable selection of multiple input ' +
'files. Each selected file will have an ' +
- 'instance of the workflow.').tipsy({gravity:'s'})
+ 'instance of the workflow.').tooltip({placement: 'bottom'})
);
var filter = $('<input type="text" class="multiinput-filter" ' +
'placeholder="type to filter">');
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
commit/galaxy-central: james_taylor: Add support for bootstrap style tabs, use tabs in edit attributes form
by Bitbucket 20 Jul '12
by Bitbucket 20 Jul '12
20 Jul '12
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/96bc3ef03267/
changeset: 96bc3ef03267
user: james_taylor
date: 2012-07-20 20:53:30
summary: Add support for bootstrap style tabs, use tabs in edit attributes form
affected #: 8 files
diff -r 6345f41828866e9dcc4c64e689eb5b17c6e0e457 -r 96bc3ef032671042f389696d510538f0f5f9b643 static/june_2007_style/base.less
--- a/static/june_2007_style/base.less
+++ b/static/june_2007_style/base.less
@@ -40,6 +40,10 @@
color: @link_text;
}
+// Overrides for links that shouldn't be underlined
+.nav-tabs a {
+ text-decoration: none;
+}
h1, h2, h3, h4 {
color: @header_text;
diff -r 6345f41828866e9dcc4c64e689eb5b17c6e0e457 -r 96bc3ef032671042f389696d510538f0f5f9b643 static/june_2007_style/blue/base.css
--- a/static/june_2007_style/blue/base.css
+++ b/static/june_2007_style/blue/base.css
@@ -252,8 +252,8 @@
.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px;}
.nav-tabs{border-bottom:1px solid #ddd;}
.nav-tabs>li{margin-bottom:-1px;}
-.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:16px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;}.nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #dddddd;}
-.nav-tabs>.active>a,.nav-tabs>.active>a:hover{color:#555555;background-color:#ffffff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default;}
+.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:16px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;}.nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #999999;}
+.nav-tabs>.active>a,.nav-tabs>.active>a:hover{color:#555555;background-color:#ffffff;border:1px solid #999;border-bottom-color:transparent;cursor:default;}
.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;}
.nav-pills>.active>a,.nav-pills>.active>a:hover{color:#ffffff;background-color:#303030;}
.nav-stacked>li{float:none;}
@@ -450,6 +450,9 @@
.btn.active,.btn:active{color:inherit;}
.dropdown-menu{max-width:auto;}
input[type="checkbox"],input[type="radio"]{margin-left:0.5ex;margin-right:0.5ex;}
+.nav-tabs{border-bottom:1px solid #999999;}
+.nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #999999;}
+.nav-tabs>.active>a,.nav-tabs>.active>a:hover{border:1px solid #999999;border-bottom-color:transparent;}
@font-face{font-family:'FontAwesome';src:url('../images/fonts/fontawesome-webfont.eot');src:url('../images/fonts/fontawesome-webfont.eot?#iefix') format('embedded-opentype'),url('../images/fonts/fontawesome-webfont.woff') format('woff'),url('../images/fonts/fontawesome-webfont.ttf') format('truetype'),url('../images/fonts/fontawesome-webfont.svgz#FontAwesomeRegular') format('svg'),url('../images/fonts/fontawesome-webfont.svg#FontAwesomeRegular') format('svg');font-weight:normal;font-style:normal;}.ficon,[class^="ficon"]:before,[class*=" ficon"]:before{font-family:FontAwesome;font-weight:normal;font-style:normal;display:inline-block;}
.ficon.large:before{font-size:1.3333333333333333em;}
.btn [class^="ficon"],.btn [class*=" ficon"]{line-height:.9em;}
@@ -606,6 +609,7 @@
body{background:#ffffff;color:#303030;background-image:url(base_bg.png);background-repeat:repeat-x;background-position:top;margin:10px;}
img{border:0;}
a,a:link,a:visited,a:active{text-decoration:underline;color:#303030;}
+.nav-tabs a{text-decoration:none;}
h1,h2,h3,h4{color:#023858;margin:0.5em 0;}
h1{font-size:24px;}
h2{font-size:18px;line-height:24px;}h2 small{font-size:14px;}
diff -r 6345f41828866e9dcc4c64e689eb5b17c6e0e457 -r 96bc3ef032671042f389696d510538f0f5f9b643 static/june_2007_style/bootstrap/navs.less
--- a/static/june_2007_style/bootstrap/navs.less
+++ b/static/june_2007_style/bootstrap/navs.less
@@ -115,7 +115,7 @@
border: 1px solid transparent;
.border-radius(4px 4px 0 0);
&:hover {
- border-color: @grayLighter @grayLighter #ddd;
+ border-color: @grayLighter @grayLighter #999;
}
}
// Active state, and it's :hover to override normal :hover
@@ -123,7 +123,7 @@
.nav-tabs > .active > a:hover {
color: @gray;
background-color: @white;
- border: 1px solid #ddd;
+ border: 1px solid #999;
border-bottom-color: transparent;
cursor: default;
}
diff -r 6345f41828866e9dcc4c64e689eb5b17c6e0e457 -r 96bc3ef032671042f389696d510538f0f5f9b643 static/june_2007_style/galaxy_bootstrap.less
--- a/static/june_2007_style/galaxy_bootstrap.less
+++ b/static/june_2007_style/galaxy_bootstrap.less
@@ -97,3 +97,19 @@
margin-left: 0.5ex;
margin-right: 0.5ex;
}
+
+// Tabs -- border color is hardcoded in navs.less, change to @btnBorder here
+
+.nav-tabs {
+ border-bottom: 1px solid @btnBorder;
+}
+.nav-tabs > li > a {
+ &:hover {
+ border-color: @grayLighter @grayLighter @btnBorder;
+ }
+}
+.nav-tabs > .active > a,
+.nav-tabs > .active > a:hover {
+ border: 1px solid @btnBorder;
+ border-bottom-color: transparent;
+}
diff -r 6345f41828866e9dcc4c64e689eb5b17c6e0e457 -r 96bc3ef032671042f389696d510538f0f5f9b643 static/scripts/bootstrap.js
--- /dev/null
+++ b/static/scripts/bootstrap.js
@@ -0,0 +1,135 @@
+/* ========================================================
+ * bootstrap-tab.js v2.0.4
+ * http://twitter.github.com/bootstrap/javascript.html#tabs
+ * ========================================================
+ * 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 ;_;
+
+
+ /* TAB CLASS DEFINITION
+ * ==================== */
+
+ var Tab = function ( element ) {
+ this.element = $(element)
+ }
+
+ Tab.prototype = {
+
+ constructor: Tab
+
+ , show: function () {
+ var $this = this.element
+ , $ul = $this.closest('ul:not(.dropdown-menu)')
+ , selector = $this.attr('data-target')
+ , previous
+ , $target
+ , e
+
+ if (!selector) {
+ selector = $this.attr('href')
+ selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
+ }
+
+ if ( $this.parent('li').hasClass('active') ) return
+
+ previous = $ul.find('.active a').last()[0]
+
+ e = $.Event('show', {
+ relatedTarget: previous
+ })
+
+ $this.trigger(e)
+
+ if (e.isDefaultPrevented()) return
+
+ $target = $(selector)
+
+ this.activate($this.parent('li'), $ul)
+ this.activate($target, $target.parent(), function () {
+ $this.trigger({
+ type: 'shown'
+ , relatedTarget: previous
+ })
+ })
+ }
+
+ , activate: function ( element, container, callback) {
+ var $active = container.find('> .active')
+ , transition = callback
+ && $.support.transition
+ && $active.hasClass('fade')
+
+ function next() {
+ $active
+ .removeClass('active')
+ .find('> .dropdown-menu > .active')
+ .removeClass('active')
+
+ element.addClass('active')
+
+ if (transition) {
+ element[0].offsetWidth // reflow for transition
+ element.addClass('in')
+ } else {
+ element.removeClass('fade')
+ }
+
+ if ( element.parent('.dropdown-menu') ) {
+ element.closest('li.dropdown').addClass('active')
+ }
+
+ callback && callback()
+ }
+
+ transition ?
+ $active.one($.support.transition.end, next) :
+ next()
+
+ $active.removeClass('in')
+ }
+ }
+
+
+ /* TAB PLUGIN DEFINITION
+ * ===================== */
+
+ $.fn.tab = function ( option ) {
+ return this.each(function () {
+ var $this = $(this)
+ , data = $this.data('tab')
+ if (!data) $this.data('tab', (data = new Tab(this)))
+ if (typeof option == 'string') data[option]()
+ })
+ }
+
+ $.fn.tab.Constructor = Tab
+
+
+ /* TAB DATA-API
+ * ============ */
+
+ $(function () {
+ $('body').on('click.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
+ e.preventDefault()
+ $(this).tab('show')
+ })
+ })
+
+}(window.jQuery);
\ No newline at end of file
diff -r 6345f41828866e9dcc4c64e689eb5b17c6e0e457 -r 96bc3ef032671042f389696d510538f0f5f9b643 static/scripts/packed/bootstrap.js
--- /dev/null
+++ b/static/scripts/packed/bootstrap.js
@@ -0,0 +1,1 @@
+!function(b){var a=function(c){this.element=b(c)};a.prototype={constructor:a,show:function(){var i=this.element,f=i.closest("ul:not(.dropdown-menu)"),d=i.attr("data-target"),g,c,h;if(!d){d=i.attr("href");d=d&&d.replace(/.*(?=#[^\s]*$)/,"")}if(i.parent("li").hasClass("active")){return}g=f.find(".active a").last()[0];h=b.Event("show",{relatedTarget:g});i.trigger(h);if(h.isDefaultPrevented()){return}c=b(d);this.activate(i.parent("li"),f);this.activate(c,c.parent(),function(){i.trigger({type:"shown",relatedTarget:g})})},activate:function(e,d,h){var c=d.find("> .active"),g=h&&b.support.transition&&c.hasClass("fade");function f(){c.removeClass("active").find("> .dropdown-menu > .active").removeClass("active");e.addClass("active");if(g){e[0].offsetWidth;e.addClass("in")}else{e.removeClass("fade")}if(e.parent(".dropdown-menu")){e.closest("li.dropdown").addClass("active")}h&&h()}g?c.one(b.support.transition.end,f):f();c.removeClass("in")}};b.fn.tab=function(c){return this.each(function(){var e=b(this),d=e.data("tab");if(!d){e.data("tab",(d=new a(this)))}if(typeof c=="string"){d[c]()}})};b.fn.tab.Constructor=a;b(function(){b("body").on("click.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(c){c.preventDefault();b(this).tab("show")})})}(window.jQuery);
\ No newline at end of file
diff -r 6345f41828866e9dcc4c64e689eb5b17c6e0e457 -r 96bc3ef032671042f389696d510538f0f5f9b643 templates/base.mako
--- a/templates/base.mako
+++ b/templates/base.mako
@@ -26,7 +26,7 @@
## <!--[if lt IE 7]>
## <script type='text/javascript' src="/static/scripts/IE7.js"></script>
## <![endif]-->
- ${h.js( "jquery", "galaxy.base", "libs/underscore", "libs/backbone", "libs/backbone-relational", "libs/handlebars.runtime", "mvc/ui" )}
+ ${h.js( "jquery", "bootstrap", "galaxy.base", "libs/underscore", "libs/backbone", "libs/backbone-relational", "libs/handlebars.runtime", "mvc/ui" )}
<script type="text/javascript">
// Set up needed paths.
var galaxy_paths = new GalaxyPaths({
diff -r 6345f41828866e9dcc4c64e689eb5b17c6e0e457 -r 96bc3ef032671042f389696d510538f0f5f9b643 templates/dataset/edit_attributes.mako
--- a/templates/dataset/edit_attributes.mako
+++ b/templates/dataset/edit_attributes.mako
@@ -30,7 +30,17 @@
${render_msg( message, status )}
%endif
-<div class="toolForm">
+
+<ul class="nav nav-tabs">
+ <li class="active"><a href="#attributes" data-toggle="tab">Attributes</a></li>
+ <li><a href="#convert" data-toggle="tab">Convert Format</a></li>
+ <li><a href="#datatype" data-toggle="tab">Datatype</a></li>
+ <li><a href="#permissions" data-toggle="tab">Permissions</a></li>
+</ul>
+
+<div class="tab-content">
+
+<div class="tab-pane active toolForm" id="attributes"><div class="toolFormTitle">${_('Edit Attributes')}</div><div class="toolFormBody"><form name="edit_attributes" action="${h.url_for( controller='dataset', action='edit', dataset_id=dataset_id )}" method="post">
@@ -98,12 +108,12 @@
%endif
</div></div>
-<p />
-<% converters = data.get_converter_types() %>
-%if len( converters ) > 0:
- <div class="toolForm">
- <div class="toolFormTitle">${_('Convert to new format')}</div>
- <div class="toolFormBody">
+
+<div class="tab-pane toolForm" id="convert">
+ <div class="toolFormTitle">${_('Convert to new format')}</div>
+ <div class="toolFormBody">
+ <% converters = data.get_converter_types() %>
+ %if len( converters ) > 0:
<form name="convert_data" action="${h.url_for( controller='dataset', action='edit', dataset_id=dataset_id )}" method="post"><div class="form-row"><div style="float: left; width: 250px; margin-right: 10px;">
@@ -122,12 +132,13 @@
<input type="submit" name="convert_data" value="${_('Convert')}"/></div></form>
- </div>
+ %else:
+ No conversions available
+ %endif
</div>
- <p />
-%endif
+</div>
-<div class="toolForm">
+<div class="tab-pane toolForm" id="datatype"><div class="toolFormTitle">${_('Change data type')}</div><div class="toolFormBody">
%if data.datatype.allow_datatype_change:
@@ -157,6 +168,7 @@
</div><p />
+<div class="tab-pane" id="permissions">
%if trans.app.security_agent.can_manage_dataset( current_user_roles, data.dataset ):
<%namespace file="/dataset/security_common.mako" import="render_permission_form" />
${render_permission_form( data.dataset, data.get_display_name(), h.url_for( controller='dataset', action='edit', dataset_id=dataset_id ), all_roles )}
@@ -184,4 +196,7 @@
</div></div></div>
+%else:
+ Permissions not available (not logged in)
%endif
+</div>
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
commit/galaxy-central: james_taylor: styles: We are not using icons from bootstrap so don't build in the sprites
by Bitbucket 20 Jul '12
by Bitbucket 20 Jul '12
20 Jul '12
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/6345f4182886/
changeset: 6345f4182886
user: james_taylor
date: 2012-07-20 20:15:45
summary: styles: We are not using icons from bootstrap so don't build in the sprites
affected #: 3 files
diff -r 85af79deedefcf3d677a8c25dee11335394c594d -r 6345f41828866e9dcc4c64e689eb5b17c6e0e457 static/june_2007_style/blue/base.css
--- a/static/june_2007_style/blue/base.css
+++ b/static/june_2007_style/blue/base.css
@@ -121,149 +121,6 @@
table .span22{float:none;width:1724px;margin-left:0;}
table .span23{float:none;width:1804px;margin-left:0;}
table .span24{float:none;width:1884px;margin-left:0;}
-[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("../img/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat;}[class^="icon-"]:last-child,[class*=" icon-"]:last-child{*margin-left:0;}
-[class^="icon-"]:last-child,[class*=" icon-"]:last-child{*margin-left:0;}
-.icon-white{background-image:url("../img/glyphicons-halflings-white.png");}
-.icon-glass{background-position:0 0;}
-.icon-music{background-position:-24px 0;}
-.icon-search{background-position:-48px 0;}
-.icon-envelope{background-position:-72px 0;}
-.icon-heart{background-position:-96px 0;}
-.icon-star{background-position:-120px 0;}
-.icon-star-empty{background-position:-144px 0;}
-.icon-user{background-position:-168px 0;}
-.icon-film{background-position:-192px 0;}
-.icon-th-large{background-position:-216px 0;}
-.icon-th{background-position:-240px 0;}
-.icon-th-list{background-position:-264px 0;}
-.icon-ok{background-position:-288px 0;}
-.icon-remove{background-position:-312px 0;}
-.icon-zoom-in{background-position:-336px 0;}
-.icon-zoom-out{background-position:-360px 0;}
-.icon-off{background-position:-384px 0;}
-.icon-signal{background-position:-408px 0;}
-.icon-cog{background-position:-432px 0;}
-.icon-trash{background-position:-456px 0;}
-.icon-home{background-position:0 -24px;}
-.icon-file{background-position:-24px -24px;}
-.icon-time{background-position:-48px -24px;}
-.icon-road{background-position:-72px -24px;}
-.icon-download-alt{background-position:-96px -24px;}
-.icon-download{background-position:-120px -24px;}
-.icon-upload{background-position:-144px -24px;}
-.icon-inbox{background-position:-168px -24px;}
-.icon-play-circle{background-position:-192px -24px;}
-.icon-repeat{background-position:-216px -24px;}
-.icon-refresh{background-position:-240px -24px;}
-.icon-list-alt{background-position:-264px -24px;}
-.icon-lock{background-position:-287px -24px;}
-.icon-flag{background-position:-312px -24px;}
-.icon-headphones{background-position:-336px -24px;}
-.icon-volume-off{background-position:-360px -24px;}
-.icon-volume-down{background-position:-384px -24px;}
-.icon-volume-up{background-position:-408px -24px;}
-.icon-qrcode{background-position:-432px -24px;}
-.icon-barcode{background-position:-456px -24px;}
-.icon-tag{background-position:0 -48px;}
-.icon-tags{background-position:-25px -48px;}
-.icon-book{background-position:-48px -48px;}
-.icon-bookmark{background-position:-72px -48px;}
-.icon-print{background-position:-96px -48px;}
-.icon-camera{background-position:-120px -48px;}
-.icon-font{background-position:-144px -48px;}
-.icon-bold{background-position:-167px -48px;}
-.icon-italic{background-position:-192px -48px;}
-.icon-text-height{background-position:-216px -48px;}
-.icon-text-width{background-position:-240px -48px;}
-.icon-align-left{background-position:-264px -48px;}
-.icon-align-center{background-position:-288px -48px;}
-.icon-align-right{background-position:-312px -48px;}
-.icon-align-justify{background-position:-336px -48px;}
-.icon-list{background-position:-360px -48px;}
-.icon-indent-left{background-position:-384px -48px;}
-.icon-indent-right{background-position:-408px -48px;}
-.icon-facetime-video{background-position:-432px -48px;}
-.icon-picture{background-position:-456px -48px;}
-.icon-pencil{background-position:0 -72px;}
-.icon-map-marker{background-position:-24px -72px;}
-.icon-adjust{background-position:-48px -72px;}
-.icon-tint{background-position:-72px -72px;}
-.icon-edit{background-position:-96px -72px;}
-.icon-share{background-position:-120px -72px;}
-.icon-check{background-position:-144px -72px;}
-.icon-move{background-position:-168px -72px;}
-.icon-step-backward{background-position:-192px -72px;}
-.icon-fast-backward{background-position:-216px -72px;}
-.icon-backward{background-position:-240px -72px;}
-.icon-play{background-position:-264px -72px;}
-.icon-pause{background-position:-288px -72px;}
-.icon-stop{background-position:-312px -72px;}
-.icon-forward{background-position:-336px -72px;}
-.icon-fast-forward{background-position:-360px -72px;}
-.icon-step-forward{background-position:-384px -72px;}
-.icon-eject{background-position:-408px -72px;}
-.icon-chevron-left{background-position:-432px -72px;}
-.icon-chevron-right{background-position:-456px -72px;}
-.icon-plus-sign{background-position:0 -96px;}
-.icon-minus-sign{background-position:-24px -96px;}
-.icon-remove-sign{background-position:-48px -96px;}
-.icon-ok-sign{background-position:-72px -96px;}
-.icon-question-sign{background-position:-96px -96px;}
-.icon-info-sign{background-position:-120px -96px;}
-.icon-screenshot{background-position:-144px -96px;}
-.icon-remove-circle{background-position:-168px -96px;}
-.icon-ok-circle{background-position:-192px -96px;}
-.icon-ban-circle{background-position:-216px -96px;}
-.icon-arrow-left{background-position:-240px -96px;}
-.icon-arrow-right{background-position:-264px -96px;}
-.icon-arrow-up{background-position:-289px -96px;}
-.icon-arrow-down{background-position:-312px -96px;}
-.icon-share-alt{background-position:-336px -96px;}
-.icon-resize-full{background-position:-360px -96px;}
-.icon-resize-small{background-position:-384px -96px;}
-.icon-plus{background-position:-408px -96px;}
-.icon-minus{background-position:-433px -96px;}
-.icon-asterisk{background-position:-456px -96px;}
-.icon-exclamation-sign{background-position:0 -120px;}
-.icon-gift{background-position:-24px -120px;}
-.icon-leaf{background-position:-48px -120px;}
-.icon-fire{background-position:-72px -120px;}
-.icon-eye-open{background-position:-96px -120px;}
-.icon-eye-close{background-position:-120px -120px;}
-.icon-warning-sign{background-position:-144px -120px;}
-.icon-plane{background-position:-168px -120px;}
-.icon-calendar{background-position:-192px -120px;}
-.icon-random{background-position:-216px -120px;}
-.icon-comment{background-position:-240px -120px;}
-.icon-magnet{background-position:-264px -120px;}
-.icon-chevron-up{background-position:-288px -120px;}
-.icon-chevron-down{background-position:-313px -119px;}
-.icon-retweet{background-position:-336px -120px;}
-.icon-shopping-cart{background-position:-360px -120px;}
-.icon-folder-close{background-position:-384px -120px;}
-.icon-folder-open{background-position:-408px -120px;}
-.icon-resize-vertical{background-position:-432px -119px;}
-.icon-resize-horizontal{background-position:-456px -118px;}
-.icon-hdd{background-position:0 -144px;}
-.icon-bullhorn{background-position:-24px -144px;}
-.icon-bell{background-position:-48px -144px;}
-.icon-certificate{background-position:-72px -144px;}
-.icon-thumbs-up{background-position:-96px -144px;}
-.icon-thumbs-down{background-position:-120px -144px;}
-.icon-hand-right{background-position:-144px -144px;}
-.icon-hand-left{background-position:-168px -144px;}
-.icon-hand-up{background-position:-192px -144px;}
-.icon-hand-down{background-position:-216px -144px;}
-.icon-circle-arrow-right{background-position:-240px -144px;}
-.icon-circle-arrow-left{background-position:-264px -144px;}
-.icon-circle-arrow-up{background-position:-288px -144px;}
-.icon-circle-arrow-down{background-position:-312px -144px;}
-.icon-globe{background-position:-336px -144px;}
-.icon-wrench{background-position:-360px -144px;}
-.icon-tasks{background-position:-384px -144px;}
-.icon-filter{background-position:-408px -144px;}
-.icon-briefcase{background-position:-432px -144px;}
-.icon-fullscreen{background-position:-456px -144px;}
.dropup,.dropdown{position:relative;}
.dropdown-toggle{*margin-bottom:-3px;}
.dropdown-toggle:active,.open .dropdown-toggle{outline:0;}
diff -r 85af79deedefcf3d677a8c25dee11335394c594d -r 6345f41828866e9dcc4c64e689eb5b17c6e0e457 static/june_2007_style/galaxy_bootstrap.less
--- a/static/june_2007_style/galaxy_bootstrap.less
+++ b/static/june_2007_style/galaxy_bootstrap.less
@@ -37,7 +37,7 @@
@import "bootstrap/tables.less";
// Components: common
-@import "bootstrap/sprites.less";
+// @import "bootstrap/sprites.less";
@import "bootstrap/dropdowns.less";
@import "bootstrap/wells.less";
@import "bootstrap/component-animations.less";
diff -r 85af79deedefcf3d677a8c25dee11335394c594d -r 6345f41828866e9dcc4c64e689eb5b17c6e0e457 static/june_2007_style/galaxy_bootstrap_variables.less
--- a/static/june_2007_style/galaxy_bootstrap_variables.less
+++ b/static/june_2007_style/galaxy_bootstrap_variables.less
@@ -126,8 +126,8 @@
// Sprite icons path
// -------------------------
-@iconSpritePath: "../img/glyphicons-halflings.png";
-@iconWhiteSpritePath: "../img/glyphicons-halflings-white.png";
+// @iconSpritePath: "../img/glyphicons-halflings.png";
+// @iconWhiteSpritePath: "../img/glyphicons-halflings-white.png";
// Input placeholder text color
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
3 new commits in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/84c7d3575d95/
changeset: 84c7d3575d95
user: james_taylor
date: 2012-07-20 20:02:07
summary: styles: Update to bootstrap 2.0.4. The bootstrap directory is now an *exact*
clone from github. Variables have been moved to
"galaxy_bootstrap_variables.less" for easy synchronization with upstream
variable additions. Changes that couldn't be made through variables are now
overrides in "galaxy_bootstrap.less" or "base.less"
affected #: 42 files
diff -r f4e720d9f182cb8216fdd2174fe3ab83d0350a24 -r 84c7d3575d9543489aead618c91a6406019a26d9 static/june_2007_style/Makefile
--- a/static/june_2007_style/Makefile
+++ b/static/june_2007_style/Makefile
@@ -26,5 +26,5 @@
../process_css.py ../$(INI) ..:../shared_images:../../images . < $< > $@
# Some dependencies
-base.css: variables.less galaxy_bootstrap.less iconic_stroke.less base_sprites.less
+base.css: variables.less galaxy_bootstrap.less galaxy_bootstrap_variables.less iconic_stroke.less base_sprites.less
diff -r f4e720d9f182cb8216fdd2174fe3ab83d0350a24 -r 84c7d3575d9543489aead618c91a6406019a26d9 static/june_2007_style/base.less
--- a/static/june_2007_style/base.less
+++ b/static/june_2007_style/base.less
@@ -10,10 +10,6 @@
.user-select(none);
}
-.shadow {
- .box-shadow();
-}
-
.parent-width {
.box-sizing(border-box);
width: 100%;
@@ -39,7 +35,6 @@
border: 0;
}
-
a, a:link, a:visited, a:active {
text-decoration: underline;
color: @link_text;
@@ -49,7 +44,26 @@
h1, h2, h3, h4 {
color: @header_text;
margin: 0.5em 0;
- /*text-shadow: #bbb 2px 2px 1px;*/
+}
+
+h1 {
+ font-size: 24px;
+}
+
+h2 {
+ font-size: 18px;
+ line-height: @baseLineHeight * 1.5;
+ small {
+ font-size: 14px;
+ }
+}
+
+h3 {
+ font-size: 14px;
+ line-height: @baseLineHeight;
+ small {
+ font-size: 12px;
+ }
}
h1:first-child, h2:first-child, h3:first-child, h4:first-child {
@@ -299,6 +313,7 @@
background: rgba(0,0,0,0.5);
}
+/*
.dialog-box-container {
position: relative;
margin-top: 80px;
@@ -339,6 +354,7 @@
.dialog-box .buttons {
padding: 5px;
}
+*/
// Messages for message box, slightly different style
@@ -684,7 +700,7 @@
// Selects
select {
- //border: 1px solid @formElementBorder;
+ //border: 1px solid @inputBorder;
padding: 2px;
font-size: @baseFontSize;
line-height: @baseLineHeight;
@@ -704,7 +720,7 @@
textarea, input[type="text"], input[type="password"] {
font-size: @baseFontSize;
line-height: @baseLineHeight;
- border: 1px solid @formElementBorder;
+ border: 1px solid @inputBorder;
padding: 3px;
}
@@ -714,7 +730,7 @@
font-size: @baseFontSize;
line-height: @baseLineHeight;
color: @gray;
- border: 1px solid @formElementBorder;
+ border: 1px solid @inputBorder;
padding-left: 14px !important;
padding-right: 14px !important;
margin-bottom: 0; // remove the default margin on all inputs
@@ -1262,7 +1278,7 @@
}
&.popup .label {
- border-right: solid @buttonBorder 1px;
+ border-right: solid @btnBorder 1px;
padding-right: 6px;
}
@@ -1637,10 +1653,6 @@
margin-top: 5px;
}
-.unified-panel-body .toolMenu {
- padding: 10px;
-}
-
div.toolSectionPad
{
margin: 0;
@@ -1737,3 +1749,22 @@
}
@import "base_sprites";
+
+.text-and-autocomplete-select {
+ // -sprite-group: fugue;
+ // -sprite-image: fugue/control-270.png;
+ // -sprite-horiz-position: right;
+ background: none;
+ position: relative;
+ padding-right: 18px;
+ &:after {
+ margin-top: 6px;
+ position: absolute;
+ top: 2px;
+ right: 6px;
+ width: 10px;
+ height: 10px;
+ .caret();
+ .opacity(80);
+ }
+}
diff -r f4e720d9f182cb8216fdd2174fe3ab83d0350a24 -r 84c7d3575d9543489aead618c91a6406019a26d9 static/june_2007_style/blue/base.css
--- a/static/june_2007_style/blue/base.css
+++ b/static/june_2007_style/blue/base.css
@@ -2,29 +2,55 @@
audio,canvas,video{display:inline-block;*display:inline;*zoom:1;}
audio:not([controls]){display:none;}
html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;}
-a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}
+a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}
a:hover,a:active{outline:0;}
sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline;}
sup{top:-0.5em;}
sub{bottom:-0.25em;}
-img{max-width:100%;height:auto;border:0;-ms-interpolation-mode:bicubic;}
+img{max-width:100%;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic;}
+#map_canvas img{max-width:none;}
button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle;}
-input[type="checkbox"],input[type="radio"]{margin-left:0.5ex;margin-right:0.5ex;}
button,input{*overflow:visible;line-height:normal;}
button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border: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-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield;}
input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none;}
textarea{overflow:auto;vertical-align:top;}
+.clearfix{*zoom:1;}.clearfix:before,.clearfix:after{display:table;content:"";}
+.clearfix:after{clear:both;}
+.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;}
+.input-block-level{display:block;width:100%;min-height:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;}
+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;}
+html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;}
+a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}
+a:hover,a:active{outline:0;}
+sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline;}
+sup{top:-0.5em;}
+sub{bottom:-0.25em;}
+img{max-width:100%;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic;}
+#map_canvas img{max-width:none;}
+button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle;}
+button,input{*overflow:visible;line-height:normal;}
+button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0;}
+button,input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button;}
+input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield;}
+input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none;}
+textarea{overflow:auto;vertical-align:top;}
+.clearfix{*zoom:1;}.clearfix:before,.clearfix:after{display:table;content:"";}
+.clearfix:after{clear:both;}
+.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;}
+.input-block-level{display:block;width:100%;min-height:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;}
body{margin:0;font-family:"Lucida Grande",verdana,arial,helvetica,sans-serif;font-size:12px;line-height:16px;color:#111111;background-color:#ffffff;}
a{color:#303030;text-decoration:none;}
a:hover{color:#0a0a0a;text-decoration:underline;}
-p{margin:0 0 8px;font-family:"Lucida Grande",verdana,arial,helvetica,sans-serif;font-size:12px;line-height:16px;}p small{font-size:10px;color:#999999;}
+p{margin:0 0 8px;}p small{font-size:10px;color:#999999;}
.lead{margin-bottom:16px;font-size:20px;font-weight:200;line-height:24px;}
-h1,h2,h3,h4,h5,h6{margin:0;font-weight:bold;color:#333333;text-rendering:optimizelegibility;}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;color:#999999;}
-h1{font-size:24px;line-height:32px;}h1 small{font-size:18px;}
-h2{font-size:18px;line-height:24px;}h2 small{font-size:14px;}
-h3{line-height:16px;font-size:14px;}h3 small{font-size:12px;}
+h1,h2,h3,h4,h5,h6{margin:0;font-family:inherit;font-weight:bold;color:inherit;text-rendering:optimizelegibility;}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;color:#999999;}
+h1{font-size:30px;line-height:32px;}h1 small{font-size:18px;}
+h2{font-size:24px;line-height:32px;}h2 small{font-size:18px;}
+h3{font-size:18px;line-height:24px;}h3 small{font-size:14px;}
h4,h5,h6{line-height:16px;}
h4{font-size:14px;}h4 small{font-size:12px;}
h5{font-size:12px;}
@@ -36,37 +62,41 @@
ul{list-style:disc;}
ol{list-style:decimal;}
li{line-height:16px;}
-ul.unstyled{margin-left:0;list-style:none;}
+ul.unstyled,ol.unstyled{margin-left:0;list-style:none;}
dl{margin-bottom:16px;}
dt,dd{line-height:16px;}
-dt{font-weight:bold;}
+dt{font-weight:bold;line-height:15px;}
dd{margin-left:8px;}
-hr{margin:16px 0;border:0;border-top:1px solid #e5e5e5;border-bottom:1px solid #ffffff;}
+.dl-horizontal dt{float:left;width:120px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
+.dl-horizontal dd{margin-left:130px;}
+hr{margin:16px 0;border:0;border-top:1px solid #eeeeee;border-bottom:1px solid #ffffff;}
strong{font-weight:bold;}
em{font-style:italic;}
.muted{color:#999999;}
-abbr{font-size:90%;text-transform:uppercase;border-bottom:1px dotted #ddd;cursor:help;}
+abbr[title]{cursor:help;border-bottom:1px dotted #999999;}
+abbr.initialism{font-size:90%;text-transform:uppercase;}
blockquote{padding:0 0 0 15px;margin:0 0 16px;border-left:5px solid #eeeeee;}blockquote p{margin-bottom:0;font-size:16px;font-weight:300;line-height:20px;}
blockquote small{display:block;line-height:16px;color:#999999;}blockquote small:before{content:'\2014 \00A0';}
-blockquote.pull-right{float:right;padding-left:0;padding-right:15px;border-left:0;border-right:5px solid #eeeeee;}blockquote.pull-right p,blockquote.pull-right small{text-align:right;}
+blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eeeeee;border-left:0;}blockquote.pull-right p,blockquote.pull-right small{text-align:right;}
q:before,q:after,blockquote:before,blockquote:after{content:"";}
-address{display:block;margin-bottom:16px;line-height:16px;font-style:normal;}
+address{display:block;margin-bottom:16px;font-style:normal;line-height:16px;}
small{font-size:100%;}
cite{font-style:normal;}
-table{max-width:100%;border-collapse:collapse;border-spacing:0;}
-.table{width:100%;margin-bottom:16px;}.table th,.table td{padding:8px;line-height:16px;text-align:left;border-top:1px solid #ddd;}
-.table th{font-weight:bold;vertical-align:bottom;}
-.table td{vertical-align:top;}
-.table thead:first-child tr th,.table thead:first-child tr td{border-top:0;}
-.table tbody+tbody{border-top:2px solid #ddd;}
+table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0;}
+.table{width:100%;margin-bottom:16px;}.table th,.table td{padding:8px;line-height:16px;text-align:left;vertical-align:top;border-top:1px solid #dddddd;}
+.table th{font-weight:bold;}
+.table thead th{vertical-align:bottom;}
+.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0;}
+.table tbody+tbody{border-top:2px solid #dddddd;}
.table-condensed th,.table-condensed td{padding:4px 5px;}
-.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapsed;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}.table-bordered th+th,.table-bordered td+td,.table-bordered th+td,.table-bordered td+th{border-left:1px solid #ddd;}
-.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0;}
-.table-bordered thead:first-child tr:first-child th:first-child,.table-bordered tbody:first-child tr:first-child td:first-child{-webkit-border-radius:4px 0 0 0;-moz-border-radius:4px 0 0 0;border-radius:4px 0 0 0;}
-.table-bordered thead:first-child tr:first-child th:last-child,.table-bordered tbody:first-child tr:first-child td:last-child{-webkit-border-radius:0 4px 0 0;-moz-border-radius:0 4px 0 0;border-radius:0 4px 0 0;}
-.table-bordered thead:last-child tr:last-child th:first-child,.table-bordered tbody:last-child tr:last-child td:first-child{-webkit-border-radius:0 0 0 4px;-moz-border-radius:0 0 0 4px;border-radius:0 0 0 4px;}
-.table-bordered thead:last-child tr:last-child th:last-child,.table-bordered tbody:last-child tr:last-child td:last-child{-webkit-border-radius:0 0 4px 0;-moz-border-radius:0 0 4px 0;border-radius:0 0 4px 0;}
+.table-bordered{border:1px solid #dddddd;border-collapse:separate;*border-collapse:collapsed;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}.table-bordered th,.table-bordered td{border-left:1px solid #dddddd;}
+.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0;}
+.table-bordered thead:first-child tr:first-child th:first-child,.table-bordered tbody:first-child tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px;}
+.table-bordered thead:first-child tr:first-child th:last-child,.table-bordered tbody:first-child tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px;}
+.table-bordered thead:last-child tr:last-child th:first-child,.table-bordered tbody:last-child tr:last-child td:first-child{-webkit-border-radius:0 0 0 4px;-moz-border-radius:0 0 0 4px;border-radius:0 0 0 4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;}
+.table-bordered thead:last-child tr:last-child th:last-child,.table-bordered tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;}
.table-striped tbody tr:nth-child(odd) td,.table-striped tbody tr:nth-child(odd) th{background-color:#f9f9f9;}
+.table tbody tr:hover td,.table tbody tr:hover th{background-color:#f5f5f5;}
table .span1{float:none;width:44px;margin-left:0;}
table .span2{float:none;width:124px;margin-left:0;}
table .span3{float:none;width:204px;margin-left:0;}
@@ -79,97 +109,296 @@
table .span10{float:none;width:764px;margin-left:0;}
table .span11{float:none;width:844px;margin-left:0;}
table .span12{float:none;width:924px;margin-left:0;}
-.dropdown{position:relative;}
+table .span13{float:none;width:1004px;margin-left:0;}
+table .span14{float:none;width:1084px;margin-left:0;}
+table .span15{float:none;width:1164px;margin-left:0;}
+table .span16{float:none;width:1244px;margin-left:0;}
+table .span17{float:none;width:1324px;margin-left:0;}
+table .span18{float:none;width:1404px;margin-left:0;}
+table .span19{float:none;width:1484px;margin-left:0;}
+table .span20{float:none;width:1564px;margin-left:0;}
+table .span21{float:none;width:1644px;margin-left:0;}
+table .span22{float:none;width:1724px;margin-left:0;}
+table .span23{float:none;width:1804px;margin-left:0;}
+table .span24{float:none;width:1884px;margin-left:0;}
+[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("../img/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat;}[class^="icon-"]:last-child,[class*=" icon-"]:last-child{*margin-left:0;}
+[class^="icon-"]:last-child,[class*=" icon-"]:last-child{*margin-left:0;}
+.icon-white{background-image:url("../img/glyphicons-halflings-white.png");}
+.icon-glass{background-position:0 0;}
+.icon-music{background-position:-24px 0;}
+.icon-search{background-position:-48px 0;}
+.icon-envelope{background-position:-72px 0;}
+.icon-heart{background-position:-96px 0;}
+.icon-star{background-position:-120px 0;}
+.icon-star-empty{background-position:-144px 0;}
+.icon-user{background-position:-168px 0;}
+.icon-film{background-position:-192px 0;}
+.icon-th-large{background-position:-216px 0;}
+.icon-th{background-position:-240px 0;}
+.icon-th-list{background-position:-264px 0;}
+.icon-ok{background-position:-288px 0;}
+.icon-remove{background-position:-312px 0;}
+.icon-zoom-in{background-position:-336px 0;}
+.icon-zoom-out{background-position:-360px 0;}
+.icon-off{background-position:-384px 0;}
+.icon-signal{background-position:-408px 0;}
+.icon-cog{background-position:-432px 0;}
+.icon-trash{background-position:-456px 0;}
+.icon-home{background-position:0 -24px;}
+.icon-file{background-position:-24px -24px;}
+.icon-time{background-position:-48px -24px;}
+.icon-road{background-position:-72px -24px;}
+.icon-download-alt{background-position:-96px -24px;}
+.icon-download{background-position:-120px -24px;}
+.icon-upload{background-position:-144px -24px;}
+.icon-inbox{background-position:-168px -24px;}
+.icon-play-circle{background-position:-192px -24px;}
+.icon-repeat{background-position:-216px -24px;}
+.icon-refresh{background-position:-240px -24px;}
+.icon-list-alt{background-position:-264px -24px;}
+.icon-lock{background-position:-287px -24px;}
+.icon-flag{background-position:-312px -24px;}
+.icon-headphones{background-position:-336px -24px;}
+.icon-volume-off{background-position:-360px -24px;}
+.icon-volume-down{background-position:-384px -24px;}
+.icon-volume-up{background-position:-408px -24px;}
+.icon-qrcode{background-position:-432px -24px;}
+.icon-barcode{background-position:-456px -24px;}
+.icon-tag{background-position:0 -48px;}
+.icon-tags{background-position:-25px -48px;}
+.icon-book{background-position:-48px -48px;}
+.icon-bookmark{background-position:-72px -48px;}
+.icon-print{background-position:-96px -48px;}
+.icon-camera{background-position:-120px -48px;}
+.icon-font{background-position:-144px -48px;}
+.icon-bold{background-position:-167px -48px;}
+.icon-italic{background-position:-192px -48px;}
+.icon-text-height{background-position:-216px -48px;}
+.icon-text-width{background-position:-240px -48px;}
+.icon-align-left{background-position:-264px -48px;}
+.icon-align-center{background-position:-288px -48px;}
+.icon-align-right{background-position:-312px -48px;}
+.icon-align-justify{background-position:-336px -48px;}
+.icon-list{background-position:-360px -48px;}
+.icon-indent-left{background-position:-384px -48px;}
+.icon-indent-right{background-position:-408px -48px;}
+.icon-facetime-video{background-position:-432px -48px;}
+.icon-picture{background-position:-456px -48px;}
+.icon-pencil{background-position:0 -72px;}
+.icon-map-marker{background-position:-24px -72px;}
+.icon-adjust{background-position:-48px -72px;}
+.icon-tint{background-position:-72px -72px;}
+.icon-edit{background-position:-96px -72px;}
+.icon-share{background-position:-120px -72px;}
+.icon-check{background-position:-144px -72px;}
+.icon-move{background-position:-168px -72px;}
+.icon-step-backward{background-position:-192px -72px;}
+.icon-fast-backward{background-position:-216px -72px;}
+.icon-backward{background-position:-240px -72px;}
+.icon-play{background-position:-264px -72px;}
+.icon-pause{background-position:-288px -72px;}
+.icon-stop{background-position:-312px -72px;}
+.icon-forward{background-position:-336px -72px;}
+.icon-fast-forward{background-position:-360px -72px;}
+.icon-step-forward{background-position:-384px -72px;}
+.icon-eject{background-position:-408px -72px;}
+.icon-chevron-left{background-position:-432px -72px;}
+.icon-chevron-right{background-position:-456px -72px;}
+.icon-plus-sign{background-position:0 -96px;}
+.icon-minus-sign{background-position:-24px -96px;}
+.icon-remove-sign{background-position:-48px -96px;}
+.icon-ok-sign{background-position:-72px -96px;}
+.icon-question-sign{background-position:-96px -96px;}
+.icon-info-sign{background-position:-120px -96px;}
+.icon-screenshot{background-position:-144px -96px;}
+.icon-remove-circle{background-position:-168px -96px;}
+.icon-ok-circle{background-position:-192px -96px;}
+.icon-ban-circle{background-position:-216px -96px;}
+.icon-arrow-left{background-position:-240px -96px;}
+.icon-arrow-right{background-position:-264px -96px;}
+.icon-arrow-up{background-position:-289px -96px;}
+.icon-arrow-down{background-position:-312px -96px;}
+.icon-share-alt{background-position:-336px -96px;}
+.icon-resize-full{background-position:-360px -96px;}
+.icon-resize-small{background-position:-384px -96px;}
+.icon-plus{background-position:-408px -96px;}
+.icon-minus{background-position:-433px -96px;}
+.icon-asterisk{background-position:-456px -96px;}
+.icon-exclamation-sign{background-position:0 -120px;}
+.icon-gift{background-position:-24px -120px;}
+.icon-leaf{background-position:-48px -120px;}
+.icon-fire{background-position:-72px -120px;}
+.icon-eye-open{background-position:-96px -120px;}
+.icon-eye-close{background-position:-120px -120px;}
+.icon-warning-sign{background-position:-144px -120px;}
+.icon-plane{background-position:-168px -120px;}
+.icon-calendar{background-position:-192px -120px;}
+.icon-random{background-position:-216px -120px;}
+.icon-comment{background-position:-240px -120px;}
+.icon-magnet{background-position:-264px -120px;}
+.icon-chevron-up{background-position:-288px -120px;}
+.icon-chevron-down{background-position:-313px -119px;}
+.icon-retweet{background-position:-336px -120px;}
+.icon-shopping-cart{background-position:-360px -120px;}
+.icon-folder-close{background-position:-384px -120px;}
+.icon-folder-open{background-position:-408px -120px;}
+.icon-resize-vertical{background-position:-432px -119px;}
+.icon-resize-horizontal{background-position:-456px -118px;}
+.icon-hdd{background-position:0 -144px;}
+.icon-bullhorn{background-position:-24px -144px;}
+.icon-bell{background-position:-48px -144px;}
+.icon-certificate{background-position:-72px -144px;}
+.icon-thumbs-up{background-position:-96px -144px;}
+.icon-thumbs-down{background-position:-120px -144px;}
+.icon-hand-right{background-position:-144px -144px;}
+.icon-hand-left{background-position:-168px -144px;}
+.icon-hand-up{background-position:-192px -144px;}
+.icon-hand-down{background-position:-216px -144px;}
+.icon-circle-arrow-right{background-position:-240px -144px;}
+.icon-circle-arrow-left{background-position:-264px -144px;}
+.icon-circle-arrow-up{background-position:-288px -144px;}
+.icon-circle-arrow-down{background-position:-312px -144px;}
+.icon-globe{background-position:-336px -144px;}
+.icon-wrench{background-position:-360px -144px;}
+.icon-tasks{background-position:-384px -144px;}
+.icon-filter{background-position:-408px -144px;}
+.icon-briefcase{background-position:-432px -144px;}
+.icon-fullscreen{background-position:-456px -144px;}
+.dropup,.dropdown{position:relative;}
.dropdown-toggle{*margin-bottom:-3px;}
.dropdown-toggle:active,.open .dropdown-toggle{outline:0;}
-.caret{display:inline-block;width:0;height:0;text-indent:-99999px;*text-indent:0;vertical-align:top;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #000000;opacity:0.3;filter:alpha(opacity=30);content:"\2193";}
+.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000000;border-right:4px solid transparent;border-left:4px solid transparent;content:"";opacity:0.3;filter:alpha(opacity=30);}
.dropdown .caret{margin-top:8px;margin-left:2px;}
-.dropdown:hover .caret,.open.dropdown .caret{opacity:1;filter:alpha(opacity=100);}
-.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;float:left;display:none;min-width:160px;_width:160px;padding:4px 0;margin:0;list-style:none;background-color:#ffffff;border-color:#ccc;border-color:rgba(0, 0, 0, 0.2);border-style:solid;border-width:1px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;*border-right-width:2px;*border-bottom-width:2px;}.dropdown-menu.bottom-up{top:auto;bottom:100%;margin-bottom:2px;}
-.dropdown-menu .divider{height:1px;margin:5px 1px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #ffffff;*width:100%;*margin:-5px 0 5px;}
-.dropdown-menu a{display:block;padding:3px 15px;clear:both;font-weight:normal;line-height:18px;color:#555555;white-space:nowrap;}
+.dropdown:hover .caret,.open .caret{opacity:1;filter:alpha(opacity=100);}
+.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:4px 0;margin:1px 0 0;list-style:none;background-color:#ffffff;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;}.dropdown-menu.pull-right{right:0;left:auto;}
+.dropdown-menu .divider{*width:100%;height:1px;margin:7px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #ffffff;}
+.dropdown-menu a{display:block;padding:3px 15px;clear:both;font-weight:normal;line-height:16px;color:#333333;white-space:nowrap;}
.dropdown-menu li>a:hover,.dropdown-menu .active>a,.dropdown-menu .active>a:hover{color:#ffffff;text-decoration:none;background-color:#303030;}
-.dropdown.open{*z-index:1000;}.dropdown.open .dropdown-toggle{color:#ffffff;background:#ccc;background:rgba(0, 0, 0, 0.3);}
-.dropdown.open .dropdown-menu{display:block;}
+.open{*z-index:1000;}.open>.dropdown-menu{display:block;}
+.pull-right>.dropdown-menu{right:0;left:auto;}
+.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000000;content:"\2191";}
+.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px;}
.typeahead{margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;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);}.well blockquote{border-color:#ddd;border-color:rgba(0, 0, 0, 0.15);}
-.fade{-webkit-transition:opacity 0.15s linear;-moz-transition:opacity 0.15s linear;-ms-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear;opacity:0;}.fade.in{opacity:1;}
-.collapse{-webkit-transition:height 0.35s ease;-moz-transition:height 0.35s ease;-ms-transition:height 0.35s ease;-o-transition:height 0.35s ease;transition:height 0.35s ease;position:relative;overflow:hidden;height:0;}.collapse.in{height:auto;}
-.close{float:right;font-size:20px;font-weight:bold;line-height:16px;color:#000000;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20);}.close:hover{color:#000000;text-decoration:none;opacity:0.4;filter:alpha(opacity=40);cursor:pointer;}
-.btn{display:inline-block;padding:2px 10px 2px;font-size:12px;line-height:16px;color:#111111;text-align:center;text-shadow:0 1px 1px rgba(255, 255, 255, 0.75);background-color:#fafafa;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);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);border:1px solid #999999;border-bottom-color:#888888;-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);cursor:pointer;*margin-left:.3em;}.btn:first-child{*margin-left:0;}
-.btn.hover,.btn:hover{color:#111111;text-decoration:none;background-color:#e6e6e6;background-position:0 -15px;-webkit-transition:background-position 0.1s linear;-moz-transition:background-position 0.1s linear;-ms-transition:background-position 0.1s linear;-o-transition:background-position 0.1s linear;transition:background-position 0.1s linear;}
-.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}
-.btn.active,.btn:active{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);background-color:#e6e6e6;background-color:#d9d9d9 \9;outline:0;}
-.btn.disabled,.btn[disabled]{cursor:default;background-image:none;background-color:#e6e6e6;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;}
+.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}
+.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
+.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-moz-transition:opacity 0.15s linear;-ms-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear;}.fade.in{opacity:1;}
+.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height 0.35s ease;-moz-transition:height 0.35s ease;-ms-transition:height 0.35s ease;-o-transition:height 0.35s ease;transition:height 0.35s ease;}.collapse.in{height:auto;}
+.close{float:right;font-size:20px;font-weight:bold;line-height:16px;color:#000000;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20);}.close:hover{color:#000000;text-decoration:none;cursor:pointer;opacity:0.4;filter:alpha(opacity=40);}
+button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none;}
+.btn{display:inline-block;*display:inline;*zoom:1;padding:4px 10px 4px;margin-bottom:0;font-size:12px;line-height:16px;*line-height:20px;color:#333333;text-align:center;text-shadow:0 1px 1px rgba(255, 255, 255, 0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;background-image:-moz-linear-gradient(top, #ffffff, #e6e6e6);background-image:-ms-linear-gradient(top, #ffffff, #e6e6e6);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));background-image:-webkit-linear-gradient(top, #ffffff, #e6e6e6);background-image:-o-linear-gradient(top, #ffffff, #e6e6e6);background-image:linear-gradient(top, #ffffff, #e6e6e6);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#e6e6e6;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);border:1px solid #999999;*border:0;border-bottom-color:#808080;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*margin-left:.3em;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);}.btn:hover,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{background-color:#e6e6e6;*background-color:#d9d9d9;}
+.btn:active,.btn.active{background-color:#cccccc \9;}
+.btn:hover,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{background-color:#e6e6e6;*background-color:#d9d9d9;}
+.btn:active,.btn.active{background-color:#cccccc \9;}
+.btn:first-child{*margin-left:0;}
+.btn:first-child{*margin-left:0;}
+.btn:hover{color:#333333;text-decoration:none;background-color:#e6e6e6;*background-color:#d9d9d9;background-position:0 -15px;-webkit-transition:background-position 0.1s linear;-moz-transition:background-position 0.1s linear;-ms-transition:background-position 0.1s linear;-o-transition:background-position 0.1s linear;transition:background-position 0.1s linear;}
+.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}
+.btn.active,.btn:active{background-color:#e6e6e6;background-color:#d9d9d9 \9;background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);}
+.btn.disabled,.btn[disabled]{cursor:default;background-color:#e6e6e6;background-image:none;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;}
.btn-large{padding:9px 14px;font-size:14px;line-height:normal;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;}
-.btn-large .icon{margin-top:1px;}
+.btn-large [class^="icon-"]{margin-top:1px;}
.btn-small{padding:5px 9px;font-size:10px;line-height:14px;}
-.btn-small .icon{margin-top:-1px;}
-.btn-primary,.btn-primary:hover,.btn-warning,.btn-warning:hover,.btn-danger,.btn-danger:hover,.btn-success,.btn-success:hover,.btn-info,.btn-info:hover{text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);color:#ffffff;}
-.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active{color:rgba(255, 255, 255, 0.75);}
-.btn-primary{background-color:#0049cd;background-image:-moz-linear-gradient(top, #0064cd, #0020cd);background-image:-ms-linear-gradient(top, #0064cd, #0020cd);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0064cd), to(#0020cd));background-image:-webkit-linear-gradient(top, #0064cd, #0020cd);background-image:-o-linear-gradient(top, #0064cd, #0020cd);background-image:linear-gradient(top, #0064cd, #0020cd);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#0064cd', endColorstr='#0020cd', GradientType=0);border-color:#0020cd #0020cd #001481;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-primary:hover,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{background-color:#0020cd;}
-.btn-primary:active,.btn-primary.active{background-color:#00189a \9;}
-.btn-warning{background-color:#faa732;background-image:-moz-linear-gradient(top, #fbb450, #f89406);background-image:-ms-linear-gradient(top, #fbb450, #f89406);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));background-image:-webkit-linear-gradient(top, #fbb450, #f89406);background-image:-o-linear-gradient(top, #fbb450, #f89406);background-image:linear-gradient(top, #fbb450, #f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0);border-color:#f89406 #f89406 #ad6704;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-warning:hover,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{background-color:#f89406;}
+.btn-small [class^="icon-"]{margin-top:-1px;}
+.btn-mini{padding:2px 6px;font-size:10px;line-height:12px;}
+.btn-primary,.btn-primary:hover,.btn-warning,.btn-warning:hover,.btn-danger,.btn-danger:hover,.btn-success,.btn-success:hover,.btn-info,.btn-info:hover,.btn-inverse,.btn-inverse:hover{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);}
+.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255, 255, 255, 0.75);}
+.btn{border-color:#ccc;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);}
+.btn-primary{background-color:#0050cd;background-image:-moz-linear-gradient(top, #0064cd, #0031cd);background-image:-ms-linear-gradient(top, #0064cd, #0031cd);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0064cd), to(#0031cd));background-image:-webkit-linear-gradient(top, #0064cd, #0031cd);background-image:-o-linear-gradient(top, #0064cd, #0031cd);background-image:linear-gradient(top, #0064cd, #0031cd);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#0064cd', endColorstr='#0031cd', GradientType=0);border-color:#0031cd #0031cd #001f81;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#0031cd;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-primary:hover,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{background-color:#0031cd;*background-color:#002bb4;}
+.btn-primary:active,.btn-primary.active{background-color:#00259a \9;}
+.btn-primary:hover,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{background-color:#0031cd;*background-color:#002bb4;}
+.btn-primary:active,.btn-primary.active{background-color:#00259a \9;}
+.btn-warning{background-color:#faa732;background-image:-moz-linear-gradient(top, #fbb450, #f89406);background-image:-ms-linear-gradient(top, #fbb450, #f89406);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));background-image:-webkit-linear-gradient(top, #fbb450, #f89406);background-image:-o-linear-gradient(top, #fbb450, #f89406);background-image:linear-gradient(top, #fbb450, #f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0);border-color:#f89406 #f89406 #ad6704;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#f89406;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-warning:hover,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{background-color:#f89406;*background-color:#df8505;}
.btn-warning:active,.btn-warning.active{background-color:#c67605 \9;}
-.btn-danger{background-color:#da4f49;background-image:-moz-linear-gradient(top, #ee5f5b, #bd362f);background-image:-ms-linear-gradient(top, #ee5f5b, #bd362f);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));background-image:-webkit-linear-gradient(top, #ee5f5b, #bd362f);background-image:-o-linear-gradient(top, #ee5f5b, #bd362f);background-image:linear-gradient(top, #ee5f5b, #bd362f);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#bd362f', GradientType=0);border-color:#bd362f #bd362f #802420;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-danger:hover,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{background-color:#bd362f;}
+.btn-warning:hover,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{background-color:#f89406;*background-color:#df8505;}
+.btn-warning:active,.btn-warning.active{background-color:#c67605 \9;}
+.btn-danger{background-color:#da4f49;background-image:-moz-linear-gradient(top, #ee5f5b, #bd362f);background-image:-ms-linear-gradient(top, #ee5f5b, #bd362f);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));background-image:-webkit-linear-gradient(top, #ee5f5b, #bd362f);background-image:-o-linear-gradient(top, #ee5f5b, #bd362f);background-image:linear-gradient(top, #ee5f5b, #bd362f);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#bd362f', GradientType=0);border-color:#bd362f #bd362f #802420;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#bd362f;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-danger:hover,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{background-color:#bd362f;*background-color:#a9302a;}
.btn-danger:active,.btn-danger.active{background-color:#942a25 \9;}
-.btn-success{background-color:#5bb75b;background-image:-moz-linear-gradient(top, #62c462, #51a351);background-image:-ms-linear-gradient(top, #62c462, #51a351);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));background-image:-webkit-linear-gradient(top, #62c462, #51a351);background-image:-o-linear-gradient(top, #62c462, #51a351);background-image:linear-gradient(top, #62c462, #51a351);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#51a351', GradientType=0);border-color:#51a351 #51a351 #387038;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-success:hover,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{background-color:#51a351;}
+.btn-danger:hover,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{background-color:#bd362f;*background-color:#a9302a;}
+.btn-danger:active,.btn-danger.active{background-color:#942a25 \9;}
+.btn-success{background-color:#5bb75b;background-image:-moz-linear-gradient(top, #62c462, #51a351);background-image:-ms-linear-gradient(top, #62c462, #51a351);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));background-image:-webkit-linear-gradient(top, #62c462, #51a351);background-image:-o-linear-gradient(top, #62c462, #51a351);background-image:linear-gradient(top, #62c462, #51a351);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#51a351', GradientType=0);border-color:#51a351 #51a351 #387038;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#51a351;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-success:hover,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{background-color:#51a351;*background-color:#499249;}
.btn-success:active,.btn-success.active{background-color:#408140 \9;}
-.btn-info{background-color:#49afcd;background-image:-moz-linear-gradient(top, #5bc0de, #2f96b4);background-image:-ms-linear-gradient(top, #5bc0de, #2f96b4);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4));background-image:-webkit-linear-gradient(top, #5bc0de, #2f96b4);background-image:-o-linear-gradient(top, #5bc0de, #2f96b4);background-image:linear-gradient(top, #5bc0de, #2f96b4);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#2f96b4', GradientType=0);border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-info:hover,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{background-color:#2f96b4;}
+.btn-success:hover,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{background-color:#51a351;*background-color:#499249;}
+.btn-success:active,.btn-success.active{background-color:#408140 \9;}
+.btn-info{background-color:#49afcd;background-image:-moz-linear-gradient(top, #5bc0de, #2f96b4);background-image:-ms-linear-gradient(top, #5bc0de, #2f96b4);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4));background-image:-webkit-linear-gradient(top, #5bc0de, #2f96b4);background-image:-o-linear-gradient(top, #5bc0de, #2f96b4);background-image:linear-gradient(top, #5bc0de, #2f96b4);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#2f96b4', GradientType=0);border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#2f96b4;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-info:hover,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{background-color:#2f96b4;*background-color:#2a85a0;}
.btn-info:active,.btn-info.active{background-color:#24748c \9;}
+.btn-info:hover,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{background-color:#2f96b4;*background-color:#2a85a0;}
+.btn-info:active,.btn-info.active{background-color:#24748c \9;}
+.btn-inverse{background-color:#414141;background-image:-moz-linear-gradient(top, #555555, #222222);background-image:-ms-linear-gradient(top, #555555, #222222);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#555555), to(#222222));background-image:-webkit-linear-gradient(top, #555555, #222222);background-image:-o-linear-gradient(top, #555555, #222222);background-image:linear-gradient(top, #555555, #222222);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#555555', endColorstr='#222222', GradientType=0);border-color:#222222 #222222 #000000;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#222222;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-inverse:hover,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{background-color:#222222;*background-color:#151515;}
+.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9;}
+.btn-inverse:hover,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{background-color:#222222;*background-color:#151515;}
+.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9;}
button.btn,input[type="submit"].btn{*padding-top:2px;*padding-bottom:2px;}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0;}
-button.btn.large,input[type="submit"].btn.large{*padding-top:7px;*padding-bottom:7px;}
-button.btn.small,input[type="submit"].btn.small{*padding-top:3px;*padding-bottom:3px;}
+button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px;}
+button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px;}
+button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px;}
.btn-group{position:relative;*zoom:1;*margin-left:.3em;}.btn-group:before,.btn-group:after{display:table;content:"";}
.btn-group:after{clear:both;}
+.btn-group:before,.btn-group:after{display:table;content:"";}
+.btn-group:after{clear:both;}
+.btn-group:first-child{*margin-left:0;}
.btn-group:first-child{*margin-left:0;}
.btn-group+.btn-group{margin-left:5px;}
.btn-toolbar{margin-top:8px;margin-bottom:8px;}.btn-toolbar .btn-group{display:inline-block;*display:inline;*zoom:1;}
-.btn-group .btn{position:relative;float:left;margin-left:-1px;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
-.btn-group .btn:first-child{margin-left:0;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px;}
-.btn-group .btn:last-child,.btn-group .dropdown-toggle{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;}
-.btn-group .btn.large:first-child{margin-left:0;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px;}
-.btn-group .btn.large:last-child,.btn-group .large.dropdown-toggle{-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;}
-.btn-group .btn:hover,.btn-group .btn:focus,.btn-group .btn:active,.btn-group .btn.active{z-index:2;}
+.btn-group>.btn{position:relative;float:left;margin-left:-1px;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
+.btn-group>.btn:first-child{margin-left:0;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px;}
+.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;}
+.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px;}
+.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;}
+.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2;}
.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0;}
-.btn-group .dropdown-toggle{padding-left:8px;padding-right:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255, 255, 255, 0.125),inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 1px 0 0 rgba(255, 255, 255, 0.125),inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 1px 0 0 rgba(255, 255, 255, 0.125),inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);*padding-top:5px;*padding-bottom:5px;}
-.btn-group.open{*z-index:1000;}.btn-group.open .dropdown-menu{display:block;margin-top:1px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;}
-.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 1px 6px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 6px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 6px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);}
+.btn-group>.dropdown-toggle{padding-left:8px;padding-right:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);*padding-top:4px;*padding-bottom:4px;}
+.btn-group>.btn-mini.dropdown-toggle{padding-left:5px;padding-right:5px;}
+.btn-group>.btn-small.dropdown-toggle{*padding-top:4px;*padding-bottom:4px;}
+.btn-group>.btn-large.dropdown-toggle{padding-left:12px;padding-right:12px;}
+.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);}
+.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6;}
+.btn-group.open .btn-primary.dropdown-toggle{background-color:#0031cd;}
+.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406;}
+.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f;}
+.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351;}
+.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4;}
+.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222222;}
.btn .caret{margin-top:7px;margin-left:0;}
.btn:hover .caret,.open.btn-group .caret{opacity:1;filter:alpha(opacity=100);}
-.btn-primary .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret{border-top-color:#ffffff;opacity:0.75;filter:alpha(opacity=75);}
-.btn-small .caret{margin-top:4px;}
-.alert{padding:8px 35px 8px 14px;margin-bottom:16px;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);background-color:#ffffcc;border:1px solid #ffdd33;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
-.alert,.alert-heading{color:#666600;}
+.btn-mini .caret{margin-top:5px;}
+.btn-small .caret{margin-top:6px;}
+.btn-large .caret{margin-top:6px;border-left-width:5px;border-right-width:5px;border-top-width:5px;}
+.dropup .btn-large .caret{border-bottom:5px solid #000000;border-top:0;}
+.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;opacity:0.75;filter:alpha(opacity=75);}
+.alert{padding:8px 35px 8px 14px;margin-bottom:16px;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);background-color:#ffffcc;border:1px solid #ffdd33;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;color:#666600;}
+.alert-heading{color:inherit;}
.alert .close{position:relative;top:-2px;right:-21px;line-height:18px;}
-.alert-success{background-color:#ccffcc;border-color:#1a9900;}
-.alert-success,.alert-success .alert-heading{color:#006600;}
-.alert-danger,.alert-error{background-color:#ffcccc;border-color:#ff3355;}
-.alert-danger,.alert-error,.alert-danger .alert-heading,.alert-error .alert-heading{color:#660000;}
-.alert-info{background-color:#d9edf7;border-color:#1b7183;}
-.alert-info,.alert-info .alert-heading{color:#134158;}
+.alert-success{background-color:#ccffcc;border-color:#1a9900;color:#006600;}
+.alert-danger,.alert-error{background-color:#ffcccc;border-color:#ff3355;color:#660000;}
+.alert-info{background-color:#d9edf7;border-color:#1b7183;color:#134158;}
.alert-block{padding-top:14px;padding-bottom:14px;}
.alert-block>p,.alert-block>ul{margin-bottom:0;}
.alert-block p+p{margin-top:5px;}
.nav{margin-left:0;margin-bottom:16px;list-style:none;}
.nav>li>a{display:block;}
.nav>li>a:hover{text-decoration:none;background-color:#eeeeee;}
-.nav-list{padding-left:14px;padding-right:14px;margin-bottom:0;}
-.nav-list>li>a,.nav-list .nav-header{display:block;padding:3px 15px;margin-left:-15px;margin-right:-15px;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);}
-.nav-list .nav-header{font-size:11px;font-weight:bold;line-height:16px;color:#999999;text-transform:uppercase;}
-.nav-list>li+.nav-header{margin-top:9px;}
-.nav-list .active>a,.nav-list .active>a:hover{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.2);background-color:#303030;}
+.nav>.pull-right{float:right;}
+.nav .nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:16px;color:#999999;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);text-transform:uppercase;}
+.nav li+.nav-header{margin-top:9px;}
+.nav-list{padding-left:15px;padding-right:15px;margin-bottom:0;}
+.nav-list>li>a,.nav-list .nav-header{margin-left:-15px;margin-right:-15px;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);}
+.nav-list>li>a{padding:3px 15px;}
+.nav-list>.active>a,.nav-list>.active>a:hover{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.2);background-color:#303030;}
.nav-list [class^="icon-"]{margin-right:2px;}
+.nav-list .divider{*width:100%;height:1px;margin:7px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #ffffff;}
.nav-tabs,.nav-pills{*zoom:1;}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;content:"";}
.nav-tabs:after,.nav-pills:after{clear:both;}
+.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;content:"";}
+.nav-tabs:after,.nav-pills:after{clear:both;}
.nav-tabs>li,.nav-pills>li{float:left;}
.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px;}
.nav-tabs{border-bottom:1px solid #ddd;}
.nav-tabs>li{margin-bottom:-1px;}
-.nav-tabs>li>a{padding-top:9px;padding-bottom:9px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;}.nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #dddddd;}
+.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:16px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;}.nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #dddddd;}
.nav-tabs>.active>a,.nav-tabs>.active>a:hover{color:#555555;background-color:#ffffff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default;}
.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;}
-.nav-pills .active>a,.nav-pills .active>a:hover{color:#ffffff;background-color:#303030;}
+.nav-pills>.active>a,.nav-pills>.active>a:hover{color:#ffffff;background-color:#303030;}
.nav-stacked>li{float:none;}
.nav-stacked>li>a{margin-right:0;}
.nav-tabs.nav-stacked{border-bottom:0;}
@@ -179,74 +408,94 @@
.nav-tabs.nav-stacked>li>a:hover{border-color:#ddd;z-index:2;}
.nav-pills.nav-stacked>li>a{margin-bottom:3px;}
.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px;}
-.nav-tabs .dropdown-menu,.nav-pills .dropdown-menu{margin-top:1px;border-width:1px;}
+.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;}
.nav-pills .dropdown-menu{-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
-.nav-tabs .dropdown-toggle .caret,.nav-pills .dropdown-toggle .caret{border-top-color:#303030;margin-top:6px;}
-.nav-tabs .dropdown-toggle:hover .caret,.nav-pills .dropdown-toggle:hover .caret{border-top-color:#0a0a0a;}
-.nav-tabs .active .dropdown-toggle .caret,.nav-pills .active .dropdown-toggle .caret{border-top-color:#333333;}
+.nav-tabs .dropdown-toggle .caret,.nav-pills .dropdown-toggle .caret{border-top-color:#303030;border-bottom-color:#303030;margin-top:6px;}
+.nav-tabs .dropdown-toggle:hover .caret,.nav-pills .dropdown-toggle:hover .caret{border-top-color:#0a0a0a;border-bottom-color:#0a0a0a;}
+.nav-tabs .active .dropdown-toggle .caret,.nav-pills .active .dropdown-toggle .caret{border-top-color:#333333;border-bottom-color:#333333;}
.nav>.dropdown.active>a:hover{color:#000000;cursor:pointer;}
-.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>.open.active>a:hover{color:#ffffff;background-color:#999999;border-color:#999999;}
-.nav .open .caret,.nav .open.active .caret,.nav .open a:hover .caret{border-top-color:#ffffff;opacity:1;filter:alpha(opacity=100);}
+.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover{color:#ffffff;background-color:#999999;border-color:#999999;}
+.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;opacity:1;filter:alpha(opacity=100);}
.tabs-stacked .open>a:hover{border-color:#999999;}
.tabbable{*zoom:1;}.tabbable:before,.tabbable:after{display:table;content:"";}
.tabbable:after{clear:both;}
-.tabs-below .nav-tabs,.tabs-right .nav-tabs,.tabs-left .nav-tabs{border-bottom:0;}
+.tabbable:before,.tabbable:after{display:table;content:"";}
+.tabbable:after{clear:both;}
+.tab-content{overflow:auto;}
+.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0;}
.tab-content>.tab-pane,.pill-content>.pill-pane{display:none;}
.tab-content>.active,.pill-content>.active{display:block;}
-.tabs-below .nav-tabs{border-top:1px solid #ddd;}
-.tabs-below .nav-tabs>li{margin-top:-1px;margin-bottom:0;}
-.tabs-below .nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;}.tabs-below .nav-tabs>li>a:hover{border-bottom-color:transparent;border-top-color:#ddd;}
-.tabs-below .nav-tabs .active>a,.tabs-below .nav-tabs .active>a:hover{border-color:transparent #ddd #ddd #ddd;}
-.tabs-left .nav-tabs>li,.tabs-right .nav-tabs>li{float:none;}
-.tabs-left .nav-tabs>li>a,.tabs-right .nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px;}
-.tabs-left .nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd;}
-.tabs-left .nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;}
-.tabs-left .nav-tabs>li>a:hover{border-color:#eeeeee #dddddd #eeeeee #eeeeee;}
-.tabs-left .nav-tabs .active>a,.tabs-left .nav-tabs .active>a:hover{border-color:#ddd transparent #ddd #ddd;*border-right-color:#ffffff;}
-.tabs-right .nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd;}
-.tabs-right .nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;}
-.tabs-right .nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #eeeeee #dddddd;}
-.tabs-right .nav-tabs .active>a,.tabs-right .nav-tabs .active>a:hover{border-color:#ddd #ddd #ddd transparent;*border-left-color:#ffffff;}
-.navbar{overflow:visible;margin-bottom:16px;}
-.navbar-inner{padding-left:20px;padding-right:20px;background-color:#303239;background-image:-moz-linear-gradient(top, #333333, #2c3143);background-image:-ms-linear-gradient(top, #333333, #2c3143);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#2c3143));background-image:-webkit-linear-gradient(top, #333333, #2c3143);background-image:-o-linear-gradient(top, #333333, #2c3143);background-image:linear-gradient(top, #333333, #2c3143);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#2c3143', GradientType=0);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-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);}
-.btn-navbar{display:none;float:right;padding:7px 10px;margin-left:5px;margin-right:5px;background-color:#303239;background-image:-moz-linear-gradient(top, #333333, #2c3143);background-image:-ms-linear-gradient(top, #333333, #2c3143);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#2c3143));background-image:-webkit-linear-gradient(top, #333333, #2c3143);background-image:-o-linear-gradient(top, #333333, #2c3143);background-image:linear-gradient(top, #333333, #2c3143);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#2c3143', GradientType=0);border-color:#2c3143 #2c3143 #0e0f15;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.075);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.075);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.075);}.btn-navbar:hover,.btn-navbar:active,.btn-navbar.active,.btn-navbar.disabled,.btn-navbar[disabled]{background-color:#2c3143;}
-.btn-navbar:active,.btn-navbar.active{background-color:#181a24 \9;}
-.btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);-moz-box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);}
-.btn-navbar .icon-bar+.icon-bar{margin-top:3px;}
+.tabs-below>.nav-tabs{border-top:1px solid #ddd;}
+.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0;}
+.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;}.tabs-below>.nav-tabs>li>a:hover{border-bottom-color:transparent;border-top-color:#ddd;}
+.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover{border-color:transparent #ddd #ddd #ddd;}
+.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none;}
+.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px;}
+.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd;}
+.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;}
+.tabs-left>.nav-tabs>li>a:hover{border-color:#eeeeee #dddddd #eeeeee #eeeeee;}
+.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover{border-color:#ddd transparent #ddd #ddd;*border-right-color:#ffffff;}
+.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd;}
+.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;}
+.tabs-right>.nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #eeeeee #dddddd;}
+.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover{border-color:#ddd #ddd #ddd transparent;*border-left-color:#ffffff;}
+.navbar{*position:relative;*z-index:2;overflow:visible;margin-bottom:16px;}
+.navbar-inner{min-height:32px;padding-left:20px;padding-right:20px;background-color:#303239;background-image:-moz-linear-gradient(top, #333333, #2c3143);background-image:-ms-linear-gradient(top, #333333, #2c3143);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#2c3143));background-image:-webkit-linear-gradient(top, #333333, #2c3143);background-image:-o-linear-gradient(top, #333333, #2c3143);background-image:linear-gradient(top, #333333, #2c3143);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#2c3143', GradientType=0);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.25), inset 0 -1px 0 rgba(0,0,0,.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,.25), inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:0 1px 3px rgba(0,0,0,.25), inset 0 -1px 0 rgba(0,0,0,.1);}
+.navbar .container{width:auto;}
.nav-collapse.collapse{height:auto;}
-.navbar .brand:hover{text-decoration:none;}
-.navbar .brand{float:left;display:block;padding:8px 20px 12px;margin-left:-20px;font-size:20px;font-weight:200;line-height:1;color:#ffffff;}
-.navbar .navbar-text{margin-bottom:0;line-height:40px;color:#999999;}.navbar .navbar-text a:hover{color:#ffffff;background-color:transparent;}
-.navbar .btn,.navbar .btn-group{margin-top:5px;}
-.navbar .btn-group .btn{margin-top:0;}
+.navbar{color:#999999;}.navbar .brand:hover{text-decoration:none;}
+.navbar .brand{float:left;display:block;padding:4px 20px 8px;margin-left:-20px;font-size:20px;font-weight:200;line-height:1;color:#999999;}
+.navbar .navbar-text{margin-bottom:0;line-height:32px;}
+.navbar .navbar-link{color:#999999;}.navbar .navbar-link:hover{color:#ffffff;}
+.navbar .btn,.navbar .btn-group{margin-top:1px;}
+.navbar .btn-group .btn{margin:0;}
.navbar-form{margin-bottom:0;*zoom:1;}.navbar-form:before,.navbar-form:after{display:table;content:"";}
.navbar-form:after{clear:both;}
-.navbar-form input,.navbar-form select{display:inline-block;margin-top:5px;margin-bottom:0;}
-.navbar-form .radio,.navbar-form .checkbox{margin-top:5px;}
+.navbar-form:before,.navbar-form:after{display:table;content:"";}
+.navbar-form:after{clear:both;}
+.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:1px;}
+.navbar-form input,.navbar-form select{display:inline-block;margin-bottom:0;}
.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px;}
-.navbar-search{position:relative;float:left;margin-top:6px;margin-bottom:0;}.navbar-search .search-query{padding:4px 9px;font-family:"Lucida Grande",verdana,arial,helvetica,sans-serif;font-size:13px;font-weight:normal;line-height:1;color:#ffffff;color:rgba(255, 255, 255, 0.75);background:#666;background:rgba(255, 255, 255, 0.3);border:1px solid #111;-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1),0 1px 0px rgba(255, 255, 255, 0.15);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1),0 1px 0px rgba(255, 255, 255, 0.15);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1),0 1px 0px rgba(255, 255, 255, 0.15);-webkit-transition:none;-moz-transition:none;-ms-transition:none;-o-transition:none;transition:none;}.navbar-search .search-query :-moz-placeholder{color:#eeeeee;}
-.navbar-search .search-query::-webkit-input-placeholder{color:#eeeeee;}
-.navbar-search .search-query:hover{color:#ffffff;background-color:#999999;background-color:rgba(255, 255, 255, 0.5);}
+.navbar-form .input-append,.navbar-form .input-prepend{margin-top:6px;white-space:nowrap;}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0;}
+.navbar-search{position:relative;float:left;margin-top:2px;margin-bottom:0;}.navbar-search .search-query{padding:4px 9px;font-family:"Lucida Grande",verdana,arial,helvetica,sans-serif;font-size:13px;font-weight:normal;line-height:1;color:#ffffff;background-color:#5f6990;border:1px solid #222634;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);box-shadow:inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);-webkit-transition:none;-moz-transition:none;-ms-transition:none;-o-transition:none;transition:none;}.navbar-search .search-query:-moz-placeholder{color:#cccccc;}
+.navbar-search .search-query:-ms-input-placeholder{color:#cccccc;}
+.navbar-search .search-query::-webkit-input-placeholder{color:#cccccc;}
+.navbar-search .search-query:-moz-placeholder{color:#cccccc;}
+.navbar-search .search-query:-ms-input-placeholder{color:#cccccc;}
+.navbar-search .search-query::-webkit-input-placeholder{color:#cccccc;}
.navbar-search .search-query:focus,.navbar-search .search-query.focused{padding:5px 10px;color:#333333;text-shadow:0 1px 0 #ffffff;background-color:#ffffff;border:0;-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);outline:0;}
-.navbar-fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030;}
-.navbar-fixed-top .navbar-inner{padding-left:0;padding-right:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
+.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0;}
+.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-left:0;padding-right:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
+.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px;}
+.navbar-fixed-top{top:0;}
+.navbar-fixed-bottom{bottom:0;}
.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0;}
.navbar .nav.pull-right{float:right;}
.navbar .nav>li{display:block;float:left;}
-.navbar .nav>li>a{float:none;padding:10px 10px 11px;line-height:19px;color:#999999;text-decoration:none;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);}
+.navbar .nav>li>a{float:none;padding:5px 10px 7px;line-height:19px;color:#999999;text-decoration:none;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);}
+.navbar .btn{display:inline-block;padding:4px 10px 4px;margin:1px 5px 2px;line-height:16px;}
+.navbar .btn-group{margin:0;padding:1px 5px 2px;}
.navbar .nav>li>a:hover{background-color:transparent;color:#ffffff;text-decoration:none;}
-.navbar .nav .active>a,.navbar .nav .active>a:hover{color:#ffffff;text-decoration:none;background-color:#2c3143;background-color:rgba(0, 0, 0, 0.5);}
+.navbar .nav .active>a,.navbar .nav .active>a:hover{color:#ffffff;text-decoration:none;background-color:rgba(0, 0, 0, 0.5);}
.navbar .divider-vertical{height:32px;width:1px;margin:0 9px;overflow:hidden;background-color:#2c3143;border-right:1px solid #333333;}
.navbar .nav.pull-right{margin-left:10px;margin-right:0;}
-.navbar .dropdown-menu{margin-top:1px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}.navbar .dropdown-menu:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0, 0, 0, 0.2);position:absolute;top:-7px;left:9px;}
+.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-left:5px;margin-right:5px;background-color:#303239;background-image:-moz-linear-gradient(top, #333333, #2c3143);background-image:-ms-linear-gradient(top, #333333, #2c3143);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#2c3143));background-image:-webkit-linear-gradient(top, #333333, #2c3143);background-image:-o-linear-gradient(top, #333333, #2c3143);background-image:linear-gradient(top, #333333, #2c3143);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#2c3143', GradientType=0);border-color:#2c3143 #2c3143 #0e0f15;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#2c3143;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);}.navbar .btn-navbar:hover,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{background-color:#2c3143;*background-color:#222634;}
+.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#181a24 \9;}
+.navbar .btn-navbar:hover,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{background-color:#2c3143;*background-color:#222634;}
+.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#181a24 \9;}
+.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);-moz-box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);}
+.btn-navbar .icon-bar+.icon-bar{margin-top:3px;}
+.navbar .dropdown-menu:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0, 0, 0, 0.2);position:absolute;top:-7px;left:9px;}
.navbar .dropdown-menu:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #ffffff;position:absolute;top:-6px;left:10px;}
-.navbar .nav .dropdown-toggle .caret,.navbar .nav .open.dropdown .caret{border-top-color:#ffffff;}
-.navbar .nav .active .caret{opacity:1;filter:alpha(opacity=100);}
-.navbar .nav .open>.dropdown-toggle,.navbar .nav .active>.dropdown-toggle,.navbar .nav .open.active>.dropdown-toggle{background-color:transparent;}
-.navbar .nav .active>.dropdown-toggle:hover{color:#ffffff;}
-.navbar .nav.pull-right .dropdown-menu{left:auto;right:0;}.navbar .nav.pull-right .dropdown-menu:before{left:auto;right:12px;}
-.navbar .nav.pull-right .dropdown-menu:after{left:auto;right:13px;}
-.breadcrumb{padding:7px 14px;margin:0 0 16px;background-color:#fbfbfb;background-image:-moz-linear-gradient(top, #ffffff, #f5f5f5);background-image:-ms-linear-gradient(top, #ffffff, #f5f5f5);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f5f5f5));background-image:-webkit-linear-gradient(top, #ffffff, #f5f5f5);background-image:-o-linear-gradient(top, #ffffff, #f5f5f5);background-image:linear-gradient(top, #ffffff, #f5f5f5);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f5f5f5', GradientType=0);border:1px solid #ddd;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 #ffffff;-moz-box-shadow:inset 0 1px 0 #ffffff;box-shadow:inset 0 1px 0 #ffffff;}.breadcrumb li{display:inline;text-shadow:0 1px 0 #ffffff;}
+.navbar-fixed-bottom .dropdown-menu:before{border-top:7px solid #ccc;border-top-color:rgba(0, 0, 0, 0.2);border-bottom:0;bottom:-7px;top:auto;}
+.navbar-fixed-bottom .dropdown-menu:after{border-top:6px solid #ffffff;border-bottom:0;bottom:-6px;top:auto;}
+.navbar .nav li.dropdown .dropdown-toggle .caret,.navbar .nav li.dropdown.open .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;}
+.navbar .nav li.dropdown.active .caret{opacity:1;filter:alpha(opacity=100);}
+.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{background-color:transparent;}
+.navbar .nav li.dropdown.active>.dropdown-toggle:hover{color:#ffffff;}
+.navbar .pull-right .dropdown-menu,.navbar .dropdown-menu.pull-right{left:auto;right:0;}.navbar .pull-right .dropdown-menu:before,.navbar .dropdown-menu.pull-right:before{left:auto;right:12px;}
+.navbar .pull-right .dropdown-menu:after,.navbar .dropdown-menu.pull-right:after{left:auto;right:13px;}
+.breadcrumb{padding:7px 14px;margin:0 0 16px;list-style:none;background-color:#fbfbfb;background-image:-moz-linear-gradient(top, #ffffff, #f5f5f5);background-image:-ms-linear-gradient(top, #ffffff, #f5f5f5);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f5f5f5));background-image:-webkit-linear-gradient(top, #ffffff, #f5f5f5);background-image:-o-linear-gradient(top, #ffffff, #f5f5f5);background-image:linear-gradient(top, #ffffff, #f5f5f5);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f5f5f5', GradientType=0);border:1px solid #ddd;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 #ffffff;-moz-box-shadow:inset 0 1px 0 #ffffff;box-shadow:inset 0 1px 0 #ffffff;}.breadcrumb li{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 0 #ffffff;}
.breadcrumb .divider{padding:0 5px;color:#999999;}
.breadcrumb .active a{color:#333333;}
.pagination{height:32px;margin:16px 0;}
@@ -255,31 +504,38 @@
.pagination a{float:left;padding:0 14px;line-height:30px;text-decoration:none;border:1px solid #ddd;border-left-width:0;}
.pagination a:hover,.pagination .active a{background-color:#f5f5f5;}
.pagination .active a{color:#999999;cursor:default;}
-.pagination .disabled a,.pagination .disabled a:hover{color:#999999;background-color:transparent;cursor:default;}
+.pagination .disabled span,.pagination .disabled a,.pagination .disabled a:hover{color:#999999;background-color:transparent;cursor:default;}
.pagination li:first-child a{border-left-width:1px;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;}
.pagination li:last-child a{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0;}
.pagination-centered{text-align:center;}
.pagination-right{text-align:right;}
.pager{margin-left:0;margin-bottom:16px;list-style:none;text-align:center;*zoom:1;}.pager:before,.pager:after{display:table;content:"";}
.pager:after{clear:both;}
+.pager:before,.pager:after{display:table;content:"";}
+.pager:after{clear:both;}
.pager li{display:inline;}
.pager a{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px;}
.pager a:hover{text-decoration:none;background-color:#f5f5f5;}
.pager .next a{float:right;}
.pager .previous a{float:left;}
+.pager .disabled a,.pager .disabled a:hover{color:#999999;background-color:#fff;cursor:default;}
.modal-open .dropdown-menu{z-index:2050;}
.modal-open .dropdown.open{*z-index:2050;}
.modal-open .popover{z-index:2060;}
.modal-open .tooltip{z-index:2070;}
.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000;}.modal-backdrop.fade{opacity:0;}
.modal-backdrop,.modal-backdrop.fade.in{opacity:0.8;filter:alpha(opacity=80);}
-.modal{position:fixed;top:50%;left:50%;z-index:1050;max-height:500px;overflow:auto;width:560px;margin:-250px 0 0 -280px;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;}.modal.fade{-webkit-transition:opacity .3s linear, top .3s ease-out;-moz-transition:opacity .3s linear, top .3s ease-out;-ms-transition:opacity .3s linear, top .3s ease-out;-o-transition:opacity .3s linear, top .3s ease-out;transition:opacity .3s linear, top .3s ease-out;top:-25%;}
+.modal{position:fixed;top:50%;left:50%;z-index:1050;overflow:auto;width:560px;margin:-250px 0 0 -280px;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;}.modal.fade{-webkit-transition:opacity .3s linear, top .3s ease-out;-moz-transition:opacity .3s linear, top .3s ease-out;-ms-transition:opacity .3s linear, top .3s ease-out;-o-transition:opacity .3s linear, top .3s ease-out;transition:opacity .3s linear, top .3s ease-out;top:-25%;}
.modal.fade.in{top:50%;}
.modal-header{padding:9px 15px;border-bottom:1px solid #eee;}.modal-header .close{margin-top:2px;}
-.modal-body{padding:15px;}
-.modal-footer{padding:14px 15px 15px;margin-bottom:0;background-color:#f5f5f5;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;}.modal-footer:before,.modal-footer:after{display:table;content:"";}
+.modal-body{overflow-y:auto;max-height:400px;padding:15px;}
+.modal-form{margin-bottom:0;}
+.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;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;}.modal-footer:before,.modal-footer:after{display:table;content:"";}
.modal-footer:after{clear:both;}
-.modal-footer .btn{float:right;margin-left:5px;margin-bottom:0;}
+.modal-footer:before,.modal-footer:after{display:table;content:"";}
+.modal-footer:after{clear:both;}
+.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0;}
+.modal-footer .btn-group .btn+.btn{margin-left:-1px;}
.popover{position:absolute;top:0;left:0;z-index:1010;display:none;padding:5px;}.popover.top{margin-top:-5px;}
.popover.right{margin-left:5px;}
.popover.bottom{margin-top:5px;}
@@ -292,20 +548,23 @@
.popover-inner{padding:3px;width:280px;overflow:hidden;background:#000000;background:rgba(0, 0, 0, 0.8);-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{padding:9px 15px;line-height:1;background-color:#f5f5f5;border-bottom:1px solid #eee;-webkit-border-radius:3px 3px 0 0;-moz-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;}
.popover-content{padding:14px;background-color:#ffffff;-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;}
-@-webkit-keyframes progress-bar-stripes{from{background-position:0 0;} to{background-position:40px 0;}}@-moz-keyframes progress-bar-stripes{from{background-position:0 0;} to{background-position:40px 0;}}@keyframes progress-bar-stripes{from{background-position:0 0;} to{background-position:40px 0;}}.progress{overflow:hidden;height:18px;margin-bottom:18px;background-color:#f7f7f7;background-image:-moz-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-ms-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9));background-image:-webkit-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-o-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:linear-gradient(top, #f5f5f5, #f9f9f9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f5f5f5', endColorstr='#f9f9f9', GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
-.progress .bar{width:0%;height:18px;color:#ffffff;font-size:12px;text-align:center;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top, #149bdf, #0480be);background-image:-ms-linear-gradient(top, #149bdf, #0480be);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be));background-image:-webkit-linear-gradient(top, #149bdf, #0480be);background-image:-o-linear-gradient(top, #149bdf, #0480be);background-image:linear-gradient(top, #149bdf, #0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#149bdf', endColorstr='#0480be', GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width 0.6s ease;-moz-transition:width 0.6s ease;-ms-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease;}
-.progress-striped .bar{background-color:#62c462;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px;}
-.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite;}
+@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0;} to{background-position:0 0;}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0;} to{background-position:0 0;}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0;} to{background-position:0 0;}}@-o-keyframes progress-bar-stripes{from{background-position:0 0;} to{background-position:40px 0;}}@keyframes progress-bar-stripes{from{background-position:40px 0;} to{background-position:0 0;}}.progress{overflow:hidden;height:18px;margin-bottom:18px;background-color:#f7f7f7;background-image:-moz-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-ms-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9));background-image:-webkit-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-o-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:linear-gradient(top, #f5f5f5, #f9f9f9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f5f5f5', endColorstr='#f9f9f9', GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
+.progress .bar{width:0%;height:18px;color:#ffffff;font-size:12px;text-align:center;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top, #149bdf, #0480be);background-image:-ms-linear-gradient(top, #149bdf, #0480be);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be));background-image:-webkit-linear-gradient(top, #149bdf, #0480be);background-image:-o-linear-gradient(top, #149bdf, #0480be);background-image:linear-gradient(top, #149bdf, #0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#149bdf', endColorstr='#0480be', GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width 0.6s ease;-moz-transition:width 0.6s ease;-ms-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease;}
+.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px;}
+.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite;}
.progress-danger .bar{background-color:#dd514c;background-image:-moz-linear-gradient(top, #ee5f5b, #c43c35);background-image:-ms-linear-gradient(top, #ee5f5b, #c43c35);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35));background-image:-webkit-linear-gradient(top, #ee5f5b, #c43c35);background-image:-o-linear-gradient(top, #ee5f5b, #c43c35);background-image:linear-gradient(top, #ee5f5b, #c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0);}
.progress-danger.progress-striped .bar{background-color:#ee5f5b;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);}
.progress-success .bar{background-color:#5eb95e;background-image:-moz-linear-gradient(top, #62c462, #57a957);background-image:-ms-linear-gradient(top, #62c462, #57a957);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957));background-image:-webkit-linear-gradient(top, #62c462, #57a957);background-image:-o-linear-gradient(top, #62c462, #57a957);background-image:linear-gradient(top, #62c462, #57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0);}
.progress-success.progress-striped .bar{background-color:#62c462;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);}
.progress-info .bar{background-color:#4bb1cf;background-image:-moz-linear-gradient(top, #5bc0de, #339bb9);background-image:-ms-linear-gradient(top, #5bc0de, #339bb9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9));background-image:-webkit-linear-gradient(top, #5bc0de, #339bb9);background-image:-o-linear-gradient(top, #5bc0de, #339bb9);background-image:linear-gradient(top, #5bc0de, #339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0);}
.progress-info.progress-striped .bar{background-color:#5bc0de;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);}
+.progress-warning .bar{background-color:#faa732;background-image:-moz-linear-gradient(top, #fbb450, #f89406);background-image:-ms-linear-gradient(top, #fbb450, #f89406);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));background-image:-webkit-linear-gradient(top, #fbb450, #f89406);background-image:-o-linear-gradient(top, #fbb450, #f89406);background-image:linear-gradient(top, #fbb450, #f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0);}
+.progress-warning.progress-striped .bar{background-color:#fbb450;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);}
.accordion{margin-bottom:16px;}
.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
.accordion-heading{border-bottom:0;}
.accordion-heading .accordion-toggle{display:block;padding:8px 15px;}
+.accordion-toggle{cursor:pointer;}
.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5;}
.carousel{position:relative;margin-bottom:16px;line-height:1;}
.carousel-inner{overflow:hidden;width:100%;position:relative;}
@@ -323,13 +582,17 @@
.carousel-control:hover{color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90);}
.carousel-caption{position:absolute;left:0;right:0;bottom:0;padding:10px 15px 5px;background:#333333;background:rgba(0, 0, 0, 0.75);}
.carousel-caption h4,.carousel-caption p{color:#ffffff;}
-.hero-unit{padding:60px;margin-bottom:30px;background-color:#f5f5f5;-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:24px;}
+.hero-unit{padding:60px;margin-bottom:30px;background-color:#eeeeee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;color:inherit;letter-spacing:-1px;}
+.hero-unit p{font-size:18px;font-weight:200;line-height:24px;color:inherit;}
.pull-right{float:right;}
.pull-left{float:left;}
.hide{display:none;}
.show{display:block;}
.invisible{visibility:hidden;}
+.btn{padding:2px 10px 2px;border-color:#999999;border-color:rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4);}
+.btn.active,.btn:active{color:inherit;}
+.dropdown-menu{max-width:auto;}
+input[type="checkbox"],input[type="radio"]{margin-left:0.5ex;margin-right:0.5ex;}
@font-face{font-family:'FontAwesome';src:url('../images/fonts/fontawesome-webfont.eot');src:url('../images/fonts/fontawesome-webfont.eot?#iefix') format('embedded-opentype'),url('../images/fonts/fontawesome-webfont.woff') format('woff'),url('../images/fonts/fontawesome-webfont.ttf') format('truetype'),url('../images/fonts/fontawesome-webfont.svgz#FontAwesomeRegular') format('svg'),url('../images/fonts/fontawesome-webfont.svg#FontAwesomeRegular') format('svg');font-weight:normal;font-style:normal;}.ficon,[class^="ficon"]:before,[class*=" ficon"]:before{font-family:FontAwesome;font-weight:normal;font-style:normal;display:inline-block;}
.ficon.large:before{font-size:1.3333333333333333em;}
.btn [class^="ficon"],.btn [class*=" ficon"]{line-height:.9em;}
@@ -477,15 +740,19 @@
.ficon.github-sign:before{content:"\f092";}
.ficon.upload-alt:before{content:"\f093";}
.ficon.lemon:before{content:"\f094";}
-.unselectable{-webkit-user-select:none;-moz-user-select:none;-o-user-select:none;user-select:none;}
-.shadow{-webkit-box-shadow:0 1px 3px rgba(0, 0, 0, 0.25);-moz-box-shadow:0 1px 3px rgba(0, 0, 0, 0.25);box-shadow:0 1px 3px rgba(0, 0, 0, 0.25);}
-.parent-width{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;width:100%;*width:90%;}
+.unselectable{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;}
+.parent-width{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;width:100%;*width:90%;}
.clear{*zoom:1;}.clear:before,.clear:after{display:table;content:"";}
.clear:after{clear:both;}
+.clear:before,.clear:after{display:table;content:"";}
+.clear:after{clear:both;}
body{background:#ffffff;color:#303030;background-image:url(base_bg.png);background-repeat:repeat-x;background-position:top;margin:10px;}
img{border:0;}
a,a:link,a:visited,a:active{text-decoration:underline;color:#303030;}
h1,h2,h3,h4{color:#023858;margin:0.5em 0;}
+h1{font-size:24px;}
+h2{font-size:18px;line-height:24px;}h2 small{font-size:14px;}
+h3{font-size:14px;line-height:16px;}h3 small{font-size:12px;}
h1:first-child,h2:first-child,h3:first-child,h4:first-child{margin-top:0px;}
hr{border:none;height:0px;border-bottom:dotted #303030 1px;}
table{border-collapse:collapse;}
@@ -499,12 +766,12 @@
#right-border{right:250px;}
#right{width:250px;right:0px;z-index:200;border-left:solid #999999 1px;}
.subnavbar{background-color:#fafafa;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);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);border-bottom:solid #999999 1px;border-top:solid #999999 1px;padding:5px;color:#555;}
-.unified-panel-header{-webkit-user-select:none;-moz-user-select:none;-o-user-select:none;user-select:none;height:30px;z-index:1000;text-shadow:rgba(255, 255, 255, 0.8) 0 1px 0;background-color:#fafafa;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);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);border-bottom:solid #999999 1px;margin:0;padding:0;padding-right:10px;padding-left:10px;font-weight:bold;color:#555;}.unified-panel-header a{color:#555;}
+.unified-panel-header{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;height:30px;z-index:1000;text-shadow:rgba(255, 255, 255, 0.8) 0 1px 0;background-color:#fafafa;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);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);border-bottom:solid #999999 1px;margin:0;padding:0;padding-right:10px;padding-left:10px;font-weight:bold;color:#555;}.unified-panel-header a{color:#555;}
.unified-panel-header-inner{padding-top:8px;}
-.unified-panel-footer{-webkit-user-select:none;-moz-user-select:none;-o-user-select:none;user-select:none;position:absolute;bottom:0;height:25px;line-height:25px;width:100%;z-index:1000;border-top:solid #999999 1px;background-color:#f0f0f0;background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), color-stop(25%, #f2f2f2), to(#e6e6e6));background-image:-webkit-linear-gradient(#f2f2f2, #f2f2f2 25%, #e6e6e6);background-image:-moz-linear-gradient(top, #f2f2f2, #f2f2f2 25%, #e6e6e6);background-image:-ms-linear-gradient(#f2f2f2, #f2f2f2 25%, #e6e6e6);background-image:-o-linear-gradient(#f2f2f2, #f2f2f2 25%, #e6e6e6);background-image:linear-gradient(#f2f2f2, #f2f2f2 25%, #e6e6e6);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f2f2f2', endColorstr='#e6e6e6', GradientType=0);color:#555;}.unified-panel-footer a{color:#555;}
+.unified-panel-footer{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;position:absolute;bottom:0;height:25px;line-height:25px;width:100%;z-index:1000;border-top:solid #999999 1px;background-color:#f0f0f0;background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), color-stop(25%, #f2f2f2), to(#e6e6e6));background-image:-webkit-linear-gradient(#f2f2f2, #f2f2f2 25%, #e6e6e6);background-image:-moz-linear-gradient(top, #f2f2f2, #f2f2f2 25%, #e6e6e6);background-image:-ms-linear-gradient(#f2f2f2, #f2f2f2 25%, #e6e6e6);background-image:-o-linear-gradient(#f2f2f2, #f2f2f2 25%, #e6e6e6);background-image:linear-gradient(#f2f2f2, #f2f2f2 25%, #e6e6e6);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f2f2f2', endColorstr='#e6e6e6', GradientType=0);color:#555;}.unified-panel-footer a{color:#555;}
.unified-panel-footer .drag{position:absolute;top:0;right:0;padding:0 5px;text-align:center;height:25px;width:20px;background-image:url(../images/visualization/draggable_horizontal.png);background-repeat:no-repeat;background-position:50% 50%;cursor:w-resize;}
#right>.unified-panel-footer .drag{left:0;}
-.panel-collapse{-webkit-user-select:none;-moz-user-select:none;-o-user-select:none;user-select:none;position:absolute;bottom:0;height:25px;line-height:25px;width:100%;z-index:1000;border-top:solid #999999 1px;background-color:#f0f0f0;background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), color-stop(25%, #f2f2f2), to(#e6e6e6));background-image:-webkit-linear-gradient(#f2f2f2, #f2f2f2 25%, #e6e6e6);background-image:-moz-linear-gradient(top, #f2f2f2, #f2f2f2 25%, #e6e6e6);background-image:-ms-linear-gradient(#f2f2f2, #f2f2f2 25%, #e6e6e6);background-image:-o-linear-gradient(#f2f2f2, #f2f2f2 25%, #e6e6e6);background-image:linear-gradient(#f2f2f2, #f2f2f2 25%, #e6e6e6);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f2f2f2', endColorstr='#e6e6e6', GradientType=0);color:#555;z-index:10000;position:fixed;left:0;top:inherit;bottom:0;padding:0 5px;text-align:center;width:20px;background:none;border-right:solid #999999 1px;border-top:solid #999999 1px;background-color:#f0f0f0;background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), color-stop(25%, #f2f2f2), to(#e6e6e6));background-image:-webkit-linear-gradient(#f2f2f2, #f2f2f2 25%, #e6e6e6);background-image:-moz-linear-gradient(top, #f2f2f2, #f2f2f2 25%, #e6e6e6);background-image:-ms-linear-gradient(#f2f2f2, #f2f2f2 25%, #e6e6e6);background-image:-o-linear-gradient(#f2f2f2, #f2f2f2 25%, #e6e6e6);background-image:linear-gradient(#f2f2f2, #f2f2f2 25%, #e6e6e6);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f2f2f2', endColorstr='#e6e6e6', GradientType=0);font-family:FontAwesome;font-weight:normal;font-style:normal;display:inline-block;font-size:1.3333333333333333em;}.panel-collapse a{color:#555;}
+.panel-collapse{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;position:absolute;height:25px;line-height:25px;width:100%;z-index:1000;color:#555;z-index:10000;position:fixed;left:0;top:inherit;bottom:0;padding:0 5px;text-align:center;width:20px;background:none;border-right:solid #999999 1px;border-top:solid #999999 1px;background-color:#f0f0f0;background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), color-stop(25%, #f2f2f2), to(#e6e6e6));background-image:-webkit-linear-gradient(#f2f2f2, #f2f2f2 25%, #e6e6e6);background-image:-moz-linear-gradient(top, #f2f2f2, #f2f2f2 25%, #e6e6e6);background-image:-ms-linear-gradient(#f2f2f2, #f2f2f2 25%, #e6e6e6);background-image:-o-linear-gradient(#f2f2f2, #f2f2f2 25%, #e6e6e6);background-image:linear-gradient(#f2f2f2, #f2f2f2 25%, #e6e6e6);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f2f2f2', endColorstr='#e6e6e6', GradientType=0);font-family:FontAwesome;font-weight:normal;font-style:normal;display:inline-block;font-size:1.3333333333333333em;}.panel-collapse a{color:#555;}
.panel-collapse .drag{position:absolute;top:0;right:0;padding:0 5px;text-align:center;height:25px;width:20px;background-image:url(../images/visualization/draggable_horizontal.png);background-repeat:no-repeat;background-position:50% 50%;cursor:w-resize;}
.panel-collapse:before{content:'\f053';}
.panel-collapse.hidden:before{content:'\f054';}
@@ -518,27 +785,21 @@
.panel-header-button.popup{padding-right:1.75em;background:url(../images/dropdownarrow.png) no-repeat right 7px;}
#overlay,.overlay{position:fixed;top:0;left:0;width:100%;height:100%;z-index:20000;}
#overlay.is_modal #overlay-background,.overlay-background{background:rgba(0, 0, 0, 0.5);}
-.dialog-box-container{position:relative;margin-top:80px;margin-right:auto;margin-left:auto;}
-.dialog-box-wrapper{position:relative;padding:1em;background-color:rgba(0, 0, 0, 0.5);-moz-border-radius:1em;-webkit-border-radius:1em;}
-#dialog-box.dialog-box{min-width:660px;margin:-250px 0 0 -330px;}
-.dialog-box{border:solid #999 1px;background:white;z-index:80000;}
-#overlay.is_modal .dialog-box .body{min-width:600px;}
-.dialog-box .body{padding:5px;overflow:auto;max-height:500px;min-width:300px;}
-.dialog-box .buttons{padding:5px;}
.panel-error-message,.panel-warning-message,.panel-done-message,.panel-info-message{height:24px;line-height:24px;color:#303030;padding:0px;padding-left:26px;background-color:#ffcccc;background-image:url(error_small.png);background-repeat:no-repeat;background-position:6px 50%;}
.panel-warning-message{background-image:url(warn_small.png);background-color:#ffffcc;}
.panel-done-message{background-image:url(ok_small.png);background-color:#ccffcc;}
.panel-info-message{background-image:url(info_small.png);background-color:#d9edf7;}
-#masthead{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;overflow:visible;margin-bottom:16px;position:absolute;top:0;left:0;width:100%;min-width:900px;height:32px;border-bottom:solid #444444 1px;z-index:15000;padding:0;}#masthead .brand:hover{text-decoration:none;}
-#masthead .brand{float:left;display:block;padding:8px 20px 12px;margin-left:-20px;font-size:20px;font-weight:200;line-height:1;color:#ffffff;}
-#masthead .navbar-text{margin-bottom:0;line-height:40px;color:#999999;}#masthead .navbar-text a:hover{color:#ffffff;background-color:transparent;}
-#masthead .btn,#masthead .btn-group{margin-top:5px;}
-#masthead .btn-group .btn{margin-top:0;}
+#masthead{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;*position:relative;*z-index:2;overflow:visible;margin-bottom:16px;color:#999999;position:absolute;top:0;left:0;width:100%;min-width:900px;height:32px;border-bottom:solid #444444 1px;z-index:15000;padding:0;}#masthead .brand:hover{text-decoration:none;}
+#masthead .brand{float:left;display:block;padding:4px 20px 8px;margin-left:-20px;font-size:20px;font-weight:200;line-height:1;color:#999999;}
+#masthead .navbar-text{margin-bottom:0;line-height:32px;}
+#masthead .navbar-link{color:#999999;}#masthead .navbar-link:hover{color:#ffffff;}
+#masthead .btn,#masthead .btn-group{margin-top:1px;}
+#masthead .btn-group .btn{margin:0;}
#masthead .nav>li>a{padding:6px 10px 8px;cursor:pointer;}#masthead .nav>li>a:hover{color:gold;}
#masthead .dropdown-menu a,#masthead .dropdown-menu a:hover{text-decoration:none;}
#masthead .title{position:absolute;left:0;top:0;font-family:verdana;font-weight:bold;font-size:20px;line-height:1;color:white;padding:5px 20px 12px;margin-left:-15px;z-index:2000;}#masthead .title img{display:inline;width:26px;vertical-align:top;}
#masthead .title a{color:white;text-decoration:none;}
-#masthead .masthead-inner{padding-left:20px;padding-right:20px;background-color:#303239;background-image:-moz-linear-gradient(top, #333333, #2c3143);background-image:-ms-linear-gradient(top, #333333, #2c3143);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#2c3143));background-image:-webkit-linear-gradient(top, #333333, #2c3143);background-image:-o-linear-gradient(top, #333333, #2c3143);background-image:linear-gradient(top, #333333, #2c3143);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#2c3143', GradientType=0);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-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);padding-left:0;padding-right:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;height:32px;}
+#masthead .masthead-inner{min-height:32px;padding-left:20px;padding-right:20px;background-color:#303239;background-image:-moz-linear-gradient(top, #333333, #2c3143);background-image:-ms-linear-gradient(top, #333333, #2c3143);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#2c3143));background-image:-webkit-linear-gradient(top, #333333, #2c3143);background-image:-o-linear-gradient(top, #333333, #2c3143);background-image:linear-gradient(top, #333333, #2c3143);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#2c3143', GradientType=0);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.25), inset 0 -1px 0 rgba(0,0,0,.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,.25), inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:0 1px 3px rgba(0,0,0,.25), inset 0 -1px 0 rgba(0,0,0,.1);padding-left:0;padding-right:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;height:32px;}
#masthead a:hover{text-decoration:underline;}
.quota-meter-container{position:absolute;top:0;right:0;height:32px;}
.quota-meter{position:absolute;top:8px;right:8px;height:16px;width:100px;background-color:#c1c9e5;}
@@ -585,7 +846,7 @@
.errormessagelarge{background-color:#ffcccc;border-color:#ff3355;color:#660000;padding-left:52px;}
.warningmessagelarge{background-image:url(warn_large.png);border-color:#aaaa66;background-color:#ffffcc;}
.donemessagelarge{background-color:#ccffcc;border-color:#1a9900;color:#006600;padding-left:52px;background-image:url(ok_large.png);}
-.infomessagelarge{background-color:#d9edf7;border-color:#1b7183;color:#134158;background-image:url(info_large.png);border-color:#6666aa;background-color:#d9edf7;}
+.infomessagelarge{border-color:#1b7183;color:#134158;background-image:url(info_large.png);border-color:#6666aa;background-color:#d9edf7;}
.screencastBox{padding-left:10px;border-color:#AAAA66;background-color:#FFFFCC;background-image:none;}
.errormessage,.warningmessage,.donemessage,.infomessage,.errormessagesmall,.warningmessagesmall,.donemessagesmall,.infomessagesmall{padding:8px 35px 8px 14px;margin-bottom:16px;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);background-color:#ffffcc;border:1px solid #ffdd33;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;color:#666600;padding:5px;padding-left:25px;min-height:15px;background-image:url(error_small.png);background-repeat:no-repeat;background-position:5px 5px;}
.errormessage{background-color:#ffcccc;border-color:#ff3355;color:#660000;}
@@ -654,21 +915,29 @@
.state-fg-ok{color:#66AA66;}
.state-fg-error{color:#AA6666;}
.state-fg-deleted{color:#3399FF;}
-.action-button{display:inline-block;padding:2px 10px 2px;font-size:12px;line-height:16px;color:#111111;text-align:center;text-shadow:0 1px 1px rgba(255, 255, 255, 0.75);background-color:#fafafa;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);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);border:1px solid #999999;border-bottom-color:#888888;-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);cursor:pointer;*margin-left:.3em;}.action-button:first-child{*margin-left:0;}
+.action-button{display:inline-block;*display:inline;*zoom:1;padding:4px 10px 4px;margin-bottom:0;font-size:12px;line-height:16px;*line-height:20px;color:#333333;text-align:center;text-shadow:0 1px 1px rgba(255, 255, 255, 0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;background-image:-moz-linear-gradient(top, #ffffff, #e6e6e6);background-image:-ms-linear-gradient(top, #ffffff, #e6e6e6);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));background-image:-webkit-linear-gradient(top, #ffffff, #e6e6e6);background-image:-o-linear-gradient(top, #ffffff, #e6e6e6);background-image:linear-gradient(top, #ffffff, #e6e6e6);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);border-color:#e6e6e6 #e6e6e6 #bfbfbf;*background-color:#e6e6e6;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);border:1px solid #999999;*border:0;border-bottom-color:#808080;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*margin-left:.3em;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);border-color:#ccc;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);padding:2px 10px 2px;border-color:#999999;border-color:rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4);}.action-button:hover,.action-button:active,.action-button.active,.action-button.disabled,.action-button[disabled]{background-color:#e6e6e6;*background-color:#d9d9d9;}
+.action-button:active,.action-button.active{background-color:#cccccc \9;}
+.action-button:hover,.action-button:active,.action-button.active,.action-button.disabled,.action-button[disabled]{background-color:#e6e6e6;*background-color:#d9d9d9;}
+.action-button:active,.action-button.active{background-color:#cccccc \9;}
+.action-button:first-child{*margin-left:0;}
+.action-button:first-child{*margin-left:0;}
.action-button [class^="ficon"],.action-button [class*=" ficon"]{line-height:.9em;}
a.action-button{text-decoration:none;}
.action-button>img{vertical-align:middle;}
-.action-button:hover{color:#111111;text-decoration:none;background-color:#e6e6e6;background-position:0 -15px;-webkit-transition:background-position 0.1s linear;-moz-transition:background-position 0.1s linear;-ms-transition:background-position 0.1s linear;-o-transition:background-position 0.1s linear;transition:background-position 0.1s linear;}
-.action-button:active{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);background-color:#e6e6e6;background-color:#d9d9d9 \9;outline:0;}
-.menubutton{display:inline-block;padding:2px 10px 2px;font-size:12px;line-height:16px;color:#111111;text-align:center;text-shadow:0 1px 1px rgba(255, 255, 255, 0.75);background-color:#fafafa;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);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);border:1px solid #999999;border-bottom-color:#888888;-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);cursor:pointer;*margin-left:.3em;display:inline-block;cursor:pointer;position:relative;-webkit-user-select:none;-moz-user-select:none;-o-user-select:none;user-select:none;}.menubutton:first-child{*margin-left:0;}
+.action-button:active{background-color:#e6e6e6;background-color:#d9d9d9 \9;background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);color:inherit;}
+.menubutton{*display:inline;*zoom:1;padding:4px 10px 4px;margin-bottom:0;font-size:12px;line-height:16px;*line-height:20px;color:#333333;text-align:center;text-shadow:0 1px 1px rgba(255, 255, 255, 0.75);vertical-align:middle;background-color:#f5f5f5;background-image:-moz-linear-gradient(top, #ffffff, #e6e6e6);background-image:-ms-linear-gradient(top, #ffffff, #e6e6e6);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));background-image:-webkit-linear-gradient(top, #ffffff, #e6e6e6);background-image:-o-linear-gradient(top, #ffffff, #e6e6e6);background-image:linear-gradient(top, #ffffff, #e6e6e6);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);border-color:#e6e6e6 #e6e6e6 #bfbfbf;*background-color:#e6e6e6;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);border:1px solid #999999;*border:0;border-bottom-color:#808080;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*margin-left:.3em;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);border-color:#ccc;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);padding:2px 10px 2px;border-color:#999999;border-color:rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4);display:inline-block;cursor:pointer;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;}.menubutton:hover,.menubutton:active,.menubutton.active,.menubutton.disabled,.menubutton[disabled]{background-color:#e6e6e6;*background-color:#d9d9d9;}
+.menubutton:active,.menubutton.active{background-color:#cccccc \9;}
+.menubutton:hover,.menubutton:active,.menubutton.active,.menubutton.disabled,.menubutton[disabled]{background-color:#e6e6e6;*background-color:#d9d9d9;}
+.menubutton:active,.menubutton.active{background-color:#cccccc \9;}
+.menubutton:first-child{*margin-left:0;}
+.menubutton:first-child{*margin-left:0;}
.menubutton [class^="ficon"],.menubutton [class*=" ficon"]{line-height:.9em;}
-.menubutton:hover{color:#111111;text-decoration:none;background-color:#e6e6e6;background-position:0 -15px;-webkit-transition:background-position 0.1s linear;-moz-transition:background-position 0.1s linear;-ms-transition:background-position 0.1s linear;-o-transition:background-position 0.1s linear;transition:background-position 0.1s linear;}
-.menubutton:active{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);background-color:#e6e6e6;background-color:#d9d9d9 \9;outline:0;}
-.menubutton:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}
+.menubutton:active{background-color:#e6e6e6;background-color:#d9d9d9 \9;background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);color:inherit;}
+.menubutton:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}
.menubutton a{text-decoration:none;}
.menubutton .label,.menubutton>label{position:relative;display:inline-block;border-right:none;text-decoration:none;text-align:left;max-height:32px;line-height:16px;overflow:hidden;text-overflow:ellipsis;}
.menubutton.popup .label{border-right:solid #999999 1px;padding-right:6px;}
-.menubutton.popup,.menubutton.popup.split{padding-right:18px;}.menubutton.popup:after,.menubutton.popup.split:after{margin-top:6px;position:absolute;top:2px;right:6px;display:inline-block;width:0;height:0;text-indent:-99999px;*text-indent:0;vertical-align:top;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #000000;opacity:0.3;filter:alpha(opacity=30);content:"\2193";}
+.menubutton.popup,.menubutton.popup.split{padding-right:18px;}.menubutton.popup:after,.menubutton.popup.split:after{margin-top:6px;position:absolute;top:2px;right:6px;display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000000;border-right:4px solid transparent;border-left:4px solid transparent;content:"";opacity:0.3;filter:alpha(opacity=30);}
div.popmenu-wrapper{position:absolute;top:100%;z-index:20000;}div.popmenu-wrapper ul.dropdown-menu{display:block;position:relative;float:none;}
ul.dropdown-menu a{text-decoration:none;}
ul.dropdown-menu li.head>a{text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);font-size:11px;font-weight:bold;line-height:16px;color:#999999;text-transform:uppercase;}
@@ -714,7 +983,6 @@
pre.peek{background:white;color:black;width:100%;font-size:10px;overflow:auto;}pre.peek th{color:white;background:#023858;}
pre.peek table,pre.peek th,pre.peek tr,pre.peek td{font-family:Menlo,Monaco,"Courier New",monospace;font-size:10px;}
.toolMenuContainer{color:#303030;background:#dfe5f9;margin-top:5px;}
-.unified-panel-body .toolMenu{padding:10px;}
div.toolSectionPad{margin:0;padding:0;height:5px;font-size:0px;}
div.toolSectionWrapper{margin-bottom:5px;}
div.toolSectionDetailsInner{margin-left:5px;margin-right:5px;}
@@ -767,3 +1035,4 @@
div.historyItem-error .state-icon{background:url(history-states.png) no-repeat 0px 0px;}
div.historyItem-empty .state-icon{background:url(history-states.png) no-repeat 0px -25px;}
div.historyItem-queued .state-icon{background:url(history-states.png) no-repeat 0px -50px;}
+.text-and-autocomplete-select{background:none;position:relative;padding-right:18px;}.text-and-autocomplete-select:after{margin-top:6px;position:absolute;top:2px;right:6px;width:10px;height:10px;display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000000;border-right:4px solid transparent;border-left:4px solid transparent;content:"";opacity:0.3;filter:alpha(opacity=30);opacity:0.8;filter:alpha(opacity=80);}
diff -r f4e720d9f182cb8216fdd2174fe3ab83d0350a24 -r 84c7d3575d9543489aead618c91a6406019a26d9 static/june_2007_style/bootstrap/accordion.less
--- a/static/june_2007_style/bootstrap/accordion.less
+++ b/static/june_2007_style/bootstrap/accordion.less
@@ -21,6 +21,11 @@
padding: 8px 15px;
}
+// General toggle styles
+.accordion-toggle {
+ cursor: pointer;
+}
+
// Inner needs the styles because you can't animate properly with any styles on the element
.accordion-inner {
padding: 9px 15px;
diff -r f4e720d9f182cb8216fdd2174fe3ab83d0350a24 -r 84c7d3575d9543489aead618c91a6406019a26d9 static/june_2007_style/bootstrap/alerts.less
--- a/static/june_2007_style/bootstrap/alerts.less
+++ b/static/june_2007_style/bootstrap/alerts.less
@@ -9,10 +9,10 @@
background-color: @warningBackground;
border: 1px solid @warningBorder;
.border-radius(4px);
+ color: @warningText;
}
-.alert,
.alert-heading {
- color: @warningText;
+ color: inherit;
}
// Adjust close link position
@@ -29,32 +29,20 @@
.alert-success {
background-color: @successBackground;
border-color: @successBorder;
-}
-.alert-success,
-.alert-success .alert-heading {
color: @successText;
}
.alert-danger,
.alert-error {
background-color: @errorBackground;
border-color: @errorBorder;
-}
-.alert-danger,
-.alert-error,
-.alert-danger .alert-heading,
-.alert-error .alert-heading {
color: @errorText;
}
.alert-info {
background-color: @infoBackground;
border-color: @infoBorder;
-}
-.alert-info,
-.alert-info .alert-heading {
color: @infoText;
}
-
// Block alerts
// ------------------------
.alert-block {
diff -r f4e720d9f182cb8216fdd2174fe3ab83d0350a24 -r 84c7d3575d9543489aead618c91a6406019a26d9 static/june_2007_style/bootstrap/bootstrap.less
--- a/static/june_2007_style/bootstrap/bootstrap.less
+++ b/static/june_2007_style/bootstrap/bootstrap.less
@@ -1,5 +1,5 @@
/*!
- * Bootstrap v2.0.0
+ * Bootstrap v2.0.4
*
* Copyright 2012 Twitter, Inc
* Licensed under the Apache License v2.0
@@ -52,7 +52,7 @@
// Components: Misc
@import "thumbnails.less";
-@import "labels.less";
+@import "labels-badges.less";
@import "progress-bars.less";
@import "accordion.less";
@import "carousel.less";
diff -r f4e720d9f182cb8216fdd2174fe3ab83d0350a24 -r 84c7d3575d9543489aead618c91a6406019a26d9 static/june_2007_style/bootstrap/breadcrumbs.less
--- a/static/june_2007_style/bootstrap/breadcrumbs.less
+++ b/static/june_2007_style/bootstrap/breadcrumbs.less
@@ -4,12 +4,14 @@
.breadcrumb {
padding: 7px 14px;
margin: 0 0 @baseLineHeight;
+ list-style: none;
#gradient > .vertical(@white, #f5f5f5);
border: 1px solid #ddd;
.border-radius(3px);
.box-shadow(inset 0 1px 0 @white);
li {
- display: inline;
+ display: inline-block;
+ .ie7-inline-block();
text-shadow: 0 1px 0 @white;
}
.divider {
diff -r f4e720d9f182cb8216fdd2174fe3ab83d0350a24 -r 84c7d3575d9543489aead618c91a6406019a26d9 static/june_2007_style/bootstrap/button-groups.less
--- a/static/june_2007_style/bootstrap/button-groups.less
+++ b/static/june_2007_style/bootstrap/button-groups.less
@@ -25,14 +25,14 @@
}
// Float them, remove border radius, then re-add to first and last elements
-.btn-group .btn {
+.btn-group > .btn {
position: relative;
float: left;
margin-left: -1px;
.border-radius(0);
}
// Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match
-.btn-group .btn:first-child {
+.btn-group > .btn:first-child {
margin-left: 0;
-webkit-border-top-left-radius: 4px;
-moz-border-radius-topleft: 4px;
@@ -41,8 +41,9 @@
-moz-border-radius-bottomleft: 4px;
border-bottom-left-radius: 4px;
}
-.btn-group .btn:last-child,
-.btn-group .dropdown-toggle {
+// Need .dropdown-toggle since :last-child doesn't apply given a .dropdown-menu immediately after it
+.btn-group > .btn:last-child,
+.btn-group > .dropdown-toggle {
-webkit-border-top-right-radius: 4px;
-moz-border-radius-topright: 4px;
border-top-right-radius: 4px;
@@ -51,7 +52,7 @@
border-bottom-right-radius: 4px;
}
// Reset corners for large buttons
-.btn-group .btn.large:first-child {
+.btn-group > .btn.large:first-child {
margin-left: 0;
-webkit-border-top-left-radius: 6px;
-moz-border-radius-topleft: 6px;
@@ -60,8 +61,8 @@
-moz-border-radius-bottomleft: 6px;
border-bottom-left-radius: 6px;
}
-.btn-group .btn.large:last-child,
-.btn-group .large.dropdown-toggle {
+.btn-group > .btn.large:last-child,
+.btn-group > .large.dropdown-toggle {
-webkit-border-top-right-radius: 6px;
-moz-border-radius-topright: 6px;
border-top-right-radius: 6px;
@@ -71,10 +72,10 @@
}
// On hover/focus/active, bring the proper btn to front
-.btn-group .btn:hover,
-.btn-group .btn:focus,
-.btn-group .btn:active,
-.btn-group .btn.active {
+.btn-group > .btn:hover,
+.btn-group > .btn:focus,
+.btn-group > .btn:active,
+.btn-group > .btn.active {
z-index: 2;
}
@@ -90,34 +91,60 @@
// ----------------------
// Give the line between buttons some depth
-.btn-group .dropdown-toggle {
+.btn-group > .dropdown-toggle {
padding-left: 8px;
padding-right: 8px;
- @shadow: inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
- .box-shadow(@shadow);
- *padding-top: 5px;
- *padding-bottom: 5px;
+ .box-shadow(~"inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05)");
+ *padding-top: 4px;
+ *padding-bottom: 4px;
+}
+.btn-group > .btn-mini.dropdown-toggle {
+ padding-left: 5px;
+ padding-right: 5px;
+}
+.btn-group > .btn-small.dropdown-toggle {
+ *padding-top: 4px;
+ *padding-bottom: 4px;
+}
+.btn-group > .btn-large.dropdown-toggle {
+ padding-left: 12px;
+ padding-right: 12px;
}
.btn-group.open {
- // IE7's z-index only goes to the nearest positioned ancestor, which would
- // make the menu appear below buttons that appeared later on the page
- *z-index: @zindexDropdown;
- // Reposition menu on open and round all corners
- .dropdown-menu {
- display: block;
- margin-top: 1px;
- .border-radius(5px);
+ // The clickable button for toggling the menu
+ // Remove the gradient and set the same inset shadow as the :active state
+ .dropdown-toggle {
+ background-image: none;
+ .box-shadow(~"inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05)");
}
- .dropdown-toggle {
- background-image: none;
- @shadow: inset 0 1px 6px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);
- .box-shadow(@shadow);
+ // Keep the hover's background when dropdown is open
+ .btn.dropdown-toggle {
+ background-color: @btnBackgroundHighlight;
+ }
+ .btn-primary.dropdown-toggle {
+ background-color: @btnPrimaryBackgroundHighlight;
+ }
+ .btn-warning.dropdown-toggle {
+ background-color: @btnWarningBackgroundHighlight;
+ }
+ .btn-danger.dropdown-toggle {
+ background-color: @btnDangerBackgroundHighlight;
+ }
+ .btn-success.dropdown-toggle {
+ background-color: @btnSuccessBackgroundHighlight;
+ }
+ .btn-info.dropdown-toggle {
+ background-color: @btnInfoBackgroundHighlight;
+ }
+ .btn-inverse.dropdown-toggle {
+ background-color: @btnInverseBackgroundHighlight;
}
}
+
// Reposition the caret
.btn .caret {
margin-top: 7px;
@@ -127,21 +154,38 @@
.open.btn-group .caret {
.opacity(100);
}
+// Carets in other button sizes
+.btn-mini .caret {
+ margin-top: 5px;
+}
+.btn-small .caret {
+ margin-top: 6px;
+}
+.btn-large .caret {
+ margin-top: 6px;
+ border-left-width: 5px;
+ border-right-width: 5px;
+ border-top-width: 5px;
+}
+// Upside down carets for .dropup
+.dropup .btn-large .caret {
+ border-bottom: 5px solid @black;
+ border-top: 0;
+}
+
// Account for other colors
.btn-primary,
+.btn-warning,
.btn-danger,
.btn-info,
-.btn-success {
+.btn-success,
+.btn-inverse {
.caret {
border-top-color: @white;
+ border-bottom-color: @white;
.opacity(75);
}
}
-// Small button dropdowns
-.btn-small .caret {
- margin-top: 4px;
-}
-
diff -r f4e720d9f182cb8216fdd2174fe3ab83d0350a24 -r 84c7d3575d9543489aead618c91a6406019a26d9 static/june_2007_style/bootstrap/buttons.less
--- a/static/june_2007_style/bootstrap/buttons.less
+++ b/static/june_2007_style/bootstrap/buttons.less
@@ -8,30 +8,32 @@
// Core
.btn {
display: inline-block;
- padding: 2px 10px 2px;
+ .ie7-inline-block();
+ padding: 4px 10px 4px;
+ margin-bottom: 0; // For input.btn
font-size: @baseFontSize;
line-height: @baseLineHeight;
- color: @textColor;
+ *line-height: 20px;
+ color: @grayDark;
text-align: center;
text-shadow: 0 1px 1px rgba(255,255,255,.75);
- #gradient > .vertical-three-colors(@white, @white, 25%, darken(@white, 10%)); // Don't use .gradientbar() here since it does a three-color gradient
- border: 1px solid @buttonBorder;
- border-bottom-color: @buttonBorderBottom;
+ vertical-align: middle;
+ cursor: pointer;
+ .buttonBackground(@btnBackground, @btnBackgroundHighlight);
+ border: 1px solid @btnBorder;
+ *border: 0; // Remove the border to prevent IE7's black border on input:focus
+ border-bottom-color: darken(@btnBorder, 10%);
.border-radius(4px);
- @shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
- .box-shadow(@shadow);
- cursor: pointer;
-
- // Give IE7 some love
- .ie7-restore-left-whitespace();
+ .ie7-restore-left-whitespace(); // Give IE7 some love
+ .box-shadow(~"inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05)");
}
// Hover state
-.btn.hover,
.btn:hover {
- color: @textColor;
+ color: @grayDark;
text-decoration: none;
background-color: darken(@white, 10%);
+ *background-color: darken(@white, 15%); /* Buttons in IE7 don't get borders, so darken on hover */
background-position: 0 -15px;
// transition is only when going to hover, otherwise the background
@@ -47,21 +49,19 @@
// Active state
.btn.active,
.btn:active {
- background-image: none;
- @shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);
- .box-shadow(@shadow);
background-color: darken(@white, 10%);
background-color: darken(@white, 15%) e("\9");
- // color: rgba(0,0,0,.5);
+ background-image: none;
outline: 0;
+ .box-shadow(~"inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05)");
}
// Disabled state
.btn.disabled,
.btn[disabled] {
cursor: default;
+ background-color: darken(@white, 10%);
background-image: none;
- background-color: darken(@white, 10%);
.opacity(65);
.box-shadow(none);
}
@@ -77,7 +77,7 @@
line-height: normal;
.border-radius(5px);
}
-.btn-large .icon {
+.btn-large [class^="icon-"] {
margin-top: 1px;
}
@@ -87,10 +87,17 @@
font-size: @baseFontSize - 2px;
line-height: @baseLineHeight - 2px;
}
-.btn-small .icon {
+.btn-small [class^="icon-"] {
margin-top: -1px;
}
+// Mini
+.btn-mini {
+ padding: 2px 6px;
+ font-size: @baseFontSize - 2px;
+ line-height: @baseLineHeight - 4px;
+}
+
// Alternate buttons
// --------------------------------------------------
@@ -106,39 +113,51 @@
.btn-success,
.btn-success:hover,
.btn-info,
-.btn-info:hover {
+.btn-info:hover,
+.btn-inverse,
+.btn-inverse:hover {
+ color: @white;
text-shadow: 0 -1px 0 rgba(0,0,0,.25);
- color: @white;
}
// Provide *some* extra contrast for those who can get it
.btn-primary.active,
.btn-warning.active,
.btn-danger.active,
.btn-success.active,
-.btn-info.active {
+.btn-info.active,
+.btn-inverse.active {
color: rgba(255,255,255,.75);
}
// Set the backgrounds
// -------------------------
+.btn {
+ // reset here as of 2.0.3 due to Recess property order
+ border-color: #ccc;
+ border-color: rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);
+}
.btn-primary {
- .buttonBackground(@primaryButtonBackground, spin(@primaryButtonBackground, 20));
+ .buttonBackground(@btnPrimaryBackground, @btnPrimaryBackgroundHighlight);
}
// Warning appears are orange
.btn-warning {
- .buttonBackground(lighten(@orange, 15%), @orange);
+ .buttonBackground(@btnWarningBackground, @btnWarningBackgroundHighlight);
}
// Danger and error appear as red
.btn-danger {
- .buttonBackground(#ee5f5b, #bd362f);
+ .buttonBackground(@btnDangerBackground, @btnDangerBackgroundHighlight);
}
// Success appears as green
.btn-success {
- .buttonBackground(#62c462, #51a351);
+ .buttonBackground(@btnSuccessBackground, @btnSuccessBackgroundHighlight);
}
// Info appears as a neutral blue
.btn-info {
- .buttonBackground(#5bc0de, #2f96b4);
+ .buttonBackground(@btnInfoBackground, @btnInfoBackgroundHighlight);
+}
+// Inverse appears as dark gray
+.btn-inverse {
+ .buttonBackground(@btnInverseBackground, @btnInverseBackgroundHighlight);
}
@@ -147,20 +166,26 @@
button.btn,
input[type="submit"].btn {
+
+ // Firefox 3.6 only I believe
&::-moz-focus-inner {
- padding: 0;
+ padding: 0;
border: 0;
}
// IE7 has some default padding on button controls
*padding-top: 2px;
*padding-bottom: 2px;
- &.large {
+ &.btn-large {
*padding-top: 7px;
*padding-bottom: 7px;
}
- &.small {
+ &.btn-small {
*padding-top: 3px;
*padding-bottom: 3px;
}
+ &.btn-mini {
+ *padding-top: 1px;
+ *padding-bottom: 1px;
+ }
}
diff -r f4e720d9f182cb8216fdd2174fe3ab83d0350a24 -r 84c7d3575d9543489aead618c91a6406019a26d9 static/june_2007_style/bootstrap/close.less
--- a/static/june_2007_style/bootstrap/close.less
+++ b/static/june_2007_style/bootstrap/close.less
@@ -12,7 +12,18 @@
&:hover {
color: @black;
text-decoration: none;
+ cursor: pointer;
.opacity(40);
- cursor: pointer;
}
}
+
+// Additional properties for button version
+// iOS requires the button element instead of an anchor tag.
+// If you want the anchor version, it requires `href="#"`.
+button.close {
+ padding: 0;
+ cursor: pointer;
+ background: transparent;
+ border: 0;
+ -webkit-appearance: none;
+}
\ No newline at end of file
diff -r f4e720d9f182cb8216fdd2174fe3ab83d0350a24 -r 84c7d3575d9543489aead618c91a6406019a26d9 static/june_2007_style/bootstrap/code.less
--- a/static/june_2007_style/bootstrap/code.less
+++ b/static/june_2007_style/bootstrap/code.less
@@ -11,25 +11,30 @@
color: @grayDark;
.border-radius(3px);
}
+
+// Inline code
code {
- padding: 3px 4px;
+ padding: 2px 4px;
color: #d14;
background-color: #f7f7f9;
border: 1px solid #e1e1e8;
}
+
+// Blocks of code
pre {
display: block;
padding: (@baseLineHeight - 1) / 2;
margin: 0 0 @baseLineHeight / 2;
- font-size: 12px;
+ font-size: @baseFontSize * .925; // 13px to 12px
line-height: @baseLineHeight;
+ word-break: break-all;
+ word-wrap: break-word;
+ white-space: pre;
+ white-space: pre-wrap;
background-color: #f5f5f5;
border: 1px solid #ccc; // fallback for IE7-8
border: 1px solid rgba(0,0,0,.15);
.border-radius(4px);
- white-space: pre;
- white-space: pre-wrap;
- word-break: break-all;
// Make prettyprint styles more spaced out for readability
&.prettyprint {
@@ -39,6 +44,14 @@
// Account for some code outputs that place code tags in pre tags
code {
padding: 0;
+ color: inherit;
background-color: transparent;
+ border: 0;
}
}
+
+// Enable scrollable blocks of code
+.pre-scrollable {
+ max-height: 340px;
+ overflow-y: scroll;
+}
\ No newline at end of file
diff -r f4e720d9f182cb8216fdd2174fe3ab83d0350a24 -r 84c7d3575d9543489aead618c91a6406019a26d9 static/june_2007_style/bootstrap/component-animations.less
--- a/static/june_2007_style/bootstrap/component-animations.less
+++ b/static/june_2007_style/bootstrap/component-animations.less
@@ -2,17 +2,19 @@
// --------------------
.fade {
+ opacity: 0;
.transition(opacity .15s linear);
- opacity: 0;
&.in {
opacity: 1;
}
}
.collapse {
+ position: relative;
+ height: 0;
+ overflow: hidden;
.transition(height .35s ease);
- position:relative;
- overflow:hidden;
- height: 0;
- &.in { height: auto; }
+ &.in {
+ height: auto;
+ }
}
diff -r f4e720d9f182cb8216fdd2174fe3ab83d0350a24 -r 84c7d3575d9543489aead618c91a6406019a26d9 static/june_2007_style/bootstrap/dropdowns.less
--- a/static/june_2007_style/bootstrap/dropdowns.less
+++ b/static/june_2007_style/bootstrap/dropdowns.less
@@ -2,6 +2,7 @@
// --------------
// Use the .menu class on any <li> element within the topbar or ul.tabs and you'll get some superfancy dropdowns
+.dropup,
.dropdown {
position: relative;
}
@@ -13,78 +14,64 @@
.open .dropdown-toggle {
outline: 0;
}
+
// Dropdown arrow/caret
+// --------------------
.caret {
display: inline-block;
width: 0;
height: 0;
- text-indent: -99999px;
- // IE7 won't do the border trick if there's a text indent, but it doesn't
- // do the content that text-indent is hiding, either, so we're ok.
- *text-indent: 0;
vertical-align: top;
+ border-top: 4px solid @black;
+ border-right: 4px solid transparent;
border-left: 4px solid transparent;
- border-right: 4px solid transparent;
- border-top: 4px solid @black;
+ content: "";
.opacity(30);
- content: "\2193";
}
+
+// Place the caret
.dropdown .caret {
margin-top: 8px;
margin-left: 2px;
}
.dropdown:hover .caret,
-.open.dropdown .caret {
+.open .caret {
.opacity(100);
}
+
// The dropdown menu (ul)
+// ----------------------
.dropdown-menu {
position: absolute;
top: 100%;
left: 0;
z-index: @zindexDropdown;
+ display: none; // none by default, but block on "open" of the menu
float: left;
- display: none; // none by default, but block on "open" of the menu
min-width: 160px;
- // makmax-width: 220px;
- _width: 160px;
padding: 4px 0;
- margin: 0; // override default ul
+ margin: 1px 0 0; // override default ul
list-style: none;
- background-color: @white;
- border-color: #ccc;
- border-color: rgba(0,0,0,.2);
- border-style: solid;
- border-width: 1px;
- .border-radius(0 0 5px 5px);
+ background-color: @dropdownBackground;
+ border: 1px solid #ccc;
+ border: 1px solid rgba(0,0,0,.2);
+ *border-right-width: 2px;
+ *border-bottom-width: 2px;
+ .border-radius(5px);
.box-shadow(0 5px 10px rgba(0,0,0,.2));
-webkit-background-clip: padding-box;
-moz-background-clip: padding;
background-clip: padding-box;
- *border-right-width: 2px;
- *border-bottom-width: 2px;
- // Allow for dropdowns to go bottom up (aka, dropup-menu)
- &.bottom-up {
- top: auto;
- bottom: 100%;
- margin-bottom: 2px;
+ // Aligns the dropdown menu to right
+ &.pull-right {
+ right: 0;
+ left: auto;
}
// Dividers (basically an hr) within the dropdown
.divider {
- height: 1px;
- margin: 5px 1px;
- overflow: hidden;
- background-color: #e5e5e5;
- border-bottom: 1px solid @white;
-
- // IE7 needs a set width since we gave a height. Restricting just
- // to IE7 to keep the 1px left/right space in other browsers.
- // It is unclear where IE is getting the extra space that we need
- // to negative-margin away, but so it goes.
- *width: 100%;
- *margin: -5px 0 5px;
+ .nav-divider(@dropdownDividerTop, @dropdownDividerBottom);
}
// Links within the dropdown menu
@@ -93,38 +80,63 @@
padding: 3px 15px;
clear: both;
font-weight: normal;
- line-height: 18px;
- color: @gray;
+ line-height: @baseLineHeight;
+ color: @dropdownLinkColor;
white-space: nowrap;
}
}
// Hover state
+// -----------
.dropdown-menu li > a:hover,
.dropdown-menu .active > a,
.dropdown-menu .active > a:hover {
- color: @white;
+ color: @dropdownLinkColorHover;
text-decoration: none;
- background-color: @linkColor;
+ background-color: @dropdownLinkBackgroundHover;
}
// Open state for the dropdown
-.dropdown.open {
+// ---------------------------
+.open {
// IE7's z-index only goes to the nearest positioned ancestor, which would
// make the menu appear below buttons that appeared later on the page
*z-index: @zindexDropdown;
- .dropdown-toggle {
- color: @white;
- background: #ccc;
- background: rgba(0,0,0,.3);
- }
- .dropdown-menu {
+ & > .dropdown-menu {
display: block;
}
}
+// Right aligned dropdowns
+// ---------------------------
+.pull-right > .dropdown-menu {
+ right: 0;
+ left: auto;
+}
+
+// Allow for dropdowns to go bottom up (aka, dropup-menu)
+// ------------------------------------------------------
+// Just add .dropup after the standard .dropdown class and you're set, bro.
+// TODO: abstract this so that the navbar fixed styles are not placed here?
+.dropup,
+.navbar-fixed-bottom .dropdown {
+ // Reverse the caret
+ .caret {
+ border-top: 0;
+ border-bottom: 4px solid @black;
+ content: "\2191";
+ }
+ // Different positioning for bottom up menu
+ .dropdown-menu {
+ top: auto;
+ bottom: 100%;
+ margin-bottom: 1px;
+ }
+}
+
// Typeahead
+// ---------
.typeahead {
margin-top: 2px; // give it some space to breathe
.border-radius(4px);
diff -r f4e720d9f182cb8216fdd2174fe3ab83d0350a24 -r 84c7d3575d9543489aead618c91a6406019a26d9 static/june_2007_style/bootstrap/forms.less
--- a/static/june_2007_style/bootstrap/forms.less
+++ b/static/june_2007_style/bootstrap/forms.less
@@ -27,7 +27,13 @@
line-height: @baseLineHeight * 2;
color: @grayDark;
border: 0;
- border-bottom: 1px solid #eee;
+ border-bottom: 1px solid #e5e5e5;
+
+ // Small
+ small {
+ font-size: @baseLineHeight * .75;
+ color: @grayLight;
+ }
}
// Set font for forms
@@ -36,73 +42,114 @@
button,
select,
textarea {
- #font > .sans-serif(@baseFontSize,normal,@baseLineHeight);
+ #font > .shorthand(@baseFontSize,normal,@baseLineHeight); // Set size, weight, line-height here
+}
+input,
+button,
+select,
+textarea {
+ font-family: @baseFontFamily; // And only set font-family here for those that need it (note the missing label element)
}
// Identify controls by their labels
label {
display: block;
margin-bottom: 5px;
- color: @grayDark;
}
-// Inputs, Textareas, Selects
-input,
+// Form controls
+// -------------------------
+
+// Shared size and type resets
+select,
textarea,
-select,
+input[type="text"],
+input[type="password"],
+input[type="datetime"],
+input[type="datetime-local"],
+input[type="date"],
+input[type="month"],
+input[type="time"],
+input[type="week"],
+input[type="number"],
+input[type="email"],
+input[type="url"],
+input[type="search"],
+input[type="tel"],
+input[type="color"],
.uneditable-input {
display: inline-block;
- width: 210px;
height: @baseLineHeight;
padding: 4px;
margin-bottom: 9px;
font-size: @baseFontSize;
line-height: @baseLineHeight;
color: @gray;
- border: 1px solid @formElementBorder;
- .border-radius(3px);
}
-.uneditable-textarea {
- width: auto;
+
+// Reset appearance properties for textual inputs and textarea
+// Declare width for legacy (can't be on input[type=*] selectors or it's too specific)
+input,
+textarea {
+ width: 210px;
+}
+// Reset height since textareas have rows
+textarea {
height: auto;
}
+// Everything else
+textarea,
+input[type="text"],
+input[type="password"],
+input[type="datetime"],
+input[type="datetime-local"],
+input[type="date"],
+input[type="month"],
+input[type="time"],
+input[type="week"],
+input[type="number"],
+input[type="email"],
+input[type="url"],
+input[type="search"],
+input[type="tel"],
+input[type="color"],
+.uneditable-input {
+ background-color: @inputBackground;
+ border: 1px solid @inputBorder;
+ .border-radius(@inputBorderRadius);
+ .box-shadow(inset 0 1px 1px rgba(0,0,0,.075));
+ @transition: border linear .2s, box-shadow linear .2s;
+ .transition(@transition);
-// Inputs within a label
-label input,
-label textarea,
-label select {
- display: block;
+ // Focus state
+ &:focus {
+ border-color: rgba(82,168,236,.8);
+ outline: 0;
+ outline: thin dotted \9; /* IE6-9 */
+ .box-shadow(~"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6)");
+ }
}
-// Mini reset for unique input types
-input[type="image"],
-input[type="checkbox"],
-input[type="radio"] {
- width: auto;
- height: auto;
- padding: 0;
+// Position radios and checkboxes better
+input[type="radio"],
+input[type="checkbox"] {
margin: 3px 0;
*margin-top: 0; /* IE7 */
line-height: normal;
- border: 0;
cursor: pointer;
- .border-radius(0);
}
-// Reset the file input to browser defaults
-input[type="file"] {
- padding: initial;
- line-height: initial;
- border: initial;
- background-color: @white;
- background-color: initial;
- .box-shadow(none);
+// Reset width of input buttons, radios, checkboxes
+input[type="submit"],
+input[type="reset"],
+input[type="button"],
+input[type="radio"],
+input[type="checkbox"] {
+ width: auto; // Override of generic input selector
}
-// Help out input buttons
-input[type="button"],
-input[type="reset"],
-input[type="submit"] {
+// Make uneditable textareas behave like a textarea
+.uneditable-textarea {
width: auto;
height: auto;
}
@@ -115,10 +162,10 @@
line-height: 28px;
}
-// Chrome on Linux and Mobile Safari need background-color
+// Make select elements obey height by applying a border
select {
width: 220px; // default input width + 10px of padding that doesn't get applied
- background-color: @white;
+ border: 1px solid #bbb;
}
// Make multiple select elements height not fixed
@@ -127,19 +174,12 @@
height: auto;
}
-// Remove shadow from image inputs
-input[type="image"] {
- .box-shadow(none);
-}
-
-// Make textarea height behave
-textarea {
- height: auto;
-}
-
-// Hidden inputs
-input[type="hidden"] {
- display: none;
+// Focus for select, file, radio, and checkbox
+select:focus,
+input[type="file"]:focus,
+input[type="radio"]:focus,
+input[type="checkbox"]:focus {
+ .tab-focus();
}
@@ -150,6 +190,7 @@
// Indent the labels to position radios/checkboxes as hanging
.radio,
.checkbox {
+ min-height: 18px; // clear the floating input if there is no label text
padding-left: 18px;
}
.radio input[type="radio"],
@@ -165,9 +206,11 @@
}
// Radios and checkboxes on same line
+// TODO v3: Convert .inline to .control-inline
.radio.inline,
.checkbox.inline {
display: inline-block;
+ padding-top: 5px;
margin-bottom: 0;
vertical-align: middle;
}
@@ -175,37 +218,6 @@
.checkbox.inline + .checkbox.inline {
margin-left: 10px; // space out consecutive inline controls
}
-// But don't forget to remove their padding on first-child
-.controls > .radio.inline:first-child,
-.controls > .checkbox.inline:first-child {
- padding-top: 0;
-}
-
-
-
-// FOCUS STATE
-// -----------
-
-input,
-textarea {
- .box-shadow(inset 0 1px 1px rgba(0,0,0,.075));
- @transition: border linear .2s, box-shadow linear .2s;
- .transition(@transition);
-}
-input:focus,
-textarea:focus {
- border-color: rgba(82,168,236,.8);
- @shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);
- .box-shadow(@shadow);
- outline: 0;
- outline: thin dotted \9; /* IE6-8 */
-}
-input[type="file"]:focus,
-input[type="checkbox"]:focus,
-select:focus {
- .box-shadow(none); // override for file inputs
- .tab-focus();
-}
@@ -224,18 +236,31 @@
input[class*="span"],
select[class*="span"],
textarea[class*="span"],
-.uneditable-input {
+.uneditable-input[class*="span"],
+// Redeclare since the fluid row class is more specific
+.row-fluid input[class*="span"],
+.row-fluid select[class*="span"],
+.row-fluid textarea[class*="span"],
+.row-fluid .uneditable-input[class*="span"] {
float: none;
margin-left: 0;
}
+// Ensure input-prepend/append never wraps
+.input-append input[class*="span"],
+.input-append .uneditable-input[class*="span"],
+.input-prepend input[class*="span"],
+.input-prepend .uneditable-input[class*="span"],
+.row-fluid .input-prepend [class*="span"],
+.row-fluid .input-append [class*="span"] {
+ display: inline-block;
+}
// GRID SIZING FOR INPUTS
// ----------------------
-#inputGridSystem > .generate(@gridColumns, @gridColumnWidth, @gridGutterWidth);
-
+#grid > .input(@gridColumnWidth, @gridGutterWidth);
@@ -249,9 +274,16 @@
input[readonly],
select[readonly],
textarea[readonly] {
- background-color: #f5f5f5;
+ cursor: not-allowed;
+ background-color: @inputDisabledBackground;
border-color: #ddd;
- cursor: not-allowed;
+}
+// Explicitly reset the colors here
+input[type="radio"][disabled],
+input[type="checkbox"][disabled],
+input[type="radio"][readonly],
+input[type="checkbox"][readonly] {
+ background-color: transparent;
}
@@ -260,33 +292,6 @@
// FORM FIELD FEEDBACK STATES
// --------------------------
-// Mixin for form field states
-.formFieldState(@textColor: #555, @borderColor: @formElementBorder, @backgroundColor: #f5f5f5) {
- // Set the text color
- > label,
- .help-block,
- .help-inline {
- color: @textColor;
- }
- // Style inputs accordingly
- input,
- select,
- textarea {
- color: @textColor;
- border-color: @borderColor;
- &:focus {
- border-color: darken(@borderColor, 10%);
- .box-shadow(0 0 6px lighten(@borderColor, 20%));
- }
- }
- // Give a small background color for input-prepend/-append
- .input-prepend .add-on,
- .input-append .add-on {
- color: @textColor;
- background-color: @backgroundColor;
- border-color: @textColor;
- }
-}
// Warning
.control-group.warning {
.formFieldState(@warningText, @warningText, @warningBackground);
@@ -309,7 +314,7 @@
border-color: #ee5f5b;
&:focus {
border-color: darken(#ee5f5b, 10%);
- .box-shadow(0 0 6px lighten(#ee5f5b, 20%));
+ .box-shadow(0 0 6px lighten(#ee5f5b, 20%));
}
}
@@ -322,37 +327,42 @@
padding: (@baseLineHeight - 1) 20px @baseLineHeight;
margin-top: @baseLineHeight;
margin-bottom: @baseLineHeight;
- background-color: #f5f5f5;
- border-top: 1px solid #ddd;
+ background-color: @formActionsBackground;
+ border-top: 1px solid #e5e5e5;
+ .clearfix(); // Adding clearfix to allow for .pull-right button containers
}
// For text that needs to appear as an input but should not be an input
.uneditable-input {
- display: block;
- background-color: @white;
+ overflow: hidden; // prevent text from wrapping, but still cut it off like an input does
+ white-space: nowrap;
+ cursor: not-allowed;
+ background-color: @inputBackground;
border-color: #eee;
.box-shadow(inset 0 1px 2px rgba(0,0,0,.025));
- cursor: not-allowed;
}
// Placeholder text gets special styles; can't be bundled together though for some reason
-.placeholder(@grayLight);
+.placeholder();
// HELP TEXT
// ---------
+.help-block,
+.help-inline {
+ color: @gray; // lighten the text some for contrast
+}
+
.help-block {
- margin-top: 5px;
- margin-bottom: 0;
- color: @grayLight;
+ display: block; // account for any element using help-block
+ margin-bottom: @baseLineHeight / 2;
}
.help-inline {
display: inline-block;
.ie7-inline-block();
- margin-bottom: 9px;
vertical-align: middle;
padding-left: 5px;
}
@@ -366,12 +376,16 @@
.input-prepend,
.input-append {
margin-bottom: 5px;
- .clearfix(); // Clear the float to prevent wrapping
input,
+ select,
.uneditable-input {
- .border-radius(0 3px 3px 0);
+ position: relative; // placed here by default so that on :focus we can place the input above the .add-on for full border and box-shadow goodness
+ margin-bottom: 0; // prevent bottom margin from screwing up alignment in stacked forms
+ *margin-left: 0;
+ vertical-align: middle;
+ .border-radius(0 @inputBorderRadius @inputBorderRadius 0);
+ // Make input on top when focused so blue border and shadow always show
&:focus {
- position: relative;
z-index: 2;
}
}
@@ -379,21 +393,23 @@
border-left-color: #ccc;
}
.add-on {
- float: left;
- display: block;
+ display: inline-block;
width: auto;
+ height: @baseLineHeight;
min-width: 16px;
- height: @baseLineHeight;
- margin-right: -1px;
padding: 4px 5px;
font-weight: normal;
line-height: @baseLineHeight;
- color: @grayLight;
text-align: center;
text-shadow: 0 1px 0 @white;
- background-color: #f5f5f5;
- border: 1px solid @formElementBorder;
- .border-radius(3px 0 0 3px);
+ vertical-align: middle;
+ background-color: @grayLighter;
+ border: 1px solid #ccc;
+ }
+ .add-on,
+ .btn {
+ margin-left: -1px;
+ .border-radius(0);
}
.active {
background-color: lighten(@green, 30);
@@ -401,32 +417,46 @@
}
}
.input-prepend {
- .add-on {
- *margin-top: 1px; /* IE6-7 */
+ .add-on,
+ .btn {
+ margin-right: -1px;
+ }
+ .add-on:first-child,
+ .btn:first-child {
+ .border-radius(@inputBorderRadius 0 0 @inputBorderRadius);
}
}
.input-append {
input,
+ select,
.uneditable-input {
- float: left;
- .border-radius(3px 0 0 3px);
+ .border-radius(@inputBorderRadius 0 0 @inputBorderRadius);
}
.uneditable-input {
- border-right-color: @formElementBorder;
+ border-right-color: #ccc;
+ border-left-color: #eee;
}
- .add-on {
- margin-right: 0;
+ .add-on:last-child,
+ .btn:last-child {
+ .border-radius(0 @inputBorderRadius @inputBorderRadius 0);
+ }
+}
+// Remove all border-radius for inputs with both prepend and append
+.input-prepend.input-append {
+ input,
+ select,
+ .uneditable-input {
+ .border-radius(0);
+ }
+ .add-on:first-child,
+ .btn:first-child {
+ margin-right: -1px;
+ .border-radius(@inputBorderRadius 0 0 @inputBorderRadius);
+ }
+ .add-on:last-child,
+ .btn:last-child {
margin-left: -1px;
- .border-radius(0 3px 3px 0);
- }
- input:first-child {
- // In IE7, having a hasLayout container (from clearfix's zoom:1) can make the first input
- // inherit the sum of its ancestors' margins.
- *margin-left: -160px;
-
- &+.add-on {
- *margin-left: -21px;
- }
+ .border-radius(0 @inputBorderRadius @inputBorderRadius 0);
}
}
@@ -436,8 +466,10 @@
// -----------
.search-query {
+ padding-right: 14px;
+ padding-right: 4px \9;
padding-left: 14px;
- padding-right: 14px;
+ padding-left: 4px \9; /* IE7-8 doesn't have border-radius, so don't indent the padding */
margin-bottom: 0; // remove the default margin on all inputs
.border-radius(14px);
}
@@ -457,48 +489,71 @@
textarea,
select,
.help-inline,
- .uneditable-input {
+ .uneditable-input,
+ .input-prepend,
+ .input-append {
display: inline-block;
+ .ie7-inline-block();
margin-bottom: 0;
}
+ // Re-hide hidden elements due to specifity
+ .hide {
+ display: none;
+ }
}
.form-search label,
-.form-inline label,
+.form-inline label {
+ display: inline-block;
+}
+// Remove margin for input-prepend/-append
.form-search .input-append,
.form-inline .input-append,
.form-search .input-prepend,
.form-inline .input-prepend {
- display: inline-block;
+ margin-bottom: 0;
}
-// Make the prepend and append add-on vertical-align: middle;
-.form-search .input-append .add-on,
-.form-inline .input-prepend .add-on,
-.form-search .input-append .add-on,
-.form-inline .input-prepend .add-on {
+// Inline checkbox/radio labels (remove padding on left)
+.form-search .radio,
+.form-search .checkbox,
+.form-inline .radio,
+.form-inline .checkbox {
+ padding-left: 0;
+ margin-bottom: 0;
vertical-align: middle;
}
+// Remove float and margin, set to inline-block
+.form-search .radio input[type="radio"],
+.form-search .checkbox input[type="checkbox"],
+.form-inline .radio input[type="radio"],
+.form-inline .checkbox input[type="checkbox"] {
+ float: left;
+ margin-right: 3px;
+ margin-left: 0;
+}
+
// Margin to space out fieldsets
.control-group {
margin-bottom: @baseLineHeight / 2;
}
+// Legend collapses margin, so next element is responsible for spacing
+legend + .control-group {
+ margin-top: @baseLineHeight;
+ -webkit-margin-top-collapse: separate;
+}
+
// Horizontal-specific styles
// --------------------------
.form-horizontal {
- // Legend collapses margin, so we're relegated to padding
- legend + .control-group {
- margin-top: @baseLineHeight;
- -webkit-margin-top-collapse: separate;
- }
// Increase spacing between groups
.control-group {
margin-bottom: @baseLineHeight;
.clearfix();
}
// Float the labels left
- .control-group > label {
+ .control-label {
float: left;
width: 140px;
padding-top: 5px;
@@ -506,7 +561,20 @@
}
// Move over all input controls and content
.controls {
+ // Super jank IE7 fix to ensure the inputs in .input-append and input-prepend
+ // don't inherit the margin of the parent, in this case .controls
+ *display: inline-block;
+ *padding-left: 20px;
margin-left: 160px;
+ *margin-left: 0;
+ &:first-child {
+ *padding-left: 160px;
+ }
+ }
+ // Remove bottom margin on block level help text since that's accounted for on .control-group
+ .help-block {
+ margin-top: @baseLineHeight / 2;
+ margin-bottom: 0;
}
// Move over buttons in .form-actions to align with .controls
.form-actions {
diff -r f4e720d9f182cb8216fdd2174fe3ab83d0350a24 -r 84c7d3575d9543489aead618c91a6406019a26d9 static/june_2007_style/bootstrap/grid.less
--- a/static/june_2007_style/bootstrap/grid.less
+++ b/static/june_2007_style/bootstrap/grid.less
@@ -1,8 +1,5 @@
-// GRID SYSTEM
-// -----------
-
// Fixed (940px)
-#gridSystem > .generate(@gridColumns, @gridColumnWidth, @gridGutterWidth);
+#grid > .core(@gridColumnWidth, @gridGutterWidth);
// Fluid (940px)
-#fluidGridSystem > .generate(@gridColumns, @fluidGridColumnWidth, @fluidGridGutterWidth);
+#grid > .fluid(@fluidGridColumnWidth, @fluidGridGutterWidth);
\ No newline at end of file
diff -r f4e720d9f182cb8216fdd2174fe3ab83d0350a24 -r 84c7d3575d9543489aead618c91a6406019a26d9 static/june_2007_style/bootstrap/hero-unit.less
--- a/static/june_2007_style/bootstrap/hero-unit.less
+++ b/static/june_2007_style/bootstrap/hero-unit.less
@@ -4,17 +4,19 @@
.hero-unit {
padding: 60px;
margin-bottom: 30px;
- background-color: #f5f5f5;
+ background-color: @heroUnitBackground;
.border-radius(6px);
h1 {
margin-bottom: 0;
font-size: 60px;
line-height: 1;
+ color: @heroUnitHeadingColor;
letter-spacing: -1px;
}
p {
font-size: 18px;
font-weight: 200;
line-height: @baseLineHeight * 1.5;
+ color: @heroUnitLeadColor;
}
}
diff -r f4e720d9f182cb8216fdd2174fe3ab83d0350a24 -r 84c7d3575d9543489aead618c91a6406019a26d9 static/june_2007_style/bootstrap/labels-badges.less
--- /dev/null
+++ b/static/june_2007_style/bootstrap/labels-badges.less
@@ -0,0 +1,55 @@
+// LABELS & BADGES
+// ---------------
+
+// Base classes
+.label,
+.badge {
+ font-size: @baseFontSize * .846;
+ font-weight: bold;
+ line-height: 14px; // ensure proper line-height if floated
+ color: @white;
+ vertical-align: baseline;
+ white-space: nowrap;
+ text-shadow: 0 -1px 0 rgba(0,0,0,.25);
+ background-color: @grayLight;
+}
+// Set unique padding and border-radii
+.label {
+ padding: 1px 4px 2px;
+ .border-radius(3px);
+}
+.badge {
+ padding: 1px 9px 2px;
+ .border-radius(9px);
+}
+
+// Hover state, but only for links
+a {
+ &.label:hover,
+ &.badge:hover {
+ color: @white;
+ text-decoration: none;
+ cursor: pointer;
+ }
+}
+
+// Colors
+// Only give background-color difference to links (and to simplify, we don't qualifty with `a` but [href] attribute)
+.label,
+.badge {
+ // Important (red)
+ &-important { background-color: @errorText; }
+ &-important[href] { background-color: darken(@errorText, 10%); }
+ // Warnings (orange)
+ &-warning { background-color: @orange; }
+ &-warning[href] { background-color: darken(@orange, 10%); }
+ // Success (green)
+ &-success { background-color: @successText; }
+ &-success[href] { background-color: darken(@successText, 10%); }
+ // Info (turquoise)
+ &-info { background-color: @infoText; }
+ &-info[href] { background-color: darken(@infoText, 10%); }
+ // Inverse (black)
+ &-inverse { background-color: @grayDark; }
+ &-inverse[href] { background-color: darken(@grayDark, 10%); }
+}
diff -r f4e720d9f182cb8216fdd2174fe3ab83d0350a24 -r 84c7d3575d9543489aead618c91a6406019a26d9 static/june_2007_style/bootstrap/layouts.less
--- a/static/june_2007_style/bootstrap/layouts.less
+++ b/static/june_2007_style/bootstrap/layouts.less
@@ -11,7 +11,7 @@
// Fluid layouts (left aligned, with sidebar, min- & max-width content)
.container-fluid {
+ padding-right: @gridGutterWidth;
padding-left: @gridGutterWidth;
- padding-right: @gridGutterWidth;
.clearfix();
}
\ No newline at end of file
diff -r f4e720d9f182cb8216fdd2174fe3ab83d0350a24 -r 84c7d3575d9543489aead618c91a6406019a26d9 static/june_2007_style/bootstrap/mixins.less
--- a/static/june_2007_style/bootstrap/mixins.less
+++ b/static/june_2007_style/bootstrap/mixins.less
@@ -9,7 +9,7 @@
// Clearfix
// --------
// For clearing floats like a boss h5bp.com/q
-.clearfix() {
+.clearfix {
*zoom: 1;
&:before,
&:after {
@@ -25,7 +25,7 @@
// ------------------
.tab-focus() {
// Default
- outline: thin dotted;
+ outline: thin dotted #333;
// Webkit
outline: 5px auto -webkit-focus-ring-color;
outline-offset: -2px;
@@ -70,25 +70,47 @@
// Sizing shortcuts
// -------------------------
-.size(@height: 5px, @width: 5px) {
+.size(@height, @width) {
width: @width;
height: @height;
}
-.square(@size: 5px) {
+.square(@size) {
.size(@size, @size);
}
// Placeholder text
// -------------------------
.placeholder(@color: @placeholderText) {
- :-moz-placeholder {
+ &:-moz-placeholder {
color: @color;
}
- ::-webkit-input-placeholder {
+ &:-ms-input-placeholder {
+ color: @color;
+ }
+ &::-webkit-input-placeholder {
color: @color;
}
}
+// Text overflow
+// -------------------------
+// Requires inline-block or block for proper styling
+.text-overflow() {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+
+// CSS image replacement
+// -------------------------
+// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757
+.hide-text {
+ font: 0/0 a;
+ color: transparent;
+ text-shadow: none;
+ background-color: transparent;
+ border: 0;
+}
// FONTS
@@ -103,7 +125,7 @@
font-family: @sansFontFamily;
}
.monospace() {
- font-family: @monospaceFontFamily;
+ font-family: @monoFontFamily;
}
}
.shorthand(@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight) {
@@ -126,140 +148,45 @@
}
-
-// GRID SYSTEM
+// FORMS
// --------------------------------------------------
-// Site container
-// -------------------------
-.container-fixed() {
- width: @gridRowWidth;
- margin-left: auto;
- margin-right: auto;
- .clearfix();
+// Block level inputs
+.input-block-level {
+ display: block;
+ width: 100%;
+ min-height: 28px; // Make inputs at least the height of their button counterpart
+ .box-sizing(border-box); // Makes inputs behave like true block-level elements
}
-// Le grid system
-// -------------------------
-#gridSystem {
- // Setup the mixins to be used
- .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, @columns) {
- width: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns - 1));
- }
- .offset(@gridColumnWidth, @gridGutterWidth, @columns) {
- margin-left: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns - 1)) + (@gridGutterWidth * 2);
+
+// Mixin for form field states
+.formFieldState(@textColor: #555, @borderColor: #ccc, @backgroundColor: #f5f5f5) {
+ // Set the text color
+ > label,
+ .help-block,
+ .help-inline {
+ color: @textColor;
}
- .gridColumn(@gridGutterWidth) {
- float: left;
- margin-left: @gridGutterWidth;
- }
- // Take these values and mixins, and make 'em do their thang
- .generate(@gridColumns, @gridColumnWidth, @gridGutterWidth) {
- // Row surrounds the columns
- .row {
- margin-left: @gridGutterWidth * -1;
- .clearfix();
- }
- // Find all .span# classes within .row and give them the necessary properties for grid columns (supported by all browsers back to IE7, thanks @dhg)
- [class*="span"] {
- #gridSystem > .gridColumn(@gridGutterWidth);
- }
- // Default columns
- .span1 { #gridSystem > .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 1); }
- .span2 { #gridSystem > .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 2); }
- .span3 { #gridSystem > .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 3); }
- .span4 { #gridSystem > .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 4); }
- .span5 { #gridSystem > .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 5); }
- .span6 { #gridSystem > .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 6); }
- .span7 { #gridSystem > .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 7); }
- .span8 { #gridSystem > .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 8); }
- .span9 { #gridSystem > .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 9); }
- .span10 { #gridSystem > .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 10); }
- .span11 { #gridSystem > .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 11); }
- .span12,
- .container { #gridSystem > .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 12); }
- // Offset column options
- .offset1 { #gridSystem > .offset(@gridColumnWidth, @gridGutterWidth, 1); }
- .offset2 { #gridSystem > .offset(@gridColumnWidth, @gridGutterWidth, 2); }
- .offset3 { #gridSystem > .offset(@gridColumnWidth, @gridGutterWidth, 3); }
- .offset4 { #gridSystem > .offset(@gridColumnWidth, @gridGutterWidth, 4); }
- .offset5 { #gridSystem > .offset(@gridColumnWidth, @gridGutterWidth, 5); }
- .offset6 { #gridSystem > .offset(@gridColumnWidth, @gridGutterWidth, 6); }
- .offset7 { #gridSystem > .offset(@gridColumnWidth, @gridGutterWidth, 7); }
- .offset8 { #gridSystem > .offset(@gridColumnWidth, @gridGutterWidth, 8); }
- .offset9 { #gridSystem > .offset(@gridColumnWidth, @gridGutterWidth, 9); }
- .offset10 { #gridSystem > .offset(@gridColumnWidth, @gridGutterWidth, 10); }
- .offset11 { #gridSystem > .offset(@gridColumnWidth, @gridGutterWidth, 11); }
- }
-}
-
-// Fluid grid system
-// -------------------------
-#fluidGridSystem {
- // Setup the mixins to be used
- .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, @columns) {
- width: 1% * (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1));
- }
- .gridColumn(@fluidGridGutterWidth) {
- float: left;
- margin-left: @fluidGridGutterWidth;
- }
- // Take these values and mixins, and make 'em do their thang
- .generate(@gridColumns, @fluidGridColumnWidth, @fluidGridGutterWidth) {
- // Row surrounds the columns
- .row-fluid {
- width: 100%;
- .clearfix();
-
- // Find all .span# classes within .row and give them the necessary properties for grid columns (supported by all browsers back to IE7, thanks @dhg)
- > [class*="span"] {
- #fluidGridSystem > .gridColumn(@fluidGridGutterWidth);
- }
- > [class*="span"]:first-child {
- margin-left: 0;
- }
- // Default columns
- .span1 { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 1); }
- .span2 { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 2); }
- .span3 { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 3); }
- .span4 { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 4); }
- .span5 { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 5); }
- .span6 { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 6); }
- .span7 { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 7); }
- .span8 { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 8); }
- .span9 { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 9); }
- .span10 { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 10); }
- .span11 { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 11); }
- .span12 { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 12); }
+ // Style inputs accordingly
+ .checkbox,
+ .radio,
+ input,
+ select,
+ textarea {
+ color: @textColor;
+ border-color: @borderColor;
+ &:focus {
+ border-color: darken(@borderColor, 10%);
+ .box-shadow(0 0 6px lighten(@borderColor, 20%));
}
}
-}
-
-
-
-// Input grid system
-// -------------------------
-#inputGridSystem {
- .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, @columns) {
- width: ((@gridColumnWidth) * @columns) + (@gridGutterWidth * (@columns - 1)) - 10;
- }
- .generate(@gridColumns, @gridColumnWidth, @gridGutterWidth) {
- input,
- textarea,
- .uneditable-input {
- &.span1 { #inputGridSystem > .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 1); }
- &.span2 { #inputGridSystem > .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 2); }
- &.span3 { #inputGridSystem > .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 3); }
- &.span4 { #inputGridSystem > .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 4); }
- &.span5 { #inputGridSystem > .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 5); }
- &.span6 { #inputGridSystem > .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 6); }
- &.span7 { #inputGridSystem > .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 7); }
- &.span8 { #inputGridSystem > .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 8); }
- &.span9 { #inputGridSystem > .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 9); }
- &.span10 { #inputGridSystem > .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 10); }
- &.span11 { #inputGridSystem > .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 11); }
- &.span12 { #inputGridSystem > .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 12); }
- }
+ // Give a small background color for input-prepend/-append
+ .input-prepend .add-on,
+ .input-append .add-on {
+ color: @textColor;
+ background-color: @backgroundColor;
+ border-color: @textColor;
}
}
@@ -269,14 +196,14 @@
// --------------------------------------------------
// Border Radius
-.border-radius(@radius: 5px) {
+.border-radius(@radius) {
-webkit-border-radius: @radius;
-moz-border-radius: @radius;
border-radius: @radius;
}
// Drop shadows
-.box-shadow(@shadow: 0 1px 3px rgba(0,0,0,.25)) {
+.box-shadow(@shadow) {
-webkit-box-shadow: @shadow;
-moz-box-shadow: @shadow;
box-shadow: @shadow;
@@ -306,27 +233,38 @@
-o-transform: scale(@ratio);
transform: scale(@ratio);
}
-.translate(@x: 0, @y: 0) {
+.translate(@x, @y) {
-webkit-transform: translate(@x, @y);
-moz-transform: translate(@x, @y);
-ms-transform: translate(@x, @y);
-o-transform: translate(@x, @y);
transform: translate(@x, @y);
}
-.skew(@x: 0, @y: 0) {
- -webkit-transform: translate(@x, @y);
- -moz-transform: translate(@x, @y);
- -ms-transform: translate(@x, @y);
- -o-transform: translate(@x, @y);
- transform: translate(@x, @y);
-}
-.skew(@x: 0, @y: 0) {
+.skew(@x, @y) {
-webkit-transform: skew(@x, @y);
-moz-transform: skew(@x, @y);
-ms-transform: skew(@x, @y);
-o-transform: skew(@x, @y);
transform: skew(@x, @y);
}
+.translate3d(@x, @y, @z) {
+ -webkit-transform: translate(@x, @y, @z);
+ -moz-transform: translate(@x, @y, @z);
+ -ms-transform: translate(@x, @y, @z);
+ -o-transform: translate(@x, @y, @z);
+ transform: translate(@x, @y, @z);
+}
+
+// Backface visibility
+// Prevent browsers from flickering when using CSS 3D transforms.
+// Default value is `visible`, but can be changed to `hidden
+// See git pull https://github.com/dannykeane/bootstrap.git backface-visibility for examples
+.backface-visibility(@visibility){
+ -webkit-backface-visibility: @visibility;
+ -moz-backface-visibility: @visibility;
+ -ms-backface-visibility: @visibility;
+ backface-visibility: @visibility;
+}
// Background clipping
// Heads up: FF 3.6 and under need "padding" instead of "padding-box"
@@ -349,6 +287,7 @@
.box-sizing(@boxmodel) {
-webkit-box-sizing: @boxmodel;
-moz-box-sizing: @boxmodel;
+ -ms-box-sizing: @boxmodel;
box-sizing: @boxmodel;
}
@@ -357,18 +296,19 @@
.user-select(@select) {
-webkit-user-select: @select;
-moz-user-select: @select;
+ -ms-user-select: @select;
-o-user-select: @select;
user-select: @select;
}
// Resize anything
-.resizable(@direction: both) {
+.resizable(@direction) {
resize: @direction; // Options: horizontal, vertical, both
overflow: auto; // Safari fix
}
// CSS3 Content Columns
-.content-columns(@columnCount, @columnGap: @gridColumnGutter) {
+.content-columns(@columnCount, @columnGap: @gridGutterWidth) {
-webkit-column-count: @columnCount;
-moz-column-count: @columnCount;
column-count: @columnCount;
@@ -377,10 +317,20 @@
column-gap: @columnGap;
}
+// Optional hyphenation
+.hyphens(@mode: auto) {
+ word-wrap: break-word;
+ -webkit-hyphens: @mode;
+ -moz-hyphens: @mode;
+ -ms-hyphens: @mode;
+ -o-hyphens: @mode;
+ hyphens: @mode;
+}
+
// Opacity
-.opacity(@opacity: 100) {
+.opacity(@opacity) {
opacity: @opacity / 100;
- filter: e(%("alpha(opacity=%d)", @opacity));
+ filter: ~"alpha(opacity=@{opacity})";
}
@@ -456,8 +406,8 @@
background-image: -webkit-radial-gradient(circle, @innerColor, @outerColor);
background-image: -moz-radial-gradient(circle, @innerColor, @outerColor);
background-image: -ms-radial-gradient(circle, @innerColor, @outerColor);
+ background-image: -o-radial-gradient(circle, @innerColor, @outerColor);
background-repeat: no-repeat;
- // Opera cannot do radial gradients yet
}
.striped(@color, @angle: -45deg) {
background-color: @color;
@@ -475,16 +425,39 @@
}
-// Mixin for generating button backgrounds
-// ---------------------------------------
+
+// COMPONENT MIXINS
+// --------------------------------------------------
+
+// Horizontal dividers
+// -------------------------
+// Dividers (basically an hr) within dropdowns and nav lists
+.nav-divider(@top: #e5e5e5, @bottom: @white) {
+ // IE7 needs a set width since we gave a height. Restricting just
+ // to IE7 to keep the 1px left/right space in other browsers.
+ // It is unclear where IE is getting the extra space that we need
+ // to negative-margin away, but so it goes.
+ *width: 100%;
+ height: 1px;
+ margin: ((@baseLineHeight / 2) - 1) 1px; // 8px 1px
+ *margin: -5px 0 5px;
+ overflow: hidden;
+ background-color: @top;
+ border-bottom: 1px solid @bottom;
+}
+
+// Button backgrounds
+// ------------------
.buttonBackground(@startColor, @endColor) {
// gradientBar will set the background to a pleasing blend of these, to support IE<=9
.gradientBar(@startColor, @endColor);
+ *background-color: @endColor; /* Darken IE7 buttons by default so they stand out more given they won't have borders */
.reset-filter();
// in these cases the gradient won't cover the background, so we override
&:hover, &:active, &.active, &.disabled, &[disabled] {
background-color: @endColor;
+ *background-color: darken(@endColor, 5%);
}
// IE 7 + 8 can't handle box-shadow to show active, so we darken a bit ourselves
@@ -494,44 +467,180 @@
}
}
+// Navbar vertical align
+// -------------------------
+// Vertically center elements in the navbar.
+// Example: an element has a height of 30px, so write out `.navbarVerticalAlign(30px);` to calculate the appropriate top margin.
+.navbarVerticalAlign(@elementHeight) {
+ margin-top: (@navbarHeight - @elementHeight) / 2;
+}
-// COMPONENT MIXINS
-// --------------------------------------------------
-
-// POPOVER ARROWS
+// Popover arrows
// -------------------------
// For tipsies and popovers
#popoverArrow {
- .top(@arrowWidth: 5px) {
+ .top(@arrowWidth: 5px, @color: @black) {
bottom: 0;
left: 50%;
margin-left: -@arrowWidth;
border-left: @arrowWidth solid transparent;
border-right: @arrowWidth solid transparent;
- border-top: @arrowWidth solid @black;
+ border-top: @arrowWidth solid @color;
}
- .left(@arrowWidth: 5px) {
+ .left(@arrowWidth: 5px, @color: @black) {
top: 50%;
right: 0;
margin-top: -@arrowWidth;
border-top: @arrowWidth solid transparent;
border-bottom: @arrowWidth solid transparent;
- border-left: @arrowWidth solid @black;
+ border-left: @arrowWidth solid @color;
}
- .bottom(@arrowWidth: 5px) {
+ .bottom(@arrowWidth: 5px, @color: @black) {
top: 0;
left: 50%;
margin-left: -@arrowWidth;
border-left: @arrowWidth solid transparent;
border-right: @arrowWidth solid transparent;
- border-bottom: @arrowWidth solid @black;
+ border-bottom: @arrowWidth solid @color;
}
- .right(@arrowWidth: 5px) {
+ .right(@arrowWidth: 5px, @color: @black) {
top: 50%;
left: 0;
margin-top: -@arrowWidth;
border-top: @arrowWidth solid transparent;
border-bottom: @arrowWidth solid transparent;
- border-right: @arrowWidth solid @black;
+ border-right: @arrowWidth solid @color;
}
}
+
+// Grid System
+// -----------
+
+// Centered container element
+.container-fixed() {
+ margin-right: auto;
+ margin-left: auto;
+ .clearfix();
+}
+
+// Table columns
+.tableColumns(@columnSpan: 1) {
+ float: none; // undo default grid column styles
+ width: ((@gridColumnWidth) * @columnSpan) + (@gridGutterWidth * (@columnSpan - 1)) - 16; // 16 is total padding on left and right of table cells
+ margin-left: 0; // undo default grid column styles
+}
+
+// Make a Grid
+// Use .makeRow and .makeColumn to assign semantic layouts grid system behavior
+.makeRow() {
+ margin-left: @gridGutterWidth * -1;
+ .clearfix();
+}
+.makeColumn(@columns: 1, @offset: 0) {
+ float: left;
+ margin-left: (@gridColumnWidth * @offset) + (@gridGutterWidth * (@offset - 1)) + (@gridGutterWidth * 2);
+ width: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns - 1));
+}
+
+// The Grid
+#grid {
+
+ .core (@gridColumnWidth, @gridGutterWidth) {
+
+ .spanX (@index) when (@index > 0) {
+ (~".span@{index}") { .span(@index); }
+ .spanX(@index - 1);
+ }
+ .spanX (0) {}
+
+ .offsetX (@index) when (@index > 0) {
+ (~".offset@{index}") { .offset(@index); }
+ .offsetX(@index - 1);
+ }
+ .offsetX (0) {}
+
+ .offset (@columns) {
+ margin-left: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns + 1));
+ }
+
+ .span (@columns) {
+ width: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns - 1));
+ }
+
+ .row {
+ margin-left: @gridGutterWidth * -1;
+ .clearfix();
+ }
+
+ [class*="span"] {
+ float: left;
+ margin-left: @gridGutterWidth;
+ }
+
+ // Set the container width, and override it for fixed navbars in media queries
+ .container,
+ .navbar-fixed-top .container,
+ .navbar-fixed-bottom .container { .span(@gridColumns); }
+
+ // generate .spanX and .offsetX
+ .spanX (@gridColumns);
+ .offsetX (@gridColumns);
+
+ }
+
+ .fluid (@fluidGridColumnWidth, @fluidGridGutterWidth) {
+
+ .spanX (@index) when (@index > 0) {
+ (~".span@{index}") { .span(@index); }
+ .spanX(@index - 1);
+ }
+ .spanX (0) {}
+
+ .span (@columns) {
+ width: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1));
+ *width: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1)) - (.5 / @gridRowWidth * 100 * 1%);
+ }
+
+ .row-fluid {
+ width: 100%;
+ .clearfix();
+ [class*="span"] {
+ .input-block-level();
+ float: left;
+ margin-left: @fluidGridGutterWidth;
+ *margin-left: @fluidGridGutterWidth - (.5 / @gridRowWidth * 100 * 1%);
+ }
+ [class*="span"]:first-child {
+ margin-left: 0;
+ }
+
+ // generate .spanX
+ .spanX (@gridColumns);
+ }
+
+ }
+
+ .input(@gridColumnWidth, @gridGutterWidth) {
+
+ .spanX (@index) when (@index > 0) {
+ (~"input.span@{index}, textarea.span@{index}, .uneditable-input.span@{index}") { .span(@index); }
+ .spanX(@index - 1);
+ }
+ .spanX (0) {}
+
+ .span(@columns) {
+ width: ((@gridColumnWidth) * @columns) + (@gridGutterWidth * (@columns - 1)) - 10;
+ }
+
+ input,
+ textarea,
+ .uneditable-input {
+ margin-left: 0; // override margin-left from core grid system
+ }
+
+ // generate .spanX
+ .spanX (@gridColumns);
+
+ }
+
+}
diff -r f4e720d9f182cb8216fdd2174fe3ab83d0350a24 -r 84c7d3575d9543489aead618c91a6406019a26d9 static/june_2007_style/bootstrap/modals.less
--- a/static/june_2007_style/bootstrap/modals.less
+++ b/static/june_2007_style/bootstrap/modals.less
@@ -1,6 +1,7 @@
// MODALS
// ------
+// Recalculate z-index where appropriate
.modal-open {
.dropdown-menu { z-index: @zindexDropdown + @zindexModal; }
.dropdown.open { *z-index: @zindexDropdown + @zindexModal; }
@@ -8,6 +9,7 @@
.tooltip { z-index: @zindexTooltip + @zindexModal; }
}
+// Background
.modal-backdrop {
position: fixed;
top: 0;
@@ -25,12 +27,12 @@
.opacity(80);
}
+// Base modal
.modal {
position: fixed;
top: 50%;
left: 50%;
z-index: @zindexModal;
- max-height: 500px;
overflow: auto;
width: 560px;
margin: -250px 0 0 -280px;
@@ -53,20 +55,36 @@
// Close icon
.close { margin-top: 2px; }
}
+
+// Body (where all modal content resides)
.modal-body {
+ overflow-y: auto;
+ max-height: 400px;
padding: 15px;
}
+// Remove bottom margin if need be
+.modal-form {
+ margin-bottom: 0;
+}
+
+// Footer (for actions)
.modal-footer {
padding: 14px 15px 15px;
margin-bottom: 0;
+ text-align: right; // right align buttons
background-color: #f5f5f5;
border-top: 1px solid #ddd;
.border-radius(0 0 6px 6px);
.box-shadow(inset 0 1px 0 @white);
- .clearfix();
- .btn {
- float: right;
+ .clearfix(); // clear it in case folks use .pull-* classes on buttons
+
+ // Properly space out buttons
+ .btn + .btn {
margin-left: 5px;
margin-bottom: 0; // account for input[type="submit"] which gets the bottom margin like all other inputs
}
+ // but override that for button groups
+ .btn-group .btn + .btn {
+ margin-left: -1px;
+ }
}
diff -r f4e720d9f182cb8216fdd2174fe3ab83d0350a24 -r 84c7d3575d9543489aead618c91a6406019a26d9 static/june_2007_style/bootstrap/navbar.less
--- a/static/june_2007_style/bootstrap/navbar.less
+++ b/static/june_2007_style/bootstrap/navbar.less
@@ -6,42 +6,30 @@
// -------------
.navbar {
+ // Fix for IE7's bad z-indexing so dropdowns don't appear below content that follows the navbar
+ *position: relative;
+ *z-index: 2;
+
overflow: visible;
margin-bottom: @baseLineHeight;
}
// Gradient is applied to it's own element because overflow visible is not honored by IE when filter is present
.navbar-inner {
+ min-height: @navbarHeight;
padding-left: 20px;
padding-right: 20px;
#gradient > .vertical(@navbarBackgroundHighlight, @navbarBackground);
.border-radius(4px);
- @shadow: 0 1px 3px rgba(0,0,0,.25), inset 0 -1px 0 rgba(0,0,0,.1);
- .box-shadow(@shadow);
+ .box-shadow(~"0 1px 3px rgba(0,0,0,.25), inset 0 -1px 0 rgba(0,0,0,.1)");
}
-// Navbar button for toggling navbar items in responsive layouts
-.btn-navbar {
- display: none;
- float: right;
- padding: 7px 10px;
- margin-left: 5px;
- margin-right: 5px;
- .buttonBackground(@navbarBackgroundHighlight, @navbarBackground);
- @shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);
- .box-shadow(@shadow);
+// Set width to auto for default container
+// We then reset it for fixed navbars in the #gridSystem mixin
+.navbar .container {
+ width: auto;
}
-.btn-navbar .icon-bar {
- display: block;
- width: 18px;
- height: 2px;
- background-color: #f5f5f5;
- .border-radius(1px);
- .box-shadow(0 1px 0 rgba(0,0,0,.25));
-}
-.btn-navbar .icon-bar + .icon-bar {
- margin-top: 3px;
-}
+
// Override the default collapsed state
.nav-collapse.collapse {
height: auto;
@@ -50,6 +38,7 @@
// Brand, links, text, and buttons
.navbar {
+ color: @navbarText;
// Hover and active states
.brand:hover {
text-decoration: none;
@@ -58,30 +47,34 @@
.brand {
float: left;
display: block;
- padding: 8px 20px 12px;
+ // Vertically center the text given @navbarHeight
+ @elementHeight: 20px;
+ padding: ((@navbarHeight - @elementHeight) / 2 - 2) 20px ((@navbarHeight - @elementHeight) / 2 + 2);
margin-left: -20px; // negative indent to left-align the text down the page
font-size: 20px;
font-weight: 200;
line-height: 1;
- color: @white;
+ color: @navbarBrandColor;
}
// Plain text in topbar
.navbar-text {
margin-bottom: 0;
- line-height: 40px;
- color: @navbarText;
- a:hover {
- color: @white;
- background-color: transparent;
+ line-height: @navbarHeight;
+ }
+ // Janky solution for now to account for links outside the .nav
+ .navbar-link {
+ color: @navbarLinkColor;
+ &:hover {
+ color: @navbarLinkColorHover;
}
}
// Buttons in navbar
.btn,
.btn-group {
- margin-top: 5px; // make buttons vertically centered in navbar
+ .navbarVerticalAlign(30px); // Vertically center in navbar
}
.btn-group .btn {
- margin-top: 0;
+ margin: 0; // then undo the margin here so we don't accidentally double it
}
}
@@ -90,56 +83,55 @@
margin-bottom: 0; // remove default bottom margin
.clearfix();
input,
+ select,
+ .radio,
+ .checkbox {
+ .navbarVerticalAlign(30px); // Vertically center in navbar
+ }
+ input,
select {
display: inline-block;
- margin-top: 5px;
margin-bottom: 0;
}
- .radio,
- .checkbox {
- margin-top: 5px;
- }
input[type="image"],
input[type="checkbox"],
input[type="radio"] {
margin-top: 3px;
}
+ .input-append,
+ .input-prepend {
+ margin-top: 6px;
+ white-space: nowrap; // preven two items from separating within a .navbar-form that has .pull-left
+ input {
+ margin-top: 0; // remove the margin on top since it's on the parent
+ }
+ }
}
// Navbar search
.navbar-search {
position: relative;
float: left;
- margin-top: 6px;
+ .navbarVerticalAlign(28px); // Vertically center in navbar
margin-bottom: 0;
.search-query {
padding: 4px 9px;
#font > .sans-serif(13px, normal, 1);
color: @white;
- color: rgba(255,255,255,.75);
- background: #666;
- background: rgba(255,255,255,.3);
- border: 1px solid #111;
- @shadow: inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0px rgba(255,255,255,.15);
- .box-shadow(@shadow);
+ background-color: @navbarSearchBackground;
+ border: 1px solid @navbarSearchBorder;
+ .box-shadow(~"inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15)");
.transition(none);
- // Placeholder text gets special styles; can't be bundled together though for some reason
- .placeholder(@grayLighter);
+ .placeholder(@navbarSearchPlaceholderColor);
- // Hover states
- &:hover {
- color: @white;
- background-color: @grayLight;
- background-color: rgba(255,255,255,.5);
- }
- // Focus states (we use .focused since IE8 and down doesn't support :focus)
+ // Focus states (we use .focused since IE7-8 and down doesn't support :focus)
&:focus,
&.focused {
padding: 5px 10px;
color: @grayDark;
text-shadow: 0 1px 0 @white;
- background-color: @white;
+ background-color: @navbarSearchBackgroundFocus;
border: 0;
.box-shadow(0 0 3px rgba(0,0,0,.15));
outline: 0;
@@ -148,22 +140,42 @@
}
+
// FIXED NAVBAR
// ------------
-.navbar-fixed-top {
+// Shared (top/bottom) styles
+.navbar-fixed-top,
+.navbar-fixed-bottom {
position: fixed;
- top: 0;
right: 0;
left: 0;
z-index: @zindexFixedNavbar;
+ margin-bottom: 0; // remove 18px margin for static navbar
}
-.navbar-fixed-top .navbar-inner {
+.navbar-fixed-top .navbar-inner,
+.navbar-fixed-bottom .navbar-inner {
padding-left: 0;
padding-right: 0;
.border-radius(0);
}
+.navbar-fixed-top .container,
+.navbar-fixed-bottom .container {
+ #grid > .core > .span(@gridColumns);
+}
+
+// Fixed to top
+.navbar-fixed-top {
+ top: 0;
+}
+
+// Fixed to bottom
+.navbar-fixed-bottom {
+ bottom: 0;
+}
+
+
// NAVIGATION
// ----------
@@ -186,15 +198,32 @@
// Links
.navbar .nav > li > a {
float: none;
- padding: 10px 10px 11px;
+ // Vertically center the text given @navbarHeight
+ @elementHeight: 20px;
+ padding: ((@navbarHeight - @elementHeight) / 2 - 1) 10px ((@navbarHeight - @elementHeight) / 2 + 1);
line-height: 19px;
color: @navbarLinkColor;
text-decoration: none;
text-shadow: 0 -1px 0 rgba(0,0,0,.25);
}
+// Buttons
+.navbar .btn {
+ display: inline-block;
+ padding: 4px 10px 4px;
+ // Vertically center the button given @navbarHeight
+ @elementHeight: 28px;
+ margin: ((@navbarHeight - @elementHeight) / 2 - 1) 5px ((@navbarHeight - @elementHeight) / 2);
+ line-height: @baseLineHeight;
+}
+.navbar .btn-group {
+ margin: 0;
+ // Vertically center the button given @navbarHeight
+ @elementHeight: 28px;
+ padding: ((@navbarHeight - @elementHeight) / 2 - 1) 5px ((@navbarHeight - @elementHeight) / 2);
+}
// Hover
.navbar .nav > li > a:hover {
- background-color: transparent;
+ background-color: @navbarLinkBackgroundHover; // "transparent" is default to differentiate :hover from .active
color: @navbarLinkColorHover;
text-decoration: none;
}
@@ -202,10 +231,9 @@
// Active nav items
.navbar .nav .active > a,
.navbar .nav .active > a:hover {
- color: @navbarLinkColorHover;
+ color: @navbarLinkColorActive;
text-decoration: none;
- background-color: @navbarBackground;
- background-color: rgba(0,0,0,.5);
+ background-color: @navbarLinkBackgroundActive;
}
// Dividers (basically a vertical hr)
@@ -224,6 +252,28 @@
margin-right: 0;
}
+// Navbar button for toggling navbar items in responsive layouts
+// These definitions need to come after '.navbar .btn'
+.navbar .btn-navbar {
+ display: none;
+ float: right;
+ padding: 7px 10px;
+ margin-left: 5px;
+ margin-right: 5px;
+ .buttonBackground(@navbarBackgroundHighlight, @navbarBackground);
+ .box-shadow(~"inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075)");
+}
+.navbar .btn-navbar .icon-bar {
+ display: block;
+ width: 18px;
+ height: 2px;
+ background-color: #f5f5f5;
+ .border-radius(1px);
+ .box-shadow(0 1px 0 rgba(0,0,0,.25));
+}
+.btn-navbar .icon-bar + .icon-bar {
+ margin-top: 3px;
+}
// Dropdown menus
@@ -231,15 +281,13 @@
// Menu position and menu carets
.navbar .dropdown-menu {
- margin-top: 1px;
- .border-radius(4px);
&:before {
content: '';
display: inline-block;
border-left: 7px solid transparent;
border-right: 7px solid transparent;
border-bottom: 7px solid #ccc;
- border-bottom-color: rgba(0,0,0,.2);
+ border-bottom-color: @dropdownBorder;
position: absolute;
top: -7px;
left: 9px;
@@ -249,36 +297,54 @@
display: inline-block;
border-left: 6px solid transparent;
border-right: 6px solid transparent;
- border-bottom: 6px solid @white;
+ border-bottom: 6px solid @dropdownBackground;
position: absolute;
top: -6px;
left: 10px;
}
}
-
+// Menu position and menu caret support for dropups via extra dropup class
+.navbar-fixed-bottom .dropdown-menu {
+ &:before {
+ border-top: 7px solid #ccc;
+ border-top-color: @dropdownBorder;
+ border-bottom: 0;
+ bottom: -7px;
+ top: auto;
+ }
+ &:after {
+ border-top: 6px solid @dropdownBackground;
+ border-bottom: 0;
+ bottom: -6px;
+ top: auto;
+ }
+}
// Dropdown toggle caret
-.navbar .nav .dropdown-toggle .caret,
-.navbar .nav .open.dropdown .caret {
+.navbar .nav li.dropdown .dropdown-toggle .caret,
+.navbar .nav li.dropdown.open .caret {
border-top-color: @white;
+ border-bottom-color: @white;
}
-.navbar .nav .active .caret {
+.navbar .nav li.dropdown.active .caret {
.opacity(100);
}
// Remove background color from open dropdown
-.navbar .nav .open > .dropdown-toggle,
-.navbar .nav .active > .dropdown-toggle,
-.navbar .nav .open.active > .dropdown-toggle {
+.navbar .nav li.dropdown.open > .dropdown-toggle,
+.navbar .nav li.dropdown.active > .dropdown-toggle,
+.navbar .nav li.dropdown.open.active > .dropdown-toggle {
background-color: transparent;
}
// Dropdown link on hover
-.navbar .nav .active > .dropdown-toggle:hover {
+.navbar .nav li.dropdown.active > .dropdown-toggle:hover {
color: @white;
}
// Right aligned menus need alt position
-.navbar .nav.pull-right .dropdown-menu {
+// TODO: rejigger this at some point to simplify the selectors
+.navbar .pull-right .dropdown-menu,
+.navbar .dropdown-menu.pull-right {
left: auto;
right: 0;
&:before {
diff -r f4e720d9f182cb8216fdd2174fe3ab83d0350a24 -r 84c7d3575d9543489aead618c91a6406019a26d9 static/june_2007_style/bootstrap/navs.less
--- a/static/june_2007_style/bootstrap/navs.less
+++ b/static/june_2007_style/bootstrap/navs.less
@@ -21,36 +21,47 @@
background-color: @grayLighter;
}
+// Redeclare pull classes because of specifity
+.nav > .pull-right {
+ float: right;
+}
+
+// Nav headers (for dropdowns and lists)
+.nav .nav-header {
+ display: block;
+ padding: 3px 15px;
+ font-size: 11px;
+ font-weight: bold;
+ line-height: @baseLineHeight;
+ color: @grayLight;
+ text-shadow: 0 1px 0 rgba(255,255,255,.5);
+ text-transform: uppercase;
+}
+// Space them out when they follow another list item (link)
+.nav li + .nav-header {
+ margin-top: 9px;
+}
// NAV LIST
// --------
.nav-list {
- padding-left: 14px;
- padding-right: 14px;
+ padding-left: 15px;
+ padding-right: 15px;
margin-bottom: 0;
}
.nav-list > li > a,
.nav-list .nav-header {
- display: block;
- padding: 3px 15px;
margin-left: -15px;
margin-right: -15px;
text-shadow: 0 1px 0 rgba(255,255,255,.5);
}
-.nav-list .nav-header {
- font-size: 11px;
- font-weight: bold;
- line-height: @baseLineHeight;
- color: @grayLight;
- text-transform: uppercase;
+.nav-list > li > a {
+ padding: 3px 15px;
}
-.nav-list > li + .nav-header {
- margin-top: 9px;
-}
-.nav-list .active > a,
-.nav-list .active > a:hover {
+.nav-list > .active > a,
+.nav-list > .active > a:hover {
color: @white;
text-shadow: 0 -1px 0 rgba(0,0,0,.2);
background-color: @linkColor;
@@ -58,6 +69,10 @@
.nav-list [class^="icon-"] {
margin-right: 2px;
}
+// Dividers (basically an hr) within the dropdown
+.nav-list .divider {
+ .nav-divider();
+}
@@ -88,16 +103,15 @@
.nav-tabs {
border-bottom: 1px solid #ddd;
}
-
// Make the list-items overlay the bottom border
.nav-tabs > li {
margin-bottom: -1px;
}
-
// Actual tabs (as links)
.nav-tabs > li > a {
- padding-top: 9px;
- padding-bottom: 9px;
+ padding-top: 8px;
+ padding-bottom: 8px;
+ line-height: @baseLineHeight;
border: 1px solid transparent;
.border-radius(4px 4px 0 0);
&:hover {
@@ -114,6 +128,7 @@
cursor: default;
}
+
// PILLS
// -----
@@ -127,8 +142,8 @@
}
// Active state
-.nav-pills .active > a,
-.nav-pills .active > a:hover {
+.nav-pills > .active > a,
+.nav-pills > .active > a:hover {
color: @white;
background-color: @linkColor;
}
@@ -178,14 +193,11 @@
// DROPDOWNS
// ---------
-// Position the menu
-.nav-tabs .dropdown-menu,
-.nav-pills .dropdown-menu {
- margin-top: 1px;
- border-width: 1px;
+.nav-tabs .dropdown-menu {
+ .border-radius(0 0 5px 5px); // remove the top rounded corners here since there is a hard edge above the menu
}
.nav-pills .dropdown-menu {
- .border-radius(4px);
+ .border-radius(4px); // make rounded corners match the pills
}
// Default dropdown links
@@ -194,11 +206,13 @@
.nav-tabs .dropdown-toggle .caret,
.nav-pills .dropdown-toggle .caret {
border-top-color: @linkColor;
+ border-bottom-color: @linkColor;
margin-top: 6px;
}
.nav-tabs .dropdown-toggle:hover .caret,
.nav-pills .dropdown-toggle:hover .caret {
border-top-color: @linkColorHover;
+ border-bottom-color: @linkColorHover;
}
// Active dropdown links
@@ -206,6 +220,7 @@
.nav-tabs .active .dropdown-toggle .caret,
.nav-pills .active .dropdown-toggle .caret {
border-top-color: @grayDark;
+ border-bottom-color: @grayDark;
}
// Active:hover dropdown links
@@ -219,15 +234,16 @@
// -------------------------
.nav-tabs .open .dropdown-toggle,
.nav-pills .open .dropdown-toggle,
-.nav > .open.active > a:hover {
+.nav > li.dropdown.open.active > a:hover {
color: @white;
background-color: @grayLight;
border-color: @grayLight;
}
-.nav .open .caret,
-.nav .open.active .caret,
-.nav .open a:hover .caret {
+.nav li.dropdown.open .caret,
+.nav li.dropdown.open.active .caret,
+.nav li.dropdown.open a:hover .caret {
border-top-color: @white;
+ border-bottom-color: @white;
.opacity(100);
}
@@ -249,11 +265,14 @@
.tabbable {
.clearfix();
}
+.tab-content {
+ overflow: auto; // prevent content from running below tabs
+}
// Remove border on bottom, left, right
-.tabs-below .nav-tabs,
-.tabs-right .nav-tabs,
-.tabs-left .nav-tabs {
+.tabs-below > .nav-tabs,
+.tabs-right > .nav-tabs,
+.tabs-left > .nav-tabs {
border-bottom: 0;
}
@@ -271,22 +290,22 @@
// BOTTOM
// ------
-.tabs-below .nav-tabs {
+.tabs-below > .nav-tabs {
border-top: 1px solid #ddd;
}
-.tabs-below .nav-tabs > li {
+.tabs-below > .nav-tabs > li {
margin-top: -1px;
margin-bottom: 0;
}
-.tabs-below .nav-tabs > li > a {
+.tabs-below > .nav-tabs > li > a {
.border-radius(0 0 4px 4px);
&:hover {
border-bottom-color: transparent;
border-top-color: #ddd;
}
}
-.tabs-below .nav-tabs .active > a,
-.tabs-below .nav-tabs .active > a:hover {
+.tabs-below > .nav-tabs > .active > a,
+.tabs-below > .nav-tabs > .active > a:hover {
border-color: transparent #ddd #ddd #ddd;
}
@@ -294,51 +313,51 @@
// ------------
// Common styles
-.tabs-left .nav-tabs > li,
-.tabs-right .nav-tabs > li {
+.tabs-left > .nav-tabs > li,
+.tabs-right > .nav-tabs > li {
float: none;
}
-.tabs-left .nav-tabs > li > a,
-.tabs-right .nav-tabs > li > a {
+.tabs-left > .nav-tabs > li > a,
+.tabs-right > .nav-tabs > li > a {
min-width: 74px;
margin-right: 0;
margin-bottom: 3px;
}
// Tabs on the left
-.tabs-left .nav-tabs {
+.tabs-left > .nav-tabs {
float: left;
margin-right: 19px;
border-right: 1px solid #ddd;
}
-.tabs-left .nav-tabs > li > a {
+.tabs-left > .nav-tabs > li > a {
margin-right: -1px;
.border-radius(4px 0 0 4px);
}
-.tabs-left .nav-tabs > li > a:hover {
+.tabs-left > .nav-tabs > li > a:hover {
border-color: @grayLighter #ddd @grayLighter @grayLighter;
}
-.tabs-left .nav-tabs .active > a,
-.tabs-left .nav-tabs .active > a:hover {
+.tabs-left > .nav-tabs .active > a,
+.tabs-left > .nav-tabs .active > a:hover {
border-color: #ddd transparent #ddd #ddd;
*border-right-color: @white;
}
// Tabs on the right
-.tabs-right .nav-tabs {
+.tabs-right > .nav-tabs {
float: right;
margin-left: 19px;
border-left: 1px solid #ddd;
}
-.tabs-right .nav-tabs > li > a {
+.tabs-right > .nav-tabs > li > a {
margin-left: -1px;
.border-radius(0 4px 4px 0);
}
-.tabs-right .nav-tabs > li > a:hover {
+.tabs-right > .nav-tabs > li > a:hover {
border-color: @grayLighter @grayLighter @grayLighter #ddd;
}
-.tabs-right .nav-tabs .active > a,
-.tabs-right .nav-tabs .active > a:hover {
+.tabs-right > .nav-tabs .active > a,
+.tabs-right > .nav-tabs .active > a:hover {
border-color: #ddd #ddd #ddd transparent;
*border-left-color: @white;
}
diff -r f4e720d9f182cb8216fdd2174fe3ab83d0350a24 -r 84c7d3575d9543489aead618c91a6406019a26d9 static/june_2007_style/bootstrap/pager.less
--- a/static/june_2007_style/bootstrap/pager.less
+++ b/static/june_2007_style/bootstrap/pager.less
@@ -28,3 +28,9 @@
.pager .previous a {
float: left;
}
+.pager .disabled a,
+.pager .disabled a:hover {
+ color: @grayLight;
+ background-color: #fff;
+ cursor: default;
+}
\ No newline at end of file
diff -r f4e720d9f182cb8216fdd2174fe3ab83d0350a24 -r 84c7d3575d9543489aead618c91a6406019a26d9 static/june_2007_style/bootstrap/pagination.less
--- a/static/june_2007_style/bootstrap/pagination.less
+++ b/static/june_2007_style/bootstrap/pagination.less
@@ -32,6 +32,7 @@
color: @grayLight;
cursor: default;
}
+.pagination .disabled span,
.pagination .disabled a,
.pagination .disabled a:hover {
color: @grayLight;
diff -r f4e720d9f182cb8216fdd2174fe3ab83d0350a24 -r 84c7d3575d9543489aead618c91a6406019a26d9 static/june_2007_style/bootstrap/progress-bars.less
--- a/static/june_2007_style/bootstrap/progress-bars.less
+++ b/static/june_2007_style/bootstrap/progress-bars.less
@@ -7,20 +7,32 @@
// Webkit
@-webkit-keyframes progress-bar-stripes {
- from { background-position: 0 0; }
- to { background-position: 40px 0; }
+ from { background-position: 40px 0; }
+ to { background-position: 0 0; }
}
// Firefox
@-moz-keyframes progress-bar-stripes {
+ from { background-position: 40px 0; }
+ to { background-position: 0 0; }
+}
+
+// IE9
+@-ms-keyframes progress-bar-stripes {
+ from { background-position: 40px 0; }
+ to { background-position: 0 0; }
+}
+
+// Opera
+@-o-keyframes progress-bar-stripes {
from { background-position: 0 0; }
to { background-position: 40px 0; }
}
// Spec
@keyframes progress-bar-stripes {
- from { background-position: 0 0; }
- to { background-position: 40px 0; }
+ from { background-position: 40px 0; }
+ to { background-position: 0 0; }
}
@@ -54,7 +66,7 @@
// Striped bars
.progress-striped .bar {
- #gradient > .striped(#62c462);
+ #gradient > .striped(#149bdf);
.background-size(40px 40px);
}
@@ -62,6 +74,8 @@
.progress.active .bar {
-webkit-animation: progress-bar-stripes 2s linear infinite;
-moz-animation: progress-bar-stripes 2s linear infinite;
+ -ms-animation: progress-bar-stripes 2s linear infinite;
+ -o-animation: progress-bar-stripes 2s linear infinite;
animation: progress-bar-stripes 2s linear infinite;
}
@@ -93,3 +107,11 @@
.progress-info.progress-striped .bar {
#gradient > .striped(#5bc0de);
}
+
+// Warning (orange)
+.progress-warning .bar {
+ #gradient > .vertical(lighten(@orange, 15%), @orange);
+}
+.progress-warning.progress-striped .bar {
+ #gradient > .striped(lighten(@orange, 15%));
+}
diff -r f4e720d9f182cb8216fdd2174fe3ab83d0350a24 -r 84c7d3575d9543489aead618c91a6406019a26d9 static/june_2007_style/bootstrap/reset.less
--- a/static/june_2007_style/bootstrap/reset.less
+++ b/static/june_2007_style/bootstrap/reset.less
@@ -75,12 +75,17 @@
// -------------------------
img {
- max-width: 100%;
- height: auto;
+ max-width: 100%; // Make images inherently responsive
+ vertical-align: middle;
border: 0;
-ms-interpolation-mode: bicubic;
}
+// Prevent max-width from affecting Google Maps
+#map_canvas img {
+ max-width: none;
+}
+
// Forms
// -------------------------
@@ -93,11 +98,6 @@
font-size: 100%;
vertical-align: middle;
}
-// Use Webkit margins for checkboxs and radio buttons.
-input[type="checkbox"],input[type="radio"] {
- margin-left: 0.5ex;
- margin-right: 0.5ex;
-}
button,
input {
*overflow: visible; // Inner spacing ie IE6/7
@@ -113,13 +113,13 @@
input[type="reset"],
input[type="submit"] {
cursor: pointer; // Cursors on all buttons applied consistently
- -webkit-appearance: button; // Style clicable inputs in iOS
+ -webkit-appearance: button; // Style clickable inputs in iOS
}
input[type="search"] { // Appearance in Safari/Chrome
- -webkit-appearance: textfield;
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
box-sizing: content-box;
+ -webkit-appearance: textfield;
}
input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button {
diff -r f4e720d9f182cb8216fdd2174fe3ab83d0350a24 -r 84c7d3575d9543489aead618c91a6406019a26d9 static/june_2007_style/bootstrap/responsive-1200px-min.less
--- /dev/null
+++ b/static/june_2007_style/bootstrap/responsive-1200px-min.less
@@ -0,0 +1,26 @@
+// LARGE DESKTOP & UP
+// ------------------
+
+@media (min-width: 1200px) {
+
+ // Fixed grid
+ #grid > .core(70px, 30px);
+
+ // Fluid grid
+ #grid > .fluid(5.982905983%, 2.564102564%);
+
+ // Input grid
+ #grid > .input(70px, 30px);
+
+ // Thumbnails
+ .thumbnails {
+ margin-left: -30px;
+ }
+ .thumbnails > li {
+ margin-left: 30px;
+ }
+ .row-fluid .thumbnails {
+ margin-left: 0;
+ }
+
+}
diff -r f4e720d9f182cb8216fdd2174fe3ab83d0350a24 -r 84c7d3575d9543489aead618c91a6406019a26d9 static/june_2007_style/bootstrap/responsive-767px-max.less
--- /dev/null
+++ b/static/june_2007_style/bootstrap/responsive-767px-max.less
@@ -0,0 +1,149 @@
+// UP TO LANDSCAPE PHONE
+// ---------------------
+
+@media (max-width: 480px) {
+
+ // Smooth out the collapsing/expanding nav
+ .nav-collapse {
+ -webkit-transform: translate3d(0, 0, 0); // activate the GPU
+ }
+
+ // Block level the page header small tag for readability
+ .page-header h1 small {
+ display: block;
+ line-height: @baseLineHeight;
+ }
+
+ // Update checkboxes for iOS
+ input[type="checkbox"],
+ input[type="radio"] {
+ border: 1px solid #ccc;
+ }
+
+ // Remove the horizontal form styles
+ .form-horizontal .control-group > label {
+ float: none;
+ width: auto;
+ padding-top: 0;
+ text-align: left;
+ }
+ // Move over all input controls and content
+ .form-horizontal .controls {
+ margin-left: 0;
+ }
+ // Move the options list down to align with labels
+ .form-horizontal .control-list {
+ padding-top: 0; // has to be padding because margin collaspes
+ }
+ // Move over buttons in .form-actions to align with .controls
+ .form-horizontal .form-actions {
+ padding-left: 10px;
+ padding-right: 10px;
+ }
+
+ // Modals
+ .modal {
+ position: absolute;
+ top: 10px;
+ left: 10px;
+ right: 10px;
+ width: auto;
+ margin: 0;
+ &.fade.in { top: auto; }
+ }
+ .modal-header .close {
+ padding: 10px;
+ margin: -10px;
+ }
+
+ // Carousel
+ .carousel-caption {
+ position: static;
+ }
+
+}
+
+
+
+// LANDSCAPE PHONE TO SMALL DESKTOP & PORTRAIT TABLET
+// --------------------------------------------------
+
+@media (max-width: 767px) {
+
+ // Padding to set content in a bit
+ body {
+ padding-left: 20px;
+ padding-right: 20px;
+ }
+ // Negative indent the now static "fixed" navbar
+ .navbar-fixed-top,
+ .navbar-fixed-bottom {
+ margin-left: -20px;
+ margin-right: -20px;
+ }
+ // Remove padding on container given explicit padding set on body
+ .container-fluid {
+ padding: 0;
+ }
+
+ // TYPOGRAPHY
+ // ----------
+ // Reset horizontal dl
+ .dl-horizontal {
+ dt {
+ float: none;
+ clear: none;
+ width: auto;
+ text-align: left;
+ }
+ dd {
+ margin-left: 0;
+ }
+ }
+
+ // GRID & CONTAINERS
+ // -----------------
+ // Remove width from containers
+ .container {
+ width: auto;
+ }
+ // Fluid rows
+ .row-fluid {
+ width: 100%;
+ }
+ // Undo negative margin on rows and thumbnails
+ .row,
+ .thumbnails {
+ margin-left: 0;
+ }
+ // Make all grid-sized elements block level again
+ [class*="span"],
+ .row-fluid [class*="span"] {
+ float: none;
+ display: block;
+ width: auto;
+ margin-left: 0;
+ }
+
+ // FORM FIELDS
+ // -----------
+ // Make span* classes full width
+ .input-large,
+ .input-xlarge,
+ .input-xxlarge,
+ input[class*="span"],
+ select[class*="span"],
+ textarea[class*="span"],
+ .uneditable-input {
+ .input-block-level();
+ }
+ // But don't let it screw up prepend/append inputs
+ .input-prepend input,
+ .input-append input,
+ .input-prepend input[class*="span"],
+ .input-append input[class*="span"] {
+ display: inline-block; // redeclare so they don't wrap to new lines
+ width: auto;
+ }
+
+}
diff -r f4e720d9f182cb8216fdd2174fe3ab83d0350a24 -r 84c7d3575d9543489aead618c91a6406019a26d9 static/june_2007_style/bootstrap/responsive-768px-979px.less
--- /dev/null
+++ b/static/june_2007_style/bootstrap/responsive-768px-979px.less
@@ -0,0 +1,17 @@
+// PORTRAIT TABLET TO DEFAULT DESKTOP
+// ----------------------------------
+
+@media (min-width: 768px) and (max-width: 979px) {
+
+ // Fixed grid
+ #grid > .core(42px, 20px);
+
+ // Fluid grid
+ #grid > .fluid(5.801104972%, 2.762430939%);
+
+ // Input grid
+ #grid > .input(42px, 20px);
+
+ // No need to reset .thumbnails here since it's the same @gridGutterWidth
+
+}
diff -r f4e720d9f182cb8216fdd2174fe3ab83d0350a24 -r 84c7d3575d9543489aead618c91a6406019a26d9 static/june_2007_style/bootstrap/responsive-navbar.less
--- /dev/null
+++ b/static/june_2007_style/bootstrap/responsive-navbar.less
@@ -0,0 +1,153 @@
+// TABLETS AND BELOW
+// -----------------
+@media (max-width: 979px) {
+
+ // UNFIX THE TOPBAR
+ // ----------------
+ // Remove any padding from the body
+ body {
+ padding-top: 0;
+ }
+ // Unfix the navbar
+ .navbar-fixed-top,
+ .navbar-fixed-bottom {
+ position: static;
+ }
+ .navbar-fixed-top {
+ margin-bottom: @baseLineHeight;
+ }
+ .navbar-fixed-bottom {
+ margin-top: @baseLineHeight;
+ }
+ .navbar-fixed-top .navbar-inner,
+ .navbar-fixed-bottom .navbar-inner {
+ padding: 5px;
+ }
+ .navbar .container {
+ width: auto;
+ padding: 0;
+ }
+ // Account for brand name
+ .navbar .brand {
+ padding-left: 10px;
+ padding-right: 10px;
+ margin: 0 0 0 -5px;
+ }
+
+ // COLLAPSIBLE NAVBAR
+ // ------------------
+ // Nav collapse clears brand
+ .nav-collapse {
+ clear: both;
+ }
+ // Block-level the nav
+ .nav-collapse .nav {
+ float: none;
+ margin: 0 0 (@baseLineHeight / 2);
+ }
+ .nav-collapse .nav > li {
+ float: none;
+ }
+ .nav-collapse .nav > li > a {
+ margin-bottom: 2px;
+ }
+ .nav-collapse .nav > .divider-vertical {
+ display: none;
+ }
+ .nav-collapse .nav .nav-header {
+ color: @navbarText;
+ text-shadow: none;
+ }
+ // Nav and dropdown links in navbar
+ .nav-collapse .nav > li > a,
+ .nav-collapse .dropdown-menu a {
+ padding: 6px 15px;
+ font-weight: bold;
+ color: @navbarLinkColor;
+ .border-radius(3px);
+ }
+ // Buttons
+ .nav-collapse .btn {
+ padding: 4px 10px 4px;
+ font-weight: normal;
+ .border-radius(4px);
+ }
+ .nav-collapse .dropdown-menu li + li a {
+ margin-bottom: 2px;
+ }
+ .nav-collapse .nav > li > a:hover,
+ .nav-collapse .dropdown-menu a:hover {
+ background-color: @navbarBackground;
+ }
+ // Buttons in the navbar
+ .nav-collapse.in .btn-group {
+ margin-top: 5px;
+ padding: 0;
+ }
+ // Dropdowns in the navbar
+ .nav-collapse .dropdown-menu {
+ position: static;
+ top: auto;
+ left: auto;
+ float: none;
+ display: block;
+ max-width: none;
+ margin: 0 15px;
+ padding: 0;
+ background-color: transparent;
+ border: none;
+ .border-radius(0);
+ .box-shadow(none);
+ }
+ .nav-collapse .dropdown-menu:before,
+ .nav-collapse .dropdown-menu:after {
+ display: none;
+ }
+ .nav-collapse .dropdown-menu .divider {
+ display: none;
+ }
+ // Forms in navbar
+ .nav-collapse .navbar-form,
+ .nav-collapse .navbar-search {
+ float: none;
+ padding: (@baseLineHeight / 2) 15px;
+ margin: (@baseLineHeight / 2) 0;
+ border-top: 1px solid @navbarBackground;
+ border-bottom: 1px solid @navbarBackground;
+ .box-shadow(~"inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1)");
+ }
+ // Pull right (secondary) nav content
+ .navbar .nav-collapse .nav.pull-right {
+ float: none;
+ margin-left: 0;
+ }
+ // Hide everything in the navbar save .brand and toggle button */
+ .nav-collapse,
+ .nav-collapse.collapse {
+ overflow: hidden;
+ height: 0;
+ }
+ // Navbar button
+ .navbar .btn-navbar {
+ display: block;
+ }
+
+ // STATIC NAVBAR
+ // -------------
+ .navbar-static .navbar-inner {
+ padding-left: 10px;
+ padding-right: 10px;
+ }
+}
+
+
+// DEFAULT DESKTOP
+// ---------------
+
+// Required to make the collapsing navbar work on regular desktops
+@media (min-width: 980px) {
+ .nav-collapse.collapse {
+ height: auto !important;
+ overflow: visible !important;
+ }
+}
\ No newline at end of file
diff -r f4e720d9f182cb8216fdd2174fe3ab83d0350a24 -r 84c7d3575d9543489aead618c91a6406019a26d9 static/june_2007_style/bootstrap/responsive-utilities.less
--- /dev/null
+++ b/static/june_2007_style/bootstrap/responsive-utilities.less
@@ -0,0 +1,41 @@
+// RESPONSIVE CLASSES
+// ------------------
+
+// Hide from screenreaders and browsers
+// Credit: HTML5 Boilerplate
+.hidden {
+ display: none;
+ visibility: hidden;
+}
+
+// Visibility utilities
+
+// For desktops
+.visible-phone { display: none !important; }
+.visible-tablet { display: none !important; }
+.visible-desktop { } // Don't set initially
+.hidden-phone { }
+.hidden-tablet { }
+.hidden-desktop { display: none !important; }
+
+// Phones only
+@media (max-width: 767px) {
+ // Show
+ .visible-phone { display: inherit !important; } // Use inherit to restore previous behavior
+ // Hide
+ .hidden-phone { display: none !important; }
+ // Hide everything else
+ .hidden-desktop { display: inherit !important; }
+ .visible-desktop { display: none !important; }
+}
+
+// Tablets & small desktops only
+@media (min-width: 768px) and (max-width: 979px) {
+ // Show
+ .visible-tablet { display: inherit !important; }
+ // Hide
+ .hidden-tablet { display: none !important; }
+ // Hide everything else
+ .hidden-desktop { display: inherit !important; }
+ .visible-desktop { display: none !important ; }
+}
diff -r f4e720d9f182cb8216fdd2174fe3ab83d0350a24 -r 84c7d3575d9543489aead618c91a6406019a26d9 static/june_2007_style/bootstrap/responsive.less
--- a/static/june_2007_style/bootstrap/responsive.less
+++ b/static/june_2007_style/bootstrap/responsive.less
@@ -1,5 +1,5 @@
/*!
- * Bootstrap Responsive v2.0.0
+ * Bootstrap Responsive v2.0.4
*
* Copyright 2012 Twitter, Inc
* Licensed under the Apache License v2.0
@@ -8,6 +8,7 @@
* Designed and built with all the love in the world @twitter by @mdo and @fat.
*/
+
// Responsive.less
// For phone and tablet devices
// -------------------------------------------------------------
@@ -24,300 +25,24 @@
// RESPONSIVE CLASSES
// ------------------
-// Hide from screenreaders and browsers
-// Credit: HTML5 Boilerplate
-.hidden {
- display: none;
- visibility: hidden;
-}
+@import "responsive-utilities.less";
-
-// UP TO LANDSCAPE PHONE
-// ---------------------
-
-@media (max-width: 480px) {
-
- // Smooth out the collapsing/expanding nav
- .nav-collapse {
- -webkit-transform: translate3d(0, 0, 0); // activate the GPU
- }
-
- // Block level the page header small tag for readability
- .page-header h1 small {
- display: block;
- line-height: @baseLineHeight;
- }
-
- // Make span* classes full width
- input[class*="span"],
- select[class*="span"],
- textarea[class*="span"],
- .uneditable-input {
- display: block;
- width: 100%;
- height: 28px; /* Make inputs at least the height of their button counterpart */
- /* Makes inputs behave like true block-level elements */
- -webkit-box-sizing: border-box; /* Older Webkit */
- -moz-box-sizing: border-box; /* Older FF */
- -ms-box-sizing: border-box; /* IE8 */
- box-sizing: border-box; /* CSS3 spec*/
- }
- // But don't let it screw up prepend/append inputs
- .input-prepend input[class*="span"],
- .input-append input[class*="span"] {
- width: auto;
- }
-
- // Update checkboxes for iOS
- input[type="checkbox"],
- input[type="radio"] {
- border: 1px solid #ccc;
- }
-
- // Remove the horizontal form styles
- .form-horizontal .control-group > label {
- float: none;
- width: auto;
- padding-top: 0;
- text-align: left;
- }
- // Move over all input controls and content
- .form-horizontal .controls {
- margin-left: 0;
- }
- // Move the options list down to align with labels
- .form-horizontal .control-list {
- padding-top: 0; // has to be padding because margin collaspes
- }
- // Move over buttons in .form-actions to align with .controls
- .form-horizontal .form-actions {
- padding-left: 10px;
- padding-right: 10px;
- }
-
- // Modals
- .modal {
- position: absolute;
- top: 10px;
- left: 10px;
- right: 10px;
- width: auto;
- margin: 0;
- &.fade.in { top: auto; }
- }
- .modal-header .close {
- padding: 10px;
- margin: -10px;
- }
-
- // Carousel
- .carousel-caption {
- position: static;
- }
-
-}
-
-
-
-// LANDSCAPE PHONE TO SMALL DESKTOP & PORTRAIT TABLET
-// --------------------------------------------------
-
-@media (max-width: 768px) {
- // GRID & CONTAINERS
- // -----------------
- // Remove width from containers
- .container {
- width: auto;
- padding: 0 20px;
- }
- // Fluid rows
- .row-fluid {
- width: 100%;
- }
- // Undo negative margin on rows
- .row {
- margin-left: 0;
- }
- // Make all columns even
- .row > [class*="span"],
- .row-fluid > [class*="span"] {
- float: none;
- display: block;
- width: auto;
- margin: 0;
- }
-}
-
-
-
-// PORTRAIT TABLET TO DEFAULT DESKTOP
-// ----------------------------------
-
-@media (min-width: 768px) and (max-width: 980px) {
-
- // Fixed grid
- #gridSystem > .generate(12, 42px, 20px);
-
- // Fluid grid
- #fluidGridSystem > .generate(12, 5.801104972%, 2.762430939%);
-
- // Input grid
- #inputGridSystem > .generate(12, 42px, 20px);
-
-}
-
-
-
-// TABLETS AND BELOW
-// -----------------
-@media (max-width: 980px) {
-
- // UNFIX THE TOPBAR
- // ----------------
- // Remove any padding from the body
- body {
- padding-top: 0;
- }
- // Unfix the navbar
- .navbar-fixed-top {
- position: static;
- margin-bottom: @baseLineHeight;
- }
- .navbar-fixed-top .navbar-inner {
- padding: 5px;
- }
- .navbar .container {
- width: auto;
- padding: 0;
- }
- // Account for brand name
- .navbar .brand {
- padding-left: 10px;
- padding-right: 10px;
- margin: 0 0 0 -5px;
- }
- // Nav collapse clears brand
- .navbar .nav-collapse {
- clear: left;
- }
- // Block-level the nav
- .navbar .nav {
- float: none;
- margin: 0 0 (@baseLineHeight / 2);
- }
- .navbar .nav > li {
- float: none;
- }
- .navbar .nav > li > a {
- margin-bottom: 2px;
- }
- .navbar .nav > .divider-vertical {
- display: none;
- }
- // Nav and dropdown links in navbar
- .navbar .nav > li > a,
- .navbar .dropdown-menu a {
- padding: 6px 15px;
- font-weight: bold;
- color: @navbarLinkColor;
- .border-radius(3px);
- }
- .navbar .dropdown-menu li + li a {
- margin-bottom: 2px;
- }
- .navbar .nav > li > a:hover,
- .navbar .dropdown-menu a:hover {
- background-color: @navbarBackground;
- }
- // Dropdowns in the navbar
- .navbar .dropdown-menu {
- position: static;
- top: auto;
- left: auto;
- float: none;
- display: block;
- max-width: none;
- margin: 0 15px;
- padding: 0;
- background-color: transparent;
- border: none;
- .border-radius(0);
- .box-shadow(none);
- }
- .navbar .dropdown-menu:before,
- .navbar .dropdown-menu:after {
- display: none;
- }
- .navbar .dropdown-menu .divider {
- display: none;
- }
- // Forms in navbar
- .navbar-form,
- .navbar-search {
- float: none;
- padding: (@baseLineHeight / 2) 15px;
- margin: (@baseLineHeight / 2) 0;
- border-top: 1px solid @navbarBackground;
- border-bottom: 1px solid @navbarBackground;
- @shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);
- .box-shadow(@shadow);
- }
- // Pull right (secondary) nav content
- .navbar .nav.pull-right {
- float: none;
- margin-left: 0;
- }
- // Static navbar
- .navbar-static .navbar-inner {
- padding-left: 10px;
- padding-right: 10px;
- }
- // Navbar button
- .btn-navbar {
- display: block;
- }
-
- // Hide everything in the navbar save .brand and toggle button */
- .nav-collapse {
- overflow: hidden;
- height: 0;
- }
-}
-
-
-
-// DEFAULT DESKTOP
-// ---------------
-
-@media (min-width: 980px) {
- .nav-collapse.collapse {
- height: auto !important;
- }
-}
-
-
-
-// LARGE DESKTOP & UP
+// MEDIA QUERIES
// ------------------
-@media (min-width: 1200px) {
+// Phones to portrait tablets and narrow desktops
+@import "responsive-767px-max.less";
- // Fixed grid
- #gridSystem > .generate(12, 70px, 30px);
+// Tablets to regular desktops
+@import "responsive-768px-979px.less";
- // Fluid grid
- #fluidGridSystem > .generate(12, 5.982905983%, 2.564102564%);
+// Large desktops
+@import "responsive-1200px-min.less";
- // Input grid
- #inputGridSystem > .generate(12, 70px, 30px);
- // Thumbnails
- .thumbnails {
- margin-left: -30px;
- }
- .thumbnails > li {
- margin-left: 30px;
- }
+// RESPONSIVE NAVBAR
+// ------------------
-}
+// From 979px and below, show a button to toggle navbar contents
+@import "responsive-navbar.less";
diff -r f4e720d9f182cb8216fdd2174fe3ab83d0350a24 -r 84c7d3575d9543489aead618c91a6406019a26d9 static/june_2007_style/bootstrap/scaffolding.less
--- a/static/june_2007_style/bootstrap/scaffolding.less
+++ b/static/june_2007_style/bootstrap/scaffolding.less
@@ -3,8 +3,8 @@
// -------------------------------------------------------------------------------------------
-// STRUCTURAL LAYOUT
-// -----------------
+// Body reset
+// ----------
body {
margin: 0;
@@ -12,11 +12,11 @@
font-size: @baseFontSize;
line-height: @baseLineHeight;
color: @textColor;
- background-color: @white;
+ background-color: @bodyBackground;
}
-// LINKS
+// Links
// -----
a {
diff -r f4e720d9f182cb8216fdd2174fe3ab83d0350a24 -r 84c7d3575d9543489aead618c91a6406019a26d9 static/june_2007_style/bootstrap/sprites.less
--- a/static/june_2007_style/bootstrap/sprites.less
+++ b/static/june_2007_style/bootstrap/sprites.less
@@ -6,27 +6,29 @@
// ICONS
// -----
-// All icons receive the styles of the <i> tag with a base class
-// of .i and are then given a unique class to add width, height,
+// All icons receive the styles of the <i> tag with a base class
+// of .i and are then given a unique class to add width, height,
// and background-position. Your resulting HTML will look like
-// <i class="i icon-inbox"></i>.
+// <i class="icon-inbox"></i>.
-// For the white version of the icons, just add the .icon-white class:
-// <i class="i icon-inbox icon-white"></i>
+// For the white version of the icons, just add the .icon-white class:
+// <i class="icon-inbox icon-white"></i>
-[class^="icon-"], .icon {
+[class^="icon-"],
+[class*=" icon-"] {
display: inline-block;
width: 14px;
height: 14px;
+ .ie7-restore-right-whitespace();
+ line-height: 14px;
vertical-align: text-top;
- background-image: url(glyphicons-halflings.png);
+ background-image: url("@{iconSpritePath}");
background-position: 14px 14px;
background-repeat: no-repeat;
- .ie7-restore-right-whitespace();
}
.icon-white {
- background-image: url(glyphicons-halflings-white.png);
+ background-image: url("@{iconWhiteSpritePath}");
}
.icon-glass { background-position: 0 0; }
@@ -147,10 +149,43 @@
.icon-comment { background-position: -240px -120px; }
.icon-magnet { background-position: -264px -120px; }
.icon-chevron-up { background-position: -288px -120px; }
-.icon-chevron-down { background-position: -313px -119px; } // 1px off
+.icon-chevron-down { background-position: -313px -119px; } // 1px, 1px off
.icon-retweet { background-position: -336px -120px; }
.icon-shopping-cart { background-position: -360px -120px; }
.icon-folder-close { background-position: -384px -120px; }
.icon-folder-open { background-position: -408px -120px; }
-.icon-resize-vertical { background-position: -432px -119px; }
-.icon-resize-horizontal { background-position: -456px -118px; }
+.icon-resize-vertical { background-position: -432px -119px; } // 1px, 1px off
+.icon-resize-horizontal { background-position: -456px -118px; } // 1px, 2px off
+
+.icon-hdd { background-position: 0 -144px; }
+.icon-bullhorn { background-position: -24px -144px; }
+.icon-bell { background-position: -48px -144px; }
+.icon-certificate { background-position: -72px -144px; }
+.icon-thumbs-up { background-position: -96px -144px; }
+.icon-thumbs-down { background-position: -120px -144px; }
+.icon-hand-right { background-position: -144px -144px; }
+.icon-hand-left { background-position: -168px -144px; }
+.icon-hand-up { background-position: -192px -144px; }
+.icon-hand-down { background-position: -216px -144px; }
+.icon-circle-arrow-right { background-position: -240px -144px; }
+.icon-circle-arrow-left { background-position: -264px -144px; }
+.icon-circle-arrow-up { background-position: -288px -144px; }
+.icon-circle-arrow-down { background-position: -312px -144px; }
+.icon-globe { background-position: -336px -144px; }
+.icon-wrench { background-position: -360px -144px; }
+.icon-tasks { background-position: -384px -144px; }
+.icon-filter { background-position: -408px -144px; }
+.icon-briefcase { background-position: -432px -144px; }
+.icon-fullscreen { background-position: -456px -144px; }
+
+
+
+
+
+
+
+
+
+
+
+
diff -r f4e720d9f182cb8216fdd2174fe3ab83d0350a24 -r 84c7d3575d9543489aead618c91a6406019a26d9 static/june_2007_style/bootstrap/tables.less
--- a/static/june_2007_style/bootstrap/tables.less
+++ b/static/june_2007_style/bootstrap/tables.less
@@ -9,6 +9,7 @@
table {
max-width: 100%;
+ background-color: @tableBackground;
border-collapse: collapse;
border-spacing: 0;
}
@@ -25,23 +26,28 @@
padding: 8px;
line-height: @baseLineHeight;
text-align: left;
- border-top: 1px solid #ddd;
+ vertical-align: top;
+ border-top: 1px solid @tableBorder;
}
th {
font-weight: bold;
+ }
+ // Bottom align for column headings
+ thead th {
vertical-align: bottom;
}
- td {
- vertical-align: top;
- }
// Remove top border from thead by default
- thead:first-child tr th,
- thead:first-child tr td {
+ caption + thead tr:first-child th,
+ caption + thead tr:first-child td,
+ colgroup + thead tr:first-child th,
+ colgroup + thead tr:first-child td,
+ thead:first-child tr:first-child th,
+ thead:first-child tr:first-child td {
border-top: 0;
}
// Account for multiple tbody instances
tbody + tbody {
- border-top: 2px solid #ddd;
+ border-top: 2px solid @tableBorder;
}
}
@@ -62,17 +68,22 @@
// ----------------
.table-bordered {
- border: 1px solid #ddd;
+ border: 1px solid @tableBorder;
border-collapse: separate; // Done so we can round those corners!
*border-collapse: collapsed; // IE7 can't round corners anyway
+ border-left: 0;
.border-radius(4px);
- th + th,
- td + td,
- th + td,
- td + th {
- border-left: 1px solid #ddd;
+ th,
+ td {
+ border-left: 1px solid @tableBorder;
}
// Prevent a double border
+ caption + thead tr:first-child th,
+ caption + tbody tr:first-child th,
+ caption + tbody tr:first-child td,
+ colgroup + thead tr:first-child th,
+ colgroup + tbody tr:first-child th,
+ colgroup + tbody tr:first-child td,
thead:first-child tr:first-child th,
tbody:first-child tr:first-child th,
tbody:first-child tr:first-child td {
@@ -81,20 +92,29 @@
// For first th or td in the first row in the first thead or tbody
thead:first-child tr:first-child th:first-child,
tbody:first-child tr:first-child td:first-child {
- .border-radius(4px 0 0 0);
+ -webkit-border-top-left-radius: 4px;
+ border-top-left-radius: 4px;
+ -moz-border-radius-topleft: 4px;
}
thead:first-child tr:first-child th:last-child,
tbody:first-child tr:first-child td:last-child {
- .border-radius(0 4px 0 0);
+ -webkit-border-top-right-radius: 4px;
+ border-top-right-radius: 4px;
+ -moz-border-radius-topright: 4px;
}
// For first th or td in the first row in the first thead or tbody
thead:last-child tr:last-child th:first-child,
tbody:last-child tr:last-child td:first-child {
.border-radius(0 0 0 4px);
+ -webkit-border-bottom-left-radius: 4px;
+ border-bottom-left-radius: 4px;
+ -moz-border-radius-bottomleft: 4px;
}
thead:last-child tr:last-child th:last-child,
tbody:last-child tr:last-child td:last-child {
- .border-radius(0 0 4px 0);
+ -webkit-border-bottom-right-radius: 4px;
+ border-bottom-right-radius: 4px;
+ -moz-border-radius-bottomright: 4px;
}
}
@@ -107,22 +127,27 @@
tbody {
tr:nth-child(odd) td,
tr:nth-child(odd) th {
- background-color: #f9f9f9;
+ background-color: @tableBackgroundAccent;
}
}
}
+// HOVER EFFECT
+// ------------
+// Placed here since it has to come after the potential zebra striping
+.table {
+ tbody tr:hover td,
+ tbody tr:hover th {
+ background-color: @tableBackgroundHover;
+ }
+}
+
// TABLE CELL SIZING
// -----------------
// Change the columns
-.tableColumns(@columnSpan: 1) {
- float: none;
- width: ((@gridColumnWidth) * @columnSpan) + (@gridGutterWidth * (@columnSpan - 1)) - 16;
- margin-left: 0;
-}
table {
.span1 { .tableColumns(1); }
.span2 { .tableColumns(2); }
@@ -136,4 +161,16 @@
.span10 { .tableColumns(10); }
.span11 { .tableColumns(11); }
.span12 { .tableColumns(12); }
+ .span13 { .tableColumns(13); }
+ .span14 { .tableColumns(14); }
+ .span15 { .tableColumns(15); }
+ .span16 { .tableColumns(16); }
+ .span17 { .tableColumns(17); }
+ .span18 { .tableColumns(18); }
+ .span19 { .tableColumns(19); }
+ .span20 { .tableColumns(20); }
+ .span21 { .tableColumns(21); }
+ .span22 { .tableColumns(22); }
+ .span23 { .tableColumns(23); }
+ .span24 { .tableColumns(24); }
}
diff -r f4e720d9f182cb8216fdd2174fe3ab83d0350a24 -r 84c7d3575d9543489aead618c91a6406019a26d9 static/june_2007_style/bootstrap/thumbnails.less
--- a/static/june_2007_style/bootstrap/thumbnails.less
+++ b/static/june_2007_style/bootstrap/thumbnails.less
@@ -1,15 +1,26 @@
// THUMBNAILS
// ----------
+// Note: `.thumbnails` and `.thumbnails > li` are overriden in responsive files
+// Make wrapper ul behave like the grid
.thumbnails {
- margin-left: -20px;
+ margin-left: -@gridGutterWidth;
list-style: none;
.clearfix();
}
+// Fluid rows have no left margin
+.row-fluid .thumbnails {
+ margin-left: 0;
+}
+
+// Float li to make thumbnails appear in a row
.thumbnails > li {
- float: left;
- margin: 0 0 @baseLineHeight 20px;
+ float: left; // Explicity set the float since we don't require .span* classes
+ margin-bottom: @baseLineHeight;
+ margin-left: @gridGutterWidth;
}
+
+// The actual thumbnail (can be `a` or `div`)
.thumbnail {
display: block;
padding: 4px;
@@ -23,6 +34,7 @@
border-color: @linkColor;
.box-shadow(0 1px 4px rgba(0,105,214,.25));
}
+
// Images and captions
.thumbnail > img {
display: block;
diff -r f4e720d9f182cb8216fdd2174fe3ab83d0350a24 -r 84c7d3575d9543489aead618c91a6406019a26d9 static/june_2007_style/bootstrap/type.less
--- a/static/june_2007_style/bootstrap/type.less
+++ b/static/june_2007_style/bootstrap/type.less
@@ -8,9 +8,6 @@
p {
margin: 0 0 @baseLineHeight / 2;
- font-family: @baseFontFamily;
- font-size: @baseFontSize;
- line-height: @baseLineHeight;
small {
font-size: @baseFontSize - 2;
color: @grayLight;
@@ -28,8 +25,9 @@
h1, h2, h3, h4, h5, h6 {
margin: 0;
- font-weight: bold;
- color: @grayDark;
+ font-family: @headingsFontFamily;
+ font-weight: @headingsFontWeight;
+ color: @headingsColor;
text-rendering: optimizelegibility; // Fix the character spacing for headings
small {
font-weight: normal;
@@ -37,26 +35,26 @@
}
}
h1 {
+ font-size: 30px;
+ line-height: @baseLineHeight * 2;
+ small {
+ font-size: 18px;
+ }
+}
+h2 {
font-size: 24px;
line-height: @baseLineHeight * 2;
small {
font-size: 18px;
}
}
-h2 {
+h3 {
font-size: 18px;
line-height: @baseLineHeight * 1.5;
small {
font-size: 14px;
}
}
-h3 {
- line-height: @baseLineHeight;
- font-size: 14px;
- small {
- font-size: 12px;
- }
-}
h4, h5, h6 {
line-height: @baseLineHeight;
}
@@ -110,7 +108,8 @@
li {
line-height: @baseLineHeight;
}
-ul.unstyled {
+ul.unstyled,
+ol.unstyled {
margin-left: 0;
list-style: none;
}
@@ -125,10 +124,24 @@
}
dt {
font-weight: bold;
+ line-height: @baseLineHeight - 1; // fix jank Helvetica Neue font bug
}
dd {
margin-left: @baseLineHeight / 2;
}
+// Horizontal layout (like forms)
+.dl-horizontal {
+ dt {
+ float: left;
+ width: 120px;
+ clear: left;
+ text-align: right;
+ .text-overflow();
+ }
+ dd {
+ margin-left: 130px;
+ }
+}
// MISC
// ----
@@ -137,7 +150,7 @@
hr {
margin: @baseLineHeight 0;
border: 0;
- border-top: 1px solid #e5e5e5;
+ border-top: 1px solid @hrBorder;
border-bottom: 1px solid @white;
}
@@ -153,11 +166,13 @@
}
// Abbreviations and acronyms
-abbr {
+abbr[title] {
+ cursor: help;
+ border-bottom: 1px dotted @grayLight;
+}
+abbr.initialism {
font-size: 90%;
text-transform: uppercase;
- border-bottom: 1px dotted #ddd;
- cursor: help;
}
// Blockquotes
@@ -181,10 +196,10 @@
// Float right with text-align: right
&.pull-right {
float: right;
+ padding-right: 15px;
padding-left: 0;
- padding-right: 15px;
+ border-right: 5px solid @grayLighter;
border-left: 0;
- border-right: 5px solid @grayLighter;
p,
small {
text-align: right;
@@ -195,7 +210,7 @@
// Quotes
q:before,
q:after,
-blockquote:before,
+blockquote:before,
blockquote:after {
content: "";
}
@@ -204,8 +219,8 @@
address {
display: block;
margin-bottom: @baseLineHeight;
+ font-style: normal;
line-height: @baseLineHeight;
- font-style: normal;
}
// Misc
diff -r f4e720d9f182cb8216fdd2174fe3ab83d0350a24 -r 84c7d3575d9543489aead618c91a6406019a26d9 static/june_2007_style/bootstrap/variables.less
--- a/static/june_2007_style/bootstrap/variables.less
+++ b/static/june_2007_style/bootstrap/variables.less
@@ -7,11 +7,9 @@
// GLOBAL VALUES
// --------------------------------------------------
-// Links
-@linkColor: #08c;
-@linkColorHover: darken(@linkColor, 15%);
// Grays
+// -------------------------
@black: #000;
@grayDarker: #222;
@grayDark: #333;
@@ -20,7 +18,9 @@
@grayLighter: #eee;
@white: #fff;
+
// Accent colors
+// -------------------------
@blue: #049cdb;
@blueDark: #0064cd;
@green: #46a546;
@@ -30,14 +30,85 @@
@pink: #c3325f;
@purple: #7a43b6;
-// Typography
-@baseFontSize: 13px;
-@baseFontFamily: "Helvetica Neue", Helvetica, Arial, sans-serif;
-@baseLineHeight: 18px;
+
+// Scaffolding
+// -------------------------
+@bodyBackground: @white;
@textColor: @grayDark;
+
+// Links
+// -------------------------
+@linkColor: #08c;
+@linkColorHover: darken(@linkColor, 15%);
+
+
+// Typography
+// -------------------------
+@sansFontFamily: "Helvetica Neue", Helvetica, Arial, sans-serif;
+@serifFontFamily: Georgia, "Times New Roman", Times, serif;
+@monoFontFamily: Menlo, Monaco, Consolas, "Courier New", monospace;
+
+@baseFontSize: 13px;
+@baseFontFamily: @sansFontFamily;
+@baseLineHeight: 18px;
+@altFontFamily: @serifFontFamily;
+
+@headingsFontFamily: inherit; // empty to use BS default, @baseFontFamily
+@headingsFontWeight: bold; // instead of browser default, bold
+@headingsColor: inherit; // empty to use BS default, @textColor
+
+
+// Tables
+// -------------------------
+@tableBackground: transparent; // overall background-color
+@tableBackgroundAccent: #f9f9f9; // for striping
+@tableBackgroundHover: #f5f5f5; // for hover
+@tableBorder: #ddd; // table and cell border
+
+
// Buttons
-@primaryButtonBackground: @linkColor;
+// -------------------------
+@btnBackground: @white;
+@btnBackgroundHighlight: darken(@white, 10%);
+@btnBorder: #ccc;
+
+@btnPrimaryBackground: @linkColor;
+@btnPrimaryBackgroundHighlight: spin(@btnPrimaryBackground, 15%);
+
+@btnInfoBackground: #5bc0de;
+@btnInfoBackgroundHighlight: #2f96b4;
+
+@btnSuccessBackground: #62c462;
+@btnSuccessBackgroundHighlight: #51a351;
+
+@btnWarningBackground: lighten(@orange, 15%);
+@btnWarningBackgroundHighlight: @orange;
+
+@btnDangerBackground: #ee5f5b;
+@btnDangerBackgroundHighlight: #bd362f;
+
+@btnInverseBackground: @gray;
+@btnInverseBackgroundHighlight: @grayDarker;
+
+
+// Forms
+// -------------------------
+@inputBackground: @white;
+@inputBorder: #ccc;
+@inputBorderRadius: 3px;
+@inputDisabledBackground: @grayLighter;
+@formActionsBackground: #f5f5f5;
+
+// Dropdowns
+// -------------------------
+@dropdownBackground: @white;
+@dropdownBorder: rgba(0,0,0,.2);
+@dropdownLinkColor: @grayDark;
+@dropdownLinkColorHover: @white;
+@dropdownLinkBackgroundHover: @linkColor;
+@dropdownDividerTop: #e5e5e5;
+@dropdownDividerBottom: @white;
@@ -45,19 +116,35 @@
// --------------------------------------------------
// Z-index master list
+// -------------------------
// Used for a bird's eye view of components dependent on the z-axis
// Try to avoid customizing these :)
-@zindexDropdown: 1000;
-@zindexPopover: 1010;
-@zindexTooltip: 1020;
-@zindexFixedNavbar: 1030;
-@zindexModalBackdrop: 1040;
-@zindexModal: 1050;
+@zindexDropdown: 1000;
+@zindexPopover: 1010;
+@zindexTooltip: 1020;
+@zindexFixedNavbar: 1030;
+@zindexModalBackdrop: 1040;
+@zindexModal: 1050;
+
+
+// Sprite icons path
+// -------------------------
+@iconSpritePath: "../img/glyphicons-halflings.png";
+@iconWhiteSpritePath: "../img/glyphicons-halflings-white.png";
+
// Input placeholder text color
-@placeholderText: @grayLight;
+// -------------------------
+@placeholderText: @grayLight;
+
+
+// Hr border color
+// -------------------------
+@hrBorder: @grayLighter;
+
// Navbar
+// -------------------------
@navbarHeight: 40px;
@navbarBackground: @grayDarker;
@navbarBackgroundHighlight: @grayDark;
@@ -65,8 +152,26 @@
@navbarText: @grayLight;
@navbarLinkColor: @grayLight;
@navbarLinkColorHover: @white;
+@navbarLinkColorActive: @navbarLinkColorHover;
+@navbarLinkBackgroundHover: transparent;
+@navbarLinkBackgroundActive: @navbarBackground;
+
+@navbarSearchBackground: lighten(@navbarBackground, 25%);
+@navbarSearchBackgroundFocus: @white;
+@navbarSearchBorder: darken(@navbarSearchBackground, 30%);
+@navbarSearchPlaceholderColor: #ccc;
+@navbarBrandColor: @navbarLinkColor;
+
+
+// Hero unit
+// -------------------------
+@heroUnitBackground: @grayLighter;
+@heroUnitHeadingColor: inherit;
+@heroUnitLeadColor: inherit;
+
// Form states and alerts
+// -------------------------
@warningText: #c09853;
@warningBackground: #fcf8e3;
@warningBorder: darken(spin(@warningBackground, -10), 3%);
@@ -89,11 +194,13 @@
// --------------------------------------------------
// Default 940px grid
+// -------------------------
@gridColumns: 12;
@gridColumnWidth: 60px;
@gridGutterWidth: 20px;
@gridRowWidth: (@gridColumns * @gridColumnWidth) + (@gridGutterWidth * (@gridColumns - 1));
// Fluid grid
+// -------------------------
@fluidGridColumnWidth: 6.382978723%;
@fluidGridGutterWidth: 2.127659574%;
diff -r f4e720d9f182cb8216fdd2174fe3ab83d0350a24 -r 84c7d3575d9543489aead618c91a6406019a26d9 static/june_2007_style/bootstrap/wells.less
--- a/static/june_2007_style/bootstrap/wells.less
+++ b/static/june_2007_style/bootstrap/wells.less
@@ -15,3 +15,13 @@
border-color: rgba(0,0,0,.15);
}
}
+
+// Sizes
+.well-large {
+ padding: 24px;
+ .border-radius(6px);
+}
+.well-small {
+ padding: 9px;
+ .border-radius(3px);
+}
diff -r f4e720d9f182cb8216fdd2174fe3ab83d0350a24 -r 84c7d3575d9543489aead618c91a6406019a26d9 static/june_2007_style/galaxy_bootstrap.less
--- a/static/june_2007_style/galaxy_bootstrap.less
+++ b/static/june_2007_style/galaxy_bootstrap.less
@@ -1,109 +1,26 @@
-// Variables.less
-// Variables to customize the look and feel of Bootstrap
-// -----------------------------------------------------
+/*
+ * bootsrap.less modified for Galaxy.
+ * - only a subset of bootsrap components are used
+ * - include 'galaxy_bootsrap_variables' instead of 'variables'
+ * - overrides that can't be set with variables at end
+ *
+ * ---
+ *
+ * Bootstrap v2.0.4
+ *
+ * Copyright 2012 Twitter, Inc
+ * Licensed under the Apache License v2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Designed and built with all the love in the world @twitter by @mdo and @fat.
+ */
-// GLOBAL VALUES
-// --------------------------------------------------
+// CSS Reset
+@import "bootstrap/reset.less";
-// Links
-@linkColor: @link_text;
-@linkColorHover: darken(@linkColor, 15%);
-
-// Grays
-@black: #000;
-@grayDarker: #222;
-@grayDark: #333;
-@gray: #555;
-@grayLight: #999;
-@grayLighter: #eee;
-@white: #fff;
-
-// Accent colors
-@blue: @info_message_bg;
-@blueDark: #0064cd;
-@green: #46a546;
-@red: #9d261d;
-@yellow: #ffc40d;
-@orange: #f89406;
-@pink: #c3325f;
-@purple: #7a43b6;
-
-// Typography
-@baseFontSize: 12px;
-@sansFontFamily: "Lucida Grande",verdana,arial,helvetica,sans-serif;
-@serifFontFamily: Georgia, "Times New Roman", Times, serif;
-@monospaceFontFamily: Menlo, Monaco, "Courier New", monospace;
-@baseFontFamily: @sansFontFamily;
-@baseLineHeight: 16px;
-@textColor: #111;
-
-// Buttons
-@primaryButtonBackground: @blueDark;
-
-@buttonBorder: #999;
-@buttonBorderBottom: #888;
-
-// Forms
-@formElementBorder: @grayLight;
-
-
-
-// COMPONENT VARIABLES
-// --------------------------------------------------
-
-// Z-index master list
-// Used for a bird's eye view of components dependent on the z-axis
-// Try to avoid customizing these :)
-@zindexDropdown: 1000;
-@zindexPopover: 1010;
-@zindexTooltip: 1020;
-@zindexFixedNavbar: 1030;
-@zindexModalBackdrop: 1040;
-@zindexModal: 1050;
-
-// Input placeholder text color
-@placeholderText: @grayLight;
-
-// Navbar
-@navbarHeight: 32px;
-@navbarBackground: @masthead_bg;
-@navbarBackgroundHighlight: @grayDark;
-
-@navbarText: @grayLight;
-@navbarLinkColor: @grayLight;
-@navbarLinkColorHover: @white;
-
-// Form states and alerts
-@warningText: darken(@warn_message_bg,70%);
-@warningBackground: @warn_message_bg;
-@warningBorder: darken(spin(@warningBackground, -10), 30%);
-
-@errorText: darken(@error_message_bg,70%);
-@errorBackground: @error_message_bg;
-@errorBorder: darken(spin(@errorBackground, -10), 30%);
-
-@successText: darken(@done_message_bg,70%);
-@successBackground: @done_message_bg;
-@successBorder: darken(spin(@successBackground, -10), 60%);
-
-@infoText: darken(@info_message_bg,70%);
-@infoBackground: @info_message_bg;
-@infoBorder: darken(spin(@info_message_bg, -10), 60%);
-
-
-
-// GRID
-// --------------------------------------------------
-
-// Default 940px grid
-@gridColumns: 12;
-@gridColumnWidth: 60px;
-@gridGutterWidth: 20px;
-@gridRowWidth: (@gridColumns * @gridColumnWidth) + (@gridGutterWidth * (@gridColumns - 1));
-
-// Fluid grid
-@fluidGridColumnWidth: 6.382978723%;
-@fluidGridGutterWidth: 2.127659574%;
+// Core variables and mixins
+@import "galaxy_bootstrap_variables.less"; // Modify this for custom colors, font-sizes, etc
+@import "bootstrap/mixins.less";
// ---- Imports ----
@@ -120,7 +37,7 @@
@import "bootstrap/tables.less";
// Components: common
-// @import "bootstrap/sprites.less";
+@import "bootstrap/sprites.less";
@import "bootstrap/dropdowns.less";
@import "bootstrap/wells.less";
@import "bootstrap/component-animations.less";
@@ -152,4 +69,31 @@
@import "bootstrap/hero-unit.less";
// Utility classes
-@import "bootstrap/utilities.less";
\ No newline at end of file
+@import "bootstrap/utilities.less";
+
+
+// Galaxy overrides
+
+.btn {
+ padding: 2px 10px 2px;
+ // These are hardcoded in buttons.less
+ border-color: @btnBorder;
+ border-color: rgba(0,0,0,.4) rgba(0,0,0,.4) rgba(0,0,0,.4);
+}
+
+.btn.hover {
+ @btn:hover();
+}
+
+.btn.active, .btn:active {
+ color: inherit;
+}
+
+.dropdown-menu {
+ max-width: auto;
+}
+
+input[type="checkbox"],input[type="radio"] {
+ margin-left: 0.5ex;
+ margin-right: 0.5ex;
+}
diff -r f4e720d9f182cb8216fdd2174fe3ab83d0350a24 -r 84c7d3575d9543489aead618c91a6406019a26d9 static/june_2007_style/galaxy_bootstrap_variables.less
--- /dev/null
+++ b/static/june_2007_style/galaxy_bootstrap_variables.less
@@ -0,0 +1,202 @@
+// Variables.less
+// Variables to customize the look and feel of Bootstrap
+// -----------------------------------------------------
+
+
+
+// GLOBAL VALUES
+// --------------------------------------------------
+
+
+// Grays
+// -------------------------
+@black: #000;
+@grayDarker: #222;
+@grayDark: #333;
+@gray: #555;
+@grayLight: #999;
+@grayLighter: #eee;
+@white: #fff;
+
+
+// Accent colors
+// -------------------------
+@blue: @info_message_bg;
+@blueDark: #0064cd;
+@green: #46a546;
+@red: #9d261d;
+@yellow: #ffc40d;
+@orange: #f89406;
+@pink: #c3325f;
+@purple: #7a43b6;
+
+
+// Scaffolding
+// -------------------------
+@bodyBackground: @white;
+@textColor: #111;
+
+
+// Links
+// -------------------------
+@linkColor: @link_text;
+@linkColorHover: darken(@linkColor, 15%);
+
+// Typography
+// -------------------------
+@sansFontFamily: "Lucida Grande",verdana,arial,helvetica,sans-serif;
+@serifFontFamily: Georgia, "Times New Roman", Times, serif;
+@monospaceFontFamily: Menlo, Monaco, "Courier New", monospace;
+
+@baseFontSize: 12px;
+@baseFontFamily: @sansFontFamily;
+@baseLineHeight: 16px;
+@altFontFamily: @serifFontFamily;
+
+@headingsFontFamily: inherit; // empty to use BS default, @baseFontFamily
+@headingsFontWeight: bold; // instead of browser default, bold
+@headingsColor: inherit; // empty to use BS default, @textColor
+
+// Tables
+// -------------------------
+@tableBackground: transparent; // overall background-color
+@tableBackgroundAccent: #f9f9f9; // for striping
+@tableBackgroundHover: #f5f5f5; // for hover
+@tableBorder: #ddd; // table and cell border
+
+
+// Buttons
+// -------------------------
+@btnBackground: @white;
+@btnBackgroundHighlight: darken(@white, 10%);
+@btnBorder: #999;
+@btnColor: @textColor;
+
+@btnPrimaryBackground: @blueDark;
+@btnPrimaryBackgroundHighlight: spin(@btnPrimaryBackground, 15%);
+
+@btnInfoBackground: #5bc0de;
+@btnInfoBackgroundHighlight: #2f96b4;
+
+@btnSuccessBackground: #62c462;
+@btnSuccessBackgroundHighlight: #51a351;
+
+@btnWarningBackground: lighten(@orange, 15%);
+@btnWarningBackgroundHighlight: @orange;
+
+@btnDangerBackground: #ee5f5b;
+@btnDangerBackgroundHighlight: #bd362f;
+
+@btnInverseBackground: @gray;
+@btnInverseBackgroundHighlight: @grayDarker;
+
+
+// Forms
+// -------------------------
+@inputBackground: @white;
+@inputBorder: @grayLight;
+@inputBorderRadius: 3px;
+@inputDisabledBackground: @grayLighter;
+@formActionsBackground: #f5f5f5;
+
+// Dropdowns
+// -------------------------
+@dropdownBackground: @white;
+@dropdownBorder: rgba(0,0,0,.2);
+@dropdownLinkColor: @grayDark;
+@dropdownLinkColorHover: @white;
+@dropdownLinkBackgroundHover: @linkColor;
+@dropdownDividerTop: #e5e5e5;
+@dropdownDividerBottom: @white;
+
+
+// COMPONENT VARIABLES
+// --------------------------------------------------
+
+// Z-index master list
+// Used for a bird's eye view of components dependent on the z-axis
+// Try to avoid customizing these :)
+@zindexDropdown: 1000;
+@zindexPopover: 1010;
+@zindexTooltip: 1020;
+@zindexFixedNavbar: 1030;
+@zindexModalBackdrop: 1040;
+@zindexModal: 1050;
+
+
+// Sprite icons path
+// -------------------------
+@iconSpritePath: "../img/glyphicons-halflings.png";
+@iconWhiteSpritePath: "../img/glyphicons-halflings-white.png";
+
+
+// Input placeholder text color
+// -------------------------
+@placeholderText: @grayLight;
+
+
+// Hr border color
+// -------------------------
+
+@hrBorder: @grayLighter;
+
+// Navbar
+// -------------------------
+@navbarHeight: 32px;
+@navbarBackground: @masthead_bg;
+@navbarBackgroundHighlight: @grayDark;
+
+@navbarText: @grayLight;
+@navbarLinkColor: @grayLight;
+@navbarLinkColorHover: @white;
+@navbarLinkColorActive: @navbarLinkColorHover;
+@navbarLinkBackgroundHover: transparent;
+@navbarLinkBackgroundActive: rgba(0,0,0,0.5);
+
+@navbarSearchBackground: lighten(@navbarBackground, 25%);
+@navbarSearchBackgroundFocus: @white;
+@navbarSearchBorder: darken(@navbarSearchBackground, 30%);
+@navbarSearchPlaceholderColor: #ccc;
+@navbarBrandColor: @navbarLinkColor;
+
+// Hero unit
+// -------------------------
+@heroUnitBackground: @grayLighter;
+@heroUnitHeadingColor: inherit;
+@heroUnitLeadColor: inherit;
+
+
+// Form states and alerts
+// -------------------------
+@warningText: darken(@warn_message_bg,70%);
+@warningBackground: @warn_message_bg;
+@warningBorder: darken(spin(@warningBackground, -10), 30%);
+
+@errorText: darken(@error_message_bg,70%);
+@errorBackground: @error_message_bg;
+@errorBorder: darken(spin(@errorBackground, -10), 30%);
+
+@successText: darken(@done_message_bg,70%);
+@successBackground: @done_message_bg;
+@successBorder: darken(spin(@successBackground, -10), 60%);
+
+@infoText: darken(@info_message_bg,70%);
+@infoBackground: @info_message_bg;
+@infoBorder: darken(spin(@info_message_bg, -10), 60%);
+
+
+
+// GRID
+// --------------------------------------------------
+
+// Default 940px grid
+// -------------------------
+@gridColumns: 12;
+@gridColumnWidth: 60px;
+@gridGutterWidth: 20px;
+@gridRowWidth: (@gridColumns * @gridColumnWidth) + (@gridGutterWidth * (@gridColumns - 1));
+
+// Fluid grid
+// -------------------------
+@fluidGridColumnWidth: 6.382978723%;
+@fluidGridGutterWidth: 2.127659574%;
\ No newline at end of file
diff -r f4e720d9f182cb8216fdd2174fe3ab83d0350a24 -r 84c7d3575d9543489aead618c91a6406019a26d9 templates/base_panels.mako
--- a/templates/base_panels.mako
+++ b/templates/base_panels.mako
@@ -250,7 +250,7 @@
## Layer iframes over backgrounds
<div id="masthead" class="navbar navbar-fixed-top"><div class="masthead-inner navbar-inner">
- <div class="container">${self.masthead()}</div>
+ ${self.masthead()}
</div></div><div id="messagebox" class="panel-${self.message_box_class}-message">
https://bitbucket.org/galaxy/galaxy-central/changeset/709ec5934414/
changeset: 709ec5934414
user: james_taylor
date: 2012-07-20 20:08:36
summary: styles: Removed old styles (old_blue_style and light_hatched_style) that can't possibly work anymore
affected #: 76 files
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/Makefile
--- a/static/light_hatched_style/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-menu_bg.png :
- ./gradient.py 9 1000 DDDDFF 9999FF FFFFFF 0 0 FFFFFF 1 1 > $@
-
-base_bg.png :
- ./gradient.py 9 1000 EEEEFF - FFFFFF 0 0 FFFFFF 1 1 > $@
-
-masthead_bg.png :
- ./gradient.py 9 50 023858 000000 000000 0 0.5 000000 1 1 > $@
-
-footer_title_bg.png :
- ./gradient.py 9 30 023858 000000 000000 0 0.5 000000 1 1 > $@
-
-form_title_bg.png :
- ./gradient.py 9 50 ebd9b2 b9a780 FFFFFF 0 0 FFFFFF 0.5 1 > $@
-
-ok_bg.png :
- ./gradient.py 9 200 AAFFAA - CCFFCC 0 0.5 CCFFCC 1 1 > $@
-
-error_bg.png :
- ./gradient.py 9 200 FFAAAA - FFCCCC 0 0.5 FFCCCC 1 1 > $@
-
-warn_bg.png :
- ./gradient.py 9 200 FFFFAA - FFFFCC 0 0.5 FFFFCC 1 1 > $@
-
-gray_bg.png :
- ./gradient.py 9 200 AAAAAA - CCCCCC 0 0.5 CCCCCC 1 1 > $@
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/base.css.tmpl
--- a/static/light_hatched_style/base.css.tmpl
+++ /dev/null
@@ -1,295 +0,0 @@
-body
-{
- font: 75% verdana, "Bitstream Vera Sans", geneva, arial, helvetica, helve, sans-serif;
- background: white;
- color: $base_text;
- background-image: url(base_bg.png);
- background-repeat: repeat-x;
- background-position: top;
- margin: 10px;
- margin-right: 15px;
- margin-left: 15px;
-}
-
-a:link, a:visited, a:active
-{
- color: $link_text;
-}
-
-h1, h2, h3, h4
-{
- color: $header_text;
- /*text-shadow: #bbb 2px 2px 1px;*/
-}
-
-hr
-{
- border: none;
- border-bottom: dotted $base_text 1px;
-}
-
-div.toolForm
-{
- margin-right: -5px;
- margin-left: -5px;
-}
-
-div.toolFormTitle
-{
- background: $form_title_bg;
- background-image: url(form_title_bg.png);
- background-repeat: repeat-x;
- background-position: top;
- border-top: solid $form_border 1px;
- border-bottom: solid $form_border 1px;
- font-weight: bold;
- padding: 5px;
-}
-
-div.toolParamHelp
-{
- font-style: italic;
-}
-
-div.toolFormBody
-{
- background: $form_body_bg;
- border-bottom: solid $form_border 1px;
- padding: 5px;
-}
-
-div.toolFormBody div.toolFormTitle
-{
- background: transparent;
- border: none;
- font-weight: bold;
- border-bottom: solid $form_border 1px;
- margin-bottom: 5px;
-}
-
-div.toolHelp
-{
-}
-
-div.toolHelpBody
-{
- width: 100%;
- overflow: auto;
-}
-
-/* Forms */
-
-div.form-row
-{
- margin-bottom: 1em;
-}
-
-div.form-title-row
-{
- margin-bottom: 0.5em;
-}
-
-div.repeat-group-item
-{
- border-left: solid $form_border 5px;
- padding-left: 10px;
-}
-
-div.form-row-error
-{
- background: $error_message_bg;
- padding: 5px;
-}
-
-div.form-row label
-{
- font-weight: bold;
- display: block;
- margin-bottom: .2em;
-}
-
-select
-{
- max-width: 300px;
-}
-
-.errormessage, .warningmessage, .donemessage, .infomessage, .welcomemessage
-{
- padding: 10px;
- padding-left: 52px;
- min-height: 32px;
- border-top: 1px solid $error_message_border;
- border-bottom: 1px solid $error_message_border;
- background-color: $error_message_bg;
- background-image: url(error_message_icon.png);
- background-repeat: no-repeat;
- background-position: 10px 10px;
-}
-
-.warningmessage
-{
- background-image: url(warn_message_icon.png);
- border-color: $warn_message_border;
- background-color: $warn_message_bg;
-}
-
-.donemessage
-{
- background-image: url(done_message_icon.png);
- border-color: $done_message_border;
- background-color: $done_message_bg;
-}
-
-.infomessage
-{
- background-image: url(info_message_icon.png);
- border-color: $info_message_border;
- background-color: $info_message_bg;
-}
-
-.welcomemessage {
- padding-left: 10px;
- border-color: #6666AA;
- background-color: #CCCCFF;
- background-image: none;
-}
-
-.errormessagesmall, .warningmessagesmall, .donemessagesmall, .infomessagesmall
-{
- padding: 5px;
- padding-left: 25px;
- min-height: 25px;
- border-top: 1px solid $error_message_border;
- border-bottom: 1px solid $error_message_border;
- background-color: $error_message_bg;
- background-image: url(error_small.png);
- background-repeat: no-repeat;
- background-position: 5px 5px;
-}
-
-.warningmessagesmall
-{
- background-image: url(warn_small.png);
- border-color: $warn_message_border;
- background-color: $warn_message_bg;
-}
-
-.donemessagesmall
-{
- background-image: url(ok_small.png);
- border-color: $done_message_border;
- background-color: $done_message_bg;
-}
-
-.infomessagesmall
-{
- background-image: url(info_small.png);
- border-color: $info_message_border;
- background-color: $info_message_bg;
-}
-
-.errormark, .warningmark, .donemark, .infomark, .ok_bgr, .err_bgr
-{
- padding-left: 20px;
- min-height: 15px;
- background: url(error_small.png) no-repeat;
-}
-
-.warningmark
-{
- background-image: url(warn_small.png);
-}
-
-.donemark
-{
- background-image: url(ok_small.png);
-}
-
-.infomark, .ok_bgr
-{
- background-image: url(info_small.png);
-}
-
-table.colored
-{
- border-top: solid $table_border 1px;
- border-bottom: solid $table_border 1px;
-}
-
-table.colored td
-{
- padding: 5px;
-}
-
-table.colored tr.header
-{
- background: $table_header_bg;
- background-image: url(form_title_bg.png);
- background-repeat: repeat-x;
- background-position: top;
- border-bottom: solid $table_border 1px;
- font-weight: bold;
-}
-
-table.colored tr
-{
- background: $table_row_bg;
-}
-
-div.debug
-{
- margin: 10px;
- padding: 5px;
- background: #FFFF99;
- border: solid #FFFF33 1px;
- color: black;
-}
-
-div.odd_row
-{
- background: $odd_row_bg;
-}
-
-#footer {
- position: fixed;
- background: $footer_bg;
- width: 100%;
- left: 0px;
- bottom: 0px;
- color: white;
- z-index:10000;
- opacity:0.9;
- filter:alpha(opacity:90);
-}
-
-#footer a {
- color: white;
-}
-
-.footerheader
-{
- padding: 5px;
- text-align:center;
- background-image: url(footer_title_bg.png);
- background-position: bottom right;
-}
-
-.footermenu
-{
- /*border-top: solid white 1px; */
-}
-
-.footermenuitem
-{
- margin-top: 5px;
- margin-bottom: 5px;
- margin-right: 5px;
- margin-left: 25px;
- display: list-item;
- list-style: square outside;
-}
-
-.footermenumessage
-{
- margin: 5px;
-}
\ No newline at end of file
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/blue/base.css
--- a/static/light_hatched_style/blue/base.css
+++ /dev/null
@@ -1,295 +0,0 @@
-body
-{
- font: 75% verdana, "Bitstream Vera Sans", geneva, arial, helvetica, helve, sans-serif;
- background: white;
- color: #303030;
- background-image: url(base_bg.png);
- background-repeat: repeat-x;
- background-position: top;
- margin: 10px;
- margin-right: 15px;
- margin-left: 15px;
-}
-
-a:link, a:visited, a:active
-{
- color: #303030;
-}
-
-h1, h2, h3, h4
-{
- color: #023858;
- /*text-shadow: #bbb 2px 2px 1px;*/
-}
-
-hr
-{
- border: none;
- border-bottom: dotted #303030 1px;
-}
-
-div.toolForm
-{
- margin-right: -5px;
- margin-left: -5px;
-}
-
-div.toolFormTitle
-{
- background: #ebd9b2;
- background-image: url(form_title_bg.png);
- background-repeat: repeat-x;
- background-position: top;
- border-top: solid #d8b365 1px;
- border-bottom: solid #d8b365 1px;
- font-weight: bold;
- padding: 5px;
-}
-
-div.toolParamHelp
-{
- font-style: italic;
-}
-
-div.toolFormBody
-{
- background: white;
- border-bottom: solid #d8b365 1px;
- padding: 5px;
-}
-
-div.toolFormBody div.toolFormTitle
-{
- background: transparent;
- border: none;
- font-weight: bold;
- border-bottom: solid #d8b365 1px;
- margin-bottom: 5px;
-}
-
-div.toolHelp
-{
-}
-
-div.toolHelpBody
-{
- width: 100%;
- overflow: auto;
-}
-
-/* Forms */
-
-div.form-row
-{
- margin-bottom: 1em;
-}
-
-div.form-title-row
-{
- margin-bottom: 0.5em;
-}
-
-div.repeat-group-item
-{
- border-left: solid #d8b365 5px;
- padding-left: 10px;
-}
-
-div.form-row-error
-{
- background: #FFCCCC;
- padding: 5px;
-}
-
-div.form-row label
-{
- font-weight: bold;
- display: block;
- margin-bottom: .2em;
-}
-
-select
-{
- max-width: 300px;
-}
-
-.errormessage, .warningmessage, .donemessage, .infomessage, .welcomemessage
-{
- padding: 10px;
- padding-left: 52px;
- min-height: 32px;
- border-top: 1px solid #AA6666;
- border-bottom: 1px solid #AA6666;
- background-color: #FFCCCC;
- background-image: url(error_message_icon.png);
- background-repeat: no-repeat;
- background-position: 10px 10px;
-}
-
-.warningmessage
-{
- background-image: url(warn_message_icon.png);
- border-color: #AAAA66;
- background-color: #FFFFCC;
-}
-
-.donemessage
-{
- background-image: url(done_message_icon.png);
- border-color: #66AA66;
- background-color: #CCFFCC;
-}
-
-.infomessage
-{
- background-image: url(info_message_icon.png);
- border-color: #6666AA;
- background-color: #CCCCFF;
-}
-
-.welcomemessage {
- padding-left: 10px;
- border-color: #6666AA;
- background-color: #CCCCFF;
- background-image: none;
-}
-
-.errormessagesmall, .warningmessagesmall, .donemessagesmall, .infomessagesmall
-{
- padding: 5px;
- padding-left: 25px;
- min-height: 25px;
- border-top: 1px solid #AA6666;
- border-bottom: 1px solid #AA6666;
- background-color: #FFCCCC;
- background-image: url(error_small.png);
- background-repeat: no-repeat;
- background-position: 5px 5px;
-}
-
-.warningmessagesmall
-{
- background-image: url(warn_small.png);
- border-color: #AAAA66;
- background-color: #FFFFCC;
-}
-
-.donemessagesmall
-{
- background-image: url(ok_small.png);
- border-color: #66AA66;
- background-color: #CCFFCC;
-}
-
-.infomessagesmall
-{
- background-image: url(info_small.png);
- border-color: #6666AA;
- background-color: #CCCCFF;
-}
-
-.errormark, .warningmark, .donemark, .infomark, .ok_bgr, .err_bgr
-{
- padding-left: 20px;
- min-height: 15px;
- background: url(error_small.png) no-repeat;
-}
-
-.warningmark
-{
- background-image: url(warn_small.png);
-}
-
-.donemark
-{
- background-image: url(ok_small.png);
-}
-
-.infomark, .ok_bgr
-{
- background-image: url(info_small.png);
-}
-
-table.colored
-{
- border-top: solid #d8b365 1px;
- border-bottom: solid #d8b365 1px;
-}
-
-table.colored td
-{
- padding: 5px;
-}
-
-table.colored tr.header
-{
- background: #ebd9b2;
- background-image: url(form_title_bg.png);
- background-repeat: repeat-x;
- background-position: top;
- border-bottom: solid #d8b365 1px;
- font-weight: bold;
-}
-
-table.colored tr
-{
- background: white;
-}
-
-div.debug
-{
- margin: 10px;
- padding: 5px;
- background: #FFFF99;
- border: solid #FFFF33 1px;
- color: black;
-}
-
-div.odd_row
-{
- background: #FFFF99;
-}
-
-#footer {
- position: fixed;
- background: #023858;
- width: 100%;
- left: 0px;
- bottom: 0px;
- color: white;
- z-index:10000;
- opacity:0.9;
- filter:alpha(opacity:90);
-}
-
-#footer a {
- color: white;
-}
-
-.footerheader
-{
- padding: 5px;
- text-align:center;
- background-image: url(footer_title_bg.png);
- background-position: bottom right;
-}
-
-.footermenu
-{
- /*border-top: solid white 1px; */
-}
-
-.footermenuitem
-{
- margin-top: 5px;
- margin-bottom: 5px;
- margin-right: 5px;
- margin-left: 25px;
- display: list-item;
- list-style: square outside;
-}
-
-.footermenumessage
-{
- margin: 5px;
-}
\ No newline at end of file
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/blue/base_bg.png
Binary file static/light_hatched_style/blue/base_bg.png has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/blue/data_empty.png
Binary file static/light_hatched_style/blue/data_empty.png has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/blue/data_error.png
Binary file static/light_hatched_style/blue/data_error.png has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/blue/data_ok.png
Binary file static/light_hatched_style/blue/data_ok.png has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/blue/data_queued.png
Binary file static/light_hatched_style/blue/data_queued.png has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/blue/data_running.gif
Binary file static/light_hatched_style/blue/data_running.gif has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/blue/done_message_icon.png
Binary file static/light_hatched_style/blue/done_message_icon.png has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/blue/error_bg.png
Binary file static/light_hatched_style/blue/error_bg.png has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/blue/error_large.png
Binary file static/light_hatched_style/blue/error_large.png has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/blue/error_message_icon.png
Binary file static/light_hatched_style/blue/error_message_icon.png has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/blue/error_small.png
Binary file static/light_hatched_style/blue/error_small.png has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/blue/footer_title_bg.png
Binary file static/light_hatched_style/blue/footer_title_bg.png has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/blue/form_title_bg.png
Binary file static/light_hatched_style/blue/form_title_bg.png has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/blue/gray_bg.png
Binary file static/light_hatched_style/blue/gray_bg.png has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/blue/history.css
--- a/static/light_hatched_style/blue/history.css
+++ /dev/null
@@ -1,108 +0,0 @@
-body
-{
- background: white;
- color: #303030;
- background-image: url(menu_bg.png);
- background-repeat: repeat-x;
- background-position: top;
- margin-top: 5px;
- margin-right: 0;
- margin-left: 0;
- border: 0;
- padding: 0;
-}
-
-a
-{
- color: #base_text;
-}
-
-div.historyLinks
-{
- padding: 5px;
- margin: 5px;
-}
-
-div.historyItem
-{
- padding: 5px;
- padding-right: 15px;
- padding-left: 15px;
- margin-bottom: 5px;
-}
-
-div.historyItem-ok
-{
- padding: 5px;
- padding-right: 15px;
- padding-left: 15px;
- margin-bottom: 5px;
- border-top: solid #66AA66 1px;
- border-bottom: solid #66AA66 1px;
- background: #CCFFCC;
- background-image: url(ok_bg.png);
- background-repeat: repeat-x;
- background-position: top;
-
-}
-
-div.historyItem-error, div.historyItem-empty
-{
- padding: 5px;
- padding-right: 15px;
- padding-left: 15px;
- margin-bottom: 5px;
- border-top: solid #AA6666 1px;
- border-bottom: solid #AA6666 1px;
- background: #FFCCCC;
- background-image: url(error_bg.png);
- background-repeat: repeat-x;
- background-position: top;
-}
-
-div.historyItem-running
-{
- padding: 5px;
- padding-right: 15px;
- padding-left: 15px;
- margin-bottom: 5px;
- border-top: solid #AAAA66 1px;
- border-bottom: solid #AAAA66 1px;
- background: #FFFFCC;
- background-image: url(warn_bg.png);
- background-repeat: repeat-x;
- background-position: top;
-}
-
-div.historyItem-queued
-{
- padding: 5px;
- padding-right: 15px;
- padding-left: 15px;
- margin-bottom: 5px;
- border-top: solid #888888 1px;
- border-bottom: solid #888888 1px;
- background: #EEEEEE;
- background-image: url(gray_bg.png);
- background-repeat: repeat-x;
- background-position: top;
-}
-
-div.historyItemBody div
-{
- padding-top: 2px;
-}
-
-pre.peek
-{
- background: white;
- color: black;
- width: 100%;
- overflow: auto;
-}
-
-pre.peek th
-{
- color: white;
- background: #023858;
-}
\ No newline at end of file
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/blue/info_large.png
Binary file static/light_hatched_style/blue/info_large.png has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/blue/info_message_icon.png
Binary file static/light_hatched_style/blue/info_message_icon.png has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/blue/info_small.png
Binary file static/light_hatched_style/blue/info_small.png has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/blue/masthead.css
--- a/static/light_hatched_style/blue/masthead.css
+++ /dev/null
@@ -1,26 +0,0 @@
-body
-{
- background: #023858 url(masthead_bg.png) bottom;
- color: white;
- padding: 0;
- border: 0;
- margin: 3px;
- margin-right: 10px;
- margin-left: 10px;
-}
-
-div.pageTitle
-{
- font-size: 160%;
- font-weight: bold;
-}
-
-div.pageTitle a:link, div.pageTitle a:visited, div.pageTitle a:active, div.pageTitle a:hover
-{
- text-decoration: none;
-}
-
-a:link, a:visited, a:active
-{
- color: #ece7f2;
-}
\ No newline at end of file
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/blue/masthead_bg.png
Binary file static/light_hatched_style/blue/masthead_bg.png has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/blue/menu_bg.png
Binary file static/light_hatched_style/blue/menu_bg.png has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/blue/ok_bg.png
Binary file static/light_hatched_style/blue/ok_bg.png has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/blue/ok_large.png
Binary file static/light_hatched_style/blue/ok_large.png has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/blue/ok_small.png
Binary file static/light_hatched_style/blue/ok_small.png has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/blue/tool_menu.css
--- a/static/light_hatched_style/blue/tool_menu.css
+++ /dev/null
@@ -1,46 +0,0 @@
-body
-{
- background: white;
- color: #303030;
- background: white url(menu_bg.png) top repeat-x;
- margin: 5px;
- margin-right: 15px;
- margin-left: 15px;
-}
-
-hr
-{
- border: none;
- height: 0px;
- margin-top: 0px;
-}
-
-div.toolSectionPad
-{
- margin: 0;
- padding: 0;
- height: 5px;
- font-size: 0px;
-}
-
-div.toolSectionDetailsInner
-{
- margin-left: 10px;
- margin-right: 10px;
-}
-
-div.toolSectionTitle
-{
- padding-bottom: 0px;
- font-weight: bold;
-}
-
-div.toolTitle
-{
- padding-top: 5px;
- padding-bottom: 5px;
- margin-left: 16px;
- margin-right: 10px;
- display: list-item;
- list-style: square outside;
-}
\ No newline at end of file
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/blue/wait_large.png
Binary file static/light_hatched_style/blue/wait_large.png has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/blue/wait_small.png
Binary file static/light_hatched_style/blue/wait_small.png has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/blue/warn_bg.png
Binary file static/light_hatched_style/blue/warn_bg.png has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/blue/warn_large.png
Binary file static/light_hatched_style/blue/warn_large.png has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/blue/warn_message_icon.png
Binary file static/light_hatched_style/blue/warn_message_icon.png has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/blue/warn_small.png
Binary file static/light_hatched_style/blue/warn_small.png has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/blue_colors.ini
--- a/static/light_hatched_style/blue_colors.ini
+++ /dev/null
@@ -1,43 +0,0 @@
-base_text=#303030
-base_bg_top=#EEEEFF
-link_text=#303030
-header_text=#023858
-menu_bg_top=#CCCCFF
-menu_bg_hatch=#AAAAFF
-# Forms
-form_title_bg=#ebd9b2
-form_title_bg_hatch=#d2c099
-form_border=#d8b365
-form_body_bg=white
-odd_row_bg=#FFFF99
-# Messages
-error_message_border=#AA6666
-error_message_bg=#FFCCCC
-warn_message_border=#AAAA66
-warn_message_bg=#FFFFCC
-done_message_border=#66AA66
-done_message_bg=#CCFFCC
-info_message_border=#6666AA
-info_message_bg=#CCCCFF
-# Tables
-table_header_bg=#ebd9b2
-table_row_bg=white
-table_border=#d8b365
-# Footers
-footer_bg=#023858
-footer_title_bg=#023858
-footer_title_hatch=#000000
-# History
-history_error_border=#AA6666
-history_error_bg=#FFCCCC
-history_running_border=#AAAA66
-history_running_bg=#FFFFCC
-history_ok_border=#66AA66
-history_ok_bg=#CCFFCC
-history_queued_border=#888888
-history_queued_bg=#EEEEEE
-peek_table_header=#023858
-# Masthead
-masthead_bg=#023858
-masthead_bg_hatch=#000000
-masthead_link=#ece7f2
\ No newline at end of file
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/galaxy_icons.svg
--- a/static/light_hatched_style/galaxy_icons.svg
+++ /dev/null
@@ -1,345 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://web.resource.org/cc/"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="24in"
- height="4in"
- id="svg2"
- sodipodi:version="0.32"
- inkscape:version="0.43"
- version="1.0"
- sodipodi:docbase="/Users/james/Desktop"
- sodipodi:docname="galaxy_icons.svg"
- inkscape:export-filename="/Users/james/Desktop/galaxy_icons.png"
- inkscape:export-xdpi="90"
- inkscape:export-ydpi="90">
- <defs
- id="defs4" />
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#66f266"
- borderopacity="1"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="0.87055056"
- inkscape:cx="1969.2512"
- inkscape:cy="134.59503"
- inkscape:document-units="px"
- inkscape:current-layer="layer1"
- inkscape:showpageshadow="false"
- showgrid="true"
- showguides="false"
- inkscape:guide-bbox="true"
- inkscape:window-width="956"
- inkscape:window-height="784"
- inkscape:window-x="161"
- inkscape:window-y="46"
- inkscape:grid-points="true">
- <sodipodi:guide
- orientation="vertical"
- position="400"
- id="guide2200" />
- <sodipodi:guide
- orientation="horizontal"
- position="320"
- id="guide2204" />
- <sodipodi:guide
- orientation="horizontal"
- position="42"
- id="guide2206" />
- <sodipodi:guide
- orientation="vertical"
- position="41"
- id="guide2208" />
- <sodipodi:guide
- orientation="vertical"
- position="321"
- id="guide2210" />
- <sodipodi:guide
- orientation="vertical"
- position="678"
- id="guide2212" />
- <sodipodi:guide
- orientation="vertical"
- position="759"
- id="guide2214" />
- <sodipodi:guide
- orientation="vertical"
- position="1120"
- id="guide2218" />
- <sodipodi:guide
- orientation="vertical"
- position="1038.0328"
- id="guide2240" />
- <sodipodi:guide
- orientation="horizontal"
- position="179.60512"
- id="guide2274" />
- <sodipodi:guide
- orientation="vertical"
- position="1260.0643"
- id="guide2276" />
- <sodipodi:guide
- orientation="vertical"
- position="1482.0958"
- id="guide2336" />
- <sodipodi:guide
- orientation="vertical"
- position="1759.2817"
- id="guide2340" />
- <sodipodi:guide
- orientation="vertical"
- position="1841.3061"
- id="guide2363" />
- </sodipodi:namedview>
- <metadata
- id="metadata7">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- inkscape:label="Layer 1"
- inkscape:groupmode="layer"
- id="layer1">
- <path
- sodipodi:type="arc"
- style="fill:#04cd00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- id="path1307"
- sodipodi:cx="205"
- sodipodi:cy="205"
- sodipodi:rx="134.28572"
- sodipodi:ry="134.28572"
- d="M 339.28572 205 A 134.28572 134.28572 0 1 1 70.714279,205 A 134.28572 134.28572 0 1 1 339.28572 205 z"
- transform="matrix(1.034976,0,0,1.034976,-31.24154,-32.6701)" />
- <path
- sodipodi:type="arc"
- style="fill:#838383;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- id="path2220"
- sodipodi:cx="205"
- sodipodi:cy="205"
- sodipodi:rx="134.28572"
- sodipodi:ry="134.28572"
- d="M 339.28572 205 A 134.28572 134.28572 0 1 1 70.714279,205 A 134.28572 134.28572 0 1 1 339.28572 205 z"
- transform="matrix(1.034976,0,0,1.034976,1047.812,-33.15258)" />
- <rect
- style="fill:#5050ff;fill-opacity:1;stroke:none;stroke-width:40;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- id="rect2224"
- width="277"
- height="278"
- x="401"
- y="43"
- ry="103"
- rx="103" />
- <path
- style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffffff;stroke-width:40;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- d="M 498.7868,172 L 541.58579,172 L 541.58579,278.00505"
- id="path2230"
- sodipodi:nodetypes="ccc" />
- <path
- sodipodi:type="arc"
- style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:40.00038147;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- id="path2232"
- sodipodi:cx="501.33871"
- sodipodi:cy="84.935463"
- sodipodi:rx="6.3639612"
- sodipodi:ry="6.3639612"
- d="M 507.70268 84.935463 A 6.3639612 6.3639612 0 1 1 494.97475,84.935463 A 6.3639612 6.3639612 0 1 1 507.70268 84.935463 z"
- transform="matrix(1.0731,0,0,0.951722,-0.622656,25.52899)" />
- <path
- sodipodi:type="star"
- style="fill:#ffb400;fill-opacity:1;stroke:none;stroke-width:50;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- id="path2254"
- sodipodi:sides="3"
- sodipodi:cx="885.29767"
- sodipodi:cy="14.931891"
- sodipodi:r1="517.84943"
- sodipodi:r2="344.36987"
- sodipodi:arg1="0.50762901"
- sodipodi:arg2="1.5548266"
- inkscape:flatsided="false"
- inkscape:rounded="0.22"
- inkscape:randomized="0"
- d="M 1337.846,266.66192 C 1289.0223,354.43494 991.22247,357.65394 890.79693,359.25785 C 790.37139,360.86176 492.62068,367.15437 441.01889,280.98526 C 389.41709,194.81614 535.52926,-64.695565 584.35301,-152.46859 C 633.17675,-240.24161 776.60255,-501.2476 877.02809,-502.8515 C 977.45363,-504.45541 1129.1413,-248.1627 1180.7431,-161.99359 C 1232.3449,-75.824474 1386.6698,178.8889 1337.846,266.66192 z "
- transform="matrix(0.306393,0,0,0.318225,624.2074,203.0224)" />
- <path
- style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffffff;stroke-width:40;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- d="M 113.97056,196.98066 L 168.17157,236.85786 L 248.34315,104.65685"
- id="path2270"
- sodipodi:nodetypes="ccc" />
- <path
- style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffffff;stroke-width:40;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- d="M 1177.1421,96.07107 L 1263.1421,190 L 1317.1217,162.2807"
- id="path2272"
- sodipodi:nodetypes="ccc" />
- <rect
- style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:40;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- id="rect2280"
- width="29.446899"
- height="21"
- x="1140.5531"
- y="170"
- ry="0" />
- <rect
- style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:40;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- id="rect2326"
- width="29.446899"
- height="21"
- x="1351.5531"
- y="169.77354"
- ry="0" />
- <rect
- style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:40;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- id="rect2328"
- width="29.446899"
- height="21"
- x="60.260208"
- y="-1271.2715"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:40;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- id="rect2330"
- width="29.446899"
- height="21"
- x="270"
- y="-1270.5857"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:40;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- id="rect2332"
- width="131"
- height="52"
- x="100"
- y="-920.58582"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:40;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- id="rect2334"
- width="39.027634"
- height="52"
- x="250"
- y="-919.87872"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <path
- sodipodi:type="arc"
- style="fill:#ff4343;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- id="path2338"
- sodipodi:cx="205"
- sodipodi:cy="205"
- sodipodi:rx="134.28572"
- sodipodi:ry="134.28572"
- d="M 339.28572 205 A 134.28572 134.28572 0 1 1 70.714279,205 A 134.28572 134.28572 0 1 1 339.28572 205 z"
- transform="matrix(1.034976,0,0,1.034976,1409.347,-33.15258)" />
- <path
- style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffffff;stroke-width:40;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- d="M 1552.0629,100.60072 L 1692.5138,254.57128"
- id="path2348"
- sodipodi:nodetypes="cc" />
- <path
- style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffffff;stroke-width:40;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- d="M 1692.5138,100.60072 L 1552.0629,254.57128"
- id="path2357"
- sodipodi:nodetypes="cc" />
- <path
- sodipodi:type="arc"
- style="fill:#838383;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- id="path2359"
- sodipodi:cx="205"
- sodipodi:cy="205"
- sodipodi:rx="134.28572"
- sodipodi:ry="134.28572"
- d="M 339.28572 205 A 134.28572 134.28572 0 1 1 70.714279,205 A 134.28572 134.28572 0 1 1 339.28572 205 z"
- transform="matrix(1.034976,0,0,1.034976,1768.416,-30.36099)" />
- <g
- id="g2389">
- <path
- sodipodi:nodetypes="ccccc"
- id="path2373"
- d="M 1930,170.49538 L 1860,155 C 1857.0248,172.3719 1855.5,189.5625 1860,206 L 1930,189.58727 C 1929.1741,183.22331 1928.9462,176.85934 1930,170.49538 z "
- style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- <path
- sodipodi:nodetypes="ccccc"
- id="path2375"
- d="M 1941,146.46593 L 1888.1259,98.046542 C 1875.1851,112.76897 1868.0802,127.49141 1862.6259,142.21384 L 1931.4541,163 C 1933.471,155.74098 1937.1235,150.93552 1941,146.46593 z "
- style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- <path
- sodipodi:nodetypes="ccccc"
- id="path2377"
- d="M 1963.7479,130.36947 L 1942.1673,62 C 1927,66 1912.7224,73.141087 1898,87.50001 L 1947.2139,139.91545 C 1952.1833,135.10778 1957.8405,132.36324 1963.7479,130.36947 z "
- style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- </g>
- <g
- id="g2394"
- transform="matrix(0,1,-1,0,2161,-1801.748)">
- <path
- sodipodi:nodetypes="ccccc"
- id="path2396"
- d="M 1930,170.49538 L 1860,155 C 1857.0248,172.3719 1855.5,189.5625 1860,206 L 1930,189.58727 C 1929.1741,183.22331 1928.9462,176.85934 1930,170.49538 z "
- style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- <path
- sodipodi:nodetypes="ccccc"
- id="path2398"
- d="M 1941,146.46593 L 1888.1259,98.046542 C 1875.1851,112.76897 1868.0802,127.49141 1862.6259,142.21384 L 1931.4541,163 C 1933.471,155.74098 1937.1235,150.93552 1941,146.46593 z "
- style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- <path
- sodipodi:nodetypes="ccccc"
- id="path2400"
- d="M 1963.7479,130.36947 L 1942.1673,62 C 1927,66 1912.7224,73.141087 1898,87.50001 L 1947.2139,139.91545 C 1952.1833,135.10778 1957.8405,132.36324 1963.7479,130.36947 z "
- style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- </g>
- <g
- id="g2402"
- transform="matrix(-1,0,0,-1,3962.168,360.1885)">
- <path
- sodipodi:nodetypes="ccccc"
- id="path2404"
- d="M 1930,170.49538 L 1860,155 C 1857.0248,172.3719 1855.5,189.5625 1860,206 L 1930,189.58727 C 1929.1741,183.22331 1928.9462,176.85934 1930,170.49538 z "
- style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- <path
- sodipodi:nodetypes="ccccc"
- id="path2406"
- d="M 1941,146.46593 L 1888.1259,98.046542 C 1875.1851,112.76897 1868.0802,127.49141 1862.6259,142.21384 L 1931.4541,163 C 1933.471,155.74098 1937.1235,150.93552 1941,146.46593 z "
- style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- <path
- sodipodi:nodetypes="ccccc"
- id="path2408"
- d="M 1963.7479,130.36947 L 1942.1673,62 C 1927,66 1912.7224,73.141087 1898,87.50001 L 1947.2139,139.91545 C 1952.1833,135.10778 1957.8405,132.36324 1963.7479,130.36947 z "
- style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- </g>
- <g
- id="g2410"
- transform="matrix(0,-1,1,0,1800.429,2161.522)">
- <path
- sodipodi:nodetypes="ccccc"
- id="path2412"
- d="M 1930,170.49538 L 1860,155 C 1857.0248,172.3719 1855.5,189.5625 1860,206 L 1930,189.58727 C 1929.1741,183.22331 1928.9462,176.85934 1930,170.49538 z "
- style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- <path
- sodipodi:nodetypes="ccccc"
- id="path2414"
- d="M 1941,146.46593 L 1888.1259,98.046542 C 1875.1851,112.76897 1868.0802,127.49141 1862.6259,142.21384 L 1931.4541,163 C 1933.471,155.74098 1937.1235,150.93552 1941,146.46593 z "
- style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- <path
- sodipodi:nodetypes="ccccc"
- id="path2416"
- d="M 1963.7479,130.36947 L 1942.1673,62 C 1927,66 1912.7224,73.141087 1898,87.50001 L 1947.2139,139.91545 C 1952.1833,135.10778 1957.8405,132.36324 1963.7479,130.36947 z "
- style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- </g>
- </g>
-</svg>
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/galaxy_spinner.fla
Binary file static/light_hatched_style/galaxy_spinner.fla has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/gradient.py
--- a/static/light_hatched_style/gradient.py
+++ /dev/null
@@ -1,74 +0,0 @@
-#!/usr/bin/env python
-
-"""
-usage: %prog width height bg_color hatch_color [color alpha stop_pos] +
-"""
-
-from __future__ import division
-
-import sys
-import cairo
-
-assert sys.version_info[:2] >= ( 2, 4 )
-
-def parse_css_color( color ):
- if color.startswith( '#' ):
- color = color[1:]
- if len( color ) == 3:
- r = int( color[0], 16 )
- g = int( color[1], 16 )
- b = int( color[2], 16 )
- elif len( color ) == 6:
- r = int( color[0:2], 16 )
- g = int( color[2:4], 16 )
- b = int( color[4:6], 16 )
- else:
- raise Exception( "Color should be 3 hex numbers" )
- return r/256, g/256, b/256
-
-def gradient( width, height, args ):
- pat = cairo.LinearGradient(0.0, 0.0, 0.0, height)
- while len( args ) > 2:
- col = parse_css_color( args[0] )
- alpha = float( args[1])
- pos = float( args[2] )
- pat.add_color_stop_rgba( pos, col[0], col[1], col[2], alpha )
- args = args[3:]
- return pat
-
-def hatch( width, height, color ):
- im_surf = cairo.ImageSurface( cairo.FORMAT_ARGB32, width, width )
- c = cairo.Context( im_surf )
- c.set_source_rgb ( *color )
- c.set_line_width( 0.75 )
- for i in range( 0, 2*max(height,width), 3 ):
- c.move_to ( 0-10, i+10 )
- c.line_to ( width+10, i - width - 10 )
- c.stroke()
- pat = cairo.SurfacePattern( im_surf )
- pat.set_extend (cairo.EXTEND_REPEAT)
- return pat
-
-width = int( sys.argv[1] )
-height = int( sys.argv[2] )
-
-surface = cairo.ImageSurface( cairo.FORMAT_ARGB32, width, height )
-c = cairo.Context( surface )
-
-c.rectangle(0,0,width,height)
-c.set_source_rgb( *parse_css_color( sys.argv[3] ) )
-c.fill()
-
-if sys.argv[4] != "-":
- c.rectangle (0, 0, width, height)
- c.set_source( hatch( width, height, parse_css_color( sys.argv[4] ) ) )
- c.fill()
-
-pat = cairo.LinearGradient(0.0, 0.0, 0.0, height)
-pat.add_color_stop_rgba( 0, 1, 1, 1, 0 )
-pat.add_color_stop_rgba( 1, 1, 1, 1, 1 )
-c.rectangle (0, 0, width, height)
-c.set_source( gradient( width, height, sys.argv[5:] ) )
-c.fill()
-
-surface.write_to_png( "/dev/stdout" )
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/green/base.css
--- a/static/light_hatched_style/green/base.css
+++ /dev/null
@@ -1,231 +0,0 @@
-body
-{
- font: 75% verdana, "Bitstream Vera Sans", geneva, arial, helvetica, helve, sans-serif;
- background: white;
- color: #303030;
- background-image: url(/static/style/base_bg.png);
- background-repeat: repeat-x;
- background-position: top;
- margin: 10px;
- margin-right: 15px;
- margin-left: 15px;
-}
-
-a:link, a:visited, a:active
-{
- color: #303030;
-}
-
-h1, h2, h3, h4
-{
- color: #025838;
- /*text-shadow: #bbb 2px 2px 1px;*/
-}
-
-hr
-{
- border: none;
- border-bottom: dotted #303030 1px;
-}
-
-div.toolForm
-{
- margin-right: -5px;
- margin-left: -5px;
-}
-
-div.toolFormTitle
-{
- background: #ebd9b2;
- background-image: url(/static/style/form_title_bg.png);
- background-repeat: repeat-x;
- background-position: top;
- border-top: solid #d8b365 1px;
- border-bottom: solid #d8b365 1px;
- font-weight: bold;
- padding: 5px;
-}
-
-div.toolParamHelp
-{
- font-style: italic;
-}
-
-div.toolFormBody
-{
- background: white;
- border-bottom: solid #d8b365 1px;
- padding: 5px;
-}
-
-div.toolHelp
-{
-}
-
-div.toolHelpBody
-{
-}
-
-select
-{
- max-width: 300px;
-}
-
-.errormessage, .warningmessage, .donemessage, .infomessage
-{
- padding: 10px;
- padding-left: 52px;
- min-height: 32px;
- border-top: 1px solid #AA6666;
- border-bottom: 1px solid #AA6666;
- background-color: #FFCCCC;
- background-image: url(/static/style/error_large.png);
- background-repeat: no-repeat;
- background-position: 10px 10px;
-}
-
-.warningmessage
-{
- background-image: url(/static/style/warn_large.png);
- border-color: #AAAA66;
- background-color: #FFFFCC;
-}
-
-.donemessage
-{
- background-image: url(/static/style/ok_large.png);
- border-color: #66AA66;
- background-color: #CCFFCC;
-}
-
-.infomessage
-{
- background-image: url(/static/style/info_large.png);
- border-color: #6666AA;
- background-color: #CCCCFF;
-}
-
-.errormessagesmall, .warningmessagesmall, .donemessagesmall, .infomessagesmall
-{
- padding: 5px;
- padding-left: 25px;
- min-height: 25px;
- border-top: 1px solid #AA6666;
- border-bottom: 1px solid #AA6666;
- background-color: #FFCCCC;
- background-image: url(/static/style/error_small.png);
- background-repeat: no-repeat;
- background-position: 5px 5px;
-}
-
-.warningmessagesmall
-{
- background-image: url(/static/style/warn_small.png);
- border-color: #AAAA66;
- background-color: #FFFFCC;
-}
-
-.donemessagesmall
-{
- background-image: url(/static/style/ok_small.png);
- border-color: #66AA66;
- background-color: #CCFFCC;
-}
-
-.infomessagesmall
-{
- background-image: url(/static/style/info_small.png);
- border-color: #6666AA;
- background-color: #CCCCFF;
-}
-
-.errormark, .warningmark, .donemark, .infomark, .ok_bgr, .err_bgr
-{
- padding-left: 20px;
- min-height: 15px;
- background: url(/static/style/error_small.png) no-repeat;
-}
-
-.warningmark
-{
- background-image: url(/static/style/warn_small.png);
-}
-
-.donemark
-{
- background-image: url(/static/style/ok_small.png);
-}
-
-.infomark, .ok_bgr
-{
- background-image: url(/static/style/info_small.png);
-}
-
-table.colored td
-{
- padding: 5px;
-}
-
-table.colored tr.header
-{
- background: #ebb2d9;
- font-weight: bold;
-}
-
-table.colored tr
-{
- background: white;
-}
-
-div.debug
-{
- margin: 10px;
- padding: 5px;
- background: #FFFF99;
- border: solid #FFFF33 1px;
- color: black;
-}
-
-#footer {
- position: fixed;
- background: #025838;
- width: 100%;
- left: 0px;
- bottom: 0px;
- color: white;
- z-index:10000;
- opacity:0.9;
- filter:alpha(opacity:90);
-}
-
-#footer a {
- color: white;
-}
-
-.footerheader
-{
- padding: 5px;
- text-align:center;
- background-image: url(/static/style/footer_title_bg.png);
- background-position: bottom;
-}
-
-.footermenu
-{
- /*border-top: solid white 1px; */
-}
-
-.footermenuitem
-{
- margin-top: 5px;
- margin-bottom: 5px;
- margin-right: 5px;
- margin-left: 25px;
- display: list-item;
- list-style: square outside;
-}
-
-.footermenumessage
-{
- margin: 5px;
-}
\ No newline at end of file
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/green/base_bg.png
Binary file static/light_hatched_style/green/base_bg.png has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/green/error_bg.png
Binary file static/light_hatched_style/green/error_bg.png has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/green/footer_title_bg.png
Binary file static/light_hatched_style/green/footer_title_bg.png has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/green/form_title_bg.png
Binary file static/light_hatched_style/green/form_title_bg.png has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/green/gray_bg.png
Binary file static/light_hatched_style/green/gray_bg.png has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/green/history.css
--- a/static/light_hatched_style/green/history.css
+++ /dev/null
@@ -1,102 +0,0 @@
-body
-{
- background: white;
- color: #303030;
- background-image: url(/static/style/menu_bg.png);
- background-repeat: repeat-x;
- background-position: top;
- margin-top: 5px;
- margin-right: 0;
- margin-left: 0;
- border: 0;
- padding: 0;
-}
-
-a
-{
- color: #base_text;
-}
-
-div.historyItem
-{
- padding: 5px;
- padding-right: 15px;
- padding-left: 15px;
- margin-bottom: 5px;
-}
-
-div.historyItem-ok
-{
- padding: 5px;
- padding-right: 15px;
- padding-left: 15px;
- margin-bottom: 5px;
- border-top: solid #66AA66 1px;
- border-bottom: solid #66AA66 1px;
- background: #CCFFCC;
- background-image: url(/static/style/ok_bg.png);
- background-repeat: repeat-x;
- background-position: top;
-
-}
-
-div.historyItem-error
-{
- padding: 5px;
- padding-right: 15px;
- padding-left: 15px;
- margin-bottom: 5px;
- border-top: solid #AA6666 1px;
- border-bottom: solid #AA6666 1px;
- background: #FFCCCC;
- background-image: url(/static/style/error_bg.png);
- background-repeat: repeat-x;
- background-position: top;
-}
-
-div.historyItem-running
-{
- padding: 5px;
- padding-right: 15px;
- padding-left: 15px;
- margin-bottom: 5px;
- border-top: solid #AAAA66 1px;
- border-bottom: solid #AAAA66 1px;
- background: #FFFFCC;
- background-image: url(/static/style/warn_bg.png);
- background-repeat: repeat-x;
- background-position: top;
-}
-
-div.historyItem-queued
-{
- padding: 5px;
- padding-right: 15px;
- padding-left: 15px;
- margin-bottom: 5px;
- border-top: solid #888888 1px;
- border-bottom: solid #888888 1px;
- background: #EEEEEE;
- background-image: url(/static/style/gray_bg.png);
- background-repeat: repeat-x;
- background-position: top;
-}
-
-div.historyItemBody div
-{
- padding-top: 2px;
-}
-
-pre.peek
-{
- background: white;
- color: black;
- width: 100%;
- overflow: auto;
-}
-
-pre.peek th
-{
- color: white;
- background: #023858;
-}
\ No newline at end of file
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/green/masthead.css
--- a/static/light_hatched_style/green/masthead.css
+++ /dev/null
@@ -1,26 +0,0 @@
-body
-{
- background: #025838 url(/static/style/masthead_bg.png) bottom;
- color: white;
- padding: 0;
- border: 0;
- margin: 3px;
- margin-right: 10px;
- margin-left: 10px;
-}
-
-div.pageTitle
-{
- font-size: x-large;
- font-weight: bold;
-}
-
-div.pageTitle a:link, div.pageTitle a:visited, div.pageTitle a:active, div.pageTitle a:hover
-{
- text-decoration: none;
-}
-
-a:link, a:visited, a:active
-{
- color: #ecf2e7;
-}
\ No newline at end of file
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/green/masthead_bg.png
Binary file static/light_hatched_style/green/masthead_bg.png has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/green/menu_bg.png
Binary file static/light_hatched_style/green/menu_bg.png has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/green/ok_bg.png
Binary file static/light_hatched_style/green/ok_bg.png has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/green/tool_menu.css
--- a/static/light_hatched_style/green/tool_menu.css
+++ /dev/null
@@ -1,38 +0,0 @@
-body
-{
- background: white;
- color: #303030;
- background: white url(/static/style/menu_bg.png) top repeat-x;
- margin: 10px;
- margin-right: 15px;
- margin-left: 15px;
-}
-
-hr
-{
- border: none;
- height: 0px;
- margin-top: 2px;
-}
-
-div.toolSectionDetailsInner
-{
- margin-left: 10px;
- margin-right: 10px;
-}
-
-div.toolSectionTitle
-{
- padding-bottom: 5px;
- font-weight: bold;
-}
-
-div.toolTitle
-{
- padding-top: 5px;
- padding-bottom: 5px;
- margin-left: 16px;
- margin-right: 10px;
- display: list-item;
- list-style: square outside;
-}
\ No newline at end of file
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/green/warn_bg.png
Binary file static/light_hatched_style/green/warn_bg.png has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/green_colors.ini
--- a/static/light_hatched_style/green_colors.ini
+++ /dev/null
@@ -1,42 +0,0 @@
-base_text=#303030
-base_bg_top=#EEFFEE
-link_text=#303030
-header_text=#025838
-menu_bg_top=#DDFFDD
-menu_bg_hatch=#99FF99
-# Forms
-form_title_bg=#ebd9b2
-form_title_bg_hatch=#b9a780
-form_border=#d8b365
-form_body_bg=white
-odd_row_bg=#FFFF99
-# Messages
-error_message_border=#AA6666
-error_message_bg=#FFCCCC
-warn_message_border=#AAAA66
-warn_message_bg=#FFFFCC
-done_message_border=#66AA66
-done_message_bg=#CCFFCC
-info_message_border=#6666AA
-info_message_bg=#CCCCFF
-# Tables
-table_header_bg=#ebb2d9
-table_row_bg=white
-# Footers
-footer_bg=#025838
-footer_title_bg=#025838
-footer_title_hatch=#000000
-# History
-history_error_border=#AA6666
-history_error_bg=#FFCCCC
-history_running_border=#AAAA66
-history_running_bg=#FFFFCC
-history_ok_border=#66AA66
-history_ok_bg=#CCFFCC
-history_queued_border=#888888
-history_queued_bg=#EEEEEE
-peek_table_header=#023858
-# Masthead
-masthead_bg=#025838
-masthead_bg_hatch=#000000
-masthead_link=#ecf2e7
\ No newline at end of file
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/history.css.tmpl
--- a/static/light_hatched_style/history.css.tmpl
+++ /dev/null
@@ -1,108 +0,0 @@
-body
-{
- background: white;
- color: $base_text;
- background-image: url(menu_bg.png);
- background-repeat: repeat-x;
- background-position: top;
- margin-top: 5px;
- margin-right: 0;
- margin-left: 0;
- border: 0;
- padding: 0;
-}
-
-a
-{
- color: #base_text;
-}
-
-div.historyLinks
-{
- padding: 5px;
- margin: 5px;
-}
-
-div.historyItem
-{
- padding: 5px;
- padding-right: 15px;
- padding-left: 15px;
- margin-bottom: 5px;
-}
-
-div.historyItem-ok
-{
- padding: 5px;
- padding-right: 15px;
- padding-left: 15px;
- margin-bottom: 5px;
- border-top: solid $history_ok_border 1px;
- border-bottom: solid $history_ok_border 1px;
- background: $history_ok_bg;
- background-image: url(ok_bg.png);
- background-repeat: repeat-x;
- background-position: top;
-
-}
-
-div.historyItem-error, div.historyItem-empty
-{
- padding: 5px;
- padding-right: 15px;
- padding-left: 15px;
- margin-bottom: 5px;
- border-top: solid $history_error_border 1px;
- border-bottom: solid $history_error_border 1px;
- background: $history_error_bg;
- background-image: url(error_bg.png);
- background-repeat: repeat-x;
- background-position: top;
-}
-
-div.historyItem-running
-{
- padding: 5px;
- padding-right: 15px;
- padding-left: 15px;
- margin-bottom: 5px;
- border-top: solid $history_running_border 1px;
- border-bottom: solid $history_running_border 1px;
- background: $history_running_bg;
- background-image: url(warn_bg.png);
- background-repeat: repeat-x;
- background-position: top;
-}
-
-div.historyItem-queued
-{
- padding: 5px;
- padding-right: 15px;
- padding-left: 15px;
- margin-bottom: 5px;
- border-top: solid $history_queued_border 1px;
- border-bottom: solid $history_queued_border 1px;
- background: $history_queued_bg;
- background-image: url(gray_bg.png);
- background-repeat: repeat-x;
- background-position: top;
-}
-
-div.historyItemBody div
-{
- padding-top: 2px;
-}
-
-pre.peek
-{
- background: white;
- color: black;
- width: 100%;
- overflow: auto;
-}
-
-pre.peek th
-{
- color: white;
- background: $peek_table_header;
-}
\ No newline at end of file
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/make_style.py
--- a/static/light_hatched_style/make_style.py
+++ /dev/null
@@ -1,64 +0,0 @@
-#!/usr/bin/env python
-
-import sys
-from Cheetah.Template import Template
-import string
-from subprocess import Popen, PIPE
-import os.path
-
-assert sys.version_info[:2] >= ( 2, 4 )
-
-def run( cmd ):
- return Popen( cmd, stdout=PIPE).communicate()[0]
-
-templates = [ ( "base.css.tmpl", "base.css" ),
- ( "masthead.css.tmpl", "masthead.css"),
- ( "history.css.tmpl", "history.css" ),
- ( "tool_menu.css.tmpl", "tool_menu.css" ) ]
-
-images = [ ( "./gradient.py 9 1000 $menu_bg_top $menu_bg_hatch FFFFFF 0 0 FFFFFF 1 1", "menu_bg.png" ),
- ( "./gradient.py 9 1000 $base_bg_top - FFFFFF 0 0 FFFFFF 1 1", "base_bg.png" ),
- ( "./gradient.py 9 50 $masthead_bg $masthead_bg_hatch 000000 0 0.5 000000 1 1", "masthead_bg.png" ),
- ( "./gradient.py 9 30 $footer_title_bg $footer_title_hatch 000000 0 0.5 000000 1 1", "footer_title_bg.png" ),
- ( "./gradient.py 9 50 $form_title_bg $form_title_bg_hatch FFFFFF 0 0 FFFFFF 0.5 1", "form_title_bg.png" ),
- ( "./gradient.py 9 200 $history_ok_bg - FFFFFF 0 0.5 FFFFFF 0.5 1", "ok_bg.png" ),
- ( "./gradient.py 9 200 $history_error_bg - FFFFFF 0 0.5 FFFFFF 0.5 1", "error_bg.png" ),
- ( "./gradient.py 9 200 $history_running_bg - FFFFFF 0 0.5 FFFFFF 0.5 1", "warn_bg.png" ),
- ( "./gradient.py 9 200 $history_queued_bg - FFFFFF 0 0.5 FFFFFF 0.5 1", "gray_bg.png" ) ]
-
-shared_images = [
- # Dialog boxes
- ( "ok_large.png", "done_message_bg", "done_message_icon.png" ),
- ( "info_large.png", "info_message_bg", "info_message_icon.png" ),
- ( "warn_large.png", "warn_message_bg", "warn_message_icon.png" ),
- ( "error_large.png", "error_message_bg", "error_message_icon.png" ),
- # History icons
- ( "ok_small.png", "history_ok_bg", "data_ok.png" ),
- ( "error_small.png", "history_error_bg", "data_error.png" ),
- ( "wait_small.png", "history_queued_bg", "data_queued.png" ) ]
-
-
-vars, out_dir = sys.argv[1:]
-
-context = dict()
-for line in open( vars ):
- if line.startswith( '#' ):
- continue
- key, value = line.rstrip("\r\n").split( '=' )
- if value.startswith( '"' ) and value.endswith( '"' ):
- value = value[1:-1]
- context[key] = value
-
-for input, output in templates:
- print input ,"->", output
- open( os.path.join( out_dir, output ), "w" ).write( str( Template( file=input, searchList=[context] ) ) )
-
-for rule, output in images:
- t = string.Template( rule ).substitute( context )
- print t, "->", output
- open( os.path.join( out_dir, output ), "w" ).write( run( t.split() ) )
-
-for src, bg, out in shared_images:
- t = "./png_over_color.py shared_images/%s %s %s" % ( src, context[bg], os.path.join( out_dir, out ) )
- print t
- run( t.split() )
\ No newline at end of file
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/masthead.css.tmpl
--- a/static/light_hatched_style/masthead.css.tmpl
+++ /dev/null
@@ -1,26 +0,0 @@
-body
-{
- background: $masthead_bg url(masthead_bg.png) bottom;
- color: white;
- padding: 0;
- border: 0;
- margin: 3px;
- margin-right: 10px;
- margin-left: 10px;
-}
-
-div.pageTitle
-{
- font-size: 160%;
- font-weight: bold;
-}
-
-div.pageTitle a:link, div.pageTitle a:visited, div.pageTitle a:active, div.pageTitle a:hover
-{
- text-decoration: none;
-}
-
-a:link, a:visited, a:active
-{
- color: $masthead_link;
-}
\ No newline at end of file
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/png_over_color.py
--- a/static/light_hatched_style/png_over_color.py
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/usr/bin/env python
-
-import sys
-import Image
-import ImageColor
-
-assert sys.version_info[:2] >= ( 2, 4 )
-
-over = Image.open( sys.argv[1] )
-color = ImageColor.getrgb( sys.argv[2] )
-
-new = Image.new( 'RGBA', over.size, color )
-
-# 'Over' is passed twice since it has an alpha channel -- it is it's own mask
-new.paste( over, over )
-
-new.save( sys.argv[3] )
\ No newline at end of file
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/shared_images/data_empty.png
Binary file static/light_hatched_style/shared_images/data_empty.png has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/shared_images/data_error.png
Binary file static/light_hatched_style/shared_images/data_error.png has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/shared_images/data_ok.png
Binary file static/light_hatched_style/shared_images/data_ok.png has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/shared_images/data_queued.png
Binary file static/light_hatched_style/shared_images/data_queued.png has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/shared_images/data_running.gif
Binary file static/light_hatched_style/shared_images/data_running.gif has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/shared_images/error_large.png
Binary file static/light_hatched_style/shared_images/error_large.png has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/shared_images/error_small.png
Binary file static/light_hatched_style/shared_images/error_small.png has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/shared_images/info_large.png
Binary file static/light_hatched_style/shared_images/info_large.png has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/shared_images/info_small.png
Binary file static/light_hatched_style/shared_images/info_small.png has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/shared_images/ok_large.png
Binary file static/light_hatched_style/shared_images/ok_large.png has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/shared_images/ok_small.png
Binary file static/light_hatched_style/shared_images/ok_small.png has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/shared_images/wait_large.png
Binary file static/light_hatched_style/shared_images/wait_large.png has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/shared_images/wait_small.png
Binary file static/light_hatched_style/shared_images/wait_small.png has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/shared_images/warn_large.png
Binary file static/light_hatched_style/shared_images/warn_large.png has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/shared_images/warn_small.png
Binary file static/light_hatched_style/shared_images/warn_small.png has changed
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/light_hatched_style/tool_menu.css.tmpl
--- a/static/light_hatched_style/tool_menu.css.tmpl
+++ /dev/null
@@ -1,46 +0,0 @@
-body
-{
- background: white;
- color: $base_text;
- background: white url(menu_bg.png) top repeat-x;
- margin: 5px;
- margin-right: 15px;
- margin-left: 15px;
-}
-
-hr
-{
- border: none;
- height: 0px;
- margin-top: 0px;
-}
-
-div.toolSectionPad
-{
- margin: 0;
- padding: 0;
- height: 5px;
- font-size: 0px;
-}
-
-div.toolSectionDetailsInner
-{
- margin-left: 10px;
- margin-right: 10px;
-}
-
-div.toolSectionTitle
-{
- padding-bottom: 0px;
- font-weight: bold;
-}
-
-div.toolTitle
-{
- padding-top: 5px;
- padding-bottom: 5px;
- margin-left: 16px;
- margin-right: 10px;
- display: list-item;
- list-style: square outside;
-}
\ No newline at end of file
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/old_blue_style/base.css
--- a/static/old_blue_style/base.css
+++ /dev/null
@@ -1,335 +0,0 @@
-body
-{
- margin: 0;
- padding: 0;
- border: 0;
- font: smaller verdana, "Bitstream Vera Sans", geneva, arial, helvetica, helve, sans-serif;
- background: #3690c0;
-}
-
-body.toolMenuPage
-{
- background: #045a8d;
- color: #d0d1e6;
- /*background-image: url(/static/images/toolsExpandingMenu.gif);*/
- background-repeat: no-repeat;
- background-position: bottom right;
-}
-
-body.toolMenuPage a
-{
- color: #ece7f2;
-}
-
-body.toolMenuPage a:hover
-{
- color: white;
-}
-
-body.historyPage
-{
- background: #045a8d;
- color: #d0d1e6;
- /*background-image: url(/static/images/history.gif);*/
- background-repeat: no-repeat;
- background-position: bottom right;
-}
-
-body.historyPage a
-{
- color: #ece7f2;
-}
-
-body.mastheadPage
-{
- background: #023858;
- background-image: url(/static/images/hatch-fade-023858.gif);
- background-position: bottom;
- color: white;
-}
-
-body.mastheadPage a
-{
- color: #ece7f2;
-}
-
-div.pageTitle
-{
- font-size: x-large;
- font-weight: bold;
-}
-
-div.pageTitle a:link, div.pageTitle a:visited, div.pageTitle a:active, div.pageTitle a:hover
-{
- text-decoration: none;
-}
-
-/*
-6 class diverging BrBG
-
-br2: #8c510a
-br1: #d8b365
-br0: #f6e8c3
-gr0: #c7eae5
-gr1: #5ab4ac
-gr2: #01665e
-*/
-
-/*
-
-Dark to light:
-
-Blues
------
-
-0: #023858
-1: #045a8d
-3: #0570b0
-4: #3690c0
-5: #74a9cf
-6: #a6bddb
-7: #d0d1e6
-8: #ece7f2
-
-
-*/
-
-h1, h2, h3
-{
- color: white;
-}
-
-hr
-{
- border: none;
- border-bottom: dotted white 1px;
-}
-
-div.toolMenu
-{
- margin: 10px;
-}
-
-div.toolDivider
-{
- padding-top: 5px;
- padding-bottom: 5px;
-}
-
-div.toolSectionDetailsInner
-{
- margin-left: 10px;
- margin-right: 10px;
-}
-
-div.toolSectionTitle
-{
- padding-bottom: 5px;
- font-weight: bold;
-}
-
-/*div.toolSectionBg
-{
- background: #0570b0;
-}*/
-
-div.toolTitle
-{
- padding-top: 5px;
- padding-bottom: 5px;
- margin-left: 16px;
- margin-right: 10px;
- display: list-item;
- list-style: square outside;
-}
-
-div.toolForm
-{
- margin: 10px;
-}
-
-div.toolFormTitle
-{
- background: #d8b365;
- font-weight: bold;
- padding: 5px;
-}
-
-div.toolParamHelp
-{
- font-style: italic;
-}
-
-div.toolFormBody
-{
- background: #f6e8c3;
- padding: 5px;
-}
-
-td.errorMessage
-{
- color: #b30000;
-}
-
-div.toolHelp
-{
- margin: 10px;
-}
-
-div.toolHelpBody
-{
- background: white;
- padding: 5px;
-}
-
-div.historyItem
-{
- padding-top: 10px;
- padding-bottom: 10px;
- margin-right: 10px;
- margin-left: 10px;
- border-bottom: dotted #d0d1e6 1px;
-}
-
-div.historyItemBody div
-{
- padding-top: 2px;
-}
-
-pre.peek
-{
- background: #f6e8c3;
- color: black;
- width: 100%;
- overflow: auto;
-}
-
-div.document
-{
- margin: 10px;
-}
-
-select
-{
- max-width: 300px;
-}
-
-.errormessage, .warningmessage, .donemessage, .infomessage
-{
- margin: 10px;
- padding: .33em 0 .67em 42px;
- min-height: 32px;
- border-top: 5px solid #900;
- border-bottom: 5px solid #900;
- /* border-left: 1px solid #900; */
- /* border-right: 1px solid #900; */
- background: white;
- background-image: url(/images/icon_error_lrg.gif);
- background-repeat: no-repeat;
- background-position: 5px 5px;
-}
-
-.warningmessage
-{
- background-image: url(/images/icon_warning_lrg.gif);
- border-color: #c60;
-}
-
-.donemessage
-{
- background-image: url(/images/icon_success_lrg.gif);
- border-color: #090;
-}
-
-.infomessage
-{
- background-image: url(/images/icon_info_lrg.gif);
- border-color: #069;
-}
-
-.errormark, .warningmark, .donemark, .infomark, .ok_bgr, .err_bgr
-{
- padding-left: 20px;
- min-height: 15px;
- background: url(/images/icon_error_sml.gif) no-repeat;
-}
-
-.warningmark
-{
- background-image: url(/images/icon_warning_sml.gif);
-}
-
-.donemark
-{
- background-image: url(/images/icon_success_sml.gif);
-}
-
-.infomark, .ok_bgr
-{
- background-image: url(/images/icon_info_sml.gif);
-}
-
-table.colored td
-{
- padding: 5px;
-}
-
-table.colored tr.header
-{
- background: #d8b365;
- font-weight: bold;
-}
-
-table.colored tr
-{
- background: #f6e8c3;
-}
-
-div.debug
-{
- margin: 10px;
- padding: 5px;
- background: #FFFF99;
- border: solid #FFFF33 1px;
- color: black;
-}
-
-#footer {
- position: fixed;
- background: #023858;
- width: 100%;
- left: 0px;
- bottom: 0px;
- color: white;
- z-index:10000;
- opacity:0.9;
- filter:alpha(opacity:90);
-}
-
-.footerheader
-{
- padding: 5px;
- text-align:center;
- background-image: url(/static/images/hatch-fade-023858.gif);
- background-position: bottom;
-}
-
-.footermenu
-{
- border-top: solid white 1px;
-}
-
-.footermenuitem
-{
- margin-top: 5px;
- margin-bottom: 5px;
- margin-right: 5px;
- margin-left: 25px;
- display: list-item;
- list-style: square outside;
-}
-
-.footermenumessage
-{
- margin: 5px;
-}
\ No newline at end of file
diff -r 84c7d3575d9543489aead618c91a6406019a26d9 -r 709ec59344143cbe463885781d98221bd13968d2 static/old_blue_style/history.css
--- a/static/old_blue_style/history.css
+++ /dev/null
@@ -1,8 +0,0 @@
-div.historyItem, div.historyItem-ok, div.historyItem-running, div.historyItem-error, div.historyItem-queued, div.historyItem-empty
-{
- padding-top: 10px;
- padding-bottom: 10px;
- margin-right: 10px;
- margin-left: 10px;
- border-bottom: dotted #d0d1e6 1px;
-}
\ No newline at end of file
https://bitbucket.org/galaxy/galaxy-central/changeset/85af79deedef/
changeset: 85af79deedef
user: james_taylor
date: 2012-07-20 20:08:53
summary: Automated merge with https://bitbucket.org/galaxy/galaxy-central
affected #: 118 files
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/june_2007_style/Makefile
--- a/static/june_2007_style/Makefile
+++ b/static/june_2007_style/Makefile
@@ -26,5 +26,5 @@
../process_css.py ../$(INI) ..:../shared_images:../../images . < $< > $@
# Some dependencies
-base.css: variables.less galaxy_bootstrap.less iconic_stroke.less base_sprites.less
+base.css: variables.less galaxy_bootstrap.less galaxy_bootstrap_variables.less iconic_stroke.less base_sprites.less
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/june_2007_style/base.less
--- a/static/june_2007_style/base.less
+++ b/static/june_2007_style/base.less
@@ -10,10 +10,6 @@
.user-select(none);
}
-.shadow {
- .box-shadow();
-}
-
.parent-width {
.box-sizing(border-box);
width: 100%;
@@ -39,7 +35,6 @@
border: 0;
}
-
a, a:link, a:visited, a:active {
text-decoration: underline;
color: @link_text;
@@ -49,7 +44,26 @@
h1, h2, h3, h4 {
color: @header_text;
margin: 0.5em 0;
- /*text-shadow: #bbb 2px 2px 1px;*/
+}
+
+h1 {
+ font-size: 24px;
+}
+
+h2 {
+ font-size: 18px;
+ line-height: @baseLineHeight * 1.5;
+ small {
+ font-size: 14px;
+ }
+}
+
+h3 {
+ font-size: 14px;
+ line-height: @baseLineHeight;
+ small {
+ font-size: 12px;
+ }
}
h1:first-child, h2:first-child, h3:first-child, h4:first-child {
@@ -299,6 +313,7 @@
background: rgba(0,0,0,0.5);
}
+/*
.dialog-box-container {
position: relative;
margin-top: 80px;
@@ -339,6 +354,7 @@
.dialog-box .buttons {
padding: 5px;
}
+*/
// Messages for message box, slightly different style
@@ -684,7 +700,7 @@
// Selects
select {
- //border: 1px solid @formElementBorder;
+ //border: 1px solid @inputBorder;
padding: 2px;
font-size: @baseFontSize;
line-height: @baseLineHeight;
@@ -704,7 +720,7 @@
textarea, input[type="text"], input[type="password"] {
font-size: @baseFontSize;
line-height: @baseLineHeight;
- border: 1px solid @formElementBorder;
+ border: 1px solid @inputBorder;
padding: 3px;
}
@@ -714,7 +730,7 @@
font-size: @baseFontSize;
line-height: @baseLineHeight;
color: @gray;
- border: 1px solid @formElementBorder;
+ border: 1px solid @inputBorder;
padding-left: 14px !important;
padding-right: 14px !important;
margin-bottom: 0; // remove the default margin on all inputs
@@ -1262,7 +1278,7 @@
}
&.popup .label {
- border-right: solid @buttonBorder 1px;
+ border-right: solid @btnBorder 1px;
padding-right: 6px;
}
@@ -1637,10 +1653,6 @@
margin-top: 5px;
}
-.unified-panel-body .toolMenu {
- padding: 10px;
-}
-
div.toolSectionPad
{
margin: 0;
@@ -1737,3 +1749,22 @@
}
@import "base_sprites";
+
+.text-and-autocomplete-select {
+ // -sprite-group: fugue;
+ // -sprite-image: fugue/control-270.png;
+ // -sprite-horiz-position: right;
+ background: none;
+ position: relative;
+ padding-right: 18px;
+ &:after {
+ margin-top: 6px;
+ position: absolute;
+ top: 2px;
+ right: 6px;
+ width: 10px;
+ height: 10px;
+ .caret();
+ .opacity(80);
+ }
+}
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/june_2007_style/blue/base.css
--- a/static/june_2007_style/blue/base.css
+++ b/static/june_2007_style/blue/base.css
@@ -2,29 +2,55 @@
audio,canvas,video{display:inline-block;*display:inline;*zoom:1;}
audio:not([controls]){display:none;}
html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;}
-a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}
+a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}
a:hover,a:active{outline:0;}
sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline;}
sup{top:-0.5em;}
sub{bottom:-0.25em;}
-img{max-width:100%;height:auto;border:0;-ms-interpolation-mode:bicubic;}
+img{max-width:100%;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic;}
+#map_canvas img{max-width:none;}
button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle;}
-input[type="checkbox"],input[type="radio"]{margin-left:0.5ex;margin-right:0.5ex;}
button,input{*overflow:visible;line-height:normal;}
button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border: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-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield;}
input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none;}
textarea{overflow:auto;vertical-align:top;}
+.clearfix{*zoom:1;}.clearfix:before,.clearfix:after{display:table;content:"";}
+.clearfix:after{clear:both;}
+.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;}
+.input-block-level{display:block;width:100%;min-height:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;}
+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;}
+html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;}
+a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}
+a:hover,a:active{outline:0;}
+sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline;}
+sup{top:-0.5em;}
+sub{bottom:-0.25em;}
+img{max-width:100%;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic;}
+#map_canvas img{max-width:none;}
+button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle;}
+button,input{*overflow:visible;line-height:normal;}
+button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0;}
+button,input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button;}
+input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield;}
+input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none;}
+textarea{overflow:auto;vertical-align:top;}
+.clearfix{*zoom:1;}.clearfix:before,.clearfix:after{display:table;content:"";}
+.clearfix:after{clear:both;}
+.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;}
+.input-block-level{display:block;width:100%;min-height:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;}
body{margin:0;font-family:"Lucida Grande",verdana,arial,helvetica,sans-serif;font-size:12px;line-height:16px;color:#111111;background-color:#ffffff;}
a{color:#303030;text-decoration:none;}
a:hover{color:#0a0a0a;text-decoration:underline;}
-p{margin:0 0 8px;font-family:"Lucida Grande",verdana,arial,helvetica,sans-serif;font-size:12px;line-height:16px;}p small{font-size:10px;color:#999999;}
+p{margin:0 0 8px;}p small{font-size:10px;color:#999999;}
.lead{margin-bottom:16px;font-size:20px;font-weight:200;line-height:24px;}
-h1,h2,h3,h4,h5,h6{margin:0;font-weight:bold;color:#333333;text-rendering:optimizelegibility;}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;color:#999999;}
-h1{font-size:24px;line-height:32px;}h1 small{font-size:18px;}
-h2{font-size:18px;line-height:24px;}h2 small{font-size:14px;}
-h3{line-height:16px;font-size:14px;}h3 small{font-size:12px;}
+h1,h2,h3,h4,h5,h6{margin:0;font-family:inherit;font-weight:bold;color:inherit;text-rendering:optimizelegibility;}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;color:#999999;}
+h1{font-size:30px;line-height:32px;}h1 small{font-size:18px;}
+h2{font-size:24px;line-height:32px;}h2 small{font-size:18px;}
+h3{font-size:18px;line-height:24px;}h3 small{font-size:14px;}
h4,h5,h6{line-height:16px;}
h4{font-size:14px;}h4 small{font-size:12px;}
h5{font-size:12px;}
@@ -36,37 +62,41 @@
ul{list-style:disc;}
ol{list-style:decimal;}
li{line-height:16px;}
-ul.unstyled{margin-left:0;list-style:none;}
+ul.unstyled,ol.unstyled{margin-left:0;list-style:none;}
dl{margin-bottom:16px;}
dt,dd{line-height:16px;}
-dt{font-weight:bold;}
+dt{font-weight:bold;line-height:15px;}
dd{margin-left:8px;}
-hr{margin:16px 0;border:0;border-top:1px solid #e5e5e5;border-bottom:1px solid #ffffff;}
+.dl-horizontal dt{float:left;width:120px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
+.dl-horizontal dd{margin-left:130px;}
+hr{margin:16px 0;border:0;border-top:1px solid #eeeeee;border-bottom:1px solid #ffffff;}
strong{font-weight:bold;}
em{font-style:italic;}
.muted{color:#999999;}
-abbr{font-size:90%;text-transform:uppercase;border-bottom:1px dotted #ddd;cursor:help;}
+abbr[title]{cursor:help;border-bottom:1px dotted #999999;}
+abbr.initialism{font-size:90%;text-transform:uppercase;}
blockquote{padding:0 0 0 15px;margin:0 0 16px;border-left:5px solid #eeeeee;}blockquote p{margin-bottom:0;font-size:16px;font-weight:300;line-height:20px;}
blockquote small{display:block;line-height:16px;color:#999999;}blockquote small:before{content:'\2014 \00A0';}
-blockquote.pull-right{float:right;padding-left:0;padding-right:15px;border-left:0;border-right:5px solid #eeeeee;}blockquote.pull-right p,blockquote.pull-right small{text-align:right;}
+blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eeeeee;border-left:0;}blockquote.pull-right p,blockquote.pull-right small{text-align:right;}
q:before,q:after,blockquote:before,blockquote:after{content:"";}
-address{display:block;margin-bottom:16px;line-height:16px;font-style:normal;}
+address{display:block;margin-bottom:16px;font-style:normal;line-height:16px;}
small{font-size:100%;}
cite{font-style:normal;}
-table{max-width:100%;border-collapse:collapse;border-spacing:0;}
-.table{width:100%;margin-bottom:16px;}.table th,.table td{padding:8px;line-height:16px;text-align:left;border-top:1px solid #ddd;}
-.table th{font-weight:bold;vertical-align:bottom;}
-.table td{vertical-align:top;}
-.table thead:first-child tr th,.table thead:first-child tr td{border-top:0;}
-.table tbody+tbody{border-top:2px solid #ddd;}
+table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0;}
+.table{width:100%;margin-bottom:16px;}.table th,.table td{padding:8px;line-height:16px;text-align:left;vertical-align:top;border-top:1px solid #dddddd;}
+.table th{font-weight:bold;}
+.table thead th{vertical-align:bottom;}
+.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0;}
+.table tbody+tbody{border-top:2px solid #dddddd;}
.table-condensed th,.table-condensed td{padding:4px 5px;}
-.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapsed;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}.table-bordered th+th,.table-bordered td+td,.table-bordered th+td,.table-bordered td+th{border-left:1px solid #ddd;}
-.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0;}
-.table-bordered thead:first-child tr:first-child th:first-child,.table-bordered tbody:first-child tr:first-child td:first-child{-webkit-border-radius:4px 0 0 0;-moz-border-radius:4px 0 0 0;border-radius:4px 0 0 0;}
-.table-bordered thead:first-child tr:first-child th:last-child,.table-bordered tbody:first-child tr:first-child td:last-child{-webkit-border-radius:0 4px 0 0;-moz-border-radius:0 4px 0 0;border-radius:0 4px 0 0;}
-.table-bordered thead:last-child tr:last-child th:first-child,.table-bordered tbody:last-child tr:last-child td:first-child{-webkit-border-radius:0 0 0 4px;-moz-border-radius:0 0 0 4px;border-radius:0 0 0 4px;}
-.table-bordered thead:last-child tr:last-child th:last-child,.table-bordered tbody:last-child tr:last-child td:last-child{-webkit-border-radius:0 0 4px 0;-moz-border-radius:0 0 4px 0;border-radius:0 0 4px 0;}
+.table-bordered{border:1px solid #dddddd;border-collapse:separate;*border-collapse:collapsed;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}.table-bordered th,.table-bordered td{border-left:1px solid #dddddd;}
+.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0;}
+.table-bordered thead:first-child tr:first-child th:first-child,.table-bordered tbody:first-child tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px;}
+.table-bordered thead:first-child tr:first-child th:last-child,.table-bordered tbody:first-child tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px;}
+.table-bordered thead:last-child tr:last-child th:first-child,.table-bordered tbody:last-child tr:last-child td:first-child{-webkit-border-radius:0 0 0 4px;-moz-border-radius:0 0 0 4px;border-radius:0 0 0 4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;}
+.table-bordered thead:last-child tr:last-child th:last-child,.table-bordered tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;}
.table-striped tbody tr:nth-child(odd) td,.table-striped tbody tr:nth-child(odd) th{background-color:#f9f9f9;}
+.table tbody tr:hover td,.table tbody tr:hover th{background-color:#f5f5f5;}
table .span1{float:none;width:44px;margin-left:0;}
table .span2{float:none;width:124px;margin-left:0;}
table .span3{float:none;width:204px;margin-left:0;}
@@ -79,97 +109,296 @@
table .span10{float:none;width:764px;margin-left:0;}
table .span11{float:none;width:844px;margin-left:0;}
table .span12{float:none;width:924px;margin-left:0;}
-.dropdown{position:relative;}
+table .span13{float:none;width:1004px;margin-left:0;}
+table .span14{float:none;width:1084px;margin-left:0;}
+table .span15{float:none;width:1164px;margin-left:0;}
+table .span16{float:none;width:1244px;margin-left:0;}
+table .span17{float:none;width:1324px;margin-left:0;}
+table .span18{float:none;width:1404px;margin-left:0;}
+table .span19{float:none;width:1484px;margin-left:0;}
+table .span20{float:none;width:1564px;margin-left:0;}
+table .span21{float:none;width:1644px;margin-left:0;}
+table .span22{float:none;width:1724px;margin-left:0;}
+table .span23{float:none;width:1804px;margin-left:0;}
+table .span24{float:none;width:1884px;margin-left:0;}
+[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("../img/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat;}[class^="icon-"]:last-child,[class*=" icon-"]:last-child{*margin-left:0;}
+[class^="icon-"]:last-child,[class*=" icon-"]:last-child{*margin-left:0;}
+.icon-white{background-image:url("../img/glyphicons-halflings-white.png");}
+.icon-glass{background-position:0 0;}
+.icon-music{background-position:-24px 0;}
+.icon-search{background-position:-48px 0;}
+.icon-envelope{background-position:-72px 0;}
+.icon-heart{background-position:-96px 0;}
+.icon-star{background-position:-120px 0;}
+.icon-star-empty{background-position:-144px 0;}
+.icon-user{background-position:-168px 0;}
+.icon-film{background-position:-192px 0;}
+.icon-th-large{background-position:-216px 0;}
+.icon-th{background-position:-240px 0;}
+.icon-th-list{background-position:-264px 0;}
+.icon-ok{background-position:-288px 0;}
+.icon-remove{background-position:-312px 0;}
+.icon-zoom-in{background-position:-336px 0;}
+.icon-zoom-out{background-position:-360px 0;}
+.icon-off{background-position:-384px 0;}
+.icon-signal{background-position:-408px 0;}
+.icon-cog{background-position:-432px 0;}
+.icon-trash{background-position:-456px 0;}
+.icon-home{background-position:0 -24px;}
+.icon-file{background-position:-24px -24px;}
+.icon-time{background-position:-48px -24px;}
+.icon-road{background-position:-72px -24px;}
+.icon-download-alt{background-position:-96px -24px;}
+.icon-download{background-position:-120px -24px;}
+.icon-upload{background-position:-144px -24px;}
+.icon-inbox{background-position:-168px -24px;}
+.icon-play-circle{background-position:-192px -24px;}
+.icon-repeat{background-position:-216px -24px;}
+.icon-refresh{background-position:-240px -24px;}
+.icon-list-alt{background-position:-264px -24px;}
+.icon-lock{background-position:-287px -24px;}
+.icon-flag{background-position:-312px -24px;}
+.icon-headphones{background-position:-336px -24px;}
+.icon-volume-off{background-position:-360px -24px;}
+.icon-volume-down{background-position:-384px -24px;}
+.icon-volume-up{background-position:-408px -24px;}
+.icon-qrcode{background-position:-432px -24px;}
+.icon-barcode{background-position:-456px -24px;}
+.icon-tag{background-position:0 -48px;}
+.icon-tags{background-position:-25px -48px;}
+.icon-book{background-position:-48px -48px;}
+.icon-bookmark{background-position:-72px -48px;}
+.icon-print{background-position:-96px -48px;}
+.icon-camera{background-position:-120px -48px;}
+.icon-font{background-position:-144px -48px;}
+.icon-bold{background-position:-167px -48px;}
+.icon-italic{background-position:-192px -48px;}
+.icon-text-height{background-position:-216px -48px;}
+.icon-text-width{background-position:-240px -48px;}
+.icon-align-left{background-position:-264px -48px;}
+.icon-align-center{background-position:-288px -48px;}
+.icon-align-right{background-position:-312px -48px;}
+.icon-align-justify{background-position:-336px -48px;}
+.icon-list{background-position:-360px -48px;}
+.icon-indent-left{background-position:-384px -48px;}
+.icon-indent-right{background-position:-408px -48px;}
+.icon-facetime-video{background-position:-432px -48px;}
+.icon-picture{background-position:-456px -48px;}
+.icon-pencil{background-position:0 -72px;}
+.icon-map-marker{background-position:-24px -72px;}
+.icon-adjust{background-position:-48px -72px;}
+.icon-tint{background-position:-72px -72px;}
+.icon-edit{background-position:-96px -72px;}
+.icon-share{background-position:-120px -72px;}
+.icon-check{background-position:-144px -72px;}
+.icon-move{background-position:-168px -72px;}
+.icon-step-backward{background-position:-192px -72px;}
+.icon-fast-backward{background-position:-216px -72px;}
+.icon-backward{background-position:-240px -72px;}
+.icon-play{background-position:-264px -72px;}
+.icon-pause{background-position:-288px -72px;}
+.icon-stop{background-position:-312px -72px;}
+.icon-forward{background-position:-336px -72px;}
+.icon-fast-forward{background-position:-360px -72px;}
+.icon-step-forward{background-position:-384px -72px;}
+.icon-eject{background-position:-408px -72px;}
+.icon-chevron-left{background-position:-432px -72px;}
+.icon-chevron-right{background-position:-456px -72px;}
+.icon-plus-sign{background-position:0 -96px;}
+.icon-minus-sign{background-position:-24px -96px;}
+.icon-remove-sign{background-position:-48px -96px;}
+.icon-ok-sign{background-position:-72px -96px;}
+.icon-question-sign{background-position:-96px -96px;}
+.icon-info-sign{background-position:-120px -96px;}
+.icon-screenshot{background-position:-144px -96px;}
+.icon-remove-circle{background-position:-168px -96px;}
+.icon-ok-circle{background-position:-192px -96px;}
+.icon-ban-circle{background-position:-216px -96px;}
+.icon-arrow-left{background-position:-240px -96px;}
+.icon-arrow-right{background-position:-264px -96px;}
+.icon-arrow-up{background-position:-289px -96px;}
+.icon-arrow-down{background-position:-312px -96px;}
+.icon-share-alt{background-position:-336px -96px;}
+.icon-resize-full{background-position:-360px -96px;}
+.icon-resize-small{background-position:-384px -96px;}
+.icon-plus{background-position:-408px -96px;}
+.icon-minus{background-position:-433px -96px;}
+.icon-asterisk{background-position:-456px -96px;}
+.icon-exclamation-sign{background-position:0 -120px;}
+.icon-gift{background-position:-24px -120px;}
+.icon-leaf{background-position:-48px -120px;}
+.icon-fire{background-position:-72px -120px;}
+.icon-eye-open{background-position:-96px -120px;}
+.icon-eye-close{background-position:-120px -120px;}
+.icon-warning-sign{background-position:-144px -120px;}
+.icon-plane{background-position:-168px -120px;}
+.icon-calendar{background-position:-192px -120px;}
+.icon-random{background-position:-216px -120px;}
+.icon-comment{background-position:-240px -120px;}
+.icon-magnet{background-position:-264px -120px;}
+.icon-chevron-up{background-position:-288px -120px;}
+.icon-chevron-down{background-position:-313px -119px;}
+.icon-retweet{background-position:-336px -120px;}
+.icon-shopping-cart{background-position:-360px -120px;}
+.icon-folder-close{background-position:-384px -120px;}
+.icon-folder-open{background-position:-408px -120px;}
+.icon-resize-vertical{background-position:-432px -119px;}
+.icon-resize-horizontal{background-position:-456px -118px;}
+.icon-hdd{background-position:0 -144px;}
+.icon-bullhorn{background-position:-24px -144px;}
+.icon-bell{background-position:-48px -144px;}
+.icon-certificate{background-position:-72px -144px;}
+.icon-thumbs-up{background-position:-96px -144px;}
+.icon-thumbs-down{background-position:-120px -144px;}
+.icon-hand-right{background-position:-144px -144px;}
+.icon-hand-left{background-position:-168px -144px;}
+.icon-hand-up{background-position:-192px -144px;}
+.icon-hand-down{background-position:-216px -144px;}
+.icon-circle-arrow-right{background-position:-240px -144px;}
+.icon-circle-arrow-left{background-position:-264px -144px;}
+.icon-circle-arrow-up{background-position:-288px -144px;}
+.icon-circle-arrow-down{background-position:-312px -144px;}
+.icon-globe{background-position:-336px -144px;}
+.icon-wrench{background-position:-360px -144px;}
+.icon-tasks{background-position:-384px -144px;}
+.icon-filter{background-position:-408px -144px;}
+.icon-briefcase{background-position:-432px -144px;}
+.icon-fullscreen{background-position:-456px -144px;}
+.dropup,.dropdown{position:relative;}
.dropdown-toggle{*margin-bottom:-3px;}
.dropdown-toggle:active,.open .dropdown-toggle{outline:0;}
-.caret{display:inline-block;width:0;height:0;text-indent:-99999px;*text-indent:0;vertical-align:top;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #000000;opacity:0.3;filter:alpha(opacity=30);content:"\2193";}
+.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000000;border-right:4px solid transparent;border-left:4px solid transparent;content:"";opacity:0.3;filter:alpha(opacity=30);}
.dropdown .caret{margin-top:8px;margin-left:2px;}
-.dropdown:hover .caret,.open.dropdown .caret{opacity:1;filter:alpha(opacity=100);}
-.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;float:left;display:none;min-width:160px;_width:160px;padding:4px 0;margin:0;list-style:none;background-color:#ffffff;border-color:#ccc;border-color:rgba(0, 0, 0, 0.2);border-style:solid;border-width:1px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;*border-right-width:2px;*border-bottom-width:2px;}.dropdown-menu.bottom-up{top:auto;bottom:100%;margin-bottom:2px;}
-.dropdown-menu .divider{height:1px;margin:5px 1px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #ffffff;*width:100%;*margin:-5px 0 5px;}
-.dropdown-menu a{display:block;padding:3px 15px;clear:both;font-weight:normal;line-height:18px;color:#555555;white-space:nowrap;}
+.dropdown:hover .caret,.open .caret{opacity:1;filter:alpha(opacity=100);}
+.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:4px 0;margin:1px 0 0;list-style:none;background-color:#ffffff;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;}.dropdown-menu.pull-right{right:0;left:auto;}
+.dropdown-menu .divider{*width:100%;height:1px;margin:7px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #ffffff;}
+.dropdown-menu a{display:block;padding:3px 15px;clear:both;font-weight:normal;line-height:16px;color:#333333;white-space:nowrap;}
.dropdown-menu li>a:hover,.dropdown-menu .active>a,.dropdown-menu .active>a:hover{color:#ffffff;text-decoration:none;background-color:#303030;}
-.dropdown.open{*z-index:1000;}.dropdown.open .dropdown-toggle{color:#ffffff;background:#ccc;background:rgba(0, 0, 0, 0.3);}
-.dropdown.open .dropdown-menu{display:block;}
+.open{*z-index:1000;}.open>.dropdown-menu{display:block;}
+.pull-right>.dropdown-menu{right:0;left:auto;}
+.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000000;content:"\2191";}
+.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px;}
.typeahead{margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;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);}.well blockquote{border-color:#ddd;border-color:rgba(0, 0, 0, 0.15);}
-.fade{-webkit-transition:opacity 0.15s linear;-moz-transition:opacity 0.15s linear;-ms-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear;opacity:0;}.fade.in{opacity:1;}
-.collapse{-webkit-transition:height 0.35s ease;-moz-transition:height 0.35s ease;-ms-transition:height 0.35s ease;-o-transition:height 0.35s ease;transition:height 0.35s ease;position:relative;overflow:hidden;height:0;}.collapse.in{height:auto;}
-.close{float:right;font-size:20px;font-weight:bold;line-height:16px;color:#000000;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20);}.close:hover{color:#000000;text-decoration:none;opacity:0.4;filter:alpha(opacity=40);cursor:pointer;}
-.btn{display:inline-block;padding:2px 10px 2px;font-size:12px;line-height:16px;color:#111111;text-align:center;text-shadow:0 1px 1px rgba(255, 255, 255, 0.75);background-color:#fafafa;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);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);border:1px solid #999999;border-bottom-color:#888888;-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);cursor:pointer;*margin-left:.3em;}.btn:first-child{*margin-left:0;}
-.btn.hover,.btn:hover{color:#111111;text-decoration:none;background-color:#e6e6e6;background-position:0 -15px;-webkit-transition:background-position 0.1s linear;-moz-transition:background-position 0.1s linear;-ms-transition:background-position 0.1s linear;-o-transition:background-position 0.1s linear;transition:background-position 0.1s linear;}
-.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}
-.btn.active,.btn:active{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);background-color:#e6e6e6;background-color:#d9d9d9 \9;outline:0;}
-.btn.disabled,.btn[disabled]{cursor:default;background-image:none;background-color:#e6e6e6;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;}
+.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}
+.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
+.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-moz-transition:opacity 0.15s linear;-ms-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear;}.fade.in{opacity:1;}
+.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height 0.35s ease;-moz-transition:height 0.35s ease;-ms-transition:height 0.35s ease;-o-transition:height 0.35s ease;transition:height 0.35s ease;}.collapse.in{height:auto;}
+.close{float:right;font-size:20px;font-weight:bold;line-height:16px;color:#000000;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20);}.close:hover{color:#000000;text-decoration:none;cursor:pointer;opacity:0.4;filter:alpha(opacity=40);}
+button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none;}
+.btn{display:inline-block;*display:inline;*zoom:1;padding:4px 10px 4px;margin-bottom:0;font-size:12px;line-height:16px;*line-height:20px;color:#333333;text-align:center;text-shadow:0 1px 1px rgba(255, 255, 255, 0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;background-image:-moz-linear-gradient(top, #ffffff, #e6e6e6);background-image:-ms-linear-gradient(top, #ffffff, #e6e6e6);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));background-image:-webkit-linear-gradient(top, #ffffff, #e6e6e6);background-image:-o-linear-gradient(top, #ffffff, #e6e6e6);background-image:linear-gradient(top, #ffffff, #e6e6e6);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#e6e6e6;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);border:1px solid #999999;*border:0;border-bottom-color:#808080;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*margin-left:.3em;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);}.btn:hover,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{background-color:#e6e6e6;*background-color:#d9d9d9;}
+.btn:active,.btn.active{background-color:#cccccc \9;}
+.btn:hover,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{background-color:#e6e6e6;*background-color:#d9d9d9;}
+.btn:active,.btn.active{background-color:#cccccc \9;}
+.btn:first-child{*margin-left:0;}
+.btn:first-child{*margin-left:0;}
+.btn:hover{color:#333333;text-decoration:none;background-color:#e6e6e6;*background-color:#d9d9d9;background-position:0 -15px;-webkit-transition:background-position 0.1s linear;-moz-transition:background-position 0.1s linear;-ms-transition:background-position 0.1s linear;-o-transition:background-position 0.1s linear;transition:background-position 0.1s linear;}
+.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}
+.btn.active,.btn:active{background-color:#e6e6e6;background-color:#d9d9d9 \9;background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);}
+.btn.disabled,.btn[disabled]{cursor:default;background-color:#e6e6e6;background-image:none;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;}
.btn-large{padding:9px 14px;font-size:14px;line-height:normal;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;}
-.btn-large .icon{margin-top:1px;}
+.btn-large [class^="icon-"]{margin-top:1px;}
.btn-small{padding:5px 9px;font-size:10px;line-height:14px;}
-.btn-small .icon{margin-top:-1px;}
-.btn-primary,.btn-primary:hover,.btn-warning,.btn-warning:hover,.btn-danger,.btn-danger:hover,.btn-success,.btn-success:hover,.btn-info,.btn-info:hover{text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);color:#ffffff;}
-.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active{color:rgba(255, 255, 255, 0.75);}
-.btn-primary{background-color:#0049cd;background-image:-moz-linear-gradient(top, #0064cd, #0020cd);background-image:-ms-linear-gradient(top, #0064cd, #0020cd);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0064cd), to(#0020cd));background-image:-webkit-linear-gradient(top, #0064cd, #0020cd);background-image:-o-linear-gradient(top, #0064cd, #0020cd);background-image:linear-gradient(top, #0064cd, #0020cd);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#0064cd', endColorstr='#0020cd', GradientType=0);border-color:#0020cd #0020cd #001481;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-primary:hover,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{background-color:#0020cd;}
-.btn-primary:active,.btn-primary.active{background-color:#00189a \9;}
-.btn-warning{background-color:#faa732;background-image:-moz-linear-gradient(top, #fbb450, #f89406);background-image:-ms-linear-gradient(top, #fbb450, #f89406);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));background-image:-webkit-linear-gradient(top, #fbb450, #f89406);background-image:-o-linear-gradient(top, #fbb450, #f89406);background-image:linear-gradient(top, #fbb450, #f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0);border-color:#f89406 #f89406 #ad6704;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-warning:hover,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{background-color:#f89406;}
+.btn-small [class^="icon-"]{margin-top:-1px;}
+.btn-mini{padding:2px 6px;font-size:10px;line-height:12px;}
+.btn-primary,.btn-primary:hover,.btn-warning,.btn-warning:hover,.btn-danger,.btn-danger:hover,.btn-success,.btn-success:hover,.btn-info,.btn-info:hover,.btn-inverse,.btn-inverse:hover{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);}
+.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255, 255, 255, 0.75);}
+.btn{border-color:#ccc;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);}
+.btn-primary{background-color:#0050cd;background-image:-moz-linear-gradient(top, #0064cd, #0031cd);background-image:-ms-linear-gradient(top, #0064cd, #0031cd);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0064cd), to(#0031cd));background-image:-webkit-linear-gradient(top, #0064cd, #0031cd);background-image:-o-linear-gradient(top, #0064cd, #0031cd);background-image:linear-gradient(top, #0064cd, #0031cd);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#0064cd', endColorstr='#0031cd', GradientType=0);border-color:#0031cd #0031cd #001f81;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#0031cd;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-primary:hover,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{background-color:#0031cd;*background-color:#002bb4;}
+.btn-primary:active,.btn-primary.active{background-color:#00259a \9;}
+.btn-primary:hover,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{background-color:#0031cd;*background-color:#002bb4;}
+.btn-primary:active,.btn-primary.active{background-color:#00259a \9;}
+.btn-warning{background-color:#faa732;background-image:-moz-linear-gradient(top, #fbb450, #f89406);background-image:-ms-linear-gradient(top, #fbb450, #f89406);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));background-image:-webkit-linear-gradient(top, #fbb450, #f89406);background-image:-o-linear-gradient(top, #fbb450, #f89406);background-image:linear-gradient(top, #fbb450, #f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0);border-color:#f89406 #f89406 #ad6704;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#f89406;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-warning:hover,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{background-color:#f89406;*background-color:#df8505;}
.btn-warning:active,.btn-warning.active{background-color:#c67605 \9;}
-.btn-danger{background-color:#da4f49;background-image:-moz-linear-gradient(top, #ee5f5b, #bd362f);background-image:-ms-linear-gradient(top, #ee5f5b, #bd362f);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));background-image:-webkit-linear-gradient(top, #ee5f5b, #bd362f);background-image:-o-linear-gradient(top, #ee5f5b, #bd362f);background-image:linear-gradient(top, #ee5f5b, #bd362f);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#bd362f', GradientType=0);border-color:#bd362f #bd362f #802420;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-danger:hover,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{background-color:#bd362f;}
+.btn-warning:hover,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{background-color:#f89406;*background-color:#df8505;}
+.btn-warning:active,.btn-warning.active{background-color:#c67605 \9;}
+.btn-danger{background-color:#da4f49;background-image:-moz-linear-gradient(top, #ee5f5b, #bd362f);background-image:-ms-linear-gradient(top, #ee5f5b, #bd362f);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));background-image:-webkit-linear-gradient(top, #ee5f5b, #bd362f);background-image:-o-linear-gradient(top, #ee5f5b, #bd362f);background-image:linear-gradient(top, #ee5f5b, #bd362f);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#bd362f', GradientType=0);border-color:#bd362f #bd362f #802420;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#bd362f;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-danger:hover,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{background-color:#bd362f;*background-color:#a9302a;}
.btn-danger:active,.btn-danger.active{background-color:#942a25 \9;}
-.btn-success{background-color:#5bb75b;background-image:-moz-linear-gradient(top, #62c462, #51a351);background-image:-ms-linear-gradient(top, #62c462, #51a351);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));background-image:-webkit-linear-gradient(top, #62c462, #51a351);background-image:-o-linear-gradient(top, #62c462, #51a351);background-image:linear-gradient(top, #62c462, #51a351);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#51a351', GradientType=0);border-color:#51a351 #51a351 #387038;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-success:hover,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{background-color:#51a351;}
+.btn-danger:hover,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{background-color:#bd362f;*background-color:#a9302a;}
+.btn-danger:active,.btn-danger.active{background-color:#942a25 \9;}
+.btn-success{background-color:#5bb75b;background-image:-moz-linear-gradient(top, #62c462, #51a351);background-image:-ms-linear-gradient(top, #62c462, #51a351);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));background-image:-webkit-linear-gradient(top, #62c462, #51a351);background-image:-o-linear-gradient(top, #62c462, #51a351);background-image:linear-gradient(top, #62c462, #51a351);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#51a351', GradientType=0);border-color:#51a351 #51a351 #387038;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#51a351;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-success:hover,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{background-color:#51a351;*background-color:#499249;}
.btn-success:active,.btn-success.active{background-color:#408140 \9;}
-.btn-info{background-color:#49afcd;background-image:-moz-linear-gradient(top, #5bc0de, #2f96b4);background-image:-ms-linear-gradient(top, #5bc0de, #2f96b4);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4));background-image:-webkit-linear-gradient(top, #5bc0de, #2f96b4);background-image:-o-linear-gradient(top, #5bc0de, #2f96b4);background-image:linear-gradient(top, #5bc0de, #2f96b4);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#2f96b4', GradientType=0);border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-info:hover,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{background-color:#2f96b4;}
+.btn-success:hover,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{background-color:#51a351;*background-color:#499249;}
+.btn-success:active,.btn-success.active{background-color:#408140 \9;}
+.btn-info{background-color:#49afcd;background-image:-moz-linear-gradient(top, #5bc0de, #2f96b4);background-image:-ms-linear-gradient(top, #5bc0de, #2f96b4);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4));background-image:-webkit-linear-gradient(top, #5bc0de, #2f96b4);background-image:-o-linear-gradient(top, #5bc0de, #2f96b4);background-image:linear-gradient(top, #5bc0de, #2f96b4);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#2f96b4', GradientType=0);border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#2f96b4;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-info:hover,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{background-color:#2f96b4;*background-color:#2a85a0;}
.btn-info:active,.btn-info.active{background-color:#24748c \9;}
+.btn-info:hover,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{background-color:#2f96b4;*background-color:#2a85a0;}
+.btn-info:active,.btn-info.active{background-color:#24748c \9;}
+.btn-inverse{background-color:#414141;background-image:-moz-linear-gradient(top, #555555, #222222);background-image:-ms-linear-gradient(top, #555555, #222222);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#555555), to(#222222));background-image:-webkit-linear-gradient(top, #555555, #222222);background-image:-o-linear-gradient(top, #555555, #222222);background-image:linear-gradient(top, #555555, #222222);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#555555', endColorstr='#222222', GradientType=0);border-color:#222222 #222222 #000000;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#222222;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-inverse:hover,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{background-color:#222222;*background-color:#151515;}
+.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9;}
+.btn-inverse:hover,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{background-color:#222222;*background-color:#151515;}
+.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9;}
button.btn,input[type="submit"].btn{*padding-top:2px;*padding-bottom:2px;}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0;}
-button.btn.large,input[type="submit"].btn.large{*padding-top:7px;*padding-bottom:7px;}
-button.btn.small,input[type="submit"].btn.small{*padding-top:3px;*padding-bottom:3px;}
+button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px;}
+button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px;}
+button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px;}
.btn-group{position:relative;*zoom:1;*margin-left:.3em;}.btn-group:before,.btn-group:after{display:table;content:"";}
.btn-group:after{clear:both;}
+.btn-group:before,.btn-group:after{display:table;content:"";}
+.btn-group:after{clear:both;}
+.btn-group:first-child{*margin-left:0;}
.btn-group:first-child{*margin-left:0;}
.btn-group+.btn-group{margin-left:5px;}
.btn-toolbar{margin-top:8px;margin-bottom:8px;}.btn-toolbar .btn-group{display:inline-block;*display:inline;*zoom:1;}
-.btn-group .btn{position:relative;float:left;margin-left:-1px;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
-.btn-group .btn:first-child{margin-left:0;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px;}
-.btn-group .btn:last-child,.btn-group .dropdown-toggle{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;}
-.btn-group .btn.large:first-child{margin-left:0;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px;}
-.btn-group .btn.large:last-child,.btn-group .large.dropdown-toggle{-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;}
-.btn-group .btn:hover,.btn-group .btn:focus,.btn-group .btn:active,.btn-group .btn.active{z-index:2;}
+.btn-group>.btn{position:relative;float:left;margin-left:-1px;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
+.btn-group>.btn:first-child{margin-left:0;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px;}
+.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;}
+.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px;}
+.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;}
+.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2;}
.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0;}
-.btn-group .dropdown-toggle{padding-left:8px;padding-right:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255, 255, 255, 0.125),inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 1px 0 0 rgba(255, 255, 255, 0.125),inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 1px 0 0 rgba(255, 255, 255, 0.125),inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);*padding-top:5px;*padding-bottom:5px;}
-.btn-group.open{*z-index:1000;}.btn-group.open .dropdown-menu{display:block;margin-top:1px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;}
-.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 1px 6px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 6px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 6px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);}
+.btn-group>.dropdown-toggle{padding-left:8px;padding-right:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);*padding-top:4px;*padding-bottom:4px;}
+.btn-group>.btn-mini.dropdown-toggle{padding-left:5px;padding-right:5px;}
+.btn-group>.btn-small.dropdown-toggle{*padding-top:4px;*padding-bottom:4px;}
+.btn-group>.btn-large.dropdown-toggle{padding-left:12px;padding-right:12px;}
+.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);}
+.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6;}
+.btn-group.open .btn-primary.dropdown-toggle{background-color:#0031cd;}
+.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406;}
+.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f;}
+.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351;}
+.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4;}
+.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222222;}
.btn .caret{margin-top:7px;margin-left:0;}
.btn:hover .caret,.open.btn-group .caret{opacity:1;filter:alpha(opacity=100);}
-.btn-primary .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret{border-top-color:#ffffff;opacity:0.75;filter:alpha(opacity=75);}
-.btn-small .caret{margin-top:4px;}
-.alert{padding:8px 35px 8px 14px;margin-bottom:16px;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);background-color:#ffffcc;border:1px solid #ffdd33;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
-.alert,.alert-heading{color:#666600;}
+.btn-mini .caret{margin-top:5px;}
+.btn-small .caret{margin-top:6px;}
+.btn-large .caret{margin-top:6px;border-left-width:5px;border-right-width:5px;border-top-width:5px;}
+.dropup .btn-large .caret{border-bottom:5px solid #000000;border-top:0;}
+.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;opacity:0.75;filter:alpha(opacity=75);}
+.alert{padding:8px 35px 8px 14px;margin-bottom:16px;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);background-color:#ffffcc;border:1px solid #ffdd33;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;color:#666600;}
+.alert-heading{color:inherit;}
.alert .close{position:relative;top:-2px;right:-21px;line-height:18px;}
-.alert-success{background-color:#ccffcc;border-color:#1a9900;}
-.alert-success,.alert-success .alert-heading{color:#006600;}
-.alert-danger,.alert-error{background-color:#ffcccc;border-color:#ff3355;}
-.alert-danger,.alert-error,.alert-danger .alert-heading,.alert-error .alert-heading{color:#660000;}
-.alert-info{background-color:#d9edf7;border-color:#1b7183;}
-.alert-info,.alert-info .alert-heading{color:#134158;}
+.alert-success{background-color:#ccffcc;border-color:#1a9900;color:#006600;}
+.alert-danger,.alert-error{background-color:#ffcccc;border-color:#ff3355;color:#660000;}
+.alert-info{background-color:#d9edf7;border-color:#1b7183;color:#134158;}
.alert-block{padding-top:14px;padding-bottom:14px;}
.alert-block>p,.alert-block>ul{margin-bottom:0;}
.alert-block p+p{margin-top:5px;}
.nav{margin-left:0;margin-bottom:16px;list-style:none;}
.nav>li>a{display:block;}
.nav>li>a:hover{text-decoration:none;background-color:#eeeeee;}
-.nav-list{padding-left:14px;padding-right:14px;margin-bottom:0;}
-.nav-list>li>a,.nav-list .nav-header{display:block;padding:3px 15px;margin-left:-15px;margin-right:-15px;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);}
-.nav-list .nav-header{font-size:11px;font-weight:bold;line-height:16px;color:#999999;text-transform:uppercase;}
-.nav-list>li+.nav-header{margin-top:9px;}
-.nav-list .active>a,.nav-list .active>a:hover{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.2);background-color:#303030;}
+.nav>.pull-right{float:right;}
+.nav .nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:16px;color:#999999;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);text-transform:uppercase;}
+.nav li+.nav-header{margin-top:9px;}
+.nav-list{padding-left:15px;padding-right:15px;margin-bottom:0;}
+.nav-list>li>a,.nav-list .nav-header{margin-left:-15px;margin-right:-15px;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);}
+.nav-list>li>a{padding:3px 15px;}
+.nav-list>.active>a,.nav-list>.active>a:hover{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.2);background-color:#303030;}
.nav-list [class^="icon-"]{margin-right:2px;}
+.nav-list .divider{*width:100%;height:1px;margin:7px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #ffffff;}
.nav-tabs,.nav-pills{*zoom:1;}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;content:"";}
.nav-tabs:after,.nav-pills:after{clear:both;}
+.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;content:"";}
+.nav-tabs:after,.nav-pills:after{clear:both;}
.nav-tabs>li,.nav-pills>li{float:left;}
.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px;}
.nav-tabs{border-bottom:1px solid #ddd;}
.nav-tabs>li{margin-bottom:-1px;}
-.nav-tabs>li>a{padding-top:9px;padding-bottom:9px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;}.nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #dddddd;}
+.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:16px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;}.nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #dddddd;}
.nav-tabs>.active>a,.nav-tabs>.active>a:hover{color:#555555;background-color:#ffffff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default;}
.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;}
-.nav-pills .active>a,.nav-pills .active>a:hover{color:#ffffff;background-color:#303030;}
+.nav-pills>.active>a,.nav-pills>.active>a:hover{color:#ffffff;background-color:#303030;}
.nav-stacked>li{float:none;}
.nav-stacked>li>a{margin-right:0;}
.nav-tabs.nav-stacked{border-bottom:0;}
@@ -179,74 +408,94 @@
.nav-tabs.nav-stacked>li>a:hover{border-color:#ddd;z-index:2;}
.nav-pills.nav-stacked>li>a{margin-bottom:3px;}
.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px;}
-.nav-tabs .dropdown-menu,.nav-pills .dropdown-menu{margin-top:1px;border-width:1px;}
+.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;}
.nav-pills .dropdown-menu{-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
-.nav-tabs .dropdown-toggle .caret,.nav-pills .dropdown-toggle .caret{border-top-color:#303030;margin-top:6px;}
-.nav-tabs .dropdown-toggle:hover .caret,.nav-pills .dropdown-toggle:hover .caret{border-top-color:#0a0a0a;}
-.nav-tabs .active .dropdown-toggle .caret,.nav-pills .active .dropdown-toggle .caret{border-top-color:#333333;}
+.nav-tabs .dropdown-toggle .caret,.nav-pills .dropdown-toggle .caret{border-top-color:#303030;border-bottom-color:#303030;margin-top:6px;}
+.nav-tabs .dropdown-toggle:hover .caret,.nav-pills .dropdown-toggle:hover .caret{border-top-color:#0a0a0a;border-bottom-color:#0a0a0a;}
+.nav-tabs .active .dropdown-toggle .caret,.nav-pills .active .dropdown-toggle .caret{border-top-color:#333333;border-bottom-color:#333333;}
.nav>.dropdown.active>a:hover{color:#000000;cursor:pointer;}
-.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>.open.active>a:hover{color:#ffffff;background-color:#999999;border-color:#999999;}
-.nav .open .caret,.nav .open.active .caret,.nav .open a:hover .caret{border-top-color:#ffffff;opacity:1;filter:alpha(opacity=100);}
+.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover{color:#ffffff;background-color:#999999;border-color:#999999;}
+.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;opacity:1;filter:alpha(opacity=100);}
.tabs-stacked .open>a:hover{border-color:#999999;}
.tabbable{*zoom:1;}.tabbable:before,.tabbable:after{display:table;content:"";}
.tabbable:after{clear:both;}
-.tabs-below .nav-tabs,.tabs-right .nav-tabs,.tabs-left .nav-tabs{border-bottom:0;}
+.tabbable:before,.tabbable:after{display:table;content:"";}
+.tabbable:after{clear:both;}
+.tab-content{overflow:auto;}
+.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0;}
.tab-content>.tab-pane,.pill-content>.pill-pane{display:none;}
.tab-content>.active,.pill-content>.active{display:block;}
-.tabs-below .nav-tabs{border-top:1px solid #ddd;}
-.tabs-below .nav-tabs>li{margin-top:-1px;margin-bottom:0;}
-.tabs-below .nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;}.tabs-below .nav-tabs>li>a:hover{border-bottom-color:transparent;border-top-color:#ddd;}
-.tabs-below .nav-tabs .active>a,.tabs-below .nav-tabs .active>a:hover{border-color:transparent #ddd #ddd #ddd;}
-.tabs-left .nav-tabs>li,.tabs-right .nav-tabs>li{float:none;}
-.tabs-left .nav-tabs>li>a,.tabs-right .nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px;}
-.tabs-left .nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd;}
-.tabs-left .nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;}
-.tabs-left .nav-tabs>li>a:hover{border-color:#eeeeee #dddddd #eeeeee #eeeeee;}
-.tabs-left .nav-tabs .active>a,.tabs-left .nav-tabs .active>a:hover{border-color:#ddd transparent #ddd #ddd;*border-right-color:#ffffff;}
-.tabs-right .nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd;}
-.tabs-right .nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;}
-.tabs-right .nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #eeeeee #dddddd;}
-.tabs-right .nav-tabs .active>a,.tabs-right .nav-tabs .active>a:hover{border-color:#ddd #ddd #ddd transparent;*border-left-color:#ffffff;}
-.navbar{overflow:visible;margin-bottom:16px;}
-.navbar-inner{padding-left:20px;padding-right:20px;background-color:#303239;background-image:-moz-linear-gradient(top, #333333, #2c3143);background-image:-ms-linear-gradient(top, #333333, #2c3143);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#2c3143));background-image:-webkit-linear-gradient(top, #333333, #2c3143);background-image:-o-linear-gradient(top, #333333, #2c3143);background-image:linear-gradient(top, #333333, #2c3143);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#2c3143', GradientType=0);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-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);}
-.btn-navbar{display:none;float:right;padding:7px 10px;margin-left:5px;margin-right:5px;background-color:#303239;background-image:-moz-linear-gradient(top, #333333, #2c3143);background-image:-ms-linear-gradient(top, #333333, #2c3143);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#2c3143));background-image:-webkit-linear-gradient(top, #333333, #2c3143);background-image:-o-linear-gradient(top, #333333, #2c3143);background-image:linear-gradient(top, #333333, #2c3143);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#2c3143', GradientType=0);border-color:#2c3143 #2c3143 #0e0f15;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.075);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.075);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.075);}.btn-navbar:hover,.btn-navbar:active,.btn-navbar.active,.btn-navbar.disabled,.btn-navbar[disabled]{background-color:#2c3143;}
-.btn-navbar:active,.btn-navbar.active{background-color:#181a24 \9;}
-.btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);-moz-box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);}
-.btn-navbar .icon-bar+.icon-bar{margin-top:3px;}
+.tabs-below>.nav-tabs{border-top:1px solid #ddd;}
+.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0;}
+.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;}.tabs-below>.nav-tabs>li>a:hover{border-bottom-color:transparent;border-top-color:#ddd;}
+.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover{border-color:transparent #ddd #ddd #ddd;}
+.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none;}
+.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px;}
+.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd;}
+.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;}
+.tabs-left>.nav-tabs>li>a:hover{border-color:#eeeeee #dddddd #eeeeee #eeeeee;}
+.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover{border-color:#ddd transparent #ddd #ddd;*border-right-color:#ffffff;}
+.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd;}
+.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;}
+.tabs-right>.nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #eeeeee #dddddd;}
+.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover{border-color:#ddd #ddd #ddd transparent;*border-left-color:#ffffff;}
+.navbar{*position:relative;*z-index:2;overflow:visible;margin-bottom:16px;}
+.navbar-inner{min-height:32px;padding-left:20px;padding-right:20px;background-color:#303239;background-image:-moz-linear-gradient(top, #333333, #2c3143);background-image:-ms-linear-gradient(top, #333333, #2c3143);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#2c3143));background-image:-webkit-linear-gradient(top, #333333, #2c3143);background-image:-o-linear-gradient(top, #333333, #2c3143);background-image:linear-gradient(top, #333333, #2c3143);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#2c3143', GradientType=0);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.25), inset 0 -1px 0 rgba(0,0,0,.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,.25), inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:0 1px 3px rgba(0,0,0,.25), inset 0 -1px 0 rgba(0,0,0,.1);}
+.navbar .container{width:auto;}
.nav-collapse.collapse{height:auto;}
-.navbar .brand:hover{text-decoration:none;}
-.navbar .brand{float:left;display:block;padding:8px 20px 12px;margin-left:-20px;font-size:20px;font-weight:200;line-height:1;color:#ffffff;}
-.navbar .navbar-text{margin-bottom:0;line-height:40px;color:#999999;}.navbar .navbar-text a:hover{color:#ffffff;background-color:transparent;}
-.navbar .btn,.navbar .btn-group{margin-top:5px;}
-.navbar .btn-group .btn{margin-top:0;}
+.navbar{color:#999999;}.navbar .brand:hover{text-decoration:none;}
+.navbar .brand{float:left;display:block;padding:4px 20px 8px;margin-left:-20px;font-size:20px;font-weight:200;line-height:1;color:#999999;}
+.navbar .navbar-text{margin-bottom:0;line-height:32px;}
+.navbar .navbar-link{color:#999999;}.navbar .navbar-link:hover{color:#ffffff;}
+.navbar .btn,.navbar .btn-group{margin-top:1px;}
+.navbar .btn-group .btn{margin:0;}
.navbar-form{margin-bottom:0;*zoom:1;}.navbar-form:before,.navbar-form:after{display:table;content:"";}
.navbar-form:after{clear:both;}
-.navbar-form input,.navbar-form select{display:inline-block;margin-top:5px;margin-bottom:0;}
-.navbar-form .radio,.navbar-form .checkbox{margin-top:5px;}
+.navbar-form:before,.navbar-form:after{display:table;content:"";}
+.navbar-form:after{clear:both;}
+.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:1px;}
+.navbar-form input,.navbar-form select{display:inline-block;margin-bottom:0;}
.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px;}
-.navbar-search{position:relative;float:left;margin-top:6px;margin-bottom:0;}.navbar-search .search-query{padding:4px 9px;font-family:"Lucida Grande",verdana,arial,helvetica,sans-serif;font-size:13px;font-weight:normal;line-height:1;color:#ffffff;color:rgba(255, 255, 255, 0.75);background:#666;background:rgba(255, 255, 255, 0.3);border:1px solid #111;-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1),0 1px 0px rgba(255, 255, 255, 0.15);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1),0 1px 0px rgba(255, 255, 255, 0.15);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1),0 1px 0px rgba(255, 255, 255, 0.15);-webkit-transition:none;-moz-transition:none;-ms-transition:none;-o-transition:none;transition:none;}.navbar-search .search-query :-moz-placeholder{color:#eeeeee;}
-.navbar-search .search-query::-webkit-input-placeholder{color:#eeeeee;}
-.navbar-search .search-query:hover{color:#ffffff;background-color:#999999;background-color:rgba(255, 255, 255, 0.5);}
+.navbar-form .input-append,.navbar-form .input-prepend{margin-top:6px;white-space:nowrap;}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0;}
+.navbar-search{position:relative;float:left;margin-top:2px;margin-bottom:0;}.navbar-search .search-query{padding:4px 9px;font-family:"Lucida Grande",verdana,arial,helvetica,sans-serif;font-size:13px;font-weight:normal;line-height:1;color:#ffffff;background-color:#5f6990;border:1px solid #222634;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);box-shadow:inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);-webkit-transition:none;-moz-transition:none;-ms-transition:none;-o-transition:none;transition:none;}.navbar-search .search-query:-moz-placeholder{color:#cccccc;}
+.navbar-search .search-query:-ms-input-placeholder{color:#cccccc;}
+.navbar-search .search-query::-webkit-input-placeholder{color:#cccccc;}
+.navbar-search .search-query:-moz-placeholder{color:#cccccc;}
+.navbar-search .search-query:-ms-input-placeholder{color:#cccccc;}
+.navbar-search .search-query::-webkit-input-placeholder{color:#cccccc;}
.navbar-search .search-query:focus,.navbar-search .search-query.focused{padding:5px 10px;color:#333333;text-shadow:0 1px 0 #ffffff;background-color:#ffffff;border:0;-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);outline:0;}
-.navbar-fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030;}
-.navbar-fixed-top .navbar-inner{padding-left:0;padding-right:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
+.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0;}
+.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-left:0;padding-right:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
+.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px;}
+.navbar-fixed-top{top:0;}
+.navbar-fixed-bottom{bottom:0;}
.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0;}
.navbar .nav.pull-right{float:right;}
.navbar .nav>li{display:block;float:left;}
-.navbar .nav>li>a{float:none;padding:10px 10px 11px;line-height:19px;color:#999999;text-decoration:none;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);}
+.navbar .nav>li>a{float:none;padding:5px 10px 7px;line-height:19px;color:#999999;text-decoration:none;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);}
+.navbar .btn{display:inline-block;padding:4px 10px 4px;margin:1px 5px 2px;line-height:16px;}
+.navbar .btn-group{margin:0;padding:1px 5px 2px;}
.navbar .nav>li>a:hover{background-color:transparent;color:#ffffff;text-decoration:none;}
-.navbar .nav .active>a,.navbar .nav .active>a:hover{color:#ffffff;text-decoration:none;background-color:#2c3143;background-color:rgba(0, 0, 0, 0.5);}
+.navbar .nav .active>a,.navbar .nav .active>a:hover{color:#ffffff;text-decoration:none;background-color:rgba(0, 0, 0, 0.5);}
.navbar .divider-vertical{height:32px;width:1px;margin:0 9px;overflow:hidden;background-color:#2c3143;border-right:1px solid #333333;}
.navbar .nav.pull-right{margin-left:10px;margin-right:0;}
-.navbar .dropdown-menu{margin-top:1px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}.navbar .dropdown-menu:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0, 0, 0, 0.2);position:absolute;top:-7px;left:9px;}
+.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-left:5px;margin-right:5px;background-color:#303239;background-image:-moz-linear-gradient(top, #333333, #2c3143);background-image:-ms-linear-gradient(top, #333333, #2c3143);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#2c3143));background-image:-webkit-linear-gradient(top, #333333, #2c3143);background-image:-o-linear-gradient(top, #333333, #2c3143);background-image:linear-gradient(top, #333333, #2c3143);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#2c3143', GradientType=0);border-color:#2c3143 #2c3143 #0e0f15;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#2c3143;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);}.navbar .btn-navbar:hover,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{background-color:#2c3143;*background-color:#222634;}
+.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#181a24 \9;}
+.navbar .btn-navbar:hover,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{background-color:#2c3143;*background-color:#222634;}
+.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#181a24 \9;}
+.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);-moz-box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);}
+.btn-navbar .icon-bar+.icon-bar{margin-top:3px;}
+.navbar .dropdown-menu:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0, 0, 0, 0.2);position:absolute;top:-7px;left:9px;}
.navbar .dropdown-menu:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #ffffff;position:absolute;top:-6px;left:10px;}
-.navbar .nav .dropdown-toggle .caret,.navbar .nav .open.dropdown .caret{border-top-color:#ffffff;}
-.navbar .nav .active .caret{opacity:1;filter:alpha(opacity=100);}
-.navbar .nav .open>.dropdown-toggle,.navbar .nav .active>.dropdown-toggle,.navbar .nav .open.active>.dropdown-toggle{background-color:transparent;}
-.navbar .nav .active>.dropdown-toggle:hover{color:#ffffff;}
-.navbar .nav.pull-right .dropdown-menu{left:auto;right:0;}.navbar .nav.pull-right .dropdown-menu:before{left:auto;right:12px;}
-.navbar .nav.pull-right .dropdown-menu:after{left:auto;right:13px;}
-.breadcrumb{padding:7px 14px;margin:0 0 16px;background-color:#fbfbfb;background-image:-moz-linear-gradient(top, #ffffff, #f5f5f5);background-image:-ms-linear-gradient(top, #ffffff, #f5f5f5);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f5f5f5));background-image:-webkit-linear-gradient(top, #ffffff, #f5f5f5);background-image:-o-linear-gradient(top, #ffffff, #f5f5f5);background-image:linear-gradient(top, #ffffff, #f5f5f5);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f5f5f5', GradientType=0);border:1px solid #ddd;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 #ffffff;-moz-box-shadow:inset 0 1px 0 #ffffff;box-shadow:inset 0 1px 0 #ffffff;}.breadcrumb li{display:inline;text-shadow:0 1px 0 #ffffff;}
+.navbar-fixed-bottom .dropdown-menu:before{border-top:7px solid #ccc;border-top-color:rgba(0, 0, 0, 0.2);border-bottom:0;bottom:-7px;top:auto;}
+.navbar-fixed-bottom .dropdown-menu:after{border-top:6px solid #ffffff;border-bottom:0;bottom:-6px;top:auto;}
+.navbar .nav li.dropdown .dropdown-toggle .caret,.navbar .nav li.dropdown.open .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;}
+.navbar .nav li.dropdown.active .caret{opacity:1;filter:alpha(opacity=100);}
+.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{background-color:transparent;}
+.navbar .nav li.dropdown.active>.dropdown-toggle:hover{color:#ffffff;}
+.navbar .pull-right .dropdown-menu,.navbar .dropdown-menu.pull-right{left:auto;right:0;}.navbar .pull-right .dropdown-menu:before,.navbar .dropdown-menu.pull-right:before{left:auto;right:12px;}
+.navbar .pull-right .dropdown-menu:after,.navbar .dropdown-menu.pull-right:after{left:auto;right:13px;}
+.breadcrumb{padding:7px 14px;margin:0 0 16px;list-style:none;background-color:#fbfbfb;background-image:-moz-linear-gradient(top, #ffffff, #f5f5f5);background-image:-ms-linear-gradient(top, #ffffff, #f5f5f5);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f5f5f5));background-image:-webkit-linear-gradient(top, #ffffff, #f5f5f5);background-image:-o-linear-gradient(top, #ffffff, #f5f5f5);background-image:linear-gradient(top, #ffffff, #f5f5f5);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f5f5f5', GradientType=0);border:1px solid #ddd;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 #ffffff;-moz-box-shadow:inset 0 1px 0 #ffffff;box-shadow:inset 0 1px 0 #ffffff;}.breadcrumb li{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 0 #ffffff;}
.breadcrumb .divider{padding:0 5px;color:#999999;}
.breadcrumb .active a{color:#333333;}
.pagination{height:32px;margin:16px 0;}
@@ -255,31 +504,38 @@
.pagination a{float:left;padding:0 14px;line-height:30px;text-decoration:none;border:1px solid #ddd;border-left-width:0;}
.pagination a:hover,.pagination .active a{background-color:#f5f5f5;}
.pagination .active a{color:#999999;cursor:default;}
-.pagination .disabled a,.pagination .disabled a:hover{color:#999999;background-color:transparent;cursor:default;}
+.pagination .disabled span,.pagination .disabled a,.pagination .disabled a:hover{color:#999999;background-color:transparent;cursor:default;}
.pagination li:first-child a{border-left-width:1px;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;}
.pagination li:last-child a{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0;}
.pagination-centered{text-align:center;}
.pagination-right{text-align:right;}
.pager{margin-left:0;margin-bottom:16px;list-style:none;text-align:center;*zoom:1;}.pager:before,.pager:after{display:table;content:"";}
.pager:after{clear:both;}
+.pager:before,.pager:after{display:table;content:"";}
+.pager:after{clear:both;}
.pager li{display:inline;}
.pager a{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px;}
.pager a:hover{text-decoration:none;background-color:#f5f5f5;}
.pager .next a{float:right;}
.pager .previous a{float:left;}
+.pager .disabled a,.pager .disabled a:hover{color:#999999;background-color:#fff;cursor:default;}
.modal-open .dropdown-menu{z-index:2050;}
.modal-open .dropdown.open{*z-index:2050;}
.modal-open .popover{z-index:2060;}
.modal-open .tooltip{z-index:2070;}
.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000;}.modal-backdrop.fade{opacity:0;}
.modal-backdrop,.modal-backdrop.fade.in{opacity:0.8;filter:alpha(opacity=80);}
-.modal{position:fixed;top:50%;left:50%;z-index:1050;max-height:500px;overflow:auto;width:560px;margin:-250px 0 0 -280px;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;}.modal.fade{-webkit-transition:opacity .3s linear, top .3s ease-out;-moz-transition:opacity .3s linear, top .3s ease-out;-ms-transition:opacity .3s linear, top .3s ease-out;-o-transition:opacity .3s linear, top .3s ease-out;transition:opacity .3s linear, top .3s ease-out;top:-25%;}
+.modal{position:fixed;top:50%;left:50%;z-index:1050;overflow:auto;width:560px;margin:-250px 0 0 -280px;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;}.modal.fade{-webkit-transition:opacity .3s linear, top .3s ease-out;-moz-transition:opacity .3s linear, top .3s ease-out;-ms-transition:opacity .3s linear, top .3s ease-out;-o-transition:opacity .3s linear, top .3s ease-out;transition:opacity .3s linear, top .3s ease-out;top:-25%;}
.modal.fade.in{top:50%;}
.modal-header{padding:9px 15px;border-bottom:1px solid #eee;}.modal-header .close{margin-top:2px;}
-.modal-body{padding:15px;}
-.modal-footer{padding:14px 15px 15px;margin-bottom:0;background-color:#f5f5f5;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;}.modal-footer:before,.modal-footer:after{display:table;content:"";}
+.modal-body{overflow-y:auto;max-height:400px;padding:15px;}
+.modal-form{margin-bottom:0;}
+.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;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;}.modal-footer:before,.modal-footer:after{display:table;content:"";}
.modal-footer:after{clear:both;}
-.modal-footer .btn{float:right;margin-left:5px;margin-bottom:0;}
+.modal-footer:before,.modal-footer:after{display:table;content:"";}
+.modal-footer:after{clear:both;}
+.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0;}
+.modal-footer .btn-group .btn+.btn{margin-left:-1px;}
.popover{position:absolute;top:0;left:0;z-index:1010;display:none;padding:5px;}.popover.top{margin-top:-5px;}
.popover.right{margin-left:5px;}
.popover.bottom{margin-top:5px;}
@@ -292,20 +548,23 @@
.popover-inner{padding:3px;width:280px;overflow:hidden;background:#000000;background:rgba(0, 0, 0, 0.8);-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{padding:9px 15px;line-height:1;background-color:#f5f5f5;border-bottom:1px solid #eee;-webkit-border-radius:3px 3px 0 0;-moz-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;}
.popover-content{padding:14px;background-color:#ffffff;-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;}
-@-webkit-keyframes progress-bar-stripes{from{background-position:0 0;} to{background-position:40px 0;}}@-moz-keyframes progress-bar-stripes{from{background-position:0 0;} to{background-position:40px 0;}}@keyframes progress-bar-stripes{from{background-position:0 0;} to{background-position:40px 0;}}.progress{overflow:hidden;height:18px;margin-bottom:18px;background-color:#f7f7f7;background-image:-moz-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-ms-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9));background-image:-webkit-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-o-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:linear-gradient(top, #f5f5f5, #f9f9f9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f5f5f5', endColorstr='#f9f9f9', GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
-.progress .bar{width:0%;height:18px;color:#ffffff;font-size:12px;text-align:center;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top, #149bdf, #0480be);background-image:-ms-linear-gradient(top, #149bdf, #0480be);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be));background-image:-webkit-linear-gradient(top, #149bdf, #0480be);background-image:-o-linear-gradient(top, #149bdf, #0480be);background-image:linear-gradient(top, #149bdf, #0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#149bdf', endColorstr='#0480be', GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width 0.6s ease;-moz-transition:width 0.6s ease;-ms-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease;}
-.progress-striped .bar{background-color:#62c462;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px;}
-.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite;}
+@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0;} to{background-position:0 0;}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0;} to{background-position:0 0;}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0;} to{background-position:0 0;}}@-o-keyframes progress-bar-stripes{from{background-position:0 0;} to{background-position:40px 0;}}@keyframes progress-bar-stripes{from{background-position:40px 0;} to{background-position:0 0;}}.progress{overflow:hidden;height:18px;margin-bottom:18px;background-color:#f7f7f7;background-image:-moz-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-ms-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9));background-image:-webkit-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-o-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:linear-gradient(top, #f5f5f5, #f9f9f9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f5f5f5', endColorstr='#f9f9f9', GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
+.progress .bar{width:0%;height:18px;color:#ffffff;font-size:12px;text-align:center;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top, #149bdf, #0480be);background-image:-ms-linear-gradient(top, #149bdf, #0480be);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be));background-image:-webkit-linear-gradient(top, #149bdf, #0480be);background-image:-o-linear-gradient(top, #149bdf, #0480be);background-image:linear-gradient(top, #149bdf, #0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#149bdf', endColorstr='#0480be', GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width 0.6s ease;-moz-transition:width 0.6s ease;-ms-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease;}
+.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px;}
+.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite;}
.progress-danger .bar{background-color:#dd514c;background-image:-moz-linear-gradient(top, #ee5f5b, #c43c35);background-image:-ms-linear-gradient(top, #ee5f5b, #c43c35);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35));background-image:-webkit-linear-gradient(top, #ee5f5b, #c43c35);background-image:-o-linear-gradient(top, #ee5f5b, #c43c35);background-image:linear-gradient(top, #ee5f5b, #c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0);}
.progress-danger.progress-striped .bar{background-color:#ee5f5b;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);}
.progress-success .bar{background-color:#5eb95e;background-image:-moz-linear-gradient(top, #62c462, #57a957);background-image:-ms-linear-gradient(top, #62c462, #57a957);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957));background-image:-webkit-linear-gradient(top, #62c462, #57a957);background-image:-o-linear-gradient(top, #62c462, #57a957);background-image:linear-gradient(top, #62c462, #57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0);}
.progress-success.progress-striped .bar{background-color:#62c462;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);}
.progress-info .bar{background-color:#4bb1cf;background-image:-moz-linear-gradient(top, #5bc0de, #339bb9);background-image:-ms-linear-gradient(top, #5bc0de, #339bb9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9));background-image:-webkit-linear-gradient(top, #5bc0de, #339bb9);background-image:-o-linear-gradient(top, #5bc0de, #339bb9);background-image:linear-gradient(top, #5bc0de, #339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0);}
.progress-info.progress-striped .bar{background-color:#5bc0de;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);}
+.progress-warning .bar{background-color:#faa732;background-image:-moz-linear-gradient(top, #fbb450, #f89406);background-image:-ms-linear-gradient(top, #fbb450, #f89406);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));background-image:-webkit-linear-gradient(top, #fbb450, #f89406);background-image:-o-linear-gradient(top, #fbb450, #f89406);background-image:linear-gradient(top, #fbb450, #f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0);}
+.progress-warning.progress-striped .bar{background-color:#fbb450;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);}
.accordion{margin-bottom:16px;}
.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
.accordion-heading{border-bottom:0;}
.accordion-heading .accordion-toggle{display:block;padding:8px 15px;}
+.accordion-toggle{cursor:pointer;}
.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5;}
.carousel{position:relative;margin-bottom:16px;line-height:1;}
.carousel-inner{overflow:hidden;width:100%;position:relative;}
@@ -323,13 +582,17 @@
.carousel-control:hover{color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90);}
.carousel-caption{position:absolute;left:0;right:0;bottom:0;padding:10px 15px 5px;background:#333333;background:rgba(0, 0, 0, 0.75);}
.carousel-caption h4,.carousel-caption p{color:#ffffff;}
-.hero-unit{padding:60px;margin-bottom:30px;background-color:#f5f5f5;-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:24px;}
+.hero-unit{padding:60px;margin-bottom:30px;background-color:#eeeeee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;color:inherit;letter-spacing:-1px;}
+.hero-unit p{font-size:18px;font-weight:200;line-height:24px;color:inherit;}
.pull-right{float:right;}
.pull-left{float:left;}
.hide{display:none;}
.show{display:block;}
.invisible{visibility:hidden;}
+.btn{padding:2px 10px 2px;border-color:#999999;border-color:rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4);}
+.btn.active,.btn:active{color:inherit;}
+.dropdown-menu{max-width:auto;}
+input[type="checkbox"],input[type="radio"]{margin-left:0.5ex;margin-right:0.5ex;}
@font-face{font-family:'FontAwesome';src:url('../images/fonts/fontawesome-webfont.eot');src:url('../images/fonts/fontawesome-webfont.eot?#iefix') format('embedded-opentype'),url('../images/fonts/fontawesome-webfont.woff') format('woff'),url('../images/fonts/fontawesome-webfont.ttf') format('truetype'),url('../images/fonts/fontawesome-webfont.svgz#FontAwesomeRegular') format('svg'),url('../images/fonts/fontawesome-webfont.svg#FontAwesomeRegular') format('svg');font-weight:normal;font-style:normal;}.ficon,[class^="ficon"]:before,[class*=" ficon"]:before{font-family:FontAwesome;font-weight:normal;font-style:normal;display:inline-block;}
.ficon.large:before{font-size:1.3333333333333333em;}
.btn [class^="ficon"],.btn [class*=" ficon"]{line-height:.9em;}
@@ -477,15 +740,19 @@
.ficon.github-sign:before{content:"\f092";}
.ficon.upload-alt:before{content:"\f093";}
.ficon.lemon:before{content:"\f094";}
-.unselectable{-webkit-user-select:none;-moz-user-select:none;-o-user-select:none;user-select:none;}
-.shadow{-webkit-box-shadow:0 1px 3px rgba(0, 0, 0, 0.25);-moz-box-shadow:0 1px 3px rgba(0, 0, 0, 0.25);box-shadow:0 1px 3px rgba(0, 0, 0, 0.25);}
-.parent-width{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;width:100%;*width:90%;}
+.unselectable{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;}
+.parent-width{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;width:100%;*width:90%;}
.clear{*zoom:1;}.clear:before,.clear:after{display:table;content:"";}
.clear:after{clear:both;}
+.clear:before,.clear:after{display:table;content:"";}
+.clear:after{clear:both;}
body{background:#ffffff;color:#303030;background-image:url(base_bg.png);background-repeat:repeat-x;background-position:top;margin:10px;}
img{border:0;}
a,a:link,a:visited,a:active{text-decoration:underline;color:#303030;}
h1,h2,h3,h4{color:#023858;margin:0.5em 0;}
+h1{font-size:24px;}
+h2{font-size:18px;line-height:24px;}h2 small{font-size:14px;}
+h3{font-size:14px;line-height:16px;}h3 small{font-size:12px;}
h1:first-child,h2:first-child,h3:first-child,h4:first-child{margin-top:0px;}
hr{border:none;height:0px;border-bottom:dotted #303030 1px;}
table{border-collapse:collapse;}
@@ -499,12 +766,12 @@
#right-border{right:250px;}
#right{width:250px;right:0px;z-index:200;border-left:solid #999999 1px;}
.subnavbar{background-color:#fafafa;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);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);border-bottom:solid #999999 1px;border-top:solid #999999 1px;padding:5px;color:#555;}
-.unified-panel-header{-webkit-user-select:none;-moz-user-select:none;-o-user-select:none;user-select:none;height:30px;z-index:1000;text-shadow:rgba(255, 255, 255, 0.8) 0 1px 0;background-color:#fafafa;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);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);border-bottom:solid #999999 1px;margin:0;padding:0;padding-right:10px;padding-left:10px;font-weight:bold;color:#555;}.unified-panel-header a{color:#555;}
+.unified-panel-header{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;height:30px;z-index:1000;text-shadow:rgba(255, 255, 255, 0.8) 0 1px 0;background-color:#fafafa;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);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);border-bottom:solid #999999 1px;margin:0;padding:0;padding-right:10px;padding-left:10px;font-weight:bold;color:#555;}.unified-panel-header a{color:#555;}
.unified-panel-header-inner{padding-top:8px;}
-.unified-panel-footer{-webkit-user-select:none;-moz-user-select:none;-o-user-select:none;user-select:none;position:absolute;bottom:0;height:25px;line-height:25px;width:100%;z-index:1000;border-top:solid #999999 1px;background-color:#f0f0f0;background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), color-stop(25%, #f2f2f2), to(#e6e6e6));background-image:-webkit-linear-gradient(#f2f2f2, #f2f2f2 25%, #e6e6e6);background-image:-moz-linear-gradient(top, #f2f2f2, #f2f2f2 25%, #e6e6e6);background-image:-ms-linear-gradient(#f2f2f2, #f2f2f2 25%, #e6e6e6);background-image:-o-linear-gradient(#f2f2f2, #f2f2f2 25%, #e6e6e6);background-image:linear-gradient(#f2f2f2, #f2f2f2 25%, #e6e6e6);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f2f2f2', endColorstr='#e6e6e6', GradientType=0);color:#555;}.unified-panel-footer a{color:#555;}
+.unified-panel-footer{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;position:absolute;bottom:0;height:25px;line-height:25px;width:100%;z-index:1000;border-top:solid #999999 1px;background-color:#f0f0f0;background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), color-stop(25%, #f2f2f2), to(#e6e6e6));background-image:-webkit-linear-gradient(#f2f2f2, #f2f2f2 25%, #e6e6e6);background-image:-moz-linear-gradient(top, #f2f2f2, #f2f2f2 25%, #e6e6e6);background-image:-ms-linear-gradient(#f2f2f2, #f2f2f2 25%, #e6e6e6);background-image:-o-linear-gradient(#f2f2f2, #f2f2f2 25%, #e6e6e6);background-image:linear-gradient(#f2f2f2, #f2f2f2 25%, #e6e6e6);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f2f2f2', endColorstr='#e6e6e6', GradientType=0);color:#555;}.unified-panel-footer a{color:#555;}
.unified-panel-footer .drag{position:absolute;top:0;right:0;padding:0 5px;text-align:center;height:25px;width:20px;background-image:url(../images/visualization/draggable_horizontal.png);background-repeat:no-repeat;background-position:50% 50%;cursor:w-resize;}
#right>.unified-panel-footer .drag{left:0;}
-.panel-collapse{-webkit-user-select:none;-moz-user-select:none;-o-user-select:none;user-select:none;position:absolute;bottom:0;height:25px;line-height:25px;width:100%;z-index:1000;border-top:solid #999999 1px;background-color:#f0f0f0;background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), color-stop(25%, #f2f2f2), to(#e6e6e6));background-image:-webkit-linear-gradient(#f2f2f2, #f2f2f2 25%, #e6e6e6);background-image:-moz-linear-gradient(top, #f2f2f2, #f2f2f2 25%, #e6e6e6);background-image:-ms-linear-gradient(#f2f2f2, #f2f2f2 25%, #e6e6e6);background-image:-o-linear-gradient(#f2f2f2, #f2f2f2 25%, #e6e6e6);background-image:linear-gradient(#f2f2f2, #f2f2f2 25%, #e6e6e6);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f2f2f2', endColorstr='#e6e6e6', GradientType=0);color:#555;z-index:10000;position:fixed;left:0;top:inherit;bottom:0;padding:0 5px;text-align:center;width:20px;background:none;border-right:solid #999999 1px;border-top:solid #999999 1px;background-color:#f0f0f0;background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), color-stop(25%, #f2f2f2), to(#e6e6e6));background-image:-webkit-linear-gradient(#f2f2f2, #f2f2f2 25%, #e6e6e6);background-image:-moz-linear-gradient(top, #f2f2f2, #f2f2f2 25%, #e6e6e6);background-image:-ms-linear-gradient(#f2f2f2, #f2f2f2 25%, #e6e6e6);background-image:-o-linear-gradient(#f2f2f2, #f2f2f2 25%, #e6e6e6);background-image:linear-gradient(#f2f2f2, #f2f2f2 25%, #e6e6e6);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f2f2f2', endColorstr='#e6e6e6', GradientType=0);font-family:FontAwesome;font-weight:normal;font-style:normal;display:inline-block;font-size:1.3333333333333333em;}.panel-collapse a{color:#555;}
+.panel-collapse{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;position:absolute;height:25px;line-height:25px;width:100%;z-index:1000;color:#555;z-index:10000;position:fixed;left:0;top:inherit;bottom:0;padding:0 5px;text-align:center;width:20px;background:none;border-right:solid #999999 1px;border-top:solid #999999 1px;background-color:#f0f0f0;background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), color-stop(25%, #f2f2f2), to(#e6e6e6));background-image:-webkit-linear-gradient(#f2f2f2, #f2f2f2 25%, #e6e6e6);background-image:-moz-linear-gradient(top, #f2f2f2, #f2f2f2 25%, #e6e6e6);background-image:-ms-linear-gradient(#f2f2f2, #f2f2f2 25%, #e6e6e6);background-image:-o-linear-gradient(#f2f2f2, #f2f2f2 25%, #e6e6e6);background-image:linear-gradient(#f2f2f2, #f2f2f2 25%, #e6e6e6);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f2f2f2', endColorstr='#e6e6e6', GradientType=0);font-family:FontAwesome;font-weight:normal;font-style:normal;display:inline-block;font-size:1.3333333333333333em;}.panel-collapse a{color:#555;}
.panel-collapse .drag{position:absolute;top:0;right:0;padding:0 5px;text-align:center;height:25px;width:20px;background-image:url(../images/visualization/draggable_horizontal.png);background-repeat:no-repeat;background-position:50% 50%;cursor:w-resize;}
.panel-collapse:before{content:'\f053';}
.panel-collapse.hidden:before{content:'\f054';}
@@ -518,27 +785,21 @@
.panel-header-button.popup{padding-right:1.75em;background:url(../images/dropdownarrow.png) no-repeat right 7px;}
#overlay,.overlay{position:fixed;top:0;left:0;width:100%;height:100%;z-index:20000;}
#overlay.is_modal #overlay-background,.overlay-background{background:rgba(0, 0, 0, 0.5);}
-.dialog-box-container{position:relative;margin-top:80px;margin-right:auto;margin-left:auto;}
-.dialog-box-wrapper{position:relative;padding:1em;background-color:rgba(0, 0, 0, 0.5);-moz-border-radius:1em;-webkit-border-radius:1em;}
-#dialog-box.dialog-box{min-width:660px;margin:-250px 0 0 -330px;}
-.dialog-box{border:solid #999 1px;background:white;z-index:80000;}
-#overlay.is_modal .dialog-box .body{min-width:600px;}
-.dialog-box .body{padding:5px;overflow:auto;max-height:500px;min-width:300px;}
-.dialog-box .buttons{padding:5px;}
.panel-error-message,.panel-warning-message,.panel-done-message,.panel-info-message{height:24px;line-height:24px;color:#303030;padding:0px;padding-left:26px;background-color:#ffcccc;background-image:url(error_small.png);background-repeat:no-repeat;background-position:6px 50%;}
.panel-warning-message{background-image:url(warn_small.png);background-color:#ffffcc;}
.panel-done-message{background-image:url(ok_small.png);background-color:#ccffcc;}
.panel-info-message{background-image:url(info_small.png);background-color:#d9edf7;}
-#masthead{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;overflow:visible;margin-bottom:16px;position:absolute;top:0;left:0;width:100%;min-width:900px;height:32px;border-bottom:solid #444444 1px;z-index:15000;padding:0;}#masthead .brand:hover{text-decoration:none;}
-#masthead .brand{float:left;display:block;padding:8px 20px 12px;margin-left:-20px;font-size:20px;font-weight:200;line-height:1;color:#ffffff;}
-#masthead .navbar-text{margin-bottom:0;line-height:40px;color:#999999;}#masthead .navbar-text a:hover{color:#ffffff;background-color:transparent;}
-#masthead .btn,#masthead .btn-group{margin-top:5px;}
-#masthead .btn-group .btn{margin-top:0;}
+#masthead{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;*position:relative;*z-index:2;overflow:visible;margin-bottom:16px;color:#999999;position:absolute;top:0;left:0;width:100%;min-width:900px;height:32px;border-bottom:solid #444444 1px;z-index:15000;padding:0;}#masthead .brand:hover{text-decoration:none;}
+#masthead .brand{float:left;display:block;padding:4px 20px 8px;margin-left:-20px;font-size:20px;font-weight:200;line-height:1;color:#999999;}
+#masthead .navbar-text{margin-bottom:0;line-height:32px;}
+#masthead .navbar-link{color:#999999;}#masthead .navbar-link:hover{color:#ffffff;}
+#masthead .btn,#masthead .btn-group{margin-top:1px;}
+#masthead .btn-group .btn{margin:0;}
#masthead .nav>li>a{padding:6px 10px 8px;cursor:pointer;}#masthead .nav>li>a:hover{color:gold;}
#masthead .dropdown-menu a,#masthead .dropdown-menu a:hover{text-decoration:none;}
#masthead .title{position:absolute;left:0;top:0;font-family:verdana;font-weight:bold;font-size:20px;line-height:1;color:white;padding:5px 20px 12px;margin-left:-15px;z-index:2000;}#masthead .title img{display:inline;width:26px;vertical-align:top;}
#masthead .title a{color:white;text-decoration:none;}
-#masthead .masthead-inner{padding-left:20px;padding-right:20px;background-color:#303239;background-image:-moz-linear-gradient(top, #333333, #2c3143);background-image:-ms-linear-gradient(top, #333333, #2c3143);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#2c3143));background-image:-webkit-linear-gradient(top, #333333, #2c3143);background-image:-o-linear-gradient(top, #333333, #2c3143);background-image:linear-gradient(top, #333333, #2c3143);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#2c3143', GradientType=0);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-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);padding-left:0;padding-right:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;height:32px;}
+#masthead .masthead-inner{min-height:32px;padding-left:20px;padding-right:20px;background-color:#303239;background-image:-moz-linear-gradient(top, #333333, #2c3143);background-image:-ms-linear-gradient(top, #333333, #2c3143);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#2c3143));background-image:-webkit-linear-gradient(top, #333333, #2c3143);background-image:-o-linear-gradient(top, #333333, #2c3143);background-image:linear-gradient(top, #333333, #2c3143);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#2c3143', GradientType=0);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.25), inset 0 -1px 0 rgba(0,0,0,.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,.25), inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:0 1px 3px rgba(0,0,0,.25), inset 0 -1px 0 rgba(0,0,0,.1);padding-left:0;padding-right:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;height:32px;}
#masthead a:hover{text-decoration:underline;}
.quota-meter-container{position:absolute;top:0;right:0;height:32px;}
.quota-meter{position:absolute;top:8px;right:8px;height:16px;width:100px;background-color:#c1c9e5;}
@@ -585,7 +846,7 @@
.errormessagelarge{background-color:#ffcccc;border-color:#ff3355;color:#660000;padding-left:52px;}
.warningmessagelarge{background-image:url(warn_large.png);border-color:#aaaa66;background-color:#ffffcc;}
.donemessagelarge{background-color:#ccffcc;border-color:#1a9900;color:#006600;padding-left:52px;background-image:url(ok_large.png);}
-.infomessagelarge{background-color:#d9edf7;border-color:#1b7183;color:#134158;background-image:url(info_large.png);border-color:#6666aa;background-color:#d9edf7;}
+.infomessagelarge{border-color:#1b7183;color:#134158;background-image:url(info_large.png);border-color:#6666aa;background-color:#d9edf7;}
.screencastBox{padding-left:10px;border-color:#AAAA66;background-color:#FFFFCC;background-image:none;}
.errormessage,.warningmessage,.donemessage,.infomessage,.errormessagesmall,.warningmessagesmall,.donemessagesmall,.infomessagesmall{padding:8px 35px 8px 14px;margin-bottom:16px;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);background-color:#ffffcc;border:1px solid #ffdd33;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;color:#666600;padding:5px;padding-left:25px;min-height:15px;background-image:url(error_small.png);background-repeat:no-repeat;background-position:5px 5px;}
.errormessage{background-color:#ffcccc;border-color:#ff3355;color:#660000;}
@@ -654,21 +915,29 @@
.state-fg-ok{color:#66AA66;}
.state-fg-error{color:#AA6666;}
.state-fg-deleted{color:#3399FF;}
-.action-button{display:inline-block;padding:2px 10px 2px;font-size:12px;line-height:16px;color:#111111;text-align:center;text-shadow:0 1px 1px rgba(255, 255, 255, 0.75);background-color:#fafafa;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);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);border:1px solid #999999;border-bottom-color:#888888;-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);cursor:pointer;*margin-left:.3em;}.action-button:first-child{*margin-left:0;}
+.action-button{display:inline-block;*display:inline;*zoom:1;padding:4px 10px 4px;margin-bottom:0;font-size:12px;line-height:16px;*line-height:20px;color:#333333;text-align:center;text-shadow:0 1px 1px rgba(255, 255, 255, 0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;background-image:-moz-linear-gradient(top, #ffffff, #e6e6e6);background-image:-ms-linear-gradient(top, #ffffff, #e6e6e6);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));background-image:-webkit-linear-gradient(top, #ffffff, #e6e6e6);background-image:-o-linear-gradient(top, #ffffff, #e6e6e6);background-image:linear-gradient(top, #ffffff, #e6e6e6);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);border-color:#e6e6e6 #e6e6e6 #bfbfbf;*background-color:#e6e6e6;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);border:1px solid #999999;*border:0;border-bottom-color:#808080;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*margin-left:.3em;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);border-color:#ccc;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);padding:2px 10px 2px;border-color:#999999;border-color:rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4);}.action-button:hover,.action-button:active,.action-button.active,.action-button.disabled,.action-button[disabled]{background-color:#e6e6e6;*background-color:#d9d9d9;}
+.action-button:active,.action-button.active{background-color:#cccccc \9;}
+.action-button:hover,.action-button:active,.action-button.active,.action-button.disabled,.action-button[disabled]{background-color:#e6e6e6;*background-color:#d9d9d9;}
+.action-button:active,.action-button.active{background-color:#cccccc \9;}
+.action-button:first-child{*margin-left:0;}
+.action-button:first-child{*margin-left:0;}
.action-button [class^="ficon"],.action-button [class*=" ficon"]{line-height:.9em;}
a.action-button{text-decoration:none;}
.action-button>img{vertical-align:middle;}
-.action-button:hover{color:#111111;text-decoration:none;background-color:#e6e6e6;background-position:0 -15px;-webkit-transition:background-position 0.1s linear;-moz-transition:background-position 0.1s linear;-ms-transition:background-position 0.1s linear;-o-transition:background-position 0.1s linear;transition:background-position 0.1s linear;}
-.action-button:active{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);background-color:#e6e6e6;background-color:#d9d9d9 \9;outline:0;}
-.menubutton{display:inline-block;padding:2px 10px 2px;font-size:12px;line-height:16px;color:#111111;text-align:center;text-shadow:0 1px 1px rgba(255, 255, 255, 0.75);background-color:#fafafa;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);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);border:1px solid #999999;border-bottom-color:#888888;-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);cursor:pointer;*margin-left:.3em;display:inline-block;cursor:pointer;position:relative;-webkit-user-select:none;-moz-user-select:none;-o-user-select:none;user-select:none;}.menubutton:first-child{*margin-left:0;}
+.action-button:active{background-color:#e6e6e6;background-color:#d9d9d9 \9;background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);color:inherit;}
+.menubutton{*display:inline;*zoom:1;padding:4px 10px 4px;margin-bottom:0;font-size:12px;line-height:16px;*line-height:20px;color:#333333;text-align:center;text-shadow:0 1px 1px rgba(255, 255, 255, 0.75);vertical-align:middle;background-color:#f5f5f5;background-image:-moz-linear-gradient(top, #ffffff, #e6e6e6);background-image:-ms-linear-gradient(top, #ffffff, #e6e6e6);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));background-image:-webkit-linear-gradient(top, #ffffff, #e6e6e6);background-image:-o-linear-gradient(top, #ffffff, #e6e6e6);background-image:linear-gradient(top, #ffffff, #e6e6e6);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);border-color:#e6e6e6 #e6e6e6 #bfbfbf;*background-color:#e6e6e6;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);border:1px solid #999999;*border:0;border-bottom-color:#808080;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*margin-left:.3em;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);border-color:#ccc;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);padding:2px 10px 2px;border-color:#999999;border-color:rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.4);display:inline-block;cursor:pointer;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;}.menubutton:hover,.menubutton:active,.menubutton.active,.menubutton.disabled,.menubutton[disabled]{background-color:#e6e6e6;*background-color:#d9d9d9;}
+.menubutton:active,.menubutton.active{background-color:#cccccc \9;}
+.menubutton:hover,.menubutton:active,.menubutton.active,.menubutton.disabled,.menubutton[disabled]{background-color:#e6e6e6;*background-color:#d9d9d9;}
+.menubutton:active,.menubutton.active{background-color:#cccccc \9;}
+.menubutton:first-child{*margin-left:0;}
+.menubutton:first-child{*margin-left:0;}
.menubutton [class^="ficon"],.menubutton [class*=" ficon"]{line-height:.9em;}
-.menubutton:hover{color:#111111;text-decoration:none;background-color:#e6e6e6;background-position:0 -15px;-webkit-transition:background-position 0.1s linear;-moz-transition:background-position 0.1s linear;-ms-transition:background-position 0.1s linear;-o-transition:background-position 0.1s linear;transition:background-position 0.1s linear;}
-.menubutton:active{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);background-color:#e6e6e6;background-color:#d9d9d9 \9;outline:0;}
-.menubutton:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}
+.menubutton:active{background-color:#e6e6e6;background-color:#d9d9d9 \9;background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);color:inherit;}
+.menubutton:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}
.menubutton a{text-decoration:none;}
.menubutton .label,.menubutton>label{position:relative;display:inline-block;border-right:none;text-decoration:none;text-align:left;max-height:32px;line-height:16px;overflow:hidden;text-overflow:ellipsis;}
.menubutton.popup .label{border-right:solid #999999 1px;padding-right:6px;}
-.menubutton.popup,.menubutton.popup.split{padding-right:18px;}.menubutton.popup:after,.menubutton.popup.split:after{margin-top:6px;position:absolute;top:2px;right:6px;display:inline-block;width:0;height:0;text-indent:-99999px;*text-indent:0;vertical-align:top;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #000000;opacity:0.3;filter:alpha(opacity=30);content:"\2193";}
+.menubutton.popup,.menubutton.popup.split{padding-right:18px;}.menubutton.popup:after,.menubutton.popup.split:after{margin-top:6px;position:absolute;top:2px;right:6px;display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000000;border-right:4px solid transparent;border-left:4px solid transparent;content:"";opacity:0.3;filter:alpha(opacity=30);}
div.popmenu-wrapper{position:absolute;top:100%;z-index:20000;}div.popmenu-wrapper ul.dropdown-menu{display:block;position:relative;float:none;}
ul.dropdown-menu a{text-decoration:none;}
ul.dropdown-menu li.head>a{text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);font-size:11px;font-weight:bold;line-height:16px;color:#999999;text-transform:uppercase;}
@@ -714,7 +983,6 @@
pre.peek{background:white;color:black;width:100%;font-size:10px;overflow:auto;}pre.peek th{color:white;background:#023858;}
pre.peek table,pre.peek th,pre.peek tr,pre.peek td{font-family:Menlo,Monaco,"Courier New",monospace;font-size:10px;}
.toolMenuContainer{color:#303030;background:#dfe5f9;margin-top:5px;}
-.unified-panel-body .toolMenu{padding:10px;}
div.toolSectionPad{margin:0;padding:0;height:5px;font-size:0px;}
div.toolSectionWrapper{margin-bottom:5px;}
div.toolSectionDetailsInner{margin-left:5px;margin-right:5px;}
@@ -767,3 +1035,4 @@
div.historyItem-error .state-icon{background:url(history-states.png) no-repeat 0px 0px;}
div.historyItem-empty .state-icon{background:url(history-states.png) no-repeat 0px -25px;}
div.historyItem-queued .state-icon{background:url(history-states.png) no-repeat 0px -50px;}
+.text-and-autocomplete-select{background:none;position:relative;padding-right:18px;}.text-and-autocomplete-select:after{margin-top:6px;position:absolute;top:2px;right:6px;width:10px;height:10px;display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000000;border-right:4px solid transparent;border-left:4px solid transparent;content:"";opacity:0.3;filter:alpha(opacity=30);opacity:0.8;filter:alpha(opacity=80);}
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/june_2007_style/bootstrap/accordion.less
--- a/static/june_2007_style/bootstrap/accordion.less
+++ b/static/june_2007_style/bootstrap/accordion.less
@@ -21,6 +21,11 @@
padding: 8px 15px;
}
+// General toggle styles
+.accordion-toggle {
+ cursor: pointer;
+}
+
// Inner needs the styles because you can't animate properly with any styles on the element
.accordion-inner {
padding: 9px 15px;
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/june_2007_style/bootstrap/alerts.less
--- a/static/june_2007_style/bootstrap/alerts.less
+++ b/static/june_2007_style/bootstrap/alerts.less
@@ -9,10 +9,10 @@
background-color: @warningBackground;
border: 1px solid @warningBorder;
.border-radius(4px);
+ color: @warningText;
}
-.alert,
.alert-heading {
- color: @warningText;
+ color: inherit;
}
// Adjust close link position
@@ -29,32 +29,20 @@
.alert-success {
background-color: @successBackground;
border-color: @successBorder;
-}
-.alert-success,
-.alert-success .alert-heading {
color: @successText;
}
.alert-danger,
.alert-error {
background-color: @errorBackground;
border-color: @errorBorder;
-}
-.alert-danger,
-.alert-error,
-.alert-danger .alert-heading,
-.alert-error .alert-heading {
color: @errorText;
}
.alert-info {
background-color: @infoBackground;
border-color: @infoBorder;
-}
-.alert-info,
-.alert-info .alert-heading {
color: @infoText;
}
-
// Block alerts
// ------------------------
.alert-block {
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/june_2007_style/bootstrap/bootstrap.less
--- a/static/june_2007_style/bootstrap/bootstrap.less
+++ b/static/june_2007_style/bootstrap/bootstrap.less
@@ -1,5 +1,5 @@
/*!
- * Bootstrap v2.0.0
+ * Bootstrap v2.0.4
*
* Copyright 2012 Twitter, Inc
* Licensed under the Apache License v2.0
@@ -52,7 +52,7 @@
// Components: Misc
@import "thumbnails.less";
-@import "labels.less";
+@import "labels-badges.less";
@import "progress-bars.less";
@import "accordion.less";
@import "carousel.less";
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/june_2007_style/bootstrap/breadcrumbs.less
--- a/static/june_2007_style/bootstrap/breadcrumbs.less
+++ b/static/june_2007_style/bootstrap/breadcrumbs.less
@@ -4,12 +4,14 @@
.breadcrumb {
padding: 7px 14px;
margin: 0 0 @baseLineHeight;
+ list-style: none;
#gradient > .vertical(@white, #f5f5f5);
border: 1px solid #ddd;
.border-radius(3px);
.box-shadow(inset 0 1px 0 @white);
li {
- display: inline;
+ display: inline-block;
+ .ie7-inline-block();
text-shadow: 0 1px 0 @white;
}
.divider {
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/june_2007_style/bootstrap/button-groups.less
--- a/static/june_2007_style/bootstrap/button-groups.less
+++ b/static/june_2007_style/bootstrap/button-groups.less
@@ -25,14 +25,14 @@
}
// Float them, remove border radius, then re-add to first and last elements
-.btn-group .btn {
+.btn-group > .btn {
position: relative;
float: left;
margin-left: -1px;
.border-radius(0);
}
// Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match
-.btn-group .btn:first-child {
+.btn-group > .btn:first-child {
margin-left: 0;
-webkit-border-top-left-radius: 4px;
-moz-border-radius-topleft: 4px;
@@ -41,8 +41,9 @@
-moz-border-radius-bottomleft: 4px;
border-bottom-left-radius: 4px;
}
-.btn-group .btn:last-child,
-.btn-group .dropdown-toggle {
+// Need .dropdown-toggle since :last-child doesn't apply given a .dropdown-menu immediately after it
+.btn-group > .btn:last-child,
+.btn-group > .dropdown-toggle {
-webkit-border-top-right-radius: 4px;
-moz-border-radius-topright: 4px;
border-top-right-radius: 4px;
@@ -51,7 +52,7 @@
border-bottom-right-radius: 4px;
}
// Reset corners for large buttons
-.btn-group .btn.large:first-child {
+.btn-group > .btn.large:first-child {
margin-left: 0;
-webkit-border-top-left-radius: 6px;
-moz-border-radius-topleft: 6px;
@@ -60,8 +61,8 @@
-moz-border-radius-bottomleft: 6px;
border-bottom-left-radius: 6px;
}
-.btn-group .btn.large:last-child,
-.btn-group .large.dropdown-toggle {
+.btn-group > .btn.large:last-child,
+.btn-group > .large.dropdown-toggle {
-webkit-border-top-right-radius: 6px;
-moz-border-radius-topright: 6px;
border-top-right-radius: 6px;
@@ -71,10 +72,10 @@
}
// On hover/focus/active, bring the proper btn to front
-.btn-group .btn:hover,
-.btn-group .btn:focus,
-.btn-group .btn:active,
-.btn-group .btn.active {
+.btn-group > .btn:hover,
+.btn-group > .btn:focus,
+.btn-group > .btn:active,
+.btn-group > .btn.active {
z-index: 2;
}
@@ -90,34 +91,60 @@
// ----------------------
// Give the line between buttons some depth
-.btn-group .dropdown-toggle {
+.btn-group > .dropdown-toggle {
padding-left: 8px;
padding-right: 8px;
- @shadow: inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
- .box-shadow(@shadow);
- *padding-top: 5px;
- *padding-bottom: 5px;
+ .box-shadow(~"inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05)");
+ *padding-top: 4px;
+ *padding-bottom: 4px;
+}
+.btn-group > .btn-mini.dropdown-toggle {
+ padding-left: 5px;
+ padding-right: 5px;
+}
+.btn-group > .btn-small.dropdown-toggle {
+ *padding-top: 4px;
+ *padding-bottom: 4px;
+}
+.btn-group > .btn-large.dropdown-toggle {
+ padding-left: 12px;
+ padding-right: 12px;
}
.btn-group.open {
- // IE7's z-index only goes to the nearest positioned ancestor, which would
- // make the menu appear below buttons that appeared later on the page
- *z-index: @zindexDropdown;
- // Reposition menu on open and round all corners
- .dropdown-menu {
- display: block;
- margin-top: 1px;
- .border-radius(5px);
+ // The clickable button for toggling the menu
+ // Remove the gradient and set the same inset shadow as the :active state
+ .dropdown-toggle {
+ background-image: none;
+ .box-shadow(~"inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05)");
}
- .dropdown-toggle {
- background-image: none;
- @shadow: inset 0 1px 6px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);
- .box-shadow(@shadow);
+ // Keep the hover's background when dropdown is open
+ .btn.dropdown-toggle {
+ background-color: @btnBackgroundHighlight;
+ }
+ .btn-primary.dropdown-toggle {
+ background-color: @btnPrimaryBackgroundHighlight;
+ }
+ .btn-warning.dropdown-toggle {
+ background-color: @btnWarningBackgroundHighlight;
+ }
+ .btn-danger.dropdown-toggle {
+ background-color: @btnDangerBackgroundHighlight;
+ }
+ .btn-success.dropdown-toggle {
+ background-color: @btnSuccessBackgroundHighlight;
+ }
+ .btn-info.dropdown-toggle {
+ background-color: @btnInfoBackgroundHighlight;
+ }
+ .btn-inverse.dropdown-toggle {
+ background-color: @btnInverseBackgroundHighlight;
}
}
+
// Reposition the caret
.btn .caret {
margin-top: 7px;
@@ -127,21 +154,38 @@
.open.btn-group .caret {
.opacity(100);
}
+// Carets in other button sizes
+.btn-mini .caret {
+ margin-top: 5px;
+}
+.btn-small .caret {
+ margin-top: 6px;
+}
+.btn-large .caret {
+ margin-top: 6px;
+ border-left-width: 5px;
+ border-right-width: 5px;
+ border-top-width: 5px;
+}
+// Upside down carets for .dropup
+.dropup .btn-large .caret {
+ border-bottom: 5px solid @black;
+ border-top: 0;
+}
+
// Account for other colors
.btn-primary,
+.btn-warning,
.btn-danger,
.btn-info,
-.btn-success {
+.btn-success,
+.btn-inverse {
.caret {
border-top-color: @white;
+ border-bottom-color: @white;
.opacity(75);
}
}
-// Small button dropdowns
-.btn-small .caret {
- margin-top: 4px;
-}
-
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/june_2007_style/bootstrap/buttons.less
--- a/static/june_2007_style/bootstrap/buttons.less
+++ b/static/june_2007_style/bootstrap/buttons.less
@@ -8,30 +8,32 @@
// Core
.btn {
display: inline-block;
- padding: 2px 10px 2px;
+ .ie7-inline-block();
+ padding: 4px 10px 4px;
+ margin-bottom: 0; // For input.btn
font-size: @baseFontSize;
line-height: @baseLineHeight;
- color: @textColor;
+ *line-height: 20px;
+ color: @grayDark;
text-align: center;
text-shadow: 0 1px 1px rgba(255,255,255,.75);
- #gradient > .vertical-three-colors(@white, @white, 25%, darken(@white, 10%)); // Don't use .gradientbar() here since it does a three-color gradient
- border: 1px solid @buttonBorder;
- border-bottom-color: @buttonBorderBottom;
+ vertical-align: middle;
+ cursor: pointer;
+ .buttonBackground(@btnBackground, @btnBackgroundHighlight);
+ border: 1px solid @btnBorder;
+ *border: 0; // Remove the border to prevent IE7's black border on input:focus
+ border-bottom-color: darken(@btnBorder, 10%);
.border-radius(4px);
- @shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
- .box-shadow(@shadow);
- cursor: pointer;
-
- // Give IE7 some love
- .ie7-restore-left-whitespace();
+ .ie7-restore-left-whitespace(); // Give IE7 some love
+ .box-shadow(~"inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05)");
}
// Hover state
-.btn.hover,
.btn:hover {
- color: @textColor;
+ color: @grayDark;
text-decoration: none;
background-color: darken(@white, 10%);
+ *background-color: darken(@white, 15%); /* Buttons in IE7 don't get borders, so darken on hover */
background-position: 0 -15px;
// transition is only when going to hover, otherwise the background
@@ -47,21 +49,19 @@
// Active state
.btn.active,
.btn:active {
- background-image: none;
- @shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);
- .box-shadow(@shadow);
background-color: darken(@white, 10%);
background-color: darken(@white, 15%) e("\9");
- // color: rgba(0,0,0,.5);
+ background-image: none;
outline: 0;
+ .box-shadow(~"inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05)");
}
// Disabled state
.btn.disabled,
.btn[disabled] {
cursor: default;
+ background-color: darken(@white, 10%);
background-image: none;
- background-color: darken(@white, 10%);
.opacity(65);
.box-shadow(none);
}
@@ -77,7 +77,7 @@
line-height: normal;
.border-radius(5px);
}
-.btn-large .icon {
+.btn-large [class^="icon-"] {
margin-top: 1px;
}
@@ -87,10 +87,17 @@
font-size: @baseFontSize - 2px;
line-height: @baseLineHeight - 2px;
}
-.btn-small .icon {
+.btn-small [class^="icon-"] {
margin-top: -1px;
}
+// Mini
+.btn-mini {
+ padding: 2px 6px;
+ font-size: @baseFontSize - 2px;
+ line-height: @baseLineHeight - 4px;
+}
+
// Alternate buttons
// --------------------------------------------------
@@ -106,39 +113,51 @@
.btn-success,
.btn-success:hover,
.btn-info,
-.btn-info:hover {
+.btn-info:hover,
+.btn-inverse,
+.btn-inverse:hover {
+ color: @white;
text-shadow: 0 -1px 0 rgba(0,0,0,.25);
- color: @white;
}
// Provide *some* extra contrast for those who can get it
.btn-primary.active,
.btn-warning.active,
.btn-danger.active,
.btn-success.active,
-.btn-info.active {
+.btn-info.active,
+.btn-inverse.active {
color: rgba(255,255,255,.75);
}
// Set the backgrounds
// -------------------------
+.btn {
+ // reset here as of 2.0.3 due to Recess property order
+ border-color: #ccc;
+ border-color: rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);
+}
.btn-primary {
- .buttonBackground(@primaryButtonBackground, spin(@primaryButtonBackground, 20));
+ .buttonBackground(@btnPrimaryBackground, @btnPrimaryBackgroundHighlight);
}
// Warning appears are orange
.btn-warning {
- .buttonBackground(lighten(@orange, 15%), @orange);
+ .buttonBackground(@btnWarningBackground, @btnWarningBackgroundHighlight);
}
// Danger and error appear as red
.btn-danger {
- .buttonBackground(#ee5f5b, #bd362f);
+ .buttonBackground(@btnDangerBackground, @btnDangerBackgroundHighlight);
}
// Success appears as green
.btn-success {
- .buttonBackground(#62c462, #51a351);
+ .buttonBackground(@btnSuccessBackground, @btnSuccessBackgroundHighlight);
}
// Info appears as a neutral blue
.btn-info {
- .buttonBackground(#5bc0de, #2f96b4);
+ .buttonBackground(@btnInfoBackground, @btnInfoBackgroundHighlight);
+}
+// Inverse appears as dark gray
+.btn-inverse {
+ .buttonBackground(@btnInverseBackground, @btnInverseBackgroundHighlight);
}
@@ -147,20 +166,26 @@
button.btn,
input[type="submit"].btn {
+
+ // Firefox 3.6 only I believe
&::-moz-focus-inner {
- padding: 0;
+ padding: 0;
border: 0;
}
// IE7 has some default padding on button controls
*padding-top: 2px;
*padding-bottom: 2px;
- &.large {
+ &.btn-large {
*padding-top: 7px;
*padding-bottom: 7px;
}
- &.small {
+ &.btn-small {
*padding-top: 3px;
*padding-bottom: 3px;
}
+ &.btn-mini {
+ *padding-top: 1px;
+ *padding-bottom: 1px;
+ }
}
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/june_2007_style/bootstrap/close.less
--- a/static/june_2007_style/bootstrap/close.less
+++ b/static/june_2007_style/bootstrap/close.less
@@ -12,7 +12,18 @@
&:hover {
color: @black;
text-decoration: none;
+ cursor: pointer;
.opacity(40);
- cursor: pointer;
}
}
+
+// Additional properties for button version
+// iOS requires the button element instead of an anchor tag.
+// If you want the anchor version, it requires `href="#"`.
+button.close {
+ padding: 0;
+ cursor: pointer;
+ background: transparent;
+ border: 0;
+ -webkit-appearance: none;
+}
\ No newline at end of file
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/june_2007_style/bootstrap/code.less
--- a/static/june_2007_style/bootstrap/code.less
+++ b/static/june_2007_style/bootstrap/code.less
@@ -11,25 +11,30 @@
color: @grayDark;
.border-radius(3px);
}
+
+// Inline code
code {
- padding: 3px 4px;
+ padding: 2px 4px;
color: #d14;
background-color: #f7f7f9;
border: 1px solid #e1e1e8;
}
+
+// Blocks of code
pre {
display: block;
padding: (@baseLineHeight - 1) / 2;
margin: 0 0 @baseLineHeight / 2;
- font-size: 12px;
+ font-size: @baseFontSize * .925; // 13px to 12px
line-height: @baseLineHeight;
+ word-break: break-all;
+ word-wrap: break-word;
+ white-space: pre;
+ white-space: pre-wrap;
background-color: #f5f5f5;
border: 1px solid #ccc; // fallback for IE7-8
border: 1px solid rgba(0,0,0,.15);
.border-radius(4px);
- white-space: pre;
- white-space: pre-wrap;
- word-break: break-all;
// Make prettyprint styles more spaced out for readability
&.prettyprint {
@@ -39,6 +44,14 @@
// Account for some code outputs that place code tags in pre tags
code {
padding: 0;
+ color: inherit;
background-color: transparent;
+ border: 0;
}
}
+
+// Enable scrollable blocks of code
+.pre-scrollable {
+ max-height: 340px;
+ overflow-y: scroll;
+}
\ No newline at end of file
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/june_2007_style/bootstrap/component-animations.less
--- a/static/june_2007_style/bootstrap/component-animations.less
+++ b/static/june_2007_style/bootstrap/component-animations.less
@@ -2,17 +2,19 @@
// --------------------
.fade {
+ opacity: 0;
.transition(opacity .15s linear);
- opacity: 0;
&.in {
opacity: 1;
}
}
.collapse {
+ position: relative;
+ height: 0;
+ overflow: hidden;
.transition(height .35s ease);
- position:relative;
- overflow:hidden;
- height: 0;
- &.in { height: auto; }
+ &.in {
+ height: auto;
+ }
}
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/june_2007_style/bootstrap/dropdowns.less
--- a/static/june_2007_style/bootstrap/dropdowns.less
+++ b/static/june_2007_style/bootstrap/dropdowns.less
@@ -2,6 +2,7 @@
// --------------
// Use the .menu class on any <li> element within the topbar or ul.tabs and you'll get some superfancy dropdowns
+.dropup,
.dropdown {
position: relative;
}
@@ -13,78 +14,64 @@
.open .dropdown-toggle {
outline: 0;
}
+
// Dropdown arrow/caret
+// --------------------
.caret {
display: inline-block;
width: 0;
height: 0;
- text-indent: -99999px;
- // IE7 won't do the border trick if there's a text indent, but it doesn't
- // do the content that text-indent is hiding, either, so we're ok.
- *text-indent: 0;
vertical-align: top;
+ border-top: 4px solid @black;
+ border-right: 4px solid transparent;
border-left: 4px solid transparent;
- border-right: 4px solid transparent;
- border-top: 4px solid @black;
+ content: "";
.opacity(30);
- content: "\2193";
}
+
+// Place the caret
.dropdown .caret {
margin-top: 8px;
margin-left: 2px;
}
.dropdown:hover .caret,
-.open.dropdown .caret {
+.open .caret {
.opacity(100);
}
+
// The dropdown menu (ul)
+// ----------------------
.dropdown-menu {
position: absolute;
top: 100%;
left: 0;
z-index: @zindexDropdown;
+ display: none; // none by default, but block on "open" of the menu
float: left;
- display: none; // none by default, but block on "open" of the menu
min-width: 160px;
- // makmax-width: 220px;
- _width: 160px;
padding: 4px 0;
- margin: 0; // override default ul
+ margin: 1px 0 0; // override default ul
list-style: none;
- background-color: @white;
- border-color: #ccc;
- border-color: rgba(0,0,0,.2);
- border-style: solid;
- border-width: 1px;
- .border-radius(0 0 5px 5px);
+ background-color: @dropdownBackground;
+ border: 1px solid #ccc;
+ border: 1px solid rgba(0,0,0,.2);
+ *border-right-width: 2px;
+ *border-bottom-width: 2px;
+ .border-radius(5px);
.box-shadow(0 5px 10px rgba(0,0,0,.2));
-webkit-background-clip: padding-box;
-moz-background-clip: padding;
background-clip: padding-box;
- *border-right-width: 2px;
- *border-bottom-width: 2px;
- // Allow for dropdowns to go bottom up (aka, dropup-menu)
- &.bottom-up {
- top: auto;
- bottom: 100%;
- margin-bottom: 2px;
+ // Aligns the dropdown menu to right
+ &.pull-right {
+ right: 0;
+ left: auto;
}
// Dividers (basically an hr) within the dropdown
.divider {
- height: 1px;
- margin: 5px 1px;
- overflow: hidden;
- background-color: #e5e5e5;
- border-bottom: 1px solid @white;
-
- // IE7 needs a set width since we gave a height. Restricting just
- // to IE7 to keep the 1px left/right space in other browsers.
- // It is unclear where IE is getting the extra space that we need
- // to negative-margin away, but so it goes.
- *width: 100%;
- *margin: -5px 0 5px;
+ .nav-divider(@dropdownDividerTop, @dropdownDividerBottom);
}
// Links within the dropdown menu
@@ -93,38 +80,63 @@
padding: 3px 15px;
clear: both;
font-weight: normal;
- line-height: 18px;
- color: @gray;
+ line-height: @baseLineHeight;
+ color: @dropdownLinkColor;
white-space: nowrap;
}
}
// Hover state
+// -----------
.dropdown-menu li > a:hover,
.dropdown-menu .active > a,
.dropdown-menu .active > a:hover {
- color: @white;
+ color: @dropdownLinkColorHover;
text-decoration: none;
- background-color: @linkColor;
+ background-color: @dropdownLinkBackgroundHover;
}
// Open state for the dropdown
-.dropdown.open {
+// ---------------------------
+.open {
// IE7's z-index only goes to the nearest positioned ancestor, which would
// make the menu appear below buttons that appeared later on the page
*z-index: @zindexDropdown;
- .dropdown-toggle {
- color: @white;
- background: #ccc;
- background: rgba(0,0,0,.3);
- }
- .dropdown-menu {
+ & > .dropdown-menu {
display: block;
}
}
+// Right aligned dropdowns
+// ---------------------------
+.pull-right > .dropdown-menu {
+ right: 0;
+ left: auto;
+}
+
+// Allow for dropdowns to go bottom up (aka, dropup-menu)
+// ------------------------------------------------------
+// Just add .dropup after the standard .dropdown class and you're set, bro.
+// TODO: abstract this so that the navbar fixed styles are not placed here?
+.dropup,
+.navbar-fixed-bottom .dropdown {
+ // Reverse the caret
+ .caret {
+ border-top: 0;
+ border-bottom: 4px solid @black;
+ content: "\2191";
+ }
+ // Different positioning for bottom up menu
+ .dropdown-menu {
+ top: auto;
+ bottom: 100%;
+ margin-bottom: 1px;
+ }
+}
+
// Typeahead
+// ---------
.typeahead {
margin-top: 2px; // give it some space to breathe
.border-radius(4px);
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/june_2007_style/bootstrap/forms.less
--- a/static/june_2007_style/bootstrap/forms.less
+++ b/static/june_2007_style/bootstrap/forms.less
@@ -27,7 +27,13 @@
line-height: @baseLineHeight * 2;
color: @grayDark;
border: 0;
- border-bottom: 1px solid #eee;
+ border-bottom: 1px solid #e5e5e5;
+
+ // Small
+ small {
+ font-size: @baseLineHeight * .75;
+ color: @grayLight;
+ }
}
// Set font for forms
@@ -36,73 +42,114 @@
button,
select,
textarea {
- #font > .sans-serif(@baseFontSize,normal,@baseLineHeight);
+ #font > .shorthand(@baseFontSize,normal,@baseLineHeight); // Set size, weight, line-height here
+}
+input,
+button,
+select,
+textarea {
+ font-family: @baseFontFamily; // And only set font-family here for those that need it (note the missing label element)
}
// Identify controls by their labels
label {
display: block;
margin-bottom: 5px;
- color: @grayDark;
}
-// Inputs, Textareas, Selects
-input,
+// Form controls
+// -------------------------
+
+// Shared size and type resets
+select,
textarea,
-select,
+input[type="text"],
+input[type="password"],
+input[type="datetime"],
+input[type="datetime-local"],
+input[type="date"],
+input[type="month"],
+input[type="time"],
+input[type="week"],
+input[type="number"],
+input[type="email"],
+input[type="url"],
+input[type="search"],
+input[type="tel"],
+input[type="color"],
.uneditable-input {
display: inline-block;
- width: 210px;
height: @baseLineHeight;
padding: 4px;
margin-bottom: 9px;
font-size: @baseFontSize;
line-height: @baseLineHeight;
color: @gray;
- border: 1px solid @formElementBorder;
- .border-radius(3px);
}
-.uneditable-textarea {
- width: auto;
+
+// Reset appearance properties for textual inputs and textarea
+// Declare width for legacy (can't be on input[type=*] selectors or it's too specific)
+input,
+textarea {
+ width: 210px;
+}
+// Reset height since textareas have rows
+textarea {
height: auto;
}
+// Everything else
+textarea,
+input[type="text"],
+input[type="password"],
+input[type="datetime"],
+input[type="datetime-local"],
+input[type="date"],
+input[type="month"],
+input[type="time"],
+input[type="week"],
+input[type="number"],
+input[type="email"],
+input[type="url"],
+input[type="search"],
+input[type="tel"],
+input[type="color"],
+.uneditable-input {
+ background-color: @inputBackground;
+ border: 1px solid @inputBorder;
+ .border-radius(@inputBorderRadius);
+ .box-shadow(inset 0 1px 1px rgba(0,0,0,.075));
+ @transition: border linear .2s, box-shadow linear .2s;
+ .transition(@transition);
-// Inputs within a label
-label input,
-label textarea,
-label select {
- display: block;
+ // Focus state
+ &:focus {
+ border-color: rgba(82,168,236,.8);
+ outline: 0;
+ outline: thin dotted \9; /* IE6-9 */
+ .box-shadow(~"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6)");
+ }
}
-// Mini reset for unique input types
-input[type="image"],
-input[type="checkbox"],
-input[type="radio"] {
- width: auto;
- height: auto;
- padding: 0;
+// Position radios and checkboxes better
+input[type="radio"],
+input[type="checkbox"] {
margin: 3px 0;
*margin-top: 0; /* IE7 */
line-height: normal;
- border: 0;
cursor: pointer;
- .border-radius(0);
}
-// Reset the file input to browser defaults
-input[type="file"] {
- padding: initial;
- line-height: initial;
- border: initial;
- background-color: @white;
- background-color: initial;
- .box-shadow(none);
+// Reset width of input buttons, radios, checkboxes
+input[type="submit"],
+input[type="reset"],
+input[type="button"],
+input[type="radio"],
+input[type="checkbox"] {
+ width: auto; // Override of generic input selector
}
-// Help out input buttons
-input[type="button"],
-input[type="reset"],
-input[type="submit"] {
+// Make uneditable textareas behave like a textarea
+.uneditable-textarea {
width: auto;
height: auto;
}
@@ -115,10 +162,10 @@
line-height: 28px;
}
-// Chrome on Linux and Mobile Safari need background-color
+// Make select elements obey height by applying a border
select {
width: 220px; // default input width + 10px of padding that doesn't get applied
- background-color: @white;
+ border: 1px solid #bbb;
}
// Make multiple select elements height not fixed
@@ -127,19 +174,12 @@
height: auto;
}
-// Remove shadow from image inputs
-input[type="image"] {
- .box-shadow(none);
-}
-
-// Make textarea height behave
-textarea {
- height: auto;
-}
-
-// Hidden inputs
-input[type="hidden"] {
- display: none;
+// Focus for select, file, radio, and checkbox
+select:focus,
+input[type="file"]:focus,
+input[type="radio"]:focus,
+input[type="checkbox"]:focus {
+ .tab-focus();
}
@@ -150,6 +190,7 @@
// Indent the labels to position radios/checkboxes as hanging
.radio,
.checkbox {
+ min-height: 18px; // clear the floating input if there is no label text
padding-left: 18px;
}
.radio input[type="radio"],
@@ -165,9 +206,11 @@
}
// Radios and checkboxes on same line
+// TODO v3: Convert .inline to .control-inline
.radio.inline,
.checkbox.inline {
display: inline-block;
+ padding-top: 5px;
margin-bottom: 0;
vertical-align: middle;
}
@@ -175,37 +218,6 @@
.checkbox.inline + .checkbox.inline {
margin-left: 10px; // space out consecutive inline controls
}
-// But don't forget to remove their padding on first-child
-.controls > .radio.inline:first-child,
-.controls > .checkbox.inline:first-child {
- padding-top: 0;
-}
-
-
-
-// FOCUS STATE
-// -----------
-
-input,
-textarea {
- .box-shadow(inset 0 1px 1px rgba(0,0,0,.075));
- @transition: border linear .2s, box-shadow linear .2s;
- .transition(@transition);
-}
-input:focus,
-textarea:focus {
- border-color: rgba(82,168,236,.8);
- @shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);
- .box-shadow(@shadow);
- outline: 0;
- outline: thin dotted \9; /* IE6-8 */
-}
-input[type="file"]:focus,
-input[type="checkbox"]:focus,
-select:focus {
- .box-shadow(none); // override for file inputs
- .tab-focus();
-}
@@ -224,18 +236,31 @@
input[class*="span"],
select[class*="span"],
textarea[class*="span"],
-.uneditable-input {
+.uneditable-input[class*="span"],
+// Redeclare since the fluid row class is more specific
+.row-fluid input[class*="span"],
+.row-fluid select[class*="span"],
+.row-fluid textarea[class*="span"],
+.row-fluid .uneditable-input[class*="span"] {
float: none;
margin-left: 0;
}
+// Ensure input-prepend/append never wraps
+.input-append input[class*="span"],
+.input-append .uneditable-input[class*="span"],
+.input-prepend input[class*="span"],
+.input-prepend .uneditable-input[class*="span"],
+.row-fluid .input-prepend [class*="span"],
+.row-fluid .input-append [class*="span"] {
+ display: inline-block;
+}
// GRID SIZING FOR INPUTS
// ----------------------
-#inputGridSystem > .generate(@gridColumns, @gridColumnWidth, @gridGutterWidth);
-
+#grid > .input(@gridColumnWidth, @gridGutterWidth);
@@ -249,9 +274,16 @@
input[readonly],
select[readonly],
textarea[readonly] {
- background-color: #f5f5f5;
+ cursor: not-allowed;
+ background-color: @inputDisabledBackground;
border-color: #ddd;
- cursor: not-allowed;
+}
+// Explicitly reset the colors here
+input[type="radio"][disabled],
+input[type="checkbox"][disabled],
+input[type="radio"][readonly],
+input[type="checkbox"][readonly] {
+ background-color: transparent;
}
@@ -260,33 +292,6 @@
// FORM FIELD FEEDBACK STATES
// --------------------------
-// Mixin for form field states
-.formFieldState(@textColor: #555, @borderColor: @formElementBorder, @backgroundColor: #f5f5f5) {
- // Set the text color
- > label,
- .help-block,
- .help-inline {
- color: @textColor;
- }
- // Style inputs accordingly
- input,
- select,
- textarea {
- color: @textColor;
- border-color: @borderColor;
- &:focus {
- border-color: darken(@borderColor, 10%);
- .box-shadow(0 0 6px lighten(@borderColor, 20%));
- }
- }
- // Give a small background color for input-prepend/-append
- .input-prepend .add-on,
- .input-append .add-on {
- color: @textColor;
- background-color: @backgroundColor;
- border-color: @textColor;
- }
-}
// Warning
.control-group.warning {
.formFieldState(@warningText, @warningText, @warningBackground);
@@ -309,7 +314,7 @@
border-color: #ee5f5b;
&:focus {
border-color: darken(#ee5f5b, 10%);
- .box-shadow(0 0 6px lighten(#ee5f5b, 20%));
+ .box-shadow(0 0 6px lighten(#ee5f5b, 20%));
}
}
@@ -322,37 +327,42 @@
padding: (@baseLineHeight - 1) 20px @baseLineHeight;
margin-top: @baseLineHeight;
margin-bottom: @baseLineHeight;
- background-color: #f5f5f5;
- border-top: 1px solid #ddd;
+ background-color: @formActionsBackground;
+ border-top: 1px solid #e5e5e5;
+ .clearfix(); // Adding clearfix to allow for .pull-right button containers
}
// For text that needs to appear as an input but should not be an input
.uneditable-input {
- display: block;
- background-color: @white;
+ overflow: hidden; // prevent text from wrapping, but still cut it off like an input does
+ white-space: nowrap;
+ cursor: not-allowed;
+ background-color: @inputBackground;
border-color: #eee;
.box-shadow(inset 0 1px 2px rgba(0,0,0,.025));
- cursor: not-allowed;
}
// Placeholder text gets special styles; can't be bundled together though for some reason
-.placeholder(@grayLight);
+.placeholder();
// HELP TEXT
// ---------
+.help-block,
+.help-inline {
+ color: @gray; // lighten the text some for contrast
+}
+
.help-block {
- margin-top: 5px;
- margin-bottom: 0;
- color: @grayLight;
+ display: block; // account for any element using help-block
+ margin-bottom: @baseLineHeight / 2;
}
.help-inline {
display: inline-block;
.ie7-inline-block();
- margin-bottom: 9px;
vertical-align: middle;
padding-left: 5px;
}
@@ -366,12 +376,16 @@
.input-prepend,
.input-append {
margin-bottom: 5px;
- .clearfix(); // Clear the float to prevent wrapping
input,
+ select,
.uneditable-input {
- .border-radius(0 3px 3px 0);
+ position: relative; // placed here by default so that on :focus we can place the input above the .add-on for full border and box-shadow goodness
+ margin-bottom: 0; // prevent bottom margin from screwing up alignment in stacked forms
+ *margin-left: 0;
+ vertical-align: middle;
+ .border-radius(0 @inputBorderRadius @inputBorderRadius 0);
+ // Make input on top when focused so blue border and shadow always show
&:focus {
- position: relative;
z-index: 2;
}
}
@@ -379,21 +393,23 @@
border-left-color: #ccc;
}
.add-on {
- float: left;
- display: block;
+ display: inline-block;
width: auto;
+ height: @baseLineHeight;
min-width: 16px;
- height: @baseLineHeight;
- margin-right: -1px;
padding: 4px 5px;
font-weight: normal;
line-height: @baseLineHeight;
- color: @grayLight;
text-align: center;
text-shadow: 0 1px 0 @white;
- background-color: #f5f5f5;
- border: 1px solid @formElementBorder;
- .border-radius(3px 0 0 3px);
+ vertical-align: middle;
+ background-color: @grayLighter;
+ border: 1px solid #ccc;
+ }
+ .add-on,
+ .btn {
+ margin-left: -1px;
+ .border-radius(0);
}
.active {
background-color: lighten(@green, 30);
@@ -401,32 +417,46 @@
}
}
.input-prepend {
- .add-on {
- *margin-top: 1px; /* IE6-7 */
+ .add-on,
+ .btn {
+ margin-right: -1px;
+ }
+ .add-on:first-child,
+ .btn:first-child {
+ .border-radius(@inputBorderRadius 0 0 @inputBorderRadius);
}
}
.input-append {
input,
+ select,
.uneditable-input {
- float: left;
- .border-radius(3px 0 0 3px);
+ .border-radius(@inputBorderRadius 0 0 @inputBorderRadius);
}
.uneditable-input {
- border-right-color: @formElementBorder;
+ border-right-color: #ccc;
+ border-left-color: #eee;
}
- .add-on {
- margin-right: 0;
+ .add-on:last-child,
+ .btn:last-child {
+ .border-radius(0 @inputBorderRadius @inputBorderRadius 0);
+ }
+}
+// Remove all border-radius for inputs with both prepend and append
+.input-prepend.input-append {
+ input,
+ select,
+ .uneditable-input {
+ .border-radius(0);
+ }
+ .add-on:first-child,
+ .btn:first-child {
+ margin-right: -1px;
+ .border-radius(@inputBorderRadius 0 0 @inputBorderRadius);
+ }
+ .add-on:last-child,
+ .btn:last-child {
margin-left: -1px;
- .border-radius(0 3px 3px 0);
- }
- input:first-child {
- // In IE7, having a hasLayout container (from clearfix's zoom:1) can make the first input
- // inherit the sum of its ancestors' margins.
- *margin-left: -160px;
-
- &+.add-on {
- *margin-left: -21px;
- }
+ .border-radius(0 @inputBorderRadius @inputBorderRadius 0);
}
}
@@ -436,8 +466,10 @@
// -----------
.search-query {
+ padding-right: 14px;
+ padding-right: 4px \9;
padding-left: 14px;
- padding-right: 14px;
+ padding-left: 4px \9; /* IE7-8 doesn't have border-radius, so don't indent the padding */
margin-bottom: 0; // remove the default margin on all inputs
.border-radius(14px);
}
@@ -457,48 +489,71 @@
textarea,
select,
.help-inline,
- .uneditable-input {
+ .uneditable-input,
+ .input-prepend,
+ .input-append {
display: inline-block;
+ .ie7-inline-block();
margin-bottom: 0;
}
+ // Re-hide hidden elements due to specifity
+ .hide {
+ display: none;
+ }
}
.form-search label,
-.form-inline label,
+.form-inline label {
+ display: inline-block;
+}
+// Remove margin for input-prepend/-append
.form-search .input-append,
.form-inline .input-append,
.form-search .input-prepend,
.form-inline .input-prepend {
- display: inline-block;
+ margin-bottom: 0;
}
-// Make the prepend and append add-on vertical-align: middle;
-.form-search .input-append .add-on,
-.form-inline .input-prepend .add-on,
-.form-search .input-append .add-on,
-.form-inline .input-prepend .add-on {
+// Inline checkbox/radio labels (remove padding on left)
+.form-search .radio,
+.form-search .checkbox,
+.form-inline .radio,
+.form-inline .checkbox {
+ padding-left: 0;
+ margin-bottom: 0;
vertical-align: middle;
}
+// Remove float and margin, set to inline-block
+.form-search .radio input[type="radio"],
+.form-search .checkbox input[type="checkbox"],
+.form-inline .radio input[type="radio"],
+.form-inline .checkbox input[type="checkbox"] {
+ float: left;
+ margin-right: 3px;
+ margin-left: 0;
+}
+
// Margin to space out fieldsets
.control-group {
margin-bottom: @baseLineHeight / 2;
}
+// Legend collapses margin, so next element is responsible for spacing
+legend + .control-group {
+ margin-top: @baseLineHeight;
+ -webkit-margin-top-collapse: separate;
+}
+
// Horizontal-specific styles
// --------------------------
.form-horizontal {
- // Legend collapses margin, so we're relegated to padding
- legend + .control-group {
- margin-top: @baseLineHeight;
- -webkit-margin-top-collapse: separate;
- }
// Increase spacing between groups
.control-group {
margin-bottom: @baseLineHeight;
.clearfix();
}
// Float the labels left
- .control-group > label {
+ .control-label {
float: left;
width: 140px;
padding-top: 5px;
@@ -506,7 +561,20 @@
}
// Move over all input controls and content
.controls {
+ // Super jank IE7 fix to ensure the inputs in .input-append and input-prepend
+ // don't inherit the margin of the parent, in this case .controls
+ *display: inline-block;
+ *padding-left: 20px;
margin-left: 160px;
+ *margin-left: 0;
+ &:first-child {
+ *padding-left: 160px;
+ }
+ }
+ // Remove bottom margin on block level help text since that's accounted for on .control-group
+ .help-block {
+ margin-top: @baseLineHeight / 2;
+ margin-bottom: 0;
}
// Move over buttons in .form-actions to align with .controls
.form-actions {
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/june_2007_style/bootstrap/grid.less
--- a/static/june_2007_style/bootstrap/grid.less
+++ b/static/june_2007_style/bootstrap/grid.less
@@ -1,8 +1,5 @@
-// GRID SYSTEM
-// -----------
-
// Fixed (940px)
-#gridSystem > .generate(@gridColumns, @gridColumnWidth, @gridGutterWidth);
+#grid > .core(@gridColumnWidth, @gridGutterWidth);
// Fluid (940px)
-#fluidGridSystem > .generate(@gridColumns, @fluidGridColumnWidth, @fluidGridGutterWidth);
+#grid > .fluid(@fluidGridColumnWidth, @fluidGridGutterWidth);
\ No newline at end of file
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/june_2007_style/bootstrap/hero-unit.less
--- a/static/june_2007_style/bootstrap/hero-unit.less
+++ b/static/june_2007_style/bootstrap/hero-unit.less
@@ -4,17 +4,19 @@
.hero-unit {
padding: 60px;
margin-bottom: 30px;
- background-color: #f5f5f5;
+ background-color: @heroUnitBackground;
.border-radius(6px);
h1 {
margin-bottom: 0;
font-size: 60px;
line-height: 1;
+ color: @heroUnitHeadingColor;
letter-spacing: -1px;
}
p {
font-size: 18px;
font-weight: 200;
line-height: @baseLineHeight * 1.5;
+ color: @heroUnitLeadColor;
}
}
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/june_2007_style/bootstrap/labels-badges.less
--- /dev/null
+++ b/static/june_2007_style/bootstrap/labels-badges.less
@@ -0,0 +1,55 @@
+// LABELS & BADGES
+// ---------------
+
+// Base classes
+.label,
+.badge {
+ font-size: @baseFontSize * .846;
+ font-weight: bold;
+ line-height: 14px; // ensure proper line-height if floated
+ color: @white;
+ vertical-align: baseline;
+ white-space: nowrap;
+ text-shadow: 0 -1px 0 rgba(0,0,0,.25);
+ background-color: @grayLight;
+}
+// Set unique padding and border-radii
+.label {
+ padding: 1px 4px 2px;
+ .border-radius(3px);
+}
+.badge {
+ padding: 1px 9px 2px;
+ .border-radius(9px);
+}
+
+// Hover state, but only for links
+a {
+ &.label:hover,
+ &.badge:hover {
+ color: @white;
+ text-decoration: none;
+ cursor: pointer;
+ }
+}
+
+// Colors
+// Only give background-color difference to links (and to simplify, we don't qualifty with `a` but [href] attribute)
+.label,
+.badge {
+ // Important (red)
+ &-important { background-color: @errorText; }
+ &-important[href] { background-color: darken(@errorText, 10%); }
+ // Warnings (orange)
+ &-warning { background-color: @orange; }
+ &-warning[href] { background-color: darken(@orange, 10%); }
+ // Success (green)
+ &-success { background-color: @successText; }
+ &-success[href] { background-color: darken(@successText, 10%); }
+ // Info (turquoise)
+ &-info { background-color: @infoText; }
+ &-info[href] { background-color: darken(@infoText, 10%); }
+ // Inverse (black)
+ &-inverse { background-color: @grayDark; }
+ &-inverse[href] { background-color: darken(@grayDark, 10%); }
+}
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/june_2007_style/bootstrap/layouts.less
--- a/static/june_2007_style/bootstrap/layouts.less
+++ b/static/june_2007_style/bootstrap/layouts.less
@@ -11,7 +11,7 @@
// Fluid layouts (left aligned, with sidebar, min- & max-width content)
.container-fluid {
+ padding-right: @gridGutterWidth;
padding-left: @gridGutterWidth;
- padding-right: @gridGutterWidth;
.clearfix();
}
\ No newline at end of file
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/june_2007_style/bootstrap/mixins.less
--- a/static/june_2007_style/bootstrap/mixins.less
+++ b/static/june_2007_style/bootstrap/mixins.less
@@ -9,7 +9,7 @@
// Clearfix
// --------
// For clearing floats like a boss h5bp.com/q
-.clearfix() {
+.clearfix {
*zoom: 1;
&:before,
&:after {
@@ -25,7 +25,7 @@
// ------------------
.tab-focus() {
// Default
- outline: thin dotted;
+ outline: thin dotted #333;
// Webkit
outline: 5px auto -webkit-focus-ring-color;
outline-offset: -2px;
@@ -70,25 +70,47 @@
// Sizing shortcuts
// -------------------------
-.size(@height: 5px, @width: 5px) {
+.size(@height, @width) {
width: @width;
height: @height;
}
-.square(@size: 5px) {
+.square(@size) {
.size(@size, @size);
}
// Placeholder text
// -------------------------
.placeholder(@color: @placeholderText) {
- :-moz-placeholder {
+ &:-moz-placeholder {
color: @color;
}
- ::-webkit-input-placeholder {
+ &:-ms-input-placeholder {
+ color: @color;
+ }
+ &::-webkit-input-placeholder {
color: @color;
}
}
+// Text overflow
+// -------------------------
+// Requires inline-block or block for proper styling
+.text-overflow() {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+
+// CSS image replacement
+// -------------------------
+// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757
+.hide-text {
+ font: 0/0 a;
+ color: transparent;
+ text-shadow: none;
+ background-color: transparent;
+ border: 0;
+}
// FONTS
@@ -103,7 +125,7 @@
font-family: @sansFontFamily;
}
.monospace() {
- font-family: @monospaceFontFamily;
+ font-family: @monoFontFamily;
}
}
.shorthand(@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight) {
@@ -126,140 +148,45 @@
}
-
-// GRID SYSTEM
+// FORMS
// --------------------------------------------------
-// Site container
-// -------------------------
-.container-fixed() {
- width: @gridRowWidth;
- margin-left: auto;
- margin-right: auto;
- .clearfix();
+// Block level inputs
+.input-block-level {
+ display: block;
+ width: 100%;
+ min-height: 28px; // Make inputs at least the height of their button counterpart
+ .box-sizing(border-box); // Makes inputs behave like true block-level elements
}
-// Le grid system
-// -------------------------
-#gridSystem {
- // Setup the mixins to be used
- .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, @columns) {
- width: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns - 1));
- }
- .offset(@gridColumnWidth, @gridGutterWidth, @columns) {
- margin-left: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns - 1)) + (@gridGutterWidth * 2);
+
+// Mixin for form field states
+.formFieldState(@textColor: #555, @borderColor: #ccc, @backgroundColor: #f5f5f5) {
+ // Set the text color
+ > label,
+ .help-block,
+ .help-inline {
+ color: @textColor;
}
- .gridColumn(@gridGutterWidth) {
- float: left;
- margin-left: @gridGutterWidth;
- }
- // Take these values and mixins, and make 'em do their thang
- .generate(@gridColumns, @gridColumnWidth, @gridGutterWidth) {
- // Row surrounds the columns
- .row {
- margin-left: @gridGutterWidth * -1;
- .clearfix();
- }
- // Find all .span# classes within .row and give them the necessary properties for grid columns (supported by all browsers back to IE7, thanks @dhg)
- [class*="span"] {
- #gridSystem > .gridColumn(@gridGutterWidth);
- }
- // Default columns
- .span1 { #gridSystem > .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 1); }
- .span2 { #gridSystem > .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 2); }
- .span3 { #gridSystem > .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 3); }
- .span4 { #gridSystem > .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 4); }
- .span5 { #gridSystem > .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 5); }
- .span6 { #gridSystem > .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 6); }
- .span7 { #gridSystem > .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 7); }
- .span8 { #gridSystem > .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 8); }
- .span9 { #gridSystem > .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 9); }
- .span10 { #gridSystem > .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 10); }
- .span11 { #gridSystem > .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 11); }
- .span12,
- .container { #gridSystem > .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 12); }
- // Offset column options
- .offset1 { #gridSystem > .offset(@gridColumnWidth, @gridGutterWidth, 1); }
- .offset2 { #gridSystem > .offset(@gridColumnWidth, @gridGutterWidth, 2); }
- .offset3 { #gridSystem > .offset(@gridColumnWidth, @gridGutterWidth, 3); }
- .offset4 { #gridSystem > .offset(@gridColumnWidth, @gridGutterWidth, 4); }
- .offset5 { #gridSystem > .offset(@gridColumnWidth, @gridGutterWidth, 5); }
- .offset6 { #gridSystem > .offset(@gridColumnWidth, @gridGutterWidth, 6); }
- .offset7 { #gridSystem > .offset(@gridColumnWidth, @gridGutterWidth, 7); }
- .offset8 { #gridSystem > .offset(@gridColumnWidth, @gridGutterWidth, 8); }
- .offset9 { #gridSystem > .offset(@gridColumnWidth, @gridGutterWidth, 9); }
- .offset10 { #gridSystem > .offset(@gridColumnWidth, @gridGutterWidth, 10); }
- .offset11 { #gridSystem > .offset(@gridColumnWidth, @gridGutterWidth, 11); }
- }
-}
-
-// Fluid grid system
-// -------------------------
-#fluidGridSystem {
- // Setup the mixins to be used
- .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, @columns) {
- width: 1% * (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1));
- }
- .gridColumn(@fluidGridGutterWidth) {
- float: left;
- margin-left: @fluidGridGutterWidth;
- }
- // Take these values and mixins, and make 'em do their thang
- .generate(@gridColumns, @fluidGridColumnWidth, @fluidGridGutterWidth) {
- // Row surrounds the columns
- .row-fluid {
- width: 100%;
- .clearfix();
-
- // Find all .span# classes within .row and give them the necessary properties for grid columns (supported by all browsers back to IE7, thanks @dhg)
- > [class*="span"] {
- #fluidGridSystem > .gridColumn(@fluidGridGutterWidth);
- }
- > [class*="span"]:first-child {
- margin-left: 0;
- }
- // Default columns
- .span1 { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 1); }
- .span2 { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 2); }
- .span3 { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 3); }
- .span4 { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 4); }
- .span5 { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 5); }
- .span6 { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 6); }
- .span7 { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 7); }
- .span8 { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 8); }
- .span9 { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 9); }
- .span10 { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 10); }
- .span11 { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 11); }
- .span12 { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 12); }
+ // Style inputs accordingly
+ .checkbox,
+ .radio,
+ input,
+ select,
+ textarea {
+ color: @textColor;
+ border-color: @borderColor;
+ &:focus {
+ border-color: darken(@borderColor, 10%);
+ .box-shadow(0 0 6px lighten(@borderColor, 20%));
}
}
-}
-
-
-
-// Input grid system
-// -------------------------
-#inputGridSystem {
- .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, @columns) {
- width: ((@gridColumnWidth) * @columns) + (@gridGutterWidth * (@columns - 1)) - 10;
- }
- .generate(@gridColumns, @gridColumnWidth, @gridGutterWidth) {
- input,
- textarea,
- .uneditable-input {
- &.span1 { #inputGridSystem > .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 1); }
- &.span2 { #inputGridSystem > .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 2); }
- &.span3 { #inputGridSystem > .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 3); }
- &.span4 { #inputGridSystem > .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 4); }
- &.span5 { #inputGridSystem > .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 5); }
- &.span6 { #inputGridSystem > .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 6); }
- &.span7 { #inputGridSystem > .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 7); }
- &.span8 { #inputGridSystem > .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 8); }
- &.span9 { #inputGridSystem > .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 9); }
- &.span10 { #inputGridSystem > .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 10); }
- &.span11 { #inputGridSystem > .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 11); }
- &.span12 { #inputGridSystem > .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 12); }
- }
+ // Give a small background color for input-prepend/-append
+ .input-prepend .add-on,
+ .input-append .add-on {
+ color: @textColor;
+ background-color: @backgroundColor;
+ border-color: @textColor;
}
}
@@ -269,14 +196,14 @@
// --------------------------------------------------
// Border Radius
-.border-radius(@radius: 5px) {
+.border-radius(@radius) {
-webkit-border-radius: @radius;
-moz-border-radius: @radius;
border-radius: @radius;
}
// Drop shadows
-.box-shadow(@shadow: 0 1px 3px rgba(0,0,0,.25)) {
+.box-shadow(@shadow) {
-webkit-box-shadow: @shadow;
-moz-box-shadow: @shadow;
box-shadow: @shadow;
@@ -306,27 +233,38 @@
-o-transform: scale(@ratio);
transform: scale(@ratio);
}
-.translate(@x: 0, @y: 0) {
+.translate(@x, @y) {
-webkit-transform: translate(@x, @y);
-moz-transform: translate(@x, @y);
-ms-transform: translate(@x, @y);
-o-transform: translate(@x, @y);
transform: translate(@x, @y);
}
-.skew(@x: 0, @y: 0) {
- -webkit-transform: translate(@x, @y);
- -moz-transform: translate(@x, @y);
- -ms-transform: translate(@x, @y);
- -o-transform: translate(@x, @y);
- transform: translate(@x, @y);
-}
-.skew(@x: 0, @y: 0) {
+.skew(@x, @y) {
-webkit-transform: skew(@x, @y);
-moz-transform: skew(@x, @y);
-ms-transform: skew(@x, @y);
-o-transform: skew(@x, @y);
transform: skew(@x, @y);
}
+.translate3d(@x, @y, @z) {
+ -webkit-transform: translate(@x, @y, @z);
+ -moz-transform: translate(@x, @y, @z);
+ -ms-transform: translate(@x, @y, @z);
+ -o-transform: translate(@x, @y, @z);
+ transform: translate(@x, @y, @z);
+}
+
+// Backface visibility
+// Prevent browsers from flickering when using CSS 3D transforms.
+// Default value is `visible`, but can be changed to `hidden
+// See git pull https://github.com/dannykeane/bootstrap.git backface-visibility for examples
+.backface-visibility(@visibility){
+ -webkit-backface-visibility: @visibility;
+ -moz-backface-visibility: @visibility;
+ -ms-backface-visibility: @visibility;
+ backface-visibility: @visibility;
+}
// Background clipping
// Heads up: FF 3.6 and under need "padding" instead of "padding-box"
@@ -349,6 +287,7 @@
.box-sizing(@boxmodel) {
-webkit-box-sizing: @boxmodel;
-moz-box-sizing: @boxmodel;
+ -ms-box-sizing: @boxmodel;
box-sizing: @boxmodel;
}
@@ -357,18 +296,19 @@
.user-select(@select) {
-webkit-user-select: @select;
-moz-user-select: @select;
+ -ms-user-select: @select;
-o-user-select: @select;
user-select: @select;
}
// Resize anything
-.resizable(@direction: both) {
+.resizable(@direction) {
resize: @direction; // Options: horizontal, vertical, both
overflow: auto; // Safari fix
}
// CSS3 Content Columns
-.content-columns(@columnCount, @columnGap: @gridColumnGutter) {
+.content-columns(@columnCount, @columnGap: @gridGutterWidth) {
-webkit-column-count: @columnCount;
-moz-column-count: @columnCount;
column-count: @columnCount;
@@ -377,10 +317,20 @@
column-gap: @columnGap;
}
+// Optional hyphenation
+.hyphens(@mode: auto) {
+ word-wrap: break-word;
+ -webkit-hyphens: @mode;
+ -moz-hyphens: @mode;
+ -ms-hyphens: @mode;
+ -o-hyphens: @mode;
+ hyphens: @mode;
+}
+
// Opacity
-.opacity(@opacity: 100) {
+.opacity(@opacity) {
opacity: @opacity / 100;
- filter: e(%("alpha(opacity=%d)", @opacity));
+ filter: ~"alpha(opacity=@{opacity})";
}
@@ -456,8 +406,8 @@
background-image: -webkit-radial-gradient(circle, @innerColor, @outerColor);
background-image: -moz-radial-gradient(circle, @innerColor, @outerColor);
background-image: -ms-radial-gradient(circle, @innerColor, @outerColor);
+ background-image: -o-radial-gradient(circle, @innerColor, @outerColor);
background-repeat: no-repeat;
- // Opera cannot do radial gradients yet
}
.striped(@color, @angle: -45deg) {
background-color: @color;
@@ -475,16 +425,39 @@
}
-// Mixin for generating button backgrounds
-// ---------------------------------------
+
+// COMPONENT MIXINS
+// --------------------------------------------------
+
+// Horizontal dividers
+// -------------------------
+// Dividers (basically an hr) within dropdowns and nav lists
+.nav-divider(@top: #e5e5e5, @bottom: @white) {
+ // IE7 needs a set width since we gave a height. Restricting just
+ // to IE7 to keep the 1px left/right space in other browsers.
+ // It is unclear where IE is getting the extra space that we need
+ // to negative-margin away, but so it goes.
+ *width: 100%;
+ height: 1px;
+ margin: ((@baseLineHeight / 2) - 1) 1px; // 8px 1px
+ *margin: -5px 0 5px;
+ overflow: hidden;
+ background-color: @top;
+ border-bottom: 1px solid @bottom;
+}
+
+// Button backgrounds
+// ------------------
.buttonBackground(@startColor, @endColor) {
// gradientBar will set the background to a pleasing blend of these, to support IE<=9
.gradientBar(@startColor, @endColor);
+ *background-color: @endColor; /* Darken IE7 buttons by default so they stand out more given they won't have borders */
.reset-filter();
// in these cases the gradient won't cover the background, so we override
&:hover, &:active, &.active, &.disabled, &[disabled] {
background-color: @endColor;
+ *background-color: darken(@endColor, 5%);
}
// IE 7 + 8 can't handle box-shadow to show active, so we darken a bit ourselves
@@ -494,44 +467,180 @@
}
}
+// Navbar vertical align
+// -------------------------
+// Vertically center elements in the navbar.
+// Example: an element has a height of 30px, so write out `.navbarVerticalAlign(30px);` to calculate the appropriate top margin.
+.navbarVerticalAlign(@elementHeight) {
+ margin-top: (@navbarHeight - @elementHeight) / 2;
+}
-// COMPONENT MIXINS
-// --------------------------------------------------
-
-// POPOVER ARROWS
+// Popover arrows
// -------------------------
// For tipsies and popovers
#popoverArrow {
- .top(@arrowWidth: 5px) {
+ .top(@arrowWidth: 5px, @color: @black) {
bottom: 0;
left: 50%;
margin-left: -@arrowWidth;
border-left: @arrowWidth solid transparent;
border-right: @arrowWidth solid transparent;
- border-top: @arrowWidth solid @black;
+ border-top: @arrowWidth solid @color;
}
- .left(@arrowWidth: 5px) {
+ .left(@arrowWidth: 5px, @color: @black) {
top: 50%;
right: 0;
margin-top: -@arrowWidth;
border-top: @arrowWidth solid transparent;
border-bottom: @arrowWidth solid transparent;
- border-left: @arrowWidth solid @black;
+ border-left: @arrowWidth solid @color;
}
- .bottom(@arrowWidth: 5px) {
+ .bottom(@arrowWidth: 5px, @color: @black) {
top: 0;
left: 50%;
margin-left: -@arrowWidth;
border-left: @arrowWidth solid transparent;
border-right: @arrowWidth solid transparent;
- border-bottom: @arrowWidth solid @black;
+ border-bottom: @arrowWidth solid @color;
}
- .right(@arrowWidth: 5px) {
+ .right(@arrowWidth: 5px, @color: @black) {
top: 50%;
left: 0;
margin-top: -@arrowWidth;
border-top: @arrowWidth solid transparent;
border-bottom: @arrowWidth solid transparent;
- border-right: @arrowWidth solid @black;
+ border-right: @arrowWidth solid @color;
}
}
+
+// Grid System
+// -----------
+
+// Centered container element
+.container-fixed() {
+ margin-right: auto;
+ margin-left: auto;
+ .clearfix();
+}
+
+// Table columns
+.tableColumns(@columnSpan: 1) {
+ float: none; // undo default grid column styles
+ width: ((@gridColumnWidth) * @columnSpan) + (@gridGutterWidth * (@columnSpan - 1)) - 16; // 16 is total padding on left and right of table cells
+ margin-left: 0; // undo default grid column styles
+}
+
+// Make a Grid
+// Use .makeRow and .makeColumn to assign semantic layouts grid system behavior
+.makeRow() {
+ margin-left: @gridGutterWidth * -1;
+ .clearfix();
+}
+.makeColumn(@columns: 1, @offset: 0) {
+ float: left;
+ margin-left: (@gridColumnWidth * @offset) + (@gridGutterWidth * (@offset - 1)) + (@gridGutterWidth * 2);
+ width: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns - 1));
+}
+
+// The Grid
+#grid {
+
+ .core (@gridColumnWidth, @gridGutterWidth) {
+
+ .spanX (@index) when (@index > 0) {
+ (~".span@{index}") { .span(@index); }
+ .spanX(@index - 1);
+ }
+ .spanX (0) {}
+
+ .offsetX (@index) when (@index > 0) {
+ (~".offset@{index}") { .offset(@index); }
+ .offsetX(@index - 1);
+ }
+ .offsetX (0) {}
+
+ .offset (@columns) {
+ margin-left: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns + 1));
+ }
+
+ .span (@columns) {
+ width: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns - 1));
+ }
+
+ .row {
+ margin-left: @gridGutterWidth * -1;
+ .clearfix();
+ }
+
+ [class*="span"] {
+ float: left;
+ margin-left: @gridGutterWidth;
+ }
+
+ // Set the container width, and override it for fixed navbars in media queries
+ .container,
+ .navbar-fixed-top .container,
+ .navbar-fixed-bottom .container { .span(@gridColumns); }
+
+ // generate .spanX and .offsetX
+ .spanX (@gridColumns);
+ .offsetX (@gridColumns);
+
+ }
+
+ .fluid (@fluidGridColumnWidth, @fluidGridGutterWidth) {
+
+ .spanX (@index) when (@index > 0) {
+ (~".span@{index}") { .span(@index); }
+ .spanX(@index - 1);
+ }
+ .spanX (0) {}
+
+ .span (@columns) {
+ width: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1));
+ *width: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1)) - (.5 / @gridRowWidth * 100 * 1%);
+ }
+
+ .row-fluid {
+ width: 100%;
+ .clearfix();
+ [class*="span"] {
+ .input-block-level();
+ float: left;
+ margin-left: @fluidGridGutterWidth;
+ *margin-left: @fluidGridGutterWidth - (.5 / @gridRowWidth * 100 * 1%);
+ }
+ [class*="span"]:first-child {
+ margin-left: 0;
+ }
+
+ // generate .spanX
+ .spanX (@gridColumns);
+ }
+
+ }
+
+ .input(@gridColumnWidth, @gridGutterWidth) {
+
+ .spanX (@index) when (@index > 0) {
+ (~"input.span@{index}, textarea.span@{index}, .uneditable-input.span@{index}") { .span(@index); }
+ .spanX(@index - 1);
+ }
+ .spanX (0) {}
+
+ .span(@columns) {
+ width: ((@gridColumnWidth) * @columns) + (@gridGutterWidth * (@columns - 1)) - 10;
+ }
+
+ input,
+ textarea,
+ .uneditable-input {
+ margin-left: 0; // override margin-left from core grid system
+ }
+
+ // generate .spanX
+ .spanX (@gridColumns);
+
+ }
+
+}
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/june_2007_style/bootstrap/modals.less
--- a/static/june_2007_style/bootstrap/modals.less
+++ b/static/june_2007_style/bootstrap/modals.less
@@ -1,6 +1,7 @@
// MODALS
// ------
+// Recalculate z-index where appropriate
.modal-open {
.dropdown-menu { z-index: @zindexDropdown + @zindexModal; }
.dropdown.open { *z-index: @zindexDropdown + @zindexModal; }
@@ -8,6 +9,7 @@
.tooltip { z-index: @zindexTooltip + @zindexModal; }
}
+// Background
.modal-backdrop {
position: fixed;
top: 0;
@@ -25,12 +27,12 @@
.opacity(80);
}
+// Base modal
.modal {
position: fixed;
top: 50%;
left: 50%;
z-index: @zindexModal;
- max-height: 500px;
overflow: auto;
width: 560px;
margin: -250px 0 0 -280px;
@@ -53,20 +55,36 @@
// Close icon
.close { margin-top: 2px; }
}
+
+// Body (where all modal content resides)
.modal-body {
+ overflow-y: auto;
+ max-height: 400px;
padding: 15px;
}
+// Remove bottom margin if need be
+.modal-form {
+ margin-bottom: 0;
+}
+
+// Footer (for actions)
.modal-footer {
padding: 14px 15px 15px;
margin-bottom: 0;
+ text-align: right; // right align buttons
background-color: #f5f5f5;
border-top: 1px solid #ddd;
.border-radius(0 0 6px 6px);
.box-shadow(inset 0 1px 0 @white);
- .clearfix();
- .btn {
- float: right;
+ .clearfix(); // clear it in case folks use .pull-* classes on buttons
+
+ // Properly space out buttons
+ .btn + .btn {
margin-left: 5px;
margin-bottom: 0; // account for input[type="submit"] which gets the bottom margin like all other inputs
}
+ // but override that for button groups
+ .btn-group .btn + .btn {
+ margin-left: -1px;
+ }
}
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/june_2007_style/bootstrap/navbar.less
--- a/static/june_2007_style/bootstrap/navbar.less
+++ b/static/june_2007_style/bootstrap/navbar.less
@@ -6,42 +6,30 @@
// -------------
.navbar {
+ // Fix for IE7's bad z-indexing so dropdowns don't appear below content that follows the navbar
+ *position: relative;
+ *z-index: 2;
+
overflow: visible;
margin-bottom: @baseLineHeight;
}
// Gradient is applied to it's own element because overflow visible is not honored by IE when filter is present
.navbar-inner {
+ min-height: @navbarHeight;
padding-left: 20px;
padding-right: 20px;
#gradient > .vertical(@navbarBackgroundHighlight, @navbarBackground);
.border-radius(4px);
- @shadow: 0 1px 3px rgba(0,0,0,.25), inset 0 -1px 0 rgba(0,0,0,.1);
- .box-shadow(@shadow);
+ .box-shadow(~"0 1px 3px rgba(0,0,0,.25), inset 0 -1px 0 rgba(0,0,0,.1)");
}
-// Navbar button for toggling navbar items in responsive layouts
-.btn-navbar {
- display: none;
- float: right;
- padding: 7px 10px;
- margin-left: 5px;
- margin-right: 5px;
- .buttonBackground(@navbarBackgroundHighlight, @navbarBackground);
- @shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);
- .box-shadow(@shadow);
+// Set width to auto for default container
+// We then reset it for fixed navbars in the #gridSystem mixin
+.navbar .container {
+ width: auto;
}
-.btn-navbar .icon-bar {
- display: block;
- width: 18px;
- height: 2px;
- background-color: #f5f5f5;
- .border-radius(1px);
- .box-shadow(0 1px 0 rgba(0,0,0,.25));
-}
-.btn-navbar .icon-bar + .icon-bar {
- margin-top: 3px;
-}
+
// Override the default collapsed state
.nav-collapse.collapse {
height: auto;
@@ -50,6 +38,7 @@
// Brand, links, text, and buttons
.navbar {
+ color: @navbarText;
// Hover and active states
.brand:hover {
text-decoration: none;
@@ -58,30 +47,34 @@
.brand {
float: left;
display: block;
- padding: 8px 20px 12px;
+ // Vertically center the text given @navbarHeight
+ @elementHeight: 20px;
+ padding: ((@navbarHeight - @elementHeight) / 2 - 2) 20px ((@navbarHeight - @elementHeight) / 2 + 2);
margin-left: -20px; // negative indent to left-align the text down the page
font-size: 20px;
font-weight: 200;
line-height: 1;
- color: @white;
+ color: @navbarBrandColor;
}
// Plain text in topbar
.navbar-text {
margin-bottom: 0;
- line-height: 40px;
- color: @navbarText;
- a:hover {
- color: @white;
- background-color: transparent;
+ line-height: @navbarHeight;
+ }
+ // Janky solution for now to account for links outside the .nav
+ .navbar-link {
+ color: @navbarLinkColor;
+ &:hover {
+ color: @navbarLinkColorHover;
}
}
// Buttons in navbar
.btn,
.btn-group {
- margin-top: 5px; // make buttons vertically centered in navbar
+ .navbarVerticalAlign(30px); // Vertically center in navbar
}
.btn-group .btn {
- margin-top: 0;
+ margin: 0; // then undo the margin here so we don't accidentally double it
}
}
@@ -90,56 +83,55 @@
margin-bottom: 0; // remove default bottom margin
.clearfix();
input,
+ select,
+ .radio,
+ .checkbox {
+ .navbarVerticalAlign(30px); // Vertically center in navbar
+ }
+ input,
select {
display: inline-block;
- margin-top: 5px;
margin-bottom: 0;
}
- .radio,
- .checkbox {
- margin-top: 5px;
- }
input[type="image"],
input[type="checkbox"],
input[type="radio"] {
margin-top: 3px;
}
+ .input-append,
+ .input-prepend {
+ margin-top: 6px;
+ white-space: nowrap; // preven two items from separating within a .navbar-form that has .pull-left
+ input {
+ margin-top: 0; // remove the margin on top since it's on the parent
+ }
+ }
}
// Navbar search
.navbar-search {
position: relative;
float: left;
- margin-top: 6px;
+ .navbarVerticalAlign(28px); // Vertically center in navbar
margin-bottom: 0;
.search-query {
padding: 4px 9px;
#font > .sans-serif(13px, normal, 1);
color: @white;
- color: rgba(255,255,255,.75);
- background: #666;
- background: rgba(255,255,255,.3);
- border: 1px solid #111;
- @shadow: inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0px rgba(255,255,255,.15);
- .box-shadow(@shadow);
+ background-color: @navbarSearchBackground;
+ border: 1px solid @navbarSearchBorder;
+ .box-shadow(~"inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15)");
.transition(none);
- // Placeholder text gets special styles; can't be bundled together though for some reason
- .placeholder(@grayLighter);
+ .placeholder(@navbarSearchPlaceholderColor);
- // Hover states
- &:hover {
- color: @white;
- background-color: @grayLight;
- background-color: rgba(255,255,255,.5);
- }
- // Focus states (we use .focused since IE8 and down doesn't support :focus)
+ // Focus states (we use .focused since IE7-8 and down doesn't support :focus)
&:focus,
&.focused {
padding: 5px 10px;
color: @grayDark;
text-shadow: 0 1px 0 @white;
- background-color: @white;
+ background-color: @navbarSearchBackgroundFocus;
border: 0;
.box-shadow(0 0 3px rgba(0,0,0,.15));
outline: 0;
@@ -148,22 +140,42 @@
}
+
// FIXED NAVBAR
// ------------
-.navbar-fixed-top {
+// Shared (top/bottom) styles
+.navbar-fixed-top,
+.navbar-fixed-bottom {
position: fixed;
- top: 0;
right: 0;
left: 0;
z-index: @zindexFixedNavbar;
+ margin-bottom: 0; // remove 18px margin for static navbar
}
-.navbar-fixed-top .navbar-inner {
+.navbar-fixed-top .navbar-inner,
+.navbar-fixed-bottom .navbar-inner {
padding-left: 0;
padding-right: 0;
.border-radius(0);
}
+.navbar-fixed-top .container,
+.navbar-fixed-bottom .container {
+ #grid > .core > .span(@gridColumns);
+}
+
+// Fixed to top
+.navbar-fixed-top {
+ top: 0;
+}
+
+// Fixed to bottom
+.navbar-fixed-bottom {
+ bottom: 0;
+}
+
+
// NAVIGATION
// ----------
@@ -186,15 +198,32 @@
// Links
.navbar .nav > li > a {
float: none;
- padding: 10px 10px 11px;
+ // Vertically center the text given @navbarHeight
+ @elementHeight: 20px;
+ padding: ((@navbarHeight - @elementHeight) / 2 - 1) 10px ((@navbarHeight - @elementHeight) / 2 + 1);
line-height: 19px;
color: @navbarLinkColor;
text-decoration: none;
text-shadow: 0 -1px 0 rgba(0,0,0,.25);
}
+// Buttons
+.navbar .btn {
+ display: inline-block;
+ padding: 4px 10px 4px;
+ // Vertically center the button given @navbarHeight
+ @elementHeight: 28px;
+ margin: ((@navbarHeight - @elementHeight) / 2 - 1) 5px ((@navbarHeight - @elementHeight) / 2);
+ line-height: @baseLineHeight;
+}
+.navbar .btn-group {
+ margin: 0;
+ // Vertically center the button given @navbarHeight
+ @elementHeight: 28px;
+ padding: ((@navbarHeight - @elementHeight) / 2 - 1) 5px ((@navbarHeight - @elementHeight) / 2);
+}
// Hover
.navbar .nav > li > a:hover {
- background-color: transparent;
+ background-color: @navbarLinkBackgroundHover; // "transparent" is default to differentiate :hover from .active
color: @navbarLinkColorHover;
text-decoration: none;
}
@@ -202,10 +231,9 @@
// Active nav items
.navbar .nav .active > a,
.navbar .nav .active > a:hover {
- color: @navbarLinkColorHover;
+ color: @navbarLinkColorActive;
text-decoration: none;
- background-color: @navbarBackground;
- background-color: rgba(0,0,0,.5);
+ background-color: @navbarLinkBackgroundActive;
}
// Dividers (basically a vertical hr)
@@ -224,6 +252,28 @@
margin-right: 0;
}
+// Navbar button for toggling navbar items in responsive layouts
+// These definitions need to come after '.navbar .btn'
+.navbar .btn-navbar {
+ display: none;
+ float: right;
+ padding: 7px 10px;
+ margin-left: 5px;
+ margin-right: 5px;
+ .buttonBackground(@navbarBackgroundHighlight, @navbarBackground);
+ .box-shadow(~"inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075)");
+}
+.navbar .btn-navbar .icon-bar {
+ display: block;
+ width: 18px;
+ height: 2px;
+ background-color: #f5f5f5;
+ .border-radius(1px);
+ .box-shadow(0 1px 0 rgba(0,0,0,.25));
+}
+.btn-navbar .icon-bar + .icon-bar {
+ margin-top: 3px;
+}
// Dropdown menus
@@ -231,15 +281,13 @@
// Menu position and menu carets
.navbar .dropdown-menu {
- margin-top: 1px;
- .border-radius(4px);
&:before {
content: '';
display: inline-block;
border-left: 7px solid transparent;
border-right: 7px solid transparent;
border-bottom: 7px solid #ccc;
- border-bottom-color: rgba(0,0,0,.2);
+ border-bottom-color: @dropdownBorder;
position: absolute;
top: -7px;
left: 9px;
@@ -249,36 +297,54 @@
display: inline-block;
border-left: 6px solid transparent;
border-right: 6px solid transparent;
- border-bottom: 6px solid @white;
+ border-bottom: 6px solid @dropdownBackground;
position: absolute;
top: -6px;
left: 10px;
}
}
-
+// Menu position and menu caret support for dropups via extra dropup class
+.navbar-fixed-bottom .dropdown-menu {
+ &:before {
+ border-top: 7px solid #ccc;
+ border-top-color: @dropdownBorder;
+ border-bottom: 0;
+ bottom: -7px;
+ top: auto;
+ }
+ &:after {
+ border-top: 6px solid @dropdownBackground;
+ border-bottom: 0;
+ bottom: -6px;
+ top: auto;
+ }
+}
// Dropdown toggle caret
-.navbar .nav .dropdown-toggle .caret,
-.navbar .nav .open.dropdown .caret {
+.navbar .nav li.dropdown .dropdown-toggle .caret,
+.navbar .nav li.dropdown.open .caret {
border-top-color: @white;
+ border-bottom-color: @white;
}
-.navbar .nav .active .caret {
+.navbar .nav li.dropdown.active .caret {
.opacity(100);
}
// Remove background color from open dropdown
-.navbar .nav .open > .dropdown-toggle,
-.navbar .nav .active > .dropdown-toggle,
-.navbar .nav .open.active > .dropdown-toggle {
+.navbar .nav li.dropdown.open > .dropdown-toggle,
+.navbar .nav li.dropdown.active > .dropdown-toggle,
+.navbar .nav li.dropdown.open.active > .dropdown-toggle {
background-color: transparent;
}
// Dropdown link on hover
-.navbar .nav .active > .dropdown-toggle:hover {
+.navbar .nav li.dropdown.active > .dropdown-toggle:hover {
color: @white;
}
// Right aligned menus need alt position
-.navbar .nav.pull-right .dropdown-menu {
+// TODO: rejigger this at some point to simplify the selectors
+.navbar .pull-right .dropdown-menu,
+.navbar .dropdown-menu.pull-right {
left: auto;
right: 0;
&:before {
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/june_2007_style/bootstrap/navs.less
--- a/static/june_2007_style/bootstrap/navs.less
+++ b/static/june_2007_style/bootstrap/navs.less
@@ -21,36 +21,47 @@
background-color: @grayLighter;
}
+// Redeclare pull classes because of specifity
+.nav > .pull-right {
+ float: right;
+}
+
+// Nav headers (for dropdowns and lists)
+.nav .nav-header {
+ display: block;
+ padding: 3px 15px;
+ font-size: 11px;
+ font-weight: bold;
+ line-height: @baseLineHeight;
+ color: @grayLight;
+ text-shadow: 0 1px 0 rgba(255,255,255,.5);
+ text-transform: uppercase;
+}
+// Space them out when they follow another list item (link)
+.nav li + .nav-header {
+ margin-top: 9px;
+}
// NAV LIST
// --------
.nav-list {
- padding-left: 14px;
- padding-right: 14px;
+ padding-left: 15px;
+ padding-right: 15px;
margin-bottom: 0;
}
.nav-list > li > a,
.nav-list .nav-header {
- display: block;
- padding: 3px 15px;
margin-left: -15px;
margin-right: -15px;
text-shadow: 0 1px 0 rgba(255,255,255,.5);
}
-.nav-list .nav-header {
- font-size: 11px;
- font-weight: bold;
- line-height: @baseLineHeight;
- color: @grayLight;
- text-transform: uppercase;
+.nav-list > li > a {
+ padding: 3px 15px;
}
-.nav-list > li + .nav-header {
- margin-top: 9px;
-}
-.nav-list .active > a,
-.nav-list .active > a:hover {
+.nav-list > .active > a,
+.nav-list > .active > a:hover {
color: @white;
text-shadow: 0 -1px 0 rgba(0,0,0,.2);
background-color: @linkColor;
@@ -58,6 +69,10 @@
.nav-list [class^="icon-"] {
margin-right: 2px;
}
+// Dividers (basically an hr) within the dropdown
+.nav-list .divider {
+ .nav-divider();
+}
@@ -88,16 +103,15 @@
.nav-tabs {
border-bottom: 1px solid #ddd;
}
-
// Make the list-items overlay the bottom border
.nav-tabs > li {
margin-bottom: -1px;
}
-
// Actual tabs (as links)
.nav-tabs > li > a {
- padding-top: 9px;
- padding-bottom: 9px;
+ padding-top: 8px;
+ padding-bottom: 8px;
+ line-height: @baseLineHeight;
border: 1px solid transparent;
.border-radius(4px 4px 0 0);
&:hover {
@@ -114,6 +128,7 @@
cursor: default;
}
+
// PILLS
// -----
@@ -127,8 +142,8 @@
}
// Active state
-.nav-pills .active > a,
-.nav-pills .active > a:hover {
+.nav-pills > .active > a,
+.nav-pills > .active > a:hover {
color: @white;
background-color: @linkColor;
}
@@ -178,14 +193,11 @@
// DROPDOWNS
// ---------
-// Position the menu
-.nav-tabs .dropdown-menu,
-.nav-pills .dropdown-menu {
- margin-top: 1px;
- border-width: 1px;
+.nav-tabs .dropdown-menu {
+ .border-radius(0 0 5px 5px); // remove the top rounded corners here since there is a hard edge above the menu
}
.nav-pills .dropdown-menu {
- .border-radius(4px);
+ .border-radius(4px); // make rounded corners match the pills
}
// Default dropdown links
@@ -194,11 +206,13 @@
.nav-tabs .dropdown-toggle .caret,
.nav-pills .dropdown-toggle .caret {
border-top-color: @linkColor;
+ border-bottom-color: @linkColor;
margin-top: 6px;
}
.nav-tabs .dropdown-toggle:hover .caret,
.nav-pills .dropdown-toggle:hover .caret {
border-top-color: @linkColorHover;
+ border-bottom-color: @linkColorHover;
}
// Active dropdown links
@@ -206,6 +220,7 @@
.nav-tabs .active .dropdown-toggle .caret,
.nav-pills .active .dropdown-toggle .caret {
border-top-color: @grayDark;
+ border-bottom-color: @grayDark;
}
// Active:hover dropdown links
@@ -219,15 +234,16 @@
// -------------------------
.nav-tabs .open .dropdown-toggle,
.nav-pills .open .dropdown-toggle,
-.nav > .open.active > a:hover {
+.nav > li.dropdown.open.active > a:hover {
color: @white;
background-color: @grayLight;
border-color: @grayLight;
}
-.nav .open .caret,
-.nav .open.active .caret,
-.nav .open a:hover .caret {
+.nav li.dropdown.open .caret,
+.nav li.dropdown.open.active .caret,
+.nav li.dropdown.open a:hover .caret {
border-top-color: @white;
+ border-bottom-color: @white;
.opacity(100);
}
@@ -249,11 +265,14 @@
.tabbable {
.clearfix();
}
+.tab-content {
+ overflow: auto; // prevent content from running below tabs
+}
// Remove border on bottom, left, right
-.tabs-below .nav-tabs,
-.tabs-right .nav-tabs,
-.tabs-left .nav-tabs {
+.tabs-below > .nav-tabs,
+.tabs-right > .nav-tabs,
+.tabs-left > .nav-tabs {
border-bottom: 0;
}
@@ -271,22 +290,22 @@
// BOTTOM
// ------
-.tabs-below .nav-tabs {
+.tabs-below > .nav-tabs {
border-top: 1px solid #ddd;
}
-.tabs-below .nav-tabs > li {
+.tabs-below > .nav-tabs > li {
margin-top: -1px;
margin-bottom: 0;
}
-.tabs-below .nav-tabs > li > a {
+.tabs-below > .nav-tabs > li > a {
.border-radius(0 0 4px 4px);
&:hover {
border-bottom-color: transparent;
border-top-color: #ddd;
}
}
-.tabs-below .nav-tabs .active > a,
-.tabs-below .nav-tabs .active > a:hover {
+.tabs-below > .nav-tabs > .active > a,
+.tabs-below > .nav-tabs > .active > a:hover {
border-color: transparent #ddd #ddd #ddd;
}
@@ -294,51 +313,51 @@
// ------------
// Common styles
-.tabs-left .nav-tabs > li,
-.tabs-right .nav-tabs > li {
+.tabs-left > .nav-tabs > li,
+.tabs-right > .nav-tabs > li {
float: none;
}
-.tabs-left .nav-tabs > li > a,
-.tabs-right .nav-tabs > li > a {
+.tabs-left > .nav-tabs > li > a,
+.tabs-right > .nav-tabs > li > a {
min-width: 74px;
margin-right: 0;
margin-bottom: 3px;
}
// Tabs on the left
-.tabs-left .nav-tabs {
+.tabs-left > .nav-tabs {
float: left;
margin-right: 19px;
border-right: 1px solid #ddd;
}
-.tabs-left .nav-tabs > li > a {
+.tabs-left > .nav-tabs > li > a {
margin-right: -1px;
.border-radius(4px 0 0 4px);
}
-.tabs-left .nav-tabs > li > a:hover {
+.tabs-left > .nav-tabs > li > a:hover {
border-color: @grayLighter #ddd @grayLighter @grayLighter;
}
-.tabs-left .nav-tabs .active > a,
-.tabs-left .nav-tabs .active > a:hover {
+.tabs-left > .nav-tabs .active > a,
+.tabs-left > .nav-tabs .active > a:hover {
border-color: #ddd transparent #ddd #ddd;
*border-right-color: @white;
}
// Tabs on the right
-.tabs-right .nav-tabs {
+.tabs-right > .nav-tabs {
float: right;
margin-left: 19px;
border-left: 1px solid #ddd;
}
-.tabs-right .nav-tabs > li > a {
+.tabs-right > .nav-tabs > li > a {
margin-left: -1px;
.border-radius(0 4px 4px 0);
}
-.tabs-right .nav-tabs > li > a:hover {
+.tabs-right > .nav-tabs > li > a:hover {
border-color: @grayLighter @grayLighter @grayLighter #ddd;
}
-.tabs-right .nav-tabs .active > a,
-.tabs-right .nav-tabs .active > a:hover {
+.tabs-right > .nav-tabs .active > a,
+.tabs-right > .nav-tabs .active > a:hover {
border-color: #ddd #ddd #ddd transparent;
*border-left-color: @white;
}
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/june_2007_style/bootstrap/pager.less
--- a/static/june_2007_style/bootstrap/pager.less
+++ b/static/june_2007_style/bootstrap/pager.less
@@ -28,3 +28,9 @@
.pager .previous a {
float: left;
}
+.pager .disabled a,
+.pager .disabled a:hover {
+ color: @grayLight;
+ background-color: #fff;
+ cursor: default;
+}
\ No newline at end of file
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/june_2007_style/bootstrap/pagination.less
--- a/static/june_2007_style/bootstrap/pagination.less
+++ b/static/june_2007_style/bootstrap/pagination.less
@@ -32,6 +32,7 @@
color: @grayLight;
cursor: default;
}
+.pagination .disabled span,
.pagination .disabled a,
.pagination .disabled a:hover {
color: @grayLight;
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/june_2007_style/bootstrap/progress-bars.less
--- a/static/june_2007_style/bootstrap/progress-bars.less
+++ b/static/june_2007_style/bootstrap/progress-bars.less
@@ -7,20 +7,32 @@
// Webkit
@-webkit-keyframes progress-bar-stripes {
- from { background-position: 0 0; }
- to { background-position: 40px 0; }
+ from { background-position: 40px 0; }
+ to { background-position: 0 0; }
}
// Firefox
@-moz-keyframes progress-bar-stripes {
+ from { background-position: 40px 0; }
+ to { background-position: 0 0; }
+}
+
+// IE9
+@-ms-keyframes progress-bar-stripes {
+ from { background-position: 40px 0; }
+ to { background-position: 0 0; }
+}
+
+// Opera
+@-o-keyframes progress-bar-stripes {
from { background-position: 0 0; }
to { background-position: 40px 0; }
}
// Spec
@keyframes progress-bar-stripes {
- from { background-position: 0 0; }
- to { background-position: 40px 0; }
+ from { background-position: 40px 0; }
+ to { background-position: 0 0; }
}
@@ -54,7 +66,7 @@
// Striped bars
.progress-striped .bar {
- #gradient > .striped(#62c462);
+ #gradient > .striped(#149bdf);
.background-size(40px 40px);
}
@@ -62,6 +74,8 @@
.progress.active .bar {
-webkit-animation: progress-bar-stripes 2s linear infinite;
-moz-animation: progress-bar-stripes 2s linear infinite;
+ -ms-animation: progress-bar-stripes 2s linear infinite;
+ -o-animation: progress-bar-stripes 2s linear infinite;
animation: progress-bar-stripes 2s linear infinite;
}
@@ -93,3 +107,11 @@
.progress-info.progress-striped .bar {
#gradient > .striped(#5bc0de);
}
+
+// Warning (orange)
+.progress-warning .bar {
+ #gradient > .vertical(lighten(@orange, 15%), @orange);
+}
+.progress-warning.progress-striped .bar {
+ #gradient > .striped(lighten(@orange, 15%));
+}
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/june_2007_style/bootstrap/reset.less
--- a/static/june_2007_style/bootstrap/reset.less
+++ b/static/june_2007_style/bootstrap/reset.less
@@ -75,12 +75,17 @@
// -------------------------
img {
- max-width: 100%;
- height: auto;
+ max-width: 100%; // Make images inherently responsive
+ vertical-align: middle;
border: 0;
-ms-interpolation-mode: bicubic;
}
+// Prevent max-width from affecting Google Maps
+#map_canvas img {
+ max-width: none;
+}
+
// Forms
// -------------------------
@@ -93,11 +98,6 @@
font-size: 100%;
vertical-align: middle;
}
-// Use Webkit margins for checkboxs and radio buttons.
-input[type="checkbox"],input[type="radio"] {
- margin-left: 0.5ex;
- margin-right: 0.5ex;
-}
button,
input {
*overflow: visible; // Inner spacing ie IE6/7
@@ -113,13 +113,13 @@
input[type="reset"],
input[type="submit"] {
cursor: pointer; // Cursors on all buttons applied consistently
- -webkit-appearance: button; // Style clicable inputs in iOS
+ -webkit-appearance: button; // Style clickable inputs in iOS
}
input[type="search"] { // Appearance in Safari/Chrome
- -webkit-appearance: textfield;
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
box-sizing: content-box;
+ -webkit-appearance: textfield;
}
input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button {
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/june_2007_style/bootstrap/responsive-1200px-min.less
--- /dev/null
+++ b/static/june_2007_style/bootstrap/responsive-1200px-min.less
@@ -0,0 +1,26 @@
+// LARGE DESKTOP & UP
+// ------------------
+
+@media (min-width: 1200px) {
+
+ // Fixed grid
+ #grid > .core(70px, 30px);
+
+ // Fluid grid
+ #grid > .fluid(5.982905983%, 2.564102564%);
+
+ // Input grid
+ #grid > .input(70px, 30px);
+
+ // Thumbnails
+ .thumbnails {
+ margin-left: -30px;
+ }
+ .thumbnails > li {
+ margin-left: 30px;
+ }
+ .row-fluid .thumbnails {
+ margin-left: 0;
+ }
+
+}
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/june_2007_style/bootstrap/responsive-767px-max.less
--- /dev/null
+++ b/static/june_2007_style/bootstrap/responsive-767px-max.less
@@ -0,0 +1,149 @@
+// UP TO LANDSCAPE PHONE
+// ---------------------
+
+@media (max-width: 480px) {
+
+ // Smooth out the collapsing/expanding nav
+ .nav-collapse {
+ -webkit-transform: translate3d(0, 0, 0); // activate the GPU
+ }
+
+ // Block level the page header small tag for readability
+ .page-header h1 small {
+ display: block;
+ line-height: @baseLineHeight;
+ }
+
+ // Update checkboxes for iOS
+ input[type="checkbox"],
+ input[type="radio"] {
+ border: 1px solid #ccc;
+ }
+
+ // Remove the horizontal form styles
+ .form-horizontal .control-group > label {
+ float: none;
+ width: auto;
+ padding-top: 0;
+ text-align: left;
+ }
+ // Move over all input controls and content
+ .form-horizontal .controls {
+ margin-left: 0;
+ }
+ // Move the options list down to align with labels
+ .form-horizontal .control-list {
+ padding-top: 0; // has to be padding because margin collaspes
+ }
+ // Move over buttons in .form-actions to align with .controls
+ .form-horizontal .form-actions {
+ padding-left: 10px;
+ padding-right: 10px;
+ }
+
+ // Modals
+ .modal {
+ position: absolute;
+ top: 10px;
+ left: 10px;
+ right: 10px;
+ width: auto;
+ margin: 0;
+ &.fade.in { top: auto; }
+ }
+ .modal-header .close {
+ padding: 10px;
+ margin: -10px;
+ }
+
+ // Carousel
+ .carousel-caption {
+ position: static;
+ }
+
+}
+
+
+
+// LANDSCAPE PHONE TO SMALL DESKTOP & PORTRAIT TABLET
+// --------------------------------------------------
+
+@media (max-width: 767px) {
+
+ // Padding to set content in a bit
+ body {
+ padding-left: 20px;
+ padding-right: 20px;
+ }
+ // Negative indent the now static "fixed" navbar
+ .navbar-fixed-top,
+ .navbar-fixed-bottom {
+ margin-left: -20px;
+ margin-right: -20px;
+ }
+ // Remove padding on container given explicit padding set on body
+ .container-fluid {
+ padding: 0;
+ }
+
+ // TYPOGRAPHY
+ // ----------
+ // Reset horizontal dl
+ .dl-horizontal {
+ dt {
+ float: none;
+ clear: none;
+ width: auto;
+ text-align: left;
+ }
+ dd {
+ margin-left: 0;
+ }
+ }
+
+ // GRID & CONTAINERS
+ // -----------------
+ // Remove width from containers
+ .container {
+ width: auto;
+ }
+ // Fluid rows
+ .row-fluid {
+ width: 100%;
+ }
+ // Undo negative margin on rows and thumbnails
+ .row,
+ .thumbnails {
+ margin-left: 0;
+ }
+ // Make all grid-sized elements block level again
+ [class*="span"],
+ .row-fluid [class*="span"] {
+ float: none;
+ display: block;
+ width: auto;
+ margin-left: 0;
+ }
+
+ // FORM FIELDS
+ // -----------
+ // Make span* classes full width
+ .input-large,
+ .input-xlarge,
+ .input-xxlarge,
+ input[class*="span"],
+ select[class*="span"],
+ textarea[class*="span"],
+ .uneditable-input {
+ .input-block-level();
+ }
+ // But don't let it screw up prepend/append inputs
+ .input-prepend input,
+ .input-append input,
+ .input-prepend input[class*="span"],
+ .input-append input[class*="span"] {
+ display: inline-block; // redeclare so they don't wrap to new lines
+ width: auto;
+ }
+
+}
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/june_2007_style/bootstrap/responsive-768px-979px.less
--- /dev/null
+++ b/static/june_2007_style/bootstrap/responsive-768px-979px.less
@@ -0,0 +1,17 @@
+// PORTRAIT TABLET TO DEFAULT DESKTOP
+// ----------------------------------
+
+@media (min-width: 768px) and (max-width: 979px) {
+
+ // Fixed grid
+ #grid > .core(42px, 20px);
+
+ // Fluid grid
+ #grid > .fluid(5.801104972%, 2.762430939%);
+
+ // Input grid
+ #grid > .input(42px, 20px);
+
+ // No need to reset .thumbnails here since it's the same @gridGutterWidth
+
+}
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/june_2007_style/bootstrap/responsive-navbar.less
--- /dev/null
+++ b/static/june_2007_style/bootstrap/responsive-navbar.less
@@ -0,0 +1,153 @@
+// TABLETS AND BELOW
+// -----------------
+@media (max-width: 979px) {
+
+ // UNFIX THE TOPBAR
+ // ----------------
+ // Remove any padding from the body
+ body {
+ padding-top: 0;
+ }
+ // Unfix the navbar
+ .navbar-fixed-top,
+ .navbar-fixed-bottom {
+ position: static;
+ }
+ .navbar-fixed-top {
+ margin-bottom: @baseLineHeight;
+ }
+ .navbar-fixed-bottom {
+ margin-top: @baseLineHeight;
+ }
+ .navbar-fixed-top .navbar-inner,
+ .navbar-fixed-bottom .navbar-inner {
+ padding: 5px;
+ }
+ .navbar .container {
+ width: auto;
+ padding: 0;
+ }
+ // Account for brand name
+ .navbar .brand {
+ padding-left: 10px;
+ padding-right: 10px;
+ margin: 0 0 0 -5px;
+ }
+
+ // COLLAPSIBLE NAVBAR
+ // ------------------
+ // Nav collapse clears brand
+ .nav-collapse {
+ clear: both;
+ }
+ // Block-level the nav
+ .nav-collapse .nav {
+ float: none;
+ margin: 0 0 (@baseLineHeight / 2);
+ }
+ .nav-collapse .nav > li {
+ float: none;
+ }
+ .nav-collapse .nav > li > a {
+ margin-bottom: 2px;
+ }
+ .nav-collapse .nav > .divider-vertical {
+ display: none;
+ }
+ .nav-collapse .nav .nav-header {
+ color: @navbarText;
+ text-shadow: none;
+ }
+ // Nav and dropdown links in navbar
+ .nav-collapse .nav > li > a,
+ .nav-collapse .dropdown-menu a {
+ padding: 6px 15px;
+ font-weight: bold;
+ color: @navbarLinkColor;
+ .border-radius(3px);
+ }
+ // Buttons
+ .nav-collapse .btn {
+ padding: 4px 10px 4px;
+ font-weight: normal;
+ .border-radius(4px);
+ }
+ .nav-collapse .dropdown-menu li + li a {
+ margin-bottom: 2px;
+ }
+ .nav-collapse .nav > li > a:hover,
+ .nav-collapse .dropdown-menu a:hover {
+ background-color: @navbarBackground;
+ }
+ // Buttons in the navbar
+ .nav-collapse.in .btn-group {
+ margin-top: 5px;
+ padding: 0;
+ }
+ // Dropdowns in the navbar
+ .nav-collapse .dropdown-menu {
+ position: static;
+ top: auto;
+ left: auto;
+ float: none;
+ display: block;
+ max-width: none;
+ margin: 0 15px;
+ padding: 0;
+ background-color: transparent;
+ border: none;
+ .border-radius(0);
+ .box-shadow(none);
+ }
+ .nav-collapse .dropdown-menu:before,
+ .nav-collapse .dropdown-menu:after {
+ display: none;
+ }
+ .nav-collapse .dropdown-menu .divider {
+ display: none;
+ }
+ // Forms in navbar
+ .nav-collapse .navbar-form,
+ .nav-collapse .navbar-search {
+ float: none;
+ padding: (@baseLineHeight / 2) 15px;
+ margin: (@baseLineHeight / 2) 0;
+ border-top: 1px solid @navbarBackground;
+ border-bottom: 1px solid @navbarBackground;
+ .box-shadow(~"inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1)");
+ }
+ // Pull right (secondary) nav content
+ .navbar .nav-collapse .nav.pull-right {
+ float: none;
+ margin-left: 0;
+ }
+ // Hide everything in the navbar save .brand and toggle button */
+ .nav-collapse,
+ .nav-collapse.collapse {
+ overflow: hidden;
+ height: 0;
+ }
+ // Navbar button
+ .navbar .btn-navbar {
+ display: block;
+ }
+
+ // STATIC NAVBAR
+ // -------------
+ .navbar-static .navbar-inner {
+ padding-left: 10px;
+ padding-right: 10px;
+ }
+}
+
+
+// DEFAULT DESKTOP
+// ---------------
+
+// Required to make the collapsing navbar work on regular desktops
+@media (min-width: 980px) {
+ .nav-collapse.collapse {
+ height: auto !important;
+ overflow: visible !important;
+ }
+}
\ No newline at end of file
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/june_2007_style/bootstrap/responsive-utilities.less
--- /dev/null
+++ b/static/june_2007_style/bootstrap/responsive-utilities.less
@@ -0,0 +1,41 @@
+// RESPONSIVE CLASSES
+// ------------------
+
+// Hide from screenreaders and browsers
+// Credit: HTML5 Boilerplate
+.hidden {
+ display: none;
+ visibility: hidden;
+}
+
+// Visibility utilities
+
+// For desktops
+.visible-phone { display: none !important; }
+.visible-tablet { display: none !important; }
+.visible-desktop { } // Don't set initially
+.hidden-phone { }
+.hidden-tablet { }
+.hidden-desktop { display: none !important; }
+
+// Phones only
+@media (max-width: 767px) {
+ // Show
+ .visible-phone { display: inherit !important; } // Use inherit to restore previous behavior
+ // Hide
+ .hidden-phone { display: none !important; }
+ // Hide everything else
+ .hidden-desktop { display: inherit !important; }
+ .visible-desktop { display: none !important; }
+}
+
+// Tablets & small desktops only
+@media (min-width: 768px) and (max-width: 979px) {
+ // Show
+ .visible-tablet { display: inherit !important; }
+ // Hide
+ .hidden-tablet { display: none !important; }
+ // Hide everything else
+ .hidden-desktop { display: inherit !important; }
+ .visible-desktop { display: none !important ; }
+}
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/june_2007_style/bootstrap/responsive.less
--- a/static/june_2007_style/bootstrap/responsive.less
+++ b/static/june_2007_style/bootstrap/responsive.less
@@ -1,5 +1,5 @@
/*!
- * Bootstrap Responsive v2.0.0
+ * Bootstrap Responsive v2.0.4
*
* Copyright 2012 Twitter, Inc
* Licensed under the Apache License v2.0
@@ -8,6 +8,7 @@
* Designed and built with all the love in the world @twitter by @mdo and @fat.
*/
+
// Responsive.less
// For phone and tablet devices
// -------------------------------------------------------------
@@ -24,300 +25,24 @@
// RESPONSIVE CLASSES
// ------------------
-// Hide from screenreaders and browsers
-// Credit: HTML5 Boilerplate
-.hidden {
- display: none;
- visibility: hidden;
-}
+@import "responsive-utilities.less";
-
-// UP TO LANDSCAPE PHONE
-// ---------------------
-
-@media (max-width: 480px) {
-
- // Smooth out the collapsing/expanding nav
- .nav-collapse {
- -webkit-transform: translate3d(0, 0, 0); // activate the GPU
- }
-
- // Block level the page header small tag for readability
- .page-header h1 small {
- display: block;
- line-height: @baseLineHeight;
- }
-
- // Make span* classes full width
- input[class*="span"],
- select[class*="span"],
- textarea[class*="span"],
- .uneditable-input {
- display: block;
- width: 100%;
- height: 28px; /* Make inputs at least the height of their button counterpart */
- /* Makes inputs behave like true block-level elements */
- -webkit-box-sizing: border-box; /* Older Webkit */
- -moz-box-sizing: border-box; /* Older FF */
- -ms-box-sizing: border-box; /* IE8 */
- box-sizing: border-box; /* CSS3 spec*/
- }
- // But don't let it screw up prepend/append inputs
- .input-prepend input[class*="span"],
- .input-append input[class*="span"] {
- width: auto;
- }
-
- // Update checkboxes for iOS
- input[type="checkbox"],
- input[type="radio"] {
- border: 1px solid #ccc;
- }
-
- // Remove the horizontal form styles
- .form-horizontal .control-group > label {
- float: none;
- width: auto;
- padding-top: 0;
- text-align: left;
- }
- // Move over all input controls and content
- .form-horizontal .controls {
- margin-left: 0;
- }
- // Move the options list down to align with labels
- .form-horizontal .control-list {
- padding-top: 0; // has to be padding because margin collaspes
- }
- // Move over buttons in .form-actions to align with .controls
- .form-horizontal .form-actions {
- padding-left: 10px;
- padding-right: 10px;
- }
-
- // Modals
- .modal {
- position: absolute;
- top: 10px;
- left: 10px;
- right: 10px;
- width: auto;
- margin: 0;
- &.fade.in { top: auto; }
- }
- .modal-header .close {
- padding: 10px;
- margin: -10px;
- }
-
- // Carousel
- .carousel-caption {
- position: static;
- }
-
-}
-
-
-
-// LANDSCAPE PHONE TO SMALL DESKTOP & PORTRAIT TABLET
-// --------------------------------------------------
-
-@media (max-width: 768px) {
- // GRID & CONTAINERS
- // -----------------
- // Remove width from containers
- .container {
- width: auto;
- padding: 0 20px;
- }
- // Fluid rows
- .row-fluid {
- width: 100%;
- }
- // Undo negative margin on rows
- .row {
- margin-left: 0;
- }
- // Make all columns even
- .row > [class*="span"],
- .row-fluid > [class*="span"] {
- float: none;
- display: block;
- width: auto;
- margin: 0;
- }
-}
-
-
-
-// PORTRAIT TABLET TO DEFAULT DESKTOP
-// ----------------------------------
-
-@media (min-width: 768px) and (max-width: 980px) {
-
- // Fixed grid
- #gridSystem > .generate(12, 42px, 20px);
-
- // Fluid grid
- #fluidGridSystem > .generate(12, 5.801104972%, 2.762430939%);
-
- // Input grid
- #inputGridSystem > .generate(12, 42px, 20px);
-
-}
-
-
-
-// TABLETS AND BELOW
-// -----------------
-@media (max-width: 980px) {
-
- // UNFIX THE TOPBAR
- // ----------------
- // Remove any padding from the body
- body {
- padding-top: 0;
- }
- // Unfix the navbar
- .navbar-fixed-top {
- position: static;
- margin-bottom: @baseLineHeight;
- }
- .navbar-fixed-top .navbar-inner {
- padding: 5px;
- }
- .navbar .container {
- width: auto;
- padding: 0;
- }
- // Account for brand name
- .navbar .brand {
- padding-left: 10px;
- padding-right: 10px;
- margin: 0 0 0 -5px;
- }
- // Nav collapse clears brand
- .navbar .nav-collapse {
- clear: left;
- }
- // Block-level the nav
- .navbar .nav {
- float: none;
- margin: 0 0 (@baseLineHeight / 2);
- }
- .navbar .nav > li {
- float: none;
- }
- .navbar .nav > li > a {
- margin-bottom: 2px;
- }
- .navbar .nav > .divider-vertical {
- display: none;
- }
- // Nav and dropdown links in navbar
- .navbar .nav > li > a,
- .navbar .dropdown-menu a {
- padding: 6px 15px;
- font-weight: bold;
- color: @navbarLinkColor;
- .border-radius(3px);
- }
- .navbar .dropdown-menu li + li a {
- margin-bottom: 2px;
- }
- .navbar .nav > li > a:hover,
- .navbar .dropdown-menu a:hover {
- background-color: @navbarBackground;
- }
- // Dropdowns in the navbar
- .navbar .dropdown-menu {
- position: static;
- top: auto;
- left: auto;
- float: none;
- display: block;
- max-width: none;
- margin: 0 15px;
- padding: 0;
- background-color: transparent;
- border: none;
- .border-radius(0);
- .box-shadow(none);
- }
- .navbar .dropdown-menu:before,
- .navbar .dropdown-menu:after {
- display: none;
- }
- .navbar .dropdown-menu .divider {
- display: none;
- }
- // Forms in navbar
- .navbar-form,
- .navbar-search {
- float: none;
- padding: (@baseLineHeight / 2) 15px;
- margin: (@baseLineHeight / 2) 0;
- border-top: 1px solid @navbarBackground;
- border-bottom: 1px solid @navbarBackground;
- @shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);
- .box-shadow(@shadow);
- }
- // Pull right (secondary) nav content
- .navbar .nav.pull-right {
- float: none;
- margin-left: 0;
- }
- // Static navbar
- .navbar-static .navbar-inner {
- padding-left: 10px;
- padding-right: 10px;
- }
- // Navbar button
- .btn-navbar {
- display: block;
- }
-
- // Hide everything in the navbar save .brand and toggle button */
- .nav-collapse {
- overflow: hidden;
- height: 0;
- }
-}
-
-
-
-// DEFAULT DESKTOP
-// ---------------
-
-@media (min-width: 980px) {
- .nav-collapse.collapse {
- height: auto !important;
- }
-}
-
-
-
-// LARGE DESKTOP & UP
+// MEDIA QUERIES
// ------------------
-@media (min-width: 1200px) {
+// Phones to portrait tablets and narrow desktops
+@import "responsive-767px-max.less";
- // Fixed grid
- #gridSystem > .generate(12, 70px, 30px);
+// Tablets to regular desktops
+@import "responsive-768px-979px.less";
- // Fluid grid
- #fluidGridSystem > .generate(12, 5.982905983%, 2.564102564%);
+// Large desktops
+@import "responsive-1200px-min.less";
- // Input grid
- #inputGridSystem > .generate(12, 70px, 30px);
- // Thumbnails
- .thumbnails {
- margin-left: -30px;
- }
- .thumbnails > li {
- margin-left: 30px;
- }
+// RESPONSIVE NAVBAR
+// ------------------
-}
+// From 979px and below, show a button to toggle navbar contents
+@import "responsive-navbar.less";
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/june_2007_style/bootstrap/scaffolding.less
--- a/static/june_2007_style/bootstrap/scaffolding.less
+++ b/static/june_2007_style/bootstrap/scaffolding.less
@@ -3,8 +3,8 @@
// -------------------------------------------------------------------------------------------
-// STRUCTURAL LAYOUT
-// -----------------
+// Body reset
+// ----------
body {
margin: 0;
@@ -12,11 +12,11 @@
font-size: @baseFontSize;
line-height: @baseLineHeight;
color: @textColor;
- background-color: @white;
+ background-color: @bodyBackground;
}
-// LINKS
+// Links
// -----
a {
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/june_2007_style/bootstrap/sprites.less
--- a/static/june_2007_style/bootstrap/sprites.less
+++ b/static/june_2007_style/bootstrap/sprites.less
@@ -6,27 +6,29 @@
// ICONS
// -----
-// All icons receive the styles of the <i> tag with a base class
-// of .i and are then given a unique class to add width, height,
+// All icons receive the styles of the <i> tag with a base class
+// of .i and are then given a unique class to add width, height,
// and background-position. Your resulting HTML will look like
-// <i class="i icon-inbox"></i>.
+// <i class="icon-inbox"></i>.
-// For the white version of the icons, just add the .icon-white class:
-// <i class="i icon-inbox icon-white"></i>
+// For the white version of the icons, just add the .icon-white class:
+// <i class="icon-inbox icon-white"></i>
-[class^="icon-"], .icon {
+[class^="icon-"],
+[class*=" icon-"] {
display: inline-block;
width: 14px;
height: 14px;
+ .ie7-restore-right-whitespace();
+ line-height: 14px;
vertical-align: text-top;
- background-image: url(glyphicons-halflings.png);
+ background-image: url("@{iconSpritePath}");
background-position: 14px 14px;
background-repeat: no-repeat;
- .ie7-restore-right-whitespace();
}
.icon-white {
- background-image: url(glyphicons-halflings-white.png);
+ background-image: url("@{iconWhiteSpritePath}");
}
.icon-glass { background-position: 0 0; }
@@ -147,10 +149,43 @@
.icon-comment { background-position: -240px -120px; }
.icon-magnet { background-position: -264px -120px; }
.icon-chevron-up { background-position: -288px -120px; }
-.icon-chevron-down { background-position: -313px -119px; } // 1px off
+.icon-chevron-down { background-position: -313px -119px; } // 1px, 1px off
.icon-retweet { background-position: -336px -120px; }
.icon-shopping-cart { background-position: -360px -120px; }
.icon-folder-close { background-position: -384px -120px; }
.icon-folder-open { background-position: -408px -120px; }
-.icon-resize-vertical { background-position: -432px -119px; }
-.icon-resize-horizontal { background-position: -456px -118px; }
+.icon-resize-vertical { background-position: -432px -119px; } // 1px, 1px off
+.icon-resize-horizontal { background-position: -456px -118px; } // 1px, 2px off
+
+.icon-hdd { background-position: 0 -144px; }
+.icon-bullhorn { background-position: -24px -144px; }
+.icon-bell { background-position: -48px -144px; }
+.icon-certificate { background-position: -72px -144px; }
+.icon-thumbs-up { background-position: -96px -144px; }
+.icon-thumbs-down { background-position: -120px -144px; }
+.icon-hand-right { background-position: -144px -144px; }
+.icon-hand-left { background-position: -168px -144px; }
+.icon-hand-up { background-position: -192px -144px; }
+.icon-hand-down { background-position: -216px -144px; }
+.icon-circle-arrow-right { background-position: -240px -144px; }
+.icon-circle-arrow-left { background-position: -264px -144px; }
+.icon-circle-arrow-up { background-position: -288px -144px; }
+.icon-circle-arrow-down { background-position: -312px -144px; }
+.icon-globe { background-position: -336px -144px; }
+.icon-wrench { background-position: -360px -144px; }
+.icon-tasks { background-position: -384px -144px; }
+.icon-filter { background-position: -408px -144px; }
+.icon-briefcase { background-position: -432px -144px; }
+.icon-fullscreen { background-position: -456px -144px; }
+
+
+
+
+
+
+
+
+
+
+
+
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/june_2007_style/bootstrap/tables.less
--- a/static/june_2007_style/bootstrap/tables.less
+++ b/static/june_2007_style/bootstrap/tables.less
@@ -9,6 +9,7 @@
table {
max-width: 100%;
+ background-color: @tableBackground;
border-collapse: collapse;
border-spacing: 0;
}
@@ -25,23 +26,28 @@
padding: 8px;
line-height: @baseLineHeight;
text-align: left;
- border-top: 1px solid #ddd;
+ vertical-align: top;
+ border-top: 1px solid @tableBorder;
}
th {
font-weight: bold;
+ }
+ // Bottom align for column headings
+ thead th {
vertical-align: bottom;
}
- td {
- vertical-align: top;
- }
// Remove top border from thead by default
- thead:first-child tr th,
- thead:first-child tr td {
+ caption + thead tr:first-child th,
+ caption + thead tr:first-child td,
+ colgroup + thead tr:first-child th,
+ colgroup + thead tr:first-child td,
+ thead:first-child tr:first-child th,
+ thead:first-child tr:first-child td {
border-top: 0;
}
// Account for multiple tbody instances
tbody + tbody {
- border-top: 2px solid #ddd;
+ border-top: 2px solid @tableBorder;
}
}
@@ -62,17 +68,22 @@
// ----------------
.table-bordered {
- border: 1px solid #ddd;
+ border: 1px solid @tableBorder;
border-collapse: separate; // Done so we can round those corners!
*border-collapse: collapsed; // IE7 can't round corners anyway
+ border-left: 0;
.border-radius(4px);
- th + th,
- td + td,
- th + td,
- td + th {
- border-left: 1px solid #ddd;
+ th,
+ td {
+ border-left: 1px solid @tableBorder;
}
// Prevent a double border
+ caption + thead tr:first-child th,
+ caption + tbody tr:first-child th,
+ caption + tbody tr:first-child td,
+ colgroup + thead tr:first-child th,
+ colgroup + tbody tr:first-child th,
+ colgroup + tbody tr:first-child td,
thead:first-child tr:first-child th,
tbody:first-child tr:first-child th,
tbody:first-child tr:first-child td {
@@ -81,20 +92,29 @@
// For first th or td in the first row in the first thead or tbody
thead:first-child tr:first-child th:first-child,
tbody:first-child tr:first-child td:first-child {
- .border-radius(4px 0 0 0);
+ -webkit-border-top-left-radius: 4px;
+ border-top-left-radius: 4px;
+ -moz-border-radius-topleft: 4px;
}
thead:first-child tr:first-child th:last-child,
tbody:first-child tr:first-child td:last-child {
- .border-radius(0 4px 0 0);
+ -webkit-border-top-right-radius: 4px;
+ border-top-right-radius: 4px;
+ -moz-border-radius-topright: 4px;
}
// For first th or td in the first row in the first thead or tbody
thead:last-child tr:last-child th:first-child,
tbody:last-child tr:last-child td:first-child {
.border-radius(0 0 0 4px);
+ -webkit-border-bottom-left-radius: 4px;
+ border-bottom-left-radius: 4px;
+ -moz-border-radius-bottomleft: 4px;
}
thead:last-child tr:last-child th:last-child,
tbody:last-child tr:last-child td:last-child {
- .border-radius(0 0 4px 0);
+ -webkit-border-bottom-right-radius: 4px;
+ border-bottom-right-radius: 4px;
+ -moz-border-radius-bottomright: 4px;
}
}
@@ -107,22 +127,27 @@
tbody {
tr:nth-child(odd) td,
tr:nth-child(odd) th {
- background-color: #f9f9f9;
+ background-color: @tableBackgroundAccent;
}
}
}
+// HOVER EFFECT
+// ------------
+// Placed here since it has to come after the potential zebra striping
+.table {
+ tbody tr:hover td,
+ tbody tr:hover th {
+ background-color: @tableBackgroundHover;
+ }
+}
+
// TABLE CELL SIZING
// -----------------
// Change the columns
-.tableColumns(@columnSpan: 1) {
- float: none;
- width: ((@gridColumnWidth) * @columnSpan) + (@gridGutterWidth * (@columnSpan - 1)) - 16;
- margin-left: 0;
-}
table {
.span1 { .tableColumns(1); }
.span2 { .tableColumns(2); }
@@ -136,4 +161,16 @@
.span10 { .tableColumns(10); }
.span11 { .tableColumns(11); }
.span12 { .tableColumns(12); }
+ .span13 { .tableColumns(13); }
+ .span14 { .tableColumns(14); }
+ .span15 { .tableColumns(15); }
+ .span16 { .tableColumns(16); }
+ .span17 { .tableColumns(17); }
+ .span18 { .tableColumns(18); }
+ .span19 { .tableColumns(19); }
+ .span20 { .tableColumns(20); }
+ .span21 { .tableColumns(21); }
+ .span22 { .tableColumns(22); }
+ .span23 { .tableColumns(23); }
+ .span24 { .tableColumns(24); }
}
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/june_2007_style/bootstrap/thumbnails.less
--- a/static/june_2007_style/bootstrap/thumbnails.less
+++ b/static/june_2007_style/bootstrap/thumbnails.less
@@ -1,15 +1,26 @@
// THUMBNAILS
// ----------
+// Note: `.thumbnails` and `.thumbnails > li` are overriden in responsive files
+// Make wrapper ul behave like the grid
.thumbnails {
- margin-left: -20px;
+ margin-left: -@gridGutterWidth;
list-style: none;
.clearfix();
}
+// Fluid rows have no left margin
+.row-fluid .thumbnails {
+ margin-left: 0;
+}
+
+// Float li to make thumbnails appear in a row
.thumbnails > li {
- float: left;
- margin: 0 0 @baseLineHeight 20px;
+ float: left; // Explicity set the float since we don't require .span* classes
+ margin-bottom: @baseLineHeight;
+ margin-left: @gridGutterWidth;
}
+
+// The actual thumbnail (can be `a` or `div`)
.thumbnail {
display: block;
padding: 4px;
@@ -23,6 +34,7 @@
border-color: @linkColor;
.box-shadow(0 1px 4px rgba(0,105,214,.25));
}
+
// Images and captions
.thumbnail > img {
display: block;
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/june_2007_style/bootstrap/type.less
--- a/static/june_2007_style/bootstrap/type.less
+++ b/static/june_2007_style/bootstrap/type.less
@@ -8,9 +8,6 @@
p {
margin: 0 0 @baseLineHeight / 2;
- font-family: @baseFontFamily;
- font-size: @baseFontSize;
- line-height: @baseLineHeight;
small {
font-size: @baseFontSize - 2;
color: @grayLight;
@@ -28,8 +25,9 @@
h1, h2, h3, h4, h5, h6 {
margin: 0;
- font-weight: bold;
- color: @grayDark;
+ font-family: @headingsFontFamily;
+ font-weight: @headingsFontWeight;
+ color: @headingsColor;
text-rendering: optimizelegibility; // Fix the character spacing for headings
small {
font-weight: normal;
@@ -37,26 +35,26 @@
}
}
h1 {
+ font-size: 30px;
+ line-height: @baseLineHeight * 2;
+ small {
+ font-size: 18px;
+ }
+}
+h2 {
font-size: 24px;
line-height: @baseLineHeight * 2;
small {
font-size: 18px;
}
}
-h2 {
+h3 {
font-size: 18px;
line-height: @baseLineHeight * 1.5;
small {
font-size: 14px;
}
}
-h3 {
- line-height: @baseLineHeight;
- font-size: 14px;
- small {
- font-size: 12px;
- }
-}
h4, h5, h6 {
line-height: @baseLineHeight;
}
@@ -110,7 +108,8 @@
li {
line-height: @baseLineHeight;
}
-ul.unstyled {
+ul.unstyled,
+ol.unstyled {
margin-left: 0;
list-style: none;
}
@@ -125,10 +124,24 @@
}
dt {
font-weight: bold;
+ line-height: @baseLineHeight - 1; // fix jank Helvetica Neue font bug
}
dd {
margin-left: @baseLineHeight / 2;
}
+// Horizontal layout (like forms)
+.dl-horizontal {
+ dt {
+ float: left;
+ width: 120px;
+ clear: left;
+ text-align: right;
+ .text-overflow();
+ }
+ dd {
+ margin-left: 130px;
+ }
+}
// MISC
// ----
@@ -137,7 +150,7 @@
hr {
margin: @baseLineHeight 0;
border: 0;
- border-top: 1px solid #e5e5e5;
+ border-top: 1px solid @hrBorder;
border-bottom: 1px solid @white;
}
@@ -153,11 +166,13 @@
}
// Abbreviations and acronyms
-abbr {
+abbr[title] {
+ cursor: help;
+ border-bottom: 1px dotted @grayLight;
+}
+abbr.initialism {
font-size: 90%;
text-transform: uppercase;
- border-bottom: 1px dotted #ddd;
- cursor: help;
}
// Blockquotes
@@ -181,10 +196,10 @@
// Float right with text-align: right
&.pull-right {
float: right;
+ padding-right: 15px;
padding-left: 0;
- padding-right: 15px;
+ border-right: 5px solid @grayLighter;
border-left: 0;
- border-right: 5px solid @grayLighter;
p,
small {
text-align: right;
@@ -195,7 +210,7 @@
// Quotes
q:before,
q:after,
-blockquote:before,
+blockquote:before,
blockquote:after {
content: "";
}
@@ -204,8 +219,8 @@
address {
display: block;
margin-bottom: @baseLineHeight;
+ font-style: normal;
line-height: @baseLineHeight;
- font-style: normal;
}
// Misc
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/june_2007_style/bootstrap/variables.less
--- a/static/june_2007_style/bootstrap/variables.less
+++ b/static/june_2007_style/bootstrap/variables.less
@@ -7,11 +7,9 @@
// GLOBAL VALUES
// --------------------------------------------------
-// Links
-@linkColor: #08c;
-@linkColorHover: darken(@linkColor, 15%);
// Grays
+// -------------------------
@black: #000;
@grayDarker: #222;
@grayDark: #333;
@@ -20,7 +18,9 @@
@grayLighter: #eee;
@white: #fff;
+
// Accent colors
+// -------------------------
@blue: #049cdb;
@blueDark: #0064cd;
@green: #46a546;
@@ -30,14 +30,85 @@
@pink: #c3325f;
@purple: #7a43b6;
-// Typography
-@baseFontSize: 13px;
-@baseFontFamily: "Helvetica Neue", Helvetica, Arial, sans-serif;
-@baseLineHeight: 18px;
+
+// Scaffolding
+// -------------------------
+@bodyBackground: @white;
@textColor: @grayDark;
+
+// Links
+// -------------------------
+@linkColor: #08c;
+@linkColorHover: darken(@linkColor, 15%);
+
+
+// Typography
+// -------------------------
+@sansFontFamily: "Helvetica Neue", Helvetica, Arial, sans-serif;
+@serifFontFamily: Georgia, "Times New Roman", Times, serif;
+@monoFontFamily: Menlo, Monaco, Consolas, "Courier New", monospace;
+
+@baseFontSize: 13px;
+@baseFontFamily: @sansFontFamily;
+@baseLineHeight: 18px;
+@altFontFamily: @serifFontFamily;
+
+@headingsFontFamily: inherit; // empty to use BS default, @baseFontFamily
+@headingsFontWeight: bold; // instead of browser default, bold
+@headingsColor: inherit; // empty to use BS default, @textColor
+
+
+// Tables
+// -------------------------
+@tableBackground: transparent; // overall background-color
+@tableBackgroundAccent: #f9f9f9; // for striping
+@tableBackgroundHover: #f5f5f5; // for hover
+@tableBorder: #ddd; // table and cell border
+
+
// Buttons
-@primaryButtonBackground: @linkColor;
+// -------------------------
+@btnBackground: @white;
+@btnBackgroundHighlight: darken(@white, 10%);
+@btnBorder: #ccc;
+
+@btnPrimaryBackground: @linkColor;
+@btnPrimaryBackgroundHighlight: spin(@btnPrimaryBackground, 15%);
+
+@btnInfoBackground: #5bc0de;
+@btnInfoBackgroundHighlight: #2f96b4;
+
+@btnSuccessBackground: #62c462;
+@btnSuccessBackgroundHighlight: #51a351;
+
+@btnWarningBackground: lighten(@orange, 15%);
+@btnWarningBackgroundHighlight: @orange;
+
+@btnDangerBackground: #ee5f5b;
+@btnDangerBackgroundHighlight: #bd362f;
+
+@btnInverseBackground: @gray;
+@btnInverseBackgroundHighlight: @grayDarker;
+
+
+// Forms
+// -------------------------
+@inputBackground: @white;
+@inputBorder: #ccc;
+@inputBorderRadius: 3px;
+@inputDisabledBackground: @grayLighter;
+@formActionsBackground: #f5f5f5;
+
+// Dropdowns
+// -------------------------
+@dropdownBackground: @white;
+@dropdownBorder: rgba(0,0,0,.2);
+@dropdownLinkColor: @grayDark;
+@dropdownLinkColorHover: @white;
+@dropdownLinkBackgroundHover: @linkColor;
+@dropdownDividerTop: #e5e5e5;
+@dropdownDividerBottom: @white;
@@ -45,19 +116,35 @@
// --------------------------------------------------
// Z-index master list
+// -------------------------
// Used for a bird's eye view of components dependent on the z-axis
// Try to avoid customizing these :)
-@zindexDropdown: 1000;
-@zindexPopover: 1010;
-@zindexTooltip: 1020;
-@zindexFixedNavbar: 1030;
-@zindexModalBackdrop: 1040;
-@zindexModal: 1050;
+@zindexDropdown: 1000;
+@zindexPopover: 1010;
+@zindexTooltip: 1020;
+@zindexFixedNavbar: 1030;
+@zindexModalBackdrop: 1040;
+@zindexModal: 1050;
+
+
+// Sprite icons path
+// -------------------------
+@iconSpritePath: "../img/glyphicons-halflings.png";
+@iconWhiteSpritePath: "../img/glyphicons-halflings-white.png";
+
// Input placeholder text color
-@placeholderText: @grayLight;
+// -------------------------
+@placeholderText: @grayLight;
+
+
+// Hr border color
+// -------------------------
+@hrBorder: @grayLighter;
+
// Navbar
+// -------------------------
@navbarHeight: 40px;
@navbarBackground: @grayDarker;
@navbarBackgroundHighlight: @grayDark;
@@ -65,8 +152,26 @@
@navbarText: @grayLight;
@navbarLinkColor: @grayLight;
@navbarLinkColorHover: @white;
+@navbarLinkColorActive: @navbarLinkColorHover;
+@navbarLinkBackgroundHover: transparent;
+@navbarLinkBackgroundActive: @navbarBackground;
+
+@navbarSearchBackground: lighten(@navbarBackground, 25%);
+@navbarSearchBackgroundFocus: @white;
+@navbarSearchBorder: darken(@navbarSearchBackground, 30%);
+@navbarSearchPlaceholderColor: #ccc;
+@navbarBrandColor: @navbarLinkColor;
+
+
+// Hero unit
+// -------------------------
+@heroUnitBackground: @grayLighter;
+@heroUnitHeadingColor: inherit;
+@heroUnitLeadColor: inherit;
+
// Form states and alerts
+// -------------------------
@warningText: #c09853;
@warningBackground: #fcf8e3;
@warningBorder: darken(spin(@warningBackground, -10), 3%);
@@ -89,11 +194,13 @@
// --------------------------------------------------
// Default 940px grid
+// -------------------------
@gridColumns: 12;
@gridColumnWidth: 60px;
@gridGutterWidth: 20px;
@gridRowWidth: (@gridColumns * @gridColumnWidth) + (@gridGutterWidth * (@gridColumns - 1));
// Fluid grid
+// -------------------------
@fluidGridColumnWidth: 6.382978723%;
@fluidGridGutterWidth: 2.127659574%;
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/june_2007_style/bootstrap/wells.less
--- a/static/june_2007_style/bootstrap/wells.less
+++ b/static/june_2007_style/bootstrap/wells.less
@@ -15,3 +15,13 @@
border-color: rgba(0,0,0,.15);
}
}
+
+// Sizes
+.well-large {
+ padding: 24px;
+ .border-radius(6px);
+}
+.well-small {
+ padding: 9px;
+ .border-radius(3px);
+}
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/june_2007_style/galaxy_bootstrap.less
--- a/static/june_2007_style/galaxy_bootstrap.less
+++ b/static/june_2007_style/galaxy_bootstrap.less
@@ -1,109 +1,26 @@
-// Variables.less
-// Variables to customize the look and feel of Bootstrap
-// -----------------------------------------------------
+/*
+ * bootsrap.less modified for Galaxy.
+ * - only a subset of bootsrap components are used
+ * - include 'galaxy_bootsrap_variables' instead of 'variables'
+ * - overrides that can't be set with variables at end
+ *
+ * ---
+ *
+ * Bootstrap v2.0.4
+ *
+ * Copyright 2012 Twitter, Inc
+ * Licensed under the Apache License v2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Designed and built with all the love in the world @twitter by @mdo and @fat.
+ */
-// GLOBAL VALUES
-// --------------------------------------------------
+// CSS Reset
+@import "bootstrap/reset.less";
-// Links
-@linkColor: @link_text;
-@linkColorHover: darken(@linkColor, 15%);
-
-// Grays
-@black: #000;
-@grayDarker: #222;
-@grayDark: #333;
-@gray: #555;
-@grayLight: #999;
-@grayLighter: #eee;
-@white: #fff;
-
-// Accent colors
-@blue: @info_message_bg;
-@blueDark: #0064cd;
-@green: #46a546;
-@red: #9d261d;
-@yellow: #ffc40d;
-@orange: #f89406;
-@pink: #c3325f;
-@purple: #7a43b6;
-
-// Typography
-@baseFontSize: 12px;
-@sansFontFamily: "Lucida Grande",verdana,arial,helvetica,sans-serif;
-@serifFontFamily: Georgia, "Times New Roman", Times, serif;
-@monospaceFontFamily: Menlo, Monaco, "Courier New", monospace;
-@baseFontFamily: @sansFontFamily;
-@baseLineHeight: 16px;
-@textColor: #111;
-
-// Buttons
-@primaryButtonBackground: @blueDark;
-
-@buttonBorder: #999;
-@buttonBorderBottom: #888;
-
-// Forms
-@formElementBorder: @grayLight;
-
-
-
-// COMPONENT VARIABLES
-// --------------------------------------------------
-
-// Z-index master list
-// Used for a bird's eye view of components dependent on the z-axis
-// Try to avoid customizing these :)
-@zindexDropdown: 1000;
-@zindexPopover: 1010;
-@zindexTooltip: 1020;
-@zindexFixedNavbar: 1030;
-@zindexModalBackdrop: 1040;
-@zindexModal: 1050;
-
-// Input placeholder text color
-@placeholderText: @grayLight;
-
-// Navbar
-@navbarHeight: 32px;
-@navbarBackground: @masthead_bg;
-@navbarBackgroundHighlight: @grayDark;
-
-@navbarText: @grayLight;
-@navbarLinkColor: @grayLight;
-@navbarLinkColorHover: @white;
-
-// Form states and alerts
-@warningText: darken(@warn_message_bg,70%);
-@warningBackground: @warn_message_bg;
-@warningBorder: darken(spin(@warningBackground, -10), 30%);
-
-@errorText: darken(@error_message_bg,70%);
-@errorBackground: @error_message_bg;
-@errorBorder: darken(spin(@errorBackground, -10), 30%);
-
-@successText: darken(@done_message_bg,70%);
-@successBackground: @done_message_bg;
-@successBorder: darken(spin(@successBackground, -10), 60%);
-
-@infoText: darken(@info_message_bg,70%);
-@infoBackground: @info_message_bg;
-@infoBorder: darken(spin(@info_message_bg, -10), 60%);
-
-
-
-// GRID
-// --------------------------------------------------
-
-// Default 940px grid
-@gridColumns: 12;
-@gridColumnWidth: 60px;
-@gridGutterWidth: 20px;
-@gridRowWidth: (@gridColumns * @gridColumnWidth) + (@gridGutterWidth * (@gridColumns - 1));
-
-// Fluid grid
-@fluidGridColumnWidth: 6.382978723%;
-@fluidGridGutterWidth: 2.127659574%;
+// Core variables and mixins
+@import "galaxy_bootstrap_variables.less"; // Modify this for custom colors, font-sizes, etc
+@import "bootstrap/mixins.less";
// ---- Imports ----
@@ -120,7 +37,7 @@
@import "bootstrap/tables.less";
// Components: common
-// @import "bootstrap/sprites.less";
+@import "bootstrap/sprites.less";
@import "bootstrap/dropdowns.less";
@import "bootstrap/wells.less";
@import "bootstrap/component-animations.less";
@@ -152,4 +69,31 @@
@import "bootstrap/hero-unit.less";
// Utility classes
-@import "bootstrap/utilities.less";
\ No newline at end of file
+@import "bootstrap/utilities.less";
+
+
+// Galaxy overrides
+
+.btn {
+ padding: 2px 10px 2px;
+ // These are hardcoded in buttons.less
+ border-color: @btnBorder;
+ border-color: rgba(0,0,0,.4) rgba(0,0,0,.4) rgba(0,0,0,.4);
+}
+
+.btn.hover {
+ @btn:hover();
+}
+
+.btn.active, .btn:active {
+ color: inherit;
+}
+
+.dropdown-menu {
+ max-width: auto;
+}
+
+input[type="checkbox"],input[type="radio"] {
+ margin-left: 0.5ex;
+ margin-right: 0.5ex;
+}
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/june_2007_style/galaxy_bootstrap_variables.less
--- /dev/null
+++ b/static/june_2007_style/galaxy_bootstrap_variables.less
@@ -0,0 +1,202 @@
+// Variables.less
+// Variables to customize the look and feel of Bootstrap
+// -----------------------------------------------------
+
+
+
+// GLOBAL VALUES
+// --------------------------------------------------
+
+
+// Grays
+// -------------------------
+@black: #000;
+@grayDarker: #222;
+@grayDark: #333;
+@gray: #555;
+@grayLight: #999;
+@grayLighter: #eee;
+@white: #fff;
+
+
+// Accent colors
+// -------------------------
+@blue: @info_message_bg;
+@blueDark: #0064cd;
+@green: #46a546;
+@red: #9d261d;
+@yellow: #ffc40d;
+@orange: #f89406;
+@pink: #c3325f;
+@purple: #7a43b6;
+
+
+// Scaffolding
+// -------------------------
+@bodyBackground: @white;
+@textColor: #111;
+
+
+// Links
+// -------------------------
+@linkColor: @link_text;
+@linkColorHover: darken(@linkColor, 15%);
+
+// Typography
+// -------------------------
+@sansFontFamily: "Lucida Grande",verdana,arial,helvetica,sans-serif;
+@serifFontFamily: Georgia, "Times New Roman", Times, serif;
+@monospaceFontFamily: Menlo, Monaco, "Courier New", monospace;
+
+@baseFontSize: 12px;
+@baseFontFamily: @sansFontFamily;
+@baseLineHeight: 16px;
+@altFontFamily: @serifFontFamily;
+
+@headingsFontFamily: inherit; // empty to use BS default, @baseFontFamily
+@headingsFontWeight: bold; // instead of browser default, bold
+@headingsColor: inherit; // empty to use BS default, @textColor
+
+// Tables
+// -------------------------
+@tableBackground: transparent; // overall background-color
+@tableBackgroundAccent: #f9f9f9; // for striping
+@tableBackgroundHover: #f5f5f5; // for hover
+@tableBorder: #ddd; // table and cell border
+
+
+// Buttons
+// -------------------------
+@btnBackground: @white;
+@btnBackgroundHighlight: darken(@white, 10%);
+@btnBorder: #999;
+@btnColor: @textColor;
+
+@btnPrimaryBackground: @blueDark;
+@btnPrimaryBackgroundHighlight: spin(@btnPrimaryBackground, 15%);
+
+@btnInfoBackground: #5bc0de;
+@btnInfoBackgroundHighlight: #2f96b4;
+
+@btnSuccessBackground: #62c462;
+@btnSuccessBackgroundHighlight: #51a351;
+
+@btnWarningBackground: lighten(@orange, 15%);
+@btnWarningBackgroundHighlight: @orange;
+
+@btnDangerBackground: #ee5f5b;
+@btnDangerBackgroundHighlight: #bd362f;
+
+@btnInverseBackground: @gray;
+@btnInverseBackgroundHighlight: @grayDarker;
+
+
+// Forms
+// -------------------------
+@inputBackground: @white;
+@inputBorder: @grayLight;
+@inputBorderRadius: 3px;
+@inputDisabledBackground: @grayLighter;
+@formActionsBackground: #f5f5f5;
+
+// Dropdowns
+// -------------------------
+@dropdownBackground: @white;
+@dropdownBorder: rgba(0,0,0,.2);
+@dropdownLinkColor: @grayDark;
+@dropdownLinkColorHover: @white;
+@dropdownLinkBackgroundHover: @linkColor;
+@dropdownDividerTop: #e5e5e5;
+@dropdownDividerBottom: @white;
+
+
+// COMPONENT VARIABLES
+// --------------------------------------------------
+
+// Z-index master list
+// Used for a bird's eye view of components dependent on the z-axis
+// Try to avoid customizing these :)
+@zindexDropdown: 1000;
+@zindexPopover: 1010;
+@zindexTooltip: 1020;
+@zindexFixedNavbar: 1030;
+@zindexModalBackdrop: 1040;
+@zindexModal: 1050;
+
+
+// Sprite icons path
+// -------------------------
+@iconSpritePath: "../img/glyphicons-halflings.png";
+@iconWhiteSpritePath: "../img/glyphicons-halflings-white.png";
+
+
+// Input placeholder text color
+// -------------------------
+@placeholderText: @grayLight;
+
+
+// Hr border color
+// -------------------------
+
+@hrBorder: @grayLighter;
+
+// Navbar
+// -------------------------
+@navbarHeight: 32px;
+@navbarBackground: @masthead_bg;
+@navbarBackgroundHighlight: @grayDark;
+
+@navbarText: @grayLight;
+@navbarLinkColor: @grayLight;
+@navbarLinkColorHover: @white;
+@navbarLinkColorActive: @navbarLinkColorHover;
+@navbarLinkBackgroundHover: transparent;
+@navbarLinkBackgroundActive: rgba(0,0,0,0.5);
+
+@navbarSearchBackground: lighten(@navbarBackground, 25%);
+@navbarSearchBackgroundFocus: @white;
+@navbarSearchBorder: darken(@navbarSearchBackground, 30%);
+@navbarSearchPlaceholderColor: #ccc;
+@navbarBrandColor: @navbarLinkColor;
+
+// Hero unit
+// -------------------------
+@heroUnitBackground: @grayLighter;
+@heroUnitHeadingColor: inherit;
+@heroUnitLeadColor: inherit;
+
+
+// Form states and alerts
+// -------------------------
+@warningText: darken(@warn_message_bg,70%);
+@warningBackground: @warn_message_bg;
+@warningBorder: darken(spin(@warningBackground, -10), 30%);
+
+@errorText: darken(@error_message_bg,70%);
+@errorBackground: @error_message_bg;
+@errorBorder: darken(spin(@errorBackground, -10), 30%);
+
+@successText: darken(@done_message_bg,70%);
+@successBackground: @done_message_bg;
+@successBorder: darken(spin(@successBackground, -10), 60%);
+
+@infoText: darken(@info_message_bg,70%);
+@infoBackground: @info_message_bg;
+@infoBorder: darken(spin(@info_message_bg, -10), 60%);
+
+
+
+// GRID
+// --------------------------------------------------
+
+// Default 940px grid
+// -------------------------
+@gridColumns: 12;
+@gridColumnWidth: 60px;
+@gridGutterWidth: 20px;
+@gridRowWidth: (@gridColumns * @gridColumnWidth) + (@gridGutterWidth * (@gridColumns - 1));
+
+// Fluid grid
+// -------------------------
+@fluidGridColumnWidth: 6.382978723%;
+@fluidGridGutterWidth: 2.127659574%;
\ No newline at end of file
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/Makefile
--- a/static/light_hatched_style/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-menu_bg.png :
- ./gradient.py 9 1000 DDDDFF 9999FF FFFFFF 0 0 FFFFFF 1 1 > $@
-
-base_bg.png :
- ./gradient.py 9 1000 EEEEFF - FFFFFF 0 0 FFFFFF 1 1 > $@
-
-masthead_bg.png :
- ./gradient.py 9 50 023858 000000 000000 0 0.5 000000 1 1 > $@
-
-footer_title_bg.png :
- ./gradient.py 9 30 023858 000000 000000 0 0.5 000000 1 1 > $@
-
-form_title_bg.png :
- ./gradient.py 9 50 ebd9b2 b9a780 FFFFFF 0 0 FFFFFF 0.5 1 > $@
-
-ok_bg.png :
- ./gradient.py 9 200 AAFFAA - CCFFCC 0 0.5 CCFFCC 1 1 > $@
-
-error_bg.png :
- ./gradient.py 9 200 FFAAAA - FFCCCC 0 0.5 FFCCCC 1 1 > $@
-
-warn_bg.png :
- ./gradient.py 9 200 FFFFAA - FFFFCC 0 0.5 FFFFCC 1 1 > $@
-
-gray_bg.png :
- ./gradient.py 9 200 AAAAAA - CCCCCC 0 0.5 CCCCCC 1 1 > $@
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/base.css.tmpl
--- a/static/light_hatched_style/base.css.tmpl
+++ /dev/null
@@ -1,295 +0,0 @@
-body
-{
- font: 75% verdana, "Bitstream Vera Sans", geneva, arial, helvetica, helve, sans-serif;
- background: white;
- color: $base_text;
- background-image: url(base_bg.png);
- background-repeat: repeat-x;
- background-position: top;
- margin: 10px;
- margin-right: 15px;
- margin-left: 15px;
-}
-
-a:link, a:visited, a:active
-{
- color: $link_text;
-}
-
-h1, h2, h3, h4
-{
- color: $header_text;
- /*text-shadow: #bbb 2px 2px 1px;*/
-}
-
-hr
-{
- border: none;
- border-bottom: dotted $base_text 1px;
-}
-
-div.toolForm
-{
- margin-right: -5px;
- margin-left: -5px;
-}
-
-div.toolFormTitle
-{
- background: $form_title_bg;
- background-image: url(form_title_bg.png);
- background-repeat: repeat-x;
- background-position: top;
- border-top: solid $form_border 1px;
- border-bottom: solid $form_border 1px;
- font-weight: bold;
- padding: 5px;
-}
-
-div.toolParamHelp
-{
- font-style: italic;
-}
-
-div.toolFormBody
-{
- background: $form_body_bg;
- border-bottom: solid $form_border 1px;
- padding: 5px;
-}
-
-div.toolFormBody div.toolFormTitle
-{
- background: transparent;
- border: none;
- font-weight: bold;
- border-bottom: solid $form_border 1px;
- margin-bottom: 5px;
-}
-
-div.toolHelp
-{
-}
-
-div.toolHelpBody
-{
- width: 100%;
- overflow: auto;
-}
-
-/* Forms */
-
-div.form-row
-{
- margin-bottom: 1em;
-}
-
-div.form-title-row
-{
- margin-bottom: 0.5em;
-}
-
-div.repeat-group-item
-{
- border-left: solid $form_border 5px;
- padding-left: 10px;
-}
-
-div.form-row-error
-{
- background: $error_message_bg;
- padding: 5px;
-}
-
-div.form-row label
-{
- font-weight: bold;
- display: block;
- margin-bottom: .2em;
-}
-
-select
-{
- max-width: 300px;
-}
-
-.errormessage, .warningmessage, .donemessage, .infomessage, .welcomemessage
-{
- padding: 10px;
- padding-left: 52px;
- min-height: 32px;
- border-top: 1px solid $error_message_border;
- border-bottom: 1px solid $error_message_border;
- background-color: $error_message_bg;
- background-image: url(error_message_icon.png);
- background-repeat: no-repeat;
- background-position: 10px 10px;
-}
-
-.warningmessage
-{
- background-image: url(warn_message_icon.png);
- border-color: $warn_message_border;
- background-color: $warn_message_bg;
-}
-
-.donemessage
-{
- background-image: url(done_message_icon.png);
- border-color: $done_message_border;
- background-color: $done_message_bg;
-}
-
-.infomessage
-{
- background-image: url(info_message_icon.png);
- border-color: $info_message_border;
- background-color: $info_message_bg;
-}
-
-.welcomemessage {
- padding-left: 10px;
- border-color: #6666AA;
- background-color: #CCCCFF;
- background-image: none;
-}
-
-.errormessagesmall, .warningmessagesmall, .donemessagesmall, .infomessagesmall
-{
- padding: 5px;
- padding-left: 25px;
- min-height: 25px;
- border-top: 1px solid $error_message_border;
- border-bottom: 1px solid $error_message_border;
- background-color: $error_message_bg;
- background-image: url(error_small.png);
- background-repeat: no-repeat;
- background-position: 5px 5px;
-}
-
-.warningmessagesmall
-{
- background-image: url(warn_small.png);
- border-color: $warn_message_border;
- background-color: $warn_message_bg;
-}
-
-.donemessagesmall
-{
- background-image: url(ok_small.png);
- border-color: $done_message_border;
- background-color: $done_message_bg;
-}
-
-.infomessagesmall
-{
- background-image: url(info_small.png);
- border-color: $info_message_border;
- background-color: $info_message_bg;
-}
-
-.errormark, .warningmark, .donemark, .infomark, .ok_bgr, .err_bgr
-{
- padding-left: 20px;
- min-height: 15px;
- background: url(error_small.png) no-repeat;
-}
-
-.warningmark
-{
- background-image: url(warn_small.png);
-}
-
-.donemark
-{
- background-image: url(ok_small.png);
-}
-
-.infomark, .ok_bgr
-{
- background-image: url(info_small.png);
-}
-
-table.colored
-{
- border-top: solid $table_border 1px;
- border-bottom: solid $table_border 1px;
-}
-
-table.colored td
-{
- padding: 5px;
-}
-
-table.colored tr.header
-{
- background: $table_header_bg;
- background-image: url(form_title_bg.png);
- background-repeat: repeat-x;
- background-position: top;
- border-bottom: solid $table_border 1px;
- font-weight: bold;
-}
-
-table.colored tr
-{
- background: $table_row_bg;
-}
-
-div.debug
-{
- margin: 10px;
- padding: 5px;
- background: #FFFF99;
- border: solid #FFFF33 1px;
- color: black;
-}
-
-div.odd_row
-{
- background: $odd_row_bg;
-}
-
-#footer {
- position: fixed;
- background: $footer_bg;
- width: 100%;
- left: 0px;
- bottom: 0px;
- color: white;
- z-index:10000;
- opacity:0.9;
- filter:alpha(opacity:90);
-}
-
-#footer a {
- color: white;
-}
-
-.footerheader
-{
- padding: 5px;
- text-align:center;
- background-image: url(footer_title_bg.png);
- background-position: bottom right;
-}
-
-.footermenu
-{
- /*border-top: solid white 1px; */
-}
-
-.footermenuitem
-{
- margin-top: 5px;
- margin-bottom: 5px;
- margin-right: 5px;
- margin-left: 25px;
- display: list-item;
- list-style: square outside;
-}
-
-.footermenumessage
-{
- margin: 5px;
-}
\ No newline at end of file
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/blue/base.css
--- a/static/light_hatched_style/blue/base.css
+++ /dev/null
@@ -1,295 +0,0 @@
-body
-{
- font: 75% verdana, "Bitstream Vera Sans", geneva, arial, helvetica, helve, sans-serif;
- background: white;
- color: #303030;
- background-image: url(base_bg.png);
- background-repeat: repeat-x;
- background-position: top;
- margin: 10px;
- margin-right: 15px;
- margin-left: 15px;
-}
-
-a:link, a:visited, a:active
-{
- color: #303030;
-}
-
-h1, h2, h3, h4
-{
- color: #023858;
- /*text-shadow: #bbb 2px 2px 1px;*/
-}
-
-hr
-{
- border: none;
- border-bottom: dotted #303030 1px;
-}
-
-div.toolForm
-{
- margin-right: -5px;
- margin-left: -5px;
-}
-
-div.toolFormTitle
-{
- background: #ebd9b2;
- background-image: url(form_title_bg.png);
- background-repeat: repeat-x;
- background-position: top;
- border-top: solid #d8b365 1px;
- border-bottom: solid #d8b365 1px;
- font-weight: bold;
- padding: 5px;
-}
-
-div.toolParamHelp
-{
- font-style: italic;
-}
-
-div.toolFormBody
-{
- background: white;
- border-bottom: solid #d8b365 1px;
- padding: 5px;
-}
-
-div.toolFormBody div.toolFormTitle
-{
- background: transparent;
- border: none;
- font-weight: bold;
- border-bottom: solid #d8b365 1px;
- margin-bottom: 5px;
-}
-
-div.toolHelp
-{
-}
-
-div.toolHelpBody
-{
- width: 100%;
- overflow: auto;
-}
-
-/* Forms */
-
-div.form-row
-{
- margin-bottom: 1em;
-}
-
-div.form-title-row
-{
- margin-bottom: 0.5em;
-}
-
-div.repeat-group-item
-{
- border-left: solid #d8b365 5px;
- padding-left: 10px;
-}
-
-div.form-row-error
-{
- background: #FFCCCC;
- padding: 5px;
-}
-
-div.form-row label
-{
- font-weight: bold;
- display: block;
- margin-bottom: .2em;
-}
-
-select
-{
- max-width: 300px;
-}
-
-.errormessage, .warningmessage, .donemessage, .infomessage, .welcomemessage
-{
- padding: 10px;
- padding-left: 52px;
- min-height: 32px;
- border-top: 1px solid #AA6666;
- border-bottom: 1px solid #AA6666;
- background-color: #FFCCCC;
- background-image: url(error_message_icon.png);
- background-repeat: no-repeat;
- background-position: 10px 10px;
-}
-
-.warningmessage
-{
- background-image: url(warn_message_icon.png);
- border-color: #AAAA66;
- background-color: #FFFFCC;
-}
-
-.donemessage
-{
- background-image: url(done_message_icon.png);
- border-color: #66AA66;
- background-color: #CCFFCC;
-}
-
-.infomessage
-{
- background-image: url(info_message_icon.png);
- border-color: #6666AA;
- background-color: #CCCCFF;
-}
-
-.welcomemessage {
- padding-left: 10px;
- border-color: #6666AA;
- background-color: #CCCCFF;
- background-image: none;
-}
-
-.errormessagesmall, .warningmessagesmall, .donemessagesmall, .infomessagesmall
-{
- padding: 5px;
- padding-left: 25px;
- min-height: 25px;
- border-top: 1px solid #AA6666;
- border-bottom: 1px solid #AA6666;
- background-color: #FFCCCC;
- background-image: url(error_small.png);
- background-repeat: no-repeat;
- background-position: 5px 5px;
-}
-
-.warningmessagesmall
-{
- background-image: url(warn_small.png);
- border-color: #AAAA66;
- background-color: #FFFFCC;
-}
-
-.donemessagesmall
-{
- background-image: url(ok_small.png);
- border-color: #66AA66;
- background-color: #CCFFCC;
-}
-
-.infomessagesmall
-{
- background-image: url(info_small.png);
- border-color: #6666AA;
- background-color: #CCCCFF;
-}
-
-.errormark, .warningmark, .donemark, .infomark, .ok_bgr, .err_bgr
-{
- padding-left: 20px;
- min-height: 15px;
- background: url(error_small.png) no-repeat;
-}
-
-.warningmark
-{
- background-image: url(warn_small.png);
-}
-
-.donemark
-{
- background-image: url(ok_small.png);
-}
-
-.infomark, .ok_bgr
-{
- background-image: url(info_small.png);
-}
-
-table.colored
-{
- border-top: solid #d8b365 1px;
- border-bottom: solid #d8b365 1px;
-}
-
-table.colored td
-{
- padding: 5px;
-}
-
-table.colored tr.header
-{
- background: #ebd9b2;
- background-image: url(form_title_bg.png);
- background-repeat: repeat-x;
- background-position: top;
- border-bottom: solid #d8b365 1px;
- font-weight: bold;
-}
-
-table.colored tr
-{
- background: white;
-}
-
-div.debug
-{
- margin: 10px;
- padding: 5px;
- background: #FFFF99;
- border: solid #FFFF33 1px;
- color: black;
-}
-
-div.odd_row
-{
- background: #FFFF99;
-}
-
-#footer {
- position: fixed;
- background: #023858;
- width: 100%;
- left: 0px;
- bottom: 0px;
- color: white;
- z-index:10000;
- opacity:0.9;
- filter:alpha(opacity:90);
-}
-
-#footer a {
- color: white;
-}
-
-.footerheader
-{
- padding: 5px;
- text-align:center;
- background-image: url(footer_title_bg.png);
- background-position: bottom right;
-}
-
-.footermenu
-{
- /*border-top: solid white 1px; */
-}
-
-.footermenuitem
-{
- margin-top: 5px;
- margin-bottom: 5px;
- margin-right: 5px;
- margin-left: 25px;
- display: list-item;
- list-style: square outside;
-}
-
-.footermenumessage
-{
- margin: 5px;
-}
\ No newline at end of file
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/blue/base_bg.png
Binary file static/light_hatched_style/blue/base_bg.png has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/blue/data_empty.png
Binary file static/light_hatched_style/blue/data_empty.png has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/blue/data_error.png
Binary file static/light_hatched_style/blue/data_error.png has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/blue/data_ok.png
Binary file static/light_hatched_style/blue/data_ok.png has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/blue/data_queued.png
Binary file static/light_hatched_style/blue/data_queued.png has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/blue/data_running.gif
Binary file static/light_hatched_style/blue/data_running.gif has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/blue/done_message_icon.png
Binary file static/light_hatched_style/blue/done_message_icon.png has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/blue/error_bg.png
Binary file static/light_hatched_style/blue/error_bg.png has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/blue/error_large.png
Binary file static/light_hatched_style/blue/error_large.png has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/blue/error_message_icon.png
Binary file static/light_hatched_style/blue/error_message_icon.png has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/blue/error_small.png
Binary file static/light_hatched_style/blue/error_small.png has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/blue/footer_title_bg.png
Binary file static/light_hatched_style/blue/footer_title_bg.png has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/blue/form_title_bg.png
Binary file static/light_hatched_style/blue/form_title_bg.png has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/blue/gray_bg.png
Binary file static/light_hatched_style/blue/gray_bg.png has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/blue/history.css
--- a/static/light_hatched_style/blue/history.css
+++ /dev/null
@@ -1,108 +0,0 @@
-body
-{
- background: white;
- color: #303030;
- background-image: url(menu_bg.png);
- background-repeat: repeat-x;
- background-position: top;
- margin-top: 5px;
- margin-right: 0;
- margin-left: 0;
- border: 0;
- padding: 0;
-}
-
-a
-{
- color: #base_text;
-}
-
-div.historyLinks
-{
- padding: 5px;
- margin: 5px;
-}
-
-div.historyItem
-{
- padding: 5px;
- padding-right: 15px;
- padding-left: 15px;
- margin-bottom: 5px;
-}
-
-div.historyItem-ok
-{
- padding: 5px;
- padding-right: 15px;
- padding-left: 15px;
- margin-bottom: 5px;
- border-top: solid #66AA66 1px;
- border-bottom: solid #66AA66 1px;
- background: #CCFFCC;
- background-image: url(ok_bg.png);
- background-repeat: repeat-x;
- background-position: top;
-
-}
-
-div.historyItem-error, div.historyItem-empty
-{
- padding: 5px;
- padding-right: 15px;
- padding-left: 15px;
- margin-bottom: 5px;
- border-top: solid #AA6666 1px;
- border-bottom: solid #AA6666 1px;
- background: #FFCCCC;
- background-image: url(error_bg.png);
- background-repeat: repeat-x;
- background-position: top;
-}
-
-div.historyItem-running
-{
- padding: 5px;
- padding-right: 15px;
- padding-left: 15px;
- margin-bottom: 5px;
- border-top: solid #AAAA66 1px;
- border-bottom: solid #AAAA66 1px;
- background: #FFFFCC;
- background-image: url(warn_bg.png);
- background-repeat: repeat-x;
- background-position: top;
-}
-
-div.historyItem-queued
-{
- padding: 5px;
- padding-right: 15px;
- padding-left: 15px;
- margin-bottom: 5px;
- border-top: solid #888888 1px;
- border-bottom: solid #888888 1px;
- background: #EEEEEE;
- background-image: url(gray_bg.png);
- background-repeat: repeat-x;
- background-position: top;
-}
-
-div.historyItemBody div
-{
- padding-top: 2px;
-}
-
-pre.peek
-{
- background: white;
- color: black;
- width: 100%;
- overflow: auto;
-}
-
-pre.peek th
-{
- color: white;
- background: #023858;
-}
\ No newline at end of file
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/blue/info_large.png
Binary file static/light_hatched_style/blue/info_large.png has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/blue/info_message_icon.png
Binary file static/light_hatched_style/blue/info_message_icon.png has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/blue/info_small.png
Binary file static/light_hatched_style/blue/info_small.png has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/blue/masthead.css
--- a/static/light_hatched_style/blue/masthead.css
+++ /dev/null
@@ -1,26 +0,0 @@
-body
-{
- background: #023858 url(masthead_bg.png) bottom;
- color: white;
- padding: 0;
- border: 0;
- margin: 3px;
- margin-right: 10px;
- margin-left: 10px;
-}
-
-div.pageTitle
-{
- font-size: 160%;
- font-weight: bold;
-}
-
-div.pageTitle a:link, div.pageTitle a:visited, div.pageTitle a:active, div.pageTitle a:hover
-{
- text-decoration: none;
-}
-
-a:link, a:visited, a:active
-{
- color: #ece7f2;
-}
\ No newline at end of file
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/blue/masthead_bg.png
Binary file static/light_hatched_style/blue/masthead_bg.png has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/blue/menu_bg.png
Binary file static/light_hatched_style/blue/menu_bg.png has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/blue/ok_bg.png
Binary file static/light_hatched_style/blue/ok_bg.png has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/blue/ok_large.png
Binary file static/light_hatched_style/blue/ok_large.png has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/blue/ok_small.png
Binary file static/light_hatched_style/blue/ok_small.png has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/blue/tool_menu.css
--- a/static/light_hatched_style/blue/tool_menu.css
+++ /dev/null
@@ -1,46 +0,0 @@
-body
-{
- background: white;
- color: #303030;
- background: white url(menu_bg.png) top repeat-x;
- margin: 5px;
- margin-right: 15px;
- margin-left: 15px;
-}
-
-hr
-{
- border: none;
- height: 0px;
- margin-top: 0px;
-}
-
-div.toolSectionPad
-{
- margin: 0;
- padding: 0;
- height: 5px;
- font-size: 0px;
-}
-
-div.toolSectionDetailsInner
-{
- margin-left: 10px;
- margin-right: 10px;
-}
-
-div.toolSectionTitle
-{
- padding-bottom: 0px;
- font-weight: bold;
-}
-
-div.toolTitle
-{
- padding-top: 5px;
- padding-bottom: 5px;
- margin-left: 16px;
- margin-right: 10px;
- display: list-item;
- list-style: square outside;
-}
\ No newline at end of file
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/blue/wait_large.png
Binary file static/light_hatched_style/blue/wait_large.png has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/blue/wait_small.png
Binary file static/light_hatched_style/blue/wait_small.png has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/blue/warn_bg.png
Binary file static/light_hatched_style/blue/warn_bg.png has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/blue/warn_large.png
Binary file static/light_hatched_style/blue/warn_large.png has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/blue/warn_message_icon.png
Binary file static/light_hatched_style/blue/warn_message_icon.png has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/blue/warn_small.png
Binary file static/light_hatched_style/blue/warn_small.png has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/blue_colors.ini
--- a/static/light_hatched_style/blue_colors.ini
+++ /dev/null
@@ -1,43 +0,0 @@
-base_text=#303030
-base_bg_top=#EEEEFF
-link_text=#303030
-header_text=#023858
-menu_bg_top=#CCCCFF
-menu_bg_hatch=#AAAAFF
-# Forms
-form_title_bg=#ebd9b2
-form_title_bg_hatch=#d2c099
-form_border=#d8b365
-form_body_bg=white
-odd_row_bg=#FFFF99
-# Messages
-error_message_border=#AA6666
-error_message_bg=#FFCCCC
-warn_message_border=#AAAA66
-warn_message_bg=#FFFFCC
-done_message_border=#66AA66
-done_message_bg=#CCFFCC
-info_message_border=#6666AA
-info_message_bg=#CCCCFF
-# Tables
-table_header_bg=#ebd9b2
-table_row_bg=white
-table_border=#d8b365
-# Footers
-footer_bg=#023858
-footer_title_bg=#023858
-footer_title_hatch=#000000
-# History
-history_error_border=#AA6666
-history_error_bg=#FFCCCC
-history_running_border=#AAAA66
-history_running_bg=#FFFFCC
-history_ok_border=#66AA66
-history_ok_bg=#CCFFCC
-history_queued_border=#888888
-history_queued_bg=#EEEEEE
-peek_table_header=#023858
-# Masthead
-masthead_bg=#023858
-masthead_bg_hatch=#000000
-masthead_link=#ece7f2
\ No newline at end of file
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/galaxy_icons.svg
--- a/static/light_hatched_style/galaxy_icons.svg
+++ /dev/null
@@ -1,345 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://web.resource.org/cc/"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="24in"
- height="4in"
- id="svg2"
- sodipodi:version="0.32"
- inkscape:version="0.43"
- version="1.0"
- sodipodi:docbase="/Users/james/Desktop"
- sodipodi:docname="galaxy_icons.svg"
- inkscape:export-filename="/Users/james/Desktop/galaxy_icons.png"
- inkscape:export-xdpi="90"
- inkscape:export-ydpi="90">
- <defs
- id="defs4" />
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#66f266"
- borderopacity="1"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="0.87055056"
- inkscape:cx="1969.2512"
- inkscape:cy="134.59503"
- inkscape:document-units="px"
- inkscape:current-layer="layer1"
- inkscape:showpageshadow="false"
- showgrid="true"
- showguides="false"
- inkscape:guide-bbox="true"
- inkscape:window-width="956"
- inkscape:window-height="784"
- inkscape:window-x="161"
- inkscape:window-y="46"
- inkscape:grid-points="true">
- <sodipodi:guide
- orientation="vertical"
- position="400"
- id="guide2200" />
- <sodipodi:guide
- orientation="horizontal"
- position="320"
- id="guide2204" />
- <sodipodi:guide
- orientation="horizontal"
- position="42"
- id="guide2206" />
- <sodipodi:guide
- orientation="vertical"
- position="41"
- id="guide2208" />
- <sodipodi:guide
- orientation="vertical"
- position="321"
- id="guide2210" />
- <sodipodi:guide
- orientation="vertical"
- position="678"
- id="guide2212" />
- <sodipodi:guide
- orientation="vertical"
- position="759"
- id="guide2214" />
- <sodipodi:guide
- orientation="vertical"
- position="1120"
- id="guide2218" />
- <sodipodi:guide
- orientation="vertical"
- position="1038.0328"
- id="guide2240" />
- <sodipodi:guide
- orientation="horizontal"
- position="179.60512"
- id="guide2274" />
- <sodipodi:guide
- orientation="vertical"
- position="1260.0643"
- id="guide2276" />
- <sodipodi:guide
- orientation="vertical"
- position="1482.0958"
- id="guide2336" />
- <sodipodi:guide
- orientation="vertical"
- position="1759.2817"
- id="guide2340" />
- <sodipodi:guide
- orientation="vertical"
- position="1841.3061"
- id="guide2363" />
- </sodipodi:namedview>
- <metadata
- id="metadata7">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- inkscape:label="Layer 1"
- inkscape:groupmode="layer"
- id="layer1">
- <path
- sodipodi:type="arc"
- style="fill:#04cd00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- id="path1307"
- sodipodi:cx="205"
- sodipodi:cy="205"
- sodipodi:rx="134.28572"
- sodipodi:ry="134.28572"
- d="M 339.28572 205 A 134.28572 134.28572 0 1 1 70.714279,205 A 134.28572 134.28572 0 1 1 339.28572 205 z"
- transform="matrix(1.034976,0,0,1.034976,-31.24154,-32.6701)" />
- <path
- sodipodi:type="arc"
- style="fill:#838383;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- id="path2220"
- sodipodi:cx="205"
- sodipodi:cy="205"
- sodipodi:rx="134.28572"
- sodipodi:ry="134.28572"
- d="M 339.28572 205 A 134.28572 134.28572 0 1 1 70.714279,205 A 134.28572 134.28572 0 1 1 339.28572 205 z"
- transform="matrix(1.034976,0,0,1.034976,1047.812,-33.15258)" />
- <rect
- style="fill:#5050ff;fill-opacity:1;stroke:none;stroke-width:40;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- id="rect2224"
- width="277"
- height="278"
- x="401"
- y="43"
- ry="103"
- rx="103" />
- <path
- style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffffff;stroke-width:40;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- d="M 498.7868,172 L 541.58579,172 L 541.58579,278.00505"
- id="path2230"
- sodipodi:nodetypes="ccc" />
- <path
- sodipodi:type="arc"
- style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:40.00038147;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- id="path2232"
- sodipodi:cx="501.33871"
- sodipodi:cy="84.935463"
- sodipodi:rx="6.3639612"
- sodipodi:ry="6.3639612"
- d="M 507.70268 84.935463 A 6.3639612 6.3639612 0 1 1 494.97475,84.935463 A 6.3639612 6.3639612 0 1 1 507.70268 84.935463 z"
- transform="matrix(1.0731,0,0,0.951722,-0.622656,25.52899)" />
- <path
- sodipodi:type="star"
- style="fill:#ffb400;fill-opacity:1;stroke:none;stroke-width:50;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- id="path2254"
- sodipodi:sides="3"
- sodipodi:cx="885.29767"
- sodipodi:cy="14.931891"
- sodipodi:r1="517.84943"
- sodipodi:r2="344.36987"
- sodipodi:arg1="0.50762901"
- sodipodi:arg2="1.5548266"
- inkscape:flatsided="false"
- inkscape:rounded="0.22"
- inkscape:randomized="0"
- d="M 1337.846,266.66192 C 1289.0223,354.43494 991.22247,357.65394 890.79693,359.25785 C 790.37139,360.86176 492.62068,367.15437 441.01889,280.98526 C 389.41709,194.81614 535.52926,-64.695565 584.35301,-152.46859 C 633.17675,-240.24161 776.60255,-501.2476 877.02809,-502.8515 C 977.45363,-504.45541 1129.1413,-248.1627 1180.7431,-161.99359 C 1232.3449,-75.824474 1386.6698,178.8889 1337.846,266.66192 z "
- transform="matrix(0.306393,0,0,0.318225,624.2074,203.0224)" />
- <path
- style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffffff;stroke-width:40;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- d="M 113.97056,196.98066 L 168.17157,236.85786 L 248.34315,104.65685"
- id="path2270"
- sodipodi:nodetypes="ccc" />
- <path
- style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffffff;stroke-width:40;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- d="M 1177.1421,96.07107 L 1263.1421,190 L 1317.1217,162.2807"
- id="path2272"
- sodipodi:nodetypes="ccc" />
- <rect
- style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:40;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- id="rect2280"
- width="29.446899"
- height="21"
- x="1140.5531"
- y="170"
- ry="0" />
- <rect
- style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:40;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- id="rect2326"
- width="29.446899"
- height="21"
- x="1351.5531"
- y="169.77354"
- ry="0" />
- <rect
- style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:40;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- id="rect2328"
- width="29.446899"
- height="21"
- x="60.260208"
- y="-1271.2715"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:40;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- id="rect2330"
- width="29.446899"
- height="21"
- x="270"
- y="-1270.5857"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:40;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- id="rect2332"
- width="131"
- height="52"
- x="100"
- y="-920.58582"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:40;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- id="rect2334"
- width="39.027634"
- height="52"
- x="250"
- y="-919.87872"
- ry="0"
- transform="matrix(0,1,-1,0,0,0)" />
- <path
- sodipodi:type="arc"
- style="fill:#ff4343;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- id="path2338"
- sodipodi:cx="205"
- sodipodi:cy="205"
- sodipodi:rx="134.28572"
- sodipodi:ry="134.28572"
- d="M 339.28572 205 A 134.28572 134.28572 0 1 1 70.714279,205 A 134.28572 134.28572 0 1 1 339.28572 205 z"
- transform="matrix(1.034976,0,0,1.034976,1409.347,-33.15258)" />
- <path
- style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffffff;stroke-width:40;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- d="M 1552.0629,100.60072 L 1692.5138,254.57128"
- id="path2348"
- sodipodi:nodetypes="cc" />
- <path
- style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffffff;stroke-width:40;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- d="M 1692.5138,100.60072 L 1552.0629,254.57128"
- id="path2357"
- sodipodi:nodetypes="cc" />
- <path
- sodipodi:type="arc"
- style="fill:#838383;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- id="path2359"
- sodipodi:cx="205"
- sodipodi:cy="205"
- sodipodi:rx="134.28572"
- sodipodi:ry="134.28572"
- d="M 339.28572 205 A 134.28572 134.28572 0 1 1 70.714279,205 A 134.28572 134.28572 0 1 1 339.28572 205 z"
- transform="matrix(1.034976,0,0,1.034976,1768.416,-30.36099)" />
- <g
- id="g2389">
- <path
- sodipodi:nodetypes="ccccc"
- id="path2373"
- d="M 1930,170.49538 L 1860,155 C 1857.0248,172.3719 1855.5,189.5625 1860,206 L 1930,189.58727 C 1929.1741,183.22331 1928.9462,176.85934 1930,170.49538 z "
- style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- <path
- sodipodi:nodetypes="ccccc"
- id="path2375"
- d="M 1941,146.46593 L 1888.1259,98.046542 C 1875.1851,112.76897 1868.0802,127.49141 1862.6259,142.21384 L 1931.4541,163 C 1933.471,155.74098 1937.1235,150.93552 1941,146.46593 z "
- style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- <path
- sodipodi:nodetypes="ccccc"
- id="path2377"
- d="M 1963.7479,130.36947 L 1942.1673,62 C 1927,66 1912.7224,73.141087 1898,87.50001 L 1947.2139,139.91545 C 1952.1833,135.10778 1957.8405,132.36324 1963.7479,130.36947 z "
- style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- </g>
- <g
- id="g2394"
- transform="matrix(0,1,-1,0,2161,-1801.748)">
- <path
- sodipodi:nodetypes="ccccc"
- id="path2396"
- d="M 1930,170.49538 L 1860,155 C 1857.0248,172.3719 1855.5,189.5625 1860,206 L 1930,189.58727 C 1929.1741,183.22331 1928.9462,176.85934 1930,170.49538 z "
- style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- <path
- sodipodi:nodetypes="ccccc"
- id="path2398"
- d="M 1941,146.46593 L 1888.1259,98.046542 C 1875.1851,112.76897 1868.0802,127.49141 1862.6259,142.21384 L 1931.4541,163 C 1933.471,155.74098 1937.1235,150.93552 1941,146.46593 z "
- style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- <path
- sodipodi:nodetypes="ccccc"
- id="path2400"
- d="M 1963.7479,130.36947 L 1942.1673,62 C 1927,66 1912.7224,73.141087 1898,87.50001 L 1947.2139,139.91545 C 1952.1833,135.10778 1957.8405,132.36324 1963.7479,130.36947 z "
- style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- </g>
- <g
- id="g2402"
- transform="matrix(-1,0,0,-1,3962.168,360.1885)">
- <path
- sodipodi:nodetypes="ccccc"
- id="path2404"
- d="M 1930,170.49538 L 1860,155 C 1857.0248,172.3719 1855.5,189.5625 1860,206 L 1930,189.58727 C 1929.1741,183.22331 1928.9462,176.85934 1930,170.49538 z "
- style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- <path
- sodipodi:nodetypes="ccccc"
- id="path2406"
- d="M 1941,146.46593 L 1888.1259,98.046542 C 1875.1851,112.76897 1868.0802,127.49141 1862.6259,142.21384 L 1931.4541,163 C 1933.471,155.74098 1937.1235,150.93552 1941,146.46593 z "
- style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- <path
- sodipodi:nodetypes="ccccc"
- id="path2408"
- d="M 1963.7479,130.36947 L 1942.1673,62 C 1927,66 1912.7224,73.141087 1898,87.50001 L 1947.2139,139.91545 C 1952.1833,135.10778 1957.8405,132.36324 1963.7479,130.36947 z "
- style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- </g>
- <g
- id="g2410"
- transform="matrix(0,-1,1,0,1800.429,2161.522)">
- <path
- sodipodi:nodetypes="ccccc"
- id="path2412"
- d="M 1930,170.49538 L 1860,155 C 1857.0248,172.3719 1855.5,189.5625 1860,206 L 1930,189.58727 C 1929.1741,183.22331 1928.9462,176.85934 1930,170.49538 z "
- style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- <path
- sodipodi:nodetypes="ccccc"
- id="path2414"
- d="M 1941,146.46593 L 1888.1259,98.046542 C 1875.1851,112.76897 1868.0802,127.49141 1862.6259,142.21384 L 1931.4541,163 C 1933.471,155.74098 1937.1235,150.93552 1941,146.46593 z "
- style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- <path
- sodipodi:nodetypes="ccccc"
- id="path2416"
- d="M 1963.7479,130.36947 L 1942.1673,62 C 1927,66 1912.7224,73.141087 1898,87.50001 L 1947.2139,139.91545 C 1952.1833,135.10778 1957.8405,132.36324 1963.7479,130.36947 z "
- style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- </g>
- </g>
-</svg>
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/galaxy_spinner.fla
Binary file static/light_hatched_style/galaxy_spinner.fla has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/gradient.py
--- a/static/light_hatched_style/gradient.py
+++ /dev/null
@@ -1,74 +0,0 @@
-#!/usr/bin/env python
-
-"""
-usage: %prog width height bg_color hatch_color [color alpha stop_pos] +
-"""
-
-from __future__ import division
-
-import sys
-import cairo
-
-assert sys.version_info[:2] >= ( 2, 4 )
-
-def parse_css_color( color ):
- if color.startswith( '#' ):
- color = color[1:]
- if len( color ) == 3:
- r = int( color[0], 16 )
- g = int( color[1], 16 )
- b = int( color[2], 16 )
- elif len( color ) == 6:
- r = int( color[0:2], 16 )
- g = int( color[2:4], 16 )
- b = int( color[4:6], 16 )
- else:
- raise Exception( "Color should be 3 hex numbers" )
- return r/256, g/256, b/256
-
-def gradient( width, height, args ):
- pat = cairo.LinearGradient(0.0, 0.0, 0.0, height)
- while len( args ) > 2:
- col = parse_css_color( args[0] )
- alpha = float( args[1])
- pos = float( args[2] )
- pat.add_color_stop_rgba( pos, col[0], col[1], col[2], alpha )
- args = args[3:]
- return pat
-
-def hatch( width, height, color ):
- im_surf = cairo.ImageSurface( cairo.FORMAT_ARGB32, width, width )
- c = cairo.Context( im_surf )
- c.set_source_rgb ( *color )
- c.set_line_width( 0.75 )
- for i in range( 0, 2*max(height,width), 3 ):
- c.move_to ( 0-10, i+10 )
- c.line_to ( width+10, i - width - 10 )
- c.stroke()
- pat = cairo.SurfacePattern( im_surf )
- pat.set_extend (cairo.EXTEND_REPEAT)
- return pat
-
-width = int( sys.argv[1] )
-height = int( sys.argv[2] )
-
-surface = cairo.ImageSurface( cairo.FORMAT_ARGB32, width, height )
-c = cairo.Context( surface )
-
-c.rectangle(0,0,width,height)
-c.set_source_rgb( *parse_css_color( sys.argv[3] ) )
-c.fill()
-
-if sys.argv[4] != "-":
- c.rectangle (0, 0, width, height)
- c.set_source( hatch( width, height, parse_css_color( sys.argv[4] ) ) )
- c.fill()
-
-pat = cairo.LinearGradient(0.0, 0.0, 0.0, height)
-pat.add_color_stop_rgba( 0, 1, 1, 1, 0 )
-pat.add_color_stop_rgba( 1, 1, 1, 1, 1 )
-c.rectangle (0, 0, width, height)
-c.set_source( gradient( width, height, sys.argv[5:] ) )
-c.fill()
-
-surface.write_to_png( "/dev/stdout" )
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/green/base.css
--- a/static/light_hatched_style/green/base.css
+++ /dev/null
@@ -1,231 +0,0 @@
-body
-{
- font: 75% verdana, "Bitstream Vera Sans", geneva, arial, helvetica, helve, sans-serif;
- background: white;
- color: #303030;
- background-image: url(/static/style/base_bg.png);
- background-repeat: repeat-x;
- background-position: top;
- margin: 10px;
- margin-right: 15px;
- margin-left: 15px;
-}
-
-a:link, a:visited, a:active
-{
- color: #303030;
-}
-
-h1, h2, h3, h4
-{
- color: #025838;
- /*text-shadow: #bbb 2px 2px 1px;*/
-}
-
-hr
-{
- border: none;
- border-bottom: dotted #303030 1px;
-}
-
-div.toolForm
-{
- margin-right: -5px;
- margin-left: -5px;
-}
-
-div.toolFormTitle
-{
- background: #ebd9b2;
- background-image: url(/static/style/form_title_bg.png);
- background-repeat: repeat-x;
- background-position: top;
- border-top: solid #d8b365 1px;
- border-bottom: solid #d8b365 1px;
- font-weight: bold;
- padding: 5px;
-}
-
-div.toolParamHelp
-{
- font-style: italic;
-}
-
-div.toolFormBody
-{
- background: white;
- border-bottom: solid #d8b365 1px;
- padding: 5px;
-}
-
-div.toolHelp
-{
-}
-
-div.toolHelpBody
-{
-}
-
-select
-{
- max-width: 300px;
-}
-
-.errormessage, .warningmessage, .donemessage, .infomessage
-{
- padding: 10px;
- padding-left: 52px;
- min-height: 32px;
- border-top: 1px solid #AA6666;
- border-bottom: 1px solid #AA6666;
- background-color: #FFCCCC;
- background-image: url(/static/style/error_large.png);
- background-repeat: no-repeat;
- background-position: 10px 10px;
-}
-
-.warningmessage
-{
- background-image: url(/static/style/warn_large.png);
- border-color: #AAAA66;
- background-color: #FFFFCC;
-}
-
-.donemessage
-{
- background-image: url(/static/style/ok_large.png);
- border-color: #66AA66;
- background-color: #CCFFCC;
-}
-
-.infomessage
-{
- background-image: url(/static/style/info_large.png);
- border-color: #6666AA;
- background-color: #CCCCFF;
-}
-
-.errormessagesmall, .warningmessagesmall, .donemessagesmall, .infomessagesmall
-{
- padding: 5px;
- padding-left: 25px;
- min-height: 25px;
- border-top: 1px solid #AA6666;
- border-bottom: 1px solid #AA6666;
- background-color: #FFCCCC;
- background-image: url(/static/style/error_small.png);
- background-repeat: no-repeat;
- background-position: 5px 5px;
-}
-
-.warningmessagesmall
-{
- background-image: url(/static/style/warn_small.png);
- border-color: #AAAA66;
- background-color: #FFFFCC;
-}
-
-.donemessagesmall
-{
- background-image: url(/static/style/ok_small.png);
- border-color: #66AA66;
- background-color: #CCFFCC;
-}
-
-.infomessagesmall
-{
- background-image: url(/static/style/info_small.png);
- border-color: #6666AA;
- background-color: #CCCCFF;
-}
-
-.errormark, .warningmark, .donemark, .infomark, .ok_bgr, .err_bgr
-{
- padding-left: 20px;
- min-height: 15px;
- background: url(/static/style/error_small.png) no-repeat;
-}
-
-.warningmark
-{
- background-image: url(/static/style/warn_small.png);
-}
-
-.donemark
-{
- background-image: url(/static/style/ok_small.png);
-}
-
-.infomark, .ok_bgr
-{
- background-image: url(/static/style/info_small.png);
-}
-
-table.colored td
-{
- padding: 5px;
-}
-
-table.colored tr.header
-{
- background: #ebb2d9;
- font-weight: bold;
-}
-
-table.colored tr
-{
- background: white;
-}
-
-div.debug
-{
- margin: 10px;
- padding: 5px;
- background: #FFFF99;
- border: solid #FFFF33 1px;
- color: black;
-}
-
-#footer {
- position: fixed;
- background: #025838;
- width: 100%;
- left: 0px;
- bottom: 0px;
- color: white;
- z-index:10000;
- opacity:0.9;
- filter:alpha(opacity:90);
-}
-
-#footer a {
- color: white;
-}
-
-.footerheader
-{
- padding: 5px;
- text-align:center;
- background-image: url(/static/style/footer_title_bg.png);
- background-position: bottom;
-}
-
-.footermenu
-{
- /*border-top: solid white 1px; */
-}
-
-.footermenuitem
-{
- margin-top: 5px;
- margin-bottom: 5px;
- margin-right: 5px;
- margin-left: 25px;
- display: list-item;
- list-style: square outside;
-}
-
-.footermenumessage
-{
- margin: 5px;
-}
\ No newline at end of file
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/green/base_bg.png
Binary file static/light_hatched_style/green/base_bg.png has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/green/error_bg.png
Binary file static/light_hatched_style/green/error_bg.png has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/green/footer_title_bg.png
Binary file static/light_hatched_style/green/footer_title_bg.png has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/green/form_title_bg.png
Binary file static/light_hatched_style/green/form_title_bg.png has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/green/gray_bg.png
Binary file static/light_hatched_style/green/gray_bg.png has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/green/history.css
--- a/static/light_hatched_style/green/history.css
+++ /dev/null
@@ -1,102 +0,0 @@
-body
-{
- background: white;
- color: #303030;
- background-image: url(/static/style/menu_bg.png);
- background-repeat: repeat-x;
- background-position: top;
- margin-top: 5px;
- margin-right: 0;
- margin-left: 0;
- border: 0;
- padding: 0;
-}
-
-a
-{
- color: #base_text;
-}
-
-div.historyItem
-{
- padding: 5px;
- padding-right: 15px;
- padding-left: 15px;
- margin-bottom: 5px;
-}
-
-div.historyItem-ok
-{
- padding: 5px;
- padding-right: 15px;
- padding-left: 15px;
- margin-bottom: 5px;
- border-top: solid #66AA66 1px;
- border-bottom: solid #66AA66 1px;
- background: #CCFFCC;
- background-image: url(/static/style/ok_bg.png);
- background-repeat: repeat-x;
- background-position: top;
-
-}
-
-div.historyItem-error
-{
- padding: 5px;
- padding-right: 15px;
- padding-left: 15px;
- margin-bottom: 5px;
- border-top: solid #AA6666 1px;
- border-bottom: solid #AA6666 1px;
- background: #FFCCCC;
- background-image: url(/static/style/error_bg.png);
- background-repeat: repeat-x;
- background-position: top;
-}
-
-div.historyItem-running
-{
- padding: 5px;
- padding-right: 15px;
- padding-left: 15px;
- margin-bottom: 5px;
- border-top: solid #AAAA66 1px;
- border-bottom: solid #AAAA66 1px;
- background: #FFFFCC;
- background-image: url(/static/style/warn_bg.png);
- background-repeat: repeat-x;
- background-position: top;
-}
-
-div.historyItem-queued
-{
- padding: 5px;
- padding-right: 15px;
- padding-left: 15px;
- margin-bottom: 5px;
- border-top: solid #888888 1px;
- border-bottom: solid #888888 1px;
- background: #EEEEEE;
- background-image: url(/static/style/gray_bg.png);
- background-repeat: repeat-x;
- background-position: top;
-}
-
-div.historyItemBody div
-{
- padding-top: 2px;
-}
-
-pre.peek
-{
- background: white;
- color: black;
- width: 100%;
- overflow: auto;
-}
-
-pre.peek th
-{
- color: white;
- background: #023858;
-}
\ No newline at end of file
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/green/masthead.css
--- a/static/light_hatched_style/green/masthead.css
+++ /dev/null
@@ -1,26 +0,0 @@
-body
-{
- background: #025838 url(/static/style/masthead_bg.png) bottom;
- color: white;
- padding: 0;
- border: 0;
- margin: 3px;
- margin-right: 10px;
- margin-left: 10px;
-}
-
-div.pageTitle
-{
- font-size: x-large;
- font-weight: bold;
-}
-
-div.pageTitle a:link, div.pageTitle a:visited, div.pageTitle a:active, div.pageTitle a:hover
-{
- text-decoration: none;
-}
-
-a:link, a:visited, a:active
-{
- color: #ecf2e7;
-}
\ No newline at end of file
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/green/masthead_bg.png
Binary file static/light_hatched_style/green/masthead_bg.png has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/green/menu_bg.png
Binary file static/light_hatched_style/green/menu_bg.png has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/green/ok_bg.png
Binary file static/light_hatched_style/green/ok_bg.png has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/green/tool_menu.css
--- a/static/light_hatched_style/green/tool_menu.css
+++ /dev/null
@@ -1,38 +0,0 @@
-body
-{
- background: white;
- color: #303030;
- background: white url(/static/style/menu_bg.png) top repeat-x;
- margin: 10px;
- margin-right: 15px;
- margin-left: 15px;
-}
-
-hr
-{
- border: none;
- height: 0px;
- margin-top: 2px;
-}
-
-div.toolSectionDetailsInner
-{
- margin-left: 10px;
- margin-right: 10px;
-}
-
-div.toolSectionTitle
-{
- padding-bottom: 5px;
- font-weight: bold;
-}
-
-div.toolTitle
-{
- padding-top: 5px;
- padding-bottom: 5px;
- margin-left: 16px;
- margin-right: 10px;
- display: list-item;
- list-style: square outside;
-}
\ No newline at end of file
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/green/warn_bg.png
Binary file static/light_hatched_style/green/warn_bg.png has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/green_colors.ini
--- a/static/light_hatched_style/green_colors.ini
+++ /dev/null
@@ -1,42 +0,0 @@
-base_text=#303030
-base_bg_top=#EEFFEE
-link_text=#303030
-header_text=#025838
-menu_bg_top=#DDFFDD
-menu_bg_hatch=#99FF99
-# Forms
-form_title_bg=#ebd9b2
-form_title_bg_hatch=#b9a780
-form_border=#d8b365
-form_body_bg=white
-odd_row_bg=#FFFF99
-# Messages
-error_message_border=#AA6666
-error_message_bg=#FFCCCC
-warn_message_border=#AAAA66
-warn_message_bg=#FFFFCC
-done_message_border=#66AA66
-done_message_bg=#CCFFCC
-info_message_border=#6666AA
-info_message_bg=#CCCCFF
-# Tables
-table_header_bg=#ebb2d9
-table_row_bg=white
-# Footers
-footer_bg=#025838
-footer_title_bg=#025838
-footer_title_hatch=#000000
-# History
-history_error_border=#AA6666
-history_error_bg=#FFCCCC
-history_running_border=#AAAA66
-history_running_bg=#FFFFCC
-history_ok_border=#66AA66
-history_ok_bg=#CCFFCC
-history_queued_border=#888888
-history_queued_bg=#EEEEEE
-peek_table_header=#023858
-# Masthead
-masthead_bg=#025838
-masthead_bg_hatch=#000000
-masthead_link=#ecf2e7
\ No newline at end of file
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/history.css.tmpl
--- a/static/light_hatched_style/history.css.tmpl
+++ /dev/null
@@ -1,108 +0,0 @@
-body
-{
- background: white;
- color: $base_text;
- background-image: url(menu_bg.png);
- background-repeat: repeat-x;
- background-position: top;
- margin-top: 5px;
- margin-right: 0;
- margin-left: 0;
- border: 0;
- padding: 0;
-}
-
-a
-{
- color: #base_text;
-}
-
-div.historyLinks
-{
- padding: 5px;
- margin: 5px;
-}
-
-div.historyItem
-{
- padding: 5px;
- padding-right: 15px;
- padding-left: 15px;
- margin-bottom: 5px;
-}
-
-div.historyItem-ok
-{
- padding: 5px;
- padding-right: 15px;
- padding-left: 15px;
- margin-bottom: 5px;
- border-top: solid $history_ok_border 1px;
- border-bottom: solid $history_ok_border 1px;
- background: $history_ok_bg;
- background-image: url(ok_bg.png);
- background-repeat: repeat-x;
- background-position: top;
-
-}
-
-div.historyItem-error, div.historyItem-empty
-{
- padding: 5px;
- padding-right: 15px;
- padding-left: 15px;
- margin-bottom: 5px;
- border-top: solid $history_error_border 1px;
- border-bottom: solid $history_error_border 1px;
- background: $history_error_bg;
- background-image: url(error_bg.png);
- background-repeat: repeat-x;
- background-position: top;
-}
-
-div.historyItem-running
-{
- padding: 5px;
- padding-right: 15px;
- padding-left: 15px;
- margin-bottom: 5px;
- border-top: solid $history_running_border 1px;
- border-bottom: solid $history_running_border 1px;
- background: $history_running_bg;
- background-image: url(warn_bg.png);
- background-repeat: repeat-x;
- background-position: top;
-}
-
-div.historyItem-queued
-{
- padding: 5px;
- padding-right: 15px;
- padding-left: 15px;
- margin-bottom: 5px;
- border-top: solid $history_queued_border 1px;
- border-bottom: solid $history_queued_border 1px;
- background: $history_queued_bg;
- background-image: url(gray_bg.png);
- background-repeat: repeat-x;
- background-position: top;
-}
-
-div.historyItemBody div
-{
- padding-top: 2px;
-}
-
-pre.peek
-{
- background: white;
- color: black;
- width: 100%;
- overflow: auto;
-}
-
-pre.peek th
-{
- color: white;
- background: $peek_table_header;
-}
\ No newline at end of file
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/make_style.py
--- a/static/light_hatched_style/make_style.py
+++ /dev/null
@@ -1,64 +0,0 @@
-#!/usr/bin/env python
-
-import sys
-from Cheetah.Template import Template
-import string
-from subprocess import Popen, PIPE
-import os.path
-
-assert sys.version_info[:2] >= ( 2, 4 )
-
-def run( cmd ):
- return Popen( cmd, stdout=PIPE).communicate()[0]
-
-templates = [ ( "base.css.tmpl", "base.css" ),
- ( "masthead.css.tmpl", "masthead.css"),
- ( "history.css.tmpl", "history.css" ),
- ( "tool_menu.css.tmpl", "tool_menu.css" ) ]
-
-images = [ ( "./gradient.py 9 1000 $menu_bg_top $menu_bg_hatch FFFFFF 0 0 FFFFFF 1 1", "menu_bg.png" ),
- ( "./gradient.py 9 1000 $base_bg_top - FFFFFF 0 0 FFFFFF 1 1", "base_bg.png" ),
- ( "./gradient.py 9 50 $masthead_bg $masthead_bg_hatch 000000 0 0.5 000000 1 1", "masthead_bg.png" ),
- ( "./gradient.py 9 30 $footer_title_bg $footer_title_hatch 000000 0 0.5 000000 1 1", "footer_title_bg.png" ),
- ( "./gradient.py 9 50 $form_title_bg $form_title_bg_hatch FFFFFF 0 0 FFFFFF 0.5 1", "form_title_bg.png" ),
- ( "./gradient.py 9 200 $history_ok_bg - FFFFFF 0 0.5 FFFFFF 0.5 1", "ok_bg.png" ),
- ( "./gradient.py 9 200 $history_error_bg - FFFFFF 0 0.5 FFFFFF 0.5 1", "error_bg.png" ),
- ( "./gradient.py 9 200 $history_running_bg - FFFFFF 0 0.5 FFFFFF 0.5 1", "warn_bg.png" ),
- ( "./gradient.py 9 200 $history_queued_bg - FFFFFF 0 0.5 FFFFFF 0.5 1", "gray_bg.png" ) ]
-
-shared_images = [
- # Dialog boxes
- ( "ok_large.png", "done_message_bg", "done_message_icon.png" ),
- ( "info_large.png", "info_message_bg", "info_message_icon.png" ),
- ( "warn_large.png", "warn_message_bg", "warn_message_icon.png" ),
- ( "error_large.png", "error_message_bg", "error_message_icon.png" ),
- # History icons
- ( "ok_small.png", "history_ok_bg", "data_ok.png" ),
- ( "error_small.png", "history_error_bg", "data_error.png" ),
- ( "wait_small.png", "history_queued_bg", "data_queued.png" ) ]
-
-
-vars, out_dir = sys.argv[1:]
-
-context = dict()
-for line in open( vars ):
- if line.startswith( '#' ):
- continue
- key, value = line.rstrip("\r\n").split( '=' )
- if value.startswith( '"' ) and value.endswith( '"' ):
- value = value[1:-1]
- context[key] = value
-
-for input, output in templates:
- print input ,"->", output
- open( os.path.join( out_dir, output ), "w" ).write( str( Template( file=input, searchList=[context] ) ) )
-
-for rule, output in images:
- t = string.Template( rule ).substitute( context )
- print t, "->", output
- open( os.path.join( out_dir, output ), "w" ).write( run( t.split() ) )
-
-for src, bg, out in shared_images:
- t = "./png_over_color.py shared_images/%s %s %s" % ( src, context[bg], os.path.join( out_dir, out ) )
- print t
- run( t.split() )
\ No newline at end of file
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/masthead.css.tmpl
--- a/static/light_hatched_style/masthead.css.tmpl
+++ /dev/null
@@ -1,26 +0,0 @@
-body
-{
- background: $masthead_bg url(masthead_bg.png) bottom;
- color: white;
- padding: 0;
- border: 0;
- margin: 3px;
- margin-right: 10px;
- margin-left: 10px;
-}
-
-div.pageTitle
-{
- font-size: 160%;
- font-weight: bold;
-}
-
-div.pageTitle a:link, div.pageTitle a:visited, div.pageTitle a:active, div.pageTitle a:hover
-{
- text-decoration: none;
-}
-
-a:link, a:visited, a:active
-{
- color: $masthead_link;
-}
\ No newline at end of file
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/png_over_color.py
--- a/static/light_hatched_style/png_over_color.py
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/usr/bin/env python
-
-import sys
-import Image
-import ImageColor
-
-assert sys.version_info[:2] >= ( 2, 4 )
-
-over = Image.open( sys.argv[1] )
-color = ImageColor.getrgb( sys.argv[2] )
-
-new = Image.new( 'RGBA', over.size, color )
-
-# 'Over' is passed twice since it has an alpha channel -- it is it's own mask
-new.paste( over, over )
-
-new.save( sys.argv[3] )
\ No newline at end of file
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/shared_images/data_empty.png
Binary file static/light_hatched_style/shared_images/data_empty.png has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/shared_images/data_error.png
Binary file static/light_hatched_style/shared_images/data_error.png has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/shared_images/data_ok.png
Binary file static/light_hatched_style/shared_images/data_ok.png has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/shared_images/data_queued.png
Binary file static/light_hatched_style/shared_images/data_queued.png has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/shared_images/data_running.gif
Binary file static/light_hatched_style/shared_images/data_running.gif has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/shared_images/error_large.png
Binary file static/light_hatched_style/shared_images/error_large.png has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/shared_images/error_small.png
Binary file static/light_hatched_style/shared_images/error_small.png has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/shared_images/info_large.png
Binary file static/light_hatched_style/shared_images/info_large.png has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/shared_images/info_small.png
Binary file static/light_hatched_style/shared_images/info_small.png has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/shared_images/ok_large.png
Binary file static/light_hatched_style/shared_images/ok_large.png has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/shared_images/ok_small.png
Binary file static/light_hatched_style/shared_images/ok_small.png has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/shared_images/wait_large.png
Binary file static/light_hatched_style/shared_images/wait_large.png has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/shared_images/wait_small.png
Binary file static/light_hatched_style/shared_images/wait_small.png has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/shared_images/warn_large.png
Binary file static/light_hatched_style/shared_images/warn_large.png has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/shared_images/warn_small.png
Binary file static/light_hatched_style/shared_images/warn_small.png has changed
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/light_hatched_style/tool_menu.css.tmpl
--- a/static/light_hatched_style/tool_menu.css.tmpl
+++ /dev/null
@@ -1,46 +0,0 @@
-body
-{
- background: white;
- color: $base_text;
- background: white url(menu_bg.png) top repeat-x;
- margin: 5px;
- margin-right: 15px;
- margin-left: 15px;
-}
-
-hr
-{
- border: none;
- height: 0px;
- margin-top: 0px;
-}
-
-div.toolSectionPad
-{
- margin: 0;
- padding: 0;
- height: 5px;
- font-size: 0px;
-}
-
-div.toolSectionDetailsInner
-{
- margin-left: 10px;
- margin-right: 10px;
-}
-
-div.toolSectionTitle
-{
- padding-bottom: 0px;
- font-weight: bold;
-}
-
-div.toolTitle
-{
- padding-top: 5px;
- padding-bottom: 5px;
- margin-left: 16px;
- margin-right: 10px;
- display: list-item;
- list-style: square outside;
-}
\ No newline at end of file
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/old_blue_style/base.css
--- a/static/old_blue_style/base.css
+++ /dev/null
@@ -1,335 +0,0 @@
-body
-{
- margin: 0;
- padding: 0;
- border: 0;
- font: smaller verdana, "Bitstream Vera Sans", geneva, arial, helvetica, helve, sans-serif;
- background: #3690c0;
-}
-
-body.toolMenuPage
-{
- background: #045a8d;
- color: #d0d1e6;
- /*background-image: url(/static/images/toolsExpandingMenu.gif);*/
- background-repeat: no-repeat;
- background-position: bottom right;
-}
-
-body.toolMenuPage a
-{
- color: #ece7f2;
-}
-
-body.toolMenuPage a:hover
-{
- color: white;
-}
-
-body.historyPage
-{
- background: #045a8d;
- color: #d0d1e6;
- /*background-image: url(/static/images/history.gif);*/
- background-repeat: no-repeat;
- background-position: bottom right;
-}
-
-body.historyPage a
-{
- color: #ece7f2;
-}
-
-body.mastheadPage
-{
- background: #023858;
- background-image: url(/static/images/hatch-fade-023858.gif);
- background-position: bottom;
- color: white;
-}
-
-body.mastheadPage a
-{
- color: #ece7f2;
-}
-
-div.pageTitle
-{
- font-size: x-large;
- font-weight: bold;
-}
-
-div.pageTitle a:link, div.pageTitle a:visited, div.pageTitle a:active, div.pageTitle a:hover
-{
- text-decoration: none;
-}
-
-/*
-6 class diverging BrBG
-
-br2: #8c510a
-br1: #d8b365
-br0: #f6e8c3
-gr0: #c7eae5
-gr1: #5ab4ac
-gr2: #01665e
-*/
-
-/*
-
-Dark to light:
-
-Blues
------
-
-0: #023858
-1: #045a8d
-3: #0570b0
-4: #3690c0
-5: #74a9cf
-6: #a6bddb
-7: #d0d1e6
-8: #ece7f2
-
-
-*/
-
-h1, h2, h3
-{
- color: white;
-}
-
-hr
-{
- border: none;
- border-bottom: dotted white 1px;
-}
-
-div.toolMenu
-{
- margin: 10px;
-}
-
-div.toolDivider
-{
- padding-top: 5px;
- padding-bottom: 5px;
-}
-
-div.toolSectionDetailsInner
-{
- margin-left: 10px;
- margin-right: 10px;
-}
-
-div.toolSectionTitle
-{
- padding-bottom: 5px;
- font-weight: bold;
-}
-
-/*div.toolSectionBg
-{
- background: #0570b0;
-}*/
-
-div.toolTitle
-{
- padding-top: 5px;
- padding-bottom: 5px;
- margin-left: 16px;
- margin-right: 10px;
- display: list-item;
- list-style: square outside;
-}
-
-div.toolForm
-{
- margin: 10px;
-}
-
-div.toolFormTitle
-{
- background: #d8b365;
- font-weight: bold;
- padding: 5px;
-}
-
-div.toolParamHelp
-{
- font-style: italic;
-}
-
-div.toolFormBody
-{
- background: #f6e8c3;
- padding: 5px;
-}
-
-td.errorMessage
-{
- color: #b30000;
-}
-
-div.toolHelp
-{
- margin: 10px;
-}
-
-div.toolHelpBody
-{
- background: white;
- padding: 5px;
-}
-
-div.historyItem
-{
- padding-top: 10px;
- padding-bottom: 10px;
- margin-right: 10px;
- margin-left: 10px;
- border-bottom: dotted #d0d1e6 1px;
-}
-
-div.historyItemBody div
-{
- padding-top: 2px;
-}
-
-pre.peek
-{
- background: #f6e8c3;
- color: black;
- width: 100%;
- overflow: auto;
-}
-
-div.document
-{
- margin: 10px;
-}
-
-select
-{
- max-width: 300px;
-}
-
-.errormessage, .warningmessage, .donemessage, .infomessage
-{
- margin: 10px;
- padding: .33em 0 .67em 42px;
- min-height: 32px;
- border-top: 5px solid #900;
- border-bottom: 5px solid #900;
- /* border-left: 1px solid #900; */
- /* border-right: 1px solid #900; */
- background: white;
- background-image: url(/images/icon_error_lrg.gif);
- background-repeat: no-repeat;
- background-position: 5px 5px;
-}
-
-.warningmessage
-{
- background-image: url(/images/icon_warning_lrg.gif);
- border-color: #c60;
-}
-
-.donemessage
-{
- background-image: url(/images/icon_success_lrg.gif);
- border-color: #090;
-}
-
-.infomessage
-{
- background-image: url(/images/icon_info_lrg.gif);
- border-color: #069;
-}
-
-.errormark, .warningmark, .donemark, .infomark, .ok_bgr, .err_bgr
-{
- padding-left: 20px;
- min-height: 15px;
- background: url(/images/icon_error_sml.gif) no-repeat;
-}
-
-.warningmark
-{
- background-image: url(/images/icon_warning_sml.gif);
-}
-
-.donemark
-{
- background-image: url(/images/icon_success_sml.gif);
-}
-
-.infomark, .ok_bgr
-{
- background-image: url(/images/icon_info_sml.gif);
-}
-
-table.colored td
-{
- padding: 5px;
-}
-
-table.colored tr.header
-{
- background: #d8b365;
- font-weight: bold;
-}
-
-table.colored tr
-{
- background: #f6e8c3;
-}
-
-div.debug
-{
- margin: 10px;
- padding: 5px;
- background: #FFFF99;
- border: solid #FFFF33 1px;
- color: black;
-}
-
-#footer {
- position: fixed;
- background: #023858;
- width: 100%;
- left: 0px;
- bottom: 0px;
- color: white;
- z-index:10000;
- opacity:0.9;
- filter:alpha(opacity:90);
-}
-
-.footerheader
-{
- padding: 5px;
- text-align:center;
- background-image: url(/static/images/hatch-fade-023858.gif);
- background-position: bottom;
-}
-
-.footermenu
-{
- border-top: solid white 1px;
-}
-
-.footermenuitem
-{
- margin-top: 5px;
- margin-bottom: 5px;
- margin-right: 5px;
- margin-left: 25px;
- display: list-item;
- list-style: square outside;
-}
-
-.footermenumessage
-{
- margin: 5px;
-}
\ No newline at end of file
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d static/old_blue_style/history.css
--- a/static/old_blue_style/history.css
+++ /dev/null
@@ -1,8 +0,0 @@
-div.historyItem, div.historyItem-ok, div.historyItem-running, div.historyItem-error, div.historyItem-queued, div.historyItem-empty
-{
- padding-top: 10px;
- padding-bottom: 10px;
- margin-right: 10px;
- margin-left: 10px;
- border-bottom: dotted #d0d1e6 1px;
-}
\ No newline at end of file
diff -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 -r 85af79deedefcf3d677a8c25dee11335394c594d templates/base_panels.mako
--- a/templates/base_panels.mako
+++ b/templates/base_panels.mako
@@ -250,7 +250,7 @@
## Layer iframes over backgrounds
<div id="masthead" class="navbar navbar-fixed-top"><div class="masthead-inner navbar-inner">
- <div class="container">${self.masthead()}</div>
+ ${self.masthead()}
</div></div><div id="messagebox" class="panel-${self.message_box_class}-message">
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
20 Jul '12
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/524cfb8ca67d/
changeset: 524cfb8ca67d
user: jgoecks
date: 2012-07-20 19:18:54
summary: Move implementation of from_work_dir attribute from job finish to job command line so that outputs are available earlier. This provides compatibility of attribute when setting metadata externally. Update Tophat wrapper to act as exemplar for attribute use.
affected #: 4 files
diff -r f4e720d9f182cb8216fdd2174fe3ab83d0350a24 -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 lib/galaxy/jobs/__init__.py
--- a/lib/galaxy/jobs/__init__.py
+++ b/lib/galaxy/jobs/__init__.py
@@ -336,38 +336,11 @@
job_context = ExpressionContext( dict( stdout = stdout, stderr = stderr ) )
job_tool = self.app.toolbox.tools_by_id.get( job.tool_id, None )
- def in_directory( file, directory ):
- # Make both absolute.
- directory = os.path.abspath( directory )
- file = os.path.abspath( file )
-
- #Return true, if the common prefix of both is equal to directory
- #e.g. /a/b/c/d.rst and directory is /a/b, the common prefix is /a/b
- return os.path.commonprefix( [ file, directory ] ) == directory
+
for dataset_assoc in job.output_datasets + job.output_library_datasets:
context = self.get_dataset_finish_context( job_context, dataset_assoc.dataset.dataset )
#should this also be checking library associations? - can a library item be added from a history before the job has ended? - lets not allow this to occur
for dataset in dataset_assoc.dataset.dataset.history_associations + dataset_assoc.dataset.dataset.library_associations: #need to update all associated output hdas, i.e. history was shared with job running
- #
- # If HDA is to be copied from the working directory, do it now so that other attributes are correctly set.
- #
- if isinstance( dataset, model.HistoryDatasetAssociation ):
- joda = self.sa_session.query( model.JobToOutputDatasetAssociation ).filter_by( job=job, dataset=dataset ).first()
- if joda and job_tool:
- hda_tool_output = job_tool.outputs.get( joda.name, None )
- if hda_tool_output and hda_tool_output.from_work_dir:
- # Copy from working dir to HDA.
- source_file = os.path.join( os.path.abspath( self.working_directory ), hda_tool_output.from_work_dir )
- if in_directory( source_file, self.working_directory ):
- try:
- shutil.move( source_file, dataset.file_name )
- log.debug( "finish(): Moved %s to %s as directed by from_work_dir" % ( source_file, dataset.file_name ) )
- except ( IOError, OSError ):
- log.debug( "finish(): Could not move %s to %s as directed by from_work_dir" % ( source_file, dataset.file_name ) )
- else:
- # Security violation.
- log.exception( "from_work_dir specified a location not in the working directory: %s, %s" % ( source_file, self.working_directory ) )
-
dataset.blurb = 'done'
dataset.peek = 'no peek'
dataset.info = ( dataset.info or '' ) + context['stdout'] + context['stderr']
diff -r f4e720d9f182cb8216fdd2174fe3ab83d0350a24 -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 lib/galaxy/jobs/runners/__init__.py
--- a/lib/galaxy/jobs/runners/__init__.py
+++ b/lib/galaxy/jobs/runners/__init__.py
@@ -1,4 +1,6 @@
-import os, os.path
+import os, logging, os.path
+
+log = logging.getLogger( __name__ )
class BaseJobRunner( object ):
def build_command_line( self, job_wrapper, include_metadata=False ):
@@ -10,6 +12,19 @@
- command line taken from job wrapper
- commands to set metadata (if include_metadata is True)
"""
+
+ def in_directory( file, directory ):
+ """
+ Return true, if the common prefix of both is equal to directory
+ e.g. /a/b/c/d.rst and directory is /a/b, the common prefix is /a/b
+ """
+
+ # Make both absolute.
+ directory = os.path.abspath( directory )
+ file = os.path.abspath( file )
+
+ return os.path.commonprefix( [ file, directory ] ) == directory
+
commands = job_wrapper.get_command_line()
# All job runners currently handle this case which should never
# occur
@@ -25,6 +40,31 @@
if job_wrapper.dependency_shell_commands:
commands = "; ".join( job_wrapper.dependency_shell_commands + [ commands ] )
+ # Append commands to copy job outputs based on from_work_dir attribute.
+ job = job_wrapper.get_job()
+ job_tool = self.app.toolbox.tools_by_id.get( job.tool_id, None )
+ for dataset_assoc in job.output_datasets + job.output_library_datasets:
+ for dataset in dataset_assoc.dataset.dataset.history_associations + dataset_assoc.dataset.dataset.library_associations:
+ if isinstance( dataset, self.app.model.HistoryDatasetAssociation ):
+ joda = self.sa_session.query( self.app.model.JobToOutputDatasetAssociation ).filter_by( job=job, dataset=dataset ).first()
+ if joda and job_tool:
+ hda_tool_output = job_tool.outputs.get( joda.name, None )
+ if hda_tool_output and hda_tool_output.from_work_dir:
+ # Copy from working dir to HDA.
+ # TODO: move instead of copy to save time?
+ source_file = os.path.join( os.path.abspath( job_wrapper.working_directory ), hda_tool_output.from_work_dir )
+ if in_directory( source_file, job_wrapper.working_directory ):
+ try:
+ commands += "; cp %s %s" % ( source_file, dataset.file_name )
+ log.debug( "Copying %s to %s as directed by from_work_dir" % ( source_file, dataset.file_name ) )
+ except ( IOError, OSError ):
+ log.debug( "Could not copy %s to %s as directed by from_work_dir" % ( source_file, dataset.file_name ) )
+ else:
+ # Security violation.
+ log.exception( "from_work_dir specified a location not in the working directory: %s, %s" % ( source_file, job_wrapper.working_directory ) )
+
+
+
# Append metadata setting commands, we don't want to overwrite metadata
# that was copied over in init_meta(), as per established behavior
if include_metadata and self.app.config.set_metadata_externally:
diff -r f4e720d9f182cb8216fdd2174fe3ab83d0350a24 -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 tools/ngs_rna/tophat_wrapper.py
--- a/tools/ngs_rna/tophat_wrapper.py
+++ b/tools/ngs_rna/tophat_wrapper.py
@@ -227,10 +227,6 @@
if returncode != 0:
raise Exception, stderr
- # Copy output files from tmp directory to specified files.
- shutil.copyfile( os.path.join( "tophat_out", "junctions.bed" ), options.junctions_output_file )
- shutil.copyfile( os.path.join( "tophat_out", "accepted_hits.bam" ), options.accepted_hits_output_file )
-
# TODO: look for errors in program output.
except Exception, e:
stop_err( 'Error in tophat:\n' + str( e ) )
diff -r f4e720d9f182cb8216fdd2174fe3ab83d0350a24 -r 524cfb8ca67d491bcba54cda5a037a0c89e9a7b4 tools/ngs_rna/tophat_wrapper.xml
--- a/tools/ngs_rna/tophat_wrapper.xml
+++ b/tools/ngs_rna/tophat_wrapper.xml
@@ -424,7 +424,7 @@
</conditional></actions></data>
- <data format="bed" name="junctions" label="${tool.name} on ${on_string}: splice junctions">
+ <data format="bed" name="junctions" label="${tool.name} on ${on_string}: splice junctions" from_work_dir="tophat_out/junctions.bed"><actions><conditional name="refGenomeSource.genomeSource"><when value="indexed">
@@ -443,7 +443,7 @@
</conditional></actions></data>
- <data format="bam" name="accepted_hits" label="${tool.name} on ${on_string}: accepted_hits">
+ <data format="bam" name="accepted_hits" label="${tool.name} on ${on_string}: accepted_hits" from_work_dir="tophat_out/accepted_hits.bam"><actions><conditional name="refGenomeSource.genomeSource"><when value="indexed">
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
commit/galaxy-central: james_taylor: remove reference to modernizr in base_panels, not yet used
by Bitbucket 20 Jul '12
by Bitbucket 20 Jul '12
20 Jul '12
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/f4e720d9f182/
changeset: f4e720d9f182
user: james_taylor
date: 2012-07-20 17:26:17
summary: remove reference to modernizr in base_panels, not yet used
affected #: 1 file
diff -r 724c07bf72efdb66070b7ca396800b2cfb1b2012 -r f4e720d9f182cb8216fdd2174fe3ab83d0350a24 templates/base_panels.mako
--- a/templates/base_panels.mako
+++ b/templates/base_panels.mako
@@ -48,7 +48,7 @@
<!--[if lt IE 7]>
${h.js( 'IE7', 'ie7-recalc' )}
<![endif]-->
- ${h.js( 'modernizr', 'jquery', 'libs/underscore', 'libs/backbone', 'libs/backbone-relational', 'libs/handlebars.runtime', 'mvc/ui' )}
+ ${h.js( 'jquery', 'libs/underscore', 'libs/backbone', 'libs/backbone-relational', 'libs/handlebars.runtime', 'mvc/ui' )}
<script type="text/javascript">
// Set up needed paths.
var galaxy_paths = new GalaxyPaths({
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0