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 */ } .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 @@