diff --git a/app.json b/app.json
index 01775192..19baf9f9 100644
--- a/app.json
+++ b/app.json
@@ -15,12 +15,7 @@
"formation": {
"web": {
"quantity": 1,
- "size": "hobby"
- }
- },
- "environments": {
- "review": {
- "addons": ["heroku-postgresql:hobby-basic"]
+ "size": "standard-1x"
}
},
"buildpacks": [],
diff --git a/chicago/feeds.py b/chicago/feeds.py
index 65b24169..c666c732 100644
--- a/chicago/feeds.py
+++ b/chicago/feeds.py
@@ -1,14 +1,278 @@
-from councilmatic_core.feeds import CouncilmaticFacetedSearchFeed, BillDetailActionFeed
-from chicago.models import ChicagoBill
+import urllib
+from haystack.query import SearchQuerySet
-class ChicagoCouncilmaticFacetedSearchFeed(CouncilmaticFacetedSearchFeed):
- # same as CouncilmaticFacetedSearchFeed but have a better item name
- # template which uses NYCBill's friendly_name() as opposed to Bill's
- # friendly_name()
- title_template = "feeds/chicago_search_item_title.html"
- bill_model = ChicagoBill
+from django.contrib.syndication.views import Feed
+from django.utils.feedgenerator import Rss201rev2Feed
+from django.urls import reverse, reverse_lazy
+from django.conf import settings
+from .models import Person, Bill, Organization, Event
+from .utils import to_datetime
-class ChicagoBillDetailActionFeed(BillDetailActionFeed):
- title_template = "feeds/chicago_bill_actions_item_title.html"
+
+class FacetedSearchFeed(Feed):
+ title_template = "feeds/search_item_title.html"
+ description_template = "feeds/search_item_description.html"
+ bill_model = Bill
+
+ all_results = None
+ sqs = (
+ SearchQuerySet()
+ .facet("bill_type")
+ .facet("sponsorships", sort="index")
+ .facet("controlling_body")
+ .facet("inferred_status")
+ )
+ query = None
+
+ def url_with_querystring(self, path, **kwargs):
+ return path + "?" + urllib.parse.urlencode(kwargs)
+
+ def get_object(self, request):
+ self.queryDict = request.GET
+
+ all_results = SearchQuerySet().all()
+ facets = None
+
+ if "selected_facets" in request.GET:
+ facets = request.GET.getlist("selected_facets")
+
+ if "q" in request.GET:
+ self.query = request.GET["q"]
+ results = all_results.filter(content=self.query)
+
+ if facets:
+ for facet in facets:
+ (facet_name, facet_value) = facet.split(":")
+ facet_name = facet_name.rsplit("_exact")[0]
+ results = results.narrow("%s:%s" % (facet_name, facet_value))
+ elif facets:
+ for facet in facets:
+ (facet_name, facet_value) = facet.split(":")
+ facet_name = facet_name.rsplit("_exact")[0]
+ results = all_results.narrow("%s:%s" % (facet_name, facet_value))
+
+ return results.order_by("-last_action_date")
+
+ def title(self, obj):
+ if self.query:
+ title = (
+ settings.SITE_META["site_name"]
+ + ": Search for '"
+ + self.query.capitalize()
+ + "'"
+ )
+ # XXX: create a nice title based on all search parameters
+ else:
+ title = settings.SITE_META["site_name"] + ": Filtered Search"
+
+ return title
+
+ def link(self, obj):
+ # return the main non-RSS search URL somehow
+ # XXX maybe "quargs" - evz
+ # return reverse('councilmatic_search', args=(searchqueryset=self.sqs,))
+ url = self.url_with_querystring(
+ reverse("{}:councilmatic_search_feed".format(settings.APP_NAME)),
+ q=self.query,
+ )
+ return url
+
+ def item_link(self, bill):
+ return reverse("bill_detail", args=(bill.slug,))
+
+ def item_pubdate(self, bill):
+ return to_datetime(bill.last_action_date)
+
+ def description(self, obj):
+ return "Bills returned from search"
+
+ def items(self, query):
+ l_items = query[:20]
+ pks = [i.pk for i in l_items]
+ bills = self.bill_model.objects.filter(pk__in=pks).order_by("-last_action_date")
+ return bills
+
+
+class PersonDetailFeed(Feed):
+ """The PersonDetailFeed provides an RSS feed for a given committee member,
+ returning the most recent 20 bills for which they are the primary sponsor;
+ and for each bill, the list of sponsores and the action history.
+ """
+
+ title_template = "feeds/person_detail_item_title.html"
+ description_template = "feeds/person_detail_item_description.html"
+ feed_type = Rss201rev2Feed
+ NUM_RECENT_BILLS = 20
+
+ def get_object(self, request, slug):
+ o = Person.objects.get(slug=slug)
+ return o
+
+ def title(self, obj):
+ return (
+ settings.SITE_META["site_name"]
+ + ": "
+ + settings.CITY_VOCAB["COUNCIL_MEMBER"]
+ + " %s: Recently Sponsored Bills" % obj.name
+ )
+
+ def link(self, obj):
+ return reverse("person", args=(obj.slug,))
+
+ def item_link(self, bill):
+ # return the Councilmatic URL for the bill
+ return reverse("bill_detail", args=(bill.slug,))
+
+ def item_pubdate(self, bill):
+ return to_datetime(bill.last_action_date)
+
+ def description(self, obj):
+ return "Recent sponsored bills from " + obj.name + "."
+
+ def items(self, person):
+ sponsored_bills = [s.bill for s in person.primary_sponsorships][:10]
+ recent_sponsored_bills = sponsored_bills[: self.NUM_RECENT_BILLS]
+ return recent_sponsored_bills
+
+
+class CommitteeDetailEventsFeed(Feed):
+ """The CommitteeDetailEventsFeed provides an RSS feed for a given committee,
+ returning the most recent 20 events.
+ """
+
+ title_template = "feeds/committee_events_item_title.html"
+ description_template = "feeds/committee_events_item_description.html"
+ feed_type = Rss201rev2Feed
+ NUM_RECENT_COMMITTEE_EVENTS = 20
+
+ def get_object(self, request, slug):
+ o = Organization.objects.get(slug=slug)
+ return o
+
+ def title(self, obj):
+ return settings.SITE_META["site_name"] + ": " + obj.name + ": Recent Events"
+
+ def link(self, obj):
+ # return the Councilmatic URL for the committee
+ return reverse("committee_detail", args=(obj.slug,))
+
+ def item_link(self, event):
+ # return the Councilmatic URL for the event
+ return reverse("event_detail", args=(event.slug,))
+
+ def item_pubdate(self, event):
+ return event.start_time
+
+ def description(self, obj):
+ return "Events for committee %s" % obj.name
+
+ def items(self, obj):
+ return obj.recent_events.all()[: self.NUM_RECENT_COMMITTEE_EVENTS]
+
+
+class CommitteeDetailActionFeed(Feed):
+ """The CommitteeDetailActionFeed provides an RSS feed for a given committee,
+ returning the most recent 20 actions on legislation.
+ """
+
+ # instead of defining item_title() or item_description(), use templates
+ title_template = "feeds/committee_actions_item_title.html"
+ description_template = "feeds/committee_actions_item_description.html"
+ feed_type = Rss201rev2Feed
+ NUM_RECENT_COMMITTEE_ACTIONS = 20
+
+ def get_object(self, request, slug):
+ o = Organization.objects.get(slug=slug)
+ return o
+
+ def title(self, obj):
+ return settings.SITE_META["site_name"] + ": " + obj.name + ": Recent Actions"
+
+ def link(self, obj):
+ # return the Councilmatic URL for the committee
+ return reverse("committee_detail", args=(obj.slug,))
+
+ def item_link(self, action):
+ # return the Councilmatic URL for the bill
+ return reverse("bill_detail", args=(action.bill.slug,))
+
+ def item_pubdate(self, action):
+ return to_datetime(action.date_dt)
+
+ def description(self, obj):
+ return "Actions for committee %s" % obj.name
+
+ def items(self, obj):
+ return obj.recent_activity[: self.NUM_RECENT_COMMITTEE_ACTIONS]
+
+
+class BillDetailActionFeed(Feed):
+ """
+ Return the last 20 actions for a given bill.
+ """
+
+ # instead of defining item_title() or item_description(), use templates
+ title_template = "feeds/bill_actions_item_title.html"
+ description_template = "feeds/bill_actions_item_description.html"
+ feed_type = Rss201rev2Feed
+ NUM_RECENT_BILL_ACTIONS = 20
+
+ def get_object(self, request, slug):
+ o = Bill.objects.get(slug=slug)
+ return o
+
+ def title(self, obj):
+ return (
+ settings.SITE_META["site_name"]
+ + ": "
+ + obj.friendly_name
+ + ": Recent Actions"
+ )
+
+ def link(self, obj):
+ # return the Councilmatic URL for the committee
+ return reverse("bill_detail", args=(obj.slug,))
+
+ def item_link(self, action):
+ # Bill actions don't have their own pages, so just link to the Bill page (?)
+ return reverse("bill_detail", args=(action.bill.slug,))
+
+ def item_pubdate(self, action):
+ return to_datetime(action.date_dt)
+
+ def description(self, obj):
+ return "Actions for bill %s" % obj.friendly_name
+
+ def items(self, obj):
+ return obj.ordered_actions[: self.NUM_RECENT_BILL_ACTIONS]
+
+
+class EventsFeed(Feed):
+ """
+ Return the last 20 announced events as per, e.g.,
+ https://nyc.councilmatic.org/events/
+ """
+
+ title_template = "feeds/events_item_title.html"
+ description_template = "feeds/events_item_description.html"
+ feed_type = Rss201rev2Feed
+ NUM_RECENT_EVENTS = 20
+
+ title = settings.CITY_COUNCIL_NAME + " " + "Recent Events"
+ link = reverse_lazy("events")
+ description = "Recently announced events."
+
+ def item_link(self, event):
+ # return the Councilmatic URL for the event
+ return reverse("event_detail", args=(event.slug,))
+
+ def item_pubdate(self, event):
+ return event.start_time
+
+ def description(self, obj):
+ return "Events"
+
+ def items(self, obj):
+ return Event.objects.all()[: self.NUM_RECENT_EVENTS]
diff --git a/chicago/management/commands/import_shapes.py b/chicago/management/commands/import_shapes.py
new file mode 100644
index 00000000..d1a472b7
--- /dev/null
+++ b/chicago/management/commands/import_shapes.py
@@ -0,0 +1,71 @@
+import json
+
+from django.core.management.base import BaseCommand, CommandError
+from django.contrib.gis.geos import GEOSGeometry
+
+from councilmatic_core import models
+
+
+class Command(BaseCommand):
+ help = "Import boundary shapefiles for Post entities"
+
+ def add_arguments(self, parser):
+ parser.add_argument(
+ "geojson_file",
+ help=(
+ "The location of the GeoJSON file containing shapes for each "
+ "Division, relative to the project root. The file should be "
+ "formatted as a GeoJSON FeatureCollection where each Feature A) "
+ "corresponds to a distinct Division and B) has a 'division_id' "
+ "attribute in the 'properties' object. "
+ ),
+ )
+
+ def handle(self, *args, **options):
+ self.stdout.write("Populating shapes for Posts...")
+ shapes_populated = 0
+
+ with open(options["geojson_file"]) as shapef:
+ shapes = json.load(shapef)
+
+ features = self._get_or_raise(
+ shapes, "features", 'Could not find the "features" array in the input file.'
+ )
+
+ for feature in features:
+ shape = self._get_or_raise(
+ feature, "geometry", 'Could not find a "geometry" key in the Feature.'
+ )
+ properties = self._get_or_raise(
+ feature,
+ "properties",
+ 'Could not find a "properties" key in the Feature.',
+ )
+ division_id = self._get_or_raise(
+ properties,
+ "division_id",
+ 'Could not find a "division_id" key in the Feature properties.',
+ )
+
+ models.Post.objects.filter(division_id=division_id).update(
+ shape=GEOSGeometry(json.dumps(shape))
+ )
+ shapes_populated += 1
+
+ self.stdout.write(
+ self.style.SUCCESS("Populated {} shapes".format(str(shapes_populated)))
+ )
+
+ def _get_or_raise(self, dct, key, msg):
+ """
+ Check to see if 'dct' has a key corresponding to 'key', and raise an
+ error if it doesn't.
+ """
+ format_prompt = (
+ "Is the input file formatted as a GeoJSON FeatureCollection "
+ 'where each feature has a "division_id" property?'
+ )
+ if not dct.get(key):
+ raise CommandError(msg + " " + format_prompt)
+ else:
+ return dct[key]
diff --git a/chicago/search_indexes.py b/chicago/search_indexes.py
index db00e3a4..de73d71a 100644
--- a/chicago/search_indexes.py
+++ b/chicago/search_indexes.py
@@ -1,29 +1,50 @@
+import pytz
from datetime import datetime
-from councilmatic_core.haystack_indexes import BillIndex
from django.conf import settings
from haystack import indexes
-import pytz
+from chicago.templatetags.extras import clean_html
from chicago.models import ChicagoBill
app_timezone = pytz.timezone(settings.TIME_ZONE)
-class ChicagoBillIndex(BillIndex, indexes.Indexable):
-
- topics = indexes.MultiValueField(faceted=True)
- # faceted = True creates a keyword field instead of a text field for full
- # text searches. By default, text fields cannot be used for faceting or
- # sorting in ElasticSearch.
+class BillIndex(indexes.SearchIndex, indexes.Indexable):
+ text = indexes.CharField(
+ document=True,
+ use_template=True,
+ template_name="search/indexes/councilmatic_core/bill_text.txt",
+ )
+ slug = indexes.CharField(model_attr="slug", indexed=False)
+ id = indexes.CharField(model_attr="id", indexed=False)
+ bill_type = indexes.CharField(faceted=True)
+ identifier = indexes.CharField(model_attr="identifier")
+ description = indexes.CharField(model_attr="title", boost=1.25)
+ source_url = indexes.CharField(model_attr="sources__url", indexed=False)
+ source_note = indexes.CharField(model_attr="sources__note")
+ abstract = indexes.CharField(
+ model_attr="abstracts__abstract", boost=1.25, default=""
+ )
+
+ friendly_name = indexes.CharField()
sort_name = indexes.CharField(faceted=True)
+ sponsorships = indexes.MultiValueField(faceted=True)
+ actions = indexes.MultiValueField()
+ controlling_body = indexes.MultiValueField(faceted=True)
+ full_text = indexes.CharField(model_attr="full_text", default="")
+ ocr_full_text = indexes.CharField(model_attr="ocr_full_text", default="")
+ last_action_date = indexes.DateTimeField()
+ inferred_status = indexes.CharField(faceted=True)
+ legislative_session = indexes.CharField(faceted=True)
+ topics = indexes.MultiValueField(faceted=True)
def get_model(self):
return ChicagoBill
def prepare(self, obj):
- data = super(ChicagoBillIndex, self).prepare(obj)
+ data = super().prepare(obj)
boost = 0
@@ -61,3 +82,31 @@ def prepare_sponsorships(self, obj):
def prepare_actions(self, obj):
return [str(action) for action in obj.actions.all()]
+
+ def prepare_friendly_name(self, obj):
+ return obj.friendly_name
+
+ def prepare_sort_name(self, obj):
+ return obj.friendly_name.replace(" ", "")
+
+ def prepare_bill_type(self, obj):
+ return obj.bill_type.lower()
+
+ def prepare_controlling_body(self, obj):
+ if obj.controlling_body:
+ return [org.name for org in obj.controlling_body]
+
+ def prepare_full_text(self, obj):
+ return clean_html(obj.full_text)
+
+ def prepare_inferred_status(self, obj):
+ return obj.inferred_status
+
+ def prepare_legislative_session(self, obj):
+ return obj.legislative_session.identifier
+
+ def prepare_ocr_full_text(self, obj):
+ return clean_html(obj.ocr_full_text)
+
+ def get_updated_field(self):
+ return "updated_at"
diff --git a/councilmatic/settings.py b/chicago/settings.py
similarity index 96%
rename from councilmatic/settings.py
rename to chicago/settings.py
index 286e4249..7b69bb6c 100644
--- a/councilmatic/settings.py
+++ b/chicago/settings.py
@@ -110,7 +110,7 @@
"django.middleware.clickjacking.XFrameOptionsMiddleware",
)
-ROOT_URLCONF = "councilmatic.urls"
+ROOT_URLCONF = "chicago.urls"
TEMPLATES = [
{
@@ -123,14 +123,13 @@
"django.template.context_processors.request",
"django.contrib.auth.context_processors.auth",
"django.contrib.messages.context_processors.messages",
- "councilmatic_core.views.city_context",
],
},
},
]
-WSGI_APPLICATION = "councilmatic.wsgi.application"
+WSGI_APPLICATION = "chicago.wsgi.application"
# Internationalization
@@ -229,19 +228,6 @@
LEGISTAR_URL = "https://chicago.legistar.com/Legislation.aspx"
-# this is for configuring a map of council districts using data from the posts
-# set MAP_CONFIG = None to hide map
-MAP_CONFIG = {
- "center": [41.8369, -87.6847],
- "zoom": 10,
- "color": "#54afe8",
- "highlight_color": "#C00000",
-}
-
-# this is the default text in search bars
-SEARCH_PLACEHOLDER_TEXT = "police, zoning, O2015-7825, etc."
-
-
# THE FOLLOWING ARE VOCAB SETTINGS RELEVANT TO DATA MODELS, LOGIC
# (this is diff from VOCAB above, which is all for the front end)
@@ -344,12 +330,6 @@
"committee-on-zoning-landmarks-and-building-standards": "The Committee on Zoning, Landmarks and Building Standards shall have jurisdiction over all zoning matters and the operation of the Zoning Board of Appeals and the office of the Zoning Administrator; land use policy generally and land use recommendations of the Chicago Plan Commission and the Department of Planning and Development; building code ordinances and matters generally affecting the Department of Buildings; and designation, maintenance and preservation of historical and architectural landmarks. The Committee shall work in cooperation with those public and private organizations similarly engaged in matters affecting landmarks.", # noqa
}
-ABOUT_BLURBS = {
- "COMMITTEES": "
Most meaningful legislative activity happens in committee meetings, where committee members debate proposed legislation. These meetings are open to the public.
Each committee has a Chair, who controls the committee meeting agenda (and thus, the legislation to be considered).
Committee jurisdiction, memberships, and appointments all require City Council approval.
", # noqa
- "EVENTS": "There are two types of meetings: committee meetings and full city council meetings.
Most of the time, meaningful legislative debate happens in committee meetings, which occur several times a month.
Meetings of the entire City Council generally occur once a month at City Hall.
All City Council meetings are open to public participation.
", # noqa
- "COUNCIL_MEMBERS": "",
-}
-
# notable positions that aren't district representatives, e.g. mayor & city clerk
# keys should match person slugs
EXTRA_TITLES = {
diff --git a/chicago/static/css/custom.css b/chicago/static/css/custom.css
index eba92dda..6a9860dc 100644
--- a/chicago/static/css/custom.css
+++ b/chicago/static/css/custom.css
@@ -91,22 +91,6 @@ h4 {
border-bottom: 8px solid #3d8a8e;
}
-#widget-nav {
- height: 36px;
- min-height: 36px;
- background-color: #f7f7f7;
-}
-#widget-nav .navbar-brand {
- height: 36px;
- width: 100%;
- padding-top: 6px;
- padding-bottom: 6px;
-}
-#widget-nav #logo {
- height: 30px;
- top: -6px;
-}
-
/* footer */
.footer {
padding: 10px 0;
@@ -463,7 +447,6 @@ a.dropdown-toggle[title="Account"] {
border-color: #c7e8ea;
}
-/* Custom style for modal instrucitons on widget */
textarea {
font-size: 16px;
width: 100%;
@@ -594,11 +577,6 @@ fieldset[disabled] .form-control {
font-size: 14px;
}
- #widget-nav .container-fluid-nav {
- padding-left: 0px;
- padding-right: 0px;
- }
-
.bill-page-title {
font-size: 26px;
}
diff --git a/chicago/static/css/viewer.css b/chicago/static/css/viewer.css
index 9cdde87c..3dc6c778 100644
--- a/chicago/static/css/viewer.css
+++ b/chicago/static/css/viewer.css
@@ -87,7 +87,7 @@
top: 0;
right: 0;
bottom: 0;
- background: url('images/loading-icon.gif') center no-repeat;
+ background: url("images/loading-icon.gif") center no-repeat;
}
.pdfViewer .page .annotLink > a:hover {
@@ -118,7 +118,7 @@
.pdfViewer .page .annotationHighlight {
position: absolute;
- border: 2px #FFFF99 solid;
+ border: 2px #ffff99 solid;
}
.pdfViewer .page .annotText > img {
@@ -135,7 +135,7 @@
z-index: 200;
float: left;
max-width: 20em;
- background-color: #FFFF99;
+ background-color: #ffff99;
/*box-shadow: 0px 2px 5px #333;*/
border-radius: 2px;
padding: 0.6em;
@@ -161,9 +161,10 @@
height: 100%;
}
-.pdfViewer .page .annotLink > a /* -ms-a */ {
+.pdfViewer .page .annotLink > a /* -ms-a */ {
background: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAA\
- LAAAAAABAAEAAAIBRAA7") 0 0 repeat;
+ LAAAAAABAAEAAAIBRAA7")
+ 0 0 repeat;
}
* {
@@ -178,7 +179,7 @@ html {
}
body {
- height: 100%;
+ height: 99%;
background-color: none; /* this is the color of the background around the PDF */
border: 1px solid #eee;
}
@@ -279,11 +280,11 @@ select {
pointer-events: none;
position: relative;
}
-html[dir='ltr'] .outerCenter {
+html[dir="ltr"] .outerCenter {
float: right;
right: 50%;
}
-html[dir='rtl'] .outerCenter {
+html[dir="rtl"] .outerCenter {
float: left;
left: 50%;
}
@@ -291,11 +292,11 @@ html[dir='rtl'] .outerCenter {
pointer-events: auto;
position: relative;
}
-html[dir='ltr'] .innerCenter {
+html[dir="ltr"] .innerCenter {
float: right;
right: -50%;
}
-html[dir='rtl'] .innerCenter {
+html[dir="rtl"] .innerCenter {
float: left;
left: -50%;
}
@@ -316,14 +317,13 @@ html[dir='rtl'] .innerCenter {
-webkit-transition-timing-function: ease;
transition-duration: 200ms;
transition-timing-function: ease;
-
}
-html[dir='ltr'] #sidebarContainer {
+html[dir="ltr"] #sidebarContainer {
-webkit-transition-property: left;
transition-property: left;
left: -200px;
}
-html[dir='rtl'] #sidebarContainer {
+html[dir="rtl"] #sidebarContainer {
-webkit-transition-property: right;
transition-property: right;
right: -200px;
@@ -333,10 +333,10 @@ html[dir='rtl'] #sidebarContainer {
#outerContainer.sidebarOpen > #sidebarContainer {
visibility: visible;
}
-html[dir='ltr'] #outerContainer.sidebarOpen > #sidebarContainer {
+html[dir="ltr"] #outerContainer.sidebarOpen > #sidebarContainer {
left: 0px;
}
-html[dir='rtl'] #outerContainer.sidebarOpen > #sidebarContainer {
+html[dir="rtl"] #outerContainer.sidebarOpen > #sidebarContainer {
right: 0px;
}
@@ -352,12 +352,12 @@ html[dir='rtl'] #outerContainer.sidebarOpen > #sidebarContainer {
transition-duration: 200ms;
transition-timing-function: ease;
}
-html[dir='ltr'] #outerContainer.sidebarOpen > #mainContainer {
+html[dir="ltr"] #outerContainer.sidebarOpen > #mainContainer {
-webkit-transition-property: left;
transition-property: left;
left: 200px;
}
-html[dir='rtl'] #outerContainer.sidebarOpen > #mainContainer {
+html[dir="rtl"] #outerContainer.sidebarOpen > #mainContainer {
-webkit-transition-property: right;
transition-property: right;
right: 200px;
@@ -370,13 +370,13 @@ html[dir='rtl'] #outerContainer.sidebarOpen > #mainContainer {
-webkit-overflow-scrolling: touch;
position: absolute;
width: 200px;
- background-color: hsla(0,0%,0%,.1);
+ background-color: hsla(0, 0%, 0%, 0.1);
}
-html[dir='ltr'] #sidebarContent {
+html[dir="ltr"] #sidebarContent {
left: 0;
/*box-shadow: inset -1px 0 0 hsla(0,0%,0%,.25);*/
}
-html[dir='rtl'] #sidebarContent {
+html[dir="rtl"] #sidebarContent {
right: 0;
/*box-shadow: inset 1px 0 0 hsla(0,0%,0%,.25);*/
}
@@ -391,10 +391,10 @@ html[dir='rtl'] #sidebarContent {
left: 0;
outline: none;
}
-html[dir='ltr'] #viewerContainer {
+html[dir="ltr"] #viewerContainer {
/*box-shadow: inset 1px 0 0 hsla(0,0%,100%,.05);*/
}
-html[dir='rtl'] #viewerContainer {
+html[dir="rtl"] #viewerContainer {
/*box-shadow: inset -1px 0 0 hsla(0,0%,100%,.05);*/
}
@@ -415,32 +415,38 @@ html[dir='rtl'] #viewerContainer {
height: 32px;
background-color: #777; /* this is the color of the toolbar in the sidebar */
}
-html[dir='ltr'] #toolbarSidebar {
+html[dir="ltr"] #toolbarSidebar {
/*box-shadow: inset -1px 0 0 rgba(0, 0, 0, 0.25),
inset 0 -1px 0 hsla(0,0%,100%,.05),
0 1px 0 hsla(0,0%,0%,.15),
0 0 1px hsla(0,0%,0%,.1);*/
}
-html[dir='rtl'] #toolbarSidebar {
+html[dir="rtl"] #toolbarSidebar {
/*box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.25),
inset 0 1px 0 hsla(0,0%,100%,.05),
0 1px 0 hsla(0,0%,0%,.15),
0 0 1px hsla(0,0%,0%,.1);*/
}
-#toolbarContainer, .findbar, .secondaryToolbar {
+#toolbarContainer,
+.findbar,
+.secondaryToolbar {
position: relative;
height: 32px;
background-color: #777; /* this is the color of the main toolbar */
}
-html[dir='ltr'] #toolbarContainer, .findbar, .secondaryToolbar {
+html[dir="ltr"] #toolbarContainer,
+.findbar,
+.secondaryToolbar {
/*box-shadow: inset 1px 0 0 hsla(0,0%,100%,.08),
inset 0 1px 1px hsla(0,0%,0%,.15),
inset 0 -1px 0 hsla(0,0%,100%,.05),
0 1px 0 hsla(0,0%,0%,.15),
0 1px 1px hsla(0,0%,0%,.1);*/
}
-html[dir='rtl'] #toolbarContainer, .findbar, .secondaryToolbar {
+html[dir="rtl"] #toolbarContainer,
+.findbar,
+.secondaryToolbar {
/*box-shadow: inset -1px 0 0 hsla(0,0%,100%,.08),
inset 0 1px 1px hsla(0,0%,0%,.15),
inset 0 -1px 0 hsla(0,0%,100%,.05),
@@ -473,15 +479,27 @@ html[dir='rtl'] #toolbarContainer, .findbar, .secondaryToolbar {
}
@-webkit-keyframes progressIndeterminate {
- 0% { left: 0%; }
- 50% { left: 100%; }
- 100% { left: 100%; }
+ 0% {
+ left: 0%;
+ }
+ 50% {
+ left: 100%;
+ }
+ 100% {
+ left: 100%;
+ }
}
@keyframes progressIndeterminate {
- 0% { left: 0%; }
- 50% { left: 100%; }
- 100% { left: 100%; }
+ 0% {
+ left: 0%;
+ }
+ 50% {
+ left: 100%;
+ }
+ 100% {
+ left: 100%;
+ }
}
#loadingBar .progress.indeterminate {
@@ -505,7 +523,8 @@ html[dir='rtl'] #toolbarContainer, .findbar, .secondaryToolbar {
animation: progressIndeterminate 2s linear infinite;
}
-.findbar, .secondaryToolbar {
+.findbar,
+.secondaryToolbar {
top: 32px;
position: absolute;
z-index: 10000;
@@ -514,18 +533,18 @@ html[dir='rtl'] #toolbarContainer, .findbar, .secondaryToolbar {
min-width: 16px;
padding: 0px 6px 0px 6px;
margin: 4px 2px 4px 2px;
- color: hsl(0,0%,85%);
+ color: hsl(0, 0%, 85%);
font-size: 12px;
line-height: 14px;
text-align: left;
cursor: default;
}
-html[dir='ltr'] .findbar {
+html[dir="ltr"] .findbar {
left: 68px;
}
-html[dir='rtl'] .findbar {
+html[dir="rtl"] .findbar {
right: 68px;
}
@@ -539,7 +558,7 @@ html[dir='rtl'] .findbar {
background-repeat: no-repeat;
background-position: right;
}
-html[dir='rtl'] #findInput[data-status="pending"] {
+html[dir="rtl"] #findInput[data-status="pending"] {
background-position: left;
}
@@ -548,10 +567,10 @@ html[dir='rtl'] #findInput[data-status="pending"] {
height: auto;
z-index: 30000;
}
-html[dir='ltr'] .secondaryToolbar {
+html[dir="ltr"] .secondaryToolbar {
right: 4px;
}
-html[dir='rtl'] .secondaryToolbar {
+html[dir="rtl"] .secondaryToolbar {
left: 4px;
}
@@ -565,12 +584,14 @@ html[dir='rtl'] .secondaryToolbar {
.doorHanger,
.doorHangerRight {
- border: 1px solid hsla(0,0%,0%,.5);
+ border: 1px solid hsla(0, 0%, 0%, 0.5);
border-radius: 2px;
/*box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);*/
}
-.doorHanger:after, .doorHanger:before,
-.doorHangerRight:after, .doorHangerRight:before {
+.doorHanger:after,
+.doorHanger:before,
+.doorHangerRight:after,
+.doorHangerRight:before {
bottom: 100%;
border: solid transparent;
content: " ";
@@ -581,95 +602,95 @@ html[dir='rtl'] .secondaryToolbar {
}
.doorHanger:after,
.doorHangerRight:after {
- border-bottom-color: hsla(0,0%,32%,.99);
+ border-bottom-color: hsla(0, 0%, 32%, 0.99);
border-width: 8px;
}
.doorHanger:before,
.doorHangerRight:before {
- border-bottom-color: hsla(0,0%,0%,.5);
+ border-bottom-color: hsla(0, 0%, 0%, 0.5);
border-width: 9px;
}
-html[dir='ltr'] .doorHanger:after,
-html[dir='rtl'] .doorHangerRight:after {
+html[dir="ltr"] .doorHanger:after,
+html[dir="rtl"] .doorHangerRight:after {
left: 13px;
margin-left: -8px;
}
-html[dir='ltr'] .doorHanger:before,
-html[dir='rtl'] .doorHangerRight:before {
+html[dir="ltr"] .doorHanger:before,
+html[dir="rtl"] .doorHangerRight:before {
left: 13px;
margin-left: -9px;
}
-html[dir='rtl'] .doorHanger:after,
-html[dir='ltr'] .doorHangerRight:after {
+html[dir="rtl"] .doorHanger:after,
+html[dir="ltr"] .doorHangerRight:after {
right: 13px;
margin-right: -8px;
}
-html[dir='rtl'] .doorHanger:before,
-html[dir='ltr'] .doorHangerRight:before {
+html[dir="rtl"] .doorHanger:before,
+html[dir="ltr"] .doorHangerRight:before {
right: 13px;
margin-right: -9px;
}
#findMsg {
font-style: italic;
- color: #A6B7D0;
+ color: #a6b7d0;
}
.notFound {
background-color: rgb(255, 137, 153);
}
-html[dir='ltr'] #toolbarViewerLeft {
+html[dir="ltr"] #toolbarViewerLeft {
margin-left: -1px;
}
-html[dir='rtl'] #toolbarViewerRight {
+html[dir="rtl"] #toolbarViewerRight {
margin-right: -1px;
}
-html[dir='ltr'] #toolbarViewerLeft,
-html[dir='rtl'] #toolbarViewerRight {
+html[dir="ltr"] #toolbarViewerLeft,
+html[dir="rtl"] #toolbarViewerRight {
position: absolute;
top: 0;
left: 0;
}
-html[dir='ltr'] #toolbarViewerRight,
-html[dir='rtl'] #toolbarViewerLeft {
+html[dir="ltr"] #toolbarViewerRight,
+html[dir="rtl"] #toolbarViewerLeft {
position: absolute;
top: 0;
right: 0;
}
-html[dir='ltr'] #toolbarViewerLeft > *,
-html[dir='ltr'] #toolbarViewerMiddle > *,
-html[dir='ltr'] #toolbarViewerRight > *,
-html[dir='ltr'] .findbar > * {
+html[dir="ltr"] #toolbarViewerLeft > *,
+html[dir="ltr"] #toolbarViewerMiddle > *,
+html[dir="ltr"] #toolbarViewerRight > *,
+html[dir="ltr"] .findbar > * {
position: relative;
float: left;
}
-html[dir='rtl'] #toolbarViewerLeft > *,
-html[dir='rtl'] #toolbarViewerMiddle > *,
-html[dir='rtl'] #toolbarViewerRight > *,
-html[dir='rtl'] .findbar > * {
+html[dir="rtl"] #toolbarViewerLeft > *,
+html[dir="rtl"] #toolbarViewerMiddle > *,
+html[dir="rtl"] #toolbarViewerRight > *,
+html[dir="rtl"] .findbar > * {
position: relative;
float: right;
}
-html[dir='ltr'] .splitToolbarButton {
+html[dir="ltr"] .splitToolbarButton {
margin: 3px 2px 4px 0;
display: inline-block;
}
-html[dir='rtl'] .splitToolbarButton {
+html[dir="rtl"] .splitToolbarButton {
margin: 3px 0 4px 2px;
display: inline-block;
}
-html[dir='ltr'] .splitToolbarButton > .toolbarButton {
+html[dir="ltr"] .splitToolbarButton > .toolbarButton {
border-radius: 0;
float: left;
}
-html[dir='rtl'] .splitToolbarButton > .toolbarButton {
+html[dir="rtl"] .splitToolbarButton > .toolbarButton {
border-radius: 0;
float: right;
}
@@ -693,7 +714,7 @@ html[dir='rtl'] .splitToolbarButton > .toolbarButton {
.toolbarButton[disabled],
.secondaryToolbarButton[disabled],
.overlayButton[disabled] {
- opacity: .5;
+ opacity: 0.5;
}
.toolbarButton.group {
@@ -708,11 +729,15 @@ html[dir='rtl'] .splitToolbarButton > .toolbarButton {
.splitToolbarButton:focus > .toolbarButton,
.splitToolbarButton.toggled > .toolbarButton,
.toolbarButton.textButton {
- background-color: hsla(0,0%,0%,.12);
- background-image: linear-gradient(hsla(0,0%,100%,.05), hsla(0,0%,100%,0));
+ background-color: hsla(0, 0%, 0%, 0.12);
+ background-image: linear-gradient(
+ hsla(0, 0%, 100%, 0.05),
+ hsla(0, 0%, 100%, 0)
+ );
background-clip: padding-box;
- border: 1px solid hsla(0,0%,0%,.35);
- border-color: hsla(0,0%,0%,.32) hsla(0,0%,0%,.38) hsla(0,0%,0%,.42);
+ border: 1px solid hsla(0, 0%, 0%, 0.35);
+ border-color: hsla(0, 0%, 0%, 0.32) hsla(0, 0%, 0%, 0.38)
+ hsla(0, 0%, 0%, 0.42);
/*box-shadow: 0 1px 0 hsla(0,0%,100%,.05) inset,
0 0 1px hsla(0,0%,100%,.15) inset,
0 1px 0 hsla(0,0%,100%,.05);*/
@@ -722,7 +747,6 @@ html[dir='rtl'] .splitToolbarButton > .toolbarButton {
transition-property: background-color, border-color, box-shadow;
transition-duration: 150ms;
transition-timing-function: ease;
-
}
.splitToolbarButton > .toolbarButton:hover,
.splitToolbarButton > .toolbarButton:focus,
@@ -730,7 +754,7 @@ html[dir='rtl'] .splitToolbarButton > .toolbarButton {
.overlayButton:hover,
.toolbarButton.textButton:hover,
.toolbarButton.textButton:focus {
- background-color: hsla(0,0%,0%,.2);
+ background-color: hsla(0, 0%, 0%, 0.2);
/*box-shadow: 0 1px 0 hsla(0,0%,100%,.05) inset,
0 0 1px hsla(0,0%,100%,.15) inset,
0 0 1px hsla(0,0%,0%,.05);*/
@@ -739,8 +763,8 @@ html[dir='rtl'] .splitToolbarButton > .toolbarButton {
.splitToolbarButton > .toolbarButton {
position: relative;
}
-html[dir='ltr'] .splitToolbarButton > .toolbarButton:first-child,
-html[dir='rtl'] .splitToolbarButton > .toolbarButton:last-child {
+html[dir="ltr"] .splitToolbarButton > .toolbarButton:first-child,
+html[dir="rtl"] .splitToolbarButton > .toolbarButton:last-child {
position: relative;
margin: 0;
margin-right: -1px;
@@ -748,8 +772,8 @@ html[dir='rtl'] .splitToolbarButton > .toolbarButton:last-child {
border-bottom-left-radius: 2px;
border-right-color: transparent;
}
-html[dir='ltr'] .splitToolbarButton > .toolbarButton:last-child,
-html[dir='rtl'] .splitToolbarButton > .toolbarButton:first-child {
+html[dir="ltr"] .splitToolbarButton > .toolbarButton:last-child,
+html[dir="rtl"] .splitToolbarButton > .toolbarButton:first-child {
position: relative;
margin: 0;
margin-left: -1px;
@@ -760,16 +784,16 @@ html[dir='rtl'] .splitToolbarButton > .toolbarButton:first-child {
.splitToolbarButtonSeparator {
padding: 8px 0;
width: 1px;
- background-color: hsla(0,0%,0%,.5);
+ background-color: hsla(0, 0%, 0%, 0.5);
z-index: 99;
/*box-shadow: 0 0 0 1px hsla(0,0%,100%,.08);*/
display: inline-block;
margin: 5px 0;
}
-html[dir='ltr'] .splitToolbarButtonSeparator {
+html[dir="ltr"] .splitToolbarButtonSeparator {
float: left;
}
-html[dir='rtl'] .splitToolbarButtonSeparator {
+html[dir="rtl"] .splitToolbarButtonSeparator {
float: right;
}
.splitToolbarButton:hover > .splitToolbarButtonSeparator,
@@ -793,7 +817,7 @@ html[dir='rtl'] .splitToolbarButtonSeparator {
padding: 2px 6px 0;
border: 1px solid transparent;
border-radius: 2px;
- color: hsla(0,0%,100%,.8);
+ color: hsla(0, 0%, 100%, 0.8);
font-size: 12px;
line-height: 14px;
-webkit-user-select: none;
@@ -809,14 +833,14 @@ html[dir='rtl'] .splitToolbarButtonSeparator {
transition-timing-function: ease;
}
-html[dir='ltr'] .toolbarButton,
-html[dir='ltr'] .overlayButton,
-html[dir='ltr'] .dropdownToolbarButton {
+html[dir="ltr"] .toolbarButton,
+html[dir="ltr"] .overlayButton,
+html[dir="ltr"] .dropdownToolbarButton {
margin: 3px 2px 4px 0;
}
-html[dir='rtl'] .toolbarButton,
-html[dir='rtl'] .overlayButton,
-html[dir='rtl'] .dropdownToolbarButton {
+html[dir="rtl"] .toolbarButton,
+html[dir="rtl"] .overlayButton,
+html[dir="rtl"] .dropdownToolbarButton {
margin: 3px 0 4px 2px;
}
@@ -826,11 +850,15 @@ html[dir='rtl'] .dropdownToolbarButton {
.overlayButton,
.secondaryToolbarButton:hover,
.secondaryToolbarButton:focus {
- background-color: hsla(0,0%,0%,.12);
- background-image: linear-gradient(hsla(0,0%,100%,.05), hsla(0,0%,100%,0));
+ background-color: hsla(0, 0%, 0%, 0.12);
+ background-image: linear-gradient(
+ hsla(0, 0%, 100%, 0.05),
+ hsla(0, 0%, 100%, 0)
+ );
background-clip: padding-box;
- border: 1px solid hsla(0,0%,0%,.35);
- border-color: hsla(0,0%,0%,.32) hsla(0,0%,0%,.38) hsla(0,0%,0%,.42);
+ border: 1px solid hsla(0, 0%, 0%, 0.35);
+ border-color: hsla(0, 0%, 0%, 0.32) hsla(0, 0%, 0%, 0.38)
+ hsla(0, 0%, 0%, 0.42);
/*box-shadow: 0 1px 0 hsla(0,0%,100%,.05) inset,
0 0 1px hsla(0,0%,100%,.15) inset,
0 1px 0 hsla(0,0%,100%,.05);*/
@@ -840,9 +868,12 @@ html[dir='rtl'] .dropdownToolbarButton {
.overlayButton:hover:active,
.dropdownToolbarButton:hover:active,
.secondaryToolbarButton:hover:active {
- background-color: hsla(0,0%,0%,.2);
- background-image: linear-gradient(hsla(0,0%,100%,.05), hsla(0,0%,100%,0));
- border-color: hsla(0,0%,0%,.35) hsla(0,0%,0%,.4) hsla(0,0%,0%,.45);
+ background-color: hsla(0, 0%, 0%, 0.2);
+ background-image: linear-gradient(
+ hsla(0, 0%, 100%, 0.05),
+ hsla(0, 0%, 100%, 0)
+ );
+ border-color: hsla(0, 0%, 0%, 0.35) hsla(0, 0%, 0%, 0.4) hsla(0, 0%, 0%, 0.45);
/*box-shadow: 0 1px 1px hsla(0,0%,0%,.1) inset,
0 0 1px hsla(0,0%,0%,.2) inset,
0 1px 0 hsla(0,0%,100%,.05);*/
@@ -857,9 +888,12 @@ html[dir='rtl'] .dropdownToolbarButton {
.toolbarButton.toggled,
.splitToolbarButton.toggled > .toolbarButton.toggled,
.secondaryToolbarButton.toggled {
- background-color: hsla(0,0%,0%,.3);
- background-image: linear-gradient(hsla(0,0%,100%,.05), hsla(0,0%,100%,0));
- border-color: hsla(0,0%,0%,.4) hsla(0,0%,0%,.45) hsla(0,0%,0%,.5);
+ background-color: hsla(0, 0%, 0%, 0.3);
+ background-image: linear-gradient(
+ hsla(0, 0%, 100%, 0.05),
+ hsla(0, 0%, 100%, 0)
+ );
+ border-color: hsla(0, 0%, 0%, 0.4) hsla(0, 0%, 0%, 0.45) hsla(0, 0%, 0%, 0.5);
/*box-shadow: 0 1px 1px hsla(0,0%,0%,.1) inset,
0 0 1px hsla(0,0%,0%,.2) inset,
0 1px 0 hsla(0,0%,100%,.05);*/
@@ -874,8 +908,8 @@ html[dir='rtl'] .dropdownToolbarButton {
.toolbarButton.toggled:hover:active,
.splitToolbarButton.toggled > .toolbarButton.toggled:hover:active,
.secondaryToolbarButton.toggled:hover:active {
- background-color: hsla(0,0%,0%,.4);
- border-color: hsla(0,0%,0%,.4) hsla(0,0%,0%,.5) hsla(0,0%,0%,.55);
+ background-color: hsla(0, 0%, 0%, 0.4);
+ border-color: hsla(0, 0%, 0%, 0.4) hsla(0, 0%, 0%, 0.5) hsla(0, 0%, 0%, 0.55);
/*box-shadow: 0 1px 1px hsla(0,0%,0%,.2) inset,
0 0 1px hsla(0,0%,0%,.3) inset,
0 1px 0 hsla(0,0%,100%,.05);*/
@@ -888,10 +922,10 @@ html[dir='rtl'] .dropdownToolbarButton {
overflow: hidden;
background: url(/static/images/toolbarButton-menuArrows.png) no-repeat;
}
-html[dir='ltr'] .dropdownToolbarButton {
+html[dir="ltr"] .dropdownToolbarButton {
background-position: 95%;
}
-html[dir='rtl'] .dropdownToolbarButton {
+html[dir="rtl"] .dropdownToolbarButton {
background-position: 5%;
}
@@ -900,15 +934,20 @@ html[dir='rtl'] .dropdownToolbarButton {
-moz-appearance: none; /* in the future this might matter, see bugzilla bug #649849 */
min-width: 140px;
font-size: 12px;
- color: hsl(0,0%,95%);
+ color: hsl(0, 0%, 95%);
margin: 0;
padding: 0;
border: none;
- background: rgba(0,0,0,0); /* Opera does not support 'transparent' background */
+ background: rgba(
+ 0,
+ 0,
+ 0,
+ 0
+ ); /* Opera does not support 'transparent' background */
}
.dropdownToolbarButton > select > option {
- background: hsl(0,0%,24%);
+ background: hsl(0, 0%, 24%);
}
#customScaleOption {
@@ -916,19 +955,19 @@ html[dir='rtl'] .dropdownToolbarButton {
}
#pageWidthOption {
- border-bottom: 1px rgba(255, 255, 255, .5) solid;
+ border-bottom: 1px rgba(255, 255, 255, 0.5) solid;
}
-html[dir='ltr'] .splitToolbarButton:first-child,
-html[dir='ltr'] .toolbarButton:first-child,
-html[dir='rtl'] .splitToolbarButton:last-child,
-html[dir='rtl'] .toolbarButton:last-child {
+html[dir="ltr"] .splitToolbarButton:first-child,
+html[dir="ltr"] .toolbarButton:first-child,
+html[dir="rtl"] .splitToolbarButton:last-child,
+html[dir="rtl"] .toolbarButton:last-child {
margin-left: 4px;
}
-html[dir='ltr'] .splitToolbarButton:last-child,
-html[dir='ltr'] .toolbarButton:last-child,
-html[dir='rtl'] .splitToolbarButton:first-child,
-html[dir='rtl'] .toolbarButton:first-child {
+html[dir="ltr"] .splitToolbarButton:last-child,
+html[dir="ltr"] .toolbarButton:last-child,
+html[dir="rtl"] .splitToolbarButton:first-child,
+html[dir="rtl"] .toolbarButton:first-child {
margin-right: 4px;
}
@@ -944,17 +983,17 @@ html[dir='rtl'] .toolbarButton:first-child {
min-width: 30px;
}
-html[dir='ltr'] #findPrevious {
+html[dir="ltr"] #findPrevious {
margin-left: 3px;
}
-html[dir='ltr'] #findNext {
+html[dir="ltr"] #findNext {
margin-right: 3px;
}
-html[dir='rtl'] #findPrevious {
+html[dir="rtl"] #findPrevious {
margin-right: 3px;
}
-html[dir='rtl'] #findNext {
+html[dir="rtl"] #findNext {
margin-left: 3px;
}
@@ -975,45 +1014,45 @@ html[dir="rtl"] .secondaryToolbarButton::before {
right: 4px;
}
-html[dir='ltr'] .toolbarButton#sidebarToggle::before {
+html[dir="ltr"] .toolbarButton#sidebarToggle::before {
content: url(/static/images/toolbarButton-sidebarToggle.png);
}
-html[dir='rtl'] .toolbarButton#sidebarToggle::before {
+html[dir="rtl"] .toolbarButton#sidebarToggle::before {
content: url(/static/images/toolbarButton-sidebarToggle-rtl.png);
}
-html[dir='ltr'] .toolbarButton#secondaryToolbarToggle::before {
+html[dir="ltr"] .toolbarButton#secondaryToolbarToggle::before {
content: url(/static/images/toolbarButton-secondaryToolbarToggle.png);
}
-html[dir='rtl'] .toolbarButton#secondaryToolbarToggle::before {
+html[dir="rtl"] .toolbarButton#secondaryToolbarToggle::before {
content: url(/static/images/toolbarButton-secondaryToolbarToggle-rtl.png);
}
-html[dir='ltr'] .toolbarButton.findPrevious::before {
+html[dir="ltr"] .toolbarButton.findPrevious::before {
content: url(/static/images/findbarButton-previous.png);
}
-html[dir='rtl'] .toolbarButton.findPrevious::before {
+html[dir="rtl"] .toolbarButton.findPrevious::before {
content: url(/static/images/findbarButton-previous-rtl.png);
}
-html[dir='ltr'] .toolbarButton.findNext::before {
+html[dir="ltr"] .toolbarButton.findNext::before {
content: url(/static/images/findbarButton-next.png);
}
-html[dir='rtl'] .toolbarButton.findNext::before {
+html[dir="rtl"] .toolbarButton.findNext::before {
content: url(/static/images/findbarButton-next-rtl.png);
}
-html[dir='ltr'] .toolbarButton.pageUp::before {
+html[dir="ltr"] .toolbarButton.pageUp::before {
content: url(/static/images/toolbarButton-pageUp.png);
}
-html[dir='rtl'] .toolbarButton.pageUp::before {
+html[dir="rtl"] .toolbarButton.pageUp::before {
content: url(/static/images/toolbarButton-pageUp-rtl.png);
}
-html[dir='ltr'] .toolbarButton.pageDown::before {
+html[dir="ltr"] .toolbarButton.pageDown::before {
content: url(/static/images/toolbarButton-pageDown.png);
}
-html[dir='rtl'] .toolbarButton.pageDown::before {
+html[dir="rtl"] .toolbarButton.pageDown::before {
content: url(/static/images/toolbarButton-pageDown-rtl.png);
}
@@ -1058,8 +1097,8 @@ html[dir='rtl'] .toolbarButton.pageDown::before {
padding-top: 5px;
}
-.bookmark[href='#'] {
- opacity: .5;
+.bookmark[href="#"] {
+ opacity: 0.5;
pointer-events: none;
}
@@ -1148,13 +1187,13 @@ html[dir="rtl"] .secondaryToolbarButton > span {
padding: 8px 0;
margin: 8px 4px;
width: 1px;
- background-color: hsla(0,0%,0%,.5);
+ background-color: hsla(0, 0%, 0%, 0.5);
/*box-shadow: 0 0 0 1px hsla(0,0%,100%,.08);*/
}
-html[dir='ltr'] .verticalToolbarSeparator {
+html[dir="ltr"] .verticalToolbarSeparator {
margin-left: 2px;
}
-html[dir='rtl'] .verticalToolbarSeparator {
+html[dir="rtl"] .verticalToolbarSeparator {
margin-right: 2px;
}
@@ -1163,7 +1202,7 @@ html[dir='rtl'] .verticalToolbarSeparator {
margin: 0 0 4px 0;
height: 1px;
width: 100%;
- background-color: hsla(0,0%,0%,.5);
+ background-color: hsla(0, 0%, 0%, 0.5);
/*box-shadow: 0 0 0 1px hsla(0,0%,100%,.08);*/
}
@@ -1172,14 +1211,18 @@ html[dir='rtl'] .verticalToolbarSeparator {
margin: 4px 0 4px 0;
border: 1px solid transparent;
border-radius: 2px;
- background-color: hsla(0,0%,100%,.09);
- background-image: linear-gradient(hsla(0,0%,100%,.05), hsla(0,0%,100%,0));
+ background-color: hsla(0, 0%, 100%, 0.09);
+ background-image: linear-gradient(
+ hsla(0, 0%, 100%, 0.05),
+ hsla(0, 0%, 100%, 0)
+ );
background-clip: padding-box;
- border: 1px solid hsla(0,0%,0%,.35);
- border-color: hsla(0,0%,0%,.32) hsla(0,0%,0%,.38) hsla(0,0%,0%,.42);
+ border: 1px solid hsla(0, 0%, 0%, 0.35);
+ border-color: hsla(0, 0%, 0%, 0.32) hsla(0, 0%, 0%, 0.38)
+ hsla(0, 0%, 0%, 0.42);
/*box-shadow: 0 1px 0 hsla(0,0%,0%,.05) inset,
0 1px 0 hsla(0,0%,100%,.05);*/
- color: hsl(0,0%,95%);
+ color: hsl(0, 0%, 95%);
font-size: 12px;
line-height: 14px;
outline-style: none;
@@ -1188,7 +1231,7 @@ html[dir='rtl'] .verticalToolbarSeparator {
transition-timing-function: ease;
}
-.toolbarField[type=checkbox] {
+.toolbarField[type="checkbox"] {
display: inline-block;
margin: 8px 0px;
}
@@ -1208,18 +1251,19 @@ html[dir='rtl'] .verticalToolbarSeparator {
.toolbarField.pageNumber::-webkit-inner-spin-button,
.toolbarField.pageNumber::-webkit-outer-spin-button {
- -webkit-appearance: none;
- margin: 0;
+ -webkit-appearance: none;
+ margin: 0;
}
.toolbarField:hover {
- background-color: hsla(0,0%,100%,.11);
- border-color: hsla(0,0%,0%,.4) hsla(0,0%,0%,.43) hsla(0,0%,0%,.45);
+ background-color: hsla(0, 0%, 100%, 0.11);
+ border-color: hsla(0, 0%, 0%, 0.4) hsla(0, 0%, 0%, 0.43) hsla(0, 0%, 0%, 0.45);
}
.toolbarField:focus {
- background-color: hsla(0,0%,100%,.15);
- border-color: hsla(204,100%,65%,.8) hsla(204,100%,65%,.85) hsla(204,100%,65%,.9);
+ background-color: hsla(0, 0%, 100%, 0.15);
+ border-color: hsla(204, 100%, 65%, 0.8) hsla(204, 100%, 65%, 0.85)
+ hsla(204, 100%, 65%, 0.9);
}
.toolbarLabel {
@@ -1228,7 +1272,7 @@ html[dir='rtl'] .verticalToolbarSeparator {
margin: 4px 2px 4px 0;
border: 1px solid transparent;
border-radius: 2px;
- color: hsl(0,0%,85%);
+ color: hsl(0, 0%, 85%);
font-size: 12px;
line-height: 14px;
text-align: left;
@@ -1277,18 +1321,21 @@ html[dir='rtl'] .verticalToolbarSeparator {
a:focus > .thumbnail > .thumbnailSelectionRing > .thumbnailImage,
.thumbnail:hover > .thumbnailSelectionRing > .thumbnailImage {
- opacity: .9;
+ opacity: 0.9;
}
a:focus > .thumbnail > .thumbnailSelectionRing,
.thumbnail:hover > .thumbnailSelectionRing {
- background-color: hsla(0,0%,100%,.15);
- background-image: linear-gradient(hsla(0,0%,100%,.05), hsla(0,0%,100%,0));
+ background-color: hsla(0, 0%, 100%, 0.15);
+ background-image: linear-gradient(
+ hsla(0, 0%, 100%, 0.05),
+ hsla(0, 0%, 100%, 0)
+ );
background-clip: padding-box;
/*box-shadow: 0 1px 0 hsla(0,0%,100%,.05) inset,
0 0 1px hsla(0,0%,100%,.2) inset,
0 0 1px hsla(0,0%,0%,.2);*/
- color: hsla(0,0%,100%,.9);
+ color: hsla(0, 0%, 100%, 0.9);
}
.thumbnail.selected > .thumbnailSelectionRing > .thumbnailImage {
@@ -1297,13 +1344,16 @@ a:focus > .thumbnail > .thumbnailSelectionRing,
}
.thumbnail.selected > .thumbnailSelectionRing {
- background-color: hsla(0,0%,100%,.3);
- background-image: linear-gradient(hsla(0,0%,100%,.05), hsla(0,0%,100%,0));
+ background-color: hsla(0, 0%, 100%, 0.3);
+ background-image: linear-gradient(
+ hsla(0, 0%, 100%, 0.05),
+ hsla(0, 0%, 100%, 0)
+ );
background-clip: padding-box;
/*box-shadow: 0 1px 0 hsla(0,0%,100%,.05) inset,
0 0 1px hsla(0,0%,100%,.1) inset,
0 0 1px hsla(0,0%,0%,.2);*/
- color: hsla(0,0%,100%,1);
+ color: hsla(0, 0%, 100%, 1);
}
#outlineView,
@@ -1325,11 +1375,11 @@ a:focus > .thumbnail > .thumbnailSelectionRing,
padding: 3px 4px 0;
}
-html[dir='ltr'] .outlineItem > .outlineItems {
+html[dir="ltr"] .outlineItem > .outlineItems {
margin-left: 20px;
}
-html[dir='rtl'] .outlineItem > .outlineItems {
+html[dir="rtl"] .outlineItem > .outlineItems {
margin-right: 20px;
}
@@ -1341,7 +1391,7 @@ html[dir='rtl'] .outlineItem > .outlineItems {
height: auto;
margin-bottom: 1px;
border-radius: 2px;
- color: hsla(0,0%,100%,.8);
+ color: hsla(0, 0%, 100%, 0.8);
font-size: 13px;
line-height: 15px;
-moz-user-select: none;
@@ -1355,65 +1405,78 @@ html[dir='rtl'] .outlineItem > .outlineItems {
width: 100%;
}
-html[dir='ltr'] .outlineItem > a {
+html[dir="ltr"] .outlineItem > a {
padding: 2px 0 5px 10px;
}
-html[dir='ltr'] .attachmentsItem > button {
+html[dir="ltr"] .attachmentsItem > button {
padding: 2px 0 3px 7px;
text-align: left;
}
-html[dir='rtl'] .outlineItem > a {
+html[dir="rtl"] .outlineItem > a {
padding: 2px 10px 5px 0;
}
-html[dir='rtl'] .attachmentsItem > button {
+html[dir="rtl"] .attachmentsItem > button {
padding: 2px 7px 3px 0;
text-align: right;
}
.outlineItem > a:hover,
.attachmentsItem > button:hover {
- background-color: hsla(0,0%,100%,.02);
- background-image: linear-gradient(hsla(0,0%,100%,.05), hsla(0,0%,100%,0));
+ background-color: hsla(0, 0%, 100%, 0.02);
+ background-image: linear-gradient(
+ hsla(0, 0%, 100%, 0.05),
+ hsla(0, 0%, 100%, 0)
+ );
background-clip: padding-box;
/*box-shadow: 0 1px 0 hsla(0,0%,100%,.05) inset,
0 0 1px hsla(0,0%,100%,.2) inset,
0 0 1px hsla(0,0%,0%,.2);*/
- color: hsla(0,0%,100%,.9);
+ color: hsla(0, 0%, 100%, 0.9);
}
.outlineItem.selected {
- background-color: hsla(0,0%,100%,.08);
- background-image: linear-gradient(hsla(0,0%,100%,.05), hsla(0,0%,100%,0));
+ background-color: hsla(0, 0%, 100%, 0.08);
+ background-image: linear-gradient(
+ hsla(0, 0%, 100%, 0.05),
+ hsla(0, 0%, 100%, 0)
+ );
background-clip: padding-box;
/*box-shadow: 0 1px 0 hsla(0,0%,100%,.05) inset,
0 0 1px hsla(0,0%,100%,.1) inset,
0 0 1px hsla(0,0%,0%,.2);*/
- color: hsla(0,0%,100%,1);
+ color: hsla(0, 0%, 100%, 1);
}
.noResults {
font-size: 12px;
- color: hsla(0,0%,100%,.8);
+ color: hsla(0, 0%, 100%, 0.8);
font-style: italic;
cursor: default;
}
-
/* TODO: file FF bug to support ::-moz-selection:window-inactive
so we can override the opaque grey background when the window is inactive;
see https://bugzilla.mozilla.org/show_bug.cgi?id=706209 */
-::selection { background: rgba(0,0,255,0.3); }
-::-moz-selection { background: rgba(0,0,255,0.3); }
+::selection {
+ background: rgba(0, 0, 255, 0.3);
+}
+::-moz-selection {
+ background: rgba(0, 0, 255, 0.3);
+}
-.textLayer ::selection { background: rgb(0,0,255); }
-.textLayer ::-moz-selection { background: rgb(0,0,255); }
+.textLayer ::selection {
+ background: rgb(0, 0, 255);
+}
+.textLayer ::-moz-selection {
+ background: rgb(0, 0, 255);
+}
.textLayer {
opacity: 0.2;
}
#errorWrapper {
- background: none repeat scroll 0 0 #FF5555;
+ background: none repeat scroll 0 0 #ff5555;
color: white;
left: 0;
position: absolute;
@@ -1435,7 +1498,7 @@ html[dir='rtl'] .attachmentsItem > button {
}
#errorMoreInfo {
- background-color: #FFFFFF;
+ background-color: #ffffff;
color: black;
padding: 3px;
margin: 3px;
@@ -1453,7 +1516,7 @@ html[dir='rtl'] .attachmentsItem > button {
position: absolute;
width: 100%;
height: 100%;
- background-color: hsla(0,0%,0%,.2);
+ background-color: hsla(0, 0%, 0%, 0.2);
z-index: 40000;
}
#overlayContainer > * {
@@ -1471,16 +1534,16 @@ html[dir='rtl'] .attachmentsItem > button {
display: inline-block;
padding: 15px;
border-spacing: 4px;
- color: hsl(0,0%,85%);
+ color: hsl(0, 0%, 85%);
font-size: 12px;
line-height: 14px;
background-color: #777;
-/* box-shadow: inset 1px 0 0 hsla(0,0%,100%,.08),
+ /* box-shadow: inset 1px 0 0 hsla(0,0%,100%,.08),
inset 0 1px 1px hsla(0,0%,0%,.15),
inset 0 -1px 0 hsla(0,0%,100%,.05),
0 1px 0 hsla(0,0%,0%,.15),
0 1px 1px hsla(0,0%,0%,.1);*/
- border: 1px solid hsla(0,0%,0%,.5);
+ border: 1px solid hsla(0, 0%, 0%, 0.5);
border-radius: 4px;
/*box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);*/
}
@@ -1498,7 +1561,8 @@ html[dir='rtl'] .attachmentsItem > button {
}
.dialog .toolbarField:hover,
.dialog .toolbarField:focus {
- border-color: hsla(0,0%,0%,.32) hsla(0,0%,0%,.38) hsla(0,0%,0%,.42);
+ border-color: hsla(0, 0%, 0%, 0.32) hsla(0, 0%, 0%, 0.38)
+ hsla(0, 0%, 0%, 0.42);
}
.dialog .separator {
@@ -1506,7 +1570,7 @@ html[dir='rtl'] .attachmentsItem > button {
margin: 4px 0 4px 0;
height: 1px;
width: 100%;
- background-color: hsla(0,0%,0%,.5);
+ background-color: hsla(0, 0%, 0%, 0.5);
/*box-shadow: 0 0 0 1px hsla(0,0%,100%,.08);*/
}
@@ -1528,10 +1592,10 @@ html[dir='rtl'] .attachmentsItem > button {
#documentPropertiesOverlay .row > * {
min-width: 100px;
}
-html[dir='ltr'] #documentPropertiesOverlay .row > * {
+html[dir="ltr"] #documentPropertiesOverlay .row > * {
text-align: left;
}
-html[dir='rtl'] #documentPropertiesOverlay .row > * {
+html[dir="rtl"] #documentPropertiesOverlay .row > * {
text-align: right;
}
#documentPropertiesOverlay .row > span {
@@ -1572,9 +1636,9 @@ html[dir='rtl'] #documentPropertiesOverlay .row > * {
width: 300px;
}
#PDFBug .controls {
- background:#EEEEEE;
- border-bottom: 1px solid #666666;
- padding: 3px;
+ background: #eeeeee;
+ border-bottom: 1px solid #666666;
+ padding: 3px;
}
#PDFBug .panels {
bottom: 0;
@@ -1601,7 +1665,7 @@ html[dir='rtl'] #documentPropertiesOverlay .row > * {
white-space: pre;
}
#PDFBug .stats .title {
- font-weight: bold;
+ font-weight: bold;
}
#PDFBug table {
font-size: 10px;
@@ -1614,7 +1678,7 @@ html[dir='rtl'] #documentPropertiesOverlay .row > * {
}
#viewer.textLayer-shadow .textLayer > div {
- background-color: rgba(255,255,255, .6);
+ background-color: rgba(255, 255, 255, 0.6);
color: black;
}
@@ -1624,7 +1688,8 @@ html[dir='rtl'] #documentPropertiesOverlay .row > * {
cursor: -moz-grab !important;
cursor: grab !important;
}
-.grab-to-pan-grab *:not(input):not(textarea):not(button):not(select):not(:link) {
+.grab-to-pan-grab
+ *:not(input):not(textarea):not(button):not(select):not(:link) {
cursor: inherit !important;
}
.grab-to-pan-grab:active,
@@ -1667,15 +1732,15 @@ html[dir='rtl'] #documentPropertiesOverlay .row > * {
top: -4px;
}
- html[dir='ltr'] .toolbarButton::before,
- html[dir='rtl'] .toolbarButton::before {
+ html[dir="ltr"] .toolbarButton::before,
+ html[dir="rtl"] .toolbarButton::before {
left: -1px;
}
- html[dir='ltr'] .secondaryToolbarButton::before {
+ html[dir="ltr"] .secondaryToolbarButton::before {
left: -2px;
}
- html[dir='rtl'] .secondaryToolbarButton::before {
+ html[dir="rtl"] .secondaryToolbarButton::before {
left: 186px;
}
@@ -1690,45 +1755,45 @@ html[dir='rtl'] #documentPropertiesOverlay .row > * {
background-size: 7px 16px;
}
- html[dir='ltr'] .toolbarButton#sidebarToggle::before {
+ html[dir="ltr"] .toolbarButton#sidebarToggle::before {
content: url(/static/images/toolbarButton-sidebarToggle@2x.png);
}
- html[dir='rtl'] .toolbarButton#sidebarToggle::before {
+ html[dir="rtl"] .toolbarButton#sidebarToggle::before {
content: url(/static/images/toolbarButton-sidebarToggle-rtl@2x.png);
}
- html[dir='ltr'] .toolbarButton#secondaryToolbarToggle::before {
+ html[dir="ltr"] .toolbarButton#secondaryToolbarToggle::before {
content: url(/static/images/toolbarButton-secondaryToolbarToggle@2x.png);
}
- html[dir='rtl'] .toolbarButton#secondaryToolbarToggle::before {
+ html[dir="rtl"] .toolbarButton#secondaryToolbarToggle::before {
content: url(/static/images/toolbarButton-secondaryToolbarToggle-rtl@2x.png);
}
- html[dir='ltr'] .toolbarButton.findPrevious::before {
+ html[dir="ltr"] .toolbarButton.findPrevious::before {
content: url(/static/images/findbarButton-previous@2x.png);
}
- html[dir='rtl'] .toolbarButton.findPrevious::before {
+ html[dir="rtl"] .toolbarButton.findPrevious::before {
content: url(/static/images/findbarButton-previous-rtl@2x.png);
}
- html[dir='ltr'] .toolbarButton.findNext::before {
+ html[dir="ltr"] .toolbarButton.findNext::before {
content: url(/static/images/findbarButton-next@2x.png);
}
- html[dir='rtl'] .toolbarButton.findNext::before {
+ html[dir="rtl"] .toolbarButton.findNext::before {
content: url(/static/images/findbarButton-next-rtl@2x.png);
}
- html[dir='ltr'] .toolbarButton.pageUp::before {
+ html[dir="ltr"] .toolbarButton.pageUp::before {
content: url(/static/images/toolbarButton-pageUp@2x.png);
}
- html[dir='rtl'] .toolbarButton.pageUp::before {
+ html[dir="rtl"] .toolbarButton.pageUp::before {
content: url(/static/images/toolbarButton-pageUp-rtl@2x.png);
}
- html[dir='ltr'] .toolbarButton.pageDown::before {
+ html[dir="ltr"] .toolbarButton.pageDown::before {
content: url(/static/images/toolbarButton-pageDown@2x.png);
}
- html[dir='rtl'] .toolbarButton.pageDown::before {
+ html[dir="rtl"] .toolbarButton.pageDown::before {
content: url(/static/images/toolbarButton-pageDown-rtl@2x.png);
}
@@ -1816,14 +1881,22 @@ html[dir='rtl'] #documentPropertiesOverlay .row > * {
}
/* Rules for browsers that don't support mozPrintCallback. */
- #sidebarContainer, #secondaryToolbar, .toolbar, #loadingBox, #errorWrapper, .textLayer {
+ #sidebarContainer,
+ #secondaryToolbar,
+ .toolbar,
+ #loadingBox,
+ #errorWrapper,
+ .textLayer {
display: none;
}
#viewerContainer {
overflow: visible;
}
- #mainContainer, #viewerContainer, .page, .page canvas {
+ #mainContainer,
+ #viewerContainer,
+ .page,
+ .page canvas {
position: static;
padding: 0;
margin: 0;
@@ -1868,13 +1941,13 @@ html[dir='rtl'] #documentPropertiesOverlay .row > * {
}
@media all and (max-width: 960px) {
- html[dir='ltr'] #outerContainer.sidebarMoving .outerCenter,
- html[dir='ltr'] #outerContainer.sidebarOpen .outerCenter {
+ html[dir="ltr"] #outerContainer.sidebarMoving .outerCenter,
+ html[dir="ltr"] #outerContainer.sidebarOpen .outerCenter {
float: left;
left: 205px;
}
- html[dir='rtl'] #outerContainer.sidebarMoving .outerCenter,
- html[dir='rtl'] #outerContainer.sidebarOpen .outerCenter {
+ html[dir="rtl"] #outerContainer.sidebarMoving .outerCenter,
+ html[dir="rtl"] #outerContainer.sidebarOpen .outerCenter {
float: right;
right: 205px;
}
@@ -1908,21 +1981,21 @@ html[dir='rtl'] #documentPropertiesOverlay .row > * {
}
#sidebarContent {
top: 32px;
- background-color: hsla(0,0%,0%,.7);
+ background-color: hsla(0, 0%, 0%, 0.7);
}
- html[dir='ltr'] #outerContainer.sidebarOpen > #mainContainer {
+ html[dir="ltr"] #outerContainer.sidebarOpen > #mainContainer {
left: 0px;
}
- html[dir='rtl'] #outerContainer.sidebarOpen > #mainContainer {
+ html[dir="rtl"] #outerContainer.sidebarOpen > #mainContainer {
right: 0px;
}
- html[dir='ltr'] .outerCenter {
+ html[dir="ltr"] .outerCenter {
float: left;
left: 205px;
}
- html[dir='rtl'] .outerCenter {
+ html[dir="rtl"] .outerCenter {
float: right;
right: 205px;
}
@@ -1962,14 +2035,14 @@ html[dir='rtl'] #documentPropertiesOverlay .row > * {
.visibleSmallView {
display: inherit;
}
- html[dir='ltr'] #outerContainer.sidebarMoving .outerCenter,
- html[dir='ltr'] #outerContainer.sidebarOpen .outerCenter,
- html[dir='ltr'] .outerCenter {
+ html[dir="ltr"] #outerContainer.sidebarMoving .outerCenter,
+ html[dir="ltr"] #outerContainer.sidebarOpen .outerCenter,
+ html[dir="ltr"] .outerCenter {
left: 156px;
}
- html[dir='rtl'] #outerContainer.sidebarMoving .outerCenter,
- html[dir='rtl'] #outerContainer.sidebarOpen .outerCenter,
- html[dir='rtl'] .outerCenter {
+ html[dir="rtl"] #outerContainer.sidebarMoving .outerCenter,
+ html[dir="rtl"] #outerContainer.sidebarOpen .outerCenter,
+ html[dir="rtl"] .outerCenter {
right: 156px;
}
.toolbarButtonSpacer {
@@ -1978,7 +2051,8 @@ html[dir='rtl'] #documentPropertiesOverlay .row > * {
}
@media all and (max-width: 510px) {
- #scaleSelectContainer, #pageNumberLabel {
+ #scaleSelectContainer,
+ #pageNumberLabel {
display: none;
}
}
diff --git a/chicago/static/fonts/glyphicons-halflings-regular.eot b/chicago/static/fonts/glyphicons-halflings-regular.eot
new file mode 100755
index 00000000..87eaa434
Binary files /dev/null and b/chicago/static/fonts/glyphicons-halflings-regular.eot differ
diff --git a/chicago/static/fonts/glyphicons-halflings-regular.svg b/chicago/static/fonts/glyphicons-halflings-regular.svg
new file mode 100755
index 00000000..6a9d1a72
--- /dev/null
+++ b/chicago/static/fonts/glyphicons-halflings-regular.svg
@@ -0,0 +1,228 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/chicago/static/fonts/glyphicons-halflings-regular.ttf b/chicago/static/fonts/glyphicons-halflings-regular.ttf
new file mode 100755
index 00000000..be784dc1
Binary files /dev/null and b/chicago/static/fonts/glyphicons-halflings-regular.ttf differ
diff --git a/chicago/static/fonts/glyphicons-halflings-regular.woff b/chicago/static/fonts/glyphicons-halflings-regular.woff
new file mode 100755
index 00000000..2cc3e485
Binary files /dev/null and b/chicago/static/fonts/glyphicons-halflings-regular.woff differ
diff --git a/chicago/static/fonts/glyphicons-halflings-regular.woff2 b/chicago/static/fonts/glyphicons-halflings-regular.woff2
new file mode 100644
index 00000000..64539b54
Binary files /dev/null and b/chicago/static/fonts/glyphicons-halflings-regular.woff2 differ
diff --git a/chicago/static/images/annotation-check.svg b/chicago/static/images/annotation-check.svg
new file mode 100644
index 00000000..71cd16df
--- /dev/null
+++ b/chicago/static/images/annotation-check.svg
@@ -0,0 +1,11 @@
+
+
+
+
diff --git a/chicago/static/images/annotation-comment.svg b/chicago/static/images/annotation-comment.svg
new file mode 100644
index 00000000..86f1f172
--- /dev/null
+++ b/chicago/static/images/annotation-comment.svg
@@ -0,0 +1,16 @@
+
+
+
+
+
diff --git a/chicago/static/images/annotation-help.svg b/chicago/static/images/annotation-help.svg
new file mode 100644
index 00000000..00938fef
--- /dev/null
+++ b/chicago/static/images/annotation-help.svg
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/chicago/static/images/annotation-insert.svg b/chicago/static/images/annotation-insert.svg
new file mode 100644
index 00000000..519ef682
--- /dev/null
+++ b/chicago/static/images/annotation-insert.svg
@@ -0,0 +1,10 @@
+
+
+
+
diff --git a/chicago/static/images/annotation-key.svg b/chicago/static/images/annotation-key.svg
new file mode 100644
index 00000000..8d09d537
--- /dev/null
+++ b/chicago/static/images/annotation-key.svg
@@ -0,0 +1,11 @@
+
+
+
+
diff --git a/chicago/static/images/annotation-newparagraph.svg b/chicago/static/images/annotation-newparagraph.svg
new file mode 100644
index 00000000..38d2497d
--- /dev/null
+++ b/chicago/static/images/annotation-newparagraph.svg
@@ -0,0 +1,11 @@
+
+
+
+
diff --git a/chicago/static/images/annotation-noicon.svg b/chicago/static/images/annotation-noicon.svg
new file mode 100644
index 00000000..c07d1080
--- /dev/null
+++ b/chicago/static/images/annotation-noicon.svg
@@ -0,0 +1,7 @@
+
+
+
diff --git a/chicago/static/images/annotation-note.svg b/chicago/static/images/annotation-note.svg
new file mode 100644
index 00000000..70173651
--- /dev/null
+++ b/chicago/static/images/annotation-note.svg
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
diff --git a/chicago/static/images/annotation-paragraph.svg b/chicago/static/images/annotation-paragraph.svg
new file mode 100644
index 00000000..6ae5212b
--- /dev/null
+++ b/chicago/static/images/annotation-paragraph.svg
@@ -0,0 +1,16 @@
+
+
+
+
+
diff --git a/chicago/static/images/findbarButton-next-rtl.png b/chicago/static/images/findbarButton-next-rtl.png
new file mode 100644
index 00000000..bef02743
Binary files /dev/null and b/chicago/static/images/findbarButton-next-rtl.png differ
diff --git a/chicago/static/images/findbarButton-next-rtl@2x.png b/chicago/static/images/findbarButton-next-rtl@2x.png
new file mode 100644
index 00000000..1da6dc94
Binary files /dev/null and b/chicago/static/images/findbarButton-next-rtl@2x.png differ
diff --git a/chicago/static/images/findbarButton-next.png b/chicago/static/images/findbarButton-next.png
new file mode 100644
index 00000000..de1d0fc9
Binary files /dev/null and b/chicago/static/images/findbarButton-next.png differ
diff --git a/chicago/static/images/findbarButton-next@2x.png b/chicago/static/images/findbarButton-next@2x.png
new file mode 100644
index 00000000..0250307c
Binary files /dev/null and b/chicago/static/images/findbarButton-next@2x.png differ
diff --git a/chicago/static/images/findbarButton-previous-rtl.png b/chicago/static/images/findbarButton-previous-rtl.png
new file mode 100644
index 00000000..de1d0fc9
Binary files /dev/null and b/chicago/static/images/findbarButton-previous-rtl.png differ
diff --git a/chicago/static/images/findbarButton-previous-rtl@2x.png b/chicago/static/images/findbarButton-previous-rtl@2x.png
new file mode 100644
index 00000000..0250307c
Binary files /dev/null and b/chicago/static/images/findbarButton-previous-rtl@2x.png differ
diff --git a/chicago/static/images/findbarButton-previous.png b/chicago/static/images/findbarButton-previous.png
new file mode 100644
index 00000000..bef02743
Binary files /dev/null and b/chicago/static/images/findbarButton-previous.png differ
diff --git a/chicago/static/images/findbarButton-previous@2x.png b/chicago/static/images/findbarButton-previous@2x.png
new file mode 100644
index 00000000..1da6dc94
Binary files /dev/null and b/chicago/static/images/findbarButton-previous@2x.png differ
diff --git a/chicago/static/images/grab.cur b/chicago/static/images/grab.cur
new file mode 100644
index 00000000..db7ad5ae
Binary files /dev/null and b/chicago/static/images/grab.cur differ
diff --git a/chicago/static/images/grabbing.cur b/chicago/static/images/grabbing.cur
new file mode 100644
index 00000000..e0dfd04e
Binary files /dev/null and b/chicago/static/images/grabbing.cur differ
diff --git a/chicago/static/images/loading-icon.gif b/chicago/static/images/loading-icon.gif
new file mode 100644
index 00000000..1c72ebb5
Binary files /dev/null and b/chicago/static/images/loading-icon.gif differ
diff --git a/chicago/static/images/loading-small.png b/chicago/static/images/loading-small.png
new file mode 100644
index 00000000..8831a805
Binary files /dev/null and b/chicago/static/images/loading-small.png differ
diff --git a/chicago/static/images/loading-small@2x.png b/chicago/static/images/loading-small@2x.png
new file mode 100644
index 00000000..b25b4452
Binary files /dev/null and b/chicago/static/images/loading-small@2x.png differ
diff --git a/chicago/static/images/secondaryToolbarButton-documentProperties.png b/chicago/static/images/secondaryToolbarButton-documentProperties.png
new file mode 100644
index 00000000..40925e25
Binary files /dev/null and b/chicago/static/images/secondaryToolbarButton-documentProperties.png differ
diff --git a/chicago/static/images/secondaryToolbarButton-documentProperties@2x.png b/chicago/static/images/secondaryToolbarButton-documentProperties@2x.png
new file mode 100644
index 00000000..adb240ea
Binary files /dev/null and b/chicago/static/images/secondaryToolbarButton-documentProperties@2x.png differ
diff --git a/chicago/static/images/secondaryToolbarButton-firstPage.png b/chicago/static/images/secondaryToolbarButton-firstPage.png
new file mode 100644
index 00000000..e68846aa
Binary files /dev/null and b/chicago/static/images/secondaryToolbarButton-firstPage.png differ
diff --git a/chicago/static/images/secondaryToolbarButton-firstPage@2x.png b/chicago/static/images/secondaryToolbarButton-firstPage@2x.png
new file mode 100644
index 00000000..3ad8af51
Binary files /dev/null and b/chicago/static/images/secondaryToolbarButton-firstPage@2x.png differ
diff --git a/chicago/static/images/secondaryToolbarButton-handTool.png b/chicago/static/images/secondaryToolbarButton-handTool.png
new file mode 100644
index 00000000..cb85a841
Binary files /dev/null and b/chicago/static/images/secondaryToolbarButton-handTool.png differ
diff --git a/chicago/static/images/secondaryToolbarButton-handTool@2x.png b/chicago/static/images/secondaryToolbarButton-handTool@2x.png
new file mode 100644
index 00000000..5c13f77f
Binary files /dev/null and b/chicago/static/images/secondaryToolbarButton-handTool@2x.png differ
diff --git a/chicago/static/images/secondaryToolbarButton-lastPage.png b/chicago/static/images/secondaryToolbarButton-lastPage.png
new file mode 100644
index 00000000..be763e0c
Binary files /dev/null and b/chicago/static/images/secondaryToolbarButton-lastPage.png differ
diff --git a/chicago/static/images/secondaryToolbarButton-lastPage@2x.png b/chicago/static/images/secondaryToolbarButton-lastPage@2x.png
new file mode 100644
index 00000000..8570984f
Binary files /dev/null and b/chicago/static/images/secondaryToolbarButton-lastPage@2x.png differ
diff --git a/chicago/static/images/secondaryToolbarButton-rotateCcw.png b/chicago/static/images/secondaryToolbarButton-rotateCcw.png
new file mode 100644
index 00000000..675d6da2
Binary files /dev/null and b/chicago/static/images/secondaryToolbarButton-rotateCcw.png differ
diff --git a/chicago/static/images/secondaryToolbarButton-rotateCcw@2x.png b/chicago/static/images/secondaryToolbarButton-rotateCcw@2x.png
new file mode 100644
index 00000000..b9e74312
Binary files /dev/null and b/chicago/static/images/secondaryToolbarButton-rotateCcw@2x.png differ
diff --git a/chicago/static/images/secondaryToolbarButton-rotateCw.png b/chicago/static/images/secondaryToolbarButton-rotateCw.png
new file mode 100644
index 00000000..e1c75988
Binary files /dev/null and b/chicago/static/images/secondaryToolbarButton-rotateCw.png differ
diff --git a/chicago/static/images/secondaryToolbarButton-rotateCw@2x.png b/chicago/static/images/secondaryToolbarButton-rotateCw@2x.png
new file mode 100644
index 00000000..cb257b41
Binary files /dev/null and b/chicago/static/images/secondaryToolbarButton-rotateCw@2x.png differ
diff --git a/chicago/static/images/shadow.png b/chicago/static/images/shadow.png
new file mode 100644
index 00000000..31d3bdb1
Binary files /dev/null and b/chicago/static/images/shadow.png differ
diff --git a/chicago/static/images/texture.png b/chicago/static/images/texture.png
new file mode 100644
index 00000000..eb5ccb5e
Binary files /dev/null and b/chicago/static/images/texture.png differ
diff --git a/chicago/static/images/toolbarButton-bookmark.png b/chicago/static/images/toolbarButton-bookmark.png
new file mode 100644
index 00000000..a187be6c
Binary files /dev/null and b/chicago/static/images/toolbarButton-bookmark.png differ
diff --git a/chicago/static/images/toolbarButton-bookmark@2x.png b/chicago/static/images/toolbarButton-bookmark@2x.png
new file mode 100644
index 00000000..4efbaa67
Binary files /dev/null and b/chicago/static/images/toolbarButton-bookmark@2x.png differ
diff --git a/chicago/static/images/toolbarButton-download.png b/chicago/static/images/toolbarButton-download.png
new file mode 100644
index 00000000..eaab35f0
Binary files /dev/null and b/chicago/static/images/toolbarButton-download.png differ
diff --git a/chicago/static/images/toolbarButton-download@2x.png b/chicago/static/images/toolbarButton-download@2x.png
new file mode 100644
index 00000000..896face4
Binary files /dev/null and b/chicago/static/images/toolbarButton-download@2x.png differ
diff --git a/chicago/static/images/toolbarButton-menuArrows.png b/chicago/static/images/toolbarButton-menuArrows.png
new file mode 100644
index 00000000..306eb43b
Binary files /dev/null and b/chicago/static/images/toolbarButton-menuArrows.png differ
diff --git a/chicago/static/images/toolbarButton-menuArrows@2x.png b/chicago/static/images/toolbarButton-menuArrows@2x.png
new file mode 100644
index 00000000..f7570bc0
Binary files /dev/null and b/chicago/static/images/toolbarButton-menuArrows@2x.png differ
diff --git a/chicago/static/images/toolbarButton-openFile.png b/chicago/static/images/toolbarButton-openFile.png
new file mode 100644
index 00000000..b5cf1bd0
Binary files /dev/null and b/chicago/static/images/toolbarButton-openFile.png differ
diff --git a/chicago/static/images/toolbarButton-openFile@2x.png b/chicago/static/images/toolbarButton-openFile@2x.png
new file mode 100644
index 00000000..91ab7659
Binary files /dev/null and b/chicago/static/images/toolbarButton-openFile@2x.png differ
diff --git a/chicago/static/images/toolbarButton-pageDown-rtl.png b/chicago/static/images/toolbarButton-pageDown-rtl.png
new file mode 100644
index 00000000..1957f79a
Binary files /dev/null and b/chicago/static/images/toolbarButton-pageDown-rtl.png differ
diff --git a/chicago/static/images/toolbarButton-pageDown-rtl@2x.png b/chicago/static/images/toolbarButton-pageDown-rtl@2x.png
new file mode 100644
index 00000000..16ebcb8e
Binary files /dev/null and b/chicago/static/images/toolbarButton-pageDown-rtl@2x.png differ
diff --git a/chicago/static/images/toolbarButton-pageDown.png b/chicago/static/images/toolbarButton-pageDown.png
new file mode 100644
index 00000000..8219ecf8
Binary files /dev/null and b/chicago/static/images/toolbarButton-pageDown.png differ
diff --git a/chicago/static/images/toolbarButton-pageDown@2x.png b/chicago/static/images/toolbarButton-pageDown@2x.png
new file mode 100644
index 00000000..758c01d8
Binary files /dev/null and b/chicago/static/images/toolbarButton-pageDown@2x.png differ
diff --git a/chicago/static/images/toolbarButton-pageUp-rtl.png b/chicago/static/images/toolbarButton-pageUp-rtl.png
new file mode 100644
index 00000000..98e7ce48
Binary files /dev/null and b/chicago/static/images/toolbarButton-pageUp-rtl.png differ
diff --git a/chicago/static/images/toolbarButton-pageUp-rtl@2x.png b/chicago/static/images/toolbarButton-pageUp-rtl@2x.png
new file mode 100644
index 00000000..a01b0238
Binary files /dev/null and b/chicago/static/images/toolbarButton-pageUp-rtl@2x.png differ
diff --git a/chicago/static/images/toolbarButton-pageUp.png b/chicago/static/images/toolbarButton-pageUp.png
new file mode 100644
index 00000000..fb9daa33
Binary files /dev/null and b/chicago/static/images/toolbarButton-pageUp.png differ
diff --git a/chicago/static/images/toolbarButton-pageUp@2x.png b/chicago/static/images/toolbarButton-pageUp@2x.png
new file mode 100644
index 00000000..a5cfd755
Binary files /dev/null and b/chicago/static/images/toolbarButton-pageUp@2x.png differ
diff --git a/chicago/static/images/toolbarButton-presentationMode.png b/chicago/static/images/toolbarButton-presentationMode.png
new file mode 100644
index 00000000..3ac21244
Binary files /dev/null and b/chicago/static/images/toolbarButton-presentationMode.png differ
diff --git a/chicago/static/images/toolbarButton-presentationMode@2x.png b/chicago/static/images/toolbarButton-presentationMode@2x.png
new file mode 100644
index 00000000..cada9e79
Binary files /dev/null and b/chicago/static/images/toolbarButton-presentationMode@2x.png differ
diff --git a/chicago/static/images/toolbarButton-print.png b/chicago/static/images/toolbarButton-print.png
new file mode 100644
index 00000000..51275e54
Binary files /dev/null and b/chicago/static/images/toolbarButton-print.png differ
diff --git a/chicago/static/images/toolbarButton-print@2x.png b/chicago/static/images/toolbarButton-print@2x.png
new file mode 100644
index 00000000..53d18daf
Binary files /dev/null and b/chicago/static/images/toolbarButton-print@2x.png differ
diff --git a/chicago/static/images/toolbarButton-search.png b/chicago/static/images/toolbarButton-search.png
new file mode 100644
index 00000000..f9b75579
Binary files /dev/null and b/chicago/static/images/toolbarButton-search.png differ
diff --git a/chicago/static/images/toolbarButton-search@2x.png b/chicago/static/images/toolbarButton-search@2x.png
new file mode 100644
index 00000000..456b1332
Binary files /dev/null and b/chicago/static/images/toolbarButton-search@2x.png differ
diff --git a/chicago/static/images/toolbarButton-secondaryToolbarToggle-rtl.png b/chicago/static/images/toolbarButton-secondaryToolbarToggle-rtl.png
new file mode 100644
index 00000000..84370952
Binary files /dev/null and b/chicago/static/images/toolbarButton-secondaryToolbarToggle-rtl.png differ
diff --git a/chicago/static/images/toolbarButton-secondaryToolbarToggle-rtl@2x.png b/chicago/static/images/toolbarButton-secondaryToolbarToggle-rtl@2x.png
new file mode 100644
index 00000000..9d9bfa4f
Binary files /dev/null and b/chicago/static/images/toolbarButton-secondaryToolbarToggle-rtl@2x.png differ
diff --git a/chicago/static/images/toolbarButton-secondaryToolbarToggle.png b/chicago/static/images/toolbarButton-secondaryToolbarToggle.png
new file mode 100644
index 00000000..1f90f83d
Binary files /dev/null and b/chicago/static/images/toolbarButton-secondaryToolbarToggle.png differ
diff --git a/chicago/static/images/toolbarButton-secondaryToolbarToggle@2x.png b/chicago/static/images/toolbarButton-secondaryToolbarToggle@2x.png
new file mode 100644
index 00000000..b066fe5c
Binary files /dev/null and b/chicago/static/images/toolbarButton-secondaryToolbarToggle@2x.png differ
diff --git a/chicago/static/images/toolbarButton-sidebarToggle-rtl.png b/chicago/static/images/toolbarButton-sidebarToggle-rtl.png
new file mode 100644
index 00000000..6f85ec06
Binary files /dev/null and b/chicago/static/images/toolbarButton-sidebarToggle-rtl.png differ
diff --git a/chicago/static/images/toolbarButton-sidebarToggle-rtl@2x.png b/chicago/static/images/toolbarButton-sidebarToggle-rtl@2x.png
new file mode 100644
index 00000000..291e0067
Binary files /dev/null and b/chicago/static/images/toolbarButton-sidebarToggle-rtl@2x.png differ
diff --git a/chicago/static/images/toolbarButton-sidebarToggle.png b/chicago/static/images/toolbarButton-sidebarToggle.png
new file mode 100644
index 00000000..025dc904
Binary files /dev/null and b/chicago/static/images/toolbarButton-sidebarToggle.png differ
diff --git a/chicago/static/images/toolbarButton-sidebarToggle@2x.png b/chicago/static/images/toolbarButton-sidebarToggle@2x.png
new file mode 100644
index 00000000..7f834df9
Binary files /dev/null and b/chicago/static/images/toolbarButton-sidebarToggle@2x.png differ
diff --git a/chicago/static/images/toolbarButton-viewAttachments.png b/chicago/static/images/toolbarButton-viewAttachments.png
new file mode 100644
index 00000000..fcd0b268
Binary files /dev/null and b/chicago/static/images/toolbarButton-viewAttachments.png differ
diff --git a/chicago/static/images/toolbarButton-viewAttachments@2x.png b/chicago/static/images/toolbarButton-viewAttachments@2x.png
new file mode 100644
index 00000000..b979e523
Binary files /dev/null and b/chicago/static/images/toolbarButton-viewAttachments@2x.png differ
diff --git a/chicago/static/images/toolbarButton-viewOutline-rtl.png b/chicago/static/images/toolbarButton-viewOutline-rtl.png
new file mode 100644
index 00000000..aaa94302
Binary files /dev/null and b/chicago/static/images/toolbarButton-viewOutline-rtl.png differ
diff --git a/chicago/static/images/toolbarButton-viewOutline-rtl@2x.png b/chicago/static/images/toolbarButton-viewOutline-rtl@2x.png
new file mode 100644
index 00000000..3410f70d
Binary files /dev/null and b/chicago/static/images/toolbarButton-viewOutline-rtl@2x.png differ
diff --git a/chicago/static/images/toolbarButton-viewOutline.png b/chicago/static/images/toolbarButton-viewOutline.png
new file mode 100644
index 00000000..976365a5
Binary files /dev/null and b/chicago/static/images/toolbarButton-viewOutline.png differ
diff --git a/chicago/static/images/toolbarButton-viewOutline@2x.png b/chicago/static/images/toolbarButton-viewOutline@2x.png
new file mode 100644
index 00000000..b6a197fd
Binary files /dev/null and b/chicago/static/images/toolbarButton-viewOutline@2x.png differ
diff --git a/chicago/static/images/toolbarButton-viewThumbnail.png b/chicago/static/images/toolbarButton-viewThumbnail.png
new file mode 100644
index 00000000..584ba558
Binary files /dev/null and b/chicago/static/images/toolbarButton-viewThumbnail.png differ
diff --git a/chicago/static/images/toolbarButton-viewThumbnail@2x.png b/chicago/static/images/toolbarButton-viewThumbnail@2x.png
new file mode 100644
index 00000000..fb7db938
Binary files /dev/null and b/chicago/static/images/toolbarButton-viewThumbnail@2x.png differ
diff --git a/chicago/static/images/toolbarButton-zoomIn.png b/chicago/static/images/toolbarButton-zoomIn.png
new file mode 100644
index 00000000..513d081b
Binary files /dev/null and b/chicago/static/images/toolbarButton-zoomIn.png differ
diff --git a/chicago/static/images/toolbarButton-zoomIn@2x.png b/chicago/static/images/toolbarButton-zoomIn@2x.png
new file mode 100644
index 00000000..d5d49d5f
Binary files /dev/null and b/chicago/static/images/toolbarButton-zoomIn@2x.png differ
diff --git a/chicago/static/images/toolbarButton-zoomOut.png b/chicago/static/images/toolbarButton-zoomOut.png
new file mode 100644
index 00000000..156c26b9
Binary files /dev/null and b/chicago/static/images/toolbarButton-zoomOut.png differ
diff --git a/chicago/static/images/toolbarButton-zoomOut@2x.png b/chicago/static/images/toolbarButton-zoomOut@2x.png
new file mode 100644
index 00000000..959e1919
Binary files /dev/null and b/chicago/static/images/toolbarButton-zoomOut@2x.png differ
diff --git a/chicago/static/images/treeitem-collapsed-rtl.png b/chicago/static/images/treeitem-collapsed-rtl.png
new file mode 100644
index 00000000..1c8b9f70
Binary files /dev/null and b/chicago/static/images/treeitem-collapsed-rtl.png differ
diff --git a/chicago/static/images/treeitem-collapsed-rtl@2x.png b/chicago/static/images/treeitem-collapsed-rtl@2x.png
new file mode 100644
index 00000000..84279368
Binary files /dev/null and b/chicago/static/images/treeitem-collapsed-rtl@2x.png differ
diff --git a/chicago/static/images/treeitem-collapsed.png b/chicago/static/images/treeitem-collapsed.png
new file mode 100644
index 00000000..06d4d376
Binary files /dev/null and b/chicago/static/images/treeitem-collapsed.png differ
diff --git a/chicago/static/images/treeitem-collapsed@2x.png b/chicago/static/images/treeitem-collapsed@2x.png
new file mode 100644
index 00000000..eec1e58c
Binary files /dev/null and b/chicago/static/images/treeitem-collapsed@2x.png differ
diff --git a/chicago/static/images/treeitem-expanded.png b/chicago/static/images/treeitem-expanded.png
new file mode 100644
index 00000000..c8d55735
Binary files /dev/null and b/chicago/static/images/treeitem-expanded.png differ
diff --git a/chicago/static/images/treeitem-expanded@2x.png b/chicago/static/images/treeitem-expanded@2x.png
new file mode 100644
index 00000000..3b3b6103
Binary files /dev/null and b/chicago/static/images/treeitem-expanded@2x.png differ
diff --git a/chicago/templates/base.html b/chicago/templates/base.html
index 47b432de..3cedb2a3 100644
--- a/chicago/templates/base.html
+++ b/chicago/templates/base.html
@@ -3,7 +3,7 @@
- {% block title %}{% endblock %} - {{SITE_META.site_name}}
+ {% block title %}{% endblock %} - Chicago Councilmatic
{% include 'partials/seo.html' %}
{% include 'partials/icons.html' %}
@@ -26,7 +26,7 @@