progress bar: Drop JS, make mobile friendly, match design to new site.
The existing jQuery UI-based fundraising progress bar used a float layout, making it hard to adapt for mobile use. Given that there is not interactivity, I've dropped all the JS and switched to a flexbox layout. This works well because the bar will stretch to fit the text rather than always maintaining its scale.
This commit is contained in:
parent
6bdc205e6a
commit
26ff31bb78
10 changed files with 48 additions and 650 deletions
|
@ -4,13 +4,14 @@ from pytz import utc as UTC
|
|||
import conservancy.settings
|
||||
from conservancy.apps.fundgoal.models import FundraisingGoal as FundraisingGoal
|
||||
|
||||
SITE_FUNDGOAL = 'cy2020-end-year-match'
|
||||
SITE_FUNDGOAL = 'cy2021-end-year-match'
|
||||
# FIXME: Move this information into the model.
|
||||
FUNDGOAL_ENDTIMES = {
|
||||
# Noon UTC = the end of the previous day anywhere on Earth (AOE)
|
||||
'cy2018-end-year-match': DateTime(2019, 1, 16, 12, tzinfo=UTC),
|
||||
'cy2019-end-year-match': DateTime(2020, 1, 16, 12, tzinfo=UTC),
|
||||
'cy2020-end-year-match': DateTime(2021, 1, 16, 12, tzinfo=UTC),
|
||||
'cy2021-end-year-match': DateTime(2021, 1, 16, 12, tzinfo=UTC),
|
||||
}
|
||||
|
||||
def fundgoal_lookup(fundraiser_sought):
|
||||
|
|
|
@ -298,45 +298,44 @@ body > header {
|
|||
margin-left: .5rem;
|
||||
}
|
||||
|
||||
#progressbar {
|
||||
height: 1.8em;
|
||||
.fundraiser-top-text {
|
||||
background: #F0FFB8;
|
||||
margin-top: -.5rem;
|
||||
}
|
||||
|
||||
#progressbar .ui-widget-header {
|
||||
background: rgb(206, 31, 31);
|
||||
.fundraiser-top-text p {
|
||||
font-size: 110%;
|
||||
font-style: italic;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#siteprogressbar .goalText {
|
||||
color: #557733;
|
||||
font-size: 10pt;
|
||||
color: #557733;
|
||||
}
|
||||
#siteprogressbar .soFarText {
|
||||
font-size: 10pt;
|
||||
color: white;
|
||||
}
|
||||
#siteprogressbar .progress {
|
||||
background: #577632;
|
||||
background: linear-gradient(var(--khaki-green), #84a377, var(--khaki-green));
|
||||
padding-left: 0.5rem;
|
||||
padding-right: 0.5rem;
|
||||
border-top-left-radius: 16px;
|
||||
border-bottom-left-radius: 16px;
|
||||
border: 1px solid #3f4439;
|
||||
}
|
||||
@media all and (max-width: 600px) {
|
||||
.goalText {
|
||||
font-size: 8pt;
|
||||
}
|
||||
.soFarText {
|
||||
font-size: 8pt;
|
||||
}
|
||||
}
|
||||
#siteprogressbar .progress {
|
||||
background: #577632;
|
||||
}
|
||||
#siteprogressbar .middle-goal {
|
||||
background: #d0d0d0;
|
||||
}
|
||||
|
||||
#siteprogressbar .final-goal {
|
||||
background: #eeeeee;
|
||||
border-top-right-radius: 16px;
|
||||
border-bottom-right-radius: 16px;
|
||||
border: 1px solid #9bac88;
|
||||
border-left: none;
|
||||
}
|
||||
|
||||
#fundraiser-percentage {
|
||||
text-align: center;
|
||||
#siteprogressbar .progress.matched {
|
||||
border-top-right-radius: 16px;
|
||||
border-bottom-right-radius: 16px;
|
||||
}
|
||||
#siteprogressbar {
|
||||
background: linear-gradient(var(--washed-green), white, var(--washed-green));
|
||||
box-shadow: 1px 1px 1px rgba(0,0,0,0.2);
|
||||
line-height: 1.3;
|
||||
border-radius: 16px;
|
||||
}
|
||||
|
||||
#container #mainContent {
|
||||
|
@ -654,21 +653,6 @@ dd {
|
|||
margin: 0 0 1.5em 2em;
|
||||
}
|
||||
|
||||
.fundraiser-top-text {
|
||||
background: #F0FFB8;
|
||||
padding: .2em .7em;
|
||||
}
|
||||
.fundraiser-top-text * {
|
||||
margin: .5em auto;
|
||||
max-width: 70em;
|
||||
width: 95%;
|
||||
}
|
||||
.fundraiser-top-text p {
|
||||
font-size: 110%;
|
||||
font-style: italic;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Fallback elements created by conservancy.js when no video source is
|
||||
supported. */
|
||||
div.small-right, div.medium-right {
|
||||
|
|
|
@ -1,297 +0,0 @@
|
|||
/*!
|
||||
* jQuery UI CSS Framework 1.8.22
|
||||
*
|
||||
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Theming/API
|
||||
*/
|
||||
|
||||
/* Layout helpers
|
||||
----------------------------------*/
|
||||
.ui-helper-hidden { display: none; }
|
||||
.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
|
||||
.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
|
||||
.ui-helper-clearfix:before, .ui-helper-clearfix:after { content: ""; display: table; }
|
||||
.ui-helper-clearfix:after { clear: both; }
|
||||
.ui-helper-clearfix { zoom: 1; }
|
||||
.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
|
||||
|
||||
|
||||
/* Interaction Cues
|
||||
----------------------------------*/
|
||||
.ui-state-disabled { cursor: default !important; }
|
||||
|
||||
|
||||
/* Icons
|
||||
----------------------------------*/
|
||||
|
||||
/* states and images */
|
||||
.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
|
||||
|
||||
|
||||
/* Misc visuals
|
||||
----------------------------------*/
|
||||
|
||||
/* Overlays */
|
||||
.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
|
||||
|
||||
|
||||
/*!
|
||||
* jQuery UI CSS Framework 1.8.22
|
||||
*
|
||||
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Theming/API
|
||||
*
|
||||
* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS,%20Tahoma,%20Verdana,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=03_highlight_soft.png&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=08_diagonals_thick.png&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=08_diagonals_thick.png&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=01_flat.png&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px
|
||||
*/
|
||||
|
||||
|
||||
/* Component containers
|
||||
----------------------------------*/
|
||||
.ui-widget { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1.1em; }
|
||||
.ui-widget .ui-widget { font-size: 1em; }
|
||||
.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1em; }
|
||||
.ui-widget-content { border: 1px solid #dddddd; background: #eeeeee url(images/ui-bg_highlight-soft_100_eeeeee_1x100.png) 50% top repeat-x; color: #333333; }
|
||||
.ui-widget-content a { color: #333333; }
|
||||
.ui-widget-header { border: 1px solid #e78f08; background: #f6a828 url(images/ui-bg_gloss-wave_35_f6a828_500x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; }
|
||||
.ui-widget-header a { color: #ffffff; }
|
||||
|
||||
/* Interaction states
|
||||
----------------------------------*/
|
||||
.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #cccccc; background: #f6f6f6 url(images/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #1c94c4; }
|
||||
.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #1c94c4; text-decoration: none; }
|
||||
.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #fbcb09; background: #fdf5ce url(images/ui-bg_glass_100_fdf5ce_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #c77405; }
|
||||
.ui-state-hover a, .ui-state-hover a:hover { color: #c77405; text-decoration: none; }
|
||||
.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #fbd850; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #eb8f00; }
|
||||
.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #eb8f00; text-decoration: none; }
|
||||
.ui-widget :active { outline: none; }
|
||||
|
||||
/* Interaction Cues
|
||||
----------------------------------*/
|
||||
.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fed22f; background: #ffe45c url(images/ui-bg_highlight-soft_75_ffe45c_1x100.png) 50% top repeat-x; color: #363636; }
|
||||
.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
|
||||
.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #b81900 url(images/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat; color: #ffffff; }
|
||||
.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #ffffff; }
|
||||
.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #ffffff; }
|
||||
.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
|
||||
.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
|
||||
.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
|
||||
|
||||
/* Icons
|
||||
----------------------------------*/
|
||||
|
||||
/* states and images */
|
||||
.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
|
||||
.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
|
||||
.ui-widget-header .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
|
||||
.ui-state-default .ui-icon { background-image: url(images/ui-icons_ef8c08_256x240.png); }
|
||||
.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); }
|
||||
.ui-state-active .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); }
|
||||
.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_228ef1_256x240.png); }
|
||||
.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ffd27a_256x240.png); }
|
||||
|
||||
/* positioning */
|
||||
.ui-icon-carat-1-n { background-position: 0 0; }
|
||||
.ui-icon-carat-1-ne { background-position: -16px 0; }
|
||||
.ui-icon-carat-1-e { background-position: -32px 0; }
|
||||
.ui-icon-carat-1-se { background-position: -48px 0; }
|
||||
.ui-icon-carat-1-s { background-position: -64px 0; }
|
||||
.ui-icon-carat-1-sw { background-position: -80px 0; }
|
||||
.ui-icon-carat-1-w { background-position: -96px 0; }
|
||||
.ui-icon-carat-1-nw { background-position: -112px 0; }
|
||||
.ui-icon-carat-2-n-s { background-position: -128px 0; }
|
||||
.ui-icon-carat-2-e-w { background-position: -144px 0; }
|
||||
.ui-icon-triangle-1-n { background-position: 0 -16px; }
|
||||
.ui-icon-triangle-1-ne { background-position: -16px -16px; }
|
||||
.ui-icon-triangle-1-e { background-position: -32px -16px; }
|
||||
.ui-icon-triangle-1-se { background-position: -48px -16px; }
|
||||
.ui-icon-triangle-1-s { background-position: -64px -16px; }
|
||||
.ui-icon-triangle-1-sw { background-position: -80px -16px; }
|
||||
.ui-icon-triangle-1-w { background-position: -96px -16px; }
|
||||
.ui-icon-triangle-1-nw { background-position: -112px -16px; }
|
||||
.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
|
||||
.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
|
||||
.ui-icon-arrow-1-n { background-position: 0 -32px; }
|
||||
.ui-icon-arrow-1-ne { background-position: -16px -32px; }
|
||||
.ui-icon-arrow-1-e { background-position: -32px -32px; }
|
||||
.ui-icon-arrow-1-se { background-position: -48px -32px; }
|
||||
.ui-icon-arrow-1-s { background-position: -64px -32px; }
|
||||
.ui-icon-arrow-1-sw { background-position: -80px -32px; }
|
||||
.ui-icon-arrow-1-w { background-position: -96px -32px; }
|
||||
.ui-icon-arrow-1-nw { background-position: -112px -32px; }
|
||||
.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
|
||||
.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
|
||||
.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
|
||||
.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
|
||||
.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
|
||||
.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
|
||||
.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
|
||||
.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
|
||||
.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
|
||||
.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
|
||||
.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
|
||||
.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
|
||||
.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
|
||||
.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
|
||||
.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
|
||||
.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
|
||||
.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
|
||||
.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
|
||||
.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
|
||||
.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
|
||||
.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
|
||||
.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
|
||||
.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
|
||||
.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
|
||||
.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
|
||||
.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
|
||||
.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
|
||||
.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
|
||||
.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
|
||||
.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
|
||||
.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
|
||||
.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
|
||||
.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
|
||||
.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
|
||||
.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
|
||||
.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
|
||||
.ui-icon-arrow-4 { background-position: 0 -80px; }
|
||||
.ui-icon-arrow-4-diag { background-position: -16px -80px; }
|
||||
.ui-icon-extlink { background-position: -32px -80px; }
|
||||
.ui-icon-newwin { background-position: -48px -80px; }
|
||||
.ui-icon-refresh { background-position: -64px -80px; }
|
||||
.ui-icon-shuffle { background-position: -80px -80px; }
|
||||
.ui-icon-transfer-e-w { background-position: -96px -80px; }
|
||||
.ui-icon-transferthick-e-w { background-position: -112px -80px; }
|
||||
.ui-icon-folder-collapsed { background-position: 0 -96px; }
|
||||
.ui-icon-folder-open { background-position: -16px -96px; }
|
||||
.ui-icon-document { background-position: -32px -96px; }
|
||||
.ui-icon-document-b { background-position: -48px -96px; }
|
||||
.ui-icon-note { background-position: -64px -96px; }
|
||||
.ui-icon-mail-closed { background-position: -80px -96px; }
|
||||
.ui-icon-mail-open { background-position: -96px -96px; }
|
||||
.ui-icon-suitcase { background-position: -112px -96px; }
|
||||
.ui-icon-comment { background-position: -128px -96px; }
|
||||
.ui-icon-person { background-position: -144px -96px; }
|
||||
.ui-icon-print { background-position: -160px -96px; }
|
||||
.ui-icon-trash { background-position: -176px -96px; }
|
||||
.ui-icon-locked { background-position: -192px -96px; }
|
||||
.ui-icon-unlocked { background-position: -208px -96px; }
|
||||
.ui-icon-bookmark { background-position: -224px -96px; }
|
||||
.ui-icon-tag { background-position: -240px -96px; }
|
||||
.ui-icon-home { background-position: 0 -112px; }
|
||||
.ui-icon-flag { background-position: -16px -112px; }
|
||||
.ui-icon-calendar { background-position: -32px -112px; }
|
||||
.ui-icon-cart { background-position: -48px -112px; }
|
||||
.ui-icon-pencil { background-position: -64px -112px; }
|
||||
.ui-icon-clock { background-position: -80px -112px; }
|
||||
.ui-icon-disk { background-position: -96px -112px; }
|
||||
.ui-icon-calculator { background-position: -112px -112px; }
|
||||
.ui-icon-zoomin { background-position: -128px -112px; }
|
||||
.ui-icon-zoomout { background-position: -144px -112px; }
|
||||
.ui-icon-search { background-position: -160px -112px; }
|
||||
.ui-icon-wrench { background-position: -176px -112px; }
|
||||
.ui-icon-gear { background-position: -192px -112px; }
|
||||
.ui-icon-heart { background-position: -208px -112px; }
|
||||
.ui-icon-star { background-position: -224px -112px; }
|
||||
.ui-icon-link { background-position: -240px -112px; }
|
||||
.ui-icon-cancel { background-position: 0 -128px; }
|
||||
.ui-icon-plus { background-position: -16px -128px; }
|
||||
.ui-icon-plusthick { background-position: -32px -128px; }
|
||||
.ui-icon-minus { background-position: -48px -128px; }
|
||||
.ui-icon-minusthick { background-position: -64px -128px; }
|
||||
.ui-icon-close { background-position: -80px -128px; }
|
||||
.ui-icon-closethick { background-position: -96px -128px; }
|
||||
.ui-icon-key { background-position: -112px -128px; }
|
||||
.ui-icon-lightbulb { background-position: -128px -128px; }
|
||||
.ui-icon-scissors { background-position: -144px -128px; }
|
||||
.ui-icon-clipboard { background-position: -160px -128px; }
|
||||
.ui-icon-copy { background-position: -176px -128px; }
|
||||
.ui-icon-contact { background-position: -192px -128px; }
|
||||
.ui-icon-image { background-position: -208px -128px; }
|
||||
.ui-icon-video { background-position: -224px -128px; }
|
||||
.ui-icon-script { background-position: -240px -128px; }
|
||||
.ui-icon-alert { background-position: 0 -144px; }
|
||||
.ui-icon-info { background-position: -16px -144px; }
|
||||
.ui-icon-notice { background-position: -32px -144px; }
|
||||
.ui-icon-help { background-position: -48px -144px; }
|
||||
.ui-icon-check { background-position: -64px -144px; }
|
||||
.ui-icon-bullet { background-position: -80px -144px; }
|
||||
.ui-icon-radio-off { background-position: -96px -144px; }
|
||||
.ui-icon-radio-on { background-position: -112px -144px; }
|
||||
.ui-icon-pin-w { background-position: -128px -144px; }
|
||||
.ui-icon-pin-s { background-position: -144px -144px; }
|
||||
.ui-icon-play { background-position: 0 -160px; }
|
||||
.ui-icon-pause { background-position: -16px -160px; }
|
||||
.ui-icon-seek-next { background-position: -32px -160px; }
|
||||
.ui-icon-seek-prev { background-position: -48px -160px; }
|
||||
.ui-icon-seek-end { background-position: -64px -160px; }
|
||||
.ui-icon-seek-start { background-position: -80px -160px; }
|
||||
/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
|
||||
.ui-icon-seek-first { background-position: -80px -160px; }
|
||||
.ui-icon-stop { background-position: -96px -160px; }
|
||||
.ui-icon-eject { background-position: -112px -160px; }
|
||||
.ui-icon-volume-off { background-position: -128px -160px; }
|
||||
.ui-icon-volume-on { background-position: -144px -160px; }
|
||||
.ui-icon-power { background-position: 0 -176px; }
|
||||
.ui-icon-signal-diag { background-position: -16px -176px; }
|
||||
.ui-icon-signal { background-position: -32px -176px; }
|
||||
.ui-icon-battery-0 { background-position: -48px -176px; }
|
||||
.ui-icon-battery-1 { background-position: -64px -176px; }
|
||||
.ui-icon-battery-2 { background-position: -80px -176px; }
|
||||
.ui-icon-battery-3 { background-position: -96px -176px; }
|
||||
.ui-icon-circle-plus { background-position: 0 -192px; }
|
||||
.ui-icon-circle-minus { background-position: -16px -192px; }
|
||||
.ui-icon-circle-close { background-position: -32px -192px; }
|
||||
.ui-icon-circle-triangle-e { background-position: -48px -192px; }
|
||||
.ui-icon-circle-triangle-s { background-position: -64px -192px; }
|
||||
.ui-icon-circle-triangle-w { background-position: -80px -192px; }
|
||||
.ui-icon-circle-triangle-n { background-position: -96px -192px; }
|
||||
.ui-icon-circle-arrow-e { background-position: -112px -192px; }
|
||||
.ui-icon-circle-arrow-s { background-position: -128px -192px; }
|
||||
.ui-icon-circle-arrow-w { background-position: -144px -192px; }
|
||||
.ui-icon-circle-arrow-n { background-position: -160px -192px; }
|
||||
.ui-icon-circle-zoomin { background-position: -176px -192px; }
|
||||
.ui-icon-circle-zoomout { background-position: -192px -192px; }
|
||||
.ui-icon-circle-check { background-position: -208px -192px; }
|
||||
.ui-icon-circlesmall-plus { background-position: 0 -208px; }
|
||||
.ui-icon-circlesmall-minus { background-position: -16px -208px; }
|
||||
.ui-icon-circlesmall-close { background-position: -32px -208px; }
|
||||
.ui-icon-squaresmall-plus { background-position: -48px -208px; }
|
||||
.ui-icon-squaresmall-minus { background-position: -64px -208px; }
|
||||
.ui-icon-squaresmall-close { background-position: -80px -208px; }
|
||||
.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
|
||||
.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
|
||||
.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
|
||||
.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
|
||||
.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
|
||||
.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
|
||||
|
||||
|
||||
/* Misc visuals
|
||||
----------------------------------*/
|
||||
|
||||
/* Corner radius */
|
||||
.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -khtml-border-top-left-radius: 4px; border-top-left-radius: 4px; }
|
||||
.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -khtml-border-top-right-radius: 4px; border-top-right-radius: 4px; }
|
||||
.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -khtml-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
|
||||
.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; -khtml-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
|
||||
|
||||
/* Overlays */
|
||||
.ui-widget-overlay { background: #666666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat; opacity: .50;filter:Alpha(Opacity=50); }
|
||||
.ui-widget-shadow { margin: -5px 0 0 -5px; padding: 5px; background: #000000 url(images/ui-bg_flat_10_000000_40x100.png) 50% 50% repeat-x; opacity: .20;filter:Alpha(Opacity=20); -moz-border-radius: 5px; -khtml-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; }/*!
|
||||
* jQuery UI Progressbar 1.8.22
|
||||
*
|
||||
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Progressbar#theming
|
||||
*/
|
||||
.ui-progressbar { height:2em; text-align: left; overflow: hidden; }
|
||||
.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
|
|
@ -1,18 +0,0 @@
|
|||
@CHARSET "UTF-8";
|
||||
|
||||
/*
|
||||
* jQuery UI Multi-Progress Bar 1.1.0
|
||||
* http://github.com/j-ulrich/jquery-ui-multiprogressbar
|
||||
*
|
||||
* Copyright (c) 2012 Jochen Ulrich <jochenulrich@t-online.de>
|
||||
* Licensed under the MIT license (MIT-LICENSE.txt).
|
||||
*/
|
||||
|
||||
.ju-multiprogressbar .ui-progressbar-value {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.ju-multiprogressbar .ju-multiprogressbar-valuetext {
|
||||
margin-top: 0.3em;
|
||||
text-align: center;
|
||||
}
|
|
@ -19,38 +19,6 @@ $(document).ready(function() {
|
|||
$('source', video).last().on('error', showVideoInnerHTML);
|
||||
});
|
||||
|
||||
/* Set up the fundraiser multiprogressbar near the top of each page. */
|
||||
var siteFinalGoal = $('span#site-fundraiser-final-goal').text();
|
||||
var noCommaSiteFinalGoal = parseInt(siteFinalGoal.replace(/,/g, ""));
|
||||
var siteMatchCount = $('span#site-fundraiser-match-count').text();
|
||||
var noCommaSiteMatchCount = parseInt(siteMatchCount.replace(/,/g, ""));
|
||||
if (! noCommaSiteMatchCount) {
|
||||
noCommaSiteMatchCount = "0";
|
||||
}
|
||||
var barParts = [{
|
||||
value: (noCommaSiteMatchCount / noCommaSiteFinalGoal) * 100,
|
||||
text: "$" + noCommaSiteMatchCount.toLocaleString() + " matched!",
|
||||
barClass: "progress",
|
||||
textClass: "soFarText",
|
||||
}];
|
||||
if (barParts[0].value < 100) {
|
||||
var matchesLeft = noCommaSiteFinalGoal - noCommaSiteMatchCount;
|
||||
barParts.push({
|
||||
value: 100,
|
||||
text: "$" + matchesLeft.toLocaleString() + " to go!",
|
||||
barClass: "final-goal",
|
||||
textClass: "goalText",
|
||||
});
|
||||
}
|
||||
$('#siteprogressbar').empty().multiprogressbar({parts: barParts});
|
||||
|
||||
$('span#fundraiser-percentage').css({ 'color' : 'green',
|
||||
'font-weight' : 'bold',
|
||||
'float' : 'right',
|
||||
'margin-right' : '40%',
|
||||
'margin-top' : '2.5%',
|
||||
'text-align' : 'inherit'});
|
||||
|
||||
/* Set up donation form elements used across the whole site. */
|
||||
$('.toggle-content').hide();
|
||||
$('.toggle-control')
|
||||
|
@ -69,23 +37,6 @@ $(document).ready(function() {
|
|||
$control.html($control.attr('data-text'));
|
||||
}
|
||||
});
|
||||
$('a.donate-now')
|
||||
.addClass('clickable')
|
||||
.bind('click', function() {
|
||||
var $control = $('#donate-box');
|
||||
var $otherTextControl = $('.donate-sidebar');
|
||||
|
||||
setTimeout(function() { $control.find('.toggle-content').slideUp(100);
|
||||
$control.toggleClass('expanded');
|
||||
$control.find('.toggle-content').slideDown(800).fadeOut(10);
|
||||
$otherTextControl.find('.donate-box-highlight').fadeOut(100);
|
||||
}, 300);
|
||||
setTimeout(function() { $control.find('.toggle-content').fadeIn(2000);
|
||||
$otherTextControl.find('.donate-box-highlight')
|
||||
.css({'font-weight': 'bold', 'font-size' : '110%' });
|
||||
$otherTextControl.find('.donate-box-highlight').fadeIn(10000);
|
||||
}, 500);
|
||||
});
|
||||
|
||||
$('input[name=on0]:radio').on('change', function(event, duration) {
|
||||
var $input = $(this);
|
||||
|
|
|
@ -1,13 +0,0 @@
|
|||
/*! jQuery UI - v1.8.22 - 2012-07-24
|
||||
* https://github.com/jquery/jquery-ui
|
||||
* Includes: jquery.ui.core.js
|
||||
* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
|
||||
(function(a,b){function c(b,c){var e=b.nodeName.toLowerCase();if("area"===e){var f=b.parentNode,g=f.name,h;return!b.href||!g||f.nodeName.toLowerCase()!=="map"?!1:(h=a("img[usemap=#"+g+"]")[0],!!h&&d(h))}return(/input|select|textarea|button|object/.test(e)?!b.disabled:"a"==e?b.href||c:c)&&d(b)}function d(b){return!a(b).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.ui=a.ui||{};if(a.ui.version)return;a.extend(a.ui,{version:"1.8.22",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}}),a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(b,c){return typeof b=="number"?this.each(function(){var d=this;setTimeout(function(){a(d).focus(),c&&c.call(d)},b)}):this._focus.apply(this,arguments)},scrollParent:function(){var b;return a.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?b=this.parents().filter(function(){return/(relative|absolute|fixed)/.test(a.curCSS(this,"position",1))&&/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0):b=this.parents().filter(function(){return/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0),/fixed/.test(this.css("position"))||!b.length?a(document):b},zIndex:function(c){if(c!==b)return this.css("zIndex",c);if(this.length){var d=a(this[0]),e,f;while(d.length&&d[0]!==document){e=d.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){f=parseInt(d.css("zIndex"),10);if(!isNaN(f)&&f!==0)return f}d=d.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}}),a("<a>").outerWidth(1).jquery||a.each(["Width","Height"],function(c,d){function h(b,c,d,f){return a.each(e,function(){c-=parseFloat(a.curCSS(b,"padding"+this,!0))||0,d&&(c-=parseFloat(a.curCSS(b,"border"+this+"Width",!0))||0),f&&(c-=parseFloat(a.curCSS(b,"margin"+this,!0))||0)}),c}var e=d==="Width"?["Left","Right"]:["Top","Bottom"],f=d.toLowerCase(),g={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};a.fn["inner"+d]=function(c){return c===b?g["inner"+d].call(this):this.each(function(){a(this).css(f,h(this,c)+"px")})},a.fn["outer"+d]=function(b,c){return typeof b!="number"?g["outer"+d].call(this,b):this.each(function(){a(this).css(f,h(this,b,!0,c)+"px")})}}),a.extend(a.expr[":"],{data:a.expr.createPseudo?a.expr.createPseudo(function(b){return function(c){return!!a.data(c,b)}}):function(b,c,d){return!!a.data(b,d[3])},focusable:function(b){return c(b,!isNaN(a.attr(b,"tabindex")))},tabbable:function(b){var d=a.attr(b,"tabindex"),e=isNaN(d);return(e||d>=0)&&c(b,!e)}}),a(function(){var b=document.body,c=b.appendChild(c=document.createElement("div"));c.offsetHeight,a.extend(c.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0}),a.support.minHeight=c.offsetHeight===100,a.support.selectstart="onselectstart"in c,b.removeChild(c).style.display="none"}),a.curCSS||(a.curCSS=a.css),a.extend(a.ui,{plugin:{add:function(b,c,d){var e=a.ui[b].prototype;for(var f in d)e.plugins[f]=e.plugins[f]||[],e.plugins[f].push([c,d[f]])},call:function(a,b,c){var d=a.plugins[b];if(!d||!a.element[0].parentNode)return;for(var e=0;e<d.length;e++)a.options[d[e][0]]&&d[e][1].apply(a.element,c)}},contains:function(a,b){return document.compareDocumentPosition?a.compareDocumentPosition(b)&16:a!==b&&a.contains(b)},hasScroll:function(b,c){if(a(b).css("overflow")==="hidden")return!1;var d=c&&c==="left"?"scrollLeft":"scrollTop",e=!1;return b[d]>0?!0:(b[d]=1,e=b[d]>0,b[d]=0,e)},isOverAxis:function(a,b,c){return a>b&&a<b+c},isOver:function(b,c,d,e,f,g){return a.ui.isOverAxis(b,d,f)&&a.ui.isOverAxis(c,e,g)}})})(jQuery);;/*! jQuery UI - v1.8.22 - 2012-07-24
|
||||
* https://github.com/jquery/jquery-ui
|
||||
* Includes: jquery.ui.widget.js
|
||||
* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
|
||||
(function(a,b){if(a.cleanData){var c=a.cleanData;a.cleanData=function(b){for(var d=0,e;(e=b[d])!=null;d++)try{a(e).triggerHandler("remove")}catch(f){}c(b)}}else{var d=a.fn.remove;a.fn.remove=function(b,c){return this.each(function(){return c||(!b||a.filter(b,[this]).length)&&a("*",this).add([this]).each(function(){try{a(this).triggerHandler("remove")}catch(b){}}),d.call(a(this),b,c)})}}a.widget=function(b,c,d){var e=b.split(".")[0],f;b=b.split(".")[1],f=e+"-"+b,d||(d=c,c=a.Widget),a.expr[":"][f]=function(c){return!!a.data(c,b)},a[e]=a[e]||{},a[e][b]=function(a,b){arguments.length&&this._createWidget(a,b)};var g=new c;g.options=a.extend(!0,{},g.options),a[e][b].prototype=a.extend(!0,g,{namespace:e,widgetName:b,widgetEventPrefix:a[e][b].prototype.widgetEventPrefix||b,widgetBaseClass:f},d),a.widget.bridge(b,a[e][b])},a.widget.bridge=function(c,d){a.fn[c]=function(e){var f=typeof e=="string",g=Array.prototype.slice.call(arguments,1),h=this;return e=!f&&g.length?a.extend.apply(null,[!0,e].concat(g)):e,f&&e.charAt(0)==="_"?h:(f?this.each(function(){var d=a.data(this,c),f=d&&a.isFunction(d[e])?d[e].apply(d,g):d;if(f!==d&&f!==b)return h=f,!1}):this.each(function(){var b=a.data(this,c);b?b.option(e||{})._init():a.data(this,c,new d(e,this))}),h)}},a.Widget=function(a,b){arguments.length&&this._createWidget(a,b)},a.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:!1},_createWidget:function(b,c){a.data(c,this.widgetName,this),this.element=a(c),this.options=a.extend(!0,{},this.options,this._getCreateOptions(),b);var d=this;this.element.bind("remove."+this.widgetName,function(){d.destroy()}),this._create(),this._trigger("create"),this._init()},_getCreateOptions:function(){return a.metadata&&a.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName),this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled "+"ui-state-disabled")},widget:function(){return this.element},option:function(c,d){var e=c;if(arguments.length===0)return a.extend({},this.options);if(typeof c=="string"){if(d===b)return this.options[c];e={},e[c]=d}return this._setOptions(e),this},_setOptions:function(b){var c=this;return a.each(b,function(a,b){c._setOption(a,b)}),this},_setOption:function(a,b){return this.options[a]=b,a==="disabled"&&this.widget()[b?"addClass":"removeClass"](this.widgetBaseClass+"-disabled"+" "+"ui-state-disabled").attr("aria-disabled",b),this},enable:function(){return this._setOption("disabled",!1)},disable:function(){return this._setOption("disabled",!0)},_trigger:function(b,c,d){var e,f,g=this.options[b];d=d||{},c=a.Event(c),c.type=(b===this.widgetEventPrefix?b:this.widgetEventPrefix+b).toLowerCase(),c.target=this.element[0],f=c.originalEvent;if(f)for(e in f)e in c||(c[e]=f[e]);return this.element.trigger(c,d),!(a.isFunction(g)&&g.call(this.element[0],c,d)===!1||c.isDefaultPrevented())}}})(jQuery);;/*! jQuery UI - v1.8.22 - 2012-07-24
|
||||
* https://github.com/jquery/jquery-ui
|
||||
* Includes: jquery.ui.progressbar.js
|
||||
* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
|
||||
(function(a,b){a.widget("ui.progressbar",{options:{value:0,max:100},min:0,_create:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min,"aria-valuemax":this.options.max,"aria-valuenow":this._value()}),this.valueDiv=a("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element),this.oldValue=this._value(),this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.valueDiv.remove(),a.Widget.prototype.destroy.apply(this,arguments)},value:function(a){return a===b?this._value():(this._setOption("value",a),this)},_setOption:function(b,c){b==="value"&&(this.options.value=c,this._refreshValue(),this._value()===this.options.max&&this._trigger("complete")),a.Widget.prototype._setOption.apply(this,arguments)},_value:function(){var a=this.options.value;return typeof a!="number"&&(a=0),Math.min(this.options.max,Math.max(this.min,a))},_percentage:function(){return 100*this._value()/this.options.max},_refreshValue:function(){var a=this.value(),b=this._percentage();this.oldValue!==a&&(this.oldValue=a,this._trigger("change")),this.valueDiv.toggle(a>this.min).toggleClass("ui-corner-right",a===this.options.max).width(b.toFixed(0)+"%"),this.element.attr("aria-valuenow",a)}}),a.extend(a.ui.progressbar,{version:"1.8.22"})})(jQuery);;
|
|
@ -1,20 +0,0 @@
|
|||
/*
|
||||
* jQuery outerHTML
|
||||
*
|
||||
* Copyright (c) 2008 Ca-Phun Ung <caphun at yelotofu dot com>
|
||||
* Dual licensed under the MIT (MIT-LICENSE.txt)
|
||||
* and GPL (GPL-LICENSE.txt) licenses.
|
||||
*
|
||||
* http://yelotofu.com/labs/jquery/snippets/outerhtml/
|
||||
*
|
||||
* outerHTML is based on the outerHTML work done by Brandon Aaron
|
||||
* But adds the ability to replace an element.
|
||||
*/
|
||||
|
||||
(function($) {
|
||||
$.fn.outerHTML = function(s) {
|
||||
return (s)
|
||||
? this.before(s).remove()
|
||||
: $('<p>').append(this.eq(0).clone()).html();
|
||||
}
|
||||
})(jQuery);
|
|
@ -1,189 +0,0 @@
|
|||
/*jslint white: true vars: true browser: true todo: true */
|
||||
/*jshint camelcase:true, plusplus:true, forin:true, noarg:true, noempty:true, eqeqeq:true, bitwise:true, strict:true, undef:true, unused:true, curly:true, browser:true, devel:true, maxerr:100, white:false, onevar:false */
|
||||
/*global jQuery:true $:true */
|
||||
|
||||
/* jQuery UI Multi-Progress Bar 1.1.0
|
||||
* http://github.com/j-ulrich/jquery-ui-multiprogressbar
|
||||
*
|
||||
* Copyright (c) 2012 Jochen Ulrich <jochenulrich@t-online.de>
|
||||
* Licensed under the MIT license (MIT-LICENSE.txt).
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file jQuery UI Multi-Progress Bar
|
||||
* @version 1.0
|
||||
* @copyright 2012 Jochen Ulrich
|
||||
* @license MIT (MIT-LICENSE.txt)
|
||||
*/
|
||||
|
||||
(function($) {
|
||||
"use strict";
|
||||
|
||||
/**
|
||||
* Constructs a multiprogressbar.
|
||||
* @name multiprogressbar
|
||||
* @public
|
||||
* @function
|
||||
* @memberOf jQuery.ju
|
||||
*/
|
||||
$.widget("ju.multiprogressbar",
|
||||
|
||||
/**
|
||||
* @lends jQuery.ju.multiprogressbar.prototype
|
||||
*/
|
||||
{
|
||||
|
||||
// Options
|
||||
/**
|
||||
* Default values of the options.
|
||||
* @since 1.0
|
||||
*/
|
||||
options: {
|
||||
parts: [{value: 0, barClass: "", text: false, textClass: ""}]
|
||||
},
|
||||
|
||||
/**
|
||||
* Constructor for multiprogressbars.
|
||||
* @private
|
||||
* @author julrich
|
||||
* @since 1.0
|
||||
*/
|
||||
_create: function() {
|
||||
var self = this;
|
||||
self.element.progressbar({value: 0, disabled: self.options.disabled}); // Creates one part with width 0%
|
||||
self.element.addClass("ju-multiprogressbar");
|
||||
|
||||
// Use the part generated by jQuery UI progressbar as template for the other parts
|
||||
self._partTemplate = self._getPartElements().outerHTML();
|
||||
self._createParts(self.options.parts);
|
||||
$.extend(self,{
|
||||
created: true
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* @returns {Object} a jQuery object containing all part elements.
|
||||
* @private
|
||||
* @author julrich
|
||||
* @since 1.0
|
||||
*/
|
||||
_getPartElements: function() {
|
||||
return this.element.children(".ui-progressbar-value");
|
||||
},
|
||||
|
||||
/**
|
||||
* (Re)creates the markup of the parts.
|
||||
* @param {Array} parts - Array of part objects defining the properties of the parts to be created.
|
||||
* @fires multiprogressbar#change when the function is called <b>after</b> the creation of the multiprogressbar
|
||||
* (i.e. the event is not fired during the creation).
|
||||
* @fires multiprogressbar#complete when the total progress reaches or exceeds 100%.
|
||||
* @private
|
||||
* @author julrich
|
||||
* @since 1.0
|
||||
*/
|
||||
_createParts: function(parts) {
|
||||
var self = this;
|
||||
|
||||
self._getPartElements().remove(); // Remove all existing parts and then rebuild them
|
||||
var first = true;
|
||||
var lastVisibleElement = null;
|
||||
var totalValue = 0;
|
||||
$.each(parts, function(i, part) {
|
||||
var partElement = $(self._partTemplate).appendTo(self.element);
|
||||
|
||||
if (first === false) {
|
||||
partElement.removeClass("ui-corner-left");
|
||||
}
|
||||
if (part.value > 0 && totalValue < 100) {
|
||||
first = false;
|
||||
// Check if the part would exceed the 100% and cut it at 100%
|
||||
part.value = totalValue+part.value > 100 ? 100-totalValue : part.value;
|
||||
partElement.css('width', part.value+"%").show();
|
||||
lastVisibleElement = partElement;
|
||||
totalValue += part.value;
|
||||
}
|
||||
else {
|
||||
// Hide part if the progress is <= 0 or if we exceeded 100% already
|
||||
part.value = 0;
|
||||
partElement.hide();
|
||||
}
|
||||
|
||||
partElement.addClass(part.barClass);
|
||||
|
||||
if (part.text !== undefined && part.text !== null && part.text !== false) {
|
||||
var textForPart;
|
||||
if (part.text === true) {
|
||||
textForPart = Math.round(part.value)+"%";
|
||||
}
|
||||
else if ($.trim(part.text) !== "") {
|
||||
textForPart = part.text;
|
||||
}
|
||||
$('<div></div>').addClass("ju-multiprogressbar-valuetext").text(textForPart).addClass(part.textClass).appendTo(partElement);
|
||||
partElement.attr('title', textForPart);
|
||||
}
|
||||
});
|
||||
if (self.created === true) { // Don't trigger "change" when we are creating the progressbar for the first time
|
||||
self._trigger("change", null, {parts: parts});
|
||||
}
|
||||
if (totalValue >= 99.9) {
|
||||
lastVisibleElement.addClass("ui-corner-right");
|
||||
// Trigger complete
|
||||
self._trigger("complete");
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Restores the element to it's original state.
|
||||
* @public
|
||||
* @author julrich
|
||||
* @since 1.0
|
||||
*/
|
||||
destroy: function() {
|
||||
var self = this;
|
||||
self._getPartElements().remove();
|
||||
self.element.progressbar("destroy");
|
||||
},
|
||||
|
||||
/**
|
||||
* Changes an option.
|
||||
* @param {String} option - name of the option to be set.
|
||||
* @param value - new value for the option.
|
||||
* @private
|
||||
* @author julrich
|
||||
* @since 1.0
|
||||
*/
|
||||
_setOption: function(option, value) {
|
||||
var self = this;
|
||||
$.Widget.prototype._setOption.apply( self, arguments );
|
||||
|
||||
switch(option) {
|
||||
case "parts":
|
||||
self._createParts(value);
|
||||
break;
|
||||
case "dummy":
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* @return {Numeric} the sum of the progress of all visible parts.
|
||||
* <b>Note:</b> When the sum of the progress of the parts exceeds 100, the progress
|
||||
* will be truncated at 100 and the value of successive parts will be set to 0. This means
|
||||
* that this function will always return a value in the range [0,100].
|
||||
* @public
|
||||
* @author julrich
|
||||
* @since 1.0
|
||||
*/
|
||||
total: function() {
|
||||
var self = this;
|
||||
var totalValue = 0;
|
||||
$.each(self.options.parts, function(i, part) {
|
||||
totalValue += part.value;
|
||||
});
|
||||
|
||||
return totalValue;
|
||||
}
|
||||
});
|
||||
}(jQuery));
|
|
@ -3,7 +3,6 @@ import os.path
|
|||
from django.http import HttpResponse
|
||||
from django.template.response import TemplateResponse
|
||||
|
||||
from conservancy.apps.fundgoal.models import FundraisingGoal
|
||||
from conservancy.local_context_processors import fundgoal_lookup
|
||||
|
||||
STATIC_ROOT = os.path.abspath(os.path.dirname(__file__))
|
||||
|
|
|
@ -17,12 +17,7 @@
|
|||
<link rel="stylesheet" type="text/css" href="{% static 'css/tachyons.css' %}"/>
|
||||
<link rel="stylesheet" type="text/css" media="screen" href="/css/conservancy.css" />
|
||||
<link rel="stylesheet" type="text/css" media="(min-width: 67em)" href="/css/conservancy-bigscreen.css" />
|
||||
<link rel="stylesheet" href="/css/jquery-ui-1.8.22.custom.css" />
|
||||
<link rel="stylesheet" href="/css/jquery.ui.multiprogressbar.css" />
|
||||
<script type="text/javascript" src="/js/jquery-1.7.2.js"></script>
|
||||
<script type="text/javascript" src="/js/jquery-ui-1.8.22.custom.min.js"></script>
|
||||
<script type="text/javascript" src="/js/jquery.outerhtml.js"></script>
|
||||
<script type="text/javascript" src="/js/jquery.ui.multiprogressbar.js"></script>
|
||||
<script type="text/javascript" src="/js/conservancy.js"></script>
|
||||
{% block head %}{% endblock %}
|
||||
</head>
|
||||
|
@ -114,8 +109,9 @@
|
|||
{% if sitefundgoal and sitefundgoal.fundraiser_so_far_amount and datetime_now < sitefundgoal_endtime %}
|
||||
{% with this_match_goal=sitefundgoal.fundraiser_goal_amount this_match_so_far=sitefundgoal.fundraiser_so_far_amount %}
|
||||
{% with this_match_remaining=this_match_goal|subtract:this_match_so_far sitefundgoal_timeleft=sitefundgoal_endtime|subtract:datetime_now %}
|
||||
<div class="fundraiser-top-text">
|
||||
<p>
|
||||
<div class="fundraiser-top-text ph2 ph3-ns pt2 pb3">
|
||||
<div class="mw8 center ph2 ph4-ns">
|
||||
<div class="mt2 mb3 tc">
|
||||
{% if this_match_remaining <= 0 %}
|
||||
Thanks to {{ sitegoal.fundraiser_donation_count|intcomma }} Sustainers we earned our full match!
|
||||
Help us go further to stand up for software freedom — <a href="/sustainer">sign up now</a>!
|
||||
|
@ -134,24 +130,28 @@
|
|||
next ${{ this_match_remaining|floatformat:0|intcomma }} of <a href="/sustainer/">support we receive</a> will be matched!
|
||||
|
||||
{% endif %}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
{% if sitefundgoal.fundraiser_so_far_amount %}
|
||||
<div id="siteprogressbar">
|
||||
<a href="/sustainer">
|
||||
We've matched
|
||||
<a href="/sustainer/" style="text-decoration: none !important">
|
||||
<div id="siteprogressbar" class="flex items-stretch w-100">
|
||||
{% if this_match_remaining <= 0 %}
|
||||
$<span id="site-fundraiser-match-count">{{ this_match_goal|intcomma }}</span>
|
||||
<div class="progress matched tc pv1 b dt" style="flex-basis: {{ this_match_so_far }}px">
|
||||
<span id="site-fundraiser-match-count" class="soFarText dtc v-mid">${{ this_match_goal|floatformat:0|intcomma }} matched!</span>
|
||||
</div>
|
||||
{% else %}
|
||||
$<span id="site-fundraiser-match-count">{{ this_match_so_far|intcomma }}</span>
|
||||
{% endif %}
|
||||
of
|
||||
$<span id="site-fundraiser-final-goal">{{ this_match_goal|intcomma }}</span>
|
||||
so far!
|
||||
</a>
|
||||
<div class="progress tc pv1 b dt" style="flex-basis: {{ this_match_so_far }}px">
|
||||
<span id="site-fundraiser-match-count" class="soFarText dtc v-mid">${{ this_match_so_far|floatformat:0|intcomma }} matched!</span>
|
||||
</div>
|
||||
<div class="final-goal tc pv1 b dt" style="flex-basis: {{ this_match_remaining }}px">
|
||||
<span id="site-fundraiser-final-goal" class="goalText dtc v-mid">${{ this_match_remaining|floatformat:0|intcomma }} to go!</span>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</a>
|
||||
{% endif %}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
{% endwith %}
|
||||
{% endwith %}
|
||||
|
|
Loading…
Reference in a new issue