Merge branch 'release/v2.0'
@@ -667,6 +667,7 @@ def new_workout_from_df(r,df,
|
||||
starttimeunix = mktime(startdatetime.utctimetuple())
|
||||
df[' ElapsedTime (sec)'] = df['TimeStamp (sec)']
|
||||
df['TimeStamp (sec)'] = df['TimeStamp (sec)']+starttimeunix
|
||||
print df.info()
|
||||
|
||||
row = rrdata(df=df)
|
||||
row.write_csv(csvfilename,gzip=True)
|
||||
|
||||
@@ -259,7 +259,7 @@ class WorkoutMultipleCompareForm(forms.Form):
|
||||
workouts = forms.ModelMultipleChoiceField(queryset=Workout.objects.all(),
|
||||
widget=forms.CheckboxSelectMultiple())
|
||||
|
||||
from rowers.interactiveplots import axlabels
|
||||
from rowers.metrics import axlabels
|
||||
|
||||
formaxlabels = axlabels.copy()
|
||||
formaxlabels.pop('None')
|
||||
|
||||
@@ -50,36 +50,7 @@ import stravastuff
|
||||
from rowers.dataprep import rdata
|
||||
import rowers.dataprep as dataprep
|
||||
|
||||
axes = (
|
||||
('time','Time',0,1e5,'basic'),
|
||||
('distance', 'Distance (m)',0,1e5,'basic'),
|
||||
('cumdist', 'Cumulative Distance (m)',0,1e5,'basic'),
|
||||
('hr','Heart Rate (bpm)',100,200,'basic'),
|
||||
('spm', 'Stroke Rate (spm)',15,45,'basic'),
|
||||
('pace', 'Pace (/500m)',1.0e3*210,1.0e3*75,'basic'),
|
||||
('power', 'Power (Watt)',0,600,'basic'),
|
||||
('averageforce', 'Average Drive Force (lbs)',0,200,'pro'),
|
||||
('drivelength', 'Drive Length (m)',0.5,2.0,'pro'),
|
||||
('peakforce', 'Peak Drive Force (lbs)',0,400,'pro'),
|
||||
('forceratio', 'Average/Peak Force Ratio',0,1,'pro'),
|
||||
('driveenergy', 'Work per Stroke (J)',0,1000,'pro'),
|
||||
('drivespeed', 'Drive Speed (m/s)',0,4,'pro'),
|
||||
('slip', 'Slip (degrees)',0,20,'pro'),
|
||||
('catch', 'Catch (degrees)',-40,-75,'pro'),
|
||||
('finish', 'Finish (degrees)',20,55,'pro'),
|
||||
('wash', 'Wash (degrees)',0,30,'pro'),
|
||||
('peakforceangle', 'Peak Force Angle (degrees)',-20,20,'pro'),
|
||||
('totalangle', 'Drive Length (deg)',40,140,'pro'),
|
||||
('effectiveangle', 'Effective Drive Length (deg)',40,140,'pro'),
|
||||
('rhythm', 'Stroke Rhythm (%)',20,55,'pro'),
|
||||
('None', 'None',0,1,'basic'),
|
||||
)
|
||||
|
||||
axlabels = {ax[0]:ax[1] for ax in axes}
|
||||
|
||||
yaxminima = {ax[0]:ax[2] for ax in axes}
|
||||
|
||||
yaxmaxima = {ax[0]:ax[3] for ax in axes}
|
||||
from rowers.metrics import axes,axlabels,yaxminima,yaxmaxima
|
||||
|
||||
def tailwind(bearing,vwind,winddir):
|
||||
""" Calculates head-on head/tailwind in direction of rowing
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
axes = (
|
||||
('time','Time',0,1e5,'basic'),
|
||||
('distance', 'Distance (m)',0,1e5,'basic'),
|
||||
('cumdist', 'Cumulative Distance (m)',0,1e5,'basic'),
|
||||
('hr','Heart Rate (bpm)',100,200,'basic'),
|
||||
('spm', 'Stroke Rate (spm)',15,45,'basic'),
|
||||
('pace', 'Pace (/500m)',1.0e3*210,1.0e3*75,'basic'),
|
||||
('power', 'Power (Watt)',0,600,'basic'),
|
||||
('averageforce', 'Average Drive Force (lbs)',0,200,'pro'),
|
||||
('drivelength', 'Drive Length (m)',0.5,2.0,'pro'),
|
||||
('peakforce', 'Peak Drive Force (lbs)',0,400,'pro'),
|
||||
('forceratio', 'Average/Peak Force Ratio',0,1,'pro'),
|
||||
('driveenergy', 'Work per Stroke (J)',0,1000,'pro'),
|
||||
('drivespeed', 'Drive Speed (m/s)',0,4,'pro'),
|
||||
('slip', 'Slip (degrees)',0,20,'pro'),
|
||||
('catch', 'Catch (degrees)',-40,-75,'pro'),
|
||||
('finish', 'Finish (degrees)',20,55,'pro'),
|
||||
('wash', 'Wash (degrees)',0,30,'pro'),
|
||||
('peakforceangle', 'Peak Force Angle (degrees)',-20,20,'pro'),
|
||||
('totalangle', 'Drive Length (deg)',40,140,'pro'),
|
||||
('effectiveangle', 'Effective Drive Length (deg)',40,140,'pro'),
|
||||
('rhythm', 'Stroke Rhythm (%)',20,55,'pro'),
|
||||
('None', 'None',0,1,'basic'),
|
||||
)
|
||||
|
||||
axlabels = {ax[0]:ax[1] for ax in axes}
|
||||
|
||||
yaxminima = {ax[0]:ax[2] for ax in axes}
|
||||
|
||||
yaxmaxima = {ax[0]:ax[3] for ax in axes}
|
||||
@@ -243,63 +243,17 @@ def auto_delete_teams_on_change(sender, instance, **kwargs):
|
||||
for team in teams:
|
||||
team.delete()
|
||||
|
||||
from rowers.metrics import axlabels
|
||||
favchartlabelsx = axlabels.copy()
|
||||
favchartlabelsy1 = axlabels.copy()
|
||||
favchartlabelsy2 = axlabels.copy()
|
||||
favchartlabelsy1.pop('None')
|
||||
parchoicesy1 = list(sorted(favchartlabelsy1.items(), key = lambda x:x[1]))
|
||||
parchoicesy2 = list(sorted(favchartlabelsy2.items(), key = lambda x:x[1]))
|
||||
parchoicesx = list(sorted(favchartlabelsx.items(), key = lambda x:x[1]))
|
||||
|
||||
# Saving a chart as a favorite chart
|
||||
class FavoriteChart(models.Model):
|
||||
y1params = (
|
||||
('hr','Heart Rate'),
|
||||
('pace','Pace'),
|
||||
('spm','SPM'),
|
||||
('driveenergy','Work per Stroke'),
|
||||
('power','Power'),
|
||||
('drivelength','Drivelength'),
|
||||
('averageforce','Average Force'),
|
||||
('peakforce','Peak Force'),
|
||||
('forceratio','Average/Peak Force Ratio'),
|
||||
('drivespeed','Drive Speed'),
|
||||
('wash','Wash'),
|
||||
('slip','Slip'),
|
||||
('catch','Catch Angle'),
|
||||
('finish','Finish Angle'),
|
||||
('peakforceangle','Peak Force Angle')
|
||||
)
|
||||
|
||||
y2params = (
|
||||
('hr','Heart Rate'),
|
||||
('spm','SPM'),
|
||||
('driveenergy','Work per Stroke'),
|
||||
('power','Power'),
|
||||
('drivelength','Drivelength'),
|
||||
('averageforce','Average Force'),
|
||||
('peakforce','Peak Force'),
|
||||
('forceratio','Average/Peak Force Ratio'),
|
||||
('drivespeed','Drive Speed'),
|
||||
('wash','Wash'),
|
||||
('slip','Slip'),
|
||||
('catch','Catch Angle'),
|
||||
('finish','Finish Angle'),
|
||||
('peakforceangle','Peak Force Angle'),
|
||||
('None','None')
|
||||
)
|
||||
|
||||
xparams = (
|
||||
('time','Time'),
|
||||
('distance','Distance'),
|
||||
('hr','Heart Rate'),
|
||||
('spm','SPM'),
|
||||
('driveenergy','Work per Stroke'),
|
||||
('power','Power'),
|
||||
('drivelength','Drivelength'),
|
||||
('averageforce','Average Force'),
|
||||
('peakforce','Peak Force'),
|
||||
('forceratio','Average/Peak Force Ratio'),
|
||||
('drivespeed','Drive Speed'),
|
||||
('wash','Wash'),
|
||||
('slip','Slip'),
|
||||
('catch','Catch Angle'),
|
||||
('finish','Finish Angle'),
|
||||
('peakforceangle','Peak Force Angle'),
|
||||
)
|
||||
|
||||
workouttypechoices = (
|
||||
('ote','Erg/SkiErg'),
|
||||
('otw','On The Water'),
|
||||
@@ -311,9 +265,9 @@ class FavoriteChart(models.Model):
|
||||
('scatter','Scatter Chart')
|
||||
)
|
||||
|
||||
yparam1 = models.CharField(max_length=50,choices=y1params,verbose_name='Y1')
|
||||
yparam2 = models.CharField(max_length=50,choices=y2params,verbose_name='Y2',default='None',blank=True)
|
||||
xparam = models.CharField(max_length=50,choices=xparams,verbose_name='X')
|
||||
yparam1 = models.CharField(max_length=50,choices=parchoicesy1,verbose_name='Y1')
|
||||
yparam2 = models.CharField(max_length=50,choices=parchoicesy2,verbose_name='Y2',default='None',blank=True)
|
||||
xparam = models.CharField(max_length=50,choices=parchoicesx,verbose_name='X')
|
||||
plottype = models.CharField(max_length=50,choices=plottypes,
|
||||
default='line',
|
||||
verbose_name='Chart Type')
|
||||
|
||||
@@ -116,8 +116,8 @@ of a rowers technique.</p>
|
||||
<p>The online logbook provide the ability to record OTW sessions
|
||||
manually, but none of the data from these sessions is captured.</p>
|
||||
|
||||
<p>The Premium Features are available for only 5 EURO per year.
|
||||
Your 5 EURO will be used
|
||||
<p>The Premium Features are available for only 15 EURO per year.
|
||||
Your 15 EURO will be used
|
||||
to cover the hosting costs of the site.
|
||||
</p>
|
||||
|
||||
|
||||
@@ -11,8 +11,11 @@
|
||||
<link rel="stylesheet" href="/static/css/bokeh-0.12.3.min.css" type="text/css" />
|
||||
<link rel="stylesheet" href="/static/css/bokeh-widgets-0.12.3.min.css" type="text/css" />
|
||||
|
||||
<link rel="shortcut icon" href="/static/img/myicon.png" />
|
||||
<link rel="shortcut icon" href="/static/img/favicon.ico" />
|
||||
<link rel="shortcut icon" href="/static/img/favicon.ico" type="image/x-icon" />
|
||||
<link rel="icon" sizes="32x32" href="/static/img/favicon-32x32.png" type="image/png"/>
|
||||
<link rel="icon" sizes="64x64" href="/static/img/favicon-64x64.png" type="image/png"/>
|
||||
<link rel="icon" sizes="192x192" href="/static/img/favicon-192x192.png" type="image/png"/>
|
||||
<link rel="icon" sizes="16x16" href="/static/img/favicon-16x16.png" type="image/png"/>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="initial-scale=0.67">
|
||||
<title>Rowsandall</title>
|
||||
@@ -26,18 +29,22 @@
|
||||
<body>
|
||||
{% analytical_body_top %}
|
||||
<div class="container_12">
|
||||
<div id="logo" class="grid_2">
|
||||
<div class="grid_12">
|
||||
|
||||
</div>
|
||||
<div class="grid_12">
|
||||
<div id="logo" class="grid_6 alpha">
|
||||
{% if user.rower.rowerplan == 'pro' or user.rower.rowerplan == 'coach' %}
|
||||
<p><a href="/"><img src="/static/img/logocroppedpro.gif"
|
||||
alt="Rowsandall logo" width="110" heigt="110"></a></p>
|
||||
<p><a href="/"><img src="/static/img/logo7.png"
|
||||
alt="Rowsandall logo" height="80"></a></p>
|
||||
{% else %}
|
||||
<p><a href="/"><img src="/static/img/logocropped.gif"
|
||||
alt="Rowsandall logo" width="110" heigt="110"></a></p>
|
||||
<p><a href="/"><img src="/static/img/logo7.png"
|
||||
alt="Rowsandall logo" height="80"></a></p>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="grid_10 omega">
|
||||
<div class="grid_8 alpha">
|
||||
<div class="grid_1 prefix_4 alpha">
|
||||
<div class="grid_6 omega">
|
||||
<div class="grid_4 alpha">
|
||||
<div class="grid_1 alpha">
|
||||
<p id="header">
|
||||
<a class="button gray small" href="/rowers/videos">Videos</a></p>
|
||||
</div>
|
||||
@@ -47,43 +54,46 @@
|
||||
</div>
|
||||
<div class="grid_1 omega">
|
||||
<p id="header">
|
||||
<a class="button gray small" href="/rowers/email">Contact</a></p>
|
||||
<a class="button gray small" href="/rowers/email">Contact</a>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="grid_2 omega">
|
||||
{% if user.is_authenticated %}
|
||||
<p><a class="button gray small" href="/password_change/">Password Change</a></p>
|
||||
{% else %}
|
||||
<p><a class="button gray small" href="/password_reset/">Forgot Password?</a></p>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="grid_10 omega">
|
||||
<div class="grid_4 suffix_2 alpha">
|
||||
<div class="grid_4 alpha">
|
||||
<p>Free Data and Analysis. For Rowers. By Rowers.</p>
|
||||
</div>
|
||||
<div class="grid_3">
|
||||
{% if user.rower.rowerplan == 'pro' or user.rower.rowerplan == 'coach' %}
|
||||
<h6>Pro Member</h6>
|
||||
</div>
|
||||
|
||||
<div class="grid_1">
|
||||
<div class="grid_1 tooltip">
|
||||
{% if user.is_authenticated %}
|
||||
<p>
|
||||
<a class="button gray small" href="/rowers/me/edit">{{ user.first_name }}</a>
|
||||
</p>
|
||||
<span class="tooltiptext">Edit user account, e.g. heart rate zones, power zones, email, teams</span>
|
||||
|
||||
{% else %}
|
||||
<div class="grid_2 alpha"><a class="button green small" href="/rowers/promembership">Upgrade to Pro</a></div>
|
||||
<p><a class="button gray small" href="{% url 'login' %}">login</a> </p>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="grid_1 omega">
|
||||
<div class="grid_1">
|
||||
{% if user.is_authenticated %}
|
||||
<p><a class="button gray small" href="{% url 'logout' %}">logout</a></p>
|
||||
|
||||
{% else %}
|
||||
<p> </p>
|
||||
{% endif %}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="grid_1 omega">
|
||||
{% if user.rower.rowerplan == 'pro' or user.rower.rowerplan == 'coach' %}
|
||||
<h6 class="graytext">Pro Member</h6>
|
||||
{% else %}
|
||||
<div class="grid_1"><a class="button green small" href="/rowers/promembership">Upgrade to Pro</a></div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="grid_10" omega>
|
||||
|
||||
<div class="grid_12">
|
||||
<div class="grid_1 alpha tooltip">
|
||||
{% if user.is_authenticated %}
|
||||
<p><a class="button gray small" href="/rowers/workout/upload/">Upload</a></p>
|
||||
@@ -112,7 +122,7 @@
|
||||
<p> </p>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="grid_2 tooltip">
|
||||
<div class="grid_1 tooltip">
|
||||
{% if user.is_authenticated %}
|
||||
<p>
|
||||
<a class="button gray small" href="/rowers/list-graphs/">Graphs</a>
|
||||
@@ -161,17 +171,6 @@
|
||||
<p> </p>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="grid_1 omega tooltip">
|
||||
{% if user.is_authenticated %}
|
||||
<p>
|
||||
<a class="button gray small" href="/rowers/me/edit">{{ user.first_name }}</a>
|
||||
</p>
|
||||
<span class="tooltiptext">Edit user account, e.g. heart rate zones, power zones, email, teams</span>
|
||||
|
||||
{% else %}
|
||||
<p><a class="button gray small" href="{% url 'login' %}">login</a> </p>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,261 @@
|
||||
{% load cookielaw_tags %}
|
||||
{% load analytical %}
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<script src="/static/cookielaw/js/cookielaw.js"></script>
|
||||
{% analytical_head_top %}
|
||||
{% if GOOGLE_ANALYTICS_PROPERTY_ID %}
|
||||
{% include "ga.html" %}
|
||||
{% endif %}
|
||||
<link rel="stylesheet" href="/static/css/bokeh-0.12.3.min.css" type="text/css" />
|
||||
<link rel="stylesheet" href="/static/css/bokeh-widgets-0.12.3.min.css" type="text/css" />
|
||||
|
||||
<link rel="shortcut icon" href="/static/img/favicon.ico" type="image/x-icon" />
|
||||
<link rel="icon" sizes="32x32" href="/static/img/favicon-32x32.png" type="image/png"/>
|
||||
<link rel="icon" sizes="64x64" href="/static/img/favicon-64x64.png" type="image/png"/>
|
||||
<link rel="icon" sizes="192x192" href="/static/img/favicon-192x192.png" type="image/png"/>
|
||||
<link rel="icon" sizes="16x16" href="/static/img/favicon-16x16.png" type="image/png"/>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="initial-scale=0.67">
|
||||
<title>Rowsandall</title>
|
||||
<link rel="stylesheet" href="/static/css/reset.css" />
|
||||
<link rel="stylesheet" href="/static/css/text.css" />
|
||||
<link rel="stylesheet" href="/static/css/960_12_col.css" />
|
||||
<link rel="stylesheet" href="/static/css/rowsandall.css" />
|
||||
{% block meta %} {% endblock %}
|
||||
{% analytical_head_bottom %}
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<style>
|
||||
.splash {
|
||||
background-color: transparent;
|
||||
background-image: url("/static/img/landing1.jpg");
|
||||
-webkit-background-size: cover;
|
||||
-moz-background-size: cover;
|
||||
-o-background-size: cover;
|
||||
background-size: cover;
|
||||
min-height: 759px;
|
||||
min-width: 1024px;
|
||||
width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
.container_12 {background-color: rgba(255,255,255,0.0);}
|
||||
.container_top {background-color: rgba(255,255,255,0.7);}
|
||||
</style>
|
||||
|
||||
<div class="splash">
|
||||
{% analytical_body_top %}
|
||||
<div class="container_top">
|
||||
<div class="container_12">
|
||||
<div class="grid_12">
|
||||
|
||||
</div>
|
||||
<div class="grid_12">
|
||||
<div id="logo" class="grid_6 alpha">
|
||||
{% if user.rower.rowerplan == 'pro' or user.rower.rowerplan == 'coach' %}
|
||||
<p><a href="/"><img src="/static/img/logo7.png"
|
||||
alt="Rowsandall logo" height="80"></a></p>
|
||||
{% else %}
|
||||
<p><a href="/"><img src="/static/img/logo7.png"
|
||||
alt="Rowsandall logo" height="80"></a></p>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="grid_6 omega">
|
||||
<div class="grid_4 alpha">
|
||||
<div class="grid_1 alpha">
|
||||
<p id="header">
|
||||
<a class="button gray small" href="/rowers/videos">Videos</a></p>
|
||||
</div>
|
||||
<div class="grid_2">
|
||||
<p id="header">
|
||||
<a class="button gray small" href="http://analytics.rowsandall.com/">Rowing Analytics BLOG</a></p>
|
||||
</div>
|
||||
<div class="grid_1 omega">
|
||||
<p id="header">
|
||||
<a class="button gray small" href="/rowers/email">Contact</a>
|
||||
</p>
|
||||
</div>
|
||||
<div class="grid_4 alpha">
|
||||
<p>Free Data and Analysis. For Rowers. By Rowers.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="grid_1">
|
||||
<div class="grid_1 tooltip">
|
||||
{% if user.is_authenticated %}
|
||||
<p>
|
||||
<a class="button gray small" href="/rowers/me/edit">{{ user.first_name }}</a>
|
||||
</p>
|
||||
<span class="tooltiptext">Edit user account, e.g. heart rate zones, power zones, email, teams</span>
|
||||
|
||||
{% else %}
|
||||
<p><a class="button gray small" href="{% url 'login' %}">login</a> </p>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="grid_1">
|
||||
{% if user.is_authenticated %}
|
||||
<p><a class="button gray small" href="{% url 'logout' %}">logout</a></p>
|
||||
{% else %}
|
||||
<p> </p>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
<div class="grid_1 omega">
|
||||
{% if user.rower.rowerplan == 'pro' or user.rower.rowerplan == 'coach' %}
|
||||
<h6 class="graytext">Pro Member</h6>
|
||||
{% else %}
|
||||
<div class="grid_1"><a class="button green small" href="/rowers/promembership">Upgrade to Pro</a></div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="grid_12">
|
||||
<div class="grid_1 alpha tooltip">
|
||||
{% if user.is_authenticated %}
|
||||
<p><a class="button gray small" href="/rowers/workout/upload/">Upload</a></p>
|
||||
<span class="tooltiptext">Upload CSV, TCX, FIT data files to rowsandall.com</span>
|
||||
{% else %}
|
||||
<p><a class="button green small" href="/rowers/register">Register (free)</a></p>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="grid_1 tooltip">
|
||||
{% if user.is_authenticated %}
|
||||
<p>
|
||||
<a class="button gray small" href="/rowers/imports/">Import</a>
|
||||
</p>
|
||||
<span class="tooltiptext">Import workouts from Strava, SportTracks, and C2 logbook</span>
|
||||
{% else %}
|
||||
<p> </p>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="grid_2 tooltip">
|
||||
{% if user.is_authenticated %}
|
||||
<p>
|
||||
<a class="button gray small" href="/rowers/list-workouts/">Workouts</a>
|
||||
</p>
|
||||
<span class="tooltiptext">See your list of workouts</span>
|
||||
{% else %}
|
||||
<p> </p>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="grid_1 tooltip">
|
||||
{% if user.is_authenticated %}
|
||||
<p>
|
||||
<a class="button gray small" href="/rowers/list-graphs/">Graphs</a>
|
||||
</p>
|
||||
<span class="tooltiptext">See your most recent charts</span>
|
||||
{% else %}
|
||||
<p> </p>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="grid_2 tooltip">
|
||||
{% if user.is_authenticated %}
|
||||
<p>
|
||||
<a class="button gray small" href="/rowers/analysis">Analysis</a>
|
||||
</p>
|
||||
<span class="tooltiptext">Analysis of workouts over a period of time</span>
|
||||
{% else %}
|
||||
<p> </p>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="grid_1 tooltip">
|
||||
{% if user.is_authenticated and teams %}
|
||||
<div class="grid_1 alpha dropdown">
|
||||
<button class="grid_1 alpha button gray small dropbtn">
|
||||
Teams
|
||||
</button>
|
||||
<div class="dropdown-content">
|
||||
{% for t in teams %}
|
||||
<a class="button gray small" href="/rowers/list-workouts/team/{{ t.id }}/">{{ t.name }}</a>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
<span class="tooltiptext">See recent workouts for your team</span>
|
||||
{% elif user.is_authenticated and user.rower.team.all %}
|
||||
<div class="grid_1 alpha dropdown">
|
||||
<button class="grid_1 alpha button gray small dropbtn">
|
||||
Teams
|
||||
</button>
|
||||
<div class="dropdown-content">
|
||||
{% for t in user.rower.team.all %}
|
||||
<a class="button gray small" href="/rowers/list-workouts/team/{{ t.id }}/">{{ t.name }}</a>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
<span class="tooltiptext">See recent workouts for your team</span>
|
||||
{% else %}
|
||||
<p> </p>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="clear"></div>
|
||||
<div class="grid_12">
|
||||
{% block message %}
|
||||
{% if message %}
|
||||
<p class="message">
|
||||
{{ message }}
|
||||
</p>
|
||||
{% endif %}
|
||||
{% if successmessage %}
|
||||
<p class="successmessage">
|
||||
{{ successmessage }}
|
||||
</p>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
</div>
|
||||
<div class="grid_12">
|
||||
{% load tz %}
|
||||
|
||||
{% block content %}{% endblock %}
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
|
||||
<div class="grid_12 omega" >
|
||||
{% block footer %}
|
||||
<p id="footer">{{ versionstring }}</p>
|
||||
<div class="grid_2 alpha">
|
||||
<p id="footer"><a href="/rowers/email/">© Sander Roosendaal</a></p>
|
||||
</div>
|
||||
<div class="grid_1">
|
||||
<p id="footer">
|
||||
<a href="/rowers/about">About</a></p>
|
||||
</div>
|
||||
<div class="grid_2">
|
||||
<p id="footer">
|
||||
<a href="/rowers/developers">Developers</a></p>
|
||||
</div>
|
||||
<div class="grid_1">
|
||||
<p id="footer">
|
||||
<a href="/rowers/legal">Legal</a></p>
|
||||
</div>
|
||||
<div class="grid_2">
|
||||
<p id="footer">
|
||||
<a href="/rowers/partners">Partners</a></p>
|
||||
</div>
|
||||
<div class="grid_1">
|
||||
<p id="footer">
|
||||
<a href="/rowers/physics">Physics</a></p>
|
||||
</div>
|
||||
<div class="grid_2">
|
||||
<p id="footer">
|
||||
<a href="http://analytics.rowsandall.com/">Rowing Analytics BLOG</a></p>
|
||||
</div>
|
||||
<div class="grid_1 omega">
|
||||
<p id="footer">
|
||||
<a href="/rowers/email">Contact</a></p>
|
||||
</div>
|
||||
{% endblock %}
|
||||
</div>
|
||||
{% cookielaw_banner %}
|
||||
</div>
|
||||
</div>
|
||||
<!-- end container -->
|
||||
{% analytical_body_bottom %}
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,4 +1,4 @@
|
||||
{% extends "base.html" %}
|
||||
{% extends "basefront.html" %}
|
||||
{% load staticfiles %}
|
||||
{% load rowerfilters %}
|
||||
|
||||
@@ -6,11 +6,6 @@
|
||||
|
||||
{% block content %}
|
||||
|
||||
<div class="grid_12">
|
||||
<p class="midden">
|
||||
<a title="By Photoglob Zurich, reprinted by Detroit Publishing Co. [Public domain], via Wikimedia Commons" href="https://commons.wikimedia.org/wiki/File%3AHenley_Regatta%2C_Henley-on-Thames%2C_England%2C_1890s.jpg"><img width="512" alt="Henley Regatta, Henley-on-Thames, England, 1890s" src="https://upload.wikimedia.org/wikipedia/commons/thumb/d/d9/Henley_Regatta%2C_Henley-on-Thames%2C_England%2C_1890s.jpg/512px-Henley_Regatta%2C_Henley-on-Thames%2C_England%2C_1890s.jpg"/></a></p>
|
||||
</div>
|
||||
|
||||
<div class="grid_12">
|
||||
<p class="midden">
|
||||
Compatible with:
|
||||
@@ -27,4 +22,5 @@
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
||||
{% endblock %}
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
</table>
|
||||
{% csrf_token %}
|
||||
</div>
|
||||
<div class="grid_2 suffix_6 omega">
|
||||
<div class="grid_2 suffix_6 alpha">
|
||||
<input name='daterange' class="button green" type="submit" value="Submit"> </form>
|
||||
</div>
|
||||
|
||||
@@ -42,10 +42,10 @@
|
||||
{% endif %}
|
||||
|
||||
{% if workouts %}
|
||||
<table width="100%" class="listtable">
|
||||
<table width="100%" class="listtable shortpadded">
|
||||
<thead>
|
||||
<tr>
|
||||
<th> Date</th>
|
||||
<th style="width:80px"> Date</th>
|
||||
<th> Time</th>
|
||||
<th> Name</th>
|
||||
<th> Type</th>
|
||||
@@ -54,8 +54,8 @@
|
||||
<th> Avg HR </th>
|
||||
<th> Max HR </th>
|
||||
{% if not team %}
|
||||
<th> Delete</th>
|
||||
<th> Export</th>
|
||||
<th> </th>
|
||||
<th> </th>
|
||||
{% else %}
|
||||
<th colspan="2">
|
||||
Owner
|
||||
@@ -89,17 +89,17 @@
|
||||
<td> {{ workout.maxhr }} </td>
|
||||
{% if not team %}
|
||||
<td>
|
||||
<a class="button red small" href="/rowers/workout/{{ workout.id }}/deleteconfirm">Delete
|
||||
</td>
|
||||
<td>
|
||||
<a class="button blue small" href="/rowers/workout/{{ workout.id }}/export">Export</a>
|
||||
<a class="small" href="/rowers/workout/{{ workout.id }}/export">Export</a>
|
||||
</td>
|
||||
{% else %}
|
||||
<td colspan="2">
|
||||
{{ workout.user.user.first_name }} {{ workout.user.user.last_name }}
|
||||
</td>
|
||||
{% endif %}
|
||||
<td> <a class="button blue small" href="/rowers/workout/{{ workout.id }}/flexchart">Flex</a> </td>
|
||||
<td> <a class="small" href="/rowers/workout/{{ workout.id }}/flexchart">Flex</a> </td>
|
||||
<td>
|
||||
<a class="small" href="/rowers/workout/{{ workout.id }}/deleteconfirm">Delete
|
||||
</td>
|
||||
|
||||
|
||||
</tr>
|
||||
@@ -116,7 +116,9 @@
|
||||
{% if team %}
|
||||
<div class="grid_4" id="teambuttons">
|
||||
<div class="grid_3 alpha">
|
||||
<a class="button gray small" href="/rowers/team-compare-select/team/{{ team.id }}/">Multi Workout Compare</a>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<div class="grid_6 alpha">
|
||||
|
||||
<p>Donations are welcome to keep this web site going. To help cover the hosting
|
||||
costs, I have created a <q>Pro</q> membership option (for only 5 EURO per year). Once I process your
|
||||
costs, I have created a <q>Pro</q> membership option (for only 15 EURO per year). Once I process your
|
||||
donation, I will give you access to some <q>special</q> features on this
|
||||
website. </p>
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{% extends "base.html" %}
|
||||
{% extends "basefront.html" %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
|
||||
@@ -80,6 +80,14 @@
|
||||
<div class="grid_6 alpha">
|
||||
<p>
|
||||
<h2>Account Information</h2>
|
||||
<div class="grid_6 alpha">
|
||||
<div class="grid_2 suffix_4 alpha">
|
||||
<p>
|
||||
<a class="button gray small" href="/password_change/">Password Change</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</p>
|
||||
{% if userform.errors %}
|
||||
<p style="color: red;">
|
||||
Please correct the error{{ form.errors|pluralize }} below.
|
||||
@@ -113,6 +121,8 @@
|
||||
<input class="button green" type="submit" value="Save">
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
</p>
|
||||
</div>
|
||||
<div class="grid_6 omega">
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
{% block content %}
|
||||
|
||||
|
||||
<div class="grid_12">
|
||||
<div class="grid_8 suffix_4">
|
||||
<div class="grid_12 alpha">
|
||||
<div class="grid_8 suffix_4 alpha">
|
||||
{% include "teambuttons.html" with teamid=team.id %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,9 +1,15 @@
|
||||
<div class="grid_2 alpha">
|
||||
<p>
|
||||
<a class="button gray small" href="/rowers/list-workouts/team/{{ teamid }}/">Team Workouts</a>
|
||||
</p>
|
||||
</div>
|
||||
<div class="grid_2">
|
||||
<p>
|
||||
<a class="button gray small" href="/rowers/team-compare-select/team/{{ teamid }}/">Multi Compare</a>
|
||||
</p>
|
||||
</div>
|
||||
<div class="grid_2 suffix_2 omega">
|
||||
<p>
|
||||
<a class="button gray small" href="/rowers/team/{{ teamid }}/">Team Page</a>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -5,13 +5,14 @@ html {
|
||||
}
|
||||
|
||||
body {
|
||||
background: #edc;
|
||||
/* background: #edc; */
|
||||
color: #333;
|
||||
font-size: 1.2em;
|
||||
height: auto;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
|
||||
|
||||
a {
|
||||
/* color: #fff; */
|
||||
text-decoration: none;
|
||||
@@ -58,6 +59,9 @@ th {
|
||||
.listtable thead th {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.shortpadded td { padding: 3px 3px }
|
||||
|
||||
.paddedtable td { padding: 1px 20px }
|
||||
|
||||
.cortable {
|
||||
@@ -155,6 +159,11 @@ th.rotate > div > span {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.transparentbutton {
|
||||
padding: 1px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.tooltip {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
@@ -193,9 +202,9 @@ th.rotate > div > span {
|
||||
display: block;
|
||||
padding: .2em .5em .2em .5em;
|
||||
zoom: 1;
|
||||
border-radius: .5em;
|
||||
-moz-border-radius: .5em;
|
||||
-webkit-border-radius: .5em;
|
||||
/* border-radius: .5em; */
|
||||
/* -moz-border-radius: .5em; */
|
||||
/* -webkit-border-radius: .5em; */
|
||||
text-align: left;
|
||||
border: solid 1px #333;
|
||||
}
|
||||
@@ -208,13 +217,13 @@ th.rotate > div > span {
|
||||
color: white;
|
||||
padding: 0.2em 0.0em 0.2em 0.0em;
|
||||
zoom: 1;
|
||||
border-radius: .5em;
|
||||
-moz-border-radius: .5em;
|
||||
-webkit-border-radius: .5em;
|
||||
-box-shadow: 0 1px 3px rgba(0,0,0,0.5);
|
||||
-moz-box-shadow: 0 1px 3px rgba(0,0,0,0.5);
|
||||
-webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.5);
|
||||
text-shadow: 0 -1px 1px rgba(0,0,0,0.25);
|
||||
/* border-radius: .5em; */
|
||||
/* -moz-border-radius: .5em; */
|
||||
/* -webkit-border-radius: .5em; */
|
||||
/* -box-shadow: 0 1px 3px rgba(0,0,0,0.5); */
|
||||
/* -moz-box-shadow: 0 1px 3px rgba(0,0,0,0.5); */
|
||||
/* -webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.5); /*
|
||||
/* text-shadow: 0 -1px 1px rgba(0,0,0,0.25); */
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
@@ -229,10 +238,10 @@ th.rotate > div > span {
|
||||
border-radius: .5em;
|
||||
-moz-border-radius: .5em;
|
||||
-webkit-border-radius: .5em;
|
||||
-box-shadow: 0 1px 3px rgba(0,0,0,0.5);
|
||||
-moz-box-shadow: 0 1px 3px rgba(0,0,0,0.5);
|
||||
-webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.5);
|
||||
text-shadow: 0 -1px 1px rgba(0,0,0,0.25);
|
||||
/* -box-shadow: 0 1px 3px rgba(0,0,0,0.5); */
|
||||
/* -moz-box-shadow: 0 1px 3px rgba(0,0,0,0.5); */
|
||||
/* -webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.5); */
|
||||
/* text-shadow: 0 -1px 1px rgba(0,0,0,0.25); */
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
@@ -242,9 +251,6 @@ a.button {
|
||||
|
||||
.button:hover {
|
||||
background: #d8e6ff; /* old browsers */
|
||||
background: -moz-linear-gradient(top, #d8e6ff 0%, #8da8d7 100%); /* firefox */
|
||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#d8e6ff), color-stop(100%,#8da8d7)); /* webkit */
|
||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#d8e6ff', endColorstr='#8da8d7',GradientType=0 ); /* ie */
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
@@ -270,43 +276,25 @@ a.button {
|
||||
color: #d7d7d7;
|
||||
border: solid 1px #333;
|
||||
background: #333;
|
||||
background: -webkit-gradient(linear, left top, left bottom, from(#666), to(#000));
|
||||
background: -moz-linear-gradient(top, #666, #000);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#666666', endColorstr='#000000');
|
||||
}
|
||||
.black:hover {
|
||||
background: #000;
|
||||
background: -webkit-gradient(linear, left top, left bottom, from(#444), to(#000));
|
||||
background: -moz-linear-gradient(top, #444, #000);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#444444', endColorstr='#000000');
|
||||
}
|
||||
.black:active {
|
||||
color: #666;
|
||||
background: -webkit-gradient(linear, left top, left bottom, from(#000), to(#444));
|
||||
background: -moz-linear-gradient(top, #000, #444);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#000000', endColorstr='#666666');
|
||||
}
|
||||
|
||||
/* gray */
|
||||
.gray {
|
||||
.blue {
|
||||
color: #e9e9e9;
|
||||
border: solid 1px #555;
|
||||
background: #6e6e6e;
|
||||
background: -webkit-gradient(linear, left top, left bottom, from(#888), to(#575757));
|
||||
background: -moz-linear-gradient(top, #888, #575757);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#888888', endColorstr='#575757');
|
||||
}
|
||||
.gray:hover {
|
||||
.blue:hover {
|
||||
background: #616161;
|
||||
background: -webkit-gradient(linear, left top, left bottom, from(#757575), to(#4b4b4b));
|
||||
background: -moz-linear-gradient(top, #757575, #4b4b4b);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#757575', endColorstr='#4b4b4b');
|
||||
}
|
||||
.gray:active {
|
||||
.blue:active {
|
||||
color: #afafaf;
|
||||
background: -webkit-gradient(linear, left top, left bottom, from(#575757), to(#888));
|
||||
background: -moz-linear-gradient(top, #575757, #888);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#575757', endColorstr='#888888');
|
||||
}
|
||||
|
||||
/* white */
|
||||
@@ -314,21 +302,12 @@ a.button {
|
||||
color: #606060;
|
||||
border: solid 1px #b7b7b7;
|
||||
background: #fff;
|
||||
background: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#ededed));
|
||||
background: -moz-linear-gradient(top, #fff, #ededed);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#ededed');
|
||||
}
|
||||
.white:hover {
|
||||
background: #ededed;
|
||||
background: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#dcdcdc));
|
||||
background: -moz-linear-gradient(top, #fff, #dcdcdc);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#dcdcdc');
|
||||
}
|
||||
.white:active {
|
||||
color: #999;
|
||||
background: -webkit-gradient(linear, left top, left bottom, from(#ededed), to(#fff));
|
||||
background: -moz-linear-gradient(top, #ededed, #fff);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed', endColorstr='#ffffff');
|
||||
}
|
||||
|
||||
/* orange */
|
||||
@@ -336,21 +315,12 @@ a.button {
|
||||
color: #fef4e9;
|
||||
border: solid 1px #da7c0c;
|
||||
background: #f78d1d;
|
||||
background: -webkit-gradient(linear, left top, left bottom, from(#faa51a), to(#f47a20));
|
||||
background: -moz-linear-gradient(top, #faa51a, #f47a20);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#faa51a', endColorstr='#f47a20');
|
||||
}
|
||||
.orange:hover {
|
||||
background: #f47c20;
|
||||
background: -webkit-gradient(linear, left top, left bottom, from(#f88e11), to(#f06015));
|
||||
background: -moz-linear-gradient(top, #f88e11, #f06015);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f88e11', endColorstr='#f06015');
|
||||
}
|
||||
.orange:active {
|
||||
color: #fcd3a5;
|
||||
background: -webkit-gradient(linear, left top, left bottom, from(#f47a20), to(#faa51a));
|
||||
background: -moz-linear-gradient(top, #f47a20, #faa51a);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f47a20', endColorstr='#faa51a');
|
||||
}
|
||||
|
||||
/* red */
|
||||
@@ -358,43 +328,30 @@ a.button {
|
||||
color: #faddde;
|
||||
border: solid 1px #980c10;
|
||||
background: #d81b21;
|
||||
background: -webkit-gradient(linear, left top, left bottom, from(#ed1c24), to(#aa1317));
|
||||
background: -moz-linear-gradient(top, #ed1c24, #aa1317);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ed1c24', endColorstr='#aa1317');
|
||||
}
|
||||
.red:hover {
|
||||
background: #b61318;
|
||||
background: -webkit-gradient(linear, left top, left bottom, from(#c9151b), to(#a11115));
|
||||
background: -moz-linear-gradient(top, #c9151b, #a11115);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#c9151b', endColorstr='#a11115');
|
||||
}
|
||||
.red:active {
|
||||
color: #de898c;
|
||||
background: -webkit-gradient(linear, left top, left bottom, from(#aa1317), to(#ed1c24));
|
||||
background: -moz-linear-gradient(top, #aa1317, #ed1c24);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#aa1317', endColorstr='#ed1c24');
|
||||
}
|
||||
|
||||
/* blue */
|
||||
.blue {
|
||||
color: #d9eef7;
|
||||
border: solid 1px #0076a3;
|
||||
background: #0095cd;
|
||||
background: -webkit-gradient(linear, left top, left bottom, from(#00adee), to(#0078a5));
|
||||
background: -moz-linear-gradient(top, #00adee, #0078a5);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00adee', endColorstr='#0078a5');
|
||||
.graytext {
|
||||
color: #27aae2;
|
||||
}
|
||||
.blue:hover {
|
||||
background: #007ead;
|
||||
background: -webkit-gradient(linear, left top, left bottom, from(#0095cc), to(#00678e));
|
||||
background: -moz-linear-gradient(top, #0095cc, #00678e);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0095cc', endColorstr='#00678e');
|
||||
|
||||
.gray {
|
||||
color: #fae7e9;
|
||||
border: solid 1px #27aae2;
|
||||
background: #27aae2;
|
||||
}
|
||||
.blue:active {
|
||||
color: #80bed6;
|
||||
background: -webkit-gradient(linear, left top, left bottom, from(#0078a5), to(#00adee));
|
||||
background: -moz-linear-gradient(top, #0078a5, #00adee);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0078a5', endColorstr='#00adee');
|
||||
.gray:hover {
|
||||
background: #1c74bb;
|
||||
border: solid 1px #27aae2;
|
||||
}
|
||||
.gray:active {
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
/* rosy */
|
||||
@@ -402,21 +359,12 @@ a.button {
|
||||
color: #fae7e9;
|
||||
border: solid 1px #b73948;
|
||||
background: #da5867;
|
||||
background: -webkit-gradient(linear, left top, left bottom, from(#f16c7c), to(#bf404f));
|
||||
background: -moz-linear-gradient(top, #f16c7c, #bf404f);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f16c7c', endColorstr='#bf404f');
|
||||
}
|
||||
.rosy:hover {
|
||||
background: #ba4b58;
|
||||
background: -webkit-gradient(linear, left top, left bottom, from(#cf5d6a), to(#a53845));
|
||||
background: -moz-linear-gradient(top, #cf5d6a, #a53845);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#cf5d6a', endColorstr='#a53845');
|
||||
}
|
||||
.rosy:active {
|
||||
color: #dca4ab;
|
||||
background: -webkit-gradient(linear, left top, left bottom, from(#bf404f), to(#f16c7c));
|
||||
background: -moz-linear-gradient(top, #bf404f, #f16c7c);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#bf404f', endColorstr='#f16c7c');
|
||||
}
|
||||
|
||||
/* green */
|
||||
@@ -424,21 +372,12 @@ a.button {
|
||||
color: #e8f0de;
|
||||
border: solid 1px #538312;
|
||||
background: #64991e;
|
||||
background: -webkit-gradient(linear, left top, left bottom, from(#7db72f), to(#4e7d0e));
|
||||
background: -moz-linear-gradient(top, #7db72f, #4e7d0e);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#7db72f', endColorstr='#4e7d0e');
|
||||
}
|
||||
.green:hover {
|
||||
background: #538018;
|
||||
background: -webkit-gradient(linear, left top, left bottom, from(#6b9d28), to(#436b0c));
|
||||
background: -moz-linear-gradient(top, #6b9d28, #436b0c);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#6b9d28', endColorstr='#436b0c');
|
||||
}
|
||||
.green:active {
|
||||
color: #a9c08c;
|
||||
background: -webkit-gradient(linear, left top, left bottom, from(#4e7d0e), to(#7db72f));
|
||||
background: -moz-linear-gradient(top, #4e7d0e, #7db72f);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#4e7d0e', endColorstr='#7db72f');
|
||||
}
|
||||
|
||||
/* pink */
|
||||
@@ -446,21 +385,12 @@ a.button {
|
||||
color: #feeef5;
|
||||
border: solid 1px #d2729e;
|
||||
background: #f895c2;
|
||||
background: -webkit-gradient(linear, left top, left bottom, from(#feb1d3), to(#f171ab));
|
||||
background: -moz-linear-gradient(top, #feb1d3, #f171ab);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#feb1d3', endColorstr='#f171ab');
|
||||
}
|
||||
.pink:hover {
|
||||
background: #d57ea5;
|
||||
background: -webkit-gradient(linear, left top, left bottom, from(#f4aacb), to(#e86ca4));
|
||||
background: -moz-linear-gradient(top, #f4aacb, #e86ca4);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f4aacb', endColorstr='#e86ca4');
|
||||
}
|
||||
.pink:active {
|
||||
color: #f3c3d9;
|
||||
background: -webkit-gradient(linear, left top, left bottom, from(#f171ab), to(#feb1d3));
|
||||
background: -moz-linear-gradient(top, #f171ab, #feb1d3);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f171ab', endColorstr='#feb1d3');
|
||||
}
|
||||
|
||||
|
||||
@@ -509,7 +439,7 @@ a.button {
|
||||
display: none;
|
||||
position: absolute;
|
||||
min-width: 160px;
|
||||
box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
|
||||
/* box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); */
|
||||
z-index: 999;
|
||||
}
|
||||
|
||||
|
||||
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 2.7 KiB |
|
After Width: | Height: | Size: 3.7 KiB |
|
After Width: | Height: | Size: 5.8 KiB |
|
After Width: | Height: | Size: 8.2 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 4.6 KiB |
|
After Width: | Height: | Size: 5.8 KiB |
|
After Width: | Height: | Size: 6.1 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 17 KiB |
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<browserconfig><msapplication><tile><square70x70logo src="/ms-icon-70x70.png"/><square150x150logo src="/ms-icon-150x150.png"/><square310x310logo src="/ms-icon-310x310.png"/><TileColor>#ffffff</TileColor></tile></msapplication></browserconfig>
|
||||
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 8.2 KiB |
|
Before Width: | Height: | Size: 98 KiB After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 244 KiB |
|
After Width: | Height: | Size: 541 KiB |
|
After Width: | Height: | Size: 518 KiB |
|
After Width: | Height: | Size: 429 KiB |
|
After Width: | Height: | Size: 459 KiB |
|
After Width: | Height: | Size: 535 KiB |
|
After Width: | Height: | Size: 616 KiB |
|
After Width: | Height: | Size: 885 KiB |
|
After Width: | Height: | Size: 190 KiB |
|
After Width: | Height: | Size: 754 KiB |
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"name": "App",
|
||||
"icons": [
|
||||
{
|
||||
"src": "\/android-icon-36x36.png",
|
||||
"sizes": "36x36",
|
||||
"type": "image\/png",
|
||||
"density": "0.75"
|
||||
},
|
||||
{
|
||||
"src": "\/android-icon-48x48.png",
|
||||
"sizes": "48x48",
|
||||
"type": "image\/png",
|
||||
"density": "1.0"
|
||||
},
|
||||
{
|
||||
"src": "\/android-icon-72x72.png",
|
||||
"sizes": "72x72",
|
||||
"type": "image\/png",
|
||||
"density": "1.5"
|
||||
},
|
||||
{
|
||||
"src": "\/android-icon-96x96.png",
|
||||
"sizes": "96x96",
|
||||
"type": "image\/png",
|
||||
"density": "2.0"
|
||||
},
|
||||
{
|
||||
"src": "\/android-icon-144x144.png",
|
||||
"sizes": "144x144",
|
||||
"type": "image\/png",
|
||||
"density": "3.0"
|
||||
},
|
||||
{
|
||||
"src": "\/android-icon-192x192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image\/png",
|
||||
"density": "4.0"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 45 KiB |
|
After Width: | Height: | Size: 5.5 KiB |
|
After Width: | Height: | Size: 525 KiB |