Add reactive to mileage entry page

This commit is contained in:
2012-12-15 20:38:51 -05:00
parent 260118ff90
commit 19705f8f38
26 changed files with 692 additions and 259 deletions
+28
View File
@@ -0,0 +1,28 @@
WITH summary AS (
SELECT
ROW_NUMBER() OVER (
PARTITION BY l.LogId
ORDER BY pl.EndOdometer DESC, pl.[Date] DESC, pl.Created DESC) AS rk,
l.LogId, pl.LogId as PreviousLogId
FROM
[Log] as l,
[Log] as pl
WHERE
pl.VehicleId = l.VehicleId
AND ((pl.EndOdometer < l.EndOdometer
AND pl.[Date] <= l.[Date])
OR (
pl.EndOdometer = l.EndOdometer
AND pl.[Date] < l.[Date]
)
OR (
pl.EndOdometer = l.EndOdometer
AND pl.[Date] = l.[Date]
AND pl.Created < l.Created
))
)
SELECT [Log].LogId, [Log].VehiclePreviousLogId, summary.PreviousLogId
FROM [Log]
INNER JOIN summary ON [Log].LogId = summary.LogId
WHERE summary.rk = 1
AND [Log].VehiclePreviousLogId != summary.PreviousLogId
Binary file not shown.
Binary file not shown.
+26
View File
@@ -40,6 +40,32 @@ footer {
display: none;
}
#log-title {
background: url(images/glyphicons_026_road.png) no-repeat left center;
display: inline;
height: 24px;
width: 28px;
padding-left: 36px;
}
#vehicle-title {
background: url(images/glyphicons_005_car.png) no-repeat left center;
display: inline;
height: 24px;
width: 28px;
padding-left: 36px;
}
.icon-car {
background-image: url("images/glyphicons_005_car_half.png");
background-position: 0 0;
}
.dropdown-menu > li > a:hover > .icon-car {
background-image: url("images/glyphicons_005_car_half_white.png");
background-position: 0 0;
}
@media print {
header,
footer,
+34 -9
View File
@@ -1,5 +1,4 @@
body {
padding-top: 49px;
body {
}
#content {
@@ -8,9 +7,9 @@
.brand
{
background: url(images/Header.png) no-repeat left center;
height: 28px;
width: 266px;
background: url(images/Header.png) no-repeat left center;
height: 28px;
width: 266px;
}
.navbar .brand {
@@ -22,10 +21,36 @@
line-height: 29px;
}
.form-horizontal .control-label {
width: 120px;
@media (max-width: 767px) {
.input-mini {
width: 60px !important;
}
.input-small {
width: 90px !important;
}
}
.form-horizontal .controls {
margin-left: 140px;
@media (max-width: 480px) {
fieldset legend {
margin-bottom: 0;
}
.form-horizontal .control-label {
float: left;
width: 95px;
text-align: right;
}
.form-horizontal .controls {
margin-left: 110px;
}
.form-horizontal .control-group {
margin-bottom: 10px;
}
.employeeName input {
width: 120px;
}
}
+5 -1
View File
@@ -1,5 +1,5 @@
/*!
* Bootstrap Responsive v2.2.1
* Bootstrap Responsive v2.2.2
*
* Copyright 2012 Twitter, Inc
* Licensed under the Apache License v2.0
@@ -8,6 +8,10 @@
* Designed and built with all the love in the world @twitter by @mdo and @fat.
*/
@-ms-viewport {
width: device-width;
}
.clearfix {
*zoom: 1;
}
File diff suppressed because one or more lines are too long
+272 -126
View File
@@ -1,5 +1,5 @@
/*!
* Bootstrap v2.2.1
* Bootstrap v2.2.2
*
* Copyright 2012 Twitter, Inc
* Licensed under the Apache License v2.0
@@ -109,6 +109,17 @@ input[type="submit"] {
-webkit-appearance: button;
}
label,
select,
button,
input[type="button"],
input[type="reset"],
input[type="submit"],
input[type="radio"],
input[type="checkbox"] {
cursor: pointer;
}
input[type="search"] {
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
@@ -126,6 +137,58 @@ textarea {
vertical-align: top;
}
@media print {
* {
color: #000 !important;
text-shadow: none !important;
background: transparent !important;
box-shadow: none !important;
}
a,
a:visited {
text-decoration: underline;
}
a[href]:after {
content: " (" attr(href) ")";
}
abbr[title]:after {
content: " (" attr(title) ")";
}
.ir a:after,
a[href^="javascript:"]:after,
a[href^="#"]:after {
content: "";
}
pre,
blockquote {
border: 1px solid #999;
page-break-inside: avoid;
}
thead {
display: table-header-group;
}
tr,
img {
page-break-inside: avoid;
}
img {
max-width: 100% !important;
}
@page {
margin: 0.5cm;
}
p,
h2,
h3 {
orphans: 3;
widows: 3;
}
h2,
h3 {
page-break-after: avoid;
}
}
.clearfix {
*zoom: 1;
}
@@ -615,6 +678,10 @@ cite {
color: #999999;
}
a.muted:hover {
color: #808080;
}
.text-warning {
color: #c09853;
}
@@ -747,6 +814,19 @@ ol.unstyled {
list-style: none;
}
ul.inline,
ol.inline {
margin-left: 0;
list-style: none;
}
ul.inline > li,
ol.inline > li {
display: inline-block;
padding-right: 5px;
padding-left: 5px;
}
dl {
margin-bottom: 20px;
}
@@ -883,6 +963,7 @@ pre {
code {
padding: 2px 4px;
color: #d14;
white-space: nowrap;
background-color: #f7f7f9;
border: 1px solid #e1e1e8;
}
@@ -912,6 +993,8 @@ pre.prettyprint {
pre code {
padding: 0;
color: inherit;
white-space: pre;
white-space: pre-wrap;
background-color: transparent;
border: 0;
}
@@ -1069,7 +1152,6 @@ input[type="checkbox"] {
margin-top: 1px \9;
*margin-top: 0;
line-height: normal;
cursor: pointer;
}
input[type="file"],
@@ -1352,7 +1434,7 @@ input[type="checkbox"][readonly] {
background-color: transparent;
}
.control-group.warning > label,
.control-group.warning .control-label,
.control-group.warning .help-block,
.control-group.warning .help-inline {
color: #c09853;
@@ -1391,7 +1473,7 @@ input[type="checkbox"][readonly] {
border-color: #c09853;
}
.control-group.error > label,
.control-group.error .control-label,
.control-group.error .help-block,
.control-group.error .help-inline {
color: #b94a48;
@@ -1430,7 +1512,7 @@ input[type="checkbox"][readonly] {
border-color: #b94a48;
}
.control-group.success > label,
.control-group.success .control-label,
.control-group.success .help-block,
.control-group.success .help-inline {
color: #468847;
@@ -1469,7 +1551,7 @@ input[type="checkbox"][readonly] {
border-color: #468847;
}
.control-group.info > label,
.control-group.info .control-label,
.control-group.info .help-block,
.control-group.info .help-inline {
color: #3a87ad;
@@ -1508,16 +1590,16 @@ input[type="checkbox"][readonly] {
border-color: #3a87ad;
}
input:focus:required:invalid,
textarea:focus:required:invalid,
select:focus:required:invalid {
input:focus:invalid,
textarea:focus:invalid,
select:focus:invalid {
color: #b94a48;
border-color: #ee5f5b;
}
input:focus:required:invalid:focus,
textarea:focus:required:invalid:focus,
select:focus:required:invalid:focus {
input:focus:invalid:focus,
textarea:focus:invalid:focus,
select:focus:invalid:focus {
border-color: #e9322d;
-webkit-box-shadow: 0 0 6px #f8b9b7;
-moz-box-shadow: 0 0 6px #f8b9b7;
@@ -1623,7 +1705,9 @@ select:focus:required:invalid:focus {
.input-append .add-on,
.input-prepend .add-on,
.input-append .btn,
.input-prepend .btn {
.input-prepend .btn,
.input-append .btn-group > .dropdown-toggle,
.input-prepend .btn-group > .dropdown-toggle {
vertical-align: top;
-webkit-border-radius: 0;
-moz-border-radius: 0;
@@ -1656,9 +1740,9 @@ select:focus:required:invalid:focus {
border-radius: 4px 0 0 4px;
}
.input-append input + .btn-group .btn,
.input-append select + .btn-group .btn,
.input-append .uneditable-input + .btn-group .btn {
.input-append input + .btn-group .btn:last-child,
.input-append select + .btn-group .btn:last-child,
.input-append .uneditable-input + .btn-group .btn:last-child {
-webkit-border-radius: 0 4px 4px 0;
-moz-border-radius: 0 4px 4px 0;
border-radius: 0 4px 4px 0;
@@ -1671,7 +1755,8 @@ select:focus:required:invalid:focus {
}
.input-append .add-on:last-child,
.input-append .btn:last-child {
.input-append .btn:last-child,
.input-append .btn-group:last-child > .dropdown-toggle {
-webkit-border-radius: 0 4px 4px 0;
-moz-border-radius: 0 4px 4px 0;
border-radius: 0 4px 4px 0;
@@ -1874,7 +1959,10 @@ legend + .control-group {
.form-horizontal input + .help-block,
.form-horizontal select + .help-block,
.form-horizontal textarea + .help-block {
.form-horizontal textarea + .help-block,
.form-horizontal .uneditable-input + .help-block,
.form-horizontal .input-prepend + .help-block,
.form-horizontal .input-append + .help-block {
margin-top: 10px;
}
@@ -1924,6 +2012,10 @@ table {
border-top: 2px solid #dddddd;
}
.table .table {
background-color: #ffffff;
}
.table-condensed th,
.table-condensed td {
padding: 4px 5px;
@@ -1956,39 +2048,48 @@ table {
border-top: 0;
}
.table-bordered thead:first-child tr:first-child th:first-child,
.table-bordered tbody:first-child tr:first-child td:first-child {
.table-bordered thead:first-child tr:first-child > th:first-child,
.table-bordered tbody:first-child tr:first-child > td:first-child {
-webkit-border-top-left-radius: 4px;
border-top-left-radius: 4px;
-moz-border-radius-topleft: 4px;
}
.table-bordered thead:first-child tr:first-child th:last-child,
.table-bordered tbody:first-child tr:first-child td:last-child {
.table-bordered thead:first-child tr:first-child > th:last-child,
.table-bordered tbody:first-child tr:first-child > td:last-child {
-webkit-border-top-right-radius: 4px;
border-top-right-radius: 4px;
-moz-border-radius-topright: 4px;
}
.table-bordered thead:last-child tr:last-child th:first-child,
.table-bordered tbody:last-child tr:last-child td:first-child,
.table-bordered tfoot:last-child tr:last-child td:first-child {
-webkit-border-radius: 0 0 0 4px;
-moz-border-radius: 0 0 0 4px;
border-radius: 0 0 0 4px;
.table-bordered thead:last-child tr:last-child > th:first-child,
.table-bordered tbody:last-child tr:last-child > td:first-child,
.table-bordered tfoot:last-child tr:last-child > td:first-child {
-webkit-border-bottom-left-radius: 4px;
border-bottom-left-radius: 4px;
-moz-border-radius-bottomleft: 4px;
}
.table-bordered thead:last-child tr:last-child th:last-child,
.table-bordered tbody:last-child tr:last-child td:last-child,
.table-bordered tfoot:last-child tr:last-child td:last-child {
.table-bordered thead:last-child tr:last-child > th:last-child,
.table-bordered tbody:last-child tr:last-child > td:last-child,
.table-bordered tfoot:last-child tr:last-child > td:last-child {
-webkit-border-bottom-right-radius: 4px;
border-bottom-right-radius: 4px;
-moz-border-radius-bottomright: 4px;
}
.table-bordered tfoot + tbody:last-child tr:last-child td:first-child {
-webkit-border-bottom-left-radius: 0;
border-bottom-left-radius: 0;
-moz-border-radius-bottomleft: 0;
}
.table-bordered tfoot + tbody:last-child tr:last-child td:last-child {
-webkit-border-bottom-right-radius: 0;
border-bottom-right-radius: 0;
-moz-border-radius-bottomright: 0;
}
.table-bordered caption + thead tr:first-child th:first-child,
.table-bordered caption + tbody tr:first-child td:first-child,
.table-bordered colgroup + thead tr:first-child th:first-child,
@@ -2007,8 +2108,8 @@ table {
-moz-border-radius-topright: 4px;
}
.table-striped tbody tr:nth-child(odd) td,
.table-striped tbody tr:nth-child(odd) th {
.table-striped tbody > tr:nth-child(odd) > td,
.table-striped tbody > tr:nth-child(odd) > th {
background-color: #f9f9f9;
}
@@ -2835,7 +2936,7 @@ table th[class*="span"],
.dropdown-menu .active > a,
.dropdown-menu .active > a:hover {
color: #333333;
color: #ffffff;
text-decoration: none;
background-color: #0081c2;
background-image: -moz-linear-gradient(top, #0088cc, #0077b3);
@@ -2858,6 +2959,7 @@ table th[class*="span"],
cursor: default;
background-color: transparent;
background-image: none;
filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
}
.open {
@@ -2951,6 +3053,7 @@ table th[class*="span"],
}
.typeahead {
z-index: 1051;
margin-top: 2px;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
@@ -3051,7 +3154,6 @@ button.close {
*margin-left: .3em;
font-size: 14px;
line-height: 20px;
*line-height: 20px;
color: #333333;
text-align: center;
text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
@@ -3103,10 +3205,6 @@ button.close {
.btn:hover {
color: #333333;
text-decoration: none;
background-color: #e6e6e6;
*background-color: #d9d9d9;
/* Buttons in IE7 don't get borders, so darken on hover */
background-position: 0 -15px;
-webkit-transition: background-position 0.1s linear;
-moz-transition: background-position 0.1s linear;
@@ -3122,8 +3220,6 @@ button.close {
.btn.active,
.btn:active {
background-color: #e6e6e6;
background-color: #d9d9d9 \9;
background-image: none;
outline: 0;
-webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
@@ -3134,7 +3230,6 @@ button.close {
.btn.disabled,
.btn[disabled] {
cursor: default;
background-color: #e6e6e6;
background-image: none;
opacity: 0.65;
filter: alpha(opacity=65);
@@ -3153,7 +3248,7 @@ button.close {
.btn-large [class^="icon-"],
.btn-large [class*=" icon-"] {
margin-top: 2px;
margin-top: 4px;
}
.btn-small {
@@ -3169,8 +3264,13 @@ button.close {
margin-top: 0;
}
.btn-mini [class^="icon-"],
.btn-mini [class*=" icon-"] {
margin-top: -1px;
}
.btn-mini {
padding: 1px 6px;
padding: 0 6px;
font-size: 10.5px;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
@@ -3488,9 +3588,9 @@ input[type="submit"].btn.btn-mini {
font-size: 0;
}
.btn-toolbar .btn + .btn,
.btn-toolbar .btn-group + .btn,
.btn-toolbar .btn + .btn-group {
.btn-toolbar > .btn + .btn,
.btn-toolbar > .btn-group + .btn,
.btn-toolbar > .btn + .btn-group {
margin-left: 5px;
}
@@ -3506,20 +3606,21 @@ input[type="submit"].btn.btn-mini {
}
.btn-group > .btn,
.btn-group > .dropdown-menu {
.btn-group > .dropdown-menu,
.btn-group > .popover {
font-size: 14px;
}
.btn-group > .btn-mini {
font-size: 11px;
font-size: 10.5px;
}
.btn-group > .btn-small {
font-size: 12px;
font-size: 11.9px;
}
.btn-group > .btn-large {
font-size: 16px;
font-size: 17.5px;
}
.btn-group > .btn:first-child {
@@ -3677,39 +3778,39 @@ input[type="submit"].btn.btn-mini {
*zoom: 1;
}
.btn-group-vertical .btn {
.btn-group-vertical > .btn {
display: block;
float: none;
width: 100%;
max-width: 100%;
-webkit-border-radius: 0;
-moz-border-radius: 0;
border-radius: 0;
}
.btn-group-vertical .btn + .btn {
.btn-group-vertical > .btn + .btn {
margin-top: -1px;
margin-left: 0;
}
.btn-group-vertical .btn:first-child {
.btn-group-vertical > .btn:first-child {
-webkit-border-radius: 4px 4px 0 0;
-moz-border-radius: 4px 4px 0 0;
border-radius: 4px 4px 0 0;
}
.btn-group-vertical .btn:last-child {
.btn-group-vertical > .btn:last-child {
-webkit-border-radius: 0 0 4px 4px;
-moz-border-radius: 0 0 4px 4px;
border-radius: 0 0 4px 4px;
}
.btn-group-vertical .btn-large:first-child {
.btn-group-vertical > .btn-large:first-child {
-webkit-border-radius: 6px 6px 0 0;
-moz-border-radius: 6px 6px 0 0;
border-radius: 6px 6px 0 0;
}
.btn-group-vertical .btn-large:last-child {
.btn-group-vertical > .btn-large:last-child {
-webkit-border-radius: 0 0 6px 6px;
-moz-border-radius: 0 0 6px 6px;
border-radius: 0 0 6px 6px;
@@ -3718,7 +3819,6 @@ input[type="submit"].btn.btn-mini {
.alert {
padding: 8px 35px 8px 14px;
margin-bottom: 20px;
color: #c09853;
text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
background-color: #fcf8e3;
border: 1px solid #fbeed5;
@@ -3727,6 +3827,11 @@ input[type="submit"].btn.btn-mini {
border-radius: 4px;
}
.alert,
.alert h4 {
color: #c09853;
}
.alert h4 {
margin: 0;
}
@@ -3744,6 +3849,10 @@ input[type="submit"].btn.btn-mini {
border-color: #d6e9c6;
}
.alert-success h4 {
color: #468847;
}
.alert-danger,
.alert-error {
color: #b94a48;
@@ -3751,12 +3860,21 @@ input[type="submit"].btn.btn-mini {
border-color: #eed3d7;
}
.alert-danger h4,
.alert-error h4 {
color: #b94a48;
}
.alert-info {
color: #3a87ad;
background-color: #d9edf7;
border-color: #bce8f1;
}
.alert-info h4 {
color: #3a87ad;
}
.alert-block {
padding-top: 14px;
padding-bottom: 14px;
@@ -3786,6 +3904,10 @@ input[type="submit"].btn.btn-mini {
background-color: #eeeeee;
}
.nav > li > a > img {
max-width: none;
}
.nav > .pull-right {
float: right;
}
@@ -4170,7 +4292,6 @@ input[type="submit"].btn.btn-mini {
*z-index: 2;
margin-bottom: 20px;
overflow: visible;
color: #777777;
}
.navbar-inner {
@@ -4233,6 +4354,7 @@ input[type="submit"].btn.btn-mini {
.navbar-text {
margin-bottom: 0;
line-height: 40px;
color: #777777;
}
.navbar-link {
@@ -4299,7 +4421,7 @@ input[type="submit"].btn.btn-mini {
.navbar-form .input-append,
.navbar-form .input-prepend {
margin-top: 6px;
margin-top: 5px;
white-space: nowrap;
}
@@ -4534,6 +4656,11 @@ input[type="submit"].btn.btn-mini {
border-bottom: 0;
}
.navbar .nav li.dropdown > a:hover .caret {
border-top-color: #555555;
border-bottom-color: #555555;
}
.navbar .nav li.dropdown.open > .dropdown-toggle,
.navbar .nav li.dropdown.active > .dropdown-toggle,
.navbar .nav li.dropdown.open.active > .dropdown-toggle {
@@ -4582,10 +4709,6 @@ input[type="submit"].btn.btn-mini {
border-radius: 6px 0 6px 6px;
}
.navbar-inverse {
color: #999999;
}
.navbar-inverse .navbar-inner {
background-color: #1b1b1b;
background-image: -moz-linear-gradient(top, #222222, #111111);
@@ -4609,6 +4732,14 @@ input[type="submit"].btn.btn-mini {
color: #ffffff;
}
.navbar-inverse .brand {
color: #999999;
}
.navbar-inverse .navbar-text {
color: #999999;
}
.navbar-inverse .nav > li > a:focus,
.navbar-inverse .nav > li > a:hover {
color: #ffffff;
@@ -4642,6 +4773,11 @@ input[type="submit"].btn.btn-mini {
background-color: #111111;
}
.navbar-inverse .nav li.dropdown > a:hover .caret {
border-top-color: #ffffff;
border-bottom-color: #ffffff;
}
.navbar-inverse .nav li.dropdown > .dropdown-toggle .caret {
border-top-color: #999999;
border-bottom-color: #999999;
@@ -4734,19 +4870,19 @@ input[type="submit"].btn.btn-mini {
border-radius: 4px;
}
.breadcrumb li {
.breadcrumb > li {
display: inline-block;
*display: inline;
text-shadow: 0 1px 0 #ffffff;
*zoom: 1;
}
.breadcrumb .divider {
.breadcrumb > li > .divider {
padding: 0 5px;
color: #ccc;
}
.breadcrumb .active {
.breadcrumb > .active {
color: #999999;
}
@@ -4890,7 +5026,7 @@ input[type="submit"].btn.btn-mini {
.pagination-mini ul > li > a,
.pagination-mini ul > li > span {
padding: 1px 6px;
padding: 0 6px;
font-size: 10.5px;
}
@@ -4972,11 +5108,11 @@ input[type="submit"].btn.btn-mini {
.modal {
position: fixed;
top: 50%;
top: 10%;
left: 50%;
z-index: 1050;
width: 560px;
margin: -250px 0 0 -280px;
margin-left: -280px;
background-color: #ffffff;
border: 1px solid #999;
border: 1px solid rgba(0, 0, 0, 0.3);
@@ -5002,7 +5138,7 @@ input[type="submit"].btn.btn-mini {
}
.modal.fade.in {
top: 50%;
top: 10%;
}
.modal-header {
@@ -5020,6 +5156,7 @@ input[type="submit"].btn.btn-mini {
}
.modal-body {
position: relative;
max-height: 400px;
padding: 15px;
overflow-y: auto;
@@ -5160,6 +5297,8 @@ input[type="submit"].btn.btn-mini {
display: none;
width: 236px;
padding: 1px;
text-align: left;
white-space: normal;
background-color: #ffffff;
border: 1px solid #ccc;
border: 1px solid rgba(0, 0, 0, 0.2);
@@ -5207,85 +5346,87 @@ input[type="submit"].btn.btn-mini {
padding: 9px 14px;
}
.popover-content p,
.popover-content ul,
.popover-content ol {
margin-bottom: 0;
}
.popover .arrow,
.popover .arrow:after {
position: absolute;
display: inline-block;
display: block;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
}
.popover .arrow {
border-width: 11px;
}
.popover .arrow:after {
z-index: -1;
border-width: 10px;
content: "";
}
.popover.top .arrow {
bottom: -10px;
bottom: -11px;
left: 50%;
margin-left: -10px;
border-top-color: #ffffff;
border-width: 10px 10px 0;
margin-left: -11px;
border-top-color: #999;
border-top-color: rgba(0, 0, 0, 0.25);
border-bottom-width: 0;
}
.popover.top .arrow:after {
bottom: -1px;
left: -11px;
border-top-color: rgba(0, 0, 0, 0.25);
border-width: 11px 11px 0;
bottom: 1px;
margin-left: -10px;
border-top-color: #ffffff;
border-bottom-width: 0;
}
.popover.right .arrow {
top: 50%;
left: -10px;
margin-top: -10px;
border-right-color: #ffffff;
border-width: 10px 10px 10px 0;
left: -11px;
margin-top: -11px;
border-right-color: #999;
border-right-color: rgba(0, 0, 0, 0.25);
border-left-width: 0;
}
.popover.right .arrow:after {
bottom: -11px;
left: -1px;
border-right-color: rgba(0, 0, 0, 0.25);
border-width: 11px 11px 11px 0;
bottom: -10px;
left: 1px;
border-right-color: #ffffff;
border-left-width: 0;
}
.popover.bottom .arrow {
top: -10px;
top: -11px;
left: 50%;
margin-left: -10px;
border-bottom-color: #ffffff;
border-width: 0 10px 10px;
margin-left: -11px;
border-bottom-color: #999;
border-bottom-color: rgba(0, 0, 0, 0.25);
border-top-width: 0;
}
.popover.bottom .arrow:after {
top: -1px;
left: -11px;
border-bottom-color: rgba(0, 0, 0, 0.25);
border-width: 0 11px 11px;
top: 1px;
margin-left: -10px;
border-bottom-color: #ffffff;
border-top-width: 0;
}
.popover.left .arrow {
top: 50%;
right: -10px;
margin-top: -10px;
border-left-color: #ffffff;
border-width: 10px 0 10px 10px;
right: -11px;
margin-top: -11px;
border-left-color: #999;
border-left-color: rgba(0, 0, 0, 0.25);
border-right-width: 0;
}
.popover.left .arrow:after {
right: -1px;
bottom: -11px;
border-left-color: rgba(0, 0, 0, 0.25);
border-width: 11px 0 11px 11px;
right: 1px;
bottom: -10px;
border-left-color: #ffffff;
border-right-width: 0;
}
.thumbnails {
@@ -5416,6 +5557,11 @@ a.thumbnail:hover {
border-radius: 9px;
}
.label:empty,
.badge:empty {
display: none;
}
a.label:hover,
a.badge:hover {
color: #ffffff;
@@ -5734,7 +5880,7 @@ a.badge:hover {
overflow: hidden;
}
.carousel .item {
.carousel-inner > .item {
position: relative;
display: none;
-webkit-transition: 0.6s ease-in-out left;
@@ -5743,46 +5889,46 @@ a.badge:hover {
transition: 0.6s ease-in-out left;
}
.carousel .item > img {
.carousel-inner > .item > img {
display: block;
line-height: 1;
}
.carousel .active,
.carousel .next,
.carousel .prev {
.carousel-inner > .active,
.carousel-inner > .next,
.carousel-inner > .prev {
display: block;
}
.carousel .active {
.carousel-inner > .active {
left: 0;
}
.carousel .next,
.carousel .prev {
.carousel-inner > .next,
.carousel-inner > .prev {
position: absolute;
top: 0;
width: 100%;
}
.carousel .next {
.carousel-inner > .next {
left: 100%;
}
.carousel .prev {
.carousel-inner > .prev {
left: -100%;
}
.carousel .next.left,
.carousel .prev.right {
.carousel-inner > .next.left,
.carousel-inner > .prev.right {
left: 0;
}
.carousel .active.left {
.carousel-inner > .active.left {
left: -100%;
}
.carousel .active.right {
.carousel-inner > .active.right {
left: 100%;
}
+2 -2
View File
File diff suppressed because one or more lines are too long
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

+4 -1
View File
@@ -1,4 +1,4 @@
using System;
using System;
using System.Linq;
using System.Web.Mvc;
using MileageTraker.Web.DAL;
@@ -185,6 +185,9 @@ namespace MileageTraker.Web.Controllers
public ActionResult DeleteConfirmed(int id)
{
_dataService.DeleteLog(id);
if (Session["LogPage"] != null)
return Redirect((string) Session["LogPage"]);
return RedirectToAction("Index");
}
+4 -4
View File
@@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Web.Mvc;
@@ -67,13 +67,13 @@ namespace MileageTraker.Web.Models
/// <summary>
/// url route that was used to create this instance, ie 'CreateLog\Confirm' or 'Logs\Create'
/// </summary>
[HiddenInput]
[HiddenInput(DisplayValue = false)]
public string Source { get; set; }
[HiddenInput]
[HiddenInput(DisplayValue = false)]
public string UserHostAddress { get; set; }
[HiddenInput]
[HiddenInput(DisplayValue = false)]
public string UserAgent { get; set; }
[HiddenInput(DisplayValue = false)]
+102 -35
View File
@@ -1,4 +1,4 @@
$(function () {
$(function () {
$("tbody > tr:odd").addClass("odd");
$("input:submit, .ui-button").button();
$("input#Date").datepicker({ maxDate: '+0d' });
@@ -61,7 +61,7 @@
if ($("input#EmployeeName").length > 0) {
$("input#EmployeeName")
.after('<span id="icon-employee-history" class="add-on"><i class="icon-search" /></span>')
.after('<span id="icon-employee-history" class="add-on"><i class="icon-search" /></span>')
.add('#icon-employee-history')
.wrapAll('<div class="input-append"></div>');
@@ -100,7 +100,7 @@
events: {
show: function(event, api) {
$.ajax({
url: "CreateLog/RecentLogs",
url: "/CreateLog/RecentLogs",
data: {
employeeName: $("input#EmployeeName").val()
},
@@ -112,10 +112,39 @@
}
});
}
});
$(function() {
// Add active class to nav
var idNavActiveRegex = { 'log-nav': /\/log/i, 'vehicle-nav': /\/vehicle/i };
$.each(idNavActiveRegex, function (id, regex) {
if (regex.test(document.URL)) {
$("#" + id).addClass('active');
}
});
});
$(function () {
var textToIcon = {
'Edit': 'edit',
'Filter': 'filter',
'Details' : 'zoom-in',
'Delete': 'trash',
'Add': 'plus',
'Export': 'download',
'Employee Mileage': 'user',
'Vehicle Mileage': 'car'
};
$.each(textToIcon, function(text, icon) {
$("a:contains('" + text + "')")
.prepend('<i class="icon-' + icon + '" /> ');
});
});
$(function() {
// Convert MVC3 WebGrid paging to Bootstrap
var $paging = $('table.table tfoot tr td');
var $currentPage =
$paging.contents()
.filter(function () { return this.nodeType == 3 && this.length != 1; });
@@ -126,42 +155,80 @@
$otherPages.wrap('<li>');
$('li', $paging).wrapAll('<div class="pagination"><ul>');
}
// Add active class to nav
var h = { 'log-nav': /\/log/i, 'vehicle-nav': /\/vehicle/i };
$.each(h, function(id, regex) {
if (regex.test(document.URL)) {
$("#" + id).addClass('active');
}
});
// add qtip
$("a.qtip-modal").each(function () { bindQtipModal($(this)); });
});
function bindQtipModal(element) {
$(function() {
// add qtip
$("a.qtip-modal").each(function () { bindQtipModal($(this)); });
function bindQtipModal(element) {
element.click(function () { return false; });
element.click(function() { return false; });
element.append('&nbsp;<span class="muted">&#9652;</span>');
element.append('&nbsp;<span class="muted">&#9652;</span>');
element.qtip({
content: {
ajax: {
url: element.attr('href')
element.qtip({
content: {
ajax: {
url: element.attr('href')
},
text: "<p class=\"loading\">Recent Logs...</p>"
},
text: "<p class=\"loading\">Recent Logs...</p>"
},
hide: {
fixed: true,
delay: 500
},
style: {
classes: 'qtip-light qtip-shadow',
width: 300
},
position: {
viewport: $(window)
hide: {
fixed: true,
delay: 500
},
style: {
classes: 'qtip-light qtip-shadow',
width: 300
},
position: {
viewport: $(window)
}
});
}
});
/*
* Form Validation
* This script will set Bootstrap error classes when form.submit is called.
* The errors are produced by the MVC unobtrusive validation.
*/
$(function () {
$('form').submit(function () {
$(this).find('div.control-group').each(function () {
if ($(this).find('span.field-validation-error').length == 0) {
$(this).removeClass('error');
}
});
if (!$(this).valid()) {
$(this).find('div.control-group').each(function () {
if ($(this).find('span.field-validation-error').length > 0) {
$(this).addClass('error');
}
});
}
});
}
$('form').each(function () {
$(this).find('div.control-group').each(function () {
if ($(this).find('span.field-validation-error').length > 0) {
$(this).addClass('error');
}
});
});
//Update that validator
if ($.validator === undefined)
return;
$.validator.setDefaults({
highlight: function (element) {
$(element).closest(".control-group").addClass("error");
},
unhighlight: function (element) {
$(element).closest(".control-group").removeClass("error");
}
});
});
/* End Form Validation */
+165 -31
View File
@@ -1,5 +1,5 @@
/* ===================================================
* bootstrap-transition.js v2.2.1
* bootstrap-transition.js v2.2.2
* http://twitter.github.com/bootstrap/javascript.html#transitions
* ===================================================
* Copyright 2012 Twitter, Inc.
@@ -58,7 +58,7 @@
})
}(window.jQuery);/* ==========================================================
* bootstrap-alert.js v2.2.1
* bootstrap-alert.js v2.2.2
* http://twitter.github.com/bootstrap/javascript.html#alerts
* ==========================================================
* Copyright 2012 Twitter, Inc.
@@ -127,6 +127,8 @@
/* ALERT PLUGIN DEFINITION
* ======================= */
var old = $.fn.alert
$.fn.alert = function (option) {
return this.each(function () {
var $this = $(this)
@@ -139,13 +141,22 @@
$.fn.alert.Constructor = Alert
/* ALERT NO CONFLICT
* ================= */
$.fn.alert.noConflict = function () {
$.fn.alert = old
return this
}
/* ALERT DATA-API
* ============== */
$(document).on('click.alert.data-api', dismiss, Alert.prototype.close)
}(window.jQuery);/* ============================================================
* bootstrap-button.js v2.2.1
* bootstrap-button.js v2.2.2
* http://twitter.github.com/bootstrap/javascript.html#buttons
* ============================================================
* Copyright 2012 Twitter, Inc.
@@ -210,6 +221,8 @@
/* BUTTON PLUGIN DEFINITION
* ======================== */
var old = $.fn.button
$.fn.button = function (option) {
return this.each(function () {
var $this = $(this)
@@ -228,6 +241,15 @@
$.fn.button.Constructor = Button
/* BUTTON NO CONFLICT
* ================== */
$.fn.button.noConflict = function () {
$.fn.button = old
return this
}
/* BUTTON DATA-API
* =============== */
@@ -238,7 +260,7 @@
})
}(window.jQuery);/* ==========================================================
* bootstrap-carousel.js v2.2.1
* bootstrap-carousel.js v2.2.2
* http://twitter.github.com/bootstrap/javascript.html#carousel
* ==========================================================
* Copyright 2012 Twitter, Inc.
@@ -268,7 +290,6 @@
var Carousel = function (element, options) {
this.$element = $(element)
this.options = options
this.options.slide && this.slide(this.options.slide)
this.options.pause == 'hover' && this.$element
.on('mouseenter', $.proxy(this.pause, this))
.on('mouseleave', $.proxy(this.cycle, this))
@@ -380,6 +401,8 @@
/* CAROUSEL PLUGIN DEFINITION
* ========================== */
var old = $.fn.carousel
$.fn.carousel = function (option) {
return this.each(function () {
var $this = $(this)
@@ -401,6 +424,14 @@
$.fn.carousel.Constructor = Carousel
/* CAROUSEL NO CONFLICT
* ==================== */
$.fn.carousel.noConflict = function () {
$.fn.carousel = old
return this
}
/* CAROUSEL DATA-API
* ================= */
@@ -413,7 +444,7 @@
})
}(window.jQuery);/* =============================================================
* bootstrap-collapse.js v2.2.1
* bootstrap-collapse.js v2.2.2
* http://twitter.github.com/bootstrap/javascript.html#collapse
* =============================================================
* Copyright 2012 Twitter, Inc.
@@ -534,8 +565,10 @@
}
/* COLLAPSIBLE PLUGIN DEFINITION
* ============================== */
/* COLLAPSE PLUGIN DEFINITION
* ========================== */
var old = $.fn.collapse
$.fn.collapse = function (option) {
return this.each(function () {
@@ -554,9 +587,18 @@
$.fn.collapse.Constructor = Collapse
/* COLLAPSIBLE DATA-API
/* COLLAPSE NO CONFLICT
* ==================== */
$.fn.collapse.noConflict = function () {
$.fn.collapse = old
return this
}
/* COLLAPSE DATA-API
* ================= */
$(document).on('click.collapse.data-api', '[data-toggle=collapse]', function (e) {
var $this = $(this), href
, target = $this.attr('data-target')
@@ -568,7 +610,7 @@
})
}(window.jQuery);/* ============================================================
* bootstrap-dropdown.js v2.2.1
* bootstrap-dropdown.js v2.2.2
* http://twitter.github.com/bootstrap/javascript.html#dropdowns
* ============================================================
* Copyright 2012 Twitter, Inc.
@@ -622,9 +664,10 @@
if (!isActive) {
$parent.toggleClass('open')
$this.focus()
}
$this.focus()
return false
}
@@ -651,7 +694,7 @@
if (!isActive || (isActive && e.keyCode == 27)) return $this.click()
$items = $('[role=menu] li:not(.divider) a', $parent)
$items = $('[role=menu] li:not(.divider):visible a', $parent)
if (!$items.length) return
@@ -693,6 +736,8 @@
/* DROPDOWN PLUGIN DEFINITION
* ========================== */
var old = $.fn.dropdown
$.fn.dropdown = function (option) {
return this.each(function () {
var $this = $(this)
@@ -705,17 +750,27 @@
$.fn.dropdown.Constructor = Dropdown
/* DROPDOWN NO CONFLICT
* ==================== */
$.fn.dropdown.noConflict = function () {
$.fn.dropdown = old
return this
}
/* APPLY TO STANDARD DROPDOWN ELEMENTS
* =================================== */
$(document)
.on('click.dropdown.data-api touchstart.dropdown.data-api', clearMenus)
.on('click.dropdown touchstart.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
.on('touchstart.dropdown.data-api', '.dropdown-menu', function (e) { e.stopPropagation() })
.on('click.dropdown.data-api touchstart.dropdown.data-api' , toggle, Dropdown.prototype.toggle)
.on('keydown.dropdown.data-api touchstart.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown)
}(window.jQuery);/* =========================================================
* bootstrap-modal.js v2.2.1
* bootstrap-modal.js v2.2.2
* http://twitter.github.com/bootstrap/javascript.html#modals
* =========================================================
* Copyright 2012 Twitter, Inc.
@@ -909,6 +964,8 @@
/* MODAL PLUGIN DEFINITION
* ======================= */
var old = $.fn.modal
$.fn.modal = function (option) {
return this.each(function () {
var $this = $(this)
@@ -929,6 +986,15 @@
$.fn.modal.Constructor = Modal
/* MODAL NO CONFLICT
* ================= */
$.fn.modal.noConflict = function () {
$.fn.modal = old
return this
}
/* MODAL DATA-API
* ============== */
@@ -949,7 +1015,7 @@
}(window.jQuery);
/* ===========================================================
* bootstrap-tooltip.js v2.2.1
* bootstrap-tooltip.js v2.2.2
* http://twitter.github.com/bootstrap/javascript.html#tooltips
* Inspired by the original jQuery.tipsy by Jason Frame
* ===========================================================
@@ -1200,6 +1266,8 @@
/* TOOLTIP PLUGIN DEFINITION
* ========================= */
var old = $.fn.tooltip
$.fn.tooltip = function ( option ) {
return this.each(function () {
var $this = $(this)
@@ -1223,8 +1291,17 @@
, html: false
}
/* TOOLTIP NO CONFLICT
* =================== */
$.fn.tooltip.noConflict = function () {
$.fn.tooltip = old
return this
}
}(window.jQuery);/* ===========================================================
* bootstrap-popover.js v2.2.1
* bootstrap-popover.js v2.2.2
* http://twitter.github.com/bootstrap/javascript.html#popovers
* ===========================================================
* Copyright 2012 Twitter, Inc.
@@ -1269,7 +1346,7 @@
, content = this.getContent()
$tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
$tip.find('.popover-content > *')[this.options.html ? 'html' : 'text'](content)
$tip.find('.popover-content')[this.options.html ? 'html' : 'text'](content)
$tip.removeClass('fade top bottom left right in')
}
@@ -1306,6 +1383,8 @@
/* POPOVER PLUGIN DEFINITION
* ======================= */
var old = $.fn.popover
$.fn.popover = function (option) {
return this.each(function () {
var $this = $(this)
@@ -1322,11 +1401,20 @@
placement: 'right'
, trigger: 'click'
, content: ''
, template: '<div class="popover"><div class="arrow"></div><div class="popover-inner"><h3 class="popover-title"></h3><div class="popover-content"><p></p></div></div></div>'
, template: '<div class="popover"><div class="arrow"></div><div class="popover-inner"><h3 class="popover-title"></h3><div class="popover-content"></div></div></div>'
})
/* POPOVER NO CONFLICT
* =================== */
$.fn.popover.noConflict = function () {
$.fn.popover = old
return this
}
}(window.jQuery);/* =============================================================
* bootstrap-scrollspy.js v2.2.1
* bootstrap-scrollspy.js v2.2.2
* http://twitter.github.com/bootstrap/javascript.html#scrollspy
* =============================================================
* Copyright 2012 Twitter, Inc.
@@ -1386,7 +1474,7 @@
, $href = /^#\w/.test(href) && $(href)
return ( $href
&& $href.length
&& [[ $href.position().top, href ]] ) || null
&& [[ $href.position().top + self.$scrollElement.scrollTop(), href ]] ) || null
})
.sort(function (a, b) { return a[0] - b[0] })
.each(function () {
@@ -1448,6 +1536,8 @@
/* SCROLLSPY PLUGIN DEFINITION
* =========================== */
var old = $.fn.scrollspy
$.fn.scrollspy = function (option) {
return this.each(function () {
var $this = $(this)
@@ -1465,6 +1555,15 @@
}
/* SCROLLSPY NO CONFLICT
* ===================== */
$.fn.scrollspy.noConflict = function () {
$.fn.scrollspy = old
return this
}
/* SCROLLSPY DATA-API
* ================== */
@@ -1476,7 +1575,7 @@
})
}(window.jQuery);/* ========================================================
* bootstrap-tab.js v2.2.1
* bootstrap-tab.js v2.2.2
* http://twitter.github.com/bootstrap/javascript.html#tabs
* ========================================================
* Copyright 2012 Twitter, Inc.
@@ -1587,6 +1686,8 @@
/* TAB PLUGIN DEFINITION
* ===================== */
var old = $.fn.tab
$.fn.tab = function ( option ) {
return this.each(function () {
var $this = $(this)
@@ -1599,6 +1700,15 @@
$.fn.tab.Constructor = Tab
/* TAB NO CONFLICT
* =============== */
$.fn.tab.noConflict = function () {
$.fn.tab = old
return this
}
/* TAB DATA-API
* ============ */
@@ -1608,7 +1718,7 @@
})
}(window.jQuery);/* =============================================================
* bootstrap-typeahead.js v2.2.1
* bootstrap-typeahead.js v2.2.2
* http://twitter.github.com/bootstrap/javascript.html#typeahead
* =============================================================
* Copyright 2012 Twitter, Inc.
@@ -1642,8 +1752,8 @@
this.sorter = this.options.sorter || this.sorter
this.highlighter = this.options.highlighter || this.highlighter
this.updater = this.options.updater || this.updater
this.$menu = $(this.options.menu).appendTo('body')
this.source = this.options.source
this.$menu = $(this.options.menu)
this.shown = false
this.listen()
}
@@ -1665,16 +1775,18 @@
}
, show: function () {
var pos = $.extend({}, this.$element.offset(), {
var pos = $.extend({}, this.$element.position(), {
height: this.$element[0].offsetHeight
})
this.$menu.css({
top: pos.top + pos.height
, left: pos.left
})
this.$menu
.insertAfter(this.$element)
.css({
top: pos.top + pos.height
, left: pos.left
})
.show()
this.$menu.show()
this.shown = true
return this
}
@@ -1826,7 +1938,7 @@
}
, keydown: function (e) {
this.suppressKeyPressRepeat = !~$.inArray(e.keyCode, [40,38,9,13,27])
this.suppressKeyPressRepeat = ~$.inArray(e.keyCode, [40,38,9,13,27])
this.move(e)
}
@@ -1885,6 +1997,8 @@
/* TYPEAHEAD PLUGIN DEFINITION
* =========================== */
var old = $.fn.typeahead
$.fn.typeahead = function (option) {
return this.each(function () {
var $this = $(this)
@@ -1906,7 +2020,16 @@
$.fn.typeahead.Constructor = Typeahead
/* TYPEAHEAD DATA-API
/* TYPEAHEAD NO CONFLICT
* =================== */
$.fn.typeahead.noConflict = function () {
$.fn.typeahead = old
return this
}
/* TYPEAHEAD DATA-API
* ================== */
$(document).on('focus.typeahead.data-api', '[data-provide="typeahead"]', function (e) {
@@ -1918,7 +2041,7 @@
}(window.jQuery);
/* ==========================================================
* bootstrap-affix.js v2.2.1
* bootstrap-affix.js v2.2.2
* http://twitter.github.com/bootstrap/javascript.html#affix
* ==========================================================
* Copyright 2012 Twitter, Inc.
@@ -1987,6 +2110,8 @@
/* AFFIX PLUGIN DEFINITION
* ======================= */
var old = $.fn.affix
$.fn.affix = function (option) {
return this.each(function () {
var $this = $(this)
@@ -2004,6 +2129,15 @@
}
/* AFFIX NO CONFLICT
* ================= */
$.fn.affix.noConflict = function () {
$.fn.affix = old
return this
}
/* AFFIX DATA-API
* ============== */
+1 -1
View File
File diff suppressed because one or more lines are too long
+21 -23
View File
@@ -1,4 +1,4 @@
@model MileageTraker.Web.ViewModels.ConfirmCreateLogViewModel
@model MileageTraker.Web.ViewModels.ConfirmCreateLogViewModel
@{
ViewBag.Title = "Confirm";
@@ -8,17 +8,16 @@
@section Styles
{
<link href="@Url.Content("~/Content/VehicleColors.css")" rel="stylesheet" type="text/css" />
<link href="@Url.Content("~/Content/CreateLog.Index.css")" rel="stylesheet" type="text/css" />
}
@using (Html.BeginForm("Action", "CreateLog", FormMethod.Post))
{
@:<fieldset>
<fieldset>
<legend>@ViewBag.Title</legend>
<p class="warning">Please <strong>confirm</strong> - entry not complete until <strong>confirm</strong> clicked</p>
if (Model.Miles == 0)
<p class="alert">Please <strong>confirm</strong> - entry not complete until <strong>confirm</strong> clicked</p>
@if (Model.Miles == 0)
{
<p class="warning"><strong>Warning - 0 miles are logged - is this a duplicate?</strong></p>
<p class="alert"><span class="label label-important">Warning</span> No mileage being logged - <strong>is this a duplicate?</strong></p>
}
<div class="display-field-container vehicle-id">
<div class="display-label">
@@ -28,8 +27,8 @@
@Html.Encode(Model.VehicleId) <span class="subscript">(@Model.VehicleType)</span>
</div>
</div>
<input type="hidden" name="VehicleId" value="@Html.AttributeEncode(Model.VehicleId)" />
<div class="display-field-container endodometer" @endOdometerStyle>
@Html.HiddenFor(m => m.VehicleId)
<div class="display-field-container endodometer" @endOdometerStyle>
<div class="display-label">
@Html.LabelFor(model => model.EndOdometer)
</div>
@@ -38,19 +37,19 @@
@if (Model.PreviousOdometer != null)
{
<br/>
<span class="subscript @if (Model.Miles == 0)
{ <text>warning error</text>}">@Html.Encode(Model.Miles) miles since <br />
<span class="subscript @if (Model.Miles == 0)
{ <text>label label-warning</text>}">@Html.Encode(Model.Miles) miles since <br />
@Html.Encode(Model.PreviousOdometer) on @Html.Encode(Model.PreviousDate.Value.ToShortDateString())</span>
}
</div>
</div>
<input type="hidden" name="EndOdometer" value="@Html.AttributeEncode(Model.EndOdometer)" />
@Html.DisplayFor(model => model.LogType)
<input type="hidden" name="LogType.Enum" value="@Html.AttributeEncode(Model.LogType.Enum)" />
@Html.DisplayFor(model => model.EmployeeName)
<input type="hidden" name="EmployeeName" value="@Html.AttributeEncode(Model.EmployeeName)" />
@Html.DisplayFor(model => model.CityName)
<input type="hidden" name="CityName" value="@Html.AttributeEncode(Model.CityName)" />
<input type="hidden" name="EndOdometer" value="@Html.AttributeEncode(Model.EndOdometer)" />
@Html.DisplayFor(model => model.LogType)
@Html.HiddenFor(model => model.LogType.Value)
@Html.DisplayFor(model => model.EmployeeName)
<input type="hidden" name="EmployeeName" value="@Html.AttributeEncode(Model.EmployeeName)" />
@Html.DisplayFor(model => model.CityName)
<input type="hidden" name="CityName" value="@Html.AttributeEncode(Model.CityName)" />
<div class="display-field-container gas">
<div class="display-label">
@@ -74,14 +73,13 @@
</div>
<div class="display-field">
@Html.Encode(Model.Date)
<span class="subscript">(@Html.Encode(Model.DateHowLongAgo))</span>
<span class="muted">(@Html.Encode(Model.DateHowLongAgo))</span>
<input type="hidden" name="Date" value="@Html.AttributeEncode(Model.Date)" />
</div>
</div>
<div class="submit">
<input type="submit" name="Edit" value="Back" />
<input type="submit" name="Confirm" value="Confirm" />
</div>
@:</fieldset>
<input type="submit" name="Edit" value="Back" class="btn" />
<input type="submit" name="Confirm" value="Confirm" class="btn btn-primary" />
</fieldset>
}
+10 -10
View File
@@ -1,4 +1,4 @@
@model MileageTraker.Web.Models.Log
@model MileageTraker.Web.Models.Log
@{
ViewBag.Title = "Log Details";
@@ -8,23 +8,23 @@
<h2>@ViewBag.Title</h2>
<div class="btn-toolbar">
@Html.ActionLink("Edit", "Edit", new { id = Model.LogId }, new { @class = "btn" })
@Html.ActionLink("Delete", "Delete", new { id = Model.LogId }, new { @class = "btn" })
</div>
@Html.DisplayForModel()
<div>
<ul class="pager">
<li class="previous">
@Html.ActionLink("Previous", "PreviousDetails", new { id = Model.LogId })
</li>
@if(TempData["Message"] != null) {
@if(TempData["Message"] != null) { // so, yeah, span doesn't go here, but it renders
<span class="alert">@TempData["Message"]</span>
}
<li class="next">
@Html.ActionLink("Next", "NextDetails", new { id = Model.LogId })
</li>
</ul>
</div>
</div>
@Html.DisplayForModel()
<div class="btn-toolbar">
@Html.ActionLink("Edit", "Edit", new { id = Model.LogId }, new { @class = "btn" })
@Html.ActionLink("Delete", "Delete", new { id = Model.LogId }, new { @class = "btn" })
</div>
+1 -1
View File
@@ -15,7 +15,7 @@
<script src="@Url.Content("~/Scripts/jquery.qtip.min.js")" type="text/javascript"></script>
}
<h2><img src="/Content/images/glyphicons_026_road.png"/> @ViewBag.Title</h2>
<h2 id="log-title">@ViewBag.Title</h2>
<div class="btn-toolbar">
@using (Html.BeginForm("Index", "Log", FormMethod.Get, new { id = "filter", @class = "form-inline" }))
@@ -1,4 +1,4 @@
@using MileageTraker.Web.Utility
@using MileageTraker.Web.Utility
@{
Layout = null;
var lowerPropertyName = @CustomExtensions.LowercaseFirst(ViewData.ModelMetadata.PropertyName);
@@ -28,6 +28,6 @@
@if (!string.IsNullOrEmpty(formatHint)) {
<div><small><em>@formatHint</em></small></div>
}
<span class="help-inline">@Html.ValidationMessage("")</span>
<span class="help-block">@Html.ValidationMessage("")</span>
</div>
</div>
+2 -2
View File
@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!DOCTYPE html>
<html>
<head>
<title>Mileage Traker - ETHRA - @ViewBag.Title</title>
@@ -30,8 +30,8 @@
<script src="@Url.Content("~/Scripts/jquery-1.8.3.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/bootstrap.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery-ui-1.9.2.custom.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.numeric.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/Shared/Site.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.numeric.js")" type="text/javascript"></script>
@RenderSection("Scripts", false)
</body>
</html>
+3 -2
View File
@@ -1,10 +1,11 @@
<!DOCTYPE html>
<!DOCTYPE html>
<html>
<head>
<title>Mileage Traker - ETHRA - @ViewBag.Title</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<link href="@Url.Content("~/Content/themes/custom-theme/jquery-ui-1.9.2.custom.min.css")" rel="stylesheet" type="text/css" />
<link href="@Url.Content("~/Content/bootstrap.min.css")" rel="stylesheet" type="text/css" />
<link href="@Url.Content("~/Content/bootstrap-responsive.min.css")" rel="stylesheet" type="text/css" />
<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
@RenderSection("Styles", false)
@@ -12,7 +13,7 @@
<body>
<header>
<div class="navbar navbar-fixed-top navbar-inverse">
<div class="navbar navbar-static-top navbar-inverse">
<div class="navbar-inner">
<span class="brand" ></span>
</div>
+3 -3
View File
@@ -1,4 +1,4 @@
@model MileageTraker.Web.Models.Vehicle
@model MileageTraker.Web.Models.Vehicle
@{
ViewBag.Title = "Vehicle Details";
@@ -12,8 +12,8 @@
<h2>@ViewBag.Title</h2>
@Html.DisplayForModel()
<div class="btn-toolbar">
@Html.ActionLink("Edit", "Edit", new { id = Model.VehicleId }, new { @class = "btn" })
</div>
@Html.DisplayForModel()
+1 -1
View File
@@ -9,7 +9,7 @@
<link href="@Url.Content("~/Content/VehicleColors.css")" rel="stylesheet" type="text/css" />
}
<h2><img src="/Content/images/glyphicons_005_car.png"/> @ViewBag.Title</h2>
<h2 id="vehicle-title">@ViewBag.Title</h2>
<div class="btn-toolbar">
@Html.ActionLink("Add another vehicle", "Create", null, new{@class="btn"})
+2
View File
@@ -140,6 +140,8 @@
<Content Include="Content\images\glyphicons-halflings-white.png" />
<Content Include="Content\images\glyphicons-halflings.png" />
<Content Include="Content\images\glyphicons_005_car.png" />
<Content Include="Content\images\glyphicons_005_car_half.png" />
<Content Include="Content\images\glyphicons_005_car_half_white.png" />
<Content Include="Content\images\glyphicons_026_road.png" />
<Content Include="Content\images\Header.png" />
<Content Include="Content\jquery.qtip.min.css" />
+2 -3
View File
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="AutoMapper" version="2.1.267" />
<package id="EntityFramework" version="4.3.1" />
@@ -7,7 +7,6 @@
<package id="jQuery.Validation" version="1.10.0" targetFramework="net40" />
<package id="jQuery.vsdoc" version="1.6" />
<package id="log4net" version="2.0.0" />
<package id="Modernizr" version="2.6.2" targetFramework="net40" />
<package id="morelinq" version="1.0" />
<package id="Twitter.Bootstrap" version="2.2.1" targetFramework="net40" />
<package id="Twitter.Bootstrap" version="2.2.2" targetFramework="net40" />
</packages>