moved all backbone/bootstrap files to _backboneApp
|
@ -1,75 +0,0 @@
|
|||
using Cassette;
|
||||
using Cassette.Scripts;
|
||||
using Cassette.Stylesheets;
|
||||
|
||||
namespace NzbDrone.Web
|
||||
{
|
||||
/// <summary>
|
||||
/// Configures the Cassette asset bundles for the web application.
|
||||
/// </summary>
|
||||
public class CassetteBundleConfiguration : IConfiguration<BundleCollection>
|
||||
{
|
||||
public const string BASE_STYLE = "BASE_STYLE";
|
||||
public const string BASE_SCRIPT = "BASE_SCRIPT";
|
||||
public const string BACKBONE = "BACKBONE";
|
||||
public const string FONTS = "FONTS";
|
||||
public const string VALIDATION_SCRIPTS = "VALIDATION_SCRIPTS";
|
||||
public const string FILEBROWSER_SCRIPT = "FILEBROWSER_SCRIPT";
|
||||
public const string FILEBROWSER_STYLE = "FILEBROWSER_STYLE";
|
||||
|
||||
public void Configure(BundleCollection bundles)
|
||||
{
|
||||
bundles.AddUrlWithAlias<StylesheetBundle>("//fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,400,600,300'", FONTS);
|
||||
|
||||
|
||||
bundles.Add<StylesheetBundle>(BASE_STYLE, new[]{
|
||||
"content2\\Bootstrap\\bootstrap.less",
|
||||
//"content2\\Bootstrap\\responsive.less",
|
||||
//"content2\\bootstrap-metro.css",
|
||||
"content2\\base.css",
|
||||
"content2\\menu.css",
|
||||
"content2\\bootstrap-overrides.css"},
|
||||
bundle => bundle.AddReference("/" + FONTS));
|
||||
|
||||
bundles.Add<ScriptBundle>(BASE_SCRIPT, new[]{
|
||||
"scripts2\\jquery-1.8.2.js",
|
||||
"scripts2\\jquery.livequery.js",
|
||||
"scripts2\\bootstrap-mvc.js",
|
||||
"scripts2\\bootstrap.js",
|
||||
"scripts2\\metro\\jquery.metro.js"});
|
||||
|
||||
bundles.Add<ScriptBundle>(BACKBONE, new[]{
|
||||
"JsLibraries\\underscore.js",
|
||||
"JsLibraries\\backbone.js",
|
||||
"JsLibraries\\backbone.marionette.js",
|
||||
|
||||
"app.js",
|
||||
"AddSeries\\Views\\addSeriesView.js"},
|
||||
bundle => bundle.AddReference("/" + BASE_SCRIPT));
|
||||
|
||||
|
||||
bundles.AddPerSubDirectory<StylesheetBundle>("AddSeries", bundle => bundle.AddReference("/" + BASE_STYLE));
|
||||
|
||||
|
||||
bundles.Add<StylesheetBundle>(FILEBROWSER_STYLE, new[]{
|
||||
"content2\\stats.css",
|
||||
"content2\\file-browser.css",
|
||||
"content2\\FancyBox\\jquery.fancybox.css"},
|
||||
bundle => bundle.AddReference("/" + BASE_STYLE));
|
||||
|
||||
bundles.Add<ScriptBundle>(FILEBROWSER_SCRIPT, new[]{
|
||||
"content2\\FancyBox\\jquery.fancybox.js"},
|
||||
bundle => bundle.AddReference("/" + BASE_SCRIPT));
|
||||
|
||||
bundles.Add<ScriptBundle>(VALIDATION_SCRIPTS, new[]{
|
||||
"scripts2\\jquery.livequery.js",
|
||||
"scripts2\\jquery.validate.js",
|
||||
"scripts2\\jquery.validate.unobtrusive.js",
|
||||
"scripts2\\bootstrap-mvc.js"},
|
||||
bundle => bundle.AddReference("/" + BASE_SCRIPT));
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,246 +0,0 @@
|
|||
/*! fancyBox v2.1.0 fancyapps.com | fancyapps.com/fancybox/#license */
|
||||
.fancybox-wrap,
|
||||
.fancybox-skin,
|
||||
.fancybox-outer,
|
||||
.fancybox-inner,
|
||||
.fancybox-image,
|
||||
.fancybox-wrap iframe,
|
||||
.fancybox-wrap object,
|
||||
.fancybox-nav,
|
||||
.fancybox-nav span,
|
||||
.fancybox-tmp
|
||||
{
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
border: 0;
|
||||
outline: none;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.fancybox-wrap {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
z-index: 8020;
|
||||
}
|
||||
|
||||
.fancybox-skin {
|
||||
position: relative;
|
||||
background: #f9f9f9;
|
||||
color: #444;
|
||||
text-shadow: none;
|
||||
-webkit-border-radius: 4px;
|
||||
-moz-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.fancybox-opened {
|
||||
z-index: 8030;
|
||||
}
|
||||
|
||||
.fancybox-opened .fancybox-skin {
|
||||
-webkit-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
|
||||
-moz-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
|
||||
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
|
||||
.fancybox-outer, .fancybox-inner {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.fancybox-inner {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.fancybox-type-iframe .fancybox-inner {
|
||||
-webkit-overflow-scrolling: touch;
|
||||
}
|
||||
|
||||
.fancybox-error {
|
||||
color: #444;
|
||||
font: 14px/20px "Helvetica Neue",Helvetica,Arial,sans-serif;
|
||||
margin: 0;
|
||||
padding: 15px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.fancybox-image, .fancybox-iframe {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.fancybox-image {
|
||||
max-width: 100%;
|
||||
max-height: 100%;
|
||||
}
|
||||
|
||||
#fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span {
|
||||
background-image: url('fancybox_sprite.png');
|
||||
}
|
||||
|
||||
#fancybox-loading {
|
||||
position: fixed;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
margin-top: -22px;
|
||||
margin-left: -22px;
|
||||
background-position: 0 -108px;
|
||||
opacity: 0.8;
|
||||
cursor: pointer;
|
||||
z-index: 8060;
|
||||
}
|
||||
|
||||
#fancybox-loading div {
|
||||
width: 44px;
|
||||
height: 44px;
|
||||
background: url('fancybox_loading.gif') center center no-repeat;
|
||||
}
|
||||
|
||||
.fancybox-close {
|
||||
position: absolute;
|
||||
top: -18px;
|
||||
right: -18px;
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
cursor: pointer;
|
||||
z-index: 8040;
|
||||
}
|
||||
|
||||
.fancybox-nav {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
width: 40%;
|
||||
height: 100%;
|
||||
cursor: pointer;
|
||||
text-decoration: none;
|
||||
background: transparent url('blank.gif'); /* helps IE */
|
||||
-webkit-tap-highlight-color: rgba(0,0,0,0);
|
||||
z-index: 8040;
|
||||
}
|
||||
|
||||
.fancybox-prev {
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.fancybox-next {
|
||||
right: 0;
|
||||
}
|
||||
|
||||
.fancybox-nav span {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
width: 36px;
|
||||
height: 34px;
|
||||
margin-top: -18px;
|
||||
cursor: pointer;
|
||||
z-index: 8040;
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.fancybox-prev span {
|
||||
left: 10px;
|
||||
background-position: 0 -36px;
|
||||
}
|
||||
|
||||
.fancybox-next span {
|
||||
right: 10px;
|
||||
background-position: 0 -72px;
|
||||
}
|
||||
|
||||
.fancybox-nav:hover span {
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
.fancybox-tmp {
|
||||
position: absolute;
|
||||
top: -9999px;
|
||||
left: -9999px;
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
/* Overlay helper */
|
||||
|
||||
.fancybox-lock {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.fancybox-overlay {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
overflow: hidden;
|
||||
display: none;
|
||||
z-index: 8010;
|
||||
background: url('fancybox_overlay.png');
|
||||
}
|
||||
|
||||
.fancybox-overlay-fixed {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
}
|
||||
|
||||
.fancybox-lock .fancybox-overlay {
|
||||
overflow: auto;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
|
||||
/* Title helper */
|
||||
|
||||
.fancybox-title {
|
||||
visibility: hidden;
|
||||
font: normal 13px/20px "Helvetica Neue",Helvetica,Arial,sans-serif;
|
||||
position: relative;
|
||||
text-shadow: none;
|
||||
z-index: 8050;
|
||||
}
|
||||
|
||||
.fancybox-opened .fancybox-title {
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
.fancybox-title-float-wrap {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
right: 50%;
|
||||
margin-bottom: -35px;
|
||||
z-index: 8050;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.fancybox-title-float-wrap .child {
|
||||
display: inline-block;
|
||||
margin-right: -100%;
|
||||
padding: 2px 20px;
|
||||
background: transparent; /* Fallback for web browsers that doesn't support RGBa */
|
||||
background: rgba(0, 0, 0, 0.8);
|
||||
-webkit-border-radius: 15px;
|
||||
-moz-border-radius: 15px;
|
||||
border-radius: 15px;
|
||||
text-shadow: 0 1px 2px #222;
|
||||
color: #FFF;
|
||||
font-weight: bold;
|
||||
line-height: 24px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.fancybox-title-outside-wrap {
|
||||
position: relative;
|
||||
margin-top: 10px;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.fancybox-title-inside-wrap {
|
||||
padding-top: 10px;
|
||||
}
|
||||
|
||||
.fancybox-title-over-wrap {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
color: #fff;
|
||||
padding: 10px;
|
||||
background: #000;
|
||||
background: rgba(0, 0, 0, .8);
|
||||
}
|
|
@ -1,833 +0,0 @@
|
|||
/* === UTILS ==={ */
|
||||
/* }=== UTILS === */
|
||||
/* === COLOR - AZURE ==={ */
|
||||
/* }=== COLOR - AZURE === */
|
||||
/* === MADMIN MENU ==={ */
|
||||
/* general setup & list styles reset */
|
||||
.sidebar-menu,
|
||||
.sidebar-menu ul,
|
||||
.sidebar-menu li
|
||||
{
|
||||
position: relative;
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.sidebar-menu > li,
|
||||
.sidebar-menu > li > div
|
||||
{
|
||||
width: 220px;
|
||||
}
|
||||
|
||||
.sidebar-menu li > a
|
||||
{
|
||||
white-space: nowrap;
|
||||
}
|
||||
/* drop sub-menu mix-in */
|
||||
/* main menu styles */
|
||||
.sidebar-menu
|
||||
{
|
||||
/* level 0 */
|
||||
/* levels 1+ */
|
||||
}
|
||||
|
||||
.sidebar-menu > li > div
|
||||
{
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.sidebar-menu > li > div > a
|
||||
{
|
||||
display: block;
|
||||
height: 30px;
|
||||
padding: 10px;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.sidebar-menu > li > div > a > i
|
||||
{
|
||||
position: relative;
|
||||
top: 5px;
|
||||
margin-right: 10px;
|
||||
font-size: 30px;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.sidebar-menu > li:hover > div > a,
|
||||
.sidebar-menu > li.open > div > a
|
||||
{
|
||||
background: #6bbef6;
|
||||
}
|
||||
|
||||
.sidebar-menu > li.parent > div > a > span:before
|
||||
{
|
||||
content: "";
|
||||
display: inline-block;
|
||||
width: 0px;
|
||||
height: 0px;
|
||||
border-width: 5px;
|
||||
border-style: solid;
|
||||
border-color: #61b0e9 #61b0e9 #61b0e9 #ffffff;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.sidebar-menu > li.parent:hover > div > a > span:before,
|
||||
.sidebar-menu > li.parent.open > div > a > span:before
|
||||
{
|
||||
content: "";
|
||||
display: inline-block;
|
||||
width: 0px;
|
||||
height: 0px;
|
||||
border-width: 5px;
|
||||
border-style: solid;
|
||||
border-color: #6bbef6 #6bbef6 #6bbef6 #ffffff;
|
||||
}
|
||||
|
||||
.sidebar-menu > li.active > div > a
|
||||
{
|
||||
background: #ffffff;
|
||||
color: #20202f;
|
||||
}
|
||||
|
||||
.sidebar-menu > li.parent.active > div > a > span:before
|
||||
{
|
||||
content: "";
|
||||
display: inline-block;
|
||||
width: 0px;
|
||||
height: 0px;
|
||||
border-width: 5px;
|
||||
border-style: solid;
|
||||
border-color: #20202f #ffffff #ffffff #ffffff;
|
||||
position: relative;
|
||||
top: 1px;
|
||||
}
|
||||
|
||||
.sidebar-menu ul
|
||||
{
|
||||
display: none;
|
||||
}
|
||||
|
||||
.sidebar-menu ul > li > a
|
||||
{
|
||||
display: block;
|
||||
height: 20px;
|
||||
padding: 5px;
|
||||
}
|
||||
/* drop-right */
|
||||
.sidebar-menu.on-hover > li.parent.inactive:hover > div > ul,
|
||||
.sidebar-menu > li.parent.inactive.open > div > ul
|
||||
{
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 0 !important;
|
||||
left: 100% !important;
|
||||
padding: 10px 0;
|
||||
background: #6bbef6;
|
||||
}
|
||||
|
||||
.sidebar-menu.on-hover > li.parent.inactive:hover > div > ul > li a,
|
||||
.sidebar-menu > li.parent.inactive.open > div > ul > li a
|
||||
{
|
||||
padding: 5px 16px;
|
||||
height: 20px;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.sidebar-menu.on-hover > li.parent.inactive:hover > div > ul > li:hover a,
|
||||
.sidebar-menu > li.parent.inactive.open > div > ul > li:hover a,
|
||||
.sidebar-menu.on-hover > li.parent.inactive:hover > div > ul > li.active a,
|
||||
.sidebar-menu > li.parent.inactive.open > div > ul > li.active a,
|
||||
.sidebar-menu.on-hover > li.parent.inactive:hover > div > ul > li.active a:hover,
|
||||
.sidebar-menu > li.parent.inactive.open > div > ul > li.active a:hover
|
||||
{
|
||||
padding-left: 8px;
|
||||
border-left: 8px solid #aedcfb;
|
||||
}
|
||||
|
||||
.sidebar-menu.on-hover > li.parent.inactive:hover > div > ul > li.active a,
|
||||
.sidebar-menu > li.parent.inactive.open > div > ul > li.active a,
|
||||
.sidebar-menu.on-hover > li.parent.inactive:hover > div > ul > li.active a:hover,
|
||||
.sidebar-menu > li.parent.inactive.open > div > ul > li.active a:hover
|
||||
{
|
||||
color: #20202f;
|
||||
border-color: #20202f;
|
||||
}
|
||||
/* maximized sidebar - active's item submenu */
|
||||
.sidebar-max .sidebar-menu .active ul
|
||||
{
|
||||
display: block;
|
||||
padding-bottom: 10px;
|
||||
background: #ffffff;
|
||||
}
|
||||
|
||||
.sidebar-max .sidebar-menu .active ul > li > a
|
||||
{
|
||||
margin-left: 72px;
|
||||
color: #61b0e9;
|
||||
border-color: #61b0e9;
|
||||
}
|
||||
|
||||
.sidebar-max .sidebar-menu .active ul > li > a:hover,
|
||||
.sidebar-max .sidebar-menu .active ul > li.active > a
|
||||
{
|
||||
border-left: 8px solid;
|
||||
padding-left: 7px;
|
||||
margin-left: 62px;
|
||||
}
|
||||
|
||||
.sidebar-max .sidebar-menu .active ul > li.active > a
|
||||
{
|
||||
color: #20202f;
|
||||
border-color: #20202f;
|
||||
}
|
||||
/* minimized sidebar */
|
||||
.sidebar-min .sidebar-menu > li
|
||||
{
|
||||
width: 60px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.sidebar-min .sidebar-menu > li.parent > div.sidebar-menu-item-wrapper > ul,
|
||||
.sidebar-min .sidebar-menu > li.parent.active > div.sidebar-menu-item-wrapper > ul
|
||||
{
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 50px !important;
|
||||
left: 60px !important;
|
||||
padding: 10px 0;
|
||||
background: #6bbef6;
|
||||
min-width: 160px;
|
||||
padding-top: 0 !important;
|
||||
}
|
||||
|
||||
.sidebar-min .sidebar-menu > li.parent > div.sidebar-menu-item-wrapper > ul > li a,
|
||||
.sidebar-min .sidebar-menu > li.parent.active > div.sidebar-menu-item-wrapper > ul > li a
|
||||
{
|
||||
padding: 5px 16px;
|
||||
height: 20px;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.sidebar-min .sidebar-menu > li.parent > div.sidebar-menu-item-wrapper > ul > li:hover a,
|
||||
.sidebar-min .sidebar-menu > li.parent.active > div.sidebar-menu-item-wrapper > ul > li:hover a,
|
||||
.sidebar-min .sidebar-menu > li.parent > div.sidebar-menu-item-wrapper > ul > li.active a,
|
||||
.sidebar-min .sidebar-menu > li.parent.active > div.sidebar-menu-item-wrapper > ul > li.active a,
|
||||
.sidebar-min .sidebar-menu > li.parent > div.sidebar-menu-item-wrapper > ul > li.active a:hover,
|
||||
.sidebar-min .sidebar-menu > li.parent.active > div.sidebar-menu-item-wrapper > ul > li.active a:hover
|
||||
{
|
||||
padding-left: 8px;
|
||||
border-left: 8px solid #aedcfb;
|
||||
}
|
||||
|
||||
.sidebar-min .sidebar-menu > li.parent > div.sidebar-menu-item-wrapper > ul > li.active a,
|
||||
.sidebar-min .sidebar-menu > li.parent.active > div.sidebar-menu-item-wrapper > ul > li.active a,
|
||||
.sidebar-min .sidebar-menu > li.parent > div.sidebar-menu-item-wrapper > ul > li.active a:hover,
|
||||
.sidebar-min .sidebar-menu > li.parent.active > div.sidebar-menu-item-wrapper > ul > li.active a:hover
|
||||
{
|
||||
color: #20202f;
|
||||
border-color: #20202f;
|
||||
}
|
||||
|
||||
.sidebar-min .sidebar-menu.on-hover > li:hover,
|
||||
.sidebar-min .sidebar-menu > li.open
|
||||
{
|
||||
overflow: visible;
|
||||
}
|
||||
|
||||
.sidebar-min .sidebar-menu.on-hover > li:hover > div > a,
|
||||
.sidebar-min .sidebar-menu > li.open > div > a
|
||||
{
|
||||
background: #6bbef6;
|
||||
}
|
||||
|
||||
.sidebar-min .sidebar-menu.on-hover > li.parent.active:hover > div > a > span:before,
|
||||
.sidebar-min .sidebar-menu > li.parent.active.open > div > a > span:before
|
||||
{
|
||||
content: "";
|
||||
display: inline-block;
|
||||
width: 0px;
|
||||
height: 0px;
|
||||
border-width: 5px;
|
||||
border-style: solid;
|
||||
border-color: #20202f #6bbef6 #6bbef6 #6bbef6;
|
||||
position: relative;
|
||||
top: 1px;
|
||||
}
|
||||
|
||||
.sidebar-min .sidebar-menu.on-hover > li.parent:hover > div > a > span:before,
|
||||
.sidebar-min .sidebar-menu > li.parent.open > div > a > span:before
|
||||
{
|
||||
content: "";
|
||||
display: inline-block;
|
||||
width: 0px;
|
||||
height: 0px;
|
||||
border-width: 5px;
|
||||
border-style: solid;
|
||||
border-color: #ffffff #6bbef6 #6bbef6 #6bbef6;
|
||||
position: relative;
|
||||
top: 1px;
|
||||
}
|
||||
/* }=== MADMIN MENU === */
|
||||
/* === LAYOUT ==={ */
|
||||
body
|
||||
{
|
||||
padding: 30px 0 40px 0;
|
||||
}
|
||||
|
||||
body.help-page
|
||||
{
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.row-fluid
|
||||
{
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#topbar
|
||||
{
|
||||
position: fixed;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
height: 30px;
|
||||
padding: 0 3px;
|
||||
border: 0;
|
||||
margin: 0;
|
||||
text-align: center;
|
||||
z-index: 5000;
|
||||
}
|
||||
|
||||
#topbar > li
|
||||
{
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#sidebar
|
||||
{
|
||||
position: absolute;
|
||||
width: 220px;
|
||||
padding: 10px 0 70px 0;
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
#sidebar.fixed
|
||||
{
|
||||
position: fixed !important;
|
||||
top: 30px;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
}
|
||||
|
||||
.sidebar-min #sidebar
|
||||
{
|
||||
width: 60px;
|
||||
}
|
||||
|
||||
.sidebar-min #content
|
||||
{
|
||||
left: 0;
|
||||
margin-left: 80px;
|
||||
}
|
||||
|
||||
#container
|
||||
{
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#content
|
||||
{
|
||||
position: absolute;
|
||||
top: 20px;
|
||||
left: 240px;
|
||||
right: 20px;
|
||||
width: auto;
|
||||
min-width: 600px;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.page.hidden
|
||||
{
|
||||
position: absolute;
|
||||
left: -10000px;
|
||||
top: -10000px;
|
||||
}
|
||||
|
||||
.panel
|
||||
{
|
||||
margin: 0 auto 20px auto;
|
||||
}
|
||||
|
||||
.panel header
|
||||
{
|
||||
padding: 0 10px;
|
||||
height: 30px;
|
||||
}
|
||||
|
||||
.panel header i
|
||||
{
|
||||
position: relative;
|
||||
top: 5px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.panel header span
|
||||
{
|
||||
position: relative;
|
||||
top: 5px;
|
||||
}
|
||||
|
||||
.panel .content
|
||||
{
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
#panel-login
|
||||
{
|
||||
width: 345px;
|
||||
}
|
||||
|
||||
#panel-login .content
|
||||
{
|
||||
padding: 30px;
|
||||
}
|
||||
/* }=== LAYOUT === */
|
||||
/* === LOOKS ==={ */
|
||||
body.help-page
|
||||
{
|
||||
background-color: #FDFCE4;
|
||||
}
|
||||
|
||||
.hero-unit,
|
||||
input,
|
||||
button,
|
||||
select,
|
||||
textarea
|
||||
{
|
||||
border-radius: 0 !important;
|
||||
}
|
||||
/* Top Bar */
|
||||
#topbar
|
||||
{
|
||||
background: #3a4450;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
#topbar h1
|
||||
{
|
||||
position: relative;
|
||||
top: -6px;
|
||||
font-size: 14px;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
#topbar h1 i
|
||||
{
|
||||
position: relative;
|
||||
top: 3px;
|
||||
margin-right: 5px;
|
||||
font-size: 20px;
|
||||
color: #6ac8fb;
|
||||
}
|
||||
|
||||
#topbar h1 a
|
||||
{
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
#topbar h1 a:hover
|
||||
{
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#topbar > li > a
|
||||
{
|
||||
display: inline-block;
|
||||
padding: 6px 10px 0 10px;
|
||||
font-size: 11px;
|
||||
font-weight: bold;
|
||||
text-transform: uppercase;
|
||||
color: #ffffff;
|
||||
height: 24px;
|
||||
line-height: 20px;
|
||||
}
|
||||
|
||||
#topbar > li > a:hover
|
||||
{
|
||||
text-decoration: none;
|
||||
background: #4b5867;
|
||||
}
|
||||
|
||||
#topbar > li.pull-right > a
|
||||
{
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
#topbar > li.parent > a > span:after
|
||||
{
|
||||
content: "";
|
||||
display: inline-block;
|
||||
width: 0px;
|
||||
height: 0px;
|
||||
border-width: 5px;
|
||||
border-style: solid;
|
||||
border-color: #ffffff #3a4450 #3a4450 #3a4450;
|
||||
position: relative;
|
||||
top: 1px;
|
||||
position: relative;
|
||||
top: 2px;
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
#topbar > li.parent > a:hover > span:after
|
||||
{
|
||||
content: "";
|
||||
display: inline-block;
|
||||
width: 0px;
|
||||
height: 0px;
|
||||
border-width: 5px;
|
||||
border-style: solid;
|
||||
border-color: #ffffff #4b5867 #4b5867 #4b5867;
|
||||
position: relative;
|
||||
top: 1px;
|
||||
position: relative;
|
||||
top: 2px;
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
#topbar .dropdown-menu
|
||||
{
|
||||
top: 98%;
|
||||
right: 0;
|
||||
padding: 0 0 0 0;
|
||||
background: #3a4450;
|
||||
border: 0;
|
||||
border-radius: 0;
|
||||
box-shadow: none;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
#topbar .dropdown-menu *
|
||||
{
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
#topbar .dropdown-menu > li > a
|
||||
{
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
#topbar .dropdown-menu > li > a:hover
|
||||
{
|
||||
background: #4b5867;
|
||||
}
|
||||
|
||||
#topbar .dropdown-menu > li.divider
|
||||
{
|
||||
background: none;
|
||||
border-bottom-color: #4b5867;
|
||||
}
|
||||
/* Bootstrap drop-downs behavior enhancement */
|
||||
ul.on-hover > li.parent:hover > .dropdown-menu
|
||||
{
|
||||
display: block;
|
||||
}
|
||||
/* Sidebar Resizer */
|
||||
#sidebar-resizer
|
||||
{
|
||||
display: block;
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
padding: 10px;
|
||||
width: 200px;
|
||||
height: 30px;
|
||||
text-align: center;
|
||||
font-size: 32px;
|
||||
color: #20202f;
|
||||
margin: 10px 0 10px 0;
|
||||
}
|
||||
|
||||
#sidebar-resizer:hover
|
||||
{
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#sidebar-resizer i.max
|
||||
{
|
||||
display: none;
|
||||
}
|
||||
|
||||
.sidebar-min #sidebar-resizer
|
||||
{
|
||||
width: 40px;
|
||||
}
|
||||
|
||||
.sidebar-min #sidebar-resizer i.max
|
||||
{
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.sidebar-min #sidebar-resizer i.min
|
||||
{
|
||||
display: none;
|
||||
}
|
||||
/* Sidebar Mini-Search */
|
||||
.search-mini
|
||||
{
|
||||
position: relative;
|
||||
margin: 10px 0 20px 0;
|
||||
}
|
||||
|
||||
.search-mini input
|
||||
{
|
||||
border: 0;
|
||||
margin: 0 10px;
|
||||
width: 192px;
|
||||
height: 22px;
|
||||
background: #3a4450;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.search-mini button
|
||||
{
|
||||
position: absolute;
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
margin: 0;
|
||||
background: #3a4450;
|
||||
color: #ffffff;
|
||||
top: 0;
|
||||
right: 10px;
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
.sidebar-min .search-mini input
|
||||
{
|
||||
width: 32px;
|
||||
}
|
||||
|
||||
.sidebar-min .search-mini :-webkit-input-placeholder,
|
||||
.sidebar-min .search-mini :-moz-placeholder
|
||||
{
|
||||
display: none;
|
||||
}
|
||||
|
||||
.sidebar-min .search-mini button
|
||||
{
|
||||
right: 24.5%;
|
||||
}
|
||||
|
||||
.sidebar-min .search-mini:hover input
|
||||
{
|
||||
width: 162px;
|
||||
}
|
||||
|
||||
.sidebar-min .search-mini:hover button
|
||||
{
|
||||
left: 162px;
|
||||
}
|
||||
/* Panels */
|
||||
.panel header,
|
||||
.accordion-heading
|
||||
{
|
||||
background: #3a4450;
|
||||
}
|
||||
|
||||
.panel header *,
|
||||
.accordion-heading *,
|
||||
.panel header a:hover,
|
||||
.accordion-heading a:hover
|
||||
{
|
||||
color: #ffffff;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.panel .content
|
||||
{
|
||||
background: #f7f7fd;
|
||||
color: #3a4450;
|
||||
border: 1px solid #f0f0fb;
|
||||
}
|
||||
|
||||
.hero-unit,
|
||||
.form-actions
|
||||
{
|
||||
background: #f7f7fd;
|
||||
}
|
||||
/* Table of Key Numbers */
|
||||
.table-key-numbers
|
||||
{
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.table-key-numbers td
|
||||
{
|
||||
font-size: 30px;
|
||||
font-weight: bold;
|
||||
line-height: 1.6em;
|
||||
color: #20202f;
|
||||
}
|
||||
|
||||
.table-key-numbers th
|
||||
{
|
||||
color: #666;
|
||||
font-weight: normal;
|
||||
color: #8b9198;
|
||||
}
|
||||
/* Demo Charts */
|
||||
#stats-area-chart,
|
||||
#dashboard-dynamic-chart,
|
||||
#stats-pie-chart
|
||||
{
|
||||
margin: 10px;
|
||||
height: 200px;
|
||||
}
|
||||
|
||||
#stats-pie-chart
|
||||
{
|
||||
margin: 10px auto 10px auto;
|
||||
width: 400px;
|
||||
overflow: hidden;
|
||||
}
|
||||
/* Sidebar */
|
||||
#sidebar
|
||||
{
|
||||
background: #61b0e9;
|
||||
}
|
||||
/* Tablesorter Plugin */
|
||||
table.tablesorter thead tr .headerSortDown,
|
||||
table.tablesorter thead tr .headerSortUp
|
||||
{
|
||||
background-color: #aedcfb;
|
||||
}
|
||||
|
||||
table.tablesorter thead tr th,
|
||||
table.tablesorter tfoot tr th
|
||||
{
|
||||
background-color: #61b0e9;
|
||||
}
|
||||
|
||||
table.tablesorter
|
||||
{
|
||||
background-color: #f7f7fd;
|
||||
}
|
||||
/* Accordions */
|
||||
.accordion-group,
|
||||
.accordion-inner
|
||||
{
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.sidebar-menu a:hover
|
||||
{
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.sidebar-menu > li > div > a
|
||||
{
|
||||
font-weight: bold;
|
||||
text-transform: uppercase;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.hero-unit h1
|
||||
{
|
||||
margin-bottom: 0.15em;
|
||||
}
|
||||
/* }=== TYPO === */
|
||||
/* === FORMS ==={ */
|
||||
/* }=== FORMS === */
|
||||
/* === BUTTONS ==={ */
|
||||
.btn
|
||||
{
|
||||
filter: none;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
.btn-madmin.btn.btn-primary
|
||||
{
|
||||
background: #61b0e9;
|
||||
color: #ffffff;
|
||||
text-transform: uppercase;
|
||||
font-size: 14px;
|
||||
border-color: #389ae2;
|
||||
text-shadow: none;
|
||||
}
|
||||
|
||||
.btn-madmin.btn.btn-primary:hover
|
||||
{
|
||||
border-color: #6bbef6;
|
||||
background: #6bbef6;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.btn-madmin.btn.btn-primary.btn-large
|
||||
{
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.btn-madmin.btn.btn-primary.btn-small
|
||||
{
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.btn-madmin.btn.btn-primary.btn-mini
|
||||
{
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
.btn-madmin.btn
|
||||
{
|
||||
background: #DCE0F1;
|
||||
text-shadow: none;
|
||||
border-color: #C1C1E3;
|
||||
}
|
||||
|
||||
.btn-madmin.btn:hover
|
||||
{
|
||||
background: #E3EAF9;
|
||||
border-color: #CECEF4;
|
||||
}
|
||||
/* Tile buttons */
|
||||
.tile-btn
|
||||
{
|
||||
display: inline-block;
|
||||
width: 105px;
|
||||
height: 85px;
|
||||
margin: 5px;
|
||||
background: #61b0e9;
|
||||
color: #ffffff;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.tile-btn:hover
|
||||
{
|
||||
text-decoration: none;
|
||||
background: #6bbef6;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.tile-btn i
|
||||
{
|
||||
display: block;
|
||||
font-size: 32px;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.tile-btn span
|
||||
{
|
||||
display: block;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.tiles-container
|
||||
{
|
||||
text-align: center;
|
||||
}
|
||||
/* }=== BUTTONS === */
|
||||
/* === FIXES ==={ */
|
||||
/* }=== FIXES === */
|
|
@ -1,83 +0,0 @@
|
|||
body {
|
||||
padding-top: 0px;
|
||||
color: #57606b;
|
||||
}
|
||||
|
||||
div, table, ul {
|
||||
-moz-border-radius: 0 !important;
|
||||
-webkit-border-radius: 0 !important;
|
||||
border-radius: 0 !important;
|
||||
}
|
||||
|
||||
table {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
table th, .table th {
|
||||
font-size: 20px;
|
||||
font-weight: 100;
|
||||
text-transform: lowercase;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 60px;
|
||||
padding-bottom: 50px;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 40px;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 30px;
|
||||
}
|
||||
|
||||
h1, h2, h3 {
|
||||
text-transform: lowercase;
|
||||
}
|
||||
|
||||
input,
|
||||
textarea,
|
||||
.uneditable-input {
|
||||
width: 400px;
|
||||
}
|
||||
|
||||
.field-validation-error {
|
||||
color: rgb(207, 27, 27);
|
||||
}
|
||||
|
||||
.alert-error ul {
|
||||
margin: 0px;
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
:not([class^="alert-"]:before),
|
||||
:not([class*="alert-"]:before),
|
||||
[class^="icon-"]:before,
|
||||
[class*=" icon-"]:before {
|
||||
color: #57606b;
|
||||
}
|
||||
|
||||
[class^="icon-"]:before,
|
||||
[class*=" icon-"]:before {
|
||||
margin-right: 7px;
|
||||
}
|
||||
|
||||
|
||||
form input[type=submit] {
|
||||
margin-top: 30px;
|
||||
}
|
||||
|
||||
.btn {
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.btn-hover {
|
||||
padding: 7px 15px;
|
||||
}
|
||||
|
||||
.btn-hover:hover {
|
||||
background: white;
|
||||
color: #57606b;
|
||||
text-decoration: none;
|
||||
}
|
|
@ -1,19 +0,0 @@
|
|||
/*
|
||||
[class^="icon-"]:before,
|
||||
[class*=" icon-"]:before {
|
||||
font-size: 30px;
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
#main > .icon-folder-open, .icon-file, .icon-download-alt {
|
||||
font-size: 25px;
|
||||
}
|
||||
|
||||
.link-download {
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.file-browser-message {
|
||||
text-align: center;
|
||||
}
|
|
@ -1,830 +0,0 @@
|
|||
.accent {
|
||||
color: #1ba1e2;
|
||||
}
|
||||
|
||||
.white {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.black {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.blue {
|
||||
color: #1ba1e2;
|
||||
}
|
||||
|
||||
.brown {
|
||||
color: #a05000;
|
||||
}
|
||||
|
||||
.green {
|
||||
color: #393;
|
||||
}
|
||||
|
||||
.lime {
|
||||
color: #8cbf26;
|
||||
}
|
||||
|
||||
.magenta {
|
||||
color: #ff0097;
|
||||
}
|
||||
|
||||
.orange {
|
||||
color: #f09609;
|
||||
}
|
||||
|
||||
.pink {
|
||||
color: #e671b8;
|
||||
}
|
||||
|
||||
.purple {
|
||||
color: #a200ff;
|
||||
}
|
||||
|
||||
.red {
|
||||
color: #e51400;
|
||||
}
|
||||
|
||||
.teal {
|
||||
color: #00aba9;
|
||||
}
|
||||
|
||||
.whitebg {
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.blackbg {
|
||||
background-color: #000;
|
||||
}
|
||||
|
||||
.bluebg {
|
||||
background-color: #1ba1e2;
|
||||
}
|
||||
|
||||
.brownbg {
|
||||
background-color: #a05000;
|
||||
}
|
||||
|
||||
.greenbg {
|
||||
background-color: #393;
|
||||
}
|
||||
|
||||
.limebg {
|
||||
background-color: #8cbf26;
|
||||
}
|
||||
|
||||
.magentabg {
|
||||
background-color: #ff0097;
|
||||
}
|
||||
|
||||
.orangebg {
|
||||
background-color: #f09609;
|
||||
}
|
||||
|
||||
.pinkbg {
|
||||
background-color: #e671b8;
|
||||
}
|
||||
|
||||
.purplebg {
|
||||
background-color: #a200ff;
|
||||
}
|
||||
|
||||
.redbg {
|
||||
background-color: #e51400;
|
||||
}
|
||||
|
||||
.tealbg {
|
||||
background-color: #00aba9;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'RobotoRegular';
|
||||
src: url('../fonts/Roboto-Regular-webfont.eot');
|
||||
src: url('../fonts/Roboto-Regular-webfont.eot?#iefix') format('embedded-opentype'),url('../fonts/Roboto-Regular-webfont.woff') format('woff'),url('../fonts/Roboto-Regular-webfont.ttf') format('truetype'),url('../fonts/Roboto-Regular-webfont.svg#RobotoRegular') format('svg');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'RobotoLight';
|
||||
src: url('../fonts/Roboto-Light-webfont.eot');
|
||||
src: url('../fonts/Roboto-Light-webfont.eot?#iefix') format('embedded-opentype'),url('../fonts/Roboto-Light-webfont.woff') format('woff'),url('../fonts/Roboto-Light-webfont.ttf') format('truetype'),url('../fonts/Roboto-Light-webfont.svg#RobotoLight') format('svg');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
#headingstyles {
|
||||
font-family: "Segoe UI Light","Helvetica Neue",'RobotoLight',"Segoe UI","Segoe WP",sans-serif;
|
||||
font-weight: 100;
|
||||
margin-top: 5px;
|
||||
margin-bottom: 0px;
|
||||
text-transform: lowercase;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: "Segoe UI","Segoe WP","Helvetica Neue",'RobotoRegular',sans-serif;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
font-family: "Segoe UI Light","Helvetica Neue",'RobotoLight',"Segoe UI","Segoe WP",sans-serif;
|
||||
font-weight: 100;
|
||||
margin-top: 5px;
|
||||
margin-bottom: 0px;
|
||||
text-transform: lowercase;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 56px;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 42px;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 28px;
|
||||
}
|
||||
|
||||
h4, h5, h6 {
|
||||
font-weight: normal;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
ul.metro-list, ol.metro-list {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
ul.metro-list li, ol.metro-list li {
|
||||
display: block;
|
||||
list-style-type: none;
|
||||
border-left: solid 30px #1ba1e2;
|
||||
height: 20px;
|
||||
list-style-position: inside;
|
||||
margin: 10px 0;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
ul.metro-list {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
ol.metro-list {
|
||||
text-indent: -25px;
|
||||
counter-reset: item;
|
||||
}
|
||||
|
||||
ol.metro-list li:before {
|
||||
color: white;
|
||||
margin-right: 25px;
|
||||
content: counter(item) " ";
|
||||
counter-increment: item;
|
||||
}
|
||||
|
||||
.tile {
|
||||
-webkit-perspective: 0;
|
||||
-webkit-transform-style: preserve- 3 d;
|
||||
-webkit-transition: -webkit-transform 0.2s;
|
||||
float: left;
|
||||
margin-right: 10px;
|
||||
margin-bottom: 10px;
|
||||
text-align: center;
|
||||
padding: 5px;
|
||||
opacity: 0.75;
|
||||
}
|
||||
|
||||
.tile h1, .tile h2, .tile h3, .tile h4, .tile h5, .tile h6 {
|
||||
color: #fff;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
|
||||
.tile h2 {
|
||||
font-size: 1.75em;
|
||||
margin-top: -10px;
|
||||
margin-left: 0px;
|
||||
}
|
||||
|
||||
.tile a:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.tile img {
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.tile:hover {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.tiles {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.tilerow {
|
||||
float: left;
|
||||
-webkit-perspective: 0;
|
||||
-webkit-transform-style: preserve- 3 d;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
|
||||
.one {
|
||||
width: 130px;
|
||||
height: 130px;
|
||||
}
|
||||
|
||||
.two-h {
|
||||
width: 280px;
|
||||
height: 130px;
|
||||
}
|
||||
|
||||
.two-v {
|
||||
width: 130px;
|
||||
height: 280px;
|
||||
}
|
||||
|
||||
.firstcol, .secondcol, .thirdcol, .fourthcol, .fifthcol {
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.secondcol {
|
||||
margin-left: 150px;
|
||||
}
|
||||
|
||||
.thirdcol {
|
||||
margin-left: 300px;
|
||||
}
|
||||
|
||||
.fourthcol {
|
||||
margin-left: 450px;
|
||||
}
|
||||
|
||||
.fifthcol {
|
||||
margin-left: 600px;
|
||||
}
|
||||
|
||||
metro-pivot .headers {
|
||||
clear: both;
|
||||
display: block;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.metro-pivot .pivot-item h3, .metro-pivot .headers .header {
|
||||
font-family: "Segoe UI Light","Helvetica Neue",'RobotoLight',"Segoe UI","Segoe WP",sans-serif;
|
||||
font-weight: 100;
|
||||
margin-top: 5px;
|
||||
margin-bottom: 0px;
|
||||
text-transform: lowercase;
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
font-size: 42px;
|
||||
margin-right: 24px;
|
||||
padding: 0;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.metro-pivot .headers {
|
||||
white-space: nowrap;
|
||||
display: block;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.metro-pivot .pivot-item h3, .metro-pivot .headers .header {
|
||||
font-family: "Segoe UI Light","Helvetica Neue",'RobotoLight',"Segoe UI","Segoe WP",sans-serif;
|
||||
font-weight: 100;
|
||||
margin-top: 5px;
|
||||
margin-bottom: 0px;
|
||||
text-transform: lowercase;
|
||||
font-size: 42px;
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
padding: 0;
|
||||
cursor: pointer;
|
||||
margin-right: 24px;
|
||||
}
|
||||
|
||||
.metro-pivot .items {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.metro-pivot .items .pivotItem {
|
||||
display: block;
|
||||
white-space: normal;
|
||||
text-align: justify;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
article, aside, details, figcaption, figure, footer, header, hgroup, nav, section {
|
||||
display: block;
|
||||
}
|
||||
|
||||
audio, canvas, video {
|
||||
display: inline-block;
|
||||
*display: inline;
|
||||
*zoom: 1;
|
||||
}
|
||||
|
||||
audio:not([controls]) {
|
||||
display: none;
|
||||
}
|
||||
|
||||
html {
|
||||
font-size: 100%;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
-ms-text-size-adjust: 100%;
|
||||
}
|
||||
|
||||
a:focus {
|
||||
outline: thin dotted;
|
||||
outline: 5px auto -webkit-focus-ring-color;
|
||||
outline-offset: -2px;
|
||||
}
|
||||
|
||||
a:hover, a:active {
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
sub, sup {
|
||||
position: relative;
|
||||
font-size: 75%;
|
||||
line-height: 0;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
sup {
|
||||
top: -0.5em;
|
||||
}
|
||||
|
||||
sub {
|
||||
bottom: -0.25em;
|
||||
}
|
||||
|
||||
img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
border: 0;
|
||||
-ms-interpolation-mode: bicubic;
|
||||
}
|
||||
|
||||
button, input, select, textarea {
|
||||
margin: 0;
|
||||
font-size: 100%;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
button, input {
|
||||
*overflow: visible;
|
||||
line-height: normal;
|
||||
}
|
||||
|
||||
button::-moz-focus-inner, input::-moz-focus-inner {
|
||||
padding: 0;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
button, input[type="button"], input[type="reset"], input[type="submit"] {
|
||||
cursor: pointer;
|
||||
-webkit-appearance: button;
|
||||
}
|
||||
|
||||
input[type="search"] {
|
||||
-webkit-appearance: textfield;
|
||||
-webkit-box-sizing: content-box;
|
||||
-moz-box-sizing: content-box;
|
||||
box-sizing: content-box;
|
||||
}
|
||||
|
||||
input[type="search"]::-webkit-search-decoration, input[type="search"]::-webkit-search-cancel-button {
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
|
||||
textarea {
|
||||
overflow: auto;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.container {
|
||||
width: 940px;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
*zoom: 1;
|
||||
}
|
||||
|
||||
.container:before, .container:after {
|
||||
display: table;
|
||||
content: "";
|
||||
}
|
||||
|
||||
.container:after {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.container-fluid {
|
||||
padding-left: 20px;
|
||||
padding-right: 20px;
|
||||
*zoom: 1;
|
||||
}
|
||||
|
||||
.container-fluid:before, .container-fluid:after {
|
||||
display: table;
|
||||
content: "";
|
||||
}
|
||||
|
||||
.container-fluid:after {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.row {
|
||||
margin-left: -20px;
|
||||
*zoom: 1;
|
||||
}
|
||||
|
||||
.row:before, .row:after {
|
||||
display: table;
|
||||
content: "";
|
||||
}
|
||||
|
||||
.row:after {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
[class*="span"] {
|
||||
float: left;
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
.span1 {
|
||||
width: 60px;
|
||||
}
|
||||
|
||||
.span2 {
|
||||
width: 140px;
|
||||
}
|
||||
|
||||
.span3 {
|
||||
width: 220px;
|
||||
}
|
||||
|
||||
.span4 {
|
||||
width: 300px;
|
||||
}
|
||||
|
||||
.span5 {
|
||||
width: 380px;
|
||||
}
|
||||
|
||||
.span6 {
|
||||
width: 460px;
|
||||
}
|
||||
|
||||
.span7 {
|
||||
width: 540px;
|
||||
}
|
||||
|
||||
.span8 {
|
||||
width: 620px;
|
||||
}
|
||||
|
||||
.span9 {
|
||||
width: 700px;
|
||||
}
|
||||
|
||||
.span10 {
|
||||
width: 780px;
|
||||
}
|
||||
|
||||
.span11 {
|
||||
width: 860px;
|
||||
}
|
||||
|
||||
.span12, .container {
|
||||
width: 940px;
|
||||
}
|
||||
|
||||
.offset1 {
|
||||
margin-left: 100px;
|
||||
}
|
||||
|
||||
.offset2 {
|
||||
margin-left: 180px;
|
||||
}
|
||||
|
||||
.offset3 {
|
||||
margin-left: 260px;
|
||||
}
|
||||
|
||||
.offset4 {
|
||||
margin-left: 340px;
|
||||
}
|
||||
|
||||
.offset5 {
|
||||
margin-left: 420px;
|
||||
}
|
||||
|
||||
.offset6 {
|
||||
margin-left: 500px;
|
||||
}
|
||||
|
||||
.offset7 {
|
||||
margin-left: 580px;
|
||||
}
|
||||
|
||||
.offset8 {
|
||||
margin-left: 660px;
|
||||
}
|
||||
|
||||
.offset9 {
|
||||
margin-left: 740px;
|
||||
}
|
||||
|
||||
.offset10 {
|
||||
margin-left: 820px;
|
||||
}
|
||||
|
||||
.offset11 {
|
||||
margin-left: 900px;
|
||||
}
|
||||
|
||||
.row-fluid {
|
||||
width: 100%;
|
||||
*zoom: 1;
|
||||
}
|
||||
|
||||
.row-fluid:before, .row-fluid:after {
|
||||
display: table;
|
||||
content: "";
|
||||
}
|
||||
|
||||
.row-fluid:after {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.row-fluid > [class*="span"] {
|
||||
float: left;
|
||||
margin-left: 2.13%;
|
||||
}
|
||||
|
||||
.row-fluid > [class*="span"]:first-child {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.row-fluid .span1 {
|
||||
width: 6.38%;
|
||||
}
|
||||
|
||||
.row-fluid .span2 {
|
||||
width: 14.89%;
|
||||
}
|
||||
|
||||
.row-fluid .span3 {
|
||||
width: 23.4%;
|
||||
}
|
||||
|
||||
.row-fluid .span4 {
|
||||
width: 31.91%;
|
||||
}
|
||||
|
||||
.row-fluid .span5 {
|
||||
width: 40.43%;
|
||||
}
|
||||
|
||||
.row-fluid .span6 {
|
||||
width: 48.94%;
|
||||
}
|
||||
|
||||
.row-fluid .span7 {
|
||||
width: 57.45%;
|
||||
}
|
||||
|
||||
.row-fluid .span8 {
|
||||
width: 65.96%;
|
||||
}
|
||||
|
||||
.row-fluid .span9 {
|
||||
width: 74.47%;
|
||||
}
|
||||
|
||||
.row-fluid .span10 {
|
||||
width: 82.98%;
|
||||
}
|
||||
|
||||
.row-fluid .span11 {
|
||||
width: 91.49%;
|
||||
}
|
||||
|
||||
.row-fluid .span12 {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
@-webkit-keyframes progress-bar-stripes {
|
||||
from {
|
||||
background-position: 0 0;
|
||||
}
|
||||
|
||||
to {
|
||||
background-position: 40px 0;
|
||||
}
|
||||
}
|
||||
|
||||
@-moz-keyframes progress-bar-stripes {
|
||||
from {
|
||||
background-position: 0 0;
|
||||
}
|
||||
|
||||
to {
|
||||
background-position: 40px 0;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes progress-bar-stripes {
|
||||
from {
|
||||
background-position: 0 0;
|
||||
}
|
||||
|
||||
to {
|
||||
background-position: 40px 0;
|
||||
}
|
||||
}
|
||||
|
||||
.progress {
|
||||
overflow: hidden;
|
||||
height: 18px;
|
||||
margin-bottom: 18px;
|
||||
background-color: #f7f7f7;
|
||||
background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9);
|
||||
background-image: -ms-linear-gradient(top, #f5f5f5, #f9f9f9);
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9));
|
||||
background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9);
|
||||
background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9);
|
||||
background-image: linear-gradient(top, #f5f5f5, #f9f9f9);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f5f5f5', endColorstr='#f9f9f9', GradientType=0);
|
||||
-webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
|
||||
-moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
|
||||
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
|
||||
-webkit-border-radius: 4px;
|
||||
-moz-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.progress .bar {
|
||||
width: 0%;
|
||||
height: 18px;
|
||||
color: #fff;
|
||||
font-size: 12px;
|
||||
text-align: center;
|
||||
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
|
||||
background-color: #5ebdeb;
|
||||
background-image: -moz-linear-gradient(top, #8bd0f1, #1ba1e2);
|
||||
background-image: -ms-linear-gradient(top, #8bd0f1, #1ba1e2);
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#8bd0f1), to(#1ba1e2));
|
||||
background-image: -webkit-linear-gradient(top, #8bd0f1, #1ba1e2);
|
||||
background-image: -o-linear-gradient(top, #8bd0f1, #1ba1e2);
|
||||
background-image: linear-gradient(top, #8bd0f1, #1ba1e2);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#8bd0f1', endColorstr='#1ba1e2', GradientType=0);
|
||||
-webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
|
||||
-moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
|
||||
box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
-webkit-transition: width 0.6s ease;
|
||||
-moz-transition: width 0.6s ease;
|
||||
-ms-transition: width 0.6s ease;
|
||||
-o-transition: width 0.6s ease;
|
||||
transition: width 0.6s ease;
|
||||
}
|
||||
|
||||
.progress-striped .bar {
|
||||
background-color: #1ba1e2;
|
||||
background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
|
||||
background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
||||
background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
||||
background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
||||
background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
||||
background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
||||
-webkit-background-size: 40px 40px;
|
||||
-moz-background-size: 40px 40px;
|
||||
-o-background-size: 40px 40px;
|
||||
background-size: 40px 40px;
|
||||
}
|
||||
|
||||
.progress.active .bar {
|
||||
-webkit-animation: progress-bar-stripes 2s linear infinite;
|
||||
-moz-animation: progress-bar-stripes 2s linear infinite;
|
||||
animation: progress-bar-stripes 2s linear infinite;
|
||||
}
|
||||
|
||||
.progress-danger .bar {
|
||||
background-color: #dd514c;
|
||||
background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);
|
||||
background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35);
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35));
|
||||
background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35);
|
||||
background-image: -o-linear-gradient(top, #ee5f5b, #c43c35);
|
||||
background-image: linear-gradient(top, #ee5f5b, #c43c35);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0);
|
||||
}
|
||||
|
||||
.progress-danger.progress-striped .bar {
|
||||
background-color: #ee5f5b;
|
||||
background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
|
||||
background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
||||
background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
||||
background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
||||
background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
||||
background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
||||
}
|
||||
|
||||
.progress-success .bar {
|
||||
background-color: #5eb95e;
|
||||
background-image: -moz-linear-gradient(top, #62c462, #57a957);
|
||||
background-image: -ms-linear-gradient(top, #62c462, #57a957);
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957));
|
||||
background-image: -webkit-linear-gradient(top, #62c462, #57a957);
|
||||
background-image: -o-linear-gradient(top, #62c462, #57a957);
|
||||
background-image: linear-gradient(top, #62c462, #57a957);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0);
|
||||
}
|
||||
|
||||
.progress-success.progress-striped .bar {
|
||||
background-color: #62c462;
|
||||
background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
|
||||
background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
||||
background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
||||
background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
||||
background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
||||
background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
||||
}
|
||||
|
||||
.progress-info .bar {
|
||||
background-color: #4bb1cf;
|
||||
background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);
|
||||
background-image: -ms-linear-gradient(top, #5bc0de, #339bb9);
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9));
|
||||
background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9);
|
||||
background-image: -o-linear-gradient(top, #5bc0de, #339bb9);
|
||||
background-image: linear-gradient(top, #5bc0de, #339bb9);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0);
|
||||
}
|
||||
|
||||
.progress-info.progress-striped .bar {
|
||||
background-color: #5bc0de;
|
||||
background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
|
||||
background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
||||
background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
||||
background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
||||
background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
||||
background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
||||
}
|
||||
|
||||
.pull-right {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.pull-left {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.hide {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.show {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.invisible {
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #1ba1e2;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: #13709e;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
pre {
|
||||
padding: 15px;
|
||||
border: 1px solid #aaa;
|
||||
background: #fafafa;
|
||||
}
|
||||
|
||||
code {
|
||||
background: #fafafa;
|
||||
border: 1px solid #aaa;
|
||||
padding-left: 5px;
|
||||
padding-right: 5px;
|
||||
}
|
||||
|
||||
.clear {
|
||||
clear: both;
|
||||
}
|
|
@ -1,160 +0,0 @@
|
|||
body>h1{
|
||||
font:60px 'Ubuntu Condensed', sans-serif;
|
||||
font-weight:lighter;
|
||||
color:#fff;
|
||||
cursor:default;
|
||||
margin:40px 0 0 5%;
|
||||
}
|
||||
|
||||
#center{
|
||||
margin:0 auto;
|
||||
width:2100px;
|
||||
padding:50px;
|
||||
}
|
||||
|
||||
#center a:focus{ outline:0 }
|
||||
|
||||
#center section{
|
||||
width:910px;
|
||||
display:inline-block;
|
||||
margin-right:100px;
|
||||
}
|
||||
|
||||
#center a{
|
||||
display:block;
|
||||
float:left;
|
||||
margin:4px;
|
||||
height:100px;
|
||||
width:250px;
|
||||
padding:25px;
|
||||
background:#5fbfbf;
|
||||
z-index:0;
|
||||
color:#fff;
|
||||
font-size:18px;
|
||||
font:18px 'Cantarell', sans-serif;
|
||||
text-decoration:none;
|
||||
|
||||
}
|
||||
#center a span{
|
||||
letter-spacing:-3px;
|
||||
font-size:50px;
|
||||
text-transform:uppercase
|
||||
}
|
||||
|
||||
#center a img{
|
||||
display:inline;
|
||||
margin:-25px 0 0 -25px
|
||||
}
|
||||
|
||||
#center a.normal, #center a.numbers{
|
||||
background: #479ea8;
|
||||
background: -moz-linear-gradient(left, #479ea8 1%, #53b6bc 98%);
|
||||
background: -webkit-gradient(linear, left top, right top, color-stop(1%,#479ea8), color-stop(98%,#53b6bc));
|
||||
background: -webkit-linear-gradient(left, #479ea8 1%,#53b6bc 98%);
|
||||
background: -o-linear-gradient(left, #479ea8 1%,#53b6bc 98%);
|
||||
background: -ms-linear-gradient(left, #479ea8 1%,#53b6bc 98%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#479ea8', endColorstr='#53b6bc',GradientType=1 );
|
||||
background: linear-gradient(left, #479ea8 1%,#53b6bc 98%);
|
||||
border:1px solid #59b0b6
|
||||
}
|
||||
#center a.normal:hover, #center a.numbers:hover{
|
||||
background:#53b6bc;
|
||||
}
|
||||
#center a.fulltext{
|
||||
background: #de8211; /* Old browsers */
|
||||
background: -moz-linear-gradient(left, #de8211 0%, #e3a419 94%);
|
||||
background: -webkit-gradient(linear, left top, right top, color-stop(0%,#de8211), color-stop(94%,#e3a419));
|
||||
background: -webkit-linear-gradient(left, #de8211 0%,#e3a419 94%);
|
||||
background: -o-linear-gradient(left, #de8211 0%,#e3a419 94%);
|
||||
background: -ms-linear-gradient(left, #de8211 0%,#e3a419 94%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#de8211', endColorstr='#e3a419',GradientType=1 );
|
||||
background: linear-gradient(left, #de8211 0%,#e3a419 94%);
|
||||
border:1px solid #d8923d;
|
||||
font-size:16px;
|
||||
}
|
||||
#center a.fulltext:hover{
|
||||
background:#e3a419;
|
||||
}
|
||||
#center a.icon{
|
||||
background: #7ca024;
|
||||
background: -moz-linear-gradient(left, #7ca024 3%, #9ab92f 98%);
|
||||
background: -webkit-gradient(linear, left top, right top, color-stop(3%,#7ca024), color-stop(98%,#9ab92f));
|
||||
background: -webkit-linear-gradient(left, #7ca024 3%,#9ab92f 98%);
|
||||
background: -o-linear-gradient(left, #7ca024 3%,#9ab92f 98%);
|
||||
background: -ms-linear-gradient(left, #7ca024 3%,#9ab92f 98%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#7ca024', endColorstr='#9ab92f',GradientType=1 );
|
||||
background: linear-gradient(left, #7ca024 3%,#9ab92f 98%);
|
||||
width:100px;
|
||||
border:1px solid #aab662
|
||||
}
|
||||
#center a.icon:hover{
|
||||
background:#9ab92f;
|
||||
}
|
||||
|
||||
#center a.preview{
|
||||
background: #c74430; /* Old browsers */
|
||||
background: -moz-linear-gradient(left, #c74430 0%, #d85636 95%);
|
||||
background: -webkit-gradient(linear, left top, right top, color-stop(0%,#c74430), color-stop(95%,#d85636));
|
||||
background: -webkit-linear-gradient(left, #c74430 0%,#d85636 95%);
|
||||
background: -o-linear-gradient(left, #c74430 0%,#d85636 95%);
|
||||
background: -ms-linear-gradient(left, #c74430 0%,#d85636 95%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#c74430', endColorstr='#d85636',GradientType=1 );
|
||||
background: linear-gradient(left, #c74430 0%,#d85636 95%);
|
||||
font-size:30px;
|
||||
border:1px solid #d55b46;
|
||||
border-top:0
|
||||
}
|
||||
#center a.preview:hover{
|
||||
background:#d85636;
|
||||
}
|
||||
#center a.preview img{
|
||||
display:block;
|
||||
margin-bottom:5px
|
||||
}
|
||||
|
||||
#center a.search{
|
||||
background: #631254; /* Old browsers */
|
||||
background: -moz-linear-gradient(left, #631254 4%, #7c1d6e 98%);
|
||||
background: -webkit-gradient(linear, left top, right top, color-stop(4%,#631254), color-stop(98%,#7c1d6e));
|
||||
background: -webkit-linear-gradient(left, #631254 4%,#7c1d6e 98%);
|
||||
background: -o-linear-gradient(left, #631254 4%,#7c1d6e 98%);
|
||||
background: -ms-linear-gradient(left, #631254 4%,#7c1d6e 98%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#631254', endColorstr='#7c1d6e',GradientType=1 );
|
||||
background: linear-gradient(left, #631254 4%,#7c1d6e 98%);
|
||||
border:1px solid #7b387f;
|
||||
width:100px;
|
||||
}
|
||||
#center a.search:hover{
|
||||
background:#7c1d6e;
|
||||
}
|
||||
|
||||
#center a.twitter{
|
||||
background: #652d9a;
|
||||
background: -moz-linear-gradient(left, #652d9a 3%, #7f37b5 98%);
|
||||
background: -webkit-gradient(linear, left top, right top, color-stop(3%,#652d9a), color-stop(98%,#7f37b5));
|
||||
background: -webkit-linear-gradient(left, #652d9a 3%,#7f37b5 98%);
|
||||
background: -o-linear-gradient(left, #652d9a 3%,#7f37b5 98%);
|
||||
background: -ms-linear-gradient(left, #652d9a 3%,#7f37b5 98%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#652d9a', endColorstr='#7f37b5',GradientType=1 );
|
||||
background: linear-gradient(left, #652d9a 3%,#7f37b5 98%);
|
||||
border:1px solid #8148b1;
|
||||
font-size:16px;
|
||||
text-shadow:1px 1px 2px ##652d9a;
|
||||
width:260px;
|
||||
height:110px;
|
||||
padding-top:15px;
|
||||
padding-left:15px;
|
||||
}
|
||||
#center a.twitter:hover{background:#7f37b5}
|
||||
#center a.twitter>span{font-size:20px;letter-spacing:-3px}
|
||||
#center a.twitter>i{font-size:.9em;font-style:italic;}
|
||||
#center a.twitter>img{
|
||||
float:left;
|
||||
margin:0 5px 0 0;
|
||||
}
|
||||
|
||||
#center a.images{
|
||||
padding:0;
|
||||
width:302px;
|
||||
height:152px;
|
||||
}
|
|
@ -1,36 +0,0 @@
|
|||
.stat-item {
|
||||
background: whiteSmoke;
|
||||
font-weight: 100;
|
||||
}
|
||||
|
||||
|
||||
.user-stats {
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
.stat-value {
|
||||
font-size: 50px;
|
||||
padding-bottom: 20px;
|
||||
padding-left: 5px;
|
||||
border-bottom-style: solid;
|
||||
border-bottom-width: 10px;
|
||||
}
|
||||
|
||||
.stat-size {
|
||||
color: #1081CD;
|
||||
}
|
||||
|
||||
.stat-count {
|
||||
color: #8EBD40;
|
||||
}
|
||||
|
||||
.stat-last-backup {
|
||||
color: #988CC3;
|
||||
}
|
||||
|
||||
.stat-lable {
|
||||
color: #57606B;
|
||||
margin-bottom: 15px;
|
||||
padding-left: 5px;
|
||||
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.Mvc;
|
||||
|
||||
namespace NzbDrone.Web.Controllers
|
||||
{
|
||||
public class V2Controller : Controller
|
||||
{
|
||||
//
|
||||
// GET: /V2/
|
||||
|
||||
public ActionResult Index()
|
||||
{
|
||||
return View();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -182,102 +182,91 @@
|
|||
<ItemGroup>
|
||||
<Compile Include="App_Start\DataTablesMvc.cs" />
|
||||
<Compile Include="App_Start\MiniProfiler.cs" />
|
||||
<Compile Include="CassetteConfiguration.cs" />
|
||||
<Content Include="_backboneApp\JsLibraries\backbone.marionette.extend.js" />
|
||||
<Compile Include="_backboneApp\CassetteConfiguration.cs" />
|
||||
<Compile Include="Controllers\ImageController.cs" />
|
||||
<Compile Include="Controllers\SearchHistoryController.cs" />
|
||||
<Compile Include="Controllers\V2Controller.cs" />
|
||||
<Compile Include="Helpers\Binders\QualityTypesBinder.cs" />
|
||||
<Compile Include="Helpers\RenderActionHelper.cs" />
|
||||
<Compile Include="Helpers\Validation\RequiredIfAnyAttribute.cs" />
|
||||
<Compile Include="Helpers\Validation\RequiredIfAttribute.cs" />
|
||||
<Content Include="AddSeries\Views\addSeriesView.js" />
|
||||
<Content Include="AddSeries\Views\addSeries.css" />
|
||||
<Content Include="app.js" />
|
||||
<Content Include="Content2\base.css" />
|
||||
<Content Include="Content2\bootstrap-metro.css" />
|
||||
<Content Include="Content2\bootstrap-overrides.css" />
|
||||
<Content Include="Content2\Bootstrap\accordion.less" />
|
||||
<Content Include="Content2\Bootstrap\alerts.less" />
|
||||
<Content Include="Content2\Bootstrap\bootstrap.less" />
|
||||
<Content Include="Content2\Bootstrap\breadcrumbs.less" />
|
||||
<Content Include="Content2\Bootstrap\bundle.txt" />
|
||||
<Content Include="Content2\Bootstrap\button-groups.less" />
|
||||
<Content Include="Content2\Bootstrap\buttons.less" />
|
||||
<Content Include="Content2\Bootstrap\carousel.less" />
|
||||
<Content Include="Content2\Bootstrap\close.less" />
|
||||
<Content Include="Content2\Bootstrap\code.less" />
|
||||
<Content Include="Content2\Bootstrap\component-animations.less" />
|
||||
<Content Include="Content2\Bootstrap\dropdowns.less" />
|
||||
<Content Include="Content2\Bootstrap\font-awesome-ie7.less" />
|
||||
<Content Include="Content2\Bootstrap\font-awesome.less" />
|
||||
<Content Include="Content2\Bootstrap\forms.less" />
|
||||
<Content Include="Content2\Bootstrap\grid.less" />
|
||||
<Content Include="Content2\Bootstrap\hero-unit.less" />
|
||||
<Content Include="Content2\Bootstrap\labels-badges.less" />
|
||||
<Content Include="Content2\Bootstrap\layouts.less" />
|
||||
<Content Include="Content2\Bootstrap\mixins.less" />
|
||||
<Content Include="Content2\Bootstrap\mixins.min.css">
|
||||
<DependentUpon>mixins.less</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="Content2\Bootstrap\modals.less" />
|
||||
<Content Include="Content2\Bootstrap\navbar.less" />
|
||||
<Content Include="Content2\Bootstrap\navs.less" />
|
||||
<Content Include="Content2\Bootstrap\pager.less" />
|
||||
<Content Include="Content2\Bootstrap\pagination.less" />
|
||||
<Content Include="Content2\Bootstrap\popovers.less" />
|
||||
<Content Include="Content2\Bootstrap\progress-bars.less" />
|
||||
<Content Include="Content2\Bootstrap\reset.less" />
|
||||
<Content Include="Content2\Bootstrap\responsive-1200px-min.less" />
|
||||
<Content Include="Content2\Bootstrap\responsive-767px-max.less" />
|
||||
<Content Include="Content2\Bootstrap\responsive-768px-979px.less" />
|
||||
<Content Include="Content2\Bootstrap\responsive-navbar.less" />
|
||||
<Content Include="Content2\Bootstrap\responsive-utilities.less" />
|
||||
<Content Include="Content2\Bootstrap\responsive.less" />
|
||||
<Content Include="Content2\Bootstrap\scaffolding.less" />
|
||||
<Content Include="Content2\Bootstrap\sprites.less" />
|
||||
<Content Include="Content2\Bootstrap\tables.less" />
|
||||
<Content Include="Content2\Bootstrap\thumbnails.less" />
|
||||
<Content Include="Content2\Bootstrap\tooltip.less" />
|
||||
<Content Include="Content2\Bootstrap\type.less" />
|
||||
<Content Include="Content2\Bootstrap\utilities.less" />
|
||||
<Content Include="Content2\Bootstrap\variables.less" />
|
||||
<Content Include="Content2\Bootstrap\wells.less" />
|
||||
<Content Include="Content2\FancyBox\jquery.fancybox.css" />
|
||||
<Content Include="Content2\FancyBox\jquery.fancybox.js" />
|
||||
<Content Include="Content2\file-browser.css" />
|
||||
<Content Include="Content2\font\fontawesome-webfont.eot" />
|
||||
<Content Include="Content2\font\fontawesome-webfont.svg" />
|
||||
<Content Include="Content2\font\fontawesome-webfont.ttf" />
|
||||
<Content Include="Content2\font\fontawesome-webfont.woff" />
|
||||
<Content Include="Content2\Images\ajax-loader.gif" />
|
||||
<Content Include="Content2\Images\apple-touch-icon-114.png" />
|
||||
<Content Include="Content2\Images\apple-touch-icon-144.png" />
|
||||
<Content Include="Content2\Images\azure.gif" />
|
||||
<Content Include="Content2\Images\background.jpg" />
|
||||
<Content Include="Content2\Images\gritter.png" />
|
||||
<Content Include="Content2\Images\icons.png" />
|
||||
<Content Include="Content2\Images\Indexers\FileSharingTalk.png" />
|
||||
<Content Include="Content2\Images\Indexers\Newznab.png" />
|
||||
<Content Include="Content2\Images\Indexers\Newznab_dognzb.cr.png" />
|
||||
<Content Include="Content2\Images\Indexers\Newznab_nzb.su.png" />
|
||||
<Content Include="Content2\Images\Indexers\Newznab_Nzbs.org.png" />
|
||||
<Content Include="Content2\Images\Indexers\NzbClub.png" />
|
||||
<Content Include="Content2\Images\Indexers\NzbIndex.png" />
|
||||
<Content Include="Content2\Images\Indexers\NzbsRus.png" />
|
||||
<Content Include="Content2\Images\Indexers\Unknown.png" />
|
||||
<Content Include="Content2\Images\Indexers\WomblesIndex.png" />
|
||||
<Content Include="Content2\Images\logo.png" />
|
||||
<Content Include="Content2\Images\logo_small.png" />
|
||||
<Content Include="Content2\Images\spinner.gif" />
|
||||
<Content Include="Content2\Images\thetvdb.png" />
|
||||
<Content Include="Content2\Intelisense\bootstrap-responsive.css" />
|
||||
<Content Include="Content2\Intelisense\bootstrap.css" />
|
||||
<Content Include="Content2\Menu.css" />
|
||||
<Content Include="Content2\metro.blue.css" />
|
||||
<Content Include="Content2\metro.css" />
|
||||
<Content Include="Content2\New folder\jquery.lhpMegaImgViewer.1.1.js" />
|
||||
<Content Include="Content2\New folder\jquery.lhpMegaImgViewer.2.0.js" />
|
||||
<Content Include="Content2\SmothZoomPan\smothzoompan.js" />
|
||||
<Content Include="Content2\stats.css" />
|
||||
<Content Include="_backboneApp\AddSeries\addSeriesView.js" />
|
||||
<Content Include="_backboneApp\AddSeries\addSeries.css" />
|
||||
<Content Include="_backboneApp\app.js" />
|
||||
<Content Include="_backboneApp\Content\base.css" />
|
||||
<Content Include="_backboneApp\Content\Bootstrap\accordion.less" />
|
||||
<Content Include="_backboneApp\Content\Bootstrap\alerts.less" />
|
||||
<Content Include="_backboneApp\Content\Bootstrap\bootstrap.less" />
|
||||
<Content Include="_backboneApp\Content\Bootstrap\breadcrumbs.less" />
|
||||
<Content Include="_backboneApp\Content\Bootstrap\bundle.txt" />
|
||||
<Content Include="_backboneApp\Content\Bootstrap\button-groups.less" />
|
||||
<Content Include="_backboneApp\Content\Bootstrap\buttons.less" />
|
||||
<Content Include="_backboneApp\Content\Bootstrap\carousel.less" />
|
||||
<Content Include="_backboneApp\Content\Bootstrap\close.less" />
|
||||
<Content Include="_backboneApp\Content\Bootstrap\code.less" />
|
||||
<Content Include="_backboneApp\Content\Bootstrap\component-animations.less" />
|
||||
<Content Include="_backboneApp\Content\Bootstrap\dropdowns.less" />
|
||||
<Content Include="_backboneApp\Content\Bootstrap\font-awesome-ie7.less" />
|
||||
<Content Include="_backboneApp\Content\Bootstrap\font-awesome.less" />
|
||||
<Content Include="_backboneApp\Content\Bootstrap\forms.less" />
|
||||
<Content Include="_backboneApp\Content\Bootstrap\grid.less" />
|
||||
<Content Include="_backboneApp\Content\Bootstrap\hero-unit.less" />
|
||||
<Content Include="_backboneApp\Content\Bootstrap\labels-badges.less" />
|
||||
<Content Include="_backboneApp\Content\Bootstrap\layouts.less" />
|
||||
<Content Include="_backboneApp\Content\Bootstrap\mixins.less" />
|
||||
<Content Include="_backboneApp\Content\Bootstrap\modals.less" />
|
||||
<Content Include="_backboneApp\Content\Bootstrap\navbar.less" />
|
||||
<Content Include="_backboneApp\Content\Bootstrap\navs.less" />
|
||||
<Content Include="_backboneApp\Content\Bootstrap\pager.less" />
|
||||
<Content Include="_backboneApp\Content\Bootstrap\pagination.less" />
|
||||
<Content Include="_backboneApp\Content\Bootstrap\popovers.less" />
|
||||
<Content Include="_backboneApp\Content\Bootstrap\progress-bars.less" />
|
||||
<Content Include="_backboneApp\Content\Bootstrap\reset.less" />
|
||||
<Content Include="_backboneApp\Content\Bootstrap\responsive-1200px-min.less" />
|
||||
<Content Include="_backboneApp\Content\Bootstrap\responsive-767px-max.less" />
|
||||
<Content Include="_backboneApp\Content\Bootstrap\responsive-768px-979px.less" />
|
||||
<Content Include="_backboneApp\Content\Bootstrap\responsive-navbar.less" />
|
||||
<Content Include="_backboneApp\Content\Bootstrap\responsive-utilities.less" />
|
||||
<Content Include="_backboneApp\Content\Bootstrap\responsive.less" />
|
||||
<Content Include="_backboneApp\Content\Bootstrap\scaffolding.less" />
|
||||
<Content Include="_backboneApp\Content\Bootstrap\sprites.less" />
|
||||
<Content Include="_backboneApp\Content\Bootstrap\tables.less" />
|
||||
<Content Include="_backboneApp\Content\Bootstrap\thumbnails.less" />
|
||||
<Content Include="_backboneApp\Content\Bootstrap\tooltip.less" />
|
||||
<Content Include="_backboneApp\Content\Bootstrap\type.less" />
|
||||
<Content Include="_backboneApp\Content\Bootstrap\utilities.less" />
|
||||
<Content Include="_backboneApp\Content\Bootstrap\variables.less" />
|
||||
<Content Include="_backboneApp\Content\Bootstrap\wells.less" />
|
||||
<Content Include="_backboneApp\Content\font\fontawesome-webfont.eot" />
|
||||
<Content Include="_backboneApp\Content\font\fontawesome-webfont.svg" />
|
||||
<Content Include="_backboneApp\Content\font\fontawesome-webfont.ttf" />
|
||||
<Content Include="_backboneApp\Content\font\fontawesome-webfont.woff" />
|
||||
<Content Include="_backboneApp\Content\Images\ajax-loader.gif" />
|
||||
<Content Include="_backboneApp\Content\Images\apple-touch-icon-114.png" />
|
||||
<Content Include="_backboneApp\Content\Images\apple-touch-icon-144.png" />
|
||||
<Content Include="_backboneApp\Content\Images\azure.gif" />
|
||||
<Content Include="_backboneApp\Content\Images\background.jpg" />
|
||||
<Content Include="_backboneApp\Content\Images\gritter.png" />
|
||||
<Content Include="_backboneApp\Content\Images\icons.png" />
|
||||
<Content Include="_backboneApp\Content\Images\Indexers\FileSharingTalk.png" />
|
||||
<Content Include="_backboneApp\Content\Images\Indexers\Newznab.png" />
|
||||
<Content Include="_backboneApp\Content\Images\Indexers\Newznab_dognzb.cr.png" />
|
||||
<Content Include="_backboneApp\Content\Images\Indexers\Newznab_nzb.su.png" />
|
||||
<Content Include="_backboneApp\Content\Images\Indexers\Newznab_Nzbs.org.png" />
|
||||
<Content Include="_backboneApp\Content\Images\Indexers\NzbClub.png" />
|
||||
<Content Include="_backboneApp\Content\Images\Indexers\NzbIndex.png" />
|
||||
<Content Include="_backboneApp\Content\Images\Indexers\NzbsRus.png" />
|
||||
<Content Include="_backboneApp\Content\Images\Indexers\Unknown.png" />
|
||||
<Content Include="_backboneApp\Content\Images\Indexers\WomblesIndex.png" />
|
||||
<Content Include="_backboneApp\Content\Images\logo.png" />
|
||||
<Content Include="_backboneApp\Content\Images\logo_small.png" />
|
||||
<Content Include="_backboneApp\Content\Images\spinner.gif" />
|
||||
<Content Include="_backboneApp\Content\Images\thetvdb.png" />
|
||||
<Content Include="_backboneApp\Content\Intelisense\bootstrap-responsive.css" />
|
||||
<Content Include="_backboneApp\Content\Intelisense\bootstrap.css" />
|
||||
<Content Include="_backboneApp\Content\Menu.css" />
|
||||
<Content Include="_backboneApp\JsLibraries\bootstrap.js" />
|
||||
<Content Include="Content\DataTables-NzbDrone\media\images\sort_both.png" />
|
||||
<Content Include="Content\DataTables-NzbDrone\media\images\sort_desc_disabled.png" />
|
||||
<Content Include="Content\font-awesome-ie7.css" />
|
||||
|
@ -386,36 +375,19 @@
|
|||
<Compile Include="Models\UpcomingEpisodeModel.cs" />
|
||||
<Compile Include="Models\UpdateModel.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Content Include="JsLibraries\backbone.js" />
|
||||
<Content Include="JsLibraries\backbone.marionette.js" />
|
||||
<None Include="JsLibraries\jquery-1.8.2.intellisense.js" />
|
||||
<Content Include="JsLibraries\jquery-1.8.2.js" />
|
||||
<Content Include="JsLibraries\jquery-ui-1.9.0.js" />
|
||||
<Content Include="JsLibraries\underscore.js" />
|
||||
<Content Include="Scripts2\bootstrap-mvc.js" />
|
||||
<Content Include="Scripts2\bootstrap.js" />
|
||||
<None Include="Scripts2\jquery-1.8.2.intellisense.js" />
|
||||
<Content Include="Scripts2\jquery-1.8.2.js" />
|
||||
<Content Include="Scripts2\jquery-ui-1.8.23.js" />
|
||||
<Content Include="Scripts2\jquery.livequery.js" />
|
||||
<Content Include="Scripts2\jquery.unobtrusive-ajax.js" />
|
||||
<None Include="Scripts2\jquery.validate-vsdoc.js" />
|
||||
<Content Include="Scripts2\jquery.validate.js" />
|
||||
<Content Include="Scripts2\jquery.validate.unobtrusive.js" />
|
||||
<Content Include="Scripts2\Metro\jquery.metro.js" />
|
||||
<Content Include="Scripts2\Metro\tilt.js" />
|
||||
<Content Include="Scripts2\MicrosoftAjax.debug.js" />
|
||||
<Content Include="Scripts2\MicrosoftAjax.js" />
|
||||
<Content Include="Scripts2\MicrosoftMvcAjax.debug.js" />
|
||||
<Content Include="Scripts2\MicrosoftMvcAjax.js" />
|
||||
<Content Include="Scripts2\MicrosoftMvcValidation.debug.js" />
|
||||
<Content Include="Scripts2\MicrosoftMvcValidation.js" />
|
||||
<Content Include="Scripts2\modernizr-2.6.2.js" />
|
||||
<Content Include="_backboneApp\JsLibraries\backbone.js" />
|
||||
<Content Include="_backboneApp\JsLibraries\backbone.marionette.js" />
|
||||
<Content Include="_backboneApp\AddSeries\addSeriesTemplate.html" />
|
||||
<None Include="_backboneApp\JsLibraries\jquery-1.8.2.intellisense.js" />
|
||||
<Content Include="_backboneApp\JsLibraries\jquery-1.8.2.js" />
|
||||
<Content Include="_backboneApp\JsLibraries\jquery-ui-1.9.0.js" />
|
||||
<Content Include="_backboneApp\JsLibraries\underscore.js" />
|
||||
<Content Include="Views\System\Index.cshtml" />
|
||||
<Content Include="Views\System\Logs.cshtml" />
|
||||
<Content Include="Views\Settings\Nzbget.cshtml" />
|
||||
<Content Include="Views\Shared\_Bootstrap.cshtml" />
|
||||
<Content Include="Views\AddSeries\bt.cshtml" />
|
||||
<Content Include="Views\V2\Index.cshtml" />
|
||||
<None Include="_bin_deployableAssemblies\x86\sqlcese40.dll" />
|
||||
<None Include="_bin_deployableAssemblies\x86\sqlceqp40.dll" />
|
||||
<None Include="_bin_deployableAssemblies\x86\sqlceme40.dll" />
|
||||
|
|
|
@ -1,162 +0,0 @@
|
|||
/**
|
||||
* jqMetro
|
||||
* JQUERY PLUGIN FOR METRO UI CONTROLS
|
||||
*
|
||||
* Copyright (c) 2011 Mohammad Valipour (http://manorey.net/mohblog)
|
||||
* Licensed under the MIT License:
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
*
|
||||
*/
|
||||
|
||||
;(function ($) {
|
||||
var defaults = {
|
||||
animationDuration: 150,
|
||||
headerOpacity: 0.5,
|
||||
fixedHeaders: false,
|
||||
headerSelector: function (item) { return item.children("h3").first(); },
|
||||
itemSelector: function (item) { return item.children(".pivot-item"); },
|
||||
headerItemTemplate: function () { return $("<span class='header' />"); },
|
||||
pivotItemTemplate: function () { return $("<div class='pivotItem' />"); },
|
||||
itemsTemplate: function () { return $("<div class='items' />"); },
|
||||
headersTemplate: function () { return $("<div class='headers' />"); },
|
||||
controlInitialized: undefined,
|
||||
selectedItemChanged: undefined
|
||||
};
|
||||
|
||||
$.fn.metroPivot = function (settings) {
|
||||
if(this.length > 1)
|
||||
{
|
||||
return this.each(function(index, el){ $(el).wp7Pivot(settings); });
|
||||
}
|
||||
|
||||
$.extend(this, defaults, settings);
|
||||
$.extend(this,{
|
||||
animating : false,
|
||||
headers : undefined,
|
||||
items : undefined,
|
||||
goToNext: function(){
|
||||
if(this.animating) return;
|
||||
this.headers.children(".current").next().trigger("click");
|
||||
},
|
||||
goToPrevious: function(){
|
||||
if(this.animating) return;
|
||||
this.headers.children(".header").last().trigger("click");
|
||||
},
|
||||
goToItemByName:function(header){
|
||||
if(this.animating) return;
|
||||
this.headers.children(":contains("+header+")").first().trigger("click");
|
||||
},
|
||||
goToItemByIndex:function(index){
|
||||
if(this.animating) return;
|
||||
this.headers.children().eq(index).trigger("click");
|
||||
},
|
||||
initialize : function () {
|
||||
var pivot = this;
|
||||
// define sections
|
||||
|
||||
var headers = pivot.headersTemplate();
|
||||
var items = pivot.itemsTemplate();
|
||||
|
||||
pivot.itemSelector(pivot).each(function (index, el) {
|
||||
el = $(el);
|
||||
|
||||
var h3Element = pivot.headerSelector(el);
|
||||
if (h3Element.length == 0) return;
|
||||
|
||||
var headerItem = pivot.headerItemTemplate().html(h3Element.html()).fadeTo(0, pivot.headerOpacity);
|
||||
var pivotItem = pivot.pivotItemTemplate().append(el).hide();
|
||||
|
||||
if (index == 0) {
|
||||
headerItem.addClass("current").fadeTo(0, 1);
|
||||
pivotItem.addClass("current").show();
|
||||
}
|
||||
headerItem.attr("index", index);
|
||||
headerItem.click(function() { pivot.pivotHeader_Click($(this)); });
|
||||
|
||||
headers.append(headerItem);
|
||||
items.append(pivotItem);
|
||||
|
||||
h3Element.remove();
|
||||
});
|
||||
|
||||
pivot.append(headers).append(items);
|
||||
pivot.headers = headers;
|
||||
pivot.items = items;
|
||||
|
||||
this.data("controller", pivot);
|
||||
|
||||
if(this.controlInitialized != undefined)
|
||||
{
|
||||
this.controlInitialized();
|
||||
}
|
||||
},
|
||||
setCurrentHeader: function(header){
|
||||
var pivot = this;
|
||||
|
||||
// make current header a normal one
|
||||
this.headers.children(".header.current").removeClass("current").fadeTo(0, this.headerOpacity);
|
||||
|
||||
// make selected header to current
|
||||
header.addClass("current").fadeTo(0, 1);
|
||||
|
||||
if(pivot.fixedHeaders == false)
|
||||
{
|
||||
// create a copy for fadeout navigation
|
||||
var copy = header.prevAll().clone();
|
||||
// detach items to move to end of headers
|
||||
var detached = $(header.prevAll().detach().toArray().reverse());
|
||||
|
||||
// copy animation items to beginning and animate them
|
||||
$("<span />").append(copy).prependTo(pivot.headers).animate({ width: 0, opacity: 0 }, pivot.animationDuration, function () {
|
||||
// when finished: delete animation objects
|
||||
$(this).remove();
|
||||
|
||||
// and attach detached items to the end of headers
|
||||
detached.fadeTo(0, 0).appendTo(pivot.headers).fadeTo(200, pivot.headerOpacity);
|
||||
});
|
||||
}
|
||||
},
|
||||
setCurrentItem: function(item, index){
|
||||
var pivot = this;
|
||||
|
||||
// hide current item immediately
|
||||
pivot.items.children(".pivotItem.current").hide().removeClass("current");
|
||||
|
||||
// after a little delay
|
||||
setTimeout(function () {
|
||||
// move the item to far right and make it visible
|
||||
item.css({ marginLeft: item.outerWidth() }).show().addClass("current");
|
||||
|
||||
// animate it to left
|
||||
item.animate( { marginLeft: 0 }, pivot.animationDuration, function() { pivot.currentItemChanged(index);});
|
||||
|
||||
}, 200);
|
||||
},
|
||||
currentItemChanged: function(index) {
|
||||
this.animating = false;
|
||||
if(this.selectedItemChanged != undefined)
|
||||
{
|
||||
this.selectedItemChanged(index);
|
||||
}
|
||||
},
|
||||
pivotHeader_Click : function (me) {
|
||||
// ignore if already current
|
||||
if (me.is(".current")) return;
|
||||
|
||||
// ignore if still animating
|
||||
if (this.animating) return;
|
||||
this.animating = true;
|
||||
|
||||
// set current header
|
||||
this.setCurrentHeader(me);
|
||||
|
||||
var index = me.attr("index");
|
||||
// find and set current item
|
||||
var item = this.items.children(".pivotItem:nth(" + index + ")");
|
||||
this.setCurrentItem(item, index);
|
||||
},
|
||||
});
|
||||
|
||||
return this.initialize();
|
||||
};
|
||||
})(jQuery);
|
|
@ -1,60 +0,0 @@
|
|||
/*
|
||||
Base off Tim Holman's tile tilt: http://tholman.com/experiments/css3/metro-tiles/
|
||||
*/
|
||||
|
||||
function addTileTilt()
|
||||
{
|
||||
var tile = this;
|
||||
var mouse = {x: 0, y: 0, down: false};
|
||||
var maxRotation = 16;
|
||||
|
||||
var setRotation = function(){
|
||||
var width = tile.offsetWidth;
|
||||
var height = tile.offsetHeight;
|
||||
//Rotations as percentages
|
||||
var yRotation = (mouse.x - (width / 2)) / (width / 2);
|
||||
var xRotation = (mouse.y - (height / 2)) / (height / 2);
|
||||
|
||||
tile.style.webkitTransform = "rotateX(" + -xRotation * maxRotation + "deg)" +
|
||||
" rotateY(" + yRotation * maxRotation + "deg)";
|
||||
|
||||
tile.style.mozTransform = "rotateX(" + -xRotation * maxRotation + "deg)" +
|
||||
" rotateY(" + yRotation * maxRotation + "deg)";
|
||||
|
||||
tile.style.transform = "rotateX(" + -xRotation * maxRotation + "deg)" +
|
||||
" rotateY(" + yRotation * maxRotation + "deg)";
|
||||
}
|
||||
|
||||
var MouseDown = function(e){
|
||||
mouse.x = e.offsetX;
|
||||
mouse.y = e.offsetY;
|
||||
mouse.down = true;
|
||||
setRotation();
|
||||
}
|
||||
|
||||
var MouseUp = function(e){
|
||||
mouse.down = false;
|
||||
tile.style.webkitTransform = "rotateX(0deg)" +
|
||||
" rotateY(0deg)";
|
||||
|
||||
tile.style.mozTransform = "rotateX(0deg)" +
|
||||
" rotateY(0deg)";
|
||||
|
||||
tile.style.transform = "rotateX(0deg)" +
|
||||
" rotateY(0deg)";
|
||||
}
|
||||
|
||||
var MouseMove = function(e){
|
||||
mouse.x = e.offsetX;
|
||||
mouse.y = e.offsetY;
|
||||
if (mouse.down == true){
|
||||
setRotation();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
tile.addEventListener('mousemove', MouseMove, false);
|
||||
tile.addEventListener('mousedown', MouseDown, false);
|
||||
tile.addEventListener('mouseup', MouseUp, false);
|
||||
tile.addEventListener('mouseout', MouseUp, false);
|
||||
}
|
|
@ -1,408 +0,0 @@
|
|||
//!----------------------------------------------------------
|
||||
//! Copyright (C) Microsoft Corporation. All rights reserved.
|
||||
//!----------------------------------------------------------
|
||||
//! MicrosoftMvcAjax.js
|
||||
|
||||
Type.registerNamespace('Sys.Mvc');
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Sys.Mvc.AjaxOptions
|
||||
|
||||
Sys.Mvc.$create_AjaxOptions = function Sys_Mvc_AjaxOptions() { return {}; }
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Sys.Mvc.InsertionMode
|
||||
|
||||
Sys.Mvc.InsertionMode = function() {
|
||||
/// <field name="replace" type="Number" integer="true" static="true">
|
||||
/// </field>
|
||||
/// <field name="insertBefore" type="Number" integer="true" static="true">
|
||||
/// </field>
|
||||
/// <field name="insertAfter" type="Number" integer="true" static="true">
|
||||
/// </field>
|
||||
};
|
||||
Sys.Mvc.InsertionMode.prototype = {
|
||||
replace: 0,
|
||||
insertBefore: 1,
|
||||
insertAfter: 2
|
||||
}
|
||||
Sys.Mvc.InsertionMode.registerEnum('Sys.Mvc.InsertionMode', false);
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Sys.Mvc.AjaxContext
|
||||
|
||||
Sys.Mvc.AjaxContext = function Sys_Mvc_AjaxContext(request, updateTarget, loadingElement, insertionMode) {
|
||||
/// <param name="request" type="Sys.Net.WebRequest">
|
||||
/// </param>
|
||||
/// <param name="updateTarget" type="Object" domElement="true">
|
||||
/// </param>
|
||||
/// <param name="loadingElement" type="Object" domElement="true">
|
||||
/// </param>
|
||||
/// <param name="insertionMode" type="Sys.Mvc.InsertionMode">
|
||||
/// </param>
|
||||
/// <field name="_insertionMode" type="Sys.Mvc.InsertionMode">
|
||||
/// </field>
|
||||
/// <field name="_loadingElement" type="Object" domElement="true">
|
||||
/// </field>
|
||||
/// <field name="_response" type="Sys.Net.WebRequestExecutor">
|
||||
/// </field>
|
||||
/// <field name="_request" type="Sys.Net.WebRequest">
|
||||
/// </field>
|
||||
/// <field name="_updateTarget" type="Object" domElement="true">
|
||||
/// </field>
|
||||
this._request = request;
|
||||
this._updateTarget = updateTarget;
|
||||
this._loadingElement = loadingElement;
|
||||
this._insertionMode = insertionMode;
|
||||
}
|
||||
Sys.Mvc.AjaxContext.prototype = {
|
||||
_insertionMode: 0,
|
||||
_loadingElement: null,
|
||||
_response: null,
|
||||
_request: null,
|
||||
_updateTarget: null,
|
||||
|
||||
get_data: function Sys_Mvc_AjaxContext$get_data() {
|
||||
/// <value type="String"></value>
|
||||
if (this._response) {
|
||||
return this._response.get_responseData();
|
||||
}
|
||||
else {
|
||||
return null;
|
||||
}
|
||||
},
|
||||
|
||||
get_insertionMode: function Sys_Mvc_AjaxContext$get_insertionMode() {
|
||||
/// <value type="Sys.Mvc.InsertionMode"></value>
|
||||
return this._insertionMode;
|
||||
},
|
||||
|
||||
get_loadingElement: function Sys_Mvc_AjaxContext$get_loadingElement() {
|
||||
/// <value type="Object" domElement="true"></value>
|
||||
return this._loadingElement;
|
||||
},
|
||||
|
||||
get_object: function Sys_Mvc_AjaxContext$get_object() {
|
||||
/// <value type="Object"></value>
|
||||
var executor = this.get_response();
|
||||
return (executor) ? executor.get_object() : null;
|
||||
},
|
||||
|
||||
get_response: function Sys_Mvc_AjaxContext$get_response() {
|
||||
/// <value type="Sys.Net.WebRequestExecutor"></value>
|
||||
return this._response;
|
||||
},
|
||||
set_response: function Sys_Mvc_AjaxContext$set_response(value) {
|
||||
/// <value type="Sys.Net.WebRequestExecutor"></value>
|
||||
this._response = value;
|
||||
return value;
|
||||
},
|
||||
|
||||
get_request: function Sys_Mvc_AjaxContext$get_request() {
|
||||
/// <value type="Sys.Net.WebRequest"></value>
|
||||
return this._request;
|
||||
},
|
||||
|
||||
get_updateTarget: function Sys_Mvc_AjaxContext$get_updateTarget() {
|
||||
/// <value type="Object" domElement="true"></value>
|
||||
return this._updateTarget;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Sys.Mvc.AsyncHyperlink
|
||||
|
||||
Sys.Mvc.AsyncHyperlink = function Sys_Mvc_AsyncHyperlink() {
|
||||
}
|
||||
Sys.Mvc.AsyncHyperlink.handleClick = function Sys_Mvc_AsyncHyperlink$handleClick(anchor, evt, ajaxOptions) {
|
||||
/// <param name="anchor" type="Object" domElement="true">
|
||||
/// </param>
|
||||
/// <param name="evt" type="Sys.UI.DomEvent">
|
||||
/// </param>
|
||||
/// <param name="ajaxOptions" type="Sys.Mvc.AjaxOptions">
|
||||
/// </param>
|
||||
evt.preventDefault();
|
||||
Sys.Mvc.MvcHelpers._asyncRequest(anchor.href, 'post', '', anchor, ajaxOptions);
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Sys.Mvc.MvcHelpers
|
||||
|
||||
Sys.Mvc.MvcHelpers = function Sys_Mvc_MvcHelpers() {
|
||||
}
|
||||
Sys.Mvc.MvcHelpers._serializeSubmitButton = function Sys_Mvc_MvcHelpers$_serializeSubmitButton(element, offsetX, offsetY) {
|
||||
/// <param name="element" type="Object" domElement="true">
|
||||
/// </param>
|
||||
/// <param name="offsetX" type="Number" integer="true">
|
||||
/// </param>
|
||||
/// <param name="offsetY" type="Number" integer="true">
|
||||
/// </param>
|
||||
/// <returns type="String"></returns>
|
||||
if (element.disabled) {
|
||||
return null;
|
||||
}
|
||||
var name = element.name;
|
||||
if (name) {
|
||||
var tagName = element.tagName.toUpperCase();
|
||||
var encodedName = encodeURIComponent(name);
|
||||
var inputElement = element;
|
||||
if (tagName === 'INPUT') {
|
||||
var type = inputElement.type;
|
||||
if (type === 'submit') {
|
||||
return encodedName + '=' + encodeURIComponent(inputElement.value);
|
||||
}
|
||||
else if (type === 'image') {
|
||||
return encodedName + '.x=' + offsetX + '&' + encodedName + '.y=' + offsetY;
|
||||
}
|
||||
}
|
||||
else if ((tagName === 'BUTTON') && (name.length) && (inputElement.type === 'submit')) {
|
||||
return encodedName + '=' + encodeURIComponent(inputElement.value);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
Sys.Mvc.MvcHelpers._serializeForm = function Sys_Mvc_MvcHelpers$_serializeForm(form) {
|
||||
/// <param name="form" type="Object" domElement="true">
|
||||
/// </param>
|
||||
/// <returns type="String"></returns>
|
||||
var formElements = form.elements;
|
||||
var formBody = new Sys.StringBuilder();
|
||||
var count = formElements.length;
|
||||
for (var i = 0; i < count; i++) {
|
||||
var element = formElements[i];
|
||||
var name = element.name;
|
||||
if (!name || !name.length) {
|
||||
continue;
|
||||
}
|
||||
var tagName = element.tagName.toUpperCase();
|
||||
if (tagName === 'INPUT') {
|
||||
var inputElement = element;
|
||||
var type = inputElement.type;
|
||||
if ((type === 'text') || (type === 'password') || (type === 'hidden') || (((type === 'checkbox') || (type === 'radio')) && element.checked)) {
|
||||
formBody.append(encodeURIComponent(name));
|
||||
formBody.append('=');
|
||||
formBody.append(encodeURIComponent(inputElement.value));
|
||||
formBody.append('&');
|
||||
}
|
||||
}
|
||||
else if (tagName === 'SELECT') {
|
||||
var selectElement = element;
|
||||
var optionCount = selectElement.options.length;
|
||||
for (var j = 0; j < optionCount; j++) {
|
||||
var optionElement = selectElement.options[j];
|
||||
if (optionElement.selected) {
|
||||
formBody.append(encodeURIComponent(name));
|
||||
formBody.append('=');
|
||||
formBody.append(encodeURIComponent(optionElement.value));
|
||||
formBody.append('&');
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (tagName === 'TEXTAREA') {
|
||||
formBody.append(encodeURIComponent(name));
|
||||
formBody.append('=');
|
||||
formBody.append(encodeURIComponent((element.value)));
|
||||
formBody.append('&');
|
||||
}
|
||||
}
|
||||
var additionalInput = form._additionalInput;
|
||||
if (additionalInput) {
|
||||
formBody.append(additionalInput);
|
||||
formBody.append('&');
|
||||
}
|
||||
return formBody.toString();
|
||||
}
|
||||
Sys.Mvc.MvcHelpers._asyncRequest = function Sys_Mvc_MvcHelpers$_asyncRequest(url, verb, body, triggerElement, ajaxOptions) {
|
||||
/// <param name="url" type="String">
|
||||
/// </param>
|
||||
/// <param name="verb" type="String">
|
||||
/// </param>
|
||||
/// <param name="body" type="String">
|
||||
/// </param>
|
||||
/// <param name="triggerElement" type="Object" domElement="true">
|
||||
/// </param>
|
||||
/// <param name="ajaxOptions" type="Sys.Mvc.AjaxOptions">
|
||||
/// </param>
|
||||
if (ajaxOptions.confirm) {
|
||||
if (!confirm(ajaxOptions.confirm)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (ajaxOptions.url) {
|
||||
url = ajaxOptions.url;
|
||||
}
|
||||
if (ajaxOptions.httpMethod) {
|
||||
verb = ajaxOptions.httpMethod;
|
||||
}
|
||||
if (body.length > 0 && !body.endsWith('&')) {
|
||||
body += '&';
|
||||
}
|
||||
body += 'X-Requested-With=XMLHttpRequest';
|
||||
var upperCaseVerb = verb.toUpperCase();
|
||||
var isGetOrPost = (upperCaseVerb === 'GET' || upperCaseVerb === 'POST');
|
||||
if (!isGetOrPost) {
|
||||
body += '&';
|
||||
body += 'X-HTTP-Method-Override=' + upperCaseVerb;
|
||||
}
|
||||
var requestBody = '';
|
||||
if (upperCaseVerb === 'GET' || upperCaseVerb === 'DELETE') {
|
||||
if (url.indexOf('?') > -1) {
|
||||
if (!url.endsWith('&')) {
|
||||
url += '&';
|
||||
}
|
||||
url += body;
|
||||
}
|
||||
else {
|
||||
url += '?';
|
||||
url += body;
|
||||
}
|
||||
}
|
||||
else {
|
||||
requestBody = body;
|
||||
}
|
||||
var request = new Sys.Net.WebRequest();
|
||||
request.set_url(url);
|
||||
if (isGetOrPost) {
|
||||
request.set_httpVerb(verb);
|
||||
}
|
||||
else {
|
||||
request.set_httpVerb('POST');
|
||||
request.get_headers()['X-HTTP-Method-Override'] = upperCaseVerb;
|
||||
}
|
||||
request.set_body(requestBody);
|
||||
if (verb.toUpperCase() === 'PUT') {
|
||||
request.get_headers()['Content-Type'] = 'application/x-www-form-urlencoded;';
|
||||
}
|
||||
request.get_headers()['X-Requested-With'] = 'XMLHttpRequest';
|
||||
var updateElement = null;
|
||||
if (ajaxOptions.updateTargetId) {
|
||||
updateElement = $get(ajaxOptions.updateTargetId);
|
||||
}
|
||||
var loadingElement = null;
|
||||
if (ajaxOptions.loadingElementId) {
|
||||
loadingElement = $get(ajaxOptions.loadingElementId);
|
||||
}
|
||||
var ajaxContext = new Sys.Mvc.AjaxContext(request, updateElement, loadingElement, ajaxOptions.insertionMode);
|
||||
var continueRequest = true;
|
||||
if (ajaxOptions.onBegin) {
|
||||
continueRequest = ajaxOptions.onBegin(ajaxContext) !== false;
|
||||
}
|
||||
if (loadingElement) {
|
||||
Sys.UI.DomElement.setVisible(ajaxContext.get_loadingElement(), true);
|
||||
}
|
||||
if (continueRequest) {
|
||||
request.add_completed(Function.createDelegate(null, function(executor) {
|
||||
Sys.Mvc.MvcHelpers._onComplete(request, ajaxOptions, ajaxContext);
|
||||
}));
|
||||
request.invoke();
|
||||
}
|
||||
}
|
||||
Sys.Mvc.MvcHelpers._onComplete = function Sys_Mvc_MvcHelpers$_onComplete(request, ajaxOptions, ajaxContext) {
|
||||
/// <param name="request" type="Sys.Net.WebRequest">
|
||||
/// </param>
|
||||
/// <param name="ajaxOptions" type="Sys.Mvc.AjaxOptions">
|
||||
/// </param>
|
||||
/// <param name="ajaxContext" type="Sys.Mvc.AjaxContext">
|
||||
/// </param>
|
||||
ajaxContext.set_response(request.get_executor());
|
||||
if (ajaxOptions.onComplete && ajaxOptions.onComplete(ajaxContext) === false) {
|
||||
return;
|
||||
}
|
||||
var statusCode = ajaxContext.get_response().get_statusCode();
|
||||
if ((statusCode >= 200 && statusCode < 300) || statusCode === 304 || statusCode === 1223) {
|
||||
if (statusCode !== 204 && statusCode !== 304 && statusCode !== 1223) {
|
||||
var contentType = ajaxContext.get_response().getResponseHeader('Content-Type');
|
||||
if ((contentType) && (contentType.indexOf('application/x-javascript') !== -1)) {
|
||||
eval(ajaxContext.get_data());
|
||||
}
|
||||
else {
|
||||
Sys.Mvc.MvcHelpers.updateDomElement(ajaxContext.get_updateTarget(), ajaxContext.get_insertionMode(), ajaxContext.get_data());
|
||||
}
|
||||
}
|
||||
if (ajaxOptions.onSuccess) {
|
||||
ajaxOptions.onSuccess(ajaxContext);
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (ajaxOptions.onFailure) {
|
||||
ajaxOptions.onFailure(ajaxContext);
|
||||
}
|
||||
}
|
||||
if (ajaxContext.get_loadingElement()) {
|
||||
Sys.UI.DomElement.setVisible(ajaxContext.get_loadingElement(), false);
|
||||
}
|
||||
}
|
||||
Sys.Mvc.MvcHelpers.updateDomElement = function Sys_Mvc_MvcHelpers$updateDomElement(target, insertionMode, content) {
|
||||
/// <param name="target" type="Object" domElement="true">
|
||||
/// </param>
|
||||
/// <param name="insertionMode" type="Sys.Mvc.InsertionMode">
|
||||
/// </param>
|
||||
/// <param name="content" type="String">
|
||||
/// </param>
|
||||
if (target) {
|
||||
switch (insertionMode) {
|
||||
case Sys.Mvc.InsertionMode.replace:
|
||||
target.innerHTML = content;
|
||||
break;
|
||||
case Sys.Mvc.InsertionMode.insertBefore:
|
||||
if (content && content.length > 0) {
|
||||
target.innerHTML = content + target.innerHTML.trimStart();
|
||||
}
|
||||
break;
|
||||
case Sys.Mvc.InsertionMode.insertAfter:
|
||||
if (content && content.length > 0) {
|
||||
target.innerHTML = target.innerHTML.trimEnd() + content;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Sys.Mvc.AsyncForm
|
||||
|
||||
Sys.Mvc.AsyncForm = function Sys_Mvc_AsyncForm() {
|
||||
}
|
||||
Sys.Mvc.AsyncForm.handleClick = function Sys_Mvc_AsyncForm$handleClick(form, evt) {
|
||||
/// <param name="form" type="Object" domElement="true">
|
||||
/// </param>
|
||||
/// <param name="evt" type="Sys.UI.DomEvent">
|
||||
/// </param>
|
||||
var additionalInput = Sys.Mvc.MvcHelpers._serializeSubmitButton(evt.target, evt.offsetX, evt.offsetY);
|
||||
form._additionalInput = additionalInput;
|
||||
}
|
||||
Sys.Mvc.AsyncForm.handleSubmit = function Sys_Mvc_AsyncForm$handleSubmit(form, evt, ajaxOptions) {
|
||||
/// <param name="form" type="Object" domElement="true">
|
||||
/// </param>
|
||||
/// <param name="evt" type="Sys.UI.DomEvent">
|
||||
/// </param>
|
||||
/// <param name="ajaxOptions" type="Sys.Mvc.AjaxOptions">
|
||||
/// </param>
|
||||
evt.preventDefault();
|
||||
var validationCallbacks = form.validationCallbacks;
|
||||
if (validationCallbacks) {
|
||||
for (var i = 0; i < validationCallbacks.length; i++) {
|
||||
var callback = validationCallbacks[i];
|
||||
if (!callback()) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
var body = Sys.Mvc.MvcHelpers._serializeForm(form);
|
||||
Sys.Mvc.MvcHelpers._asyncRequest(form.action, form.method || 'post', body, form, ajaxOptions);
|
||||
}
|
||||
|
||||
|
||||
Sys.Mvc.AjaxContext.registerClass('Sys.Mvc.AjaxContext');
|
||||
Sys.Mvc.AsyncHyperlink.registerClass('Sys.Mvc.AsyncHyperlink');
|
||||
Sys.Mvc.MvcHelpers.registerClass('Sys.Mvc.MvcHelpers');
|
||||
Sys.Mvc.AsyncForm.registerClass('Sys.Mvc.AsyncForm');
|
||||
|
||||
// ---- Do not remove this footer ----
|
||||
// Generated using Script# v0.5.0.0 (http://projects.nikhilk.net)
|
||||
// -----------------------------------
|
|
@ -1,25 +0,0 @@
|
|||
//----------------------------------------------------------
|
||||
// Copyright (C) Microsoft Corporation. All rights reserved.
|
||||
//----------------------------------------------------------
|
||||
// MicrosoftMvcAjax.js
|
||||
|
||||
Type.registerNamespace('Sys.Mvc');Sys.Mvc.$create_AjaxOptions=function(){return {};}
|
||||
Sys.Mvc.InsertionMode=function(){};Sys.Mvc.InsertionMode.prototype = {replace:0,insertBefore:1,insertAfter:2}
|
||||
Sys.Mvc.InsertionMode.registerEnum('Sys.Mvc.InsertionMode',false);Sys.Mvc.AjaxContext=function(request,updateTarget,loadingElement,insertionMode){this.$3=request;this.$4=updateTarget;this.$1=loadingElement;this.$0=insertionMode;}
|
||||
Sys.Mvc.AjaxContext.prototype={$0:0,$1:null,$2:null,$3:null,$4:null,get_data:function(){if(this.$2){return this.$2.get_responseData();}else{return null;}},get_insertionMode:function(){return this.$0;},get_loadingElement:function(){return this.$1;},get_object:function(){var $0=this.get_response();return ($0)?$0.get_object():null;},get_response:function(){return this.$2;},set_response:function(value){this.$2=value;return value;},get_request:function(){return this.$3;},get_updateTarget:function(){return this.$4;}}
|
||||
Sys.Mvc.AsyncHyperlink=function(){}
|
||||
Sys.Mvc.AsyncHyperlink.handleClick=function(anchor,evt,ajaxOptions){evt.preventDefault();Sys.Mvc.MvcHelpers.$2(anchor.href,'post','',anchor,ajaxOptions);}
|
||||
Sys.Mvc.MvcHelpers=function(){}
|
||||
Sys.Mvc.MvcHelpers.$0=function($p0,$p1,$p2){if($p0.disabled){return null;}var $0=$p0.name;if($0){var $1=$p0.tagName.toUpperCase();var $2=encodeURIComponent($0);var $3=$p0;if($1==='INPUT'){var $4=$3.type;if($4==='submit'){return $2+'='+encodeURIComponent($3.value);}else if($4==='image'){return $2+'.x='+$p1+'&'+$2+'.y='+$p2;}}else if(($1==='BUTTON')&&($0.length)&&($3.type==='submit')){return $2+'='+encodeURIComponent($3.value);}}return null;}
|
||||
Sys.Mvc.MvcHelpers.$1=function($p0){var $0=$p0.elements;var $1=new Sys.StringBuilder();var $2=$0.length;for(var $4=0;$4<$2;$4++){var $5=$0[$4];var $6=$5.name;if(!$6||!$6.length){continue;}var $7=$5.tagName.toUpperCase();if($7==='INPUT'){var $8=$5;var $9=$8.type;if(($9==='text')||($9==='password')||($9==='hidden')||((($9==='checkbox')||($9==='radio'))&&$5.checked)){$1.append(encodeURIComponent($6));$1.append('=');$1.append(encodeURIComponent($8.value));$1.append('&');}}else if($7==='SELECT'){var $A=$5;var $B=$A.options.length;for(var $C=0;$C<$B;$C++){var $D=$A.options[$C];if($D.selected){$1.append(encodeURIComponent($6));$1.append('=');$1.append(encodeURIComponent($D.value));$1.append('&');}}}else if($7==='TEXTAREA'){$1.append(encodeURIComponent($6));$1.append('=');$1.append(encodeURIComponent(($5.value)));$1.append('&');}}var $3=$p0._additionalInput;if($3){$1.append($3);$1.append('&');}return $1.toString();}
|
||||
Sys.Mvc.MvcHelpers.$2=function($p0,$p1,$p2,$p3,$p4){if($p4.confirm){if(!confirm($p4.confirm)){return;}}if($p4.url){$p0=$p4.url;}if($p4.httpMethod){$p1=$p4.httpMethod;}if($p2.length>0&&!$p2.endsWith('&')){$p2+='&';}$p2+='X-Requested-With=XMLHttpRequest';var $0=$p1.toUpperCase();var $1=($0==='GET'||$0==='POST');if(!$1){$p2+='&';$p2+='X-HTTP-Method-Override='+$0;}var $2='';if($0==='GET'||$0==='DELETE'){if($p0.indexOf('?')>-1){if(!$p0.endsWith('&')){$p0+='&';}$p0+=$p2;}else{$p0+='?';$p0+=$p2;}}else{$2=$p2;}var $3=new Sys.Net.WebRequest();$3.set_url($p0);if($1){$3.set_httpVerb($p1);}else{$3.set_httpVerb('POST');$3.get_headers()['X-HTTP-Method-Override']=$0;}$3.set_body($2);if($p1.toUpperCase()==='PUT'){$3.get_headers()['Content-Type']='application/x-www-form-urlencoded;';}$3.get_headers()['X-Requested-With']='XMLHttpRequest';var $4=null;if($p4.updateTargetId){$4=$get($p4.updateTargetId);}var $5=null;if($p4.loadingElementId){$5=$get($p4.loadingElementId);}var $6=new Sys.Mvc.AjaxContext($3,$4,$5,$p4.insertionMode);var $7=true;if($p4.onBegin){$7=$p4.onBegin($6)!==false;}if($5){Sys.UI.DomElement.setVisible($6.get_loadingElement(),true);}if($7){$3.add_completed(Function.createDelegate(null,function($p1_0){
|
||||
Sys.Mvc.MvcHelpers.$3($3,$p4,$6);}));$3.invoke();}}
|
||||
Sys.Mvc.MvcHelpers.$3=function($p0,$p1,$p2){$p2.set_response($p0.get_executor());if($p1.onComplete&&$p1.onComplete($p2)===false){return;}var $0=$p2.get_response().get_statusCode();if(($0>=200&&$0<300)||$0===304||$0===1223){if($0!==204&&$0!==304&&$0!==1223){var $1=$p2.get_response().getResponseHeader('Content-Type');if(($1)&&($1.indexOf('application/x-javascript')!==-1)){eval($p2.get_data());}else{Sys.Mvc.MvcHelpers.updateDomElement($p2.get_updateTarget(),$p2.get_insertionMode(),$p2.get_data());}}if($p1.onSuccess){$p1.onSuccess($p2);}}else{if($p1.onFailure){$p1.onFailure($p2);}}if($p2.get_loadingElement()){Sys.UI.DomElement.setVisible($p2.get_loadingElement(),false);}}
|
||||
Sys.Mvc.MvcHelpers.updateDomElement=function(target,insertionMode,content){if(target){switch(insertionMode){case 0:target.innerHTML=content;break;case 1:if(content&&content.length>0){target.innerHTML=content+target.innerHTML.trimStart();}break;case 2:if(content&&content.length>0){target.innerHTML=target.innerHTML.trimEnd()+content;}break;}}}
|
||||
Sys.Mvc.AsyncForm=function(){}
|
||||
Sys.Mvc.AsyncForm.handleClick=function(form,evt){var $0=Sys.Mvc.MvcHelpers.$0(evt.target,evt.offsetX,evt.offsetY);form._additionalInput = $0;}
|
||||
Sys.Mvc.AsyncForm.handleSubmit=function(form,evt,ajaxOptions){evt.preventDefault();var $0=form.validationCallbacks;if($0){for(var $2=0;$2<$0.length;$2++){var $3=$0[$2];if(!$3()){return;}}}var $1=Sys.Mvc.MvcHelpers.$1(form);Sys.Mvc.MvcHelpers.$2(form.action,form.method||'post',$1,form,ajaxOptions);}
|
||||
Sys.Mvc.AjaxContext.registerClass('Sys.Mvc.AjaxContext');Sys.Mvc.AsyncHyperlink.registerClass('Sys.Mvc.AsyncHyperlink');Sys.Mvc.MvcHelpers.registerClass('Sys.Mvc.MvcHelpers');Sys.Mvc.AsyncForm.registerClass('Sys.Mvc.AsyncForm');
|
||||
// ---- Do not remove this footer ----
|
||||
// Generated using Script# v0.5.0.0 (http://projects.nikhilk.net)
|
||||
// -----------------------------------
|
|
@ -1,883 +0,0 @@
|
|||
//!----------------------------------------------------------
|
||||
//! Copyright (C) Microsoft Corporation. All rights reserved.
|
||||
//!----------------------------------------------------------
|
||||
//! MicrosoftMvcValidation.js
|
||||
|
||||
|
||||
Type.registerNamespace('Sys.Mvc');
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Sys.Mvc.Validation
|
||||
|
||||
Sys.Mvc.$create_Validation = function Sys_Mvc_Validation() { return {}; }
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Sys.Mvc.JsonValidationField
|
||||
|
||||
Sys.Mvc.$create_JsonValidationField = function Sys_Mvc_JsonValidationField() { return {}; }
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Sys.Mvc.JsonValidationOptions
|
||||
|
||||
Sys.Mvc.$create_JsonValidationOptions = function Sys_Mvc_JsonValidationOptions() { return {}; }
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Sys.Mvc.JsonValidationRule
|
||||
|
||||
Sys.Mvc.$create_JsonValidationRule = function Sys_Mvc_JsonValidationRule() { return {}; }
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Sys.Mvc.ValidationContext
|
||||
|
||||
Sys.Mvc.$create_ValidationContext = function Sys_Mvc_ValidationContext() { return {}; }
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Sys.Mvc.NumberValidator
|
||||
|
||||
Sys.Mvc.NumberValidator = function Sys_Mvc_NumberValidator() {
|
||||
}
|
||||
Sys.Mvc.NumberValidator.create = function Sys_Mvc_NumberValidator$create(rule) {
|
||||
/// <param name="rule" type="Sys.Mvc.JsonValidationRule">
|
||||
/// </param>
|
||||
/// <returns type="Sys.Mvc.Validator"></returns>
|
||||
return Function.createDelegate(new Sys.Mvc.NumberValidator(), new Sys.Mvc.NumberValidator().validate);
|
||||
}
|
||||
Sys.Mvc.NumberValidator.prototype = {
|
||||
|
||||
validate: function Sys_Mvc_NumberValidator$validate(value, context) {
|
||||
/// <param name="value" type="String">
|
||||
/// </param>
|
||||
/// <param name="context" type="Sys.Mvc.ValidationContext">
|
||||
/// </param>
|
||||
/// <returns type="Object"></returns>
|
||||
if (Sys.Mvc._validationUtil.stringIsNullOrEmpty(value)) {
|
||||
return true;
|
||||
}
|
||||
var n = Number.parseLocale(value);
|
||||
return (!isNaN(n));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Sys.Mvc.FormContext
|
||||
|
||||
Sys.Mvc.FormContext = function Sys_Mvc_FormContext(formElement, validationSummaryElement) {
|
||||
/// <param name="formElement" type="Object" domElement="true">
|
||||
/// </param>
|
||||
/// <param name="validationSummaryElement" type="Object" domElement="true">
|
||||
/// </param>
|
||||
/// <field name="_validationSummaryErrorCss" type="String" static="true">
|
||||
/// </field>
|
||||
/// <field name="_validationSummaryValidCss" type="String" static="true">
|
||||
/// </field>
|
||||
/// <field name="_formValidationTag" type="String" static="true">
|
||||
/// </field>
|
||||
/// <field name="_onClickHandler" type="Sys.UI.DomEventHandler">
|
||||
/// </field>
|
||||
/// <field name="_onSubmitHandler" type="Sys.UI.DomEventHandler">
|
||||
/// </field>
|
||||
/// <field name="_errors" type="Array">
|
||||
/// </field>
|
||||
/// <field name="_submitButtonClicked" type="Object" domElement="true">
|
||||
/// </field>
|
||||
/// <field name="_validationSummaryElement" type="Object" domElement="true">
|
||||
/// </field>
|
||||
/// <field name="_validationSummaryULElement" type="Object" domElement="true">
|
||||
/// </field>
|
||||
/// <field name="fields" type="Array" elementType="FieldContext">
|
||||
/// </field>
|
||||
/// <field name="_formElement" type="Object" domElement="true">
|
||||
/// </field>
|
||||
/// <field name="replaceValidationSummary" type="Boolean">
|
||||
/// </field>
|
||||
this._errors = [];
|
||||
this.fields = new Array(0);
|
||||
this._formElement = formElement;
|
||||
this._validationSummaryElement = validationSummaryElement;
|
||||
formElement[Sys.Mvc.FormContext._formValidationTag] = this;
|
||||
if (validationSummaryElement) {
|
||||
var ulElements = validationSummaryElement.getElementsByTagName('ul');
|
||||
if (ulElements.length > 0) {
|
||||
this._validationSummaryULElement = ulElements[0];
|
||||
}
|
||||
}
|
||||
this._onClickHandler = Function.createDelegate(this, this._form_OnClick);
|
||||
this._onSubmitHandler = Function.createDelegate(this, this._form_OnSubmit);
|
||||
}
|
||||
Sys.Mvc.FormContext._Application_Load = function Sys_Mvc_FormContext$_Application_Load() {
|
||||
var allFormOptions = window.mvcClientValidationMetadata;
|
||||
if (allFormOptions) {
|
||||
while (allFormOptions.length > 0) {
|
||||
var thisFormOptions = allFormOptions.pop();
|
||||
Sys.Mvc.FormContext._parseJsonOptions(thisFormOptions);
|
||||
}
|
||||
}
|
||||
}
|
||||
Sys.Mvc.FormContext._getFormElementsWithName = function Sys_Mvc_FormContext$_getFormElementsWithName(formElement, name) {
|
||||
/// <param name="formElement" type="Object" domElement="true">
|
||||
/// </param>
|
||||
/// <param name="name" type="String">
|
||||
/// </param>
|
||||
/// <returns type="Array" elementType="Object" elementDomElement="true"></returns>
|
||||
var allElementsWithNameInForm = [];
|
||||
var allElementsWithName = document.getElementsByName(name);
|
||||
for (var i = 0; i < allElementsWithName.length; i++) {
|
||||
var thisElement = allElementsWithName[i];
|
||||
if (Sys.Mvc.FormContext._isElementInHierarchy(formElement, thisElement)) {
|
||||
Array.add(allElementsWithNameInForm, thisElement);
|
||||
}
|
||||
}
|
||||
return allElementsWithNameInForm;
|
||||
}
|
||||
Sys.Mvc.FormContext.getValidationForForm = function Sys_Mvc_FormContext$getValidationForForm(formElement) {
|
||||
/// <param name="formElement" type="Object" domElement="true">
|
||||
/// </param>
|
||||
/// <returns type="Sys.Mvc.FormContext"></returns>
|
||||
return formElement[Sys.Mvc.FormContext._formValidationTag];
|
||||
}
|
||||
Sys.Mvc.FormContext._isElementInHierarchy = function Sys_Mvc_FormContext$_isElementInHierarchy(parent, child) {
|
||||
/// <param name="parent" type="Object" domElement="true">
|
||||
/// </param>
|
||||
/// <param name="child" type="Object" domElement="true">
|
||||
/// </param>
|
||||
/// <returns type="Boolean"></returns>
|
||||
while (child) {
|
||||
if (parent === child) {
|
||||
return true;
|
||||
}
|
||||
child = child.parentNode;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
Sys.Mvc.FormContext._parseJsonOptions = function Sys_Mvc_FormContext$_parseJsonOptions(options) {
|
||||
/// <param name="options" type="Sys.Mvc.JsonValidationOptions">
|
||||
/// </param>
|
||||
/// <returns type="Sys.Mvc.FormContext"></returns>
|
||||
var formElement = $get(options.FormId);
|
||||
var validationSummaryElement = (!Sys.Mvc._validationUtil.stringIsNullOrEmpty(options.ValidationSummaryId)) ? $get(options.ValidationSummaryId) : null;
|
||||
var formContext = new Sys.Mvc.FormContext(formElement, validationSummaryElement);
|
||||
formContext.enableDynamicValidation();
|
||||
formContext.replaceValidationSummary = options.ReplaceValidationSummary;
|
||||
for (var i = 0; i < options.Fields.length; i++) {
|
||||
var field = options.Fields[i];
|
||||
var fieldElements = Sys.Mvc.FormContext._getFormElementsWithName(formElement, field.FieldName);
|
||||
var validationMessageElement = (!Sys.Mvc._validationUtil.stringIsNullOrEmpty(field.ValidationMessageId)) ? $get(field.ValidationMessageId) : null;
|
||||
var fieldContext = new Sys.Mvc.FieldContext(formContext);
|
||||
Array.addRange(fieldContext.elements, fieldElements);
|
||||
fieldContext.validationMessageElement = validationMessageElement;
|
||||
fieldContext.replaceValidationMessageContents = field.ReplaceValidationMessageContents;
|
||||
for (var j = 0; j < field.ValidationRules.length; j++) {
|
||||
var rule = field.ValidationRules[j];
|
||||
var validator = Sys.Mvc.ValidatorRegistry.getValidator(rule);
|
||||
if (validator) {
|
||||
var validation = Sys.Mvc.$create_Validation();
|
||||
validation.fieldErrorMessage = rule.ErrorMessage;
|
||||
validation.validator = validator;
|
||||
Array.add(fieldContext.validations, validation);
|
||||
}
|
||||
}
|
||||
fieldContext.enableDynamicValidation();
|
||||
Array.add(formContext.fields, fieldContext);
|
||||
}
|
||||
var registeredValidatorCallbacks = formElement.validationCallbacks;
|
||||
if (!registeredValidatorCallbacks) {
|
||||
registeredValidatorCallbacks = [];
|
||||
formElement.validationCallbacks = registeredValidatorCallbacks;
|
||||
}
|
||||
registeredValidatorCallbacks.push(Function.createDelegate(null, function() {
|
||||
return Sys.Mvc._validationUtil.arrayIsNullOrEmpty(formContext.validate('submit'));
|
||||
}));
|
||||
return formContext;
|
||||
}
|
||||
Sys.Mvc.FormContext.prototype = {
|
||||
_onClickHandler: null,
|
||||
_onSubmitHandler: null,
|
||||
_submitButtonClicked: null,
|
||||
_validationSummaryElement: null,
|
||||
_validationSummaryULElement: null,
|
||||
_formElement: null,
|
||||
replaceValidationSummary: false,
|
||||
|
||||
addError: function Sys_Mvc_FormContext$addError(message) {
|
||||
/// <param name="message" type="String">
|
||||
/// </param>
|
||||
this.addErrors([ message ]);
|
||||
},
|
||||
|
||||
addErrors: function Sys_Mvc_FormContext$addErrors(messages) {
|
||||
/// <param name="messages" type="Array" elementType="String">
|
||||
/// </param>
|
||||
if (!Sys.Mvc._validationUtil.arrayIsNullOrEmpty(messages)) {
|
||||
Array.addRange(this._errors, messages);
|
||||
this._onErrorCountChanged();
|
||||
}
|
||||
},
|
||||
|
||||
clearErrors: function Sys_Mvc_FormContext$clearErrors() {
|
||||
Array.clear(this._errors);
|
||||
this._onErrorCountChanged();
|
||||
},
|
||||
|
||||
_displayError: function Sys_Mvc_FormContext$_displayError() {
|
||||
if (this._validationSummaryElement) {
|
||||
if (this._validationSummaryULElement) {
|
||||
Sys.Mvc._validationUtil.removeAllChildren(this._validationSummaryULElement);
|
||||
for (var i = 0; i < this._errors.length; i++) {
|
||||
var liElement = document.createElement('li');
|
||||
Sys.Mvc._validationUtil.setInnerText(liElement, this._errors[i]);
|
||||
this._validationSummaryULElement.appendChild(liElement);
|
||||
}
|
||||
}
|
||||
Sys.UI.DomElement.removeCssClass(this._validationSummaryElement, Sys.Mvc.FormContext._validationSummaryValidCss);
|
||||
Sys.UI.DomElement.addCssClass(this._validationSummaryElement, Sys.Mvc.FormContext._validationSummaryErrorCss);
|
||||
}
|
||||
},
|
||||
|
||||
_displaySuccess: function Sys_Mvc_FormContext$_displaySuccess() {
|
||||
var validationSummaryElement = this._validationSummaryElement;
|
||||
if (validationSummaryElement) {
|
||||
var validationSummaryULElement = this._validationSummaryULElement;
|
||||
if (validationSummaryULElement) {
|
||||
validationSummaryULElement.innerHTML = '';
|
||||
}
|
||||
Sys.UI.DomElement.removeCssClass(validationSummaryElement, Sys.Mvc.FormContext._validationSummaryErrorCss);
|
||||
Sys.UI.DomElement.addCssClass(validationSummaryElement, Sys.Mvc.FormContext._validationSummaryValidCss);
|
||||
}
|
||||
},
|
||||
|
||||
enableDynamicValidation: function Sys_Mvc_FormContext$enableDynamicValidation() {
|
||||
Sys.UI.DomEvent.addHandler(this._formElement, 'click', this._onClickHandler);
|
||||
Sys.UI.DomEvent.addHandler(this._formElement, 'submit', this._onSubmitHandler);
|
||||
},
|
||||
|
||||
_findSubmitButton: function Sys_Mvc_FormContext$_findSubmitButton(element) {
|
||||
/// <param name="element" type="Object" domElement="true">
|
||||
/// </param>
|
||||
/// <returns type="Object" domElement="true"></returns>
|
||||
if (element.disabled) {
|
||||
return null;
|
||||
}
|
||||
var tagName = element.tagName.toUpperCase();
|
||||
var inputElement = element;
|
||||
if (tagName === 'INPUT') {
|
||||
var type = inputElement.type;
|
||||
if (type === 'submit' || type === 'image') {
|
||||
return inputElement;
|
||||
}
|
||||
}
|
||||
else if ((tagName === 'BUTTON') && (inputElement.type === 'submit')) {
|
||||
return inputElement;
|
||||
}
|
||||
return null;
|
||||
},
|
||||
|
||||
_form_OnClick: function Sys_Mvc_FormContext$_form_OnClick(e) {
|
||||
/// <param name="e" type="Sys.UI.DomEvent">
|
||||
/// </param>
|
||||
this._submitButtonClicked = this._findSubmitButton(e.target);
|
||||
},
|
||||
|
||||
_form_OnSubmit: function Sys_Mvc_FormContext$_form_OnSubmit(e) {
|
||||
/// <param name="e" type="Sys.UI.DomEvent">
|
||||
/// </param>
|
||||
var form = e.target;
|
||||
var submitButton = this._submitButtonClicked;
|
||||
if (submitButton && submitButton.disableValidation) {
|
||||
return;
|
||||
}
|
||||
var errorMessages = this.validate('submit');
|
||||
if (!Sys.Mvc._validationUtil.arrayIsNullOrEmpty(errorMessages)) {
|
||||
e.preventDefault();
|
||||
}
|
||||
},
|
||||
|
||||
_onErrorCountChanged: function Sys_Mvc_FormContext$_onErrorCountChanged() {
|
||||
if (!this._errors.length) {
|
||||
this._displaySuccess();
|
||||
}
|
||||
else {
|
||||
this._displayError();
|
||||
}
|
||||
},
|
||||
|
||||
validate: function Sys_Mvc_FormContext$validate(eventName) {
|
||||
/// <param name="eventName" type="String">
|
||||
/// </param>
|
||||
/// <returns type="Array" elementType="String"></returns>
|
||||
var fields = this.fields;
|
||||
var errors = [];
|
||||
for (var i = 0; i < fields.length; i++) {
|
||||
var field = fields[i];
|
||||
if (!field.elements[0].disabled) {
|
||||
var thisErrors = field.validate(eventName);
|
||||
if (thisErrors) {
|
||||
Array.addRange(errors, thisErrors);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (this.replaceValidationSummary) {
|
||||
this.clearErrors();
|
||||
this.addErrors(errors);
|
||||
}
|
||||
return errors;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Sys.Mvc.FieldContext
|
||||
|
||||
Sys.Mvc.FieldContext = function Sys_Mvc_FieldContext(formContext) {
|
||||
/// <param name="formContext" type="Sys.Mvc.FormContext">
|
||||
/// </param>
|
||||
/// <field name="_hasTextChangedTag" type="String" static="true">
|
||||
/// </field>
|
||||
/// <field name="_hasValidationFiredTag" type="String" static="true">
|
||||
/// </field>
|
||||
/// <field name="_inputElementErrorCss" type="String" static="true">
|
||||
/// </field>
|
||||
/// <field name="_inputElementValidCss" type="String" static="true">
|
||||
/// </field>
|
||||
/// <field name="_validationMessageErrorCss" type="String" static="true">
|
||||
/// </field>
|
||||
/// <field name="_validationMessageValidCss" type="String" static="true">
|
||||
/// </field>
|
||||
/// <field name="_onBlurHandler" type="Sys.UI.DomEventHandler">
|
||||
/// </field>
|
||||
/// <field name="_onChangeHandler" type="Sys.UI.DomEventHandler">
|
||||
/// </field>
|
||||
/// <field name="_onInputHandler" type="Sys.UI.DomEventHandler">
|
||||
/// </field>
|
||||
/// <field name="_onPropertyChangeHandler" type="Sys.UI.DomEventHandler">
|
||||
/// </field>
|
||||
/// <field name="_errors" type="Array">
|
||||
/// </field>
|
||||
/// <field name="defaultErrorMessage" type="String">
|
||||
/// </field>
|
||||
/// <field name="elements" type="Array" elementType="Object" elementDomElement="true">
|
||||
/// </field>
|
||||
/// <field name="formContext" type="Sys.Mvc.FormContext">
|
||||
/// </field>
|
||||
/// <field name="replaceValidationMessageContents" type="Boolean">
|
||||
/// </field>
|
||||
/// <field name="validationMessageElement" type="Object" domElement="true">
|
||||
/// </field>
|
||||
/// <field name="validations" type="Array" elementType="Validation">
|
||||
/// </field>
|
||||
this._errors = [];
|
||||
this.elements = new Array(0);
|
||||
this.validations = new Array(0);
|
||||
this.formContext = formContext;
|
||||
this._onBlurHandler = Function.createDelegate(this, this._element_OnBlur);
|
||||
this._onChangeHandler = Function.createDelegate(this, this._element_OnChange);
|
||||
this._onInputHandler = Function.createDelegate(this, this._element_OnInput);
|
||||
this._onPropertyChangeHandler = Function.createDelegate(this, this._element_OnPropertyChange);
|
||||
}
|
||||
Sys.Mvc.FieldContext.prototype = {
|
||||
_onBlurHandler: null,
|
||||
_onChangeHandler: null,
|
||||
_onInputHandler: null,
|
||||
_onPropertyChangeHandler: null,
|
||||
defaultErrorMessage: null,
|
||||
formContext: null,
|
||||
replaceValidationMessageContents: false,
|
||||
validationMessageElement: null,
|
||||
|
||||
addError: function Sys_Mvc_FieldContext$addError(message) {
|
||||
/// <param name="message" type="String">
|
||||
/// </param>
|
||||
this.addErrors([ message ]);
|
||||
},
|
||||
|
||||
addErrors: function Sys_Mvc_FieldContext$addErrors(messages) {
|
||||
/// <param name="messages" type="Array" elementType="String">
|
||||
/// </param>
|
||||
if (!Sys.Mvc._validationUtil.arrayIsNullOrEmpty(messages)) {
|
||||
Array.addRange(this._errors, messages);
|
||||
this._onErrorCountChanged();
|
||||
}
|
||||
},
|
||||
|
||||
clearErrors: function Sys_Mvc_FieldContext$clearErrors() {
|
||||
Array.clear(this._errors);
|
||||
this._onErrorCountChanged();
|
||||
},
|
||||
|
||||
_displayError: function Sys_Mvc_FieldContext$_displayError() {
|
||||
var validationMessageElement = this.validationMessageElement;
|
||||
if (validationMessageElement) {
|
||||
if (this.replaceValidationMessageContents) {
|
||||
Sys.Mvc._validationUtil.setInnerText(validationMessageElement, this._errors[0]);
|
||||
}
|
||||
Sys.UI.DomElement.removeCssClass(validationMessageElement, Sys.Mvc.FieldContext._validationMessageValidCss);
|
||||
Sys.UI.DomElement.addCssClass(validationMessageElement, Sys.Mvc.FieldContext._validationMessageErrorCss);
|
||||
}
|
||||
var elements = this.elements;
|
||||
for (var i = 0; i < elements.length; i++) {
|
||||
var element = elements[i];
|
||||
Sys.UI.DomElement.removeCssClass(element, Sys.Mvc.FieldContext._inputElementValidCss);
|
||||
Sys.UI.DomElement.addCssClass(element, Sys.Mvc.FieldContext._inputElementErrorCss);
|
||||
}
|
||||
},
|
||||
|
||||
_displaySuccess: function Sys_Mvc_FieldContext$_displaySuccess() {
|
||||
var validationMessageElement = this.validationMessageElement;
|
||||
if (validationMessageElement) {
|
||||
if (this.replaceValidationMessageContents) {
|
||||
Sys.Mvc._validationUtil.setInnerText(validationMessageElement, '');
|
||||
}
|
||||
Sys.UI.DomElement.removeCssClass(validationMessageElement, Sys.Mvc.FieldContext._validationMessageErrorCss);
|
||||
Sys.UI.DomElement.addCssClass(validationMessageElement, Sys.Mvc.FieldContext._validationMessageValidCss);
|
||||
}
|
||||
var elements = this.elements;
|
||||
for (var i = 0; i < elements.length; i++) {
|
||||
var element = elements[i];
|
||||
Sys.UI.DomElement.removeCssClass(element, Sys.Mvc.FieldContext._inputElementErrorCss);
|
||||
Sys.UI.DomElement.addCssClass(element, Sys.Mvc.FieldContext._inputElementValidCss);
|
||||
}
|
||||
},
|
||||
|
||||
_element_OnBlur: function Sys_Mvc_FieldContext$_element_OnBlur(e) {
|
||||
/// <param name="e" type="Sys.UI.DomEvent">
|
||||
/// </param>
|
||||
if (e.target[Sys.Mvc.FieldContext._hasTextChangedTag] || e.target[Sys.Mvc.FieldContext._hasValidationFiredTag]) {
|
||||
this.validate('blur');
|
||||
}
|
||||
},
|
||||
|
||||
_element_OnChange: function Sys_Mvc_FieldContext$_element_OnChange(e) {
|
||||
/// <param name="e" type="Sys.UI.DomEvent">
|
||||
/// </param>
|
||||
e.target[Sys.Mvc.FieldContext._hasTextChangedTag] = true;
|
||||
},
|
||||
|
||||
_element_OnInput: function Sys_Mvc_FieldContext$_element_OnInput(e) {
|
||||
/// <param name="e" type="Sys.UI.DomEvent">
|
||||
/// </param>
|
||||
e.target[Sys.Mvc.FieldContext._hasTextChangedTag] = true;
|
||||
if (e.target[Sys.Mvc.FieldContext._hasValidationFiredTag]) {
|
||||
this.validate('input');
|
||||
}
|
||||
},
|
||||
|
||||
_element_OnPropertyChange: function Sys_Mvc_FieldContext$_element_OnPropertyChange(e) {
|
||||
/// <param name="e" type="Sys.UI.DomEvent">
|
||||
/// </param>
|
||||
if (e.rawEvent.propertyName === 'value') {
|
||||
e.target[Sys.Mvc.FieldContext._hasTextChangedTag] = true;
|
||||
if (e.target[Sys.Mvc.FieldContext._hasValidationFiredTag]) {
|
||||
this.validate('input');
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
enableDynamicValidation: function Sys_Mvc_FieldContext$enableDynamicValidation() {
|
||||
var elements = this.elements;
|
||||
for (var i = 0; i < elements.length; i++) {
|
||||
var element = elements[i];
|
||||
if (Sys.Mvc._validationUtil.elementSupportsEvent(element, 'onpropertychange')) {
|
||||
var compatMode = document.documentMode;
|
||||
if (compatMode && compatMode >= 8) {
|
||||
Sys.UI.DomEvent.addHandler(element, 'propertychange', this._onPropertyChangeHandler);
|
||||
}
|
||||
}
|
||||
else {
|
||||
Sys.UI.DomEvent.addHandler(element, 'input', this._onInputHandler);
|
||||
}
|
||||
Sys.UI.DomEvent.addHandler(element, 'change', this._onChangeHandler);
|
||||
Sys.UI.DomEvent.addHandler(element, 'blur', this._onBlurHandler);
|
||||
}
|
||||
},
|
||||
|
||||
_getErrorString: function Sys_Mvc_FieldContext$_getErrorString(validatorReturnValue, fieldErrorMessage) {
|
||||
/// <param name="validatorReturnValue" type="Object">
|
||||
/// </param>
|
||||
/// <param name="fieldErrorMessage" type="String">
|
||||
/// </param>
|
||||
/// <returns type="String"></returns>
|
||||
var fallbackErrorMessage = fieldErrorMessage || this.defaultErrorMessage;
|
||||
if (Boolean.isInstanceOfType(validatorReturnValue)) {
|
||||
return (validatorReturnValue) ? null : fallbackErrorMessage;
|
||||
}
|
||||
if (String.isInstanceOfType(validatorReturnValue)) {
|
||||
return ((validatorReturnValue).length) ? validatorReturnValue : fallbackErrorMessage;
|
||||
}
|
||||
return null;
|
||||
},
|
||||
|
||||
_getStringValue: function Sys_Mvc_FieldContext$_getStringValue() {
|
||||
/// <returns type="String"></returns>
|
||||
var elements = this.elements;
|
||||
return (elements.length > 0) ? elements[0].value : null;
|
||||
},
|
||||
|
||||
_markValidationFired: function Sys_Mvc_FieldContext$_markValidationFired() {
|
||||
var elements = this.elements;
|
||||
for (var i = 0; i < elements.length; i++) {
|
||||
var element = elements[i];
|
||||
element[Sys.Mvc.FieldContext._hasValidationFiredTag] = true;
|
||||
}
|
||||
},
|
||||
|
||||
_onErrorCountChanged: function Sys_Mvc_FieldContext$_onErrorCountChanged() {
|
||||
if (!this._errors.length) {
|
||||
this._displaySuccess();
|
||||
}
|
||||
else {
|
||||
this._displayError();
|
||||
}
|
||||
},
|
||||
|
||||
validate: function Sys_Mvc_FieldContext$validate(eventName) {
|
||||
/// <param name="eventName" type="String">
|
||||
/// </param>
|
||||
/// <returns type="Array" elementType="String"></returns>
|
||||
var validations = this.validations;
|
||||
var errors = [];
|
||||
var value = this._getStringValue();
|
||||
for (var i = 0; i < validations.length; i++) {
|
||||
var validation = validations[i];
|
||||
var context = Sys.Mvc.$create_ValidationContext();
|
||||
context.eventName = eventName;
|
||||
context.fieldContext = this;
|
||||
context.validation = validation;
|
||||
var retVal = validation.validator(value, context);
|
||||
var errorMessage = this._getErrorString(retVal, validation.fieldErrorMessage);
|
||||
if (!Sys.Mvc._validationUtil.stringIsNullOrEmpty(errorMessage)) {
|
||||
Array.add(errors, errorMessage);
|
||||
}
|
||||
}
|
||||
this._markValidationFired();
|
||||
this.clearErrors();
|
||||
this.addErrors(errors);
|
||||
return errors;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Sys.Mvc.RangeValidator
|
||||
|
||||
Sys.Mvc.RangeValidator = function Sys_Mvc_RangeValidator(minimum, maximum) {
|
||||
/// <param name="minimum" type="Number">
|
||||
/// </param>
|
||||
/// <param name="maximum" type="Number">
|
||||
/// </param>
|
||||
/// <field name="_minimum" type="Number">
|
||||
/// </field>
|
||||
/// <field name="_maximum" type="Number">
|
||||
/// </field>
|
||||
this._minimum = minimum;
|
||||
this._maximum = maximum;
|
||||
}
|
||||
Sys.Mvc.RangeValidator.create = function Sys_Mvc_RangeValidator$create(rule) {
|
||||
/// <param name="rule" type="Sys.Mvc.JsonValidationRule">
|
||||
/// </param>
|
||||
/// <returns type="Sys.Mvc.Validator"></returns>
|
||||
var min = rule.ValidationParameters['min'];
|
||||
var max = rule.ValidationParameters['max'];
|
||||
return Function.createDelegate(new Sys.Mvc.RangeValidator(min, max), new Sys.Mvc.RangeValidator(min, max).validate);
|
||||
}
|
||||
Sys.Mvc.RangeValidator.prototype = {
|
||||
_minimum: null,
|
||||
_maximum: null,
|
||||
|
||||
validate: function Sys_Mvc_RangeValidator$validate(value, context) {
|
||||
/// <param name="value" type="String">
|
||||
/// </param>
|
||||
/// <param name="context" type="Sys.Mvc.ValidationContext">
|
||||
/// </param>
|
||||
/// <returns type="Object"></returns>
|
||||
if (Sys.Mvc._validationUtil.stringIsNullOrEmpty(value)) {
|
||||
return true;
|
||||
}
|
||||
var n = Number.parseLocale(value);
|
||||
return (!isNaN(n) && this._minimum <= n && n <= this._maximum);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Sys.Mvc.RegularExpressionValidator
|
||||
|
||||
Sys.Mvc.RegularExpressionValidator = function Sys_Mvc_RegularExpressionValidator(pattern) {
|
||||
/// <param name="pattern" type="String">
|
||||
/// </param>
|
||||
/// <field name="_pattern" type="String">
|
||||
/// </field>
|
||||
this._pattern = pattern;
|
||||
}
|
||||
Sys.Mvc.RegularExpressionValidator.create = function Sys_Mvc_RegularExpressionValidator$create(rule) {
|
||||
/// <param name="rule" type="Sys.Mvc.JsonValidationRule">
|
||||
/// </param>
|
||||
/// <returns type="Sys.Mvc.Validator"></returns>
|
||||
var pattern = rule.ValidationParameters['pattern'];
|
||||
return Function.createDelegate(new Sys.Mvc.RegularExpressionValidator(pattern), new Sys.Mvc.RegularExpressionValidator(pattern).validate);
|
||||
}
|
||||
Sys.Mvc.RegularExpressionValidator.prototype = {
|
||||
_pattern: null,
|
||||
|
||||
validate: function Sys_Mvc_RegularExpressionValidator$validate(value, context) {
|
||||
/// <param name="value" type="String">
|
||||
/// </param>
|
||||
/// <param name="context" type="Sys.Mvc.ValidationContext">
|
||||
/// </param>
|
||||
/// <returns type="Object"></returns>
|
||||
if (Sys.Mvc._validationUtil.stringIsNullOrEmpty(value)) {
|
||||
return true;
|
||||
}
|
||||
var regExp = new RegExp(this._pattern);
|
||||
var matches = regExp.exec(value);
|
||||
return (!Sys.Mvc._validationUtil.arrayIsNullOrEmpty(matches) && matches[0].length === value.length);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Sys.Mvc.RequiredValidator
|
||||
|
||||
Sys.Mvc.RequiredValidator = function Sys_Mvc_RequiredValidator() {
|
||||
}
|
||||
Sys.Mvc.RequiredValidator.create = function Sys_Mvc_RequiredValidator$create(rule) {
|
||||
/// <param name="rule" type="Sys.Mvc.JsonValidationRule">
|
||||
/// </param>
|
||||
/// <returns type="Sys.Mvc.Validator"></returns>
|
||||
return Function.createDelegate(new Sys.Mvc.RequiredValidator(), new Sys.Mvc.RequiredValidator().validate);
|
||||
}
|
||||
Sys.Mvc.RequiredValidator._isRadioInputElement = function Sys_Mvc_RequiredValidator$_isRadioInputElement(element) {
|
||||
/// <param name="element" type="Object" domElement="true">
|
||||
/// </param>
|
||||
/// <returns type="Boolean"></returns>
|
||||
if (element.tagName.toUpperCase() === 'INPUT') {
|
||||
var inputType = (element.type).toUpperCase();
|
||||
if (inputType === 'RADIO') {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
Sys.Mvc.RequiredValidator._isSelectInputElement = function Sys_Mvc_RequiredValidator$_isSelectInputElement(element) {
|
||||
/// <param name="element" type="Object" domElement="true">
|
||||
/// </param>
|
||||
/// <returns type="Boolean"></returns>
|
||||
if (element.tagName.toUpperCase() === 'SELECT') {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
Sys.Mvc.RequiredValidator._isTextualInputElement = function Sys_Mvc_RequiredValidator$_isTextualInputElement(element) {
|
||||
/// <param name="element" type="Object" domElement="true">
|
||||
/// </param>
|
||||
/// <returns type="Boolean"></returns>
|
||||
if (element.tagName.toUpperCase() === 'INPUT') {
|
||||
var inputType = (element.type).toUpperCase();
|
||||
switch (inputType) {
|
||||
case 'TEXT':
|
||||
case 'PASSWORD':
|
||||
case 'FILE':
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if (element.tagName.toUpperCase() === 'TEXTAREA') {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
Sys.Mvc.RequiredValidator._validateRadioInput = function Sys_Mvc_RequiredValidator$_validateRadioInput(elements) {
|
||||
/// <param name="elements" type="Array" elementType="Object" elementDomElement="true">
|
||||
/// </param>
|
||||
/// <returns type="Object"></returns>
|
||||
for (var i = 0; i < elements.length; i++) {
|
||||
var element = elements[i];
|
||||
if (element.checked) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
Sys.Mvc.RequiredValidator._validateSelectInput = function Sys_Mvc_RequiredValidator$_validateSelectInput(optionElements) {
|
||||
/// <param name="optionElements" type="DOMElementCollection">
|
||||
/// </param>
|
||||
/// <returns type="Object"></returns>
|
||||
for (var i = 0; i < optionElements.length; i++) {
|
||||
var element = optionElements[i];
|
||||
if (element.selected) {
|
||||
if (!Sys.Mvc._validationUtil.stringIsNullOrEmpty(element.value)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
Sys.Mvc.RequiredValidator._validateTextualInput = function Sys_Mvc_RequiredValidator$_validateTextualInput(element) {
|
||||
/// <param name="element" type="Object" domElement="true">
|
||||
/// </param>
|
||||
/// <returns type="Object"></returns>
|
||||
return (!Sys.Mvc._validationUtil.stringIsNullOrEmpty(element.value));
|
||||
}
|
||||
Sys.Mvc.RequiredValidator.prototype = {
|
||||
|
||||
validate: function Sys_Mvc_RequiredValidator$validate(value, context) {
|
||||
/// <param name="value" type="String">
|
||||
/// </param>
|
||||
/// <param name="context" type="Sys.Mvc.ValidationContext">
|
||||
/// </param>
|
||||
/// <returns type="Object"></returns>
|
||||
var elements = context.fieldContext.elements;
|
||||
if (!elements.length) {
|
||||
return true;
|
||||
}
|
||||
var sampleElement = elements[0];
|
||||
if (Sys.Mvc.RequiredValidator._isTextualInputElement(sampleElement)) {
|
||||
return Sys.Mvc.RequiredValidator._validateTextualInput(sampleElement);
|
||||
}
|
||||
if (Sys.Mvc.RequiredValidator._isRadioInputElement(sampleElement)) {
|
||||
return Sys.Mvc.RequiredValidator._validateRadioInput(elements);
|
||||
}
|
||||
if (Sys.Mvc.RequiredValidator._isSelectInputElement(sampleElement)) {
|
||||
return Sys.Mvc.RequiredValidator._validateSelectInput((sampleElement).options);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Sys.Mvc.StringLengthValidator
|
||||
|
||||
Sys.Mvc.StringLengthValidator = function Sys_Mvc_StringLengthValidator(minLength, maxLength) {
|
||||
/// <param name="minLength" type="Number" integer="true">
|
||||
/// </param>
|
||||
/// <param name="maxLength" type="Number" integer="true">
|
||||
/// </param>
|
||||
/// <field name="_maxLength" type="Number" integer="true">
|
||||
/// </field>
|
||||
/// <field name="_minLength" type="Number" integer="true">
|
||||
/// </field>
|
||||
this._minLength = minLength;
|
||||
this._maxLength = maxLength;
|
||||
}
|
||||
Sys.Mvc.StringLengthValidator.create = function Sys_Mvc_StringLengthValidator$create(rule) {
|
||||
/// <param name="rule" type="Sys.Mvc.JsonValidationRule">
|
||||
/// </param>
|
||||
/// <returns type="Sys.Mvc.Validator"></returns>
|
||||
var minLength = (rule.ValidationParameters['min'] || 0);
|
||||
var maxLength = (rule.ValidationParameters['max'] || Number.MAX_VALUE);
|
||||
return Function.createDelegate(new Sys.Mvc.StringLengthValidator(minLength, maxLength), new Sys.Mvc.StringLengthValidator(minLength, maxLength).validate);
|
||||
}
|
||||
Sys.Mvc.StringLengthValidator.prototype = {
|
||||
_maxLength: 0,
|
||||
_minLength: 0,
|
||||
|
||||
validate: function Sys_Mvc_StringLengthValidator$validate(value, context) {
|
||||
/// <param name="value" type="String">
|
||||
/// </param>
|
||||
/// <param name="context" type="Sys.Mvc.ValidationContext">
|
||||
/// </param>
|
||||
/// <returns type="Object"></returns>
|
||||
if (Sys.Mvc._validationUtil.stringIsNullOrEmpty(value)) {
|
||||
return true;
|
||||
}
|
||||
return (this._minLength <= value.length && value.length <= this._maxLength);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Sys.Mvc._validationUtil
|
||||
|
||||
Sys.Mvc._validationUtil = function Sys_Mvc__validationUtil() {
|
||||
}
|
||||
Sys.Mvc._validationUtil.arrayIsNullOrEmpty = function Sys_Mvc__validationUtil$arrayIsNullOrEmpty(array) {
|
||||
/// <param name="array" type="Array" elementType="Object">
|
||||
/// </param>
|
||||
/// <returns type="Boolean"></returns>
|
||||
return (!array || !array.length);
|
||||
}
|
||||
Sys.Mvc._validationUtil.stringIsNullOrEmpty = function Sys_Mvc__validationUtil$stringIsNullOrEmpty(value) {
|
||||
/// <param name="value" type="String">
|
||||
/// </param>
|
||||
/// <returns type="Boolean"></returns>
|
||||
return (!value || !value.length);
|
||||
}
|
||||
Sys.Mvc._validationUtil.elementSupportsEvent = function Sys_Mvc__validationUtil$elementSupportsEvent(element, eventAttributeName) {
|
||||
/// <param name="element" type="Object" domElement="true">
|
||||
/// </param>
|
||||
/// <param name="eventAttributeName" type="String">
|
||||
/// </param>
|
||||
/// <returns type="Boolean"></returns>
|
||||
return (eventAttributeName in element);
|
||||
}
|
||||
Sys.Mvc._validationUtil.removeAllChildren = function Sys_Mvc__validationUtil$removeAllChildren(element) {
|
||||
/// <param name="element" type="Object" domElement="true">
|
||||
/// </param>
|
||||
while (element.firstChild) {
|
||||
element.removeChild(element.firstChild);
|
||||
}
|
||||
}
|
||||
Sys.Mvc._validationUtil.setInnerText = function Sys_Mvc__validationUtil$setInnerText(element, innerText) {
|
||||
/// <param name="element" type="Object" domElement="true">
|
||||
/// </param>
|
||||
/// <param name="innerText" type="String">
|
||||
/// </param>
|
||||
var textNode = document.createTextNode(innerText);
|
||||
Sys.Mvc._validationUtil.removeAllChildren(element);
|
||||
element.appendChild(textNode);
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Sys.Mvc.ValidatorRegistry
|
||||
|
||||
Sys.Mvc.ValidatorRegistry = function Sys_Mvc_ValidatorRegistry() {
|
||||
/// <field name="validators" type="Object" static="true">
|
||||
/// </field>
|
||||
}
|
||||
Sys.Mvc.ValidatorRegistry.getValidator = function Sys_Mvc_ValidatorRegistry$getValidator(rule) {
|
||||
/// <param name="rule" type="Sys.Mvc.JsonValidationRule">
|
||||
/// </param>
|
||||
/// <returns type="Sys.Mvc.Validator"></returns>
|
||||
var creator = Sys.Mvc.ValidatorRegistry.validators[rule.ValidationType];
|
||||
return (creator) ? creator(rule) : null;
|
||||
}
|
||||
Sys.Mvc.ValidatorRegistry._getDefaultValidators = function Sys_Mvc_ValidatorRegistry$_getDefaultValidators() {
|
||||
/// <returns type="Object"></returns>
|
||||
return { required: Function.createDelegate(null, Sys.Mvc.RequiredValidator.create), length: Function.createDelegate(null, Sys.Mvc.StringLengthValidator.create), regex: Function.createDelegate(null, Sys.Mvc.RegularExpressionValidator.create), range: Function.createDelegate(null, Sys.Mvc.RangeValidator.create), number: Function.createDelegate(null, Sys.Mvc.NumberValidator.create) };
|
||||
}
|
||||
|
||||
|
||||
Sys.Mvc.NumberValidator.registerClass('Sys.Mvc.NumberValidator');
|
||||
Sys.Mvc.FormContext.registerClass('Sys.Mvc.FormContext');
|
||||
Sys.Mvc.FieldContext.registerClass('Sys.Mvc.FieldContext');
|
||||
Sys.Mvc.RangeValidator.registerClass('Sys.Mvc.RangeValidator');
|
||||
Sys.Mvc.RegularExpressionValidator.registerClass('Sys.Mvc.RegularExpressionValidator');
|
||||
Sys.Mvc.RequiredValidator.registerClass('Sys.Mvc.RequiredValidator');
|
||||
Sys.Mvc.StringLengthValidator.registerClass('Sys.Mvc.StringLengthValidator');
|
||||
Sys.Mvc._validationUtil.registerClass('Sys.Mvc._validationUtil');
|
||||
Sys.Mvc.ValidatorRegistry.registerClass('Sys.Mvc.ValidatorRegistry');
|
||||
Sys.Mvc.FormContext._validationSummaryErrorCss = 'validation-summary-errors';
|
||||
Sys.Mvc.FormContext._validationSummaryValidCss = 'validation-summary-valid';
|
||||
Sys.Mvc.FormContext._formValidationTag = '__MVC_FormValidation';
|
||||
Sys.Mvc.FieldContext._hasTextChangedTag = '__MVC_HasTextChanged';
|
||||
Sys.Mvc.FieldContext._hasValidationFiredTag = '__MVC_HasValidationFired';
|
||||
Sys.Mvc.FieldContext._inputElementErrorCss = 'input-validation-error';
|
||||
Sys.Mvc.FieldContext._inputElementValidCss = 'input-validation-valid';
|
||||
Sys.Mvc.FieldContext._validationMessageErrorCss = 'field-validation-error';
|
||||
Sys.Mvc.FieldContext._validationMessageValidCss = 'field-validation-valid';
|
||||
Sys.Mvc.ValidatorRegistry.validators = Sys.Mvc.ValidatorRegistry._getDefaultValidators();
|
||||
|
||||
// ---- Do not remove this footer ----
|
||||
// Generated using Script# v0.5.0.0 (http://projects.nikhilk.net)
|
||||
// -----------------------------------
|
||||
|
||||
// register validation
|
||||
Sys.Application.add_load(function() {
|
||||
Sys.Application.remove_load(arguments.callee);
|
||||
Sys.Mvc.FormContext._Application_Load();
|
||||
});
|
|
@ -1,55 +0,0 @@
|
|||
//----------------------------------------------------------
|
||||
// Copyright (C) Microsoft Corporation. All rights reserved.
|
||||
//----------------------------------------------------------
|
||||
// MicrosoftMvcValidation.js
|
||||
|
||||
Type.registerNamespace('Sys.Mvc');Sys.Mvc.$create_Validation=function(){return {};}
|
||||
Sys.Mvc.$create_JsonValidationField=function(){return {};}
|
||||
Sys.Mvc.$create_JsonValidationOptions=function(){return {};}
|
||||
Sys.Mvc.$create_JsonValidationRule=function(){return {};}
|
||||
Sys.Mvc.$create_ValidationContext=function(){return {};}
|
||||
Sys.Mvc.NumberValidator=function(){}
|
||||
Sys.Mvc.NumberValidator.create=function(rule){return Function.createDelegate(new Sys.Mvc.NumberValidator(),new Sys.Mvc.NumberValidator().validate);}
|
||||
Sys.Mvc.NumberValidator.prototype={validate:function(value,context){if(Sys.Mvc._ValidationUtil.$1(value)){return true;}var $0=Number.parseLocale(value);return (!isNaN($0));}}
|
||||
Sys.Mvc.FormContext=function(formElement,validationSummaryElement){this.$5=[];this.fields=new Array(0);this.$9=formElement;this.$7=validationSummaryElement;formElement['__MVC_FormValidation'] = this;if(validationSummaryElement){var $0=validationSummaryElement.getElementsByTagName('ul');if($0.length>0){this.$8=$0[0];}}this.$3=Function.createDelegate(this,this.$D);this.$4=Function.createDelegate(this,this.$E);}
|
||||
Sys.Mvc.FormContext._Application_Load=function(){var $0=window.mvcClientValidationMetadata;if($0){while($0.length>0){var $1=$0.pop();Sys.Mvc.FormContext.$12($1);}}}
|
||||
Sys.Mvc.FormContext.$F=function($p0,$p1){var $0=[];var $1=document.getElementsByName($p1);for(var $2=0;$2<$1.length;$2++){var $3=$1[$2];if(Sys.Mvc.FormContext.$10($p0,$3)){Array.add($0,$3);}}return $0;}
|
||||
Sys.Mvc.FormContext.getValidationForForm=function(formElement){return formElement['__MVC_FormValidation'];}
|
||||
Sys.Mvc.FormContext.$10=function($p0,$p1){while($p1){if($p0===$p1){return true;}$p1=$p1.parentNode;}return false;}
|
||||
Sys.Mvc.FormContext.$12=function($p0){var $0=$get($p0.FormId);var $1=(!Sys.Mvc._ValidationUtil.$1($p0.ValidationSummaryId))?$get($p0.ValidationSummaryId):null;var $2=new Sys.Mvc.FormContext($0,$1);$2.enableDynamicValidation();$2.replaceValidationSummary=$p0.ReplaceValidationSummary;for(var $4=0;$4<$p0.Fields.length;$4++){var $5=$p0.Fields[$4];var $6=Sys.Mvc.FormContext.$F($0,$5.FieldName);var $7=(!Sys.Mvc._ValidationUtil.$1($5.ValidationMessageId))?$get($5.ValidationMessageId):null;var $8=new Sys.Mvc.FieldContext($2);Array.addRange($8.elements,$6);$8.validationMessageElement=$7;$8.replaceValidationMessageContents=$5.ReplaceValidationMessageContents;for(var $9=0;$9<$5.ValidationRules.length;$9++){var $A=$5.ValidationRules[$9];var $B=Sys.Mvc.ValidatorRegistry.getValidator($A);if($B){var $C=Sys.Mvc.$create_Validation();$C.fieldErrorMessage=$A.ErrorMessage;$C.validator=$B;Array.add($8.validations,$C);}}$8.enableDynamicValidation();Array.add($2.fields,$8);}var $3=$0.validationCallbacks;if(!$3){$3=[];$0.validationCallbacks = $3;}$3.push(Function.createDelegate(null,function(){
|
||||
return Sys.Mvc._ValidationUtil.$0($2.validate('submit'));}));return $2;}
|
||||
Sys.Mvc.FormContext.prototype={$3:null,$4:null,$6:null,$7:null,$8:null,$9:null,replaceValidationSummary:false,addError:function(message){this.addErrors([message]);},addErrors:function(messages){if(!Sys.Mvc._ValidationUtil.$0(messages)){Array.addRange(this.$5,messages);this.$11();}},clearErrors:function(){Array.clear(this.$5);this.$11();},$A:function(){if(this.$7){if(this.$8){Sys.Mvc._ValidationUtil.$3(this.$8);for(var $0=0;$0<this.$5.length;$0++){var $1=document.createElement('li');Sys.Mvc._ValidationUtil.$4($1,this.$5[$0]);this.$8.appendChild($1);}}Sys.UI.DomElement.removeCssClass(this.$7,'validation-summary-valid');Sys.UI.DomElement.addCssClass(this.$7,'validation-summary-errors');}},$B:function(){var $0=this.$7;if($0){var $1=this.$8;if($1){$1.innerHTML='';}Sys.UI.DomElement.removeCssClass($0,'validation-summary-errors');Sys.UI.DomElement.addCssClass($0,'validation-summary-valid');}},enableDynamicValidation:function(){Sys.UI.DomEvent.addHandler(this.$9,'click',this.$3);Sys.UI.DomEvent.addHandler(this.$9,'submit',this.$4);},$C:function($p0){if($p0.disabled){return null;}var $0=$p0.tagName.toUpperCase();var $1=$p0;if($0==='INPUT'){var $2=$1.type;if($2==='submit'||$2==='image'){return $1;}}else if(($0==='BUTTON')&&($1.type==='submit')){return $1;}return null;},$D:function($p0){this.$6=this.$C($p0.target);},$E:function($p0){var $0=$p0.target;var $1=this.$6;if($1&&$1.disableValidation){return;}var $2=this.validate('submit');if(!Sys.Mvc._ValidationUtil.$0($2)){$p0.preventDefault();}},$11:function(){if(!this.$5.length){this.$B();}else{this.$A();}},validate:function(eventName){var $0=this.fields;var $1=[];for(var $2=0;$2<$0.length;$2++){var $3=$0[$2];if(!$3.elements[0].disabled){var $4=$3.validate(eventName);if($4){Array.addRange($1,$4);}}}if(this.replaceValidationSummary){this.clearErrors();this.addErrors($1);}return $1;}}
|
||||
Sys.Mvc.FieldContext=function(formContext){this.$A=[];this.elements=new Array(0);this.validations=new Array(0);this.formContext=formContext;this.$6=Function.createDelegate(this,this.$D);this.$7=Function.createDelegate(this,this.$E);this.$8=Function.createDelegate(this,this.$F);this.$9=Function.createDelegate(this,this.$10);}
|
||||
Sys.Mvc.FieldContext.prototype={$6:null,$7:null,$8:null,$9:null,defaultErrorMessage:null,formContext:null,replaceValidationMessageContents:false,validationMessageElement:null,addError:function(message){this.addErrors([message]);},addErrors:function(messages){if(!Sys.Mvc._ValidationUtil.$0(messages)){Array.addRange(this.$A,messages);this.$14();}},clearErrors:function(){Array.clear(this.$A);this.$14();},$B:function(){var $0=this.validationMessageElement;if($0){if(this.replaceValidationMessageContents){Sys.Mvc._ValidationUtil.$4($0,this.$A[0]);}Sys.UI.DomElement.removeCssClass($0,'field-validation-valid');Sys.UI.DomElement.addCssClass($0,'field-validation-error');}var $1=this.elements;for(var $2=0;$2<$1.length;$2++){var $3=$1[$2];Sys.UI.DomElement.removeCssClass($3,'input-validation-valid');Sys.UI.DomElement.addCssClass($3,'input-validation-error');}},$C:function(){var $0=this.validationMessageElement;if($0){if(this.replaceValidationMessageContents){Sys.Mvc._ValidationUtil.$4($0,'');}Sys.UI.DomElement.removeCssClass($0,'field-validation-error');Sys.UI.DomElement.addCssClass($0,'field-validation-valid');}var $1=this.elements;for(var $2=0;$2<$1.length;$2++){var $3=$1[$2];Sys.UI.DomElement.removeCssClass($3,'input-validation-error');Sys.UI.DomElement.addCssClass($3,'input-validation-valid');}},$D:function($p0){if($p0.target['__MVC_HasTextChanged']||$p0.target['__MVC_HasValidationFired']){this.validate('blur');}},$E:function($p0){$p0.target['__MVC_HasTextChanged'] = true;},$F:function($p0){$p0.target['__MVC_HasTextChanged'] = true;if($p0.target['__MVC_HasValidationFired']){this.validate('input');}},$10:function($p0){if($p0.rawEvent.propertyName==='value'){$p0.target['__MVC_HasTextChanged'] = true;if($p0.target['__MVC_HasValidationFired']){this.validate('input');}}},enableDynamicValidation:function(){var $0=this.elements;for(var $1=0;$1<$0.length;$1++){var $2=$0[$1];if(Sys.Mvc._ValidationUtil.$2($2,'onpropertychange')){var $3=document.documentMode;if($3&&$3>=8){Sys.UI.DomEvent.addHandler($2,'propertychange',this.$9);}}else{Sys.UI.DomEvent.addHandler($2,'input',this.$8);}Sys.UI.DomEvent.addHandler($2,'change',this.$7);Sys.UI.DomEvent.addHandler($2,'blur',this.$6);}},$11:function($p0,$p1){var $0=$p1||this.defaultErrorMessage;if(Boolean.isInstanceOfType($p0)){return ($p0)?null:$0;}if(String.isInstanceOfType($p0)){return (($p0).length)?$p0:$0;}return null;},$12:function(){var $0=this.elements;return ($0.length>0)?$0[0].value:null;},$13:function(){var $0=this.elements;for(var $1=0;$1<$0.length;$1++){var $2=$0[$1];$2['__MVC_HasValidationFired'] = true;}},$14:function(){if(!this.$A.length){this.$C();}else{this.$B();}},validate:function(eventName){var $0=this.validations;var $1=[];var $2=this.$12();for(var $3=0;$3<$0.length;$3++){var $4=$0[$3];var $5=Sys.Mvc.$create_ValidationContext();$5.eventName=eventName;$5.fieldContext=this;$5.validation=$4;var $6=$4.validator($2,$5);var $7=this.$11($6,$4.fieldErrorMessage);if(!Sys.Mvc._ValidationUtil.$1($7)){Array.add($1,$7);}}this.$13();this.clearErrors();this.addErrors($1);return $1;}}
|
||||
Sys.Mvc.RangeValidator=function(minimum,maximum){this.$0=minimum;this.$1=maximum;}
|
||||
Sys.Mvc.RangeValidator.create=function(rule){var $0=rule.ValidationParameters['min'];var $1=rule.ValidationParameters['max'];return Function.createDelegate(new Sys.Mvc.RangeValidator($0,$1),new Sys.Mvc.RangeValidator($0,$1).validate);}
|
||||
Sys.Mvc.RangeValidator.prototype={$0:null,$1:null,validate:function(value,context){if(Sys.Mvc._ValidationUtil.$1(value)){return true;}var $0=Number.parseLocale(value);return (!isNaN($0)&&this.$0<=$0&&$0<=this.$1);}}
|
||||
Sys.Mvc.RegularExpressionValidator=function(pattern){this.$0=pattern;}
|
||||
Sys.Mvc.RegularExpressionValidator.create=function(rule){var $0=rule.ValidationParameters['pattern'];return Function.createDelegate(new Sys.Mvc.RegularExpressionValidator($0),new Sys.Mvc.RegularExpressionValidator($0).validate);}
|
||||
Sys.Mvc.RegularExpressionValidator.prototype={$0:null,validate:function(value,context){if(Sys.Mvc._ValidationUtil.$1(value)){return true;}var $0=new RegExp(this.$0);var $1=$0.exec(value);return (!Sys.Mvc._ValidationUtil.$0($1)&&$1[0].length===value.length);}}
|
||||
Sys.Mvc.RequiredValidator=function(){}
|
||||
Sys.Mvc.RequiredValidator.create=function(rule){return Function.createDelegate(new Sys.Mvc.RequiredValidator(),new Sys.Mvc.RequiredValidator().validate);}
|
||||
Sys.Mvc.RequiredValidator.$0=function($p0){if($p0.tagName.toUpperCase()==='INPUT'){var $0=($p0.type).toUpperCase();if($0==='RADIO'){return true;}}return false;}
|
||||
Sys.Mvc.RequiredValidator.$1=function($p0){if($p0.tagName.toUpperCase()==='SELECT'){return true;}return false;}
|
||||
Sys.Mvc.RequiredValidator.$2=function($p0){if($p0.tagName.toUpperCase()==='INPUT'){var $0=($p0.type).toUpperCase();switch($0){case 'TEXT':case 'PASSWORD':case 'FILE':return true;}}if($p0.tagName.toUpperCase()==='TEXTAREA'){return true;}return false;}
|
||||
Sys.Mvc.RequiredValidator.$3=function($p0){for(var $0=0;$0<$p0.length;$0++){var $1=$p0[$0];if($1.checked){return true;}}return false;}
|
||||
Sys.Mvc.RequiredValidator.$4=function($p0){for(var $0=0;$0<$p0.length;$0++){var $1=$p0[$0];if($1.selected){if(!Sys.Mvc._ValidationUtil.$1($1.value)){return true;}}}return false;}
|
||||
Sys.Mvc.RequiredValidator.$5=function($p0){return (!Sys.Mvc._ValidationUtil.$1($p0.value));}
|
||||
Sys.Mvc.RequiredValidator.prototype={validate:function(value,context){var $0=context.fieldContext.elements;if(!$0.length){return true;}var $1=$0[0];if(Sys.Mvc.RequiredValidator.$2($1)){return Sys.Mvc.RequiredValidator.$5($1);}if(Sys.Mvc.RequiredValidator.$0($1)){return Sys.Mvc.RequiredValidator.$3($0);}if(Sys.Mvc.RequiredValidator.$1($1)){return Sys.Mvc.RequiredValidator.$4(($1).options);}return true;}}
|
||||
Sys.Mvc.StringLengthValidator=function(minLength,maxLength){this.$1=minLength;this.$0=maxLength;}
|
||||
Sys.Mvc.StringLengthValidator.create=function(rule){var $0=(rule.ValidationParameters['min']||0);var $1=(rule.ValidationParameters['max']||Number.MAX_VALUE);return Function.createDelegate(new Sys.Mvc.StringLengthValidator($0,$1),new Sys.Mvc.StringLengthValidator($0,$1).validate);}
|
||||
Sys.Mvc.StringLengthValidator.prototype={$0:0,$1:0,validate:function(value,context){if(Sys.Mvc._ValidationUtil.$1(value)){return true;}return (this.$1<=value.length&&value.length<=this.$0);}}
|
||||
Sys.Mvc._ValidationUtil=function(){}
|
||||
Sys.Mvc._ValidationUtil.$0=function($p0){return (!$p0||!$p0.length);}
|
||||
Sys.Mvc._ValidationUtil.$1=function($p0){return (!$p0||!$p0.length);}
|
||||
Sys.Mvc._ValidationUtil.$2=function($p0,$p1){return ($p1 in $p0);}
|
||||
Sys.Mvc._ValidationUtil.$3=function($p0){while($p0.firstChild){$p0.removeChild($p0.firstChild);}}
|
||||
Sys.Mvc._ValidationUtil.$4=function($p0,$p1){var $0=document.createTextNode($p1);Sys.Mvc._ValidationUtil.$3($p0);$p0.appendChild($0);}
|
||||
Sys.Mvc.ValidatorRegistry=function(){}
|
||||
Sys.Mvc.ValidatorRegistry.getValidator=function(rule){var $0=Sys.Mvc.ValidatorRegistry.validators[rule.ValidationType];return ($0)?$0(rule):null;}
|
||||
Sys.Mvc.ValidatorRegistry.$0=function(){return {required:Function.createDelegate(null,Sys.Mvc.RequiredValidator.create),length:Function.createDelegate(null,Sys.Mvc.StringLengthValidator.create),regex:Function.createDelegate(null,Sys.Mvc.RegularExpressionValidator.create),range:Function.createDelegate(null,Sys.Mvc.RangeValidator.create),number:Function.createDelegate(null,Sys.Mvc.NumberValidator.create)};}
|
||||
Sys.Mvc.NumberValidator.registerClass('Sys.Mvc.NumberValidator');Sys.Mvc.FormContext.registerClass('Sys.Mvc.FormContext');Sys.Mvc.FieldContext.registerClass('Sys.Mvc.FieldContext');Sys.Mvc.RangeValidator.registerClass('Sys.Mvc.RangeValidator');Sys.Mvc.RegularExpressionValidator.registerClass('Sys.Mvc.RegularExpressionValidator');Sys.Mvc.RequiredValidator.registerClass('Sys.Mvc.RequiredValidator');Sys.Mvc.StringLengthValidator.registerClass('Sys.Mvc.StringLengthValidator');Sys.Mvc._ValidationUtil.registerClass('Sys.Mvc._ValidationUtil');Sys.Mvc.ValidatorRegistry.registerClass('Sys.Mvc.ValidatorRegistry');Sys.Mvc.ValidatorRegistry.validators=Sys.Mvc.ValidatorRegistry.$0();
|
||||
// ---- Do not remove this footer ----
|
||||
// Generated using Script# v0.5.0.0 (http://projects.nikhilk.net)
|
||||
// -----------------------------------
|
||||
Sys.Application.add_load(function(){Sys.Application.remove_load(arguments.callee);Sys.Mvc.FormContext._Application_Load();});
|
|
@ -1,33 +0,0 @@
|
|||
|
||||
jQuery(document).ready(function ($) {
|
||||
|
||||
$('span.field-validation-valid, span.field-validation-error').each(function () {
|
||||
$(this).addClass('help-inline');
|
||||
});
|
||||
|
||||
$("button, input[type='submit'],input[type='button']").each(function () {
|
||||
$(this).addClass('btn btn-madmin');
|
||||
});
|
||||
|
||||
$(".btn").each(function () {
|
||||
$(this).addClass('btn-madmin');
|
||||
});
|
||||
|
||||
$("input[type='submit']").each(function () {
|
||||
$(this).addClass('btn-primary btn-large');
|
||||
});
|
||||
|
||||
$('.validation-summary-errors').livequery(function () {
|
||||
$(this).addClass('alert alert-error');
|
||||
});
|
||||
|
||||
$('.field-validation-error').livequery(function () {
|
||||
$('.control-group').each(function () {
|
||||
if ($(this).find('span.field-validation-error').length == 0) {
|
||||
$(this).removeClass('error');
|
||||
} else {
|
||||
$(this).addClass('error');
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
|
@ -1,226 +0,0 @@
|
|||
/*! Copyright (c) 2010 Brandon Aaron (http://brandonaaron.net)
|
||||
* Dual licensed under the MIT (MIT_LICENSE.txt)
|
||||
* and GPL Version 2 (GPL_LICENSE.txt) licenses.
|
||||
*
|
||||
* Version: 1.1.1
|
||||
* Requires jQuery 1.3+
|
||||
* Docs: http://docs.jquery.com/Plugins/livequery
|
||||
*/
|
||||
|
||||
(function($) {
|
||||
|
||||
$.extend($.fn, {
|
||||
livequery: function(type, fn, fn2) {
|
||||
var self = this, q;
|
||||
|
||||
// Handle different call patterns
|
||||
if ($.isFunction(type))
|
||||
fn2 = fn, fn = type, type = undefined;
|
||||
|
||||
// See if Live Query already exists
|
||||
$.each( $.livequery.queries, function(i, query) {
|
||||
if ( self.selector == query.selector && self.context == query.context &&
|
||||
type == query.type && (!fn || fn.$lqguid == query.fn.$lqguid) && (!fn2 || fn2.$lqguid == query.fn2.$lqguid) )
|
||||
// Found the query, exit the each loop
|
||||
return (q = query) && false;
|
||||
});
|
||||
|
||||
// Create new Live Query if it wasn't found
|
||||
q = q || new $.livequery(this.selector, this.context, type, fn, fn2);
|
||||
|
||||
// Make sure it is running
|
||||
q.stopped = false;
|
||||
|
||||
// Run it immediately for the first time
|
||||
q.run();
|
||||
|
||||
// Contnue the chain
|
||||
return this;
|
||||
},
|
||||
|
||||
expire: function(type, fn, fn2) {
|
||||
var self = this;
|
||||
|
||||
// Handle different call patterns
|
||||
if ($.isFunction(type))
|
||||
fn2 = fn, fn = type, type = undefined;
|
||||
|
||||
// Find the Live Query based on arguments and stop it
|
||||
$.each( $.livequery.queries, function(i, query) {
|
||||
if ( self.selector == query.selector && self.context == query.context &&
|
||||
(!type || type == query.type) && (!fn || fn.$lqguid == query.fn.$lqguid) && (!fn2 || fn2.$lqguid == query.fn2.$lqguid) && !this.stopped )
|
||||
$.livequery.stop(query.id);
|
||||
});
|
||||
|
||||
// Continue the chain
|
||||
return this;
|
||||
}
|
||||
});
|
||||
|
||||
$.livequery = function(selector, context, type, fn, fn2) {
|
||||
this.selector = selector;
|
||||
this.context = context;
|
||||
this.type = type;
|
||||
this.fn = fn;
|
||||
this.fn2 = fn2;
|
||||
this.elements = [];
|
||||
this.stopped = false;
|
||||
|
||||
// The id is the index of the Live Query in $.livequery.queries
|
||||
this.id = $.livequery.queries.push(this)-1;
|
||||
|
||||
// Mark the functions for matching later on
|
||||
fn.$lqguid = fn.$lqguid || $.livequery.guid++;
|
||||
if (fn2) fn2.$lqguid = fn2.$lqguid || $.livequery.guid++;
|
||||
|
||||
// Return the Live Query
|
||||
return this;
|
||||
};
|
||||
|
||||
$.livequery.prototype = {
|
||||
stop: function() {
|
||||
var query = this;
|
||||
|
||||
if ( this.type )
|
||||
// Unbind all bound events
|
||||
this.elements.unbind(this.type, this.fn);
|
||||
else if (this.fn2)
|
||||
// Call the second function for all matched elements
|
||||
this.elements.each(function(i, el) {
|
||||
query.fn2.apply(el);
|
||||
});
|
||||
|
||||
// Clear out matched elements
|
||||
this.elements = [];
|
||||
|
||||
// Stop the Live Query from running until restarted
|
||||
this.stopped = true;
|
||||
},
|
||||
|
||||
run: function() {
|
||||
// Short-circuit if stopped
|
||||
if ( this.stopped ) return;
|
||||
var query = this;
|
||||
|
||||
var oEls = this.elements,
|
||||
els = $(this.selector, this.context),
|
||||
nEls = els.not(oEls);
|
||||
|
||||
// Set elements to the latest set of matched elements
|
||||
this.elements = els;
|
||||
|
||||
if (this.type) {
|
||||
// Bind events to newly matched elements
|
||||
nEls.bind(this.type, this.fn);
|
||||
|
||||
// Unbind events to elements no longer matched
|
||||
if (oEls.length > 0)
|
||||
$.each(oEls, function(i, el) {
|
||||
if ( $.inArray(el, els) < 0 )
|
||||
$.event.remove(el, query.type, query.fn);
|
||||
});
|
||||
}
|
||||
else {
|
||||
// Call the first function for newly matched elements
|
||||
nEls.each(function() {
|
||||
query.fn.apply(this);
|
||||
});
|
||||
|
||||
// Call the second function for elements no longer matched
|
||||
if ( this.fn2 && oEls.length > 0 )
|
||||
$.each(oEls, function(i, el) {
|
||||
if ( $.inArray(el, els) < 0 )
|
||||
query.fn2.apply(el);
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
$.extend($.livequery, {
|
||||
guid: 0,
|
||||
queries: [],
|
||||
queue: [],
|
||||
running: false,
|
||||
timeout: null,
|
||||
|
||||
checkQueue: function() {
|
||||
if ( $.livequery.running && $.livequery.queue.length ) {
|
||||
var length = $.livequery.queue.length;
|
||||
// Run each Live Query currently in the queue
|
||||
while ( length-- )
|
||||
$.livequery.queries[ $.livequery.queue.shift() ].run();
|
||||
}
|
||||
},
|
||||
|
||||
pause: function() {
|
||||
// Don't run anymore Live Queries until restarted
|
||||
$.livequery.running = false;
|
||||
},
|
||||
|
||||
play: function() {
|
||||
// Restart Live Queries
|
||||
$.livequery.running = true;
|
||||
// Request a run of the Live Queries
|
||||
$.livequery.run();
|
||||
},
|
||||
|
||||
registerPlugin: function() {
|
||||
$.each( arguments, function(i,n) {
|
||||
// Short-circuit if the method doesn't exist
|
||||
if (!$.fn[n]) return;
|
||||
|
||||
// Save a reference to the original method
|
||||
var old = $.fn[n];
|
||||
|
||||
// Create a new method
|
||||
$.fn[n] = function() {
|
||||
// Call the original method
|
||||
var r = old.apply(this, arguments);
|
||||
|
||||
// Request a run of the Live Queries
|
||||
$.livequery.run();
|
||||
|
||||
// Return the original methods result
|
||||
return r;
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
run: function(id) {
|
||||
if (id != undefined) {
|
||||
// Put the particular Live Query in the queue if it doesn't already exist
|
||||
if ( $.inArray(id, $.livequery.queue) < 0 )
|
||||
$.livequery.queue.push( id );
|
||||
}
|
||||
else
|
||||
// Put each Live Query in the queue if it doesn't already exist
|
||||
$.each( $.livequery.queries, function(id) {
|
||||
if ( $.inArray(id, $.livequery.queue) < 0 )
|
||||
$.livequery.queue.push( id );
|
||||
});
|
||||
|
||||
// Clear timeout if it already exists
|
||||
if ($.livequery.timeout) clearTimeout($.livequery.timeout);
|
||||
// Create a timeout to check the queue and actually run the Live Queries
|
||||
$.livequery.timeout = setTimeout($.livequery.checkQueue, 20);
|
||||
},
|
||||
|
||||
stop: function(id) {
|
||||
if (id != undefined)
|
||||
// Stop are particular Live Query
|
||||
$.livequery.queries[ id ].stop();
|
||||
else
|
||||
// Stop all Live Queries
|
||||
$.each( $.livequery.queries, function(id) {
|
||||
$.livequery.queries[ id ].stop();
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
// Register core DOM manipulation methods
|
||||
$.livequery.registerPlugin('append', 'prepend', 'after', 'before', 'wrap', 'attr', 'removeAttr', 'addClass', 'removeClass', 'toggleClass', 'empty', 'remove', 'html');
|
||||
|
||||
// Run Live Queries when the Document is ready
|
||||
$(function() { $.livequery.play(); });
|
||||
|
||||
})(jQuery);
|
|
@ -1,165 +0,0 @@
|
|||
/// <reference path="jquery-1.7.1.js" />
|
||||
|
||||
/*!
|
||||
** Unobtrusive Ajax support library for jQuery
|
||||
** Copyright (C) Microsoft Corporation. All rights reserved.
|
||||
*/
|
||||
|
||||
/*jslint white: true, browser: true, onevar: true, undef: true, nomen: true, eqeqeq: true, plusplus: true, bitwise: true, regexp: true, newcap: true, immed: true, strict: false */
|
||||
/*global window: false, jQuery: false */
|
||||
|
||||
(function ($) {
|
||||
var data_click = "unobtrusiveAjaxClick",
|
||||
data_validation = "unobtrusiveValidation";
|
||||
|
||||
function getFunction(code, argNames) {
|
||||
var fn = window, parts = (code || "").split(".");
|
||||
while (fn && parts.length) {
|
||||
fn = fn[parts.shift()];
|
||||
}
|
||||
if (typeof (fn) === "function") {
|
||||
return fn;
|
||||
}
|
||||
argNames.push(code);
|
||||
return Function.constructor.apply(null, argNames);
|
||||
}
|
||||
|
||||
function isMethodProxySafe(method) {
|
||||
return method === "GET" || method === "POST";
|
||||
}
|
||||
|
||||
function asyncOnBeforeSend(xhr, method) {
|
||||
if (!isMethodProxySafe(method)) {
|
||||
xhr.setRequestHeader("X-HTTP-Method-Override", method);
|
||||
}
|
||||
}
|
||||
|
||||
function asyncOnSuccess(element, data, contentType) {
|
||||
var mode;
|
||||
|
||||
if (contentType.indexOf("application/x-javascript") !== -1) { // jQuery already executes JavaScript for us
|
||||
return;
|
||||
}
|
||||
|
||||
mode = (element.getAttribute("data-ajax-mode") || "").toUpperCase();
|
||||
$(element.getAttribute("data-ajax-update")).each(function (i, update) {
|
||||
var top;
|
||||
|
||||
switch (mode) {
|
||||
case "BEFORE":
|
||||
top = update.firstChild;
|
||||
$("<div />").html(data).contents().each(function () {
|
||||
update.insertBefore(this, top);
|
||||
});
|
||||
break;
|
||||
case "AFTER":
|
||||
$("<div />").html(data).contents().each(function () {
|
||||
update.appendChild(this);
|
||||
});
|
||||
break;
|
||||
default:
|
||||
$(update).html(data);
|
||||
break;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function asyncRequest(element, options) {
|
||||
var confirm, loading, method, duration;
|
||||
|
||||
confirm = element.getAttribute("data-ajax-confirm");
|
||||
if (confirm && !window.confirm(confirm)) {
|
||||
return;
|
||||
}
|
||||
|
||||
loading = $(element.getAttribute("data-ajax-loading"));
|
||||
duration = element.getAttribute("data-ajax-loading-duration") || 0;
|
||||
|
||||
$.extend(options, {
|
||||
type: element.getAttribute("data-ajax-method") || undefined,
|
||||
url: element.getAttribute("data-ajax-url") || undefined,
|
||||
beforeSend: function (xhr) {
|
||||
var result;
|
||||
asyncOnBeforeSend(xhr, method);
|
||||
result = getFunction(element.getAttribute("data-ajax-begin"), ["xhr"]).apply(this, arguments);
|
||||
if (result !== false) {
|
||||
loading.show(duration);
|
||||
}
|
||||
return result;
|
||||
},
|
||||
complete: function () {
|
||||
loading.hide(duration);
|
||||
getFunction(element.getAttribute("data-ajax-complete"), ["xhr", "status"]).apply(this, arguments);
|
||||
},
|
||||
success: function (data, status, xhr) {
|
||||
asyncOnSuccess(element, data, xhr.getResponseHeader("Content-Type") || "text/html");
|
||||
getFunction(element.getAttribute("data-ajax-success"), ["data", "status", "xhr"]).apply(this, arguments);
|
||||
},
|
||||
error: getFunction(element.getAttribute("data-ajax-failure"), ["xhr", "status", "error"])
|
||||
});
|
||||
|
||||
options.data.push({ name: "X-Requested-With", value: "XMLHttpRequest" });
|
||||
|
||||
method = options.type.toUpperCase();
|
||||
if (!isMethodProxySafe(method)) {
|
||||
options.type = "POST";
|
||||
options.data.push({ name: "X-HTTP-Method-Override", value: method });
|
||||
}
|
||||
|
||||
$.ajax(options);
|
||||
}
|
||||
|
||||
function validate(form) {
|
||||
var validationInfo = $(form).data(data_validation);
|
||||
return !validationInfo || !validationInfo.validate || validationInfo.validate();
|
||||
}
|
||||
|
||||
$("a[data-ajax=true]").live("click", function (evt) {
|
||||
evt.preventDefault();
|
||||
asyncRequest(this, {
|
||||
url: this.href,
|
||||
type: "GET",
|
||||
data: []
|
||||
});
|
||||
});
|
||||
|
||||
$("form[data-ajax=true] input[type=image]").live("click", function (evt) {
|
||||
var name = evt.target.name,
|
||||
$target = $(evt.target),
|
||||
form = $target.parents("form")[0],
|
||||
offset = $target.offset();
|
||||
|
||||
$(form).data(data_click, [
|
||||
{ name: name + ".x", value: Math.round(evt.pageX - offset.left) },
|
||||
{ name: name + ".y", value: Math.round(evt.pageY - offset.top) }
|
||||
]);
|
||||
|
||||
setTimeout(function () {
|
||||
$(form).removeData(data_click);
|
||||
}, 0);
|
||||
});
|
||||
|
||||
$("form[data-ajax=true] :submit").live("click", function (evt) {
|
||||
var name = evt.target.name,
|
||||
form = $(evt.target).parents("form")[0];
|
||||
|
||||
$(form).data(data_click, name ? [{ name: name, value: evt.target.value }] : []);
|
||||
|
||||
setTimeout(function () {
|
||||
$(form).removeData(data_click);
|
||||
}, 0);
|
||||
});
|
||||
|
||||
$("form[data-ajax=true]").live("submit", function (evt) {
|
||||
var clickInfo = $(this).data(data_click) || [];
|
||||
evt.preventDefault();
|
||||
if (!validate(this)) {
|
||||
return;
|
||||
}
|
||||
asyncRequest(this, {
|
||||
url: this.action,
|
||||
type: this.method || "GET",
|
||||
data: clickInfo.concat($(this).serializeArray())
|
||||
});
|
||||
});
|
||||
}(jQuery));
|
|
@ -1,365 +0,0 @@
|
|||
/*!
|
||||
** Unobtrusive validation support library for jQuery and jQuery Validate
|
||||
** Copyright (C) Microsoft Corporation. All rights reserved.
|
||||
*/
|
||||
|
||||
/*jslint white: true, browser: true, onevar: true, undef: true, nomen: true, eqeqeq: true, plusplus: true, bitwise: true, regexp: true, newcap: true, immed: true, strict: false */
|
||||
/*global document: false, jQuery: false */
|
||||
|
||||
(function ($) {
|
||||
var $jQval = $.validator,
|
||||
adapters,
|
||||
data_validation = "unobtrusiveValidation";
|
||||
|
||||
function setValidationValues(options, ruleName, value) {
|
||||
options.rules[ruleName] = value;
|
||||
if (options.message) {
|
||||
options.messages[ruleName] = options.message;
|
||||
}
|
||||
}
|
||||
|
||||
function splitAndTrim(value) {
|
||||
return value.replace(/^\s+|\s+$/g, "").split(/\s*,\s*/g);
|
||||
}
|
||||
|
||||
function escapeAttributeValue(value) {
|
||||
// As mentioned on http://api.jquery.com/category/selectors/
|
||||
return value.replace(/([!"#$%&'()*+,./:;<=>?@\[\\\]^`{|}~])/g, "\\$1");
|
||||
}
|
||||
|
||||
function getModelPrefix(fieldName) {
|
||||
return fieldName.substr(0, fieldName.lastIndexOf(".") + 1);
|
||||
}
|
||||
|
||||
function appendModelPrefix(value, prefix) {
|
||||
if (value.indexOf("*.") === 0) {
|
||||
value = value.replace("*.", prefix);
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
function onError(error, inputElement) { // 'this' is the form element
|
||||
var container = $(this).find("[data-valmsg-for='" + escapeAttributeValue(inputElement[0].name) + "']"),
|
||||
replace = $.parseJSON(container.attr("data-valmsg-replace")) !== false;
|
||||
|
||||
container.removeClass("field-validation-valid").addClass("field-validation-error");
|
||||
error.data("unobtrusiveContainer", container);
|
||||
|
||||
if (replace) {
|
||||
container.empty();
|
||||
error.removeClass("input-validation-error").appendTo(container);
|
||||
}
|
||||
else {
|
||||
error.hide();
|
||||
}
|
||||
}
|
||||
|
||||
function onErrors(event, validator) { // 'this' is the form element
|
||||
var container = $(this).find("[data-valmsg-summary=true]"),
|
||||
list = container.find("ul");
|
||||
|
||||
if (list && list.length && validator.errorList.length) {
|
||||
list.empty();
|
||||
container.addClass("validation-summary-errors").removeClass("validation-summary-valid");
|
||||
|
||||
$.each(validator.errorList, function () {
|
||||
$("<li />").html(this.message).appendTo(list);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function onSuccess(error) { // 'this' is the form element
|
||||
var container = error.data("unobtrusiveContainer"),
|
||||
replace = $.parseJSON(container.attr("data-valmsg-replace"));
|
||||
|
||||
if (container) {
|
||||
container.addClass("field-validation-valid").removeClass("field-validation-error");
|
||||
error.removeData("unobtrusiveContainer");
|
||||
|
||||
if (replace) {
|
||||
container.empty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function onReset(event) { // 'this' is the form element
|
||||
var $form = $(this);
|
||||
$form.data("validator").resetForm();
|
||||
$form.find(".validation-summary-errors")
|
||||
.addClass("validation-summary-valid")
|
||||
.removeClass("validation-summary-errors");
|
||||
$form.find(".field-validation-error")
|
||||
.addClass("field-validation-valid")
|
||||
.removeClass("field-validation-error")
|
||||
.removeData("unobtrusiveContainer")
|
||||
.find(">*") // If we were using valmsg-replace, get the underlying error
|
||||
.removeData("unobtrusiveContainer");
|
||||
}
|
||||
|
||||
function validationInfo(form) {
|
||||
var $form = $(form),
|
||||
result = $form.data(data_validation),
|
||||
onResetProxy = $.proxy(onReset, form);
|
||||
|
||||
if (!result) {
|
||||
result = {
|
||||
options: { // options structure passed to jQuery Validate's validate() method
|
||||
errorClass: "input-validation-error",
|
||||
errorElement: "span",
|
||||
errorPlacement: $.proxy(onError, form),
|
||||
invalidHandler: $.proxy(onErrors, form),
|
||||
messages: {},
|
||||
rules: {},
|
||||
success: $.proxy(onSuccess, form)
|
||||
},
|
||||
attachValidation: function () {
|
||||
$form
|
||||
.unbind("reset." + data_validation, onResetProxy)
|
||||
.bind("reset." + data_validation, onResetProxy)
|
||||
.validate(this.options);
|
||||
},
|
||||
validate: function () { // a validation function that is called by unobtrusive Ajax
|
||||
$form.validate();
|
||||
return $form.valid();
|
||||
}
|
||||
};
|
||||
$form.data(data_validation, result);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
$jQval.unobtrusive = {
|
||||
adapters: [],
|
||||
|
||||
parseElement: function (element, skipAttach) {
|
||||
/// <summary>
|
||||
/// Parses a single HTML element for unobtrusive validation attributes.
|
||||
/// </summary>
|
||||
/// <param name="element" domElement="true">The HTML element to be parsed.</param>
|
||||
/// <param name="skipAttach" type="Boolean">[Optional] true to skip attaching the
|
||||
/// validation to the form. If parsing just this single element, you should specify true.
|
||||
/// If parsing several elements, you should specify false, and manually attach the validation
|
||||
/// to the form when you are finished. The default is false.</param>
|
||||
var $element = $(element),
|
||||
form = $element.parents("form")[0],
|
||||
valInfo, rules, messages;
|
||||
|
||||
if (!form) { // Cannot do client-side validation without a form
|
||||
return;
|
||||
}
|
||||
|
||||
valInfo = validationInfo(form);
|
||||
valInfo.options.rules[element.name] = rules = {};
|
||||
valInfo.options.messages[element.name] = messages = {};
|
||||
|
||||
$.each(this.adapters, function () {
|
||||
var prefix = "data-val-" + this.name,
|
||||
message = $element.attr(prefix),
|
||||
paramValues = {};
|
||||
|
||||
if (message !== undefined) { // Compare against undefined, because an empty message is legal (and falsy)
|
||||
prefix += "-";
|
||||
|
||||
$.each(this.params, function () {
|
||||
paramValues[this] = $element.attr(prefix + this);
|
||||
});
|
||||
|
||||
this.adapt({
|
||||
element: element,
|
||||
form: form,
|
||||
message: message,
|
||||
params: paramValues,
|
||||
rules: rules,
|
||||
messages: messages
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
$.extend(rules, { "__dummy__": true });
|
||||
|
||||
if (!skipAttach) {
|
||||
valInfo.attachValidation();
|
||||
}
|
||||
},
|
||||
|
||||
parse: function (selector) {
|
||||
/// <summary>
|
||||
/// Parses all the HTML elements in the specified selector. It looks for input elements decorated
|
||||
/// with the [data-val=true] attribute value and enables validation according to the data-val-*
|
||||
/// attribute values.
|
||||
/// </summary>
|
||||
/// <param name="selector" type="String">Any valid jQuery selector.</param>
|
||||
var $forms = $(selector)
|
||||
.parents("form")
|
||||
.andSelf()
|
||||
.add($(selector).find("form"))
|
||||
.filter("form");
|
||||
|
||||
$(selector).find(":input[data-val=true]").each(function () {
|
||||
$jQval.unobtrusive.parseElement(this, true);
|
||||
});
|
||||
|
||||
$forms.each(function () {
|
||||
var info = validationInfo(this);
|
||||
if (info) {
|
||||
info.attachValidation();
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
adapters = $jQval.unobtrusive.adapters;
|
||||
|
||||
adapters.add = function (adapterName, params, fn) {
|
||||
/// <summary>Adds a new adapter to convert unobtrusive HTML into a jQuery Validate validation.</summary>
|
||||
/// <param name="adapterName" type="String">The name of the adapter to be added. This matches the name used
|
||||
/// in the data-val-nnnn HTML attribute (where nnnn is the adapter name).</param>
|
||||
/// <param name="params" type="Array" optional="true">[Optional] An array of parameter names (strings) that will
|
||||
/// be extracted from the data-val-nnnn-mmmm HTML attributes (where nnnn is the adapter name, and
|
||||
/// mmmm is the parameter name).</param>
|
||||
/// <param name="fn" type="Function">The function to call, which adapts the values from the HTML
|
||||
/// attributes into jQuery Validate rules and/or messages.</param>
|
||||
/// <returns type="jQuery.validator.unobtrusive.adapters" />
|
||||
if (!fn) { // Called with no params, just a function
|
||||
fn = params;
|
||||
params = [];
|
||||
}
|
||||
this.push({ name: adapterName, params: params, adapt: fn });
|
||||
return this;
|
||||
};
|
||||
|
||||
adapters.addBool = function (adapterName, ruleName) {
|
||||
/// <summary>Adds a new adapter to convert unobtrusive HTML into a jQuery Validate validation, where
|
||||
/// the jQuery Validate validation rule has no parameter values.</summary>
|
||||
/// <param name="adapterName" type="String">The name of the adapter to be added. This matches the name used
|
||||
/// in the data-val-nnnn HTML attribute (where nnnn is the adapter name).</param>
|
||||
/// <param name="ruleName" type="String" optional="true">[Optional] The name of the jQuery Validate rule. If not provided, the value
|
||||
/// of adapterName will be used instead.</param>
|
||||
/// <returns type="jQuery.validator.unobtrusive.adapters" />
|
||||
return this.add(adapterName, function (options) {
|
||||
setValidationValues(options, ruleName || adapterName, true);
|
||||
});
|
||||
};
|
||||
|
||||
adapters.addMinMax = function (adapterName, minRuleName, maxRuleName, minMaxRuleName, minAttribute, maxAttribute) {
|
||||
/// <summary>Adds a new adapter to convert unobtrusive HTML into a jQuery Validate validation, where
|
||||
/// the jQuery Validate validation has three potential rules (one for min-only, one for max-only, and
|
||||
/// one for min-and-max). The HTML parameters are expected to be named -min and -max.</summary>
|
||||
/// <param name="adapterName" type="String">The name of the adapter to be added. This matches the name used
|
||||
/// in the data-val-nnnn HTML attribute (where nnnn is the adapter name).</param>
|
||||
/// <param name="minRuleName" type="String">The name of the jQuery Validate rule to be used when you only
|
||||
/// have a minimum value.</param>
|
||||
/// <param name="maxRuleName" type="String">The name of the jQuery Validate rule to be used when you only
|
||||
/// have a maximum value.</param>
|
||||
/// <param name="minMaxRuleName" type="String">The name of the jQuery Validate rule to be used when you
|
||||
/// have both a minimum and maximum value.</param>
|
||||
/// <param name="minAttribute" type="String" optional="true">[Optional] The name of the HTML attribute that
|
||||
/// contains the minimum value. The default is "min".</param>
|
||||
/// <param name="maxAttribute" type="String" optional="true">[Optional] The name of the HTML attribute that
|
||||
/// contains the maximum value. The default is "max".</param>
|
||||
/// <returns type="jQuery.validator.unobtrusive.adapters" />
|
||||
return this.add(adapterName, [minAttribute || "min", maxAttribute || "max"], function (options) {
|
||||
var min = options.params.min,
|
||||
max = options.params.max;
|
||||
|
||||
if (min && max) {
|
||||
setValidationValues(options, minMaxRuleName, [min, max]);
|
||||
}
|
||||
else if (min) {
|
||||
setValidationValues(options, minRuleName, min);
|
||||
}
|
||||
else if (max) {
|
||||
setValidationValues(options, maxRuleName, max);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
adapters.addSingleVal = function (adapterName, attribute, ruleName) {
|
||||
/// <summary>Adds a new adapter to convert unobtrusive HTML into a jQuery Validate validation, where
|
||||
/// the jQuery Validate validation rule has a single value.</summary>
|
||||
/// <param name="adapterName" type="String">The name of the adapter to be added. This matches the name used
|
||||
/// in the data-val-nnnn HTML attribute(where nnnn is the adapter name).</param>
|
||||
/// <param name="attribute" type="String">[Optional] The name of the HTML attribute that contains the value.
|
||||
/// The default is "val".</param>
|
||||
/// <param name="ruleName" type="String" optional="true">[Optional] The name of the jQuery Validate rule. If not provided, the value
|
||||
/// of adapterName will be used instead.</param>
|
||||
/// <returns type="jQuery.validator.unobtrusive.adapters" />
|
||||
return this.add(adapterName, [attribute || "val"], function (options) {
|
||||
setValidationValues(options, ruleName || adapterName, options.params[attribute]);
|
||||
});
|
||||
};
|
||||
|
||||
$jQval.addMethod("__dummy__", function (value, element, params) {
|
||||
return true;
|
||||
});
|
||||
|
||||
$jQval.addMethod("regex", function (value, element, params) {
|
||||
var match;
|
||||
if (this.optional(element)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
match = new RegExp(params).exec(value);
|
||||
return (match && (match.index === 0) && (match[0].length === value.length));
|
||||
});
|
||||
|
||||
$jQval.addMethod("nonalphamin", function (value, element, nonalphamin) {
|
||||
var match;
|
||||
if (nonalphamin) {
|
||||
match = value.match(/\W/g);
|
||||
match = match && match.length >= nonalphamin;
|
||||
}
|
||||
return match;
|
||||
});
|
||||
|
||||
adapters.addSingleVal("accept", "exts").addSingleVal("regex", "pattern");
|
||||
adapters.addBool("creditcard").addBool("date").addBool("digits").addBool("email").addBool("number").addBool("url");
|
||||
adapters.addMinMax("length", "minlength", "maxlength", "rangelength").addMinMax("range", "min", "max", "range");
|
||||
adapters.add("equalto", ["other"], function (options) {
|
||||
var prefix = getModelPrefix(options.element.name),
|
||||
other = options.params.other,
|
||||
fullOtherName = appendModelPrefix(other, prefix),
|
||||
element = $(options.form).find(":input[name='" + escapeAttributeValue(fullOtherName) + "']")[0];
|
||||
|
||||
setValidationValues(options, "equalTo", element);
|
||||
});
|
||||
adapters.add("required", function (options) {
|
||||
// jQuery Validate equates "required" with "mandatory" for checkbox elements
|
||||
if (options.element.tagName.toUpperCase() !== "INPUT" || options.element.type.toUpperCase() !== "CHECKBOX") {
|
||||
setValidationValues(options, "required", true);
|
||||
}
|
||||
});
|
||||
adapters.add("remote", ["url", "type", "additionalfields"], function (options) {
|
||||
var value = {
|
||||
url: options.params.url,
|
||||
type: options.params.type || "GET",
|
||||
data: {}
|
||||
},
|
||||
prefix = getModelPrefix(options.element.name);
|
||||
|
||||
$.each(splitAndTrim(options.params.additionalfields || options.element.name), function (i, fieldName) {
|
||||
var paramName = appendModelPrefix(fieldName, prefix);
|
||||
value.data[paramName] = function () {
|
||||
return $(options.form).find(":input[name='" + escapeAttributeValue(paramName) + "']").val();
|
||||
};
|
||||
});
|
||||
|
||||
setValidationValues(options, "remote", value);
|
||||
});
|
||||
adapters.add("password", ["min", "nonalphamin", "regex"], function (options) {
|
||||
if (options.params.min) {
|
||||
setValidationValues(options, "minlength", options.params.min);
|
||||
}
|
||||
if (options.params.nonalphamin) {
|
||||
setValidationValues(options, "nonalphamin", options.params.nonalphamin);
|
||||
}
|
||||
if (options.params.regex) {
|
||||
setValidationValues(options, "regex", options.params.regex);
|
||||
}
|
||||
});
|
||||
|
||||
$(function () {
|
||||
$jQval.unobtrusive.parse(document);
|
||||
});
|
||||
} (jQuery));
|
|
@ -1,6 +1,7 @@
|
|||
@using Cassette.Scripts
|
||||
@using Cassette.Stylesheets
|
||||
@using NzbDrone.Web
|
||||
@using NzbDrone.Web.Backbone.NzbDrone
|
||||
@using NzbDrone.Web.Helpers
|
||||
@{
|
||||
Bundles.Reference<StylesheetBundle>(CassetteBundleConfiguration.BASE_STYLE);
|
||||
|
|
|
@ -0,0 +1,70 @@
|
|||
@{
|
||||
Layout = null;
|
||||
}
|
||||
|
||||
@using Cassette.Scripts
|
||||
@using Cassette.Stylesheets
|
||||
@using NzbDrone.Web
|
||||
@using NzbDrone.Web.Backbone.NzbDrone
|
||||
@using NzbDrone.Web.Helpers
|
||||
@{
|
||||
Bundles.Reference<StylesheetBundle>(CassetteBundleConfiguration.BASE_STYLE);
|
||||
Bundles.Reference<ScriptBundle>(CassetteBundleConfiguration.NZBDRONE);
|
||||
}
|
||||
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head runat="server">
|
||||
<title>@ViewBag.Title - NzbDrone</title>
|
||||
<link rel="SHORTCUT ICON" href="../../favicon.ico" />
|
||||
<link rel="apple-touch-icon" sizes="57x57" href="../../Content/Images/apple-touch-icon-114.png" />
|
||||
<link rel="apple-touch-icon" sizes="114x114" href="../../Content/Images/apple-touch-icon-114.png" />
|
||||
<link rel="apple-touch-icon" sizes="72x72" href="../../Content/Images/apple-touch-icon-144.png" />
|
||||
<link rel="apple-touch-icon" sizes="144x144" href="../../Content/Images/apple-touch-icon-144.png" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<link href='http://fonts.googleapis.com/css?family=Open+Sans:400,300' rel='stylesheet' type='text/css'>
|
||||
@Bundles.RenderStylesheets()
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<div id="menu" class="row">
|
||||
<div class="span20">
|
||||
<ul>
|
||||
@MvcHtmlString.Create(Html.CurrentControllerLink("Series", "Index", "Series"))
|
||||
@MvcHtmlString.Create(Html.CurrentControllerLink("Upcoming", "Index", "Upcoming"))
|
||||
@MvcHtmlString.Create(Html.CurrentControllerLink("History", "Index", "History"))
|
||||
@MvcHtmlString.Create(Html.CurrentControllerLink("Missing", "Index", "Missing"))
|
||||
@MvcHtmlString.Create(Html.CurrentControllerLink("Settings", "Index", "Settings"))
|
||||
@MvcHtmlString.Create(Html.CurrentControllerLink("System", "Index", "System"))
|
||||
<li id="donate" title="Donate to support the development of NzbDrone">
|
||||
<a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=KRTE52U3XJDSQ" target="_blank">Donate</a>
|
||||
</li>
|
||||
</ul>
|
||||
<input id="localSeriesLookup" type="text" class="pull-right" placeholder="Search..." />
|
||||
</div>
|
||||
</div>
|
||||
<div id="logo" class="row">
|
||||
<div class="span18 offset2">
|
||||
Single page
|
||||
</div>
|
||||
</div>
|
||||
<div id="content" class="row">
|
||||
<div class="span20">
|
||||
<div id="sub-menu-region" class="row">
|
||||
</div>
|
||||
<div class="row">
|
||||
<div id="main-region" class="span20 nz-center">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="footer" class="row nz-center">
|
||||
<div id="footer-region" class="span20"></div>
|
||||
</div>
|
||||
</div>
|
||||
@Bundles.RenderScripts()
|
||||
<script type="text/javascript">
|
||||
NzbDrone.start();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,15 @@
|
|||
<ul class="nav nav-tabs" id="myTab">
|
||||
<li class="active"><a href="#add-new">Add New Series</a></li>
|
||||
<li><a href="#import-existing">Import Existing Series</a></li>
|
||||
<li><a href="#root-folders">Root Folders</a></li>
|
||||
</ul>
|
||||
<div class="tab-content">
|
||||
<div class="tab-pane active" id="add-new">
|
||||
<div class="input-prepend search">
|
||||
<i class="add-on icon-search"></i>
|
||||
<input type="text" class="span10" placeholder="Start typing the name of series you want to add ...">
|
||||
</div>
|
||||
</div>
|
||||
<div class="tab-pane" id="import-existing">Import existing.</div>
|
||||
<div class="tab-pane" id="root-folders">Manage root folders</div>
|
||||
</div>
|
|
@ -1,5 +1,5 @@
|
|||
NzbDrone.AddSeriesView = Backbone.Marionette.ItemView.extend({
|
||||
template: "#add-series-tmpl",
|
||||
template: "AddSeries/addSeriesTemplate",
|
||||
|
||||
initialise: function () {
|
||||
},
|
|
@ -0,0 +1,47 @@
|
|||
using System.Linq;
|
||||
using Cassette;
|
||||
using Cassette.Scripts;
|
||||
using Cassette.Stylesheets;
|
||||
|
||||
namespace NzbDrone.Web.Backbone.NzbDrone
|
||||
{
|
||||
public class CassetteBundleConfiguration : IConfiguration<BundleCollection>
|
||||
{
|
||||
public const string BASE_STYLE = "BASE_STYLE";
|
||||
public const string BACKBONE = "BACKBONE";
|
||||
public const string NZBDRONE = "NZBDRONE";
|
||||
internal const string FONTS = "FONTS";
|
||||
|
||||
private const string APP_PATH = "_backboneApp";
|
||||
|
||||
public void Configure(BundleCollection bundles)
|
||||
{
|
||||
bundles.AddUrlWithAlias<StylesheetBundle>("//fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,400,600,300'", FONTS);
|
||||
|
||||
//bundles.AddPerSubDirectory<StylesheetBundle>("Backbone.NzbDrone");
|
||||
|
||||
bundles.Add<StylesheetBundle>(BASE_STYLE, new[]{
|
||||
APP_PATH + "\\Content\\Bootstrap\\bootstrap.less",
|
||||
APP_PATH + "\\Content\\base.css",
|
||||
APP_PATH + "\\Content\\menu.css",
|
||||
APP_PATH + "\\AddSeries\\addSeries.css"
|
||||
},
|
||||
bundle => bundle.AddReference("/" + FONTS));
|
||||
|
||||
bundles.Add<ScriptBundle>(BACKBONE, new[]{
|
||||
APP_PATH + "\\JsLibraries\\jquery-1.8.2.js",
|
||||
APP_PATH + "\\JsLibraries\\bootstrap.js",
|
||||
APP_PATH + "\\JsLibraries\\underscore.js",
|
||||
APP_PATH + "\\JsLibraries\\backbone.js",
|
||||
APP_PATH + "\\JsLibraries\\backbone.marionette.js",
|
||||
APP_PATH + "\\JsLibraries\\backbone.marionette.extend.js",
|
||||
|
||||
});
|
||||
|
||||
bundles.Add<ScriptBundle>(NZBDRONE, new[]{
|
||||
APP_PATH + "\\app.js",
|
||||
APP_PATH + "\\AddSeries\\addSeriesView.js"},
|
||||
bundle => bundle.AddReference("/" + BACKBONE));
|
||||
}
|
||||
}
|
||||
}
|
Before Width: | Height: | Size: 152 B After Width: | Height: | Size: 152 B |
Before Width: | Height: | Size: 172 B After Width: | Height: | Size: 172 B |
Before Width: | Height: | Size: 198 B After Width: | Height: | Size: 198 B |
Before Width: | Height: | Size: 250 B After Width: | Height: | Size: 250 B |
Before Width: | Height: | Size: 136 B After Width: | Height: | Size: 136 B |
Before Width: | Height: | Size: 603 B After Width: | Height: | Size: 603 B |
Before Width: | Height: | Size: 260 B After Width: | Height: | Size: 260 B |
Before Width: | Height: | Size: 264 B After Width: | Height: | Size: 264 B |
Before Width: | Height: | Size: 816 B After Width: | Height: | Size: 816 B |
Before Width: | Height: | Size: 385 B After Width: | Height: | Size: 385 B |
Before Width: | Height: | Size: 665 B After Width: | Height: | Size: 665 B |
Before Width: | Height: | Size: 491 B After Width: | Height: | Size: 491 B |
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 4.7 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 63 KiB After Width: | Height: | Size: 63 KiB |
Before Width: | Height: | Size: 6.3 KiB After Width: | Height: | Size: 6.3 KiB |
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 4.8 KiB |