├── .gitignore ├── INSTALL ├── LICENSE ├── README.md ├── contrib ├── django-invitation.zip ├── pip-requirements.txt └── ubuntu │ ├── README │ ├── fordropweb.init │ └── start_fordropweb.sh ├── django_fordrop ├── __init__.py ├── admin.py ├── api_v1.py ├── forms.py ├── middleware.py ├── models.py ├── tests.py └── views.py ├── fordropweb ├── __init__.py ├── static │ ├── bootstrap │ │ ├── css │ │ │ ├── bootstrap-responsive.css │ │ │ ├── bootstrap-responsive.min.css │ │ │ ├── bootstrap.css │ │ │ └── bootstrap.min.css │ │ ├── img │ │ │ ├── glyphicons-halflings-white.png │ │ │ └── glyphicons-halflings.png │ │ └── js │ │ │ ├── bootstrap.js │ │ │ └── bootstrap.min.js │ ├── css │ │ ├── style.css │ │ └── timeline.css │ ├── img │ │ ├── favicon.ico │ │ ├── placeholder.png │ │ └── thumbs_up.png │ ├── js │ │ ├── fd_timeline.js │ │ ├── jquery-1.7.2.min.js │ │ └── timeline_2.3.1 │ │ │ ├── CHANGES.txt │ │ │ ├── LICENSE.txt │ │ │ ├── README.txt │ │ │ ├── timeline_ajax │ │ │ ├── content │ │ │ │ └── history.html │ │ │ ├── images │ │ │ │ ├── bubble-arrow-point-down.png │ │ │ │ ├── bubble-arrow-point-left.png │ │ │ │ ├── bubble-arrow-point-right.png │ │ │ │ ├── bubble-arrow-point-up.png │ │ │ │ ├── bubble-bottom-left.png │ │ │ │ ├── bubble-bottom-right.png │ │ │ │ ├── bubble-bottom.png │ │ │ │ ├── bubble-left.png │ │ │ │ ├── bubble-right.png │ │ │ │ ├── bubble-top-left.png │ │ │ │ ├── bubble-top-right.png │ │ │ │ ├── bubble-top.png │ │ │ │ ├── close-button.png │ │ │ │ ├── copy.png │ │ │ │ ├── message-bottom-left.png │ │ │ │ ├── message-bottom-right.png │ │ │ │ ├── message-left.png │ │ │ │ ├── message-right.png │ │ │ │ ├── message-top-left.png │ │ │ │ └── message-top-right.png │ │ │ ├── scripts │ │ │ │ └── signal.js │ │ │ ├── simile-ajax-api.js │ │ │ ├── simile-ajax-bundle.js │ │ │ └── styles │ │ │ │ ├── graphics-ie6.css │ │ │ │ └── graphics.css │ │ │ └── timeline_js │ │ │ ├── images │ │ │ ├── blue-circle.png │ │ │ ├── bubble-bottom-arrow.png │ │ │ ├── bubble-bottom-left.png │ │ │ ├── bubble-bottom-right.png │ │ │ ├── bubble-bottom.png │ │ │ ├── bubble-left-arrow.png │ │ │ ├── bubble-left.png │ │ │ ├── bubble-right-arrow.png │ │ │ ├── bubble-right.png │ │ │ ├── bubble-top-arrow.png │ │ │ ├── bubble-top-left.png │ │ │ ├── bubble-top-right.png │ │ │ ├── bubble-top.png │ │ │ ├── close-button.png │ │ │ ├── copyright-vertical.png │ │ │ ├── copyright.png │ │ │ ├── dark-blue-circle.png │ │ │ ├── dark-green-circle.png │ │ │ ├── dark-red-circle.png │ │ │ ├── dull-blue-circle.png │ │ │ ├── dull-green-circle.png │ │ │ ├── dull-red-circle.png │ │ │ ├── gray-circle.png │ │ │ ├── green-circle.png │ │ │ ├── message-bottom-left.png │ │ │ ├── message-bottom-right.png │ │ │ ├── message-left.png │ │ │ ├── message-right.png │ │ │ ├── message-top-left.png │ │ │ ├── message-top-right.png │ │ │ ├── progress-running.gif │ │ │ ├── red-circle.png │ │ │ └── top-bubble.png │ │ │ ├── scripts │ │ │ └── l10n │ │ │ │ ├── cs │ │ │ │ ├── labellers.js │ │ │ │ └── timeline.js │ │ │ │ ├── de │ │ │ │ ├── labellers.js │ │ │ │ └── timeline.js │ │ │ │ ├── en │ │ │ │ ├── labellers.js │ │ │ │ └── timeline.js │ │ │ │ ├── es │ │ │ │ ├── labellers.js │ │ │ │ └── timeline.js │ │ │ │ ├── fr │ │ │ │ ├── labellers.js │ │ │ │ └── timeline.js │ │ │ │ ├── it │ │ │ │ ├── labellers.js │ │ │ │ └── timeline.js │ │ │ │ ├── nl │ │ │ │ ├── labellers.js │ │ │ │ └── timeline.js │ │ │ │ ├── ru │ │ │ │ ├── labellers.js │ │ │ │ └── timeline.js │ │ │ │ ├── se │ │ │ │ ├── labellers.js │ │ │ │ └── timeline.js │ │ │ │ ├── tr │ │ │ │ ├── labellers.js │ │ │ │ └── timeline.js │ │ │ │ ├── vi │ │ │ │ ├── labellers.js │ │ │ │ └── timeline.js │ │ │ │ └── zh │ │ │ │ ├── labellers.js │ │ │ │ └── timeline.js │ │ │ ├── timeline-api.js │ │ │ ├── timeline-bundle.css │ │ │ └── timeline-bundle.js │ └── pubsubbox │ │ ├── css │ │ ├── bootstrap-2.0.2.min.css │ │ ├── bootstrap-responsive-2.0.2.min.css │ │ └── pubsubbox.css │ │ ├── img │ │ ├── glyphicons-halflings-white.png │ │ ├── glyphicons-halflings.png │ │ └── spinner.gif │ │ └── js │ │ ├── bootstrap-2.0.2.min.js │ │ ├── bootstrap-modal-2.0.2.js │ │ ├── bootstrap-transition-2.0.2.js │ │ ├── config.js.example │ │ ├── jquery-1.7.1.min.js │ │ ├── jquery-ui-1.8.16.min.js │ │ ├── jquery.ui.touch-punch.min.js │ │ ├── pubsubbox.js │ │ └── strophe-1.0.2.min.js ├── templates │ ├── 404.html │ ├── base.html │ ├── collection_base.html │ ├── collection_timeline.html │ ├── edit_profile.html │ ├── explore.html │ ├── file.html │ ├── index.html │ ├── invitation │ │ ├── invitation_complete.html │ │ ├── invitation_email.txt │ │ ├── invitation_email_subject.txt │ │ ├── invitation_form.html │ │ └── wrong_invitation_key.html │ ├── profile.html │ ├── pubsubbox.html │ ├── registration │ │ ├── activate.html │ │ ├── activation_complete.html │ │ ├── activation_email.txt │ │ ├── activation_email_subject.txt │ │ ├── login.html │ │ ├── logout.html │ │ ├── password_change_done.html │ │ ├── password_change_form.html │ │ ├── registration_complete.html │ │ └── registration_form.html │ ├── request_invite.html │ ├── search.html │ ├── thanks.html │ ├── welcome_step_0.html │ ├── welcome_step_1.html │ ├── welcome_step_2.html │ └── welcome_step_3.html ├── urls.py └── wsgi.py └── manage.py /.gitignore: -------------------------------------------------------------------------------- 1 | *.db 2 | *.pyc 3 | .idea 4 | fordropweb/static/cache 5 | fordropweb/static/avatars 6 | settings.py 7 | fordrop_settings.py 8 | config.js 9 | -------------------------------------------------------------------------------- /INSTALL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/INSTALL -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2010, KTH Royal Institute of Technology 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 5 | 6 | * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 7 | * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 8 | * The name of the KTH Royal Institute of Technology may not be used to endorse or promote products derived from this software without specific prior written permission. 9 | 10 | THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 11 | DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 12 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 13 | IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | fordrop – Forensic Dropbox 2 | ---------------- 3 | 4 | Building the federated social CERT 5 | Information sharing has proven both important and difficult in the field of 6 | computer forensic analysis. The ability to identify occurrences of electronic 7 | evidence across organization boundaries and making this information accessible 8 | and searchable for a larger community is one of the challenges fordrop is trying to 9 | address. By building a social platform where decentralization, federation and 10 | crowd sourcing are central pieces, fordrop makes it easy and safe to share this 11 | information with your fellow investigators. Fordrop enables crowd-sourcing for IT- 12 | forensics. 13 | 14 | 15 | Installation 16 | ------------ 17 | 18 | These are the raw steps that is required to install all the dependencies. 19 | Better documentation is on it's way! 20 | 21 | apt-get install build-essential 22 | apt-get install python-dev 23 | apt-get install libjpeg62-dev 24 | apt-get install unzip 25 | apt-get install openjdk-6-jdk 26 | apt-get install nginx 27 | easy_install pip 28 | pip install virtualenv 29 | mkdir /opt/virtenvs && cd /opt/virtenvs 30 | virtualenv fordrop 31 | source /opt/virtenvs/fordrop/bin/activate 32 | cd /tmp 33 | wget http://downloads.sourceforge.net/project/jpype/JPype/0.5.4/JPype-0.5.4.2.zip 34 | unzip JPype-0.5.4.2.zip 35 | pip install JPype-0.5.4.2/ 36 | pip install -r /opt/fordrop-web/requirements/fordrop.pip 37 | pip install gunicorn 38 | pip install PIL 39 | mkdir /etc/nginx/ssl && cd /etc/nginx/ssl 40 | openssl genrsa -des3 -out server.key 1024 41 | openssl rsa -in server.key -out server.key.insecure 42 | mv server.key.insecure server.key 43 | openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt 44 | cp /opt/fordrop-web/contrib/fordrop-web.upstart /etc/init/fordrop-web.conf 45 | cp /opt/fordrop-web/contrib/fordrop-web.nginx /etc/nginx/sites-availible/fordrop-web 46 | ln -s /etc/nginx/sites-availible/fordrop-web /etc/nginx/sites-enabled/fordrop-web 47 | service fordrop-web start 48 | /etc/init.d/nginx restart -------------------------------------------------------------------------------- /contrib/django-invitation.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/contrib/django-invitation.zip -------------------------------------------------------------------------------- /contrib/pip-requirements.txt: -------------------------------------------------------------------------------- 1 | Django==1.4 2 | PIL==1.1.7 3 | django-registration==0.8 4 | django-taggit==0.9.3 5 | fordrop==0.1.1 6 | gunicorn==0.14.2 7 | requests==0.11.2 8 | sleekxmpp==1.0 9 | sorl-thumbnail==11.12 -------------------------------------------------------------------------------- /contrib/ubuntu/README: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/contrib/ubuntu/README -------------------------------------------------------------------------------- /contrib/ubuntu/fordropweb.init: -------------------------------------------------------------------------------- 1 | description "fordrop Web" 2 | start on runlevel [2345] 3 | stop on runlevel [06] 4 | respawn 5 | respawn limit 10 5 6 | exec /opt/start_fordropweb.sh -------------------------------------------------------------------------------- /contrib/ubuntu/start_fordropweb.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | LOGFILE=/var/log/fordropweb.log 4 | LOGDIR=$(dirname $LOGFILE) 5 | NUM_WORKERS=1 6 | # user/group to run as 7 | USER=www-data 8 | GROUP=www-data 9 | cd /opt/fordropweb/fordropweb 10 | source /opt/virtual_envs/fordropweb/bin/activate 11 | test -d $LOGDIR || mkdir -p $LOGDIR 12 | exec /opt/virtual_envs/fordropweb/bin/gunicorn_django -w $NUM_WORKERS \ 13 | --user=$USER --group=$GROUP --log-level=debug \ 14 | --log-file=$LOGFILE 2>>$LOGFILE -------------------------------------------------------------------------------- /django_fordrop/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/django_fordrop/__init__.py -------------------------------------------------------------------------------- /django_fordrop/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | from models import File, FileComment, Collection, UserProfile, UserSettings, PubSubNode 3 | 4 | admin.site.register(File) 5 | admin.site.register(FileComment) 6 | admin.site.register(Collection) 7 | admin.site.register(UserProfile) 8 | admin.site.register(UserSettings) 9 | admin.site.register(PubSubNode) -------------------------------------------------------------------------------- /django_fordrop/api_v1.py: -------------------------------------------------------------------------------- 1 | from django.contrib.auth.models import User 2 | from tastypie.authorization import Authorization 3 | from tastypie.authentication import ApiKeyAuthentication, Authentication 4 | from tastypie import fields 5 | from tastypie.constants import ALL 6 | from tastypie.resources import ModelResource 7 | from django_fordrop.models import File, FileComment, UserProfile 8 | 9 | class UserResource(ModelResource): 10 | resource_name = 'user' 11 | class Meta: 12 | queryset = User.objects.all() 13 | fields = ['username', 'is_active'] 14 | authorization = Authorization() 15 | authentication = ApiKeyAuthentication() 16 | 17 | class FileResource(ModelResource): 18 | resource_name = 'file' 19 | user = fields.ForeignKey(UserResource, 'user') 20 | class Meta: 21 | queryset = File.objects.all() 22 | filtering = { 23 | "uuid": ALL 24 | } 25 | authorization = Authorization() 26 | authentication = ApiKeyAuthentication() 27 | 28 | class FileCommentResource(ModelResource): 29 | resource_name = 'filecomment' 30 | file = fields.ForeignKey(FileResource, 'file', full=True) 31 | class Meta: 32 | queryset = FileComment.objects.all() 33 | authorization = Authorization() 34 | authentication = ApiKeyAuthentication() 35 | 36 | class UserProfileResource(ModelResource): 37 | user = fields.ForeignKey(UserResource, 'user', full=True) 38 | class Meta: 39 | queryset = UserProfile.objects.all() 40 | excludes = ['id'] 41 | filtering = { 42 | "uuid": ALL 43 | } 44 | authorization = Authorization() 45 | authentication = ApiKeyAuthentication() 46 | -------------------------------------------------------------------------------- /django_fordrop/forms.py: -------------------------------------------------------------------------------- 1 | from django import forms 2 | from django_fordrop.models import UserProfile, UserSettings 3 | from models import File, FileComment, CollectionComment, Collection 4 | 5 | class FileCommentForm(forms.ModelForm): 6 | class Meta: 7 | model = FileComment 8 | fields = ('content',) 9 | 10 | class FileTagForm(forms.ModelForm): 11 | class Meta: 12 | model = File 13 | fields = ('tags',) 14 | 15 | class CollectionTagForm(forms.ModelForm): 16 | class Meta: 17 | model = Collection 18 | fields = ('tags',) 19 | 20 | class CollectionCommentForm(forms.ModelForm): 21 | class Meta: 22 | model = CollectionComment 23 | fields = ('content',) 24 | 25 | class CollectionForm(forms.ModelForm): 26 | class Meta: 27 | model = Collection 28 | fields = ('title', 'tags', 'description') 29 | 30 | class UploadFileForm(forms.ModelForm): 31 | file = forms.FileField(required=True) 32 | #url = forms.CharField(required=False) 33 | #hash = forms.CharField(required=False) 34 | class Meta: 35 | model = File 36 | fields = ('description', 'tags') 37 | 38 | class UserProfileForm(forms.ModelForm): 39 | class Meta: 40 | model = UserProfile 41 | exclude = ('user', 'uuid') 42 | 43 | class UserSettingsForm(forms.ModelForm): 44 | class Meta: 45 | model = UserSettings 46 | exclude = ('user') 47 | 48 | class RequestInviteForm(forms.Form): 49 | email = forms.fields.EmailField(label="") 50 | -------------------------------------------------------------------------------- /django_fordrop/middleware.py: -------------------------------------------------------------------------------- 1 | from django.contrib import messages 2 | from django.http import HttpResponseRedirect 3 | 4 | class FirstLoginMiddleware(object): 5 | def process_request(self, request): 6 | if request.user.is_authenticated() and "dont_check_first_login" not in request.session: 7 | request.session["dont_check_first_login"] = True 8 | profile = request.user.profile 9 | if profile.is_first_login: 10 | profile.is_first_login = False 11 | profile.name = request.user.username 12 | profile.save() 13 | return HttpResponseRedirect("/welcome") 14 | 15 | -------------------------------------------------------------------------------- /django_fordrop/tests.py: -------------------------------------------------------------------------------- 1 | """ 2 | This file demonstrates writing tests using the unittest module. These will pass 3 | when you run "manage.py test". 4 | 5 | Replace this with more appropriate tests for your application. 6 | """ 7 | 8 | from django.test import TestCase 9 | 10 | 11 | class SimpleTest(TestCase): 12 | def test_basic_addition(self): 13 | """ 14 | Tests that 1 + 1 always equals 2. 15 | """ 16 | self.assertEqual(1 + 1, 2) 17 | -------------------------------------------------------------------------------- /fordropweb/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/__init__.py -------------------------------------------------------------------------------- /fordropweb/static/bootstrap/css/bootstrap-responsive.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Responsive v2.0.1 3 | * 4 | * Copyright 2012 Twitter, Inc 5 | * Licensed under the Apache License v2.0 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * 8 | * Designed and built with all the love in the world @twitter by @mdo and @fat. 9 | */ 10 | .clearfix { 11 | *zoom: 1; 12 | } 13 | .clearfix:before, .clearfix:after { 14 | display: table; 15 | content: ""; 16 | } 17 | .clearfix:after { 18 | clear: both; 19 | } 20 | .hidden { 21 | display: none; 22 | visibility: hidden; 23 | } 24 | @media (max-width: 480px) { 25 | .nav-collapse { 26 | -webkit-transform: translate3d(0, 0, 0); 27 | } 28 | .page-header h1 small { 29 | display: block; 30 | line-height: 18px; 31 | } 32 | input[class*="span"], 33 | select[class*="span"], 34 | textarea[class*="span"], 35 | .uneditable-input { 36 | display: block; 37 | width: 100%; 38 | min-height: 28px; 39 | /* Make inputs at least the height of their button counterpart */ 40 | 41 | /* Makes inputs behave like true block-level elements */ 42 | 43 | -webkit-box-sizing: border-box; 44 | /* Older Webkit */ 45 | 46 | -moz-box-sizing: border-box; 47 | /* Older FF */ 48 | 49 | -ms-box-sizing: border-box; 50 | /* IE8 */ 51 | 52 | box-sizing: border-box; 53 | /* CSS3 spec*/ 54 | 55 | } 56 | .input-prepend input[class*="span"], .input-append input[class*="span"] { 57 | width: auto; 58 | } 59 | input[type="checkbox"], input[type="radio"] { 60 | border: 1px solid #ccc; 61 | } 62 | .form-horizontal .control-group > label { 63 | float: none; 64 | width: auto; 65 | padding-top: 0; 66 | text-align: left; 67 | } 68 | .form-horizontal .controls { 69 | margin-left: 0; 70 | } 71 | .form-horizontal .control-list { 72 | padding-top: 0; 73 | } 74 | .form-horizontal .form-actions { 75 | padding-left: 10px; 76 | padding-right: 10px; 77 | } 78 | .modal { 79 | position: absolute; 80 | top: 10px; 81 | left: 10px; 82 | right: 10px; 83 | width: auto; 84 | margin: 0; 85 | } 86 | .modal.fade.in { 87 | top: auto; 88 | } 89 | .modal-header .close { 90 | padding: 10px; 91 | margin: -10px; 92 | } 93 | .carousel-caption { 94 | position: static; 95 | } 96 | } 97 | @media (max-width: 767px) { 98 | .container { 99 | width: auto; 100 | padding: 0 20px; 101 | } 102 | .row-fluid { 103 | width: 100%; 104 | } 105 | .row { 106 | margin-left: 0; 107 | } 108 | .row > [class*="span"], .row-fluid > [class*="span"] { 109 | float: none; 110 | display: block; 111 | width: auto; 112 | margin: 0; 113 | } 114 | } 115 | @media (min-width: 768px) and (max-width: 979px) { 116 | .row { 117 | margin-left: -20px; 118 | *zoom: 1; 119 | } 120 | .row:before, .row:after { 121 | display: table; 122 | content: ""; 123 | } 124 | .row:after { 125 | clear: both; 126 | } 127 | [class*="span"] { 128 | float: left; 129 | margin-left: 20px; 130 | } 131 | .span1 { 132 | width: 42px; 133 | } 134 | .span2 { 135 | width: 104px; 136 | } 137 | .span3 { 138 | width: 166px; 139 | } 140 | .span4 { 141 | width: 228px; 142 | } 143 | .span5 { 144 | width: 290px; 145 | } 146 | .span6 { 147 | width: 352px; 148 | } 149 | .span7 { 150 | width: 414px; 151 | } 152 | .span8 { 153 | width: 476px; 154 | } 155 | .span9 { 156 | width: 538px; 157 | } 158 | .span10 { 159 | width: 600px; 160 | } 161 | .span11 { 162 | width: 662px; 163 | } 164 | .span12, .container { 165 | width: 724px; 166 | } 167 | .offset1 { 168 | margin-left: 82px; 169 | } 170 | .offset2 { 171 | margin-left: 144px; 172 | } 173 | .offset3 { 174 | margin-left: 206px; 175 | } 176 | .offset4 { 177 | margin-left: 268px; 178 | } 179 | .offset5 { 180 | margin-left: 330px; 181 | } 182 | .offset6 { 183 | margin-left: 392px; 184 | } 185 | .offset7 { 186 | margin-left: 454px; 187 | } 188 | .offset8 { 189 | margin-left: 516px; 190 | } 191 | .offset9 { 192 | margin-left: 578px; 193 | } 194 | .offset10 { 195 | margin-left: 640px; 196 | } 197 | .offset11 { 198 | margin-left: 702px; 199 | } 200 | .row-fluid { 201 | width: 100%; 202 | *zoom: 1; 203 | } 204 | .row-fluid:before, .row-fluid:after { 205 | display: table; 206 | content: ""; 207 | } 208 | .row-fluid:after { 209 | clear: both; 210 | } 211 | .row-fluid > [class*="span"] { 212 | float: left; 213 | margin-left: 2.762430939%; 214 | } 215 | .row-fluid > [class*="span"]:first-child { 216 | margin-left: 0; 217 | } 218 | .row-fluid > .span1 { 219 | width: 5.801104972%; 220 | } 221 | .row-fluid > .span2 { 222 | width: 14.364640883%; 223 | } 224 | .row-fluid > .span3 { 225 | width: 22.928176794%; 226 | } 227 | .row-fluid > .span4 { 228 | width: 31.491712705%; 229 | } 230 | .row-fluid > .span5 { 231 | width: 40.055248616%; 232 | } 233 | .row-fluid > .span6 { 234 | width: 48.618784527%; 235 | } 236 | .row-fluid > .span7 { 237 | width: 57.182320438000005%; 238 | } 239 | .row-fluid > .span8 { 240 | width: 65.74585634900001%; 241 | } 242 | .row-fluid > .span9 { 243 | width: 74.30939226%; 244 | } 245 | .row-fluid > .span10 { 246 | width: 82.87292817100001%; 247 | } 248 | .row-fluid > .span11 { 249 | width: 91.436464082%; 250 | } 251 | .row-fluid > .span12 { 252 | width: 99.999999993%; 253 | } 254 | input.span1, textarea.span1, .uneditable-input.span1 { 255 | width: 32px; 256 | } 257 | input.span2, textarea.span2, .uneditable-input.span2 { 258 | width: 94px; 259 | } 260 | input.span3, textarea.span3, .uneditable-input.span3 { 261 | width: 156px; 262 | } 263 | input.span4, textarea.span4, .uneditable-input.span4 { 264 | width: 218px; 265 | } 266 | input.span5, textarea.span5, .uneditable-input.span5 { 267 | width: 280px; 268 | } 269 | input.span6, textarea.span6, .uneditable-input.span6 { 270 | width: 342px; 271 | } 272 | input.span7, textarea.span7, .uneditable-input.span7 { 273 | width: 404px; 274 | } 275 | input.span8, textarea.span8, .uneditable-input.span8 { 276 | width: 466px; 277 | } 278 | input.span9, textarea.span9, .uneditable-input.span9 { 279 | width: 528px; 280 | } 281 | input.span10, textarea.span10, .uneditable-input.span10 { 282 | width: 590px; 283 | } 284 | input.span11, textarea.span11, .uneditable-input.span11 { 285 | width: 652px; 286 | } 287 | input.span12, textarea.span12, .uneditable-input.span12 { 288 | width: 714px; 289 | } 290 | } 291 | @media (max-width: 979px) { 292 | body { 293 | padding-top: 0; 294 | } 295 | .navbar-fixed-top { 296 | position: static; 297 | margin-bottom: 18px; 298 | } 299 | .navbar-fixed-top .navbar-inner { 300 | padding: 5px; 301 | } 302 | .navbar .container { 303 | width: auto; 304 | padding: 0; 305 | } 306 | .navbar .brand { 307 | padding-left: 10px; 308 | padding-right: 10px; 309 | margin: 0 0 0 -5px; 310 | } 311 | .navbar .nav-collapse { 312 | clear: left; 313 | } 314 | .navbar .nav { 315 | float: none; 316 | margin: 0 0 9px; 317 | } 318 | .navbar .nav > li { 319 | float: none; 320 | } 321 | .navbar .nav > li > a { 322 | margin-bottom: 2px; 323 | } 324 | .navbar .nav > .divider-vertical { 325 | display: none; 326 | } 327 | .navbar .nav .nav-header { 328 | color: #999999; 329 | text-shadow: none; 330 | } 331 | .navbar .nav > li > a, .navbar .dropdown-menu a { 332 | padding: 6px 15px; 333 | font-weight: bold; 334 | color: #999999; 335 | -webkit-border-radius: 3px; 336 | -moz-border-radius: 3px; 337 | border-radius: 3px; 338 | } 339 | .navbar .dropdown-menu li + li a { 340 | margin-bottom: 2px; 341 | } 342 | .navbar .nav > li > a:hover, .navbar .dropdown-menu a:hover { 343 | background-color: #222222; 344 | } 345 | .navbar .dropdown-menu { 346 | position: static; 347 | top: auto; 348 | left: auto; 349 | float: none; 350 | display: block; 351 | max-width: none; 352 | margin: 0 15px; 353 | padding: 0; 354 | background-color: transparent; 355 | border: none; 356 | -webkit-border-radius: 0; 357 | -moz-border-radius: 0; 358 | border-radius: 0; 359 | -webkit-box-shadow: none; 360 | -moz-box-shadow: none; 361 | box-shadow: none; 362 | } 363 | .navbar .dropdown-menu:before, .navbar .dropdown-menu:after { 364 | display: none; 365 | } 366 | .navbar .dropdown-menu .divider { 367 | display: none; 368 | } 369 | .navbar-form, .navbar-search { 370 | float: none; 371 | padding: 9px 15px; 372 | margin: 9px 0; 373 | border-top: 1px solid #222222; 374 | border-bottom: 1px solid #222222; 375 | -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); 376 | -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); 377 | box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); 378 | } 379 | .navbar .nav.pull-right { 380 | float: none; 381 | margin-left: 0; 382 | } 383 | .navbar-static .navbar-inner { 384 | padding-left: 10px; 385 | padding-right: 10px; 386 | } 387 | .btn-navbar { 388 | display: block; 389 | } 390 | .nav-collapse { 391 | overflow: hidden; 392 | height: 0; 393 | } 394 | } 395 | @media (min-width: 980px) { 396 | .nav-collapse.collapse { 397 | height: auto !important; 398 | } 399 | } 400 | @media (min-width: 1200px) { 401 | .row { 402 | margin-left: -30px; 403 | *zoom: 1; 404 | } 405 | .row:before, .row:after { 406 | display: table; 407 | content: ""; 408 | } 409 | .row:after { 410 | clear: both; 411 | } 412 | [class*="span"] { 413 | float: left; 414 | margin-left: 30px; 415 | } 416 | .span1 { 417 | width: 70px; 418 | } 419 | .span2 { 420 | width: 170px; 421 | } 422 | .span3 { 423 | width: 270px; 424 | } 425 | .span4 { 426 | width: 370px; 427 | } 428 | .span5 { 429 | width: 470px; 430 | } 431 | .span6 { 432 | width: 570px; 433 | } 434 | .span7 { 435 | width: 670px; 436 | } 437 | .span8 { 438 | width: 770px; 439 | } 440 | .span9 { 441 | width: 870px; 442 | } 443 | .span10 { 444 | width: 970px; 445 | } 446 | .span11 { 447 | width: 1070px; 448 | } 449 | .span12, .container { 450 | width: 1170px; 451 | } 452 | .offset1 { 453 | margin-left: 130px; 454 | } 455 | .offset2 { 456 | margin-left: 230px; 457 | } 458 | .offset3 { 459 | margin-left: 330px; 460 | } 461 | .offset4 { 462 | margin-left: 430px; 463 | } 464 | .offset5 { 465 | margin-left: 530px; 466 | } 467 | .offset6 { 468 | margin-left: 630px; 469 | } 470 | .offset7 { 471 | margin-left: 730px; 472 | } 473 | .offset8 { 474 | margin-left: 830px; 475 | } 476 | .offset9 { 477 | margin-left: 930px; 478 | } 479 | .offset10 { 480 | margin-left: 1030px; 481 | } 482 | .offset11 { 483 | margin-left: 1130px; 484 | } 485 | .row-fluid { 486 | width: 100%; 487 | *zoom: 1; 488 | } 489 | .row-fluid:before, .row-fluid:after { 490 | display: table; 491 | content: ""; 492 | } 493 | .row-fluid:after { 494 | clear: both; 495 | } 496 | .row-fluid > [class*="span"] { 497 | float: left; 498 | margin-left: 2.564102564%; 499 | } 500 | .row-fluid > [class*="span"]:first-child { 501 | margin-left: 0; 502 | } 503 | .row-fluid > .span1 { 504 | width: 5.982905983%; 505 | } 506 | .row-fluid > .span2 { 507 | width: 14.529914530000001%; 508 | } 509 | .row-fluid > .span3 { 510 | width: 23.076923077%; 511 | } 512 | .row-fluid > .span4 { 513 | width: 31.623931624%; 514 | } 515 | .row-fluid > .span5 { 516 | width: 40.170940171000005%; 517 | } 518 | .row-fluid > .span6 { 519 | width: 48.717948718%; 520 | } 521 | .row-fluid > .span7 { 522 | width: 57.264957265%; 523 | } 524 | .row-fluid > .span8 { 525 | width: 65.81196581200001%; 526 | } 527 | .row-fluid > .span9 { 528 | width: 74.358974359%; 529 | } 530 | .row-fluid > .span10 { 531 | width: 82.905982906%; 532 | } 533 | .row-fluid > .span11 { 534 | width: 91.45299145300001%; 535 | } 536 | .row-fluid > .span12 { 537 | width: 100%; 538 | } 539 | input.span1, textarea.span1, .uneditable-input.span1 { 540 | width: 60px; 541 | } 542 | input.span2, textarea.span2, .uneditable-input.span2 { 543 | width: 160px; 544 | } 545 | input.span3, textarea.span3, .uneditable-input.span3 { 546 | width: 260px; 547 | } 548 | input.span4, textarea.span4, .uneditable-input.span4 { 549 | width: 360px; 550 | } 551 | input.span5, textarea.span5, .uneditable-input.span5 { 552 | width: 460px; 553 | } 554 | input.span6, textarea.span6, .uneditable-input.span6 { 555 | width: 560px; 556 | } 557 | input.span7, textarea.span7, .uneditable-input.span7 { 558 | width: 660px; 559 | } 560 | input.span8, textarea.span8, .uneditable-input.span8 { 561 | width: 760px; 562 | } 563 | input.span9, textarea.span9, .uneditable-input.span9 { 564 | width: 860px; 565 | } 566 | input.span10, textarea.span10, .uneditable-input.span10 { 567 | width: 960px; 568 | } 569 | input.span11, textarea.span11, .uneditable-input.span11 { 570 | width: 1060px; 571 | } 572 | input.span12, textarea.span12, .uneditable-input.span12 { 573 | width: 1160px; 574 | } 575 | .thumbnails { 576 | margin-left: -30px; 577 | } 578 | .thumbnails > li { 579 | margin-left: 30px; 580 | } 581 | } 582 | -------------------------------------------------------------------------------- /fordropweb/static/bootstrap/css/bootstrap-responsive.min.css: -------------------------------------------------------------------------------- 1 | .clearfix{*zoom:1;}.clearfix:before,.clearfix:after{display:table;content:"";} 2 | .clearfix:after{clear:both;} 3 | .hidden{display:none;visibility:hidden;} 4 | @media (max-width:480px){.nav-collapse{-webkit-transform:translate3d(0, 0, 0);} .page-header h1 small{display:block;line-height:18px;} input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;} .input-prepend input[class*="span"],.input-append input[class*="span"]{width:auto;} input[type="checkbox"],input[type="radio"]{border:1px solid #ccc;} .form-horizontal .control-group>label{float:none;width:auto;padding-top:0;text-align:left;} .form-horizontal .controls{margin-left:0;} .form-horizontal .control-list{padding-top:0;} .form-horizontal .form-actions{padding-left:10px;padding-right:10px;} .modal{position:absolute;top:10px;left:10px;right:10px;width:auto;margin:0;}.modal.fade.in{top:auto;} .modal-header .close{padding:10px;margin:-10px;} .carousel-caption{position:static;}}@media (max-width:767px){.container{width:auto;padding:0 20px;} .row-fluid{width:100%;} .row{margin-left:0;} .row>[class*="span"],.row-fluid>[class*="span"]{float:none;display:block;width:auto;margin:0;}}@media (min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1;}.row:before,.row:after{display:table;content:"";} .row:after{clear:both;} [class*="span"]{float:left;margin-left:20px;} .span1{width:42px;} .span2{width:104px;} .span3{width:166px;} .span4{width:228px;} .span5{width:290px;} .span6{width:352px;} .span7{width:414px;} .span8{width:476px;} .span9{width:538px;} .span10{width:600px;} .span11{width:662px;} .span12,.container{width:724px;} .offset1{margin-left:82px;} .offset2{margin-left:144px;} .offset3{margin-left:206px;} .offset4{margin-left:268px;} .offset5{margin-left:330px;} .offset6{margin-left:392px;} .offset7{margin-left:454px;} .offset8{margin-left:516px;} .offset9{margin-left:578px;} .offset10{margin-left:640px;} .offset11{margin-left:702px;} .row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";} .row-fluid:after{clear:both;} .row-fluid>[class*="span"]{float:left;margin-left:2.762430939%;} .row-fluid>[class*="span"]:first-child{margin-left:0;} .row-fluid>.span1{width:5.801104972%;} .row-fluid>.span2{width:14.364640883%;} .row-fluid>.span3{width:22.928176794%;} .row-fluid>.span4{width:31.491712705%;} .row-fluid>.span5{width:40.055248616%;} .row-fluid>.span6{width:48.618784527%;} .row-fluid>.span7{width:57.182320438000005%;} .row-fluid>.span8{width:65.74585634900001%;} .row-fluid>.span9{width:74.30939226%;} .row-fluid>.span10{width:82.87292817100001%;} .row-fluid>.span11{width:91.436464082%;} .row-fluid>.span12{width:99.999999993%;} input.span1,textarea.span1,.uneditable-input.span1{width:32px;} input.span2,textarea.span2,.uneditable-input.span2{width:94px;} input.span3,textarea.span3,.uneditable-input.span3{width:156px;} input.span4,textarea.span4,.uneditable-input.span4{width:218px;} input.span5,textarea.span5,.uneditable-input.span5{width:280px;} input.span6,textarea.span6,.uneditable-input.span6{width:342px;} input.span7,textarea.span7,.uneditable-input.span7{width:404px;} input.span8,textarea.span8,.uneditable-input.span8{width:466px;} input.span9,textarea.span9,.uneditable-input.span9{width:528px;} input.span10,textarea.span10,.uneditable-input.span10{width:590px;} input.span11,textarea.span11,.uneditable-input.span11{width:652px;} input.span12,textarea.span12,.uneditable-input.span12{width:714px;}}@media (max-width:979px){body{padding-top:0;} .navbar-fixed-top{position:static;margin-bottom:18px;} .navbar-fixed-top .navbar-inner{padding:5px;} .navbar .container{width:auto;padding:0;} .navbar .brand{padding-left:10px;padding-right:10px;margin:0 0 0 -5px;} .navbar .nav-collapse{clear:left;} .navbar .nav{float:none;margin:0 0 9px;} .navbar .nav>li{float:none;} .navbar .nav>li>a{margin-bottom:2px;} .navbar .nav>.divider-vertical{display:none;} .navbar .nav .nav-header{color:#999999;text-shadow:none;} .navbar .nav>li>a,.navbar .dropdown-menu a{padding:6px 15px;font-weight:bold;color:#999999;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} .navbar .dropdown-menu li+li a{margin-bottom:2px;} .navbar .nav>li>a:hover,.navbar .dropdown-menu a:hover{background-color:#222222;} .navbar .dropdown-menu{position:static;top:auto;left:auto;float:none;display:block;max-width:none;margin:0 15px;padding:0;background-color:transparent;border:none;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} .navbar .dropdown-menu:before,.navbar .dropdown-menu:after{display:none;} .navbar .dropdown-menu .divider{display:none;} .navbar-form,.navbar-search{float:none;padding:9px 15px;margin:9px 0;border-top:1px solid #222222;border-bottom:1px solid #222222;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.1);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.1);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.1);} .navbar .nav.pull-right{float:none;margin-left:0;} .navbar-static .navbar-inner{padding-left:10px;padding-right:10px;} .btn-navbar{display:block;} .nav-collapse{overflow:hidden;height:0;}}@media (min-width:980px){.nav-collapse.collapse{height:auto !important;}}@media (min-width:1200px){.row{margin-left:-30px;*zoom:1;}.row:before,.row:after{display:table;content:"";} .row:after{clear:both;} [class*="span"]{float:left;margin-left:30px;} .span1{width:70px;} .span2{width:170px;} .span3{width:270px;} .span4{width:370px;} .span5{width:470px;} .span6{width:570px;} .span7{width:670px;} .span8{width:770px;} .span9{width:870px;} .span10{width:970px;} .span11{width:1070px;} .span12,.container{width:1170px;} .offset1{margin-left:130px;} .offset2{margin-left:230px;} .offset3{margin-left:330px;} .offset4{margin-left:430px;} .offset5{margin-left:530px;} .offset6{margin-left:630px;} .offset7{margin-left:730px;} .offset8{margin-left:830px;} .offset9{margin-left:930px;} .offset10{margin-left:1030px;} .offset11{margin-left:1130px;} .row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";} .row-fluid:after{clear:both;} .row-fluid>[class*="span"]{float:left;margin-left:2.564102564%;} .row-fluid>[class*="span"]:first-child{margin-left:0;} .row-fluid>.span1{width:5.982905983%;} .row-fluid>.span2{width:14.529914530000001%;} .row-fluid>.span3{width:23.076923077%;} .row-fluid>.span4{width:31.623931624%;} .row-fluid>.span5{width:40.170940171000005%;} .row-fluid>.span6{width:48.717948718%;} .row-fluid>.span7{width:57.264957265%;} .row-fluid>.span8{width:65.81196581200001%;} .row-fluid>.span9{width:74.358974359%;} .row-fluid>.span10{width:82.905982906%;} .row-fluid>.span11{width:91.45299145300001%;} .row-fluid>.span12{width:100%;} input.span1,textarea.span1,.uneditable-input.span1{width:60px;} input.span2,textarea.span2,.uneditable-input.span2{width:160px;} input.span3,textarea.span3,.uneditable-input.span3{width:260px;} input.span4,textarea.span4,.uneditable-input.span4{width:360px;} input.span5,textarea.span5,.uneditable-input.span5{width:460px;} input.span6,textarea.span6,.uneditable-input.span6{width:560px;} input.span7,textarea.span7,.uneditable-input.span7{width:660px;} input.span8,textarea.span8,.uneditable-input.span8{width:760px;} input.span9,textarea.span9,.uneditable-input.span9{width:860px;} input.span10,textarea.span10,.uneditable-input.span10{width:960px;} input.span11,textarea.span11,.uneditable-input.span11{width:1060px;} input.span12,textarea.span12,.uneditable-input.span12{width:1160px;} .thumbnails{margin-left:-30px;} .thumbnails>li{margin-left:30px;}} 5 | -------------------------------------------------------------------------------- /fordropweb/static/bootstrap/img/glyphicons-halflings-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/bootstrap/img/glyphicons-halflings-white.png -------------------------------------------------------------------------------- /fordropweb/static/bootstrap/img/glyphicons-halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/bootstrap/img/glyphicons-halflings.png -------------------------------------------------------------------------------- /fordropweb/static/css/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | background: #fff; 3 | color: #333; 4 | } 5 | 6 | #header { 7 | /* 8 | background: #333; 9 | height:45px; 10 | padding-top:15px; 11 | */ 12 | width:100%; 13 | height: 80px; 14 | background-image: -moz-linear-gradient(top, #333333 0%, #111111 100%); 15 | background-image: -o-linear-gradient(top, #333333 0%, #111111 100%); 16 | background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #333333), color-stop(1, #111111)); 17 | background-image: -webkit-linear-gradient(top, #333333 0%, #111111 100%); 18 | background-image: linear-gradient(to bottom, #333333 0%, #111111 100%); 19 | padding-top:20px; 20 | } 21 | 22 | .shadow2 { 23 | -moz-box-shadow: 10px 10px 50px #333; 24 | -webkit-box-shadow: 10px 10px 50px #333; 25 | box-shadow: 1px 1px 20px #333; 26 | } 27 | 28 | .left { 29 | float:left; 30 | } 31 | 32 | .right { 33 | float:right; 34 | } 35 | 36 | textarea { 37 | width:260px; 38 | } 39 | 40 | .quiet { 41 | color:#999; 42 | } 43 | 44 | .shadow { 45 | box-shadow: 1px 1px 3px #888; 46 | } 47 | 48 | .well.comment { 49 | background:#fff; 50 | left:auto; 51 | } 52 | 53 | .well.share { 54 | background: #fff; 55 | border:1px solid silver; 56 | left:auto; 57 | } 58 | 59 | .well.collection { 60 | background: #fff; 61 | border:1px solid silver; 62 | } 63 | 64 | .small { 65 | font-size:0.9em; 66 | } 67 | 68 | #timeline { 69 | height: 250px; 70 | border: 1px solid silver; 71 | background: #fff; 72 | } 73 | 74 | .nav-tabs > .active > a, .nav-tabs > .active > a:hover { 75 | background-color: #f5f5f5; 76 | } 77 | 78 | .hero-unit.hero-white { 79 | background: #fff; 80 | padding:30px; 81 | } -------------------------------------------------------------------------------- /fordropweb/static/css/timeline.css: -------------------------------------------------------------------------------- 1 | .timeline-band-0 .timeline-ether-bg { 2 | background-color: whiteSmoke; 3 | } 4 | -------------------------------------------------------------------------------- /fordropweb/static/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/img/favicon.ico -------------------------------------------------------------------------------- /fordropweb/static/img/placeholder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/img/placeholder.png -------------------------------------------------------------------------------- /fordropweb/static/img/thumbs_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/img/thumbs_up.png -------------------------------------------------------------------------------- /fordropweb/static/js/fd_timeline.js: -------------------------------------------------------------------------------- 1 | var tl; 2 | function onLoad() { 3 | var eventSource = new Timeline.DefaultEventSource(); 4 | var bandInfos = [ 5 | Timeline.createBandInfo({ 6 | eventSource: eventSource, 7 | date: date, 8 | width: "85%", 9 | intervalUnit: Timeline.DateTime.HOUR, 10 | intervalPixels: 100 11 | }), 12 | Timeline.createBandInfo({ 13 | overview: true, 14 | eventSource: eventSource, 15 | date: date, 16 | width: "15%", 17 | intervalUnit: Timeline.DateTime.DAY, 18 | intervalPixels: 200 19 | }) 20 | 21 | ]; 22 | bandInfos[1].syncWith = 0; 23 | bandInfos[1].highlight = true; 24 | tl = Timeline.create(document.getElementById("timeline"), bandInfos); 25 | Timeline.loadJSON(jsonurl, function(data, url) { eventSource.loadJSON(data, url); }); 26 | } 27 | 28 | var resizeTimerID = null; 29 | function onResize() { 30 | if (resizeTimerID == null) { 31 | resizeTimerID = window.setTimeout(function() { 32 | resizeTimerID = null; 33 | tl.layout(); 34 | }, 500); 35 | } 36 | } -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/LICENSE.txt: -------------------------------------------------------------------------------- 1 | /* 2 | * (c) Copyright The SIMILE Project 2006. All rights reserved. 3 | * 4 | * Redistribution and use in source and binary forms, with or without 5 | * modification, are permitted provided that the following conditions 6 | * are met: 7 | * 8 | * 1. Redistributions of source code must retain the above copyright 9 | * notice, this list of conditions and the following disclaimer. 10 | * 11 | * 2. Redistributions in binary form must reproduce the above copyright 12 | * notice, this list of conditions and the following disclaimer in the 13 | * documentation and/or other materials provided with the distribution. 14 | * 15 | * 3. The name of the author may not be used to endorse or promote products 16 | * derived from this software without specific prior written permission. 17 | * 18 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 19 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 20 | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 21 | * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 22 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 23 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | * 29 | * Note: JQuery, www.jquery.com is included in the Ajax section of this 30 | * distribution. It is covered by its own license: 31 | * 32 | * Copyright (c) 2008 John Resig (jquery.com) 33 | * Dual licensed under the MIT (MIT-LICENSE.txt) 34 | * and GPL (GPL-LICENSE.txt) licenses. 35 | */ 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/README.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/README.txt -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_ajax/content/history.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Dummy Page for Keeping Track of History 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_ajax/images/bubble-arrow-point-down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_ajax/images/bubble-arrow-point-down.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_ajax/images/bubble-arrow-point-left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_ajax/images/bubble-arrow-point-left.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_ajax/images/bubble-arrow-point-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_ajax/images/bubble-arrow-point-right.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_ajax/images/bubble-arrow-point-up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_ajax/images/bubble-arrow-point-up.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_ajax/images/bubble-bottom-left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_ajax/images/bubble-bottom-left.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_ajax/images/bubble-bottom-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_ajax/images/bubble-bottom-right.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_ajax/images/bubble-bottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_ajax/images/bubble-bottom.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_ajax/images/bubble-left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_ajax/images/bubble-left.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_ajax/images/bubble-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_ajax/images/bubble-right.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_ajax/images/bubble-top-left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_ajax/images/bubble-top-left.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_ajax/images/bubble-top-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_ajax/images/bubble-top-right.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_ajax/images/bubble-top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_ajax/images/bubble-top.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_ajax/images/close-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_ajax/images/close-button.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_ajax/images/copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_ajax/images/copy.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_ajax/images/message-bottom-left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_ajax/images/message-bottom-left.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_ajax/images/message-bottom-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_ajax/images/message-bottom-right.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_ajax/images/message-left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_ajax/images/message-left.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_ajax/images/message-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_ajax/images/message-right.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_ajax/images/message-top-left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_ajax/images/message-top-left.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_ajax/images/message-top-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_ajax/images/message-top-right.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_ajax/scripts/signal.js: -------------------------------------------------------------------------------- 1 | /*================================================== 2 | * This file is used to detect that all outstanding 3 | * javascript files have been loaded. You can put 4 | * a function reference into SimileAjax_onLoad 5 | * to have it executed once all javascript files 6 | * have loaded. 7 | *================================================== 8 | */ 9 | (function() { 10 | var substring = SimileAjax.urlPrefix + "scripts/signal.js"; 11 | var heads = document.documentElement.getElementsByTagName("head"); 12 | for (var h = 0; h < heads.length; h++) { 13 | var node = heads[h].firstChild; 14 | while (node != null) { 15 | if (node.nodeType == 1 && node.tagName.toLowerCase() == "script") { 16 | var url = node.src; 17 | var i = url.indexOf(substring); 18 | if (i >= 0) { 19 | heads[h].removeChild(node); // remove it so we won't hit it again 20 | 21 | var count = parseInt(url.substr(url.indexOf(substring) + substring.length + 1)); 22 | SimileAjax.loadingScriptsCount -= count; 23 | if (SimileAjax.loadingScriptsCount == 0) { 24 | var f = null; 25 | if (typeof SimileAjax_onLoad == "string") { 26 | f = eval(SimileAjax_onLoad); 27 | SimileAjax_onLoad = null; 28 | } else if (typeof SimileAjax_onLoad == "function") { 29 | f = SimileAjax_onLoad; 30 | SimileAjax_onLoad = null; 31 | } 32 | 33 | if (f != null) { 34 | f(); 35 | } 36 | } 37 | return; 38 | } 39 | } 40 | node = node.nextSibling; 41 | } 42 | } 43 | })(); 44 | -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_ajax/simile-ajax-api.js: -------------------------------------------------------------------------------- 1 | /*================================================== 2 | * Simile Ajax API 3 | * 4 | * Include this file in your HTML file as follows: 5 | * 6 | * 7 | * 8 | *================================================== 9 | */ 10 | 11 | if (typeof SimileAjax == "undefined") { 12 | var SimileAjax = { 13 | loaded: false, 14 | loadingScriptsCount: 0, 15 | error: null, 16 | params: { bundle:"true" } 17 | }; 18 | 19 | SimileAjax.Platform = new Object(); 20 | /* 21 | HACK: We need these 2 things here because we cannot simply append 22 | a "); 56 | return; 57 | } catch (e) { 58 | // fall through 59 | } 60 | } 61 | 62 | var script = doc.createElement("script"); 63 | if (onerror) { 64 | try { script.innerHTML = onerror; } catch(e) {} 65 | script.setAttribute("onerror", onerror); 66 | } 67 | if (charset) { 68 | script.setAttribute("charset", charset); 69 | } 70 | script.type = "text/javascript"; 71 | script.language = "JavaScript"; 72 | script.src = url; 73 | return getHead(doc).appendChild(script); 74 | }; 75 | SimileAjax.includeJavascriptFiles = function(doc, urlPrefix, filenames) { 76 | for (var i = 0; i < filenames.length; i++) { 77 | SimileAjax.includeJavascriptFile(doc, urlPrefix + filenames[i]); 78 | } 79 | SimileAjax.loadingScriptsCount += filenames.length; 80 | SimileAjax.includeJavascriptFile(doc, SimileAjax.urlPrefix + "scripts/signal.js?" + filenames.length); 81 | }; 82 | SimileAjax.includeCssFile = function(doc, url) { 83 | if (doc.body == null) { 84 | try { 85 | doc.write(""); 86 | return; 87 | } catch (e) { 88 | // fall through 89 | } 90 | } 91 | 92 | var link = doc.createElement("link"); 93 | link.setAttribute("rel", "stylesheet"); 94 | link.setAttribute("type", "text/css"); 95 | link.setAttribute("href", url); 96 | getHead(doc).appendChild(link); 97 | }; 98 | SimileAjax.includeCssFiles = function(doc, urlPrefix, filenames) { 99 | for (var i = 0; i < filenames.length; i++) { 100 | SimileAjax.includeCssFile(doc, urlPrefix + filenames[i]); 101 | } 102 | }; 103 | 104 | /** 105 | * Append into urls each string in suffixes after prefixing it with urlPrefix. 106 | * @param {Array} urls 107 | * @param {String} urlPrefix 108 | * @param {Array} suffixes 109 | */ 110 | SimileAjax.prefixURLs = function(urls, urlPrefix, suffixes) { 111 | for (var i = 0; i < suffixes.length; i++) { 112 | urls.push(urlPrefix + suffixes[i]); 113 | } 114 | }; 115 | 116 | /** 117 | * Parse out the query parameters from a URL 118 | * @param {String} url the url to parse, or location.href if undefined 119 | * @param {Object} to optional object to extend with the parameters 120 | * @param {Object} types optional object mapping keys to value types 121 | * (String, Number, Boolean or Array, String by default) 122 | * @return a key/value Object whose keys are the query parameter names 123 | * @type Object 124 | */ 125 | SimileAjax.parseURLParameters = function(url, to, types) { 126 | to = to || {}; 127 | types = types || {}; 128 | 129 | if (typeof url == "undefined") { 130 | url = location.href; 131 | } 132 | var q = url.indexOf("?"); 133 | if (q < 0) { 134 | return to; 135 | } 136 | url = (url+"#").slice(q+1, url.indexOf("#")); // toss the URL fragment 137 | 138 | var params = url.split("&"), param, parsed = {}; 139 | var decode = window.decodeURIComponent || unescape; 140 | for (var i = 0; param = params[i]; i++) { 141 | var eq = param.indexOf("="); 142 | var name = decode(param.slice(0,eq)); 143 | var old = parsed[name]; 144 | if (typeof old == "undefined") { 145 | old = []; 146 | } else if (!(old instanceof Array)) { 147 | old = [old]; 148 | } 149 | parsed[name] = old.concat(decode(param.slice(eq+1))); 150 | } 151 | for (var i in parsed) { 152 | if (!parsed.hasOwnProperty(i)) continue; 153 | var type = types[i] || String; 154 | var data = parsed[i]; 155 | if (!(data instanceof Array)) { 156 | data = [data]; 157 | } 158 | if (type === Boolean && data[0] == "false") { 159 | to[i] = false; // because Boolean("false") === true 160 | } else { 161 | to[i] = type.apply(this, data); 162 | } 163 | } 164 | return to; 165 | }; 166 | 167 | (function() { 168 | var javascriptFiles = [ 169 | "jquery-1.2.6.min.js", 170 | "platform.js", 171 | "debug.js", 172 | "xmlhttp.js", 173 | "json.js", 174 | "dom.js", 175 | "graphics.js", 176 | "date-time.js", 177 | "string.js", 178 | "html.js", 179 | "data-structure.js", 180 | "units.js", 181 | 182 | "ajax.js", 183 | "history.js", 184 | "window-manager.js" 185 | ]; 186 | var cssFiles = [ 187 | "graphics.css" 188 | ]; 189 | 190 | if (typeof SimileAjax_urlPrefix == "string") { 191 | SimileAjax.urlPrefix = SimileAjax_urlPrefix; 192 | } else { 193 | var url = SimileAjax.findScript(document, "simile-ajax-api.js"); 194 | if (url == null) { 195 | SimileAjax.error = new Error("Failed to derive URL prefix for Simile Ajax API code files"); 196 | return; 197 | } 198 | 199 | SimileAjax.urlPrefix = url.substr(0, url.indexOf("simile-ajax-api.js")); 200 | } 201 | 202 | SimileAjax.parseURLParameters(url, SimileAjax.params, {bundle:Boolean}); 203 | if (SimileAjax.params.bundle) { 204 | SimileAjax.includeJavascriptFiles(document, SimileAjax.urlPrefix, [ "simile-ajax-bundle.js" ]); 205 | } else { 206 | SimileAjax.includeJavascriptFiles(document, SimileAjax.urlPrefix + "scripts/", javascriptFiles); 207 | } 208 | SimileAjax.includeCssFiles(document, SimileAjax.urlPrefix + "styles/", cssFiles); 209 | 210 | SimileAjax.loaded = true; 211 | })(); 212 | } 213 | -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_ajax/styles/graphics-ie6.css: -------------------------------------------------------------------------------- 1 | .simileAjax-bubble-border-left-pngNotTranslucent { 2 | filter: expression( 3 | "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + SimileAjax.urlPrefix + "images/bubble-left.png', sizingMethod='crop')" 4 | ); 5 | } 6 | 7 | .simileAjax-bubble-border-right-pngNotTranslucent { 8 | filter: expression( 9 | "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + SimileAjax.urlPrefix + "images/bubble-right.png', sizingMethod='crop')" 10 | ); 11 | } 12 | 13 | .simileAjax-bubble-border-top-pngNotTranslucent { 14 | filter: expression( 15 | "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + SimileAjax.urlPrefix + "images/bubble-top.png', sizingMethod='crop')" 16 | ); 17 | } 18 | 19 | .simileAjax-bubble-border-bottom-pngNotTranslucent { 20 | filter: expression( 21 | "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + SimileAjax.urlPrefix + "images/bubble-bottom.png', sizingMethod='crop')" 22 | ); 23 | } 24 | 25 | .simileAjax-bubble-border-top-left-pngNotTranslucent { 26 | filter: expression( 27 | "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + SimileAjax.urlPrefix + "images/bubble-top-left.png', sizingMethod='crop')" 28 | ); 29 | } 30 | 31 | .simileAjax-bubble-border-top-right-pngNotTranslucent { 32 | filter: expression( 33 | "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + SimileAjax.urlPrefix + "images/bubble-top-right.png', sizingMethod='crop')" 34 | ); 35 | } 36 | 37 | .simileAjax-bubble-border-bottom-left-pngNotTranslucent { 38 | filter: expression( 39 | "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + SimileAjax.urlPrefix + "images/bubble-bottom-left.png', sizingMethod='crop')" 40 | ); 41 | } 42 | 43 | .simileAjax-bubble-border-bottom-right-pngNotTranslucent { 44 | filter: expression( 45 | "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + SimileAjax.urlPrefix + "images/bubble-bottom-right.png', sizingMethod='crop')" 46 | ); 47 | } 48 | 49 | .simileAjax-bubble-arrow-point-left-pngNotTranslucent { 50 | filter: expression( 51 | "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + SimileAjax.urlPrefix + "images/bubble-arrow-point-left.png', sizingMethod='crop')" 52 | ); 53 | } 54 | 55 | .simileAjax-bubble-arrow-point-right-pngNotTranslucent { 56 | filter: expression( 57 | "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + SimileAjax.urlPrefix + "images/bubble-arrow-point-right.png', sizingMethod='crop')" 58 | ); 59 | } 60 | 61 | .simileAjax-bubble-arrow-point-up-pngNotTranslucent { 62 | filter: expression( 63 | "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + SimileAjax.urlPrefix + "images/bubble-arrow-point-up.png', sizingMethod='crop')" 64 | ); 65 | } 66 | 67 | .simileAjax-bubble-arrow-point-down-pngNotTranslucent { 68 | filter: expression( 69 | "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + SimileAjax.urlPrefix + "images/bubble-arrow-point-down.png', sizingMethod='crop')" 70 | ); 71 | } 72 | 73 | .simileAjax-bubble-close-pngNotTranslucent { 74 | filter: expression( 75 | "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + SimileAjax.urlPrefix + "images/close-button.png', sizingMethod='crop')" 76 | ); 77 | } 78 | -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_ajax/styles/graphics.css: -------------------------------------------------------------------------------- 1 | div.simileAjax-bubble-container { 2 | margin: 0px; 3 | padding: 0px; 4 | border: none; 5 | position: absolute; 6 | z-index: 1000; 7 | } 8 | 9 | div.simileAjax-bubble-innerContainer { 10 | margin: 0px; 11 | padding: 0px; 12 | border: none; 13 | position: relative; 14 | width: 100%; 15 | height: 100%; 16 | overflow: visible; 17 | } 18 | 19 | div.simileAjax-bubble-contentContainer { 20 | margin: 0px; 21 | padding: 0px; 22 | border: none; 23 | position: absolute; 24 | left: 0px; 25 | top: 0px; 26 | width: 100%; 27 | height: 100%; 28 | overflow: auto; 29 | background: white; 30 | } 31 | 32 | div.simileAjax-bubble-border-left { 33 | position: absolute; 34 | left: -50px; 35 | top: 0px; 36 | width: 50px; 37 | height: 100%; 38 | } 39 | div.simileAjax-bubble-border-left-pngTranslucent { 40 | background: url(../images/bubble-left.png) top right repeat-y; 41 | } 42 | 43 | div.simileAjax-bubble-border-right { 44 | position: absolute; 45 | right: -50px; 46 | top: 0px; 47 | width: 50px; 48 | height: 100%; 49 | } 50 | .simileAjax-bubble-border-right-pngTranslucent { 51 | background: url(../images/bubble-right.png) top left repeat-y; 52 | } 53 | 54 | div.simileAjax-bubble-border-top { 55 | position: absolute; 56 | top: -50px; 57 | left: 0px; 58 | width: 100%; 59 | height: 50px; 60 | } 61 | .simileAjax-bubble-border-top-pngTranslucent { 62 | background: url(../images/bubble-top.png) bottom left repeat-x; 63 | } 64 | 65 | div.simileAjax-bubble-border-bottom { 66 | position: absolute; 67 | bottom: -50px; 68 | left: 0px; 69 | width: 100%; 70 | height: 50px; 71 | } 72 | .simileAjax-bubble-border-bottom-pngTranslucent { 73 | background: url(../images/bubble-bottom.png) top left repeat-x; 74 | } 75 | 76 | div.simileAjax-bubble-border-top-left { 77 | position: absolute; 78 | top: -50px; 79 | left: -50px; 80 | width: 50px; 81 | height: 50px; 82 | } 83 | .simileAjax-bubble-border-top-left-pngTranslucent { 84 | background: url(../images/bubble-top-left.png) bottom right no-repeat; 85 | } 86 | 87 | div.simileAjax-bubble-border-top-right { 88 | position: absolute; 89 | top: -50px; 90 | right: -50px; 91 | width: 50px; 92 | height: 50px; 93 | } 94 | .simileAjax-bubble-border-top-right-pngTranslucent { 95 | background: url(../images/bubble-top-right.png) bottom left no-repeat; 96 | } 97 | 98 | div.simileAjax-bubble-border-bottom-left { 99 | position: absolute; 100 | bottom: -50px; 101 | left: -50px; 102 | width: 50px; 103 | height: 50px; 104 | } 105 | .simileAjax-bubble-border-bottom-left-pngTranslucent { 106 | background: url(../images/bubble-bottom-left.png) top right no-repeat; 107 | } 108 | 109 | div.simileAjax-bubble-border-bottom-right { 110 | position: absolute; 111 | bottom: -50px; 112 | right: -50px; 113 | width: 50px; 114 | height: 50px; 115 | } 116 | .simileAjax-bubble-border-bottom-right-pngTranslucent { 117 | background: url(../images/bubble-bottom-right.png) top left no-repeat; 118 | } 119 | 120 | div.simileAjax-bubble-arrow-point-left { 121 | position: absolute; 122 | left: -100px; 123 | width: 100px; 124 | height: 49px; 125 | } 126 | .simileAjax-bubble-arrow-point-left-pngTranslucent { 127 | background: url(../images/bubble-arrow-point-left.png) center right no-repeat; 128 | } 129 | 130 | div.simileAjax-bubble-arrow-point-right { 131 | position: absolute; 132 | right: -100px; 133 | width: 100px; 134 | height: 49px; 135 | } 136 | .simileAjax-bubble-arrow-point-right-pngTranslucent { 137 | background: url(../images/bubble-arrow-point-right.png) center left no-repeat; 138 | } 139 | 140 | div.simileAjax-bubble-arrow-point-up { 141 | position: absolute; 142 | top: -100px; 143 | width: 49px; 144 | height: 100px; 145 | } 146 | .simileAjax-bubble-arrow-point-up-pngTranslucent { 147 | background: url(../images/bubble-arrow-point-up.png) bottom center no-repeat; 148 | } 149 | 150 | div.simileAjax-bubble-arrow-point-down { 151 | position: absolute; 152 | bottom: -100px; 153 | width: 49px; 154 | height: 100px; 155 | } 156 | .simileAjax-bubble-arrow-point-down-pngTranslucent { 157 | background: url(../images/bubble-arrow-point-down.png) bottom center no-repeat; 158 | } 159 | 160 | 161 | div.simileAjax-bubble-close { 162 | position: absolute; 163 | right: -10px; 164 | top: -12px; 165 | width: 16px; 166 | height: 16px; 167 | cursor: pointer; 168 | } 169 | .simileAjax-bubble-close-pngTranslucent { 170 | background: url(../images/close-button.png) no-repeat; 171 | } 172 | -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/images/blue-circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_js/images/blue-circle.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/images/bubble-bottom-arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_js/images/bubble-bottom-arrow.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/images/bubble-bottom-left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_js/images/bubble-bottom-left.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/images/bubble-bottom-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_js/images/bubble-bottom-right.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/images/bubble-bottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_js/images/bubble-bottom.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/images/bubble-left-arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_js/images/bubble-left-arrow.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/images/bubble-left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_js/images/bubble-left.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/images/bubble-right-arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_js/images/bubble-right-arrow.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/images/bubble-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_js/images/bubble-right.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/images/bubble-top-arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_js/images/bubble-top-arrow.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/images/bubble-top-left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_js/images/bubble-top-left.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/images/bubble-top-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_js/images/bubble-top-right.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/images/bubble-top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_js/images/bubble-top.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/images/close-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_js/images/close-button.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/images/copyright-vertical.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_js/images/copyright-vertical.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/images/copyright.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_js/images/copyright.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/images/dark-blue-circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_js/images/dark-blue-circle.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/images/dark-green-circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_js/images/dark-green-circle.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/images/dark-red-circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_js/images/dark-red-circle.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/images/dull-blue-circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_js/images/dull-blue-circle.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/images/dull-green-circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_js/images/dull-green-circle.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/images/dull-red-circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_js/images/dull-red-circle.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/images/gray-circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_js/images/gray-circle.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/images/green-circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_js/images/green-circle.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/images/message-bottom-left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_js/images/message-bottom-left.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/images/message-bottom-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_js/images/message-bottom-right.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/images/message-left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_js/images/message-left.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/images/message-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_js/images/message-right.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/images/message-top-left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_js/images/message-top-left.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/images/message-top-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_js/images/message-top-right.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/images/progress-running.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_js/images/progress-running.gif -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/images/red-circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_js/images/red-circle.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/images/top-bubble.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_js/images/top-bubble.png -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/scripts/l10n/cs/labellers.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_js/scripts/l10n/cs/labellers.js -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/scripts/l10n/cs/timeline.js: -------------------------------------------------------------------------------- 1 | /*================================================== 2 | * Common localization strings 3 | *================================================== 4 | */ 5 | 6 | Timeline.strings["cs"] = { 7 | wikiLinkLabel: "Diskuze" 8 | }; 9 | 10 | -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/scripts/l10n/de/labellers.js: -------------------------------------------------------------------------------- 1 | /*================================================== 2 | * Localization of labellers.js 3 | *================================================== 4 | */ 5 | 6 | Timeline.GregorianDateLabeller.monthNames["de"] = [ 7 | "Jan", "Feb", "Mrz", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez" 8 | ]; 9 | 10 | Timeline.GregorianDateLabeller.labelIntervalFunctions["de"] = function(date, intervalUnit) { 11 | var text; 12 | var emphasized = false; 13 | 14 | var date2 = Timeline.DateTime.removeTimeZoneOffset(date, this._timeZone); 15 | 16 | switch(intervalUnit) { 17 | case Timeline.DateTime.DAY: 18 | case Timeline.DateTime.WEEK: 19 | text = date2.getUTCDate() + ". " + 20 | Timeline.GregorianDateLabeller.getMonthName(date2.getUTCMonth(), this._locale); 21 | break; 22 | default: 23 | return this.defaultLabelInterval(date, intervalUnit); 24 | } 25 | 26 | return { text: text, emphasized: emphasized }; 27 | }; -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/scripts/l10n/de/timeline.js: -------------------------------------------------------------------------------- 1 | /*================================================== 2 | * Common localization strings 3 | *================================================== 4 | */ 5 | 6 | Timeline.strings["de"] = { 7 | wikiLinkLabel: "Diskutieren" 8 | }; 9 | -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/scripts/l10n/en/labellers.js: -------------------------------------------------------------------------------- 1 | /*================================================== 2 | * Localization of labellers.js 3 | *================================================== 4 | */ 5 | 6 | Timeline.GregorianDateLabeller.monthNames["en"] = [ 7 | "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" 8 | ]; 9 | 10 | Timeline.GregorianDateLabeller.dayNames["en"] = [ 11 | "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" 12 | ]; 13 | -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/scripts/l10n/en/timeline.js: -------------------------------------------------------------------------------- 1 | /*================================================== 2 | * Common localization strings 3 | *================================================== 4 | */ 5 | 6 | Timeline.strings["en"] = { 7 | wikiLinkLabel: "Discuss" 8 | }; 9 | 10 | -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/scripts/l10n/es/labellers.js: -------------------------------------------------------------------------------- 1 | /*================================================== 2 | * Localization of labellers.js 3 | *================================================== 4 | */ 5 | 6 | Timeline.GregorianDateLabeller.monthNames["es"] = [ 7 | "Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic" 8 | ]; 9 | -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/scripts/l10n/es/timeline.js: -------------------------------------------------------------------------------- 1 | /*================================================== 2 | * Common localization strings 3 | *================================================== 4 | */ 5 | 6 | Timeline.strings["es"] = { 7 | wikiLinkLabel: "Discute" 8 | }; 9 | 10 | -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/scripts/l10n/fr/labellers.js: -------------------------------------------------------------------------------- 1 | /*================================================== 2 | * Localization of labellers.js 3 | *================================================== 4 | */ 5 | 6 | Timeline.GregorianDateLabeller.monthNames["fr"] = [ 7 | "jan", "fev", "mar", "avr", "mai", "jui", "jui", "aou", "sep", "oct", "nov", "dec" 8 | ]; 9 | -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/scripts/l10n/fr/timeline.js: -------------------------------------------------------------------------------- 1 | /*================================================== 2 | * Common localization strings 3 | *================================================== 4 | */ 5 | 6 | Timeline.strings["fr"] = { 7 | wikiLinkLabel: "Discute" 8 | }; 9 | 10 | -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/scripts/l10n/it/labellers.js: -------------------------------------------------------------------------------- 1 | /*================================================== 2 | * Localization of labellers.js 3 | *================================================== 4 | */ 5 | 6 | Timeline.GregorianDateLabeller.monthNames["it"] = [ 7 | "Gen", "Feb", "Mar", "Apr", "Mag", "Giu", "Lug", "Ago", "Set", "Ott", "Nov", "Dic" 8 | ]; 9 | -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/scripts/l10n/it/timeline.js: -------------------------------------------------------------------------------- 1 | /*================================================== 2 | * Common localization strings 3 | *================================================== 4 | */ 5 | 6 | Timeline.strings["it"] = { 7 | wikiLinkLabel: "Discuti" 8 | }; 9 | 10 | -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/scripts/l10n/nl/labellers.js: -------------------------------------------------------------------------------- 1 | /*================================================== 2 | * Localization of labellers.js 3 | *================================================== 4 | */ 5 | 6 | /* The Dutch do not capitalize months 7 | */ 8 | 9 | Timeline.GregorianDateLabeller.monthNames["nl"] = [ 10 | "jan", "feb", "mrt", "apr", "mei", "jun", "jul", "aug", "sep", "okt", "nov", "dec" 11 | ]; 12 | -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/scripts/l10n/nl/timeline.js: -------------------------------------------------------------------------------- 1 | /*================================================== 2 | * Common localization strings 3 | *================================================== 4 | */ 5 | 6 | Timeline.strings["nl"] = { 7 | wikiLinkLabel: "Discussieer" 8 | }; 9 | 10 | -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/scripts/l10n/ru/labellers.js: -------------------------------------------------------------------------------- 1 | /*================================================== 2 | * Localization of labellers.js 3 | * 4 | * UTF-8 encoded 5 | *================================================== 6 | */ 7 | 8 | Timeline.GregorianDateLabeller.monthNames["ru"] = [ 9 | "Янв", "Фев", "Мар", "Апр", "Май", "Июн", "Июл", "Авг", "Сен", "Окт", "Ноя", "Дек" 10 | ]; 11 | -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/scripts/l10n/ru/timeline.js: -------------------------------------------------------------------------------- 1 | /*================================================== 2 | * Common localization strings 3 | *================================================== 4 | */ 5 | 6 | Timeline.strings["ru"] = { 7 | wikiLinkLabel: "обсудите" 8 | }; 9 | 10 | -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/scripts/l10n/se/labellers.js: -------------------------------------------------------------------------------- 1 | /*================================================== 2 | * Localization of labellers.js 3 | *================================================== 4 | */ 5 | 6 | Timeline.GregorianDateLabeller.monthNames["se"] = [ 7 | "Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec" 8 | ]; 9 | 10 | Timeline.GregorianDateLabeller.dayNames["se"] = [ 11 | "Sön", "Mån", "Tis", "Ons", "Tors", "Fre", "Lör" 12 | ]; 13 | -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/scripts/l10n/se/timeline.js: -------------------------------------------------------------------------------- 1 | /*================================================== 2 | * Common localization strings 3 | *================================================== 4 | */ 5 | 6 | Timeline.strings["se"] = { 7 | wikiLinkLabel: "Discuss" 8 | }; 9 | 10 | -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/scripts/l10n/tr/labellers.js: -------------------------------------------------------------------------------- 1 | /*================================================== 2 | * Localization of labellers.js 3 | *================================================== 4 | */ 5 | 6 | Timeline.GregorianDateLabeller.monthNames["tr"] = [ 7 | "Ock", "Şbt", "Mrt", "Nsn", "Mys", "Hzr", "Tem", "Ağs", "Eyl", "Ekm", "Ksm", "Arl" 8 | ]; 9 | -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/scripts/l10n/tr/timeline.js: -------------------------------------------------------------------------------- 1 | /*================================================== 2 | * Common localization strings 3 | *================================================== 4 | */ 5 | 6 | Timeline.strings["tr"] = { 7 | wikiLinkLabel: "Tartış" 8 | }; 9 | 10 | -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/scripts/l10n/vi/labellers.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/js/timeline_2.3.1/timeline_js/scripts/l10n/vi/labellers.js -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/scripts/l10n/vi/timeline.js: -------------------------------------------------------------------------------- 1 | /*================================================== 2 | * Common localization strings 3 | *================================================== 4 | */ 5 | 6 | Timeline.strings["vi"] = { 7 | wikiLinkLabel: "Bàn luận" 8 | }; 9 | 10 | -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/scripts/l10n/zh/labellers.js: -------------------------------------------------------------------------------- 1 | /*================================================== 2 | * Localization of labellers.js 3 | *================================================== 4 | */ 5 | 6 | Timeline.GregorianDateLabeller.monthNames["zh"] = [ 7 | "1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月" 8 | ]; 9 | 10 | Timeline.GregorianDateLabeller.labelIntervalFunctions["zh"] = function(date, intervalUnit) { 11 | var text; 12 | var emphasized = false; 13 | 14 | var date2 = Timeline.DateTime.removeTimeZoneOffset(date, this._timeZone); 15 | 16 | switch(intervalUnit) { 17 | case Timeline.DateTime.DAY: 18 | case Timeline.DateTime.WEEK: 19 | text = Timeline.GregorianDateLabeller.getMonthName(date2.getUTCMonth(), this._locale) + 20 | date2.getUTCDate() + "日"; 21 | break; 22 | default: 23 | return this.defaultLabelInterval(date, intervalUnit); 24 | } 25 | 26 | return { text: text, emphasized: emphasized }; 27 | }; -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/scripts/l10n/zh/timeline.js: -------------------------------------------------------------------------------- 1 | /*================================================== 2 | * Common localization strings 3 | *================================================== 4 | */ 5 | 6 | Timeline.strings["zh"] = { 7 | wikiLinkLabel: "讨论" 8 | }; 9 | 10 | -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/timeline-api.js: -------------------------------------------------------------------------------- 1 | /*================================================== 2 | * Timeline API 3 | * 4 | * This file will load all the Javascript files 5 | * necessary to make the standard timeline work. 6 | * It also detects the default locale. 7 | * 8 | * To run from the MIT copy of Timeline: 9 | * Include this file in your HTML file as follows: 10 | * 11 | * 13 | * 14 | * 15 | * To host the Timeline files on your own server: 16 | * 1) Install the Timeline and Simile-Ajax files onto your webserver using 17 | * timeline_libraries.zip or timeline_source.zip 18 | * 19 | * 2) Set global js variables used to send parameters to this script: 20 | * Timeline_ajax_url -- url for simile-ajax-api.js 21 | * Timeline_urlPrefix -- url for the *directory* that contains timeline-api.js 22 | * Include trailing slash 23 | * Timeline_parameters='bundle=true'; // you must set bundle to true if you are using 24 | * // timeline_libraries.zip since only the 25 | * // bundled libraries are included 26 | * 27 | * eg your html page would include 28 | * 29 | * 34 | * 37 | * 38 | * SCRIPT PARAMETERS 39 | * This script auto-magically figures out locale and has defaults for other parameters 40 | * To set parameters explicity, set js global variable Timeline_parameters or include as 41 | * parameters on the url using GET style. Eg the two next lines pass the same parameters: 42 | * Timeline_parameters='bundle=true'; // pass parameter via js variable 43 | * "); 271 | } catch (e) { 272 | createScriptElement(); 273 | } 274 | } else { 275 | createScriptElement(); 276 | } 277 | } else { 278 | loadMe(); 279 | } 280 | })(); 281 | -------------------------------------------------------------------------------- /fordropweb/static/js/timeline_2.3.1/timeline_js/timeline-bundle.css: -------------------------------------------------------------------------------- 1 | 2 | 3 | /*------------------- Horizontal / Vertical lines ----------------*/ 4 | 5 | /* style for ethers */ 6 | .timeline-ether-lines{border-color:#666; border-style:dotted; position:absolute;} 7 | .timeline-horizontal .timeline-ether-lines{border-width:0 0 0 1px; height:100%; top: 0; width: 1px;} 8 | .timeline-vertical .timeline-ether-lines{border-width:1px 0 0; height:1px; left: 0; width: 100%;} 9 | 10 | 11 | 12 | /*---------------- Weekends ---------------------------*/ 13 | .timeline-ether-weekends{ 14 | position:absolute; 15 | background-color:#FFFFE0; 16 | } 17 | 18 | .timeline-vertical .timeline-ether-weekends{left:0;width:100%;} 19 | .timeline-horizontal .timeline-ether-weekends{top:0; height:100%;} 20 | 21 | 22 | /*-------------------------- HIGHLIGHT DECORATORS -------------------*/ 23 | /* Used for decorators, not used for Timeline Highlight */ 24 | .timeline-highlight-decorator, 25 | .timeline-highlight-point-decorator{ 26 | position:absolute; 27 | overflow:hidden; 28 | } 29 | 30 | /* Width of horizontal decorators and Height of vertical decorators is 31 | set in the decorator function params */ 32 | .timeline-horizontal .timeline-highlight-point-decorator, 33 | .timeline-horizontal .timeline-highlight-decorator{ 34 | top:0; 35 | height:100%; 36 | } 37 | 38 | .timeline-vertical .timeline-highlight-point-decorator, 39 | .timeline-vertical .timeline-highlight-decorator{ 40 | width:100%; 41 | left:0; 42 | } 43 | 44 | .timeline-highlight-decorator{background-color:#FFC080;} 45 | .timeline-highlight-point-decorator{background-color:#ff5;} 46 | 47 | 48 | /*---------------------------- LABELS -------------------------*/ 49 | .timeline-highlight-label { 50 | position:absolute; overflow:hidden; font-size:200%; 51 | font-weight:bold; color:#999; } 52 | 53 | 54 | /*---------------- VERTICAL LABEL -------------------*/ 55 | .timeline-horizontal .timeline-highlight-label {top:0; height:100%;} 56 | .timeline-horizontal .timeline-highlight-label td {vertical-align:middle;} 57 | .timeline-horizontal .timeline-highlight-label-start {text-align:right;} 58 | .timeline-horizontal .timeline-highlight-label-end {text-align:left;} 59 | 60 | 61 | /*---------------- HORIZONTAL LABEL -------------------*/ 62 | .timeline-vertical .timeline-highlight-label {left:0;width:100%;} 63 | .timeline-vertical .timeline-highlight-label td {vertical-align:top;} 64 | .timeline-vertical .timeline-highlight-label-start {text-align:center;} 65 | .timeline-vertical .timeline-highlight-label-end {text-align:center;} 66 | 67 | 68 | /*-------------------------------- DATE LABELS --------------------------------*/ 69 | .timeline-date-label { 70 | position: absolute; 71 | border: solid #aaa; 72 | color: #aaa; 73 | width: 5em; 74 | height: 1.5em;} 75 | .timeline-date-label-em {color: #000;} 76 | 77 | /* horizontal */ 78 | .timeline-horizontal .timeline-date-label{padding-left:2px;} 79 | .timeline-horizontal .timeline-date-label{border-width:0 0 0 1px;} 80 | .timeline-horizontal .timeline-date-label-em{height:2em} 81 | 82 | /* vertical */ 83 | .timeline-vertical .timeline-date-label{padding-top:2px;} 84 | .timeline-vertical .timeline-date-label{border-width:1px 0 0;} 85 | .timeline-vertical .timeline-date-label-em{width:7em} 86 | 87 | 88 | /*------------------------------- Ether.highlight -------------------------*/ 89 | .timeline-ether-highlight{position:absolute; background-color:#fff;} 90 | .timeline-horizontal .timeline-ether-highlight{top:2px;} 91 | .timeline-vertical .timeline-ether-highlight{left:2px;} 92 | 93 | 94 | /*------------------------------ EVENTS ------------------------------------*/ 95 | .timeline-event-icon, .timeline-event-label,.timeline-event-tape{ 96 | position:absolute; 97 | cursor:pointer; 98 | } 99 | 100 | .timeline-event-tape, 101 | .timeline-small-event-tape, 102 | .timeline-small-event-icon{ 103 | background-color:#58A0DC; 104 | overflow:hidden; 105 | } 106 | 107 | .timeline-small-event-tape, 108 | .timeline-small-event-icon{ 109 | position:absolute; 110 | } 111 | 112 | .timeline-small-event-icon{width:1px; height:6px;} 113 | 114 | 115 | /*--------------------------------- TIMELINE-------------------------*/ 116 | .timeline-ether-bg{width:100%; height:100%;} 117 | .timeline-band-0 .timeline-ether-bg{background-color:#eee} 118 | .timeline-band-1 .timeline-ether-bg{background-color:#ddd} 119 | .timeline-band-2 .timeline-ether-bg{background-color:#ccc} 120 | .timeline-band-3 .timeline-ether-bg{background-color:#aaa} 121 | .timeline-duration-event { 122 | position: absolute; 123 | overflow: hidden; 124 | border: 1px solid blue; 125 | } 126 | 127 | .timeline-instant-event2 { 128 | position: absolute; 129 | overflow: hidden; 130 | border-left: 1px solid blue; 131 | padding-left: 2px; 132 | } 133 | 134 | .timeline-instant-event { 135 | position: absolute; 136 | overflow: hidden; 137 | } 138 | 139 | .timeline-event-bubble-title { 140 | font-weight: bold; 141 | border-bottom: 1px solid #888; 142 | margin-bottom: 0.5em; 143 | } 144 | 145 | .timeline-event-bubble-body { 146 | } 147 | 148 | .timeline-event-bubble-wiki { 149 | margin: 0.5em; 150 | text-align: right; 151 | color: #A0A040; 152 | } 153 | .timeline-event-bubble-wiki a { 154 | color: #A0A040; 155 | } 156 | 157 | .timeline-event-bubble-time { 158 | color: #aaa; 159 | } 160 | 161 | .timeline-event-bubble-image { 162 | float: right; 163 | padding-left: 5px; 164 | padding-bottom: 5px; 165 | }.timeline-container { 166 | position: relative; 167 | overflow: hidden; 168 | } 169 | 170 | .timeline-copyright { 171 | position: absolute; 172 | bottom: 0px; 173 | left: 0px; 174 | z-index: 1000; 175 | cursor: pointer; 176 | } 177 | 178 | .timeline-message-container { 179 | position: absolute; 180 | top: 30%; 181 | left: 35%; 182 | right: 35%; 183 | z-index: 1000; 184 | display: none; 185 | } 186 | .timeline-message { 187 | font-size: 120%; 188 | font-weight: bold; 189 | text-align: center; 190 | } 191 | .timeline-message img { 192 | vertical-align: middle; 193 | } 194 | 195 | .timeline-band { 196 | position: absolute; 197 | background: #eee; 198 | z-index: 10; 199 | } 200 | 201 | .timeline-band-inner { 202 | position: relative; 203 | width: 100%; 204 | height: 100%; 205 | } 206 | 207 | .timeline-band-input { 208 | position: absolute; 209 | width: 1em; 210 | height: 1em; 211 | overflow: hidden; 212 | z-index: 0; 213 | } 214 | .timeline-band-input input{ 215 | width: 0; 216 | } 217 | 218 | .timeline-band-layer { 219 | position: absolute; 220 | width: 100%; 221 | height: 100%; 222 | } 223 | 224 | .timeline-band-layer-inner { 225 | position: relative; 226 | width: 100%; 227 | height: 100%; 228 | } 229 | 230 | -------------------------------------------------------------------------------- /fordropweb/static/pubsubbox/css/bootstrap-responsive-2.0.2.min.css: -------------------------------------------------------------------------------- 1 | .clearfix{*zoom:1;}.clearfix:before,.clearfix:after{display:table;content:"";} 2 | .clearfix:after{clear:both;} 3 | .hide-text{overflow:hidden;text-indent:100%;white-space:nowrap;} 4 | .input-block-level{display:block;width:100%;min-height:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;} 5 | .hidden{display:none;visibility:hidden;} 6 | .visible-phone{display:none;} 7 | .visible-tablet{display:none;} 8 | .visible-desktop{display:block;} 9 | .hidden-phone{display:block;} 10 | .hidden-tablet{display:block;} 11 | .hidden-desktop{display:none;} 12 | @media (max-width:767px){.visible-phone{display:block;} .hidden-phone{display:none;} .hidden-desktop{display:block;} .visible-desktop{display:none;}}@media (min-width:768px) and (max-width:979px){.visible-tablet{display:block;} .hidden-tablet{display:none;} .hidden-desktop{display:block;} .visible-desktop{display:none;}}@media (max-width:480px){.nav-collapse{-webkit-transform:translate3d(0, 0, 0);} .page-header h1 small{display:block;line-height:18px;} input[type="checkbox"],input[type="radio"]{border:1px solid #ccc;} .form-horizontal .control-group>label{float:none;width:auto;padding-top:0;text-align:left;} .form-horizontal .controls{margin-left:0;} .form-horizontal .control-list{padding-top:0;} .form-horizontal .form-actions{padding-left:10px;padding-right:10px;} .modal{position:absolute;top:10px;left:10px;right:10px;width:auto;margin:0;}.modal.fade.in{top:auto;} .modal-header .close{padding:10px;margin:-10px;} .carousel-caption{position:static;}}@media (max-width:767px){body{padding-left:20px;padding-right:20px;} .navbar-fixed-top{margin-left:-20px;margin-right:-20px;} .container{width:auto;} .row-fluid{width:100%;} .row{margin-left:0;} .row>[class*="span"],.row-fluid>[class*="span"]{float:none;display:block;width:auto;margin:0;} .thumbnails [class*="span"]{width:auto;} input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;} .input-prepend input[class*="span"],.input-append input[class*="span"]{width:auto;}}@media (min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1;}.row:before,.row:after{display:table;content:"";} .row:after{clear:both;} [class*="span"]{float:left;margin-left:20px;} .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px;} .span12{width:724px;} .span11{width:662px;} .span10{width:600px;} .span9{width:538px;} .span8{width:476px;} .span7{width:414px;} .span6{width:352px;} .span5{width:290px;} .span4{width:228px;} .span3{width:166px;} .span2{width:104px;} .span1{width:42px;} .offset12{margin-left:764px;} .offset11{margin-left:702px;} .offset10{margin-left:640px;} .offset9{margin-left:578px;} .offset8{margin-left:516px;} .offset7{margin-left:454px;} .offset6{margin-left:392px;} .offset5{margin-left:330px;} .offset4{margin-left:268px;} .offset3{margin-left:206px;} .offset2{margin-left:144px;} .offset1{margin-left:82px;} .row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";} .row-fluid:after{clear:both;} .row-fluid>[class*="span"]{float:left;margin-left:2.762430939%;} .row-fluid>[class*="span"]:first-child{margin-left:0;} .row-fluid > .span12{width:99.999999993%;} .row-fluid > .span11{width:91.436464082%;} .row-fluid > .span10{width:82.87292817100001%;} .row-fluid > .span9{width:74.30939226%;} .row-fluid > .span8{width:65.74585634900001%;} .row-fluid > .span7{width:57.182320438000005%;} .row-fluid > .span6{width:48.618784527%;} .row-fluid > .span5{width:40.055248616%;} .row-fluid > .span4{width:31.491712705%;} .row-fluid > .span3{width:22.928176794%;} .row-fluid > .span2{width:14.364640883%;} .row-fluid > .span1{width:5.801104972%;} input,textarea,.uneditable-input{margin-left:0;} input.span12, textarea.span12, .uneditable-input.span12{width:714px;} input.span11, textarea.span11, .uneditable-input.span11{width:652px;} input.span10, textarea.span10, .uneditable-input.span10{width:590px;} input.span9, textarea.span9, .uneditable-input.span9{width:528px;} input.span8, textarea.span8, .uneditable-input.span8{width:466px;} input.span7, textarea.span7, .uneditable-input.span7{width:404px;} input.span6, textarea.span6, .uneditable-input.span6{width:342px;} input.span5, textarea.span5, .uneditable-input.span5{width:280px;} input.span4, textarea.span4, .uneditable-input.span4{width:218px;} input.span3, textarea.span3, .uneditable-input.span3{width:156px;} input.span2, textarea.span2, .uneditable-input.span2{width:94px;} input.span1, textarea.span1, .uneditable-input.span1{width:32px;}}@media (max-width:979px){body{padding-top:0;} .navbar-fixed-top{position:static;margin-bottom:18px;} .navbar-fixed-top .navbar-inner{padding:5px;} .navbar .container{width:auto;padding:0;} .navbar .brand{padding-left:10px;padding-right:10px;margin:0 0 0 -5px;} .navbar .nav-collapse{clear:left;} .navbar .nav{float:none;margin:0 0 9px;} .navbar .nav>li{float:none;} .navbar .nav>li>a{margin-bottom:2px;} .navbar .nav>.divider-vertical{display:none;} .navbar .nav .nav-header{color:#999999;text-shadow:none;} .navbar .nav>li>a,.navbar .dropdown-menu a{padding:6px 15px;font-weight:bold;color:#999999;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} .navbar .dropdown-menu li+li a{margin-bottom:2px;} .navbar .nav>li>a:hover,.navbar .dropdown-menu a:hover{background-color:#222222;} .navbar .dropdown-menu{position:static;top:auto;left:auto;float:none;display:block;max-width:none;margin:0 15px;padding:0;background-color:transparent;border:none;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} .navbar .dropdown-menu:before,.navbar .dropdown-menu:after{display:none;} .navbar .dropdown-menu .divider{display:none;} .navbar-form,.navbar-search{float:none;padding:9px 15px;margin:9px 0;border-top:1px solid #222222;border-bottom:1px solid #222222;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.1);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.1);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.1);} .navbar .nav.pull-right{float:none;margin-left:0;} .navbar-static .navbar-inner{padding-left:10px;padding-right:10px;} .btn-navbar{display:block;} .nav-collapse{overflow:hidden;height:0;}}@media (min-width:980px){.nav-collapse.collapse{height:auto !important;overflow:visible !important;}}@media (min-width:1200px){.row{margin-left:-30px;*zoom:1;}.row:before,.row:after{display:table;content:"";} .row:after{clear:both;} [class*="span"]{float:left;margin-left:30px;} .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px;} .span12{width:1170px;} .span11{width:1070px;} .span10{width:970px;} .span9{width:870px;} .span8{width:770px;} .span7{width:670px;} .span6{width:570px;} .span5{width:470px;} .span4{width:370px;} .span3{width:270px;} .span2{width:170px;} .span1{width:70px;} .offset12{margin-left:1230px;} .offset11{margin-left:1130px;} .offset10{margin-left:1030px;} .offset9{margin-left:930px;} .offset8{margin-left:830px;} .offset7{margin-left:730px;} .offset6{margin-left:630px;} .offset5{margin-left:530px;} .offset4{margin-left:430px;} .offset3{margin-left:330px;} .offset2{margin-left:230px;} .offset1{margin-left:130px;} .row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";} .row-fluid:after{clear:both;} .row-fluid>[class*="span"]{float:left;margin-left:2.564102564%;} .row-fluid>[class*="span"]:first-child{margin-left:0;} .row-fluid > .span12{width:100%;} .row-fluid > .span11{width:91.45299145300001%;} .row-fluid > .span10{width:82.905982906%;} .row-fluid > .span9{width:74.358974359%;} .row-fluid > .span8{width:65.81196581200001%;} .row-fluid > .span7{width:57.264957265%;} .row-fluid > .span6{width:48.717948718%;} .row-fluid > .span5{width:40.170940171000005%;} .row-fluid > .span4{width:31.623931624%;} .row-fluid > .span3{width:23.076923077%;} .row-fluid > .span2{width:14.529914530000001%;} .row-fluid > .span1{width:5.982905983%;} input,textarea,.uneditable-input{margin-left:0;} input.span12, textarea.span12, .uneditable-input.span12{width:1160px;} input.span11, textarea.span11, .uneditable-input.span11{width:1060px;} input.span10, textarea.span10, .uneditable-input.span10{width:960px;} input.span9, textarea.span9, .uneditable-input.span9{width:860px;} input.span8, textarea.span8, .uneditable-input.span8{width:760px;} input.span7, textarea.span7, .uneditable-input.span7{width:660px;} input.span6, textarea.span6, .uneditable-input.span6{width:560px;} input.span5, textarea.span5, .uneditable-input.span5{width:460px;} input.span4, textarea.span4, .uneditable-input.span4{width:360px;} input.span3, textarea.span3, .uneditable-input.span3{width:260px;} input.span2, textarea.span2, .uneditable-input.span2{width:160px;} input.span1, textarea.span1, .uneditable-input.span1{width:60px;} .thumbnails{margin-left:-30px;} .thumbnails>li{margin-left:30px;}} 13 | -------------------------------------------------------------------------------- /fordropweb/static/pubsubbox/css/pubsubbox.css: -------------------------------------------------------------------------------- 1 | #roster, #roster2 { 2 | background: #fff; 3 | top: 0px; 4 | width: 100%; 5 | height: 290px; 6 | font-size: 11px; 7 | border-image: initial; 8 | overflow: auto; 9 | } 10 | 11 | #activities { 12 | padding-top:30px; 13 | } 14 | 15 | .contact { 16 | height: 40px; 17 | width:140px; 18 | display: block; 19 | color: #333; 20 | text-decoration: none; 21 | padding: 10px 10px; 22 | box-shadow: 1px 1px 3px #888; 23 | background: #fff; 24 | margin-right:20px; 25 | margin-top:10px; 26 | margin-bottom:10px; 27 | border-radius: 6px; 28 | cursor: pointer; 29 | border: 1px solid #fff; 30 | } 31 | 32 | .add-contact { 33 | height: 40px; 34 | width:140px; 35 | display: block; 36 | color: #333; 37 | text-decoration: none; 38 | padding: 10px 10px; 39 | background: #f5f5f5; 40 | margin-right:20px; 41 | margin-top:10px; 42 | margin-bottom:10px; 43 | border:1px dashed silver; 44 | border-radius: 6px; 45 | text-align: center; 46 | } 47 | 48 | .roster-menu-item { 49 | height: 10px; 50 | display: block; 51 | color: #333; 52 | text-decoration: none; 53 | padding: 10px 10px; 54 | border-bottom: groove 2px #555; 55 | text-shadow: 1px 1px #222; 56 | -moz-text-shadow: 1px 1px #222; 57 | -webkit-text-shadow: 1px 1px #222; 58 | } 59 | 60 | #nodes, #discovery, #activities, #notification { 61 | margin:0px auto; 62 | top:230px; 63 | left:10px; 64 | padding-top:15px; 65 | } 66 | 67 | #foo { 68 | top:230px; 69 | text-align: center; 70 | color:#777; 71 | background: #fff; 72 | padding:15px; 73 | border-bottom: 1px dashed silver; 74 | } 75 | 76 | #login-spinner { 77 | margin-top:200px; 78 | text-align: center; 79 | } 80 | 81 | .node { 82 | width:100px; 83 | height:100px; 84 | padding:5px; 85 | text-align:center; 86 | background: #fff; 87 | margin-right:20px; 88 | margin-top:20px; 89 | border:1px solid silver; 90 | } 91 | 92 | .add-node { 93 | width:100px; 94 | height:100px; 95 | padding:5px; 96 | text-align:center; 97 | border:1px dashed silver; 98 | margin-right:20px; 99 | margin-top:20px; 100 | background: #f5f5f5; 101 | } 102 | 103 | .hide { 104 | display: none; 105 | } 106 | 107 | .left { 108 | float:left; 109 | } 110 | 111 | .right { 112 | float:right; 113 | } 114 | 115 | .quiet { 116 | color:#666; 117 | font-size: 0.9em; 118 | } 119 | 120 | canvas { 121 | background: #444; 122 | } 123 | -------------------------------------------------------------------------------- /fordropweb/static/pubsubbox/img/glyphicons-halflings-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/pubsubbox/img/glyphicons-halflings-white.png -------------------------------------------------------------------------------- /fordropweb/static/pubsubbox/img/glyphicons-halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/pubsubbox/img/glyphicons-halflings.png -------------------------------------------------------------------------------- /fordropweb/static/pubsubbox/img/spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/berggren/fordropweb/eb290335462c3be8dd1c4b8011339a40c7135310/fordropweb/static/pubsubbox/img/spinner.gif -------------------------------------------------------------------------------- /fordropweb/static/pubsubbox/js/bootstrap-modal-2.0.2.js: -------------------------------------------------------------------------------- 1 | /* ========================================================= 2 | * bootstrap-modal.js v2.0.2 3 | * http://twitter.github.com/bootstrap/javascript.html#modals 4 | * ========================================================= 5 | * Copyright 2012 Twitter, Inc. 6 | * 7 | * Licensed under the Apache License, Version 2.0 (the "License"); 8 | * you may not use this file except in compliance with the License. 9 | * You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software 14 | * distributed under the License is distributed on an "AS IS" BASIS, 15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | * See the License for the specific language governing permissions and 17 | * limitations under the License. 18 | * ========================================================= */ 19 | 20 | 21 | !function( $ ){ 22 | 23 | "use strict" 24 | 25 | /* MODAL CLASS DEFINITION 26 | * ====================== */ 27 | 28 | var Modal = function ( content, options ) { 29 | this.options = options 30 | this.$element = $(content) 31 | .delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this)) 32 | } 33 | 34 | Modal.prototype = { 35 | 36 | constructor: Modal 37 | 38 | , toggle: function () { 39 | return this[!this.isShown ? 'show' : 'hide']() 40 | } 41 | 42 | , show: function () { 43 | var that = this 44 | 45 | if (this.isShown) return 46 | 47 | $('body').addClass('modal-open') 48 | 49 | this.isShown = true 50 | this.$element.trigger('show') 51 | 52 | escape.call(this) 53 | backdrop.call(this, function () { 54 | var transition = $.support.transition && that.$element.hasClass('fade') 55 | 56 | !that.$element.parent().length && that.$element.appendTo(document.body) //don't move modals dom position 57 | 58 | that.$element 59 | .show() 60 | 61 | if (transition) { 62 | that.$element[0].offsetWidth // force reflow 63 | } 64 | 65 | that.$element.addClass('in') 66 | 67 | transition ? 68 | that.$element.one($.support.transition.end, function () { that.$element.trigger('shown') }) : 69 | that.$element.trigger('shown') 70 | 71 | }) 72 | } 73 | 74 | , hide: function ( e ) { 75 | e && e.preventDefault() 76 | 77 | if (!this.isShown) return 78 | 79 | var that = this 80 | this.isShown = false 81 | 82 | $('body').removeClass('modal-open') 83 | 84 | escape.call(this) 85 | 86 | this.$element 87 | .trigger('hide') 88 | .removeClass('in') 89 | 90 | $.support.transition && this.$element.hasClass('fade') ? 91 | hideWithTransition.call(this) : 92 | hideModal.call(this) 93 | } 94 | 95 | } 96 | 97 | 98 | /* MODAL PRIVATE METHODS 99 | * ===================== */ 100 | 101 | function hideWithTransition() { 102 | var that = this 103 | , timeout = setTimeout(function () { 104 | that.$element.off($.support.transition.end) 105 | hideModal.call(that) 106 | }, 500) 107 | 108 | this.$element.one($.support.transition.end, function () { 109 | clearTimeout(timeout) 110 | hideModal.call(that) 111 | }) 112 | } 113 | 114 | function hideModal( that ) { 115 | this.$element 116 | .hide() 117 | .trigger('hidden') 118 | 119 | backdrop.call(this) 120 | } 121 | 122 | function backdrop( callback ) { 123 | var that = this 124 | , animate = this.$element.hasClass('fade') ? 'fade' : '' 125 | 126 | if (this.isShown && this.options.backdrop) { 127 | var doAnimate = $.support.transition && animate 128 | 129 | this.$backdrop = $('