workflowengine.net 结构调整
640
OpenAuth.Mvc/Content/Site.css
Normal file
@ -0,0 +1,640 @@
|
||||
html {
|
||||
background-color: #e2e2e2;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: #fff;
|
||||
border-top: solid 10px #000;
|
||||
color: #333;
|
||||
font-size: .85em;
|
||||
font-family: "Segoe UI", Verdana, Helvetica, Sans-Serif;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
a:link, a:visited,
|
||||
a:active, a:hover {
|
||||
color: #333;
|
||||
outline: none;
|
||||
padding-left: 3px;
|
||||
padding-right: 3px;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
background-color: #c7d1d6;
|
||||
}
|
||||
|
||||
header, footer, hgroup
|
||||
nav, section {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.float-left {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.float-right {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.highlight {
|
||||
background-color: #a6dbed;
|
||||
padding-left: 5px;
|
||||
padding-right: 5px;
|
||||
}
|
||||
|
||||
.clear-fix:after {
|
||||
content: ".";
|
||||
clear: both;
|
||||
display: block;
|
||||
height: 0;
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
h1, h2, h3,
|
||||
h4, h5, h6 {
|
||||
color: #000;
|
||||
margin-bottom: 0;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 2em;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 1.75em;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 1.2em;
|
||||
}
|
||||
|
||||
h4 {
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
h5, h6 {
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
|
||||
/* main layout
|
||||
----------------------------------------------------------*/
|
||||
.content-wrapper {
|
||||
margin: 0 auto;
|
||||
max-width: 960px;
|
||||
}
|
||||
|
||||
#body {
|
||||
background-color: #efeeef;
|
||||
clear: both;
|
||||
padding-bottom: 35px;
|
||||
}
|
||||
|
||||
.main-content {
|
||||
background: url("../images/accent.png") no-repeat;
|
||||
padding-left: 10px;
|
||||
padding-top: 30px;
|
||||
}
|
||||
|
||||
.featured + .main-content {
|
||||
background: url("../images/heroaccent.png") no-repeat;
|
||||
}
|
||||
|
||||
footer {
|
||||
clear: both;
|
||||
background-color: #e2e2e2;
|
||||
font-size: .8em;
|
||||
height: 100px;
|
||||
}
|
||||
|
||||
|
||||
/* site title
|
||||
----------------------------------------------------------*/
|
||||
.site-title {
|
||||
color: #c8c8c8;
|
||||
font-family: Rockwell, Consolas, "Courier New", Courier, monospace;
|
||||
font-size: 2.3em;
|
||||
margin: 20px 0;
|
||||
}
|
||||
|
||||
.site-title a, .site-title a:hover, .site-title a:active {
|
||||
background: none;
|
||||
color: #c8c8c8;
|
||||
outline: none;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
|
||||
/* login
|
||||
----------------------------------------------------------*/
|
||||
#login {
|
||||
display: block;
|
||||
font-size: .85em;
|
||||
margin-top: 20px;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
#login a {
|
||||
background-color: #d3dce0;
|
||||
margin-left: 10px;
|
||||
margin-right: 3px;
|
||||
padding: 2px 3px;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#login a.username {
|
||||
background: none;
|
||||
margin-left: 0px;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
#login li {
|
||||
display: inline;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
|
||||
/* menu
|
||||
----------------------------------------------------------*/
|
||||
ul#menu {
|
||||
font-size: 1.3em;
|
||||
font-weight: 600;
|
||||
margin: 0;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
ul#menu li {
|
||||
display: inline;
|
||||
list-style: none;
|
||||
padding-left: 15px;
|
||||
}
|
||||
|
||||
ul#menu li a {
|
||||
background: none;
|
||||
color: #999;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
ul#menu li a:hover {
|
||||
color: #333;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* page elements
|
||||
----------------------------------------------------------*/
|
||||
/* featured */
|
||||
.featured {
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.featured .content-wrapper {
|
||||
background-color: #7ac0da;
|
||||
background-image: -ms-linear-gradient(left, #7AC0DA 0%, #A4D4E6 100%);
|
||||
background-image: -o-linear-gradient(left, #7AC0DA 0%, #A4D4E6 100%);
|
||||
background-image: -webkit-gradient(linear, left top, right top, color-stop(0, #7AC0DA), color-stop(1, #A4D4E6));
|
||||
background-image: -webkit-linear-gradient(left, #7AC0DA 0%, #A4D4E6 100%);
|
||||
background-image: linear-gradient(left, #7AC0DA 0%, #A4D4E6 100%);
|
||||
color: #3e5667;
|
||||
padding: 20px 40px 30px 40px;
|
||||
}
|
||||
|
||||
.featured hgroup.title h1, .featured hgroup.title h2 {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.featured p {
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
/* page titles */
|
||||
hgroup.title {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
hgroup.title h1, hgroup.title h2 {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
hgroup.title h2 {
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
/* features */
|
||||
section.feature {
|
||||
width: 300px;
|
||||
float: left;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
/* ordered list */
|
||||
ol.round {
|
||||
list-style-type: none;
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
ol.round li {
|
||||
margin: 25px 0;
|
||||
padding-left: 45px;
|
||||
}
|
||||
|
||||
ol.round li.one {
|
||||
background: url("../images/orderedlistOne.png") no-repeat;
|
||||
}
|
||||
|
||||
ol.round li.two {
|
||||
background: url("../images/orderedlistTwo.png") no-repeat;
|
||||
}
|
||||
|
||||
ol.round li.three {
|
||||
background: url("../images/orderedlistThree.png") no-repeat;
|
||||
}
|
||||
|
||||
/* content */
|
||||
article {
|
||||
float: left;
|
||||
width: 70%;
|
||||
}
|
||||
|
||||
aside {
|
||||
float: right;
|
||||
width: 25%;
|
||||
}
|
||||
|
||||
aside ul {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
aside ul li {
|
||||
background: url("../images/bullet.png") no-repeat 0 50%;
|
||||
padding: 2px 0 2px 20px;
|
||||
}
|
||||
|
||||
.label {
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
/* login page */
|
||||
#loginForm {
|
||||
border-right: solid 2px #c8c8c8;
|
||||
float: left;
|
||||
width: 45%;
|
||||
}
|
||||
|
||||
#loginForm .validation-error {
|
||||
display: block;
|
||||
margin-left: 15px;
|
||||
}
|
||||
|
||||
#socialLoginForm {
|
||||
margin-left: 40px;
|
||||
float: left;
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
/* contact */
|
||||
.contact h3 {
|
||||
font-size: 1.2em;
|
||||
}
|
||||
|
||||
.contact p {
|
||||
margin: 5px 0 0 10px;
|
||||
}
|
||||
|
||||
.contact iframe {
|
||||
border: solid 1px #333;
|
||||
margin: 5px 0 0 10px;
|
||||
}
|
||||
|
||||
/* forms */
|
||||
fieldset {
|
||||
border: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
fieldset legend {
|
||||
display: none;
|
||||
}
|
||||
|
||||
fieldset ol {
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
fieldset ol li {
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
|
||||
fieldset label {
|
||||
display: block;
|
||||
font-size: 1.2em;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
fieldset label.checkbox {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
fieldset input[type="text"],
|
||||
fieldset input[type="password"] {
|
||||
border: 1px solid #e2e2e2;
|
||||
color: #333;
|
||||
font-size: 1.2em;
|
||||
margin: 5px 0 6px 0;
|
||||
padding: 5px;
|
||||
width: 300px;
|
||||
}
|
||||
|
||||
fieldset input[type="text"]:focus,
|
||||
fieldset input[type="password"]:focus {
|
||||
border: 1px solid #7ac0da;
|
||||
}
|
||||
|
||||
fieldset input[type="submit"] {
|
||||
background-color: #d3dce0;
|
||||
border: solid 1px #787878;
|
||||
cursor: pointer;
|
||||
font-size: 1.2em;
|
||||
font-weight: 600;
|
||||
padding: 7px;
|
||||
}
|
||||
|
||||
/* ajax login/registration dialog */
|
||||
.modal-popup {
|
||||
font-size: 0.7em;
|
||||
}
|
||||
|
||||
.modal-popup input[type="text"],
|
||||
.modal-popup input[type="password"] {
|
||||
width: 90%;
|
||||
}
|
||||
|
||||
/* info and errors */
|
||||
.message-info {
|
||||
border: solid 1px;
|
||||
clear: both;
|
||||
padding: 10px 20px;
|
||||
}
|
||||
|
||||
.message-error {
|
||||
clear: both;
|
||||
color: #e80c4d;
|
||||
font-size: 1.1em;
|
||||
font-weight: bold;
|
||||
margin: 20px 0 10px 0;
|
||||
}
|
||||
|
||||
.message-success {
|
||||
color: #7ac0da;
|
||||
font-size: 1.3em;
|
||||
font-weight: bold;
|
||||
margin: 20px 0 10px 0;
|
||||
}
|
||||
|
||||
.success {
|
||||
color: #7ac0da;
|
||||
}
|
||||
|
||||
.error {
|
||||
color: #e80c4d;
|
||||
}
|
||||
|
||||
/* styles for validation helpers */
|
||||
.field-validation-error {
|
||||
color: #e80c4d;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.field-validation-valid {
|
||||
display: none;
|
||||
}
|
||||
|
||||
input[type="text"].input-validation-error,
|
||||
input[type="password"].input-validation-error {
|
||||
border: solid 1px #e80c4d;
|
||||
}
|
||||
|
||||
.validation-summary-errors {
|
||||
color: #e80c4d;
|
||||
font-weight: bold;
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
.validation-summary-valid {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
|
||||
ul#social li {
|
||||
display: inline;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
ul#social li a {
|
||||
color: #999;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a.facebook, a.twitter {
|
||||
display: block;
|
||||
float: left;
|
||||
height: 24px;
|
||||
padding-left: 17px;
|
||||
text-indent: -9999px;
|
||||
width: 16px;
|
||||
}
|
||||
|
||||
a.facebook {
|
||||
background: url("../images/facebook.png") no-repeat;
|
||||
}
|
||||
|
||||
a.twitter {
|
||||
background: url("../images/twitter.png") no-repeat;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/********************
|
||||
* Mobile Styles *
|
||||
********************/
|
||||
@media only screen and (max-width: 850px) {
|
||||
|
||||
/* header
|
||||
----------------------------------------------------------*/
|
||||
header .float-left,
|
||||
header .float-right {
|
||||
float: none;
|
||||
}
|
||||
|
||||
/* logo */
|
||||
header .site-title {
|
||||
margin: 10px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* login */
|
||||
#login {
|
||||
font-size: .85em;
|
||||
margin-top: 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#login ul {
|
||||
margin: 5px 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#login li {
|
||||
display: inline;
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding:0;
|
||||
}
|
||||
|
||||
#login a {
|
||||
background: none;
|
||||
color: #999;
|
||||
font-weight: 600;
|
||||
margin: 2px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#login a:hover {
|
||||
color: #333;
|
||||
}
|
||||
|
||||
/* menu */
|
||||
nav {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
ul#menu {
|
||||
margin: 0;
|
||||
padding:0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
ul#menu li {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
|
||||
/* main layout
|
||||
----------------------------------------------------------*/
|
||||
.main-content,
|
||||
.featured + .main-content {
|
||||
background-position: 10px 0;
|
||||
}
|
||||
|
||||
.content-wrapper {
|
||||
padding-right: 10px;
|
||||
padding-left: 10px;
|
||||
}
|
||||
|
||||
.featured .content-wrapper {
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
/* page content */
|
||||
article, aside {
|
||||
float: none;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/* ordered list */
|
||||
ol.round {
|
||||
list-style-type: none;
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
ol.round li {
|
||||
padding-left: 10px;
|
||||
margin: 25px 0;
|
||||
}
|
||||
|
||||
ol.round li.one,
|
||||
ol.round li.two,
|
||||
ol.round li.three {
|
||||
background: none;
|
||||
}
|
||||
|
||||
/* features */
|
||||
section.feature {
|
||||
float: none;
|
||||
padding: 10px;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
section.feature img {
|
||||
color: #999;
|
||||
content: attr(alt);
|
||||
font-size: 1.5em;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
/* forms */
|
||||
fieldset input[type="text"],
|
||||
fieldset input[type="password"] {
|
||||
width: 90%;
|
||||
}
|
||||
|
||||
/* login page */
|
||||
#loginForm {
|
||||
border-right: none;
|
||||
float: none;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
#loginForm .validation-error {
|
||||
display: block;
|
||||
margin-left: 15px;
|
||||
}
|
||||
|
||||
#socialLoginForm {
|
||||
margin-left: 0;
|
||||
float: none;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
/* footer
|
||||
----------------------------------------------------------*/
|
||||
footer .float-left,
|
||||
footer .float-right {
|
||||
float: none;
|
||||
}
|
||||
|
||||
footer {
|
||||
text-align: center;
|
||||
height: auto;
|
||||
padding: 10px 0;
|
||||
}
|
||||
|
||||
footer p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
ul#social {
|
||||
padding:0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
a.facebook, a.twitter {
|
||||
background: none;
|
||||
display: inline;
|
||||
float: none;
|
||||
height: auto;
|
||||
padding-left: 0;
|
||||
text-indent: 0;
|
||||
width: auto;
|
||||
}
|
||||
}
|
486
OpenAuth.Mvc/Content/style.css
Normal file
@ -0,0 +1,486 @@
|
||||
/* "Simpliste" template. Renat Rafikov. http://cssr.ru/simpliste/ */
|
||||
|
||||
/* CSS reset. Based on HTML5 boilerplate reset http://html5boilerplate.com/ */
|
||||
article, aside, details, figcaption, figure, footer, header, hgroup, nav, section { display:block; }
|
||||
audio[controls], canvas, video { display:inline-block; *display:inline; *zoom:1; }
|
||||
html { font-size:100%; overflow-y:scroll; -webkit-overflow-scrolling:touch; -webkit-tap-highlight-color:rgba(0,0,0,0); -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%; }
|
||||
body { margin:0; font-size:13px; line-height:1.231; }
|
||||
body, button, input, select, textarea { font-family:sans-serif; color:#222; }
|
||||
a { color:#00e; }
|
||||
a:visited { color:#551a8b; }
|
||||
a:focus { outline:thin dotted; }
|
||||
a:hover, a:active { outline:0; }
|
||||
abbr[title] { border-bottom:1px dotted; }
|
||||
b, strong { font-weight:bold; }
|
||||
blockquote { margin:1em 40px; }
|
||||
dfn { font-style:italic; }
|
||||
hr { display:block; height:1px; border:0; border-top:1px solid #ccc; margin:1em 0; padding:0; }
|
||||
ins { background:#ff9; color:#000; text-decoration:none; }
|
||||
mark { background:#ff0; color:#000; font-style:italic; font-weight:bold; }
|
||||
pre, code, kbd, samp { font-family:monospace, monospace; _font-family:'courier new', monospace; font-size:1em; }
|
||||
pre { white-space:pre; white-space:pre-wrap; word-wrap:break-word; }
|
||||
q { quotes:none; }
|
||||
q:before, q:after { content:""; content:none; }
|
||||
small { font-size:85%; }
|
||||
sub, sup { font-size:75%; line-height:0; position:relative; vertical-align:baseline; }
|
||||
sup { top:-0.5em; }
|
||||
sub { bottom:-0.25em; }
|
||||
ul, ol { margin:1em 0; padding:0 0 0 2em; }
|
||||
dd { margin:0 0 0 40px; }
|
||||
nav ul, nav ol { list-style:none; margin:0; padding:0; }
|
||||
img { border:0; -ms-interpolation-mode:bicubic; }
|
||||
svg:not(:root) { overflow:hidden;}
|
||||
figure { margin:0; }
|
||||
form { margin:0; }
|
||||
fieldset { border:0; margin:0; padding:0; }
|
||||
legend { border:0; *margin-left:-7px; padding:0; }
|
||||
label { cursor:pointer; }
|
||||
button, input, select, textarea { font-size:100%; margin:0; vertical-align:baseline; *vertical-align:middle; }
|
||||
button, input { line-height:normal; *overflow:visible; }
|
||||
button, input[type="button"], input[type="reset"], input[type="submit"] { cursor:pointer; -webkit-appearance:button; }
|
||||
input[type="checkbox"], input[type="radio"] { box-sizing:border-box; }
|
||||
input[type="search"] { -moz-box-sizing:content-box; -webkit-box-sizing:content-box; box-sizing:content-box; }
|
||||
button::-moz-focus-inner, input::-moz-focus-inner { border:0; padding:0; }
|
||||
textarea { overflow:auto; vertical-align:top; }
|
||||
input:valid, textarea:valid { }
|
||||
input:invalid, textarea:invalid { background-color:#f0dddd; }
|
||||
table { border-collapse:collapse; border-spacing:0; }
|
||||
.hidden { display:none; visibility:hidden; }
|
||||
.clearfix:before, .clearfix:after { content:""; display:table; }
|
||||
.clearfix:after { clear:both; }
|
||||
.clearfix { zoom:1; }
|
||||
/* End CSS reset */
|
||||
|
||||
|
||||
/* Columns
|
||||
-------
|
||||
.col_33 | .col_33 | .col_33
|
||||
.clearfix
|
||||
-------
|
||||
.col_66 | .col_33
|
||||
.clearfix
|
||||
-------
|
||||
.col_50 | .col_50
|
||||
.clearfix
|
||||
-------
|
||||
.col_100
|
||||
-------
|
||||
*/
|
||||
.col_33 {
|
||||
width:31%;
|
||||
margin:0 2% 0 0;
|
||||
float:left;
|
||||
}
|
||||
|
||||
.col_50 {
|
||||
width:48%;
|
||||
margin:0 2% 0 0;
|
||||
float:left;
|
||||
}
|
||||
|
||||
.col_66 {
|
||||
width:64%;
|
||||
margin:0 2% 0 0;
|
||||
float:left;
|
||||
}
|
||||
|
||||
.col_100 {
|
||||
width:98%;
|
||||
margin:0 2% 0 0;
|
||||
}
|
||||
/* End columns */
|
||||
|
||||
|
||||
/* Helper classes */
|
||||
.center {text-align:center;}
|
||||
.left {text-align:left;}
|
||||
.right {text-align:right;}
|
||||
|
||||
.img_floatleft {float:left; margin:0 10px 5px 0;}
|
||||
.img_floatright {float:right; margin:0 0 5px 10px;}
|
||||
|
||||
.img {max-width:100%;}
|
||||
/* End helper classes */
|
||||
|
||||
|
||||
/* [Skin "iSimple"] */
|
||||
.container {
|
||||
max-width: 98% /*1300px;*/
|
||||
margin:0 auto;
|
||||
}
|
||||
|
||||
.header {
|
||||
margin:1px 0 0.5em 0;
|
||||
padding:1.5em 3% 0 3%;
|
||||
}
|
||||
|
||||
.logo {
|
||||
float:left;
|
||||
display:inline-block;
|
||||
font-size:18px;
|
||||
text-shadow:1px 1px 1px #ffffff;
|
||||
}
|
||||
|
||||
.menu_main {
|
||||
width:50%;
|
||||
float:right;
|
||||
text-align:right;
|
||||
margin:0.3em 0 0 0;
|
||||
font-size:12px;
|
||||
}
|
||||
|
||||
.menu_main li {
|
||||
display:inline-block;
|
||||
margin:0 0 0 4px;
|
||||
}
|
||||
|
||||
.menu_main li.active,
|
||||
.menu_main li.active a {
|
||||
color:#000;
|
||||
text-decoration:none;
|
||||
cursor:default;
|
||||
}
|
||||
|
||||
.info {
|
||||
padding:0 1% 1em 1%;
|
||||
}
|
||||
|
||||
.footer {
|
||||
padding:1em 3% 3em 3%;
|
||||
color:#717171;
|
||||
font-size:12px;
|
||||
}
|
||||
|
||||
.copyright {
|
||||
width:49%;
|
||||
float:left;
|
||||
text-shadow:1px 1px 1px #ffffff;
|
||||
}
|
||||
|
||||
.menu_bottom {
|
||||
width:50%;
|
||||
float:right;
|
||||
text-align:right;
|
||||
margin:0;
|
||||
padding:0;
|
||||
font-size:12px;
|
||||
}
|
||||
.menu_bottom li {
|
||||
display:inline-block;
|
||||
margin:0 0 0 4px;
|
||||
}
|
||||
.menu_bottom li.active,
|
||||
.menu_bottom li.active a {
|
||||
color:#666;
|
||||
text-decoration:none;
|
||||
cursor:default;
|
||||
}
|
||||
|
||||
/* Skin appearance */
|
||||
body {
|
||||
background:#f2f2f2;
|
||||
font-family:arial, sans-serif;
|
||||
}
|
||||
|
||||
a { color:#0085c5; }
|
||||
a:hover { text-decoration:none; }
|
||||
a:visited { color:#4a00c5; }
|
||||
|
||||
ul li, ol li {
|
||||
padding:0 0 0.4em 0;
|
||||
}
|
||||
|
||||
.hero {
|
||||
background:#fff;
|
||||
border:1px solid #fff;
|
||||
-webkit-border-radius:5px;
|
||||
-moz-border-radius:5px;
|
||||
border-radius:5px;
|
||||
-webkit-box-shadow:#8b8b8b 0px 0px 5px inset;
|
||||
-moz-box-shadow:#8b8b8b 0px 0px 5px inset;
|
||||
box-shadow:#8b8b8b 0px 0px 5px inset;
|
||||
padding:15px 0 15px 2%;
|
||||
margin:0 0 15px 0;
|
||||
}
|
||||
|
||||
.hero h1 {
|
||||
font-size:24px;
|
||||
font-size:18px;
|
||||
color:#3d3d3d;
|
||||
}
|
||||
|
||||
.article {
|
||||
background:#fff;
|
||||
border:1px solid #cbcbcb;
|
||||
-webkit-border-radius:5px;
|
||||
-moz-border-radius:5px;
|
||||
border-radius:5px;
|
||||
-webkit-box-shadow:#8b8b8b 0px 0px 3px;
|
||||
-moz-box-shadow:#8b8b8b 0px 0px 3px;
|
||||
box-shadow:#8b8b8b 0px 0px 3px;
|
||||
padding:15px 0 15px 2%;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4 {
|
||||
font-weight:normal;
|
||||
}
|
||||
|
||||
h5, h6 {
|
||||
font-weight:bold;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size:22px;
|
||||
}
|
||||
|
||||
.form label {
|
||||
display:inline-block;
|
||||
padding:0 0 4px 0;
|
||||
}
|
||||
|
||||
a.button,
|
||||
.button {
|
||||
border:0;
|
||||
text-align:center;
|
||||
text-decoration:none;
|
||||
-webkit-border-radius:4px;
|
||||
-moz-border-radius:4px;
|
||||
border-radius:4px;
|
||||
-webkit-box-shadow:#999 0px 0px 1px;
|
||||
-moz-box-shadow:#999 0px 0px 1px;
|
||||
box-shadow:#999 0px 0px 1px;
|
||||
background:#4aa6d6;
|
||||
background:-webkit-gradient(linear, 0 0, 0 bottom, from(#1f7daa), to(#4aa6d6));
|
||||
background:-webkit-linear-gradient(#1f7daa, #4aa6d6);
|
||||
background:-moz-linear-gradient(#1f7daa, #4aa6d6);
|
||||
background:-ms-linear-gradient(#1f7daa, #4aa6d6);
|
||||
background:-o-linear-gradient(#1f7daa, #4aa6d6);
|
||||
background:linear-gradient(#1f7daa, #4aa6d6);
|
||||
color:#fff;
|
||||
padding:10px 20px;
|
||||
font-family:verdana, sans-serif;
|
||||
text-shadow:1px 1px 1px #12455d;
|
||||
display:inline-block;
|
||||
}
|
||||
a.button:hover,
|
||||
.button:hover {
|
||||
color:#fff;
|
||||
background:-webkit-gradient(linear, 0 0, 0 bottom, from(#4aa6d6), to(#1f7daa));
|
||||
background:-webkit-linear-gradient(#4aa6d6, #1f7daa);
|
||||
background:-moz-linear-gradient(#4aa6d6, #1f7daa);
|
||||
background:-ms-linear-gradient(#4aa6d6, #1f7daa);
|
||||
background:-o-linear-gradient(#4aa6d6, #1f7daa);
|
||||
background:linear-gradient(#4aa6d6, #1f7daa);
|
||||
}
|
||||
a.button:active,
|
||||
.button:active {
|
||||
color:#093950;
|
||||
text-shadow:1px 1px 1px #7ac8f0;
|
||||
-webkit-box-shadow:#093950 0px 2px 3px inset;
|
||||
-moz-box-shadow:#093950 0px 2px 3px inset;
|
||||
box-shadow:#093950 0px 2px 3px inset;
|
||||
}
|
||||
|
||||
a.button2,
|
||||
.button2 {
|
||||
border:0;
|
||||
text-align:center;
|
||||
text-decoration:none;
|
||||
-webkit-border-radius:4px;
|
||||
-moz-border-radius:4px;
|
||||
border-radius:4px;
|
||||
-webkit-box-shadow:#999 0px 0px 1px;
|
||||
-moz-box-shadow:#999 0px 0px 1px;
|
||||
box-shadow:#999 0px 0px 1px;
|
||||
background:#FF6600;
|
||||
background:-webkit-gradient(linear, 0 0, 0 bottom, from(#1f7daa), to(#FF6600));
|
||||
background:-webkit-linear-gradient(#1f7daa, #FF6600);
|
||||
background:-moz-linear-gradient(#1f7daa, #FF6600);
|
||||
background:-ms-linear-gradient(#1f7daa, #FF6600);
|
||||
background:-o-linear-gradient(#1f7daa, #FF6600);
|
||||
background:linear-gradient(#1f7daa, #FF6600);
|
||||
color:#fff;
|
||||
padding:10px 20px;
|
||||
font-family:verdana, sans-serif;
|
||||
text-shadow:1px 1px 1px #12455d;
|
||||
display:inline-block;
|
||||
}
|
||||
a.button2:hover,
|
||||
.button2:hover {
|
||||
color:#fff;
|
||||
background:-webkit-gradient(linear, 0 0, 0 bottom, from(#FF6600), to(#1f7daa));
|
||||
background:-webkit-linear-gradient(#FF6600, #1f7daa);
|
||||
background:-moz-linear-gradient(#FF6600, #1f7daa);
|
||||
background:-ms-linear-gradient(#FF6600, #1f7daa);
|
||||
background:-o-linear-gradient(#FF6600, #1f7daa);
|
||||
background:linear-gradient(#FF6600, #1f7daa);
|
||||
}
|
||||
a.button2:active,
|
||||
.button:active {
|
||||
color:#093950;
|
||||
text-shadow:1px 1px 1px #7ac8f0;
|
||||
-webkit-box-shadow:#093950 0px 2px 3px inset;
|
||||
-moz-box-shadow:#093950 0px 2px 3px inset;
|
||||
box-shadow:#093950 0px 2px 3px inset;
|
||||
}
|
||||
|
||||
.table {
|
||||
width:100%;
|
||||
}
|
||||
.table th {
|
||||
padding:5px 7px;
|
||||
font-weight:bold;
|
||||
text-align:left;
|
||||
font-size:0.9em;
|
||||
border-bottom:1px solid #ddd;
|
||||
}
|
||||
.table td {
|
||||
padding:9px 7px;
|
||||
border-left:1px solid #ddd;
|
||||
}
|
||||
.table tr td:first-child {border-left:0;}
|
||||
|
||||
.table tr {
|
||||
border-bottom:1px solid #fbfbfb;
|
||||
}
|
||||
.table tr:nth-child(even) {
|
||||
background:#F2F2F2;
|
||||
}
|
||||
|
||||
.table tr:last-child {
|
||||
border:0;
|
||||
}
|
||||
|
||||
.warning {
|
||||
border:1px solid #ec252e;
|
||||
background:#ec252e;
|
||||
color:#fff;
|
||||
padding:8px 14px;
|
||||
background:-webkit-gradient(linear, 0 0, 0 bottom, from(#ec252e), to(#F05057));
|
||||
background:-webkit-linear-gradient(#ec252e, #F05057);
|
||||
background:-moz-linear-gradient(#ec252e, #F05057);
|
||||
background:-ms-linear-gradient(#ec252e, #F05057);
|
||||
background:-o-linear-gradient(#ec252e, #F05057);
|
||||
background:linear-gradient(#ec252e, #F05057);
|
||||
-webkit-border-radius:8px;
|
||||
-moz-border-radius:8px;
|
||||
border-radius:8px;
|
||||
}
|
||||
.success {
|
||||
border:1px solid #6e9e30;
|
||||
color:#fff;
|
||||
background:#0bbe2e;
|
||||
padding:8px 14px;
|
||||
background:-webkit-gradient(linear, 0 0, 0 bottom, from(#6e9e30), to(#87c03b));
|
||||
background:-webkit-linear-gradient(#6e9e30, #87c03b);
|
||||
background:-moz-linear-gradient(#6e9e30, #87c03b);
|
||||
background:-ms-linear-gradient(#6e9e30, #87c03b);
|
||||
background:-o-linear-gradient(#6e9e30, #87c03b);
|
||||
background:linear-gradient(#6e9e30, #87c03b);
|
||||
-webkit-border-radius:8px;
|
||||
-moz-border-radius:8px;
|
||||
border-radius:8px;
|
||||
}
|
||||
.message {
|
||||
border:1px solid #2180ff;
|
||||
color:#1f49bf;
|
||||
background:#bcd9ff;
|
||||
padding:8px 14px;
|
||||
-webkit-border-radius:8px;
|
||||
-moz-border-radius:8px;
|
||||
border-radius:8px;
|
||||
}
|
||||
/* [End skin] */
|
||||
|
||||
|
||||
/* Temp */
|
||||
#skins .active a {text-decoration:none; font-weight:bold; color:#666; cursor:default}
|
||||
|
||||
.skin_simple {color:#EA0000;}
|
||||
.skin_isimple {color:#ddd;}
|
||||
.skin_simploid {color:#86C300;}
|
||||
/* End temp */
|
||||
|
||||
|
||||
@media only screen and (max-width:480px) { /* Smartphone */
|
||||
.logo{
|
||||
display:block;
|
||||
float:none;
|
||||
text-align:center;
|
||||
padding:0;
|
||||
}
|
||||
|
||||
.menu_main {
|
||||
width:100%;
|
||||
text-align:center;
|
||||
float:none;
|
||||
padding:0;
|
||||
margin:1em 0 0 0;
|
||||
}
|
||||
|
||||
.menu_main a {
|
||||
display:inline-block;
|
||||
padding:7px;
|
||||
}
|
||||
|
||||
.copyright {
|
||||
width:100%;
|
||||
float:none;
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
.footer {
|
||||
padding-bottom:0;
|
||||
}
|
||||
|
||||
.menu_bottom {
|
||||
width:100%;
|
||||
float:none;
|
||||
text-align:center;
|
||||
margin:1em 0 0 0;
|
||||
padding:0;
|
||||
}
|
||||
.menu_bottom a {
|
||||
display:inline-block;
|
||||
padding:6px;
|
||||
}
|
||||
|
||||
.form textarea {
|
||||
width:100%;
|
||||
}
|
||||
.form label {
|
||||
padding:10px 0 8px 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@media only screen and (max-width:768px) { /* Tablet */
|
||||
.col_33,
|
||||
.col_66,
|
||||
.col_50 {
|
||||
width:98%;
|
||||
float:none;
|
||||
}
|
||||
|
||||
.form label {
|
||||
padding:10px 0 8px 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@media print { /* Printer */
|
||||
* { background:transparent !important; color:black !important; text-shadow:none !important; filter:none !important; -ms-filter:none !important; }
|
||||
a, a:visited { color:#444 !important; text-decoration:underline; }
|
||||
a[href]:after { content:" (" attr(href) ")"; }
|
||||
abbr[title]:after { content:" (" attr(title) ")"; }
|
||||
pre, blockquote { border:1px solid #999; page-break-inside:avoid; }
|
||||
thead { display:table-header-group; }
|
||||
tr, img { page-break-inside:avoid; }
|
||||
img { max-width:100% !important; }
|
||||
@page { margin:0.5cm; }
|
||||
p, h2, h3 { orphans:3; widows:3; }
|
||||
h2, h3{ page-break-after:avoid; }
|
||||
|
||||
.header, .footer, .form {display:none;}
|
||||
.col_33, .col_66, .col_50 { width:98%; float:none; }
|
||||
}
|
36
OpenAuth.Mvc/Content/themes/base/accordion.css
Normal file
@ -0,0 +1,36 @@
|
||||
/*!
|
||||
* jQuery UI Accordion 1.11.4
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://api.jqueryui.com/accordion/#theming
|
||||
*/
|
||||
.ui-accordion .ui-accordion-header {
|
||||
display: block;
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
margin: 2px 0 0 0;
|
||||
padding: .5em .5em .5em .7em;
|
||||
min-height: 0; /* support: IE7 */
|
||||
font-size: 100%;
|
||||
}
|
||||
.ui-accordion .ui-accordion-icons {
|
||||
padding-left: 2.2em;
|
||||
}
|
||||
.ui-accordion .ui-accordion-icons .ui-accordion-icons {
|
||||
padding-left: 2.2em;
|
||||
}
|
||||
.ui-accordion .ui-accordion-header .ui-accordion-header-icon {
|
||||
position: absolute;
|
||||
left: .5em;
|
||||
top: 50%;
|
||||
margin-top: -8px;
|
||||
}
|
||||
.ui-accordion .ui-accordion-content {
|
||||
padding: 1em 2.2em;
|
||||
border-top: 0;
|
||||
overflow: auto;
|
||||
}
|
12
OpenAuth.Mvc/Content/themes/base/all.css
Normal file
@ -0,0 +1,12 @@
|
||||
/*!
|
||||
* jQuery UI CSS Framework 1.11.4
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://api.jqueryui.com/category/theming/
|
||||
*/
|
||||
@import "base.css";
|
||||
@import "theme.css";
|
16
OpenAuth.Mvc/Content/themes/base/autocomplete.css
Normal file
@ -0,0 +1,16 @@
|
||||
/*!
|
||||
* jQuery UI Autocomplete 1.11.4
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://api.jqueryui.com/autocomplete/#theming
|
||||
*/
|
||||
.ui-autocomplete {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
cursor: default;
|
||||
}
|
28
OpenAuth.Mvc/Content/themes/base/base.css
Normal file
@ -0,0 +1,28 @@
|
||||
/*!
|
||||
* jQuery UI CSS Framework 1.11.4
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://api.jqueryui.com/category/theming/
|
||||
*/
|
||||
@import url("core.css");
|
||||
|
||||
@import url("accordion.css");
|
||||
@import url("autocomplete.css");
|
||||
@import url("button.css");
|
||||
@import url("datepicker.css");
|
||||
@import url("dialog.css");
|
||||
@import url("draggable.css");
|
||||
@import url("menu.css");
|
||||
@import url("progressbar.css");
|
||||
@import url("resizable.css");
|
||||
@import url("selectable.css");
|
||||
@import url("selectmenu.css");
|
||||
@import url("sortable.css");
|
||||
@import url("slider.css");
|
||||
@import url("spinner.css");
|
||||
@import url("tabs.css");
|
||||
@import url("tooltip.css");
|
114
OpenAuth.Mvc/Content/themes/base/button.css
Normal file
@ -0,0 +1,114 @@
|
||||
/*!
|
||||
* jQuery UI Button 1.11.4
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://api.jqueryui.com/button/#theming
|
||||
*/
|
||||
.ui-button {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
padding: 0;
|
||||
line-height: normal;
|
||||
margin-right: .1em;
|
||||
cursor: pointer;
|
||||
vertical-align: middle;
|
||||
text-align: center;
|
||||
overflow: visible; /* removes extra width in IE */
|
||||
}
|
||||
.ui-button,
|
||||
.ui-button:link,
|
||||
.ui-button:visited,
|
||||
.ui-button:hover,
|
||||
.ui-button:active {
|
||||
text-decoration: none;
|
||||
}
|
||||
/* to make room for the icon, a width needs to be set here */
|
||||
.ui-button-icon-only {
|
||||
width: 2.2em;
|
||||
}
|
||||
/* button elements seem to need a little more width */
|
||||
button.ui-button-icon-only {
|
||||
width: 2.4em;
|
||||
}
|
||||
.ui-button-icons-only {
|
||||
width: 3.4em;
|
||||
}
|
||||
button.ui-button-icons-only {
|
||||
width: 3.7em;
|
||||
}
|
||||
|
||||
/* button text element */
|
||||
.ui-button .ui-button-text {
|
||||
display: block;
|
||||
line-height: normal;
|
||||
}
|
||||
.ui-button-text-only .ui-button-text {
|
||||
padding: .4em 1em;
|
||||
}
|
||||
.ui-button-icon-only .ui-button-text,
|
||||
.ui-button-icons-only .ui-button-text {
|
||||
padding: .4em;
|
||||
text-indent: -9999999px;
|
||||
}
|
||||
.ui-button-text-icon-primary .ui-button-text,
|
||||
.ui-button-text-icons .ui-button-text {
|
||||
padding: .4em 1em .4em 2.1em;
|
||||
}
|
||||
.ui-button-text-icon-secondary .ui-button-text,
|
||||
.ui-button-text-icons .ui-button-text {
|
||||
padding: .4em 2.1em .4em 1em;
|
||||
}
|
||||
.ui-button-text-icons .ui-button-text {
|
||||
padding-left: 2.1em;
|
||||
padding-right: 2.1em;
|
||||
}
|
||||
/* no icon support for input elements, provide padding by default */
|
||||
input.ui-button {
|
||||
padding: .4em 1em;
|
||||
}
|
||||
|
||||
/* button icon element(s) */
|
||||
.ui-button-icon-only .ui-icon,
|
||||
.ui-button-text-icon-primary .ui-icon,
|
||||
.ui-button-text-icon-secondary .ui-icon,
|
||||
.ui-button-text-icons .ui-icon,
|
||||
.ui-button-icons-only .ui-icon {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
margin-top: -8px;
|
||||
}
|
||||
.ui-button-icon-only .ui-icon {
|
||||
left: 50%;
|
||||
margin-left: -8px;
|
||||
}
|
||||
.ui-button-text-icon-primary .ui-button-icon-primary,
|
||||
.ui-button-text-icons .ui-button-icon-primary,
|
||||
.ui-button-icons-only .ui-button-icon-primary {
|
||||
left: .5em;
|
||||
}
|
||||
.ui-button-text-icon-secondary .ui-button-icon-secondary,
|
||||
.ui-button-text-icons .ui-button-icon-secondary,
|
||||
.ui-button-icons-only .ui-button-icon-secondary {
|
||||
right: .5em;
|
||||
}
|
||||
|
||||
/* button sets */
|
||||
.ui-buttonset {
|
||||
margin-right: 7px;
|
||||
}
|
||||
.ui-buttonset .ui-button {
|
||||
margin-left: 0;
|
||||
margin-right: -.3em;
|
||||
}
|
||||
|
||||
/* workarounds */
|
||||
/* reset extra padding in Firefox, see h5bp.com/l */
|
||||
input.ui-button::-moz-focus-inner,
|
||||
button.ui-button::-moz-focus-inner {
|
||||
border: 0;
|
||||
padding: 0;
|
||||
}
|
93
OpenAuth.Mvc/Content/themes/base/core.css
Normal file
@ -0,0 +1,93 @@
|
||||
/*!
|
||||
* jQuery UI CSS Framework 1.11.4
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://api.jqueryui.com/category/theming/
|
||||
*/
|
||||
|
||||
/* Layout helpers
|
||||
----------------------------------*/
|
||||
.ui-helper-hidden {
|
||||
display: none;
|
||||
}
|
||||
.ui-helper-hidden-accessible {
|
||||
border: 0;
|
||||
clip: rect(0 0 0 0);
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
overflow: hidden;
|
||||
padding: 0;
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
}
|
||||
.ui-helper-reset {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
outline: 0;
|
||||
line-height: 1.3;
|
||||
text-decoration: none;
|
||||
font-size: 100%;
|
||||
list-style: none;
|
||||
}
|
||||
.ui-helper-clearfix:before,
|
||||
.ui-helper-clearfix:after {
|
||||
content: "";
|
||||
display: table;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
.ui-helper-clearfix:after {
|
||||
clear: both;
|
||||
}
|
||||
.ui-helper-clearfix {
|
||||
min-height: 0; /* support: IE7 */
|
||||
}
|
||||
.ui-helper-zfix {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
top: 0;
|
||||
left: 0;
|
||||
position: absolute;
|
||||
opacity: 0;
|
||||
filter:Alpha(Opacity=0); /* support: IE8 */
|
||||
}
|
||||
|
||||
.ui-front {
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
|
||||
/* Interaction Cues
|
||||
----------------------------------*/
|
||||
.ui-state-disabled {
|
||||
cursor: default !important;
|
||||
}
|
||||
|
||||
|
||||
/* Icons
|
||||
----------------------------------*/
|
||||
|
||||
/* states and images */
|
||||
.ui-icon {
|
||||
display: block;
|
||||
text-indent: -99999px;
|
||||
overflow: hidden;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
|
||||
/* Misc visuals
|
||||
----------------------------------*/
|
||||
|
||||
/* Overlays */
|
||||
.ui-widget-overlay {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
175
OpenAuth.Mvc/Content/themes/base/datepicker.css
Normal file
@ -0,0 +1,175 @@
|
||||
/*!
|
||||
* jQuery UI Datepicker 1.11.4
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://api.jqueryui.com/datepicker/#theming
|
||||
*/
|
||||
.ui-datepicker {
|
||||
width: 17em;
|
||||
padding: .2em .2em 0;
|
||||
display: none;
|
||||
}
|
||||
.ui-datepicker .ui-datepicker-header {
|
||||
position: relative;
|
||||
padding: .2em 0;
|
||||
}
|
||||
.ui-datepicker .ui-datepicker-prev,
|
||||
.ui-datepicker .ui-datepicker-next {
|
||||
position: absolute;
|
||||
top: 2px;
|
||||
width: 1.8em;
|
||||
height: 1.8em;
|
||||
}
|
||||
.ui-datepicker .ui-datepicker-prev-hover,
|
||||
.ui-datepicker .ui-datepicker-next-hover {
|
||||
top: 1px;
|
||||
}
|
||||
.ui-datepicker .ui-datepicker-prev {
|
||||
left: 2px;
|
||||
}
|
||||
.ui-datepicker .ui-datepicker-next {
|
||||
right: 2px;
|
||||
}
|
||||
.ui-datepicker .ui-datepicker-prev-hover {
|
||||
left: 1px;
|
||||
}
|
||||
.ui-datepicker .ui-datepicker-next-hover {
|
||||
right: 1px;
|
||||
}
|
||||
.ui-datepicker .ui-datepicker-prev span,
|
||||
.ui-datepicker .ui-datepicker-next span {
|
||||
display: block;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
margin-left: -8px;
|
||||
top: 50%;
|
||||
margin-top: -8px;
|
||||
}
|
||||
.ui-datepicker .ui-datepicker-title {
|
||||
margin: 0 2.3em;
|
||||
line-height: 1.8em;
|
||||
text-align: center;
|
||||
}
|
||||
.ui-datepicker .ui-datepicker-title select {
|
||||
font-size: 1em;
|
||||
margin: 1px 0;
|
||||
}
|
||||
.ui-datepicker select.ui-datepicker-month,
|
||||
.ui-datepicker select.ui-datepicker-year {
|
||||
width: 45%;
|
||||
}
|
||||
.ui-datepicker table {
|
||||
width: 100%;
|
||||
font-size: .9em;
|
||||
border-collapse: collapse;
|
||||
margin: 0 0 .4em;
|
||||
}
|
||||
.ui-datepicker th {
|
||||
padding: .7em .3em;
|
||||
text-align: center;
|
||||
font-weight: bold;
|
||||
border: 0;
|
||||
}
|
||||
.ui-datepicker td {
|
||||
border: 0;
|
||||
padding: 1px;
|
||||
}
|
||||
.ui-datepicker td span,
|
||||
.ui-datepicker td a {
|
||||
display: block;
|
||||
padding: .2em;
|
||||
text-align: right;
|
||||
text-decoration: none;
|
||||
}
|
||||
.ui-datepicker .ui-datepicker-buttonpane {
|
||||
background-image: none;
|
||||
margin: .7em 0 0 0;
|
||||
padding: 0 .2em;
|
||||
border-left: 0;
|
||||
border-right: 0;
|
||||
border-bottom: 0;
|
||||
}
|
||||
.ui-datepicker .ui-datepicker-buttonpane button {
|
||||
float: right;
|
||||
margin: .5em .2em .4em;
|
||||
cursor: pointer;
|
||||
padding: .2em .6em .3em .6em;
|
||||
width: auto;
|
||||
overflow: visible;
|
||||
}
|
||||
.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {
|
||||
float: left;
|
||||
}
|
||||
|
||||
/* with multiple calendars */
|
||||
.ui-datepicker.ui-datepicker-multi {
|
||||
width: auto;
|
||||
}
|
||||
.ui-datepicker-multi .ui-datepicker-group {
|
||||
float: left;
|
||||
}
|
||||
.ui-datepicker-multi .ui-datepicker-group table {
|
||||
width: 95%;
|
||||
margin: 0 auto .4em;
|
||||
}
|
||||
.ui-datepicker-multi-2 .ui-datepicker-group {
|
||||
width: 50%;
|
||||
}
|
||||
.ui-datepicker-multi-3 .ui-datepicker-group {
|
||||
width: 33.3%;
|
||||
}
|
||||
.ui-datepicker-multi-4 .ui-datepicker-group {
|
||||
width: 25%;
|
||||
}
|
||||
.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,
|
||||
.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header {
|
||||
border-left-width: 0;
|
||||
}
|
||||
.ui-datepicker-multi .ui-datepicker-buttonpane {
|
||||
clear: left;
|
||||
}
|
||||
.ui-datepicker-row-break {
|
||||
clear: both;
|
||||
width: 100%;
|
||||
font-size: 0;
|
||||
}
|
||||
|
||||
/* RTL support */
|
||||
.ui-datepicker-rtl {
|
||||
direction: rtl;
|
||||
}
|
||||
.ui-datepicker-rtl .ui-datepicker-prev {
|
||||
right: 2px;
|
||||
left: auto;
|
||||
}
|
||||
.ui-datepicker-rtl .ui-datepicker-next {
|
||||
left: 2px;
|
||||
right: auto;
|
||||
}
|
||||
.ui-datepicker-rtl .ui-datepicker-prev:hover {
|
||||
right: 1px;
|
||||
left: auto;
|
||||
}
|
||||
.ui-datepicker-rtl .ui-datepicker-next:hover {
|
||||
left: 1px;
|
||||
right: auto;
|
||||
}
|
||||
.ui-datepicker-rtl .ui-datepicker-buttonpane {
|
||||
clear: right;
|
||||
}
|
||||
.ui-datepicker-rtl .ui-datepicker-buttonpane button {
|
||||
float: left;
|
||||
}
|
||||
.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,
|
||||
.ui-datepicker-rtl .ui-datepicker-group {
|
||||
float: right;
|
||||
}
|
||||
.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,
|
||||
.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {
|
||||
border-right-width: 0;
|
||||
border-left-width: 1px;
|
||||
}
|
70
OpenAuth.Mvc/Content/themes/base/dialog.css
Normal file
@ -0,0 +1,70 @@
|
||||
/*!
|
||||
* jQuery UI Dialog 1.11.4
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://api.jqueryui.com/dialog/#theming
|
||||
*/
|
||||
.ui-dialog {
|
||||
overflow: hidden;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
padding: .2em;
|
||||
outline: 0;
|
||||
}
|
||||
.ui-dialog .ui-dialog-titlebar {
|
||||
padding: .4em 1em;
|
||||
position: relative;
|
||||
}
|
||||
.ui-dialog .ui-dialog-title {
|
||||
float: left;
|
||||
margin: .1em 0;
|
||||
white-space: nowrap;
|
||||
width: 90%;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
.ui-dialog .ui-dialog-titlebar-close {
|
||||
position: absolute;
|
||||
right: .3em;
|
||||
top: 50%;
|
||||
width: 20px;
|
||||
margin: -10px 0 0 0;
|
||||
padding: 1px;
|
||||
height: 20px;
|
||||
}
|
||||
.ui-dialog .ui-dialog-content {
|
||||
position: relative;
|
||||
border: 0;
|
||||
padding: .5em 1em;
|
||||
background: none;
|
||||
overflow: auto;
|
||||
}
|
||||
.ui-dialog .ui-dialog-buttonpane {
|
||||
text-align: left;
|
||||
border-width: 1px 0 0 0;
|
||||
background-image: none;
|
||||
margin-top: .5em;
|
||||
padding: .3em 1em .5em .4em;
|
||||
}
|
||||
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
|
||||
float: right;
|
||||
}
|
||||
.ui-dialog .ui-dialog-buttonpane button {
|
||||
margin: .5em .4em .5em 0;
|
||||
cursor: pointer;
|
||||
}
|
||||
.ui-dialog .ui-resizable-se {
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
right: -5px;
|
||||
bottom: -5px;
|
||||
background-position: 16px 16px;
|
||||
}
|
||||
.ui-draggable .ui-dialog-titlebar {
|
||||
cursor: move;
|
||||
}
|
12
OpenAuth.Mvc/Content/themes/base/draggable.css
Normal file
@ -0,0 +1,12 @@
|
||||
/*!
|
||||
* jQuery UI Draggable 1.11.4
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*/
|
||||
.ui-draggable-handle {
|
||||
-ms-touch-action: none;
|
||||
touch-action: none;
|
||||
}
|
BIN
OpenAuth.Mvc/Content/themes/base/images/toggle-collapse-dark.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
After Width: | Height: | Size: 2.8 KiB |
BIN
OpenAuth.Mvc/Content/themes/base/images/toggle-expand-dark.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
OpenAuth.Mvc/Content/themes/base/images/toggle-expand-light.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
After Width: | Height: | Size: 457 B |
After Width: | Height: | Size: 351 B |
After Width: | Height: | Size: 180 B |
After Width: | Height: | Size: 244 B |
After Width: | Height: | Size: 178 B |
After Width: | Height: | Size: 301 B |
After Width: | Height: | Size: 387 B |
After Width: | Height: | Size: 120 B |
After Width: | Height: | Size: 105 B |
After Width: | Height: | Size: 111 B |
After Width: | Height: | Size: 110 B |
After Width: | Height: | Size: 119 B |
After Width: | Height: | Size: 5.7 KiB |
After Width: | Height: | Size: 317 B |
After Width: | Height: | Size: 101 B |
After Width: | Height: | Size: 367 B |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 4.5 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 4.5 KiB |
After Width: | Height: | Size: 4.5 KiB |
After Width: | Height: | Size: 6.3 KiB |
7
OpenAuth.Mvc/Content/themes/base/jquery-ui.min.css
vendored
Normal file
5
OpenAuth.Mvc/Content/themes/base/jquery-ui.structure.min.css
vendored
Normal file
5
OpenAuth.Mvc/Content/themes/base/jquery-ui.theme.min.css
vendored
Normal file
55
OpenAuth.Mvc/Content/themes/base/jquery.treeTable.css
Normal file
@ -0,0 +1,55 @@
|
||||
/* jQuery treeTable stylesheet
|
||||
*
|
||||
* This file contains styles that are used to display the tree table. Each tree
|
||||
* table is assigned the +treeTable+ class.
|
||||
* ========================================================================= */
|
||||
|
||||
/* jquery.treeTable.collapsible
|
||||
* ------------------------------------------------------------------------- */
|
||||
.treeTable tr td .expander {
|
||||
cursor: pointer;
|
||||
padding: 0;
|
||||
zoom: 1; /* IE7 Hack */
|
||||
}
|
||||
|
||||
.treeTable tr td a.expander {
|
||||
background-position: left center;
|
||||
background-repeat: no-repeat;
|
||||
color: #000;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.treeTable tr.collapsed td a.expander {
|
||||
background-image: url(images/toggle-expand-dark.png);
|
||||
}
|
||||
|
||||
.treeTable tr.expanded td a.expander {
|
||||
background-image: url(images/toggle-collapse-dark.png);
|
||||
}
|
||||
|
||||
/* jquery.treeTable.sortable
|
||||
* ------------------------------------------------------------------------- */
|
||||
.treeTable tr.selected, .treeTable tr.accept {
|
||||
background-color: #3875d7;
|
||||
}
|
||||
|
||||
.treeTable tr.selected a.expander, .treeTable tr.accept a.expander {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.treeTable tr.collapsed.selected td a.expander, .treeTable tr.collapsed.accept td a.expander {
|
||||
background-image: url(images/toggle-expand-light.png);
|
||||
}
|
||||
|
||||
.treeTable tr.expanded.selected td a.expander, .treeTable tr.expanded.accept td a.expander {
|
||||
background-image: url(images/toggle-collapse-light.png);
|
||||
}
|
||||
|
||||
.treeTable .ui-draggable-dragging {
|
||||
color: #000;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
/* Layout helper taken from jQuery UI. This way I don't have to require the
|
||||
* full jQuery UI CSS to be loaded. */
|
||||
.ui-helper-hidden { display: none; }
|
63
OpenAuth.Mvc/Content/themes/base/menu.css
Normal file
@ -0,0 +1,63 @@
|
||||
/*!
|
||||
* jQuery UI Menu 1.11.4
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://api.jqueryui.com/menu/#theming
|
||||
*/
|
||||
.ui-menu {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
display: block;
|
||||
outline: none;
|
||||
}
|
||||
.ui-menu .ui-menu {
|
||||
position: absolute;
|
||||
}
|
||||
.ui-menu .ui-menu-item {
|
||||
position: relative;
|
||||
margin: 0;
|
||||
padding: 3px 1em 3px .4em;
|
||||
cursor: pointer;
|
||||
min-height: 0; /* support: IE7 */
|
||||
/* support: IE10, see #8844 */
|
||||
list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");
|
||||
}
|
||||
.ui-menu .ui-menu-divider {
|
||||
margin: 5px 0;
|
||||
height: 0;
|
||||
font-size: 0;
|
||||
line-height: 0;
|
||||
border-width: 1px 0 0 0;
|
||||
}
|
||||
.ui-menu .ui-state-focus,
|
||||
.ui-menu .ui-state-active {
|
||||
margin: -1px;
|
||||
}
|
||||
|
||||
/* icon support */
|
||||
.ui-menu-icons {
|
||||
position: relative;
|
||||
}
|
||||
.ui-menu-icons .ui-menu-item {
|
||||
padding-left: 2em;
|
||||
}
|
||||
|
||||
/* left-aligned */
|
||||
.ui-menu .ui-icon {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: .2em;
|
||||
margin: auto 0;
|
||||
}
|
||||
|
||||
/* right-aligned */
|
||||
.ui-menu .ui-menu-icon {
|
||||
left: auto;
|
||||
right: 0;
|
||||
}
|
28
OpenAuth.Mvc/Content/themes/base/progressbar.css
Normal file
@ -0,0 +1,28 @@
|
||||
/*!
|
||||
* jQuery UI Progressbar 1.11.4
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://api.jqueryui.com/progressbar/#theming
|
||||
*/
|
||||
.ui-progressbar {
|
||||
height: 2em;
|
||||
text-align: left;
|
||||
overflow: hidden;
|
||||
}
|
||||
.ui-progressbar .ui-progressbar-value {
|
||||
margin: -1px;
|
||||
height: 100%;
|
||||
}
|
||||
.ui-progressbar .ui-progressbar-overlay {
|
||||
background: url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");
|
||||
height: 100%;
|
||||
filter: alpha(opacity=25); /* support: IE8 */
|
||||
opacity: 0.25;
|
||||
}
|
||||
.ui-progressbar-indeterminate .ui-progressbar-value {
|
||||
background-image: none;
|
||||
}
|
78
OpenAuth.Mvc/Content/themes/base/resizable.css
Normal file
@ -0,0 +1,78 @@
|
||||
/*!
|
||||
* jQuery UI Resizable 1.11.4
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*/
|
||||
.ui-resizable {
|
||||
position: relative;
|
||||
}
|
||||
.ui-resizable-handle {
|
||||
position: absolute;
|
||||
font-size: 0.1px;
|
||||
display: block;
|
||||
-ms-touch-action: none;
|
||||
touch-action: none;
|
||||
}
|
||||
.ui-resizable-disabled .ui-resizable-handle,
|
||||
.ui-resizable-autohide .ui-resizable-handle {
|
||||
display: none;
|
||||
}
|
||||
.ui-resizable-n {
|
||||
cursor: n-resize;
|
||||
height: 7px;
|
||||
width: 100%;
|
||||
top: -5px;
|
||||
left: 0;
|
||||
}
|
||||
.ui-resizable-s {
|
||||
cursor: s-resize;
|
||||
height: 7px;
|
||||
width: 100%;
|
||||
bottom: -5px;
|
||||
left: 0;
|
||||
}
|
||||
.ui-resizable-e {
|
||||
cursor: e-resize;
|
||||
width: 7px;
|
||||
right: -5px;
|
||||
top: 0;
|
||||
height: 100%;
|
||||
}
|
||||
.ui-resizable-w {
|
||||
cursor: w-resize;
|
||||
width: 7px;
|
||||
left: -5px;
|
||||
top: 0;
|
||||
height: 100%;
|
||||
}
|
||||
.ui-resizable-se {
|
||||
cursor: se-resize;
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
right: 1px;
|
||||
bottom: 1px;
|
||||
}
|
||||
.ui-resizable-sw {
|
||||
cursor: sw-resize;
|
||||
width: 9px;
|
||||
height: 9px;
|
||||
left: -5px;
|
||||
bottom: -5px;
|
||||
}
|
||||
.ui-resizable-nw {
|
||||
cursor: nw-resize;
|
||||
width: 9px;
|
||||
height: 9px;
|
||||
left: -5px;
|
||||
top: -5px;
|
||||
}
|
||||
.ui-resizable-ne {
|
||||
cursor: ne-resize;
|
||||
width: 9px;
|
||||
height: 9px;
|
||||
right: -5px;
|
||||
top: -5px;
|
||||
}
|
17
OpenAuth.Mvc/Content/themes/base/selectable.css
Normal file
@ -0,0 +1,17 @@
|
||||
/*!
|
||||
* jQuery UI Selectable 1.11.4
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*/
|
||||
.ui-selectable {
|
||||
-ms-touch-action: none;
|
||||
touch-action: none;
|
||||
}
|
||||
.ui-selectable-helper {
|
||||
position: absolute;
|
||||
z-index: 100;
|
||||
border: 1px dotted black;
|
||||
}
|
59
OpenAuth.Mvc/Content/themes/base/selectmenu.css
Normal file
@ -0,0 +1,59 @@
|
||||
/*!
|
||||
* jQuery UI Selectmenu 1.11.4
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://api.jqueryui.com/selectmenu/#theming
|
||||
*/
|
||||
.ui-selectmenu-menu {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
display: none;
|
||||
}
|
||||
.ui-selectmenu-menu .ui-menu {
|
||||
overflow: auto;
|
||||
/* Support: IE7 */
|
||||
overflow-x: hidden;
|
||||
padding-bottom: 1px;
|
||||
}
|
||||
.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup {
|
||||
font-size: 1em;
|
||||
font-weight: bold;
|
||||
line-height: 1.5;
|
||||
padding: 2px 0.4em;
|
||||
margin: 0.5em 0 0 0;
|
||||
height: auto;
|
||||
border: 0;
|
||||
}
|
||||
.ui-selectmenu-open {
|
||||
display: block;
|
||||
}
|
||||
.ui-selectmenu-button {
|
||||
display: inline-block;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
}
|
||||
.ui-selectmenu-button span.ui-icon {
|
||||
right: 0.5em;
|
||||
left: auto;
|
||||
margin-top: -8px;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
}
|
||||
.ui-selectmenu-button span.ui-selectmenu-text {
|
||||
text-align: left;
|
||||
padding: 0.4em 2.1em 0.4em 1em;
|
||||
display: block;
|
||||
line-height: 1.4;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
75
OpenAuth.Mvc/Content/themes/base/slider.css
Normal file
@ -0,0 +1,75 @@
|
||||
/*!
|
||||
* jQuery UI Slider 1.11.4
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://api.jqueryui.com/slider/#theming
|
||||
*/
|
||||
.ui-slider {
|
||||
position: relative;
|
||||
text-align: left;
|
||||
}
|
||||
.ui-slider .ui-slider-handle {
|
||||
position: absolute;
|
||||
z-index: 2;
|
||||
width: 1.2em;
|
||||
height: 1.2em;
|
||||
cursor: default;
|
||||
-ms-touch-action: none;
|
||||
touch-action: none;
|
||||
}
|
||||
.ui-slider .ui-slider-range {
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
font-size: .7em;
|
||||
display: block;
|
||||
border: 0;
|
||||
background-position: 0 0;
|
||||
}
|
||||
|
||||
/* support: IE8 - See #6727 */
|
||||
.ui-slider.ui-state-disabled .ui-slider-handle,
|
||||
.ui-slider.ui-state-disabled .ui-slider-range {
|
||||
filter: inherit;
|
||||
}
|
||||
|
||||
.ui-slider-horizontal {
|
||||
height: .8em;
|
||||
}
|
||||
.ui-slider-horizontal .ui-slider-handle {
|
||||
top: -.3em;
|
||||
margin-left: -.6em;
|
||||
}
|
||||
.ui-slider-horizontal .ui-slider-range {
|
||||
top: 0;
|
||||
height: 100%;
|
||||
}
|
||||
.ui-slider-horizontal .ui-slider-range-min {
|
||||
left: 0;
|
||||
}
|
||||
.ui-slider-horizontal .ui-slider-range-max {
|
||||
right: 0;
|
||||
}
|
||||
|
||||
.ui-slider-vertical {
|
||||
width: .8em;
|
||||
height: 100px;
|
||||
}
|
||||
.ui-slider-vertical .ui-slider-handle {
|
||||
left: -.3em;
|
||||
margin-left: 0;
|
||||
margin-bottom: -.6em;
|
||||
}
|
||||
.ui-slider-vertical .ui-slider-range {
|
||||
left: 0;
|
||||
width: 100%;
|
||||
}
|
||||
.ui-slider-vertical .ui-slider-range-min {
|
||||
bottom: 0;
|
||||
}
|
||||
.ui-slider-vertical .ui-slider-range-max {
|
||||
top: 0;
|
||||
}
|
12
OpenAuth.Mvc/Content/themes/base/sortable.css
Normal file
@ -0,0 +1,12 @@
|
||||
/*!
|
||||
* jQuery UI Sortable 1.11.4
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*/
|
||||
.ui-sortable-handle {
|
||||
-ms-touch-action: none;
|
||||
touch-action: none;
|
||||
}
|
65
OpenAuth.Mvc/Content/themes/base/spinner.css
Normal file
@ -0,0 +1,65 @@
|
||||
/*!
|
||||
* jQuery UI Spinner 1.11.4
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://api.jqueryui.com/spinner/#theming
|
||||
*/
|
||||
.ui-spinner {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
overflow: hidden;
|
||||
padding: 0;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.ui-spinner-input {
|
||||
border: none;
|
||||
background: none;
|
||||
color: inherit;
|
||||
padding: 0;
|
||||
margin: .2em 0;
|
||||
vertical-align: middle;
|
||||
margin-left: .4em;
|
||||
margin-right: 22px;
|
||||
}
|
||||
.ui-spinner-button {
|
||||
width: 16px;
|
||||
height: 50%;
|
||||
font-size: .5em;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
text-align: center;
|
||||
position: absolute;
|
||||
cursor: default;
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
right: 0;
|
||||
}
|
||||
/* more specificity required here to override default borders */
|
||||
.ui-spinner a.ui-spinner-button {
|
||||
border-top: none;
|
||||
border-bottom: none;
|
||||
border-right: none;
|
||||
}
|
||||
/* vertically center icon */
|
||||
.ui-spinner .ui-icon {
|
||||
position: absolute;
|
||||
margin-top: -8px;
|
||||
top: 50%;
|
||||
left: 0;
|
||||
}
|
||||
.ui-spinner-up {
|
||||
top: 0;
|
||||
}
|
||||
.ui-spinner-down {
|
||||
bottom: 0;
|
||||
}
|
||||
|
||||
/* TR overrides */
|
||||
.ui-spinner .ui-icon-triangle-1-s {
|
||||
/* need to fix icons sprite */
|
||||
background-position: -65px -16px;
|
||||
}
|
51
OpenAuth.Mvc/Content/themes/base/tabs.css
Normal file
@ -0,0 +1,51 @@
|
||||
/*!
|
||||
* jQuery UI Tabs 1.11.4
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://api.jqueryui.com/tabs/#theming
|
||||
*/
|
||||
.ui-tabs {
|
||||
position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
|
||||
padding: .2em;
|
||||
}
|
||||
.ui-tabs .ui-tabs-nav {
|
||||
margin: 0;
|
||||
padding: .2em .2em 0;
|
||||
}
|
||||
.ui-tabs .ui-tabs-nav li {
|
||||
list-style: none;
|
||||
float: left;
|
||||
position: relative;
|
||||
top: 0;
|
||||
margin: 1px .2em 0 0;
|
||||
border-bottom-width: 0;
|
||||
padding: 0;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.ui-tabs .ui-tabs-nav .ui-tabs-anchor {
|
||||
float: left;
|
||||
padding: .5em 1em;
|
||||
text-decoration: none;
|
||||
}
|
||||
.ui-tabs .ui-tabs-nav li.ui-tabs-active {
|
||||
margin-bottom: -1px;
|
||||
padding-bottom: 1px;
|
||||
}
|
||||
.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,
|
||||
.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,
|
||||
.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor {
|
||||
cursor: text;
|
||||
}
|
||||
.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor {
|
||||
cursor: pointer;
|
||||
}
|
||||
.ui-tabs .ui-tabs-panel {
|
||||
display: block;
|
||||
border-width: 0;
|
||||
padding: 1em 1.4em;
|
||||
background: none;
|
||||
}
|
410
OpenAuth.Mvc/Content/themes/base/theme.css
Normal file
@ -0,0 +1,410 @@
|
||||
/*!
|
||||
* jQuery UI CSS Framework 1.11.4
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://api.jqueryui.com/category/theming/
|
||||
*
|
||||
* To view and modify this theme, visit http://jqueryui.com/themeroller/
|
||||
*/
|
||||
|
||||
|
||||
/* Component containers
|
||||
----------------------------------*/
|
||||
.ui-widget {
|
||||
font-family: Verdana,Arial,sans-serif/*{ffDefault}*/;
|
||||
font-size: 1.1em/*{fsDefault}*/;
|
||||
}
|
||||
.ui-widget .ui-widget {
|
||||
font-size: 1em;
|
||||
}
|
||||
.ui-widget input,
|
||||
.ui-widget select,
|
||||
.ui-widget textarea,
|
||||
.ui-widget button {
|
||||
font-family: Verdana,Arial,sans-serif/*{ffDefault}*/;
|
||||
font-size: 1em;
|
||||
}
|
||||
.ui-widget-content {
|
||||
border: 1px solid #aaaaaa/*{borderColorContent}*/;
|
||||
background: #ffffff/*{bgColorContent}*/ url("images/ui-bg_flat_75_ffffff_40x100.png")/*{bgImgUrlContent}*/ 50%/*{bgContentXPos}*/ 50%/*{bgContentYPos}*/ repeat-x/*{bgContentRepeat}*/;
|
||||
color: #222222/*{fcContent}*/;
|
||||
}
|
||||
.ui-widget-content a {
|
||||
color: #222222/*{fcContent}*/;
|
||||
}
|
||||
.ui-widget-header {
|
||||
border: 1px solid #aaaaaa/*{borderColorHeader}*/;
|
||||
background: #cccccc/*{bgColorHeader}*/ url("images/ui-bg_highlight-soft_75_cccccc_1x100.png")/*{bgImgUrlHeader}*/ 50%/*{bgHeaderXPos}*/ 50%/*{bgHeaderYPos}*/ repeat-x/*{bgHeaderRepeat}*/;
|
||||
color: #222222/*{fcHeader}*/;
|
||||
font-weight: bold;
|
||||
}
|
||||
.ui-widget-header a {
|
||||
color: #222222/*{fcHeader}*/;
|
||||
}
|
||||
|
||||
/* Interaction states
|
||||
----------------------------------*/
|
||||
.ui-state-default,
|
||||
.ui-widget-content .ui-state-default,
|
||||
.ui-widget-header .ui-state-default {
|
||||
border: 1px solid #d3d3d3/*{borderColorDefault}*/;
|
||||
background: #e6e6e6/*{bgColorDefault}*/ url("images/ui-bg_glass_75_e6e6e6_1x400.png")/*{bgImgUrlDefault}*/ 50%/*{bgDefaultXPos}*/ 50%/*{bgDefaultYPos}*/ repeat-x/*{bgDefaultRepeat}*/;
|
||||
font-weight: normal/*{fwDefault}*/;
|
||||
color: #555555/*{fcDefault}*/;
|
||||
}
|
||||
.ui-state-default a,
|
||||
.ui-state-default a:link,
|
||||
.ui-state-default a:visited {
|
||||
color: #555555/*{fcDefault}*/;
|
||||
text-decoration: none;
|
||||
}
|
||||
.ui-state-hover,
|
||||
.ui-widget-content .ui-state-hover,
|
||||
.ui-widget-header .ui-state-hover,
|
||||
.ui-state-focus,
|
||||
.ui-widget-content .ui-state-focus,
|
||||
.ui-widget-header .ui-state-focus {
|
||||
border: 1px solid #999999/*{borderColorHover}*/;
|
||||
background: #dadada/*{bgColorHover}*/ url("images/ui-bg_glass_75_dadada_1x400.png")/*{bgImgUrlHover}*/ 50%/*{bgHoverXPos}*/ 50%/*{bgHoverYPos}*/ repeat-x/*{bgHoverRepeat}*/;
|
||||
font-weight: normal/*{fwDefault}*/;
|
||||
color: #212121/*{fcHover}*/;
|
||||
}
|
||||
.ui-state-hover a,
|
||||
.ui-state-hover a:hover,
|
||||
.ui-state-hover a:link,
|
||||
.ui-state-hover a:visited,
|
||||
.ui-state-focus a,
|
||||
.ui-state-focus a:hover,
|
||||
.ui-state-focus a:link,
|
||||
.ui-state-focus a:visited {
|
||||
color: #212121/*{fcHover}*/;
|
||||
text-decoration: none;
|
||||
}
|
||||
.ui-state-active,
|
||||
.ui-widget-content .ui-state-active,
|
||||
.ui-widget-header .ui-state-active {
|
||||
border: 1px solid #aaaaaa/*{borderColorActive}*/;
|
||||
background: #ffffff/*{bgColorActive}*/ url("images/ui-bg_glass_65_ffffff_1x400.png")/*{bgImgUrlActive}*/ 50%/*{bgActiveXPos}*/ 50%/*{bgActiveYPos}*/ repeat-x/*{bgActiveRepeat}*/;
|
||||
font-weight: normal/*{fwDefault}*/;
|
||||
color: #212121/*{fcActive}*/;
|
||||
}
|
||||
.ui-state-active a,
|
||||
.ui-state-active a:link,
|
||||
.ui-state-active a:visited {
|
||||
color: #212121/*{fcActive}*/;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
/* Interaction Cues
|
||||
----------------------------------*/
|
||||
.ui-state-highlight,
|
||||
.ui-widget-content .ui-state-highlight,
|
||||
.ui-widget-header .ui-state-highlight {
|
||||
border: 1px solid #fcefa1/*{borderColorHighlight}*/;
|
||||
background: #fbf9ee/*{bgColorHighlight}*/ url("images/ui-bg_glass_55_fbf9ee_1x400.png")/*{bgImgUrlHighlight}*/ 50%/*{bgHighlightXPos}*/ 50%/*{bgHighlightYPos}*/ repeat-x/*{bgHighlightRepeat}*/;
|
||||
color: #363636/*{fcHighlight}*/;
|
||||
}
|
||||
.ui-state-highlight a,
|
||||
.ui-widget-content .ui-state-highlight a,
|
||||
.ui-widget-header .ui-state-highlight a {
|
||||
color: #363636/*{fcHighlight}*/;
|
||||
}
|
||||
.ui-state-error,
|
||||
.ui-widget-content .ui-state-error,
|
||||
.ui-widget-header .ui-state-error {
|
||||
border: 1px solid #cd0a0a/*{borderColorError}*/;
|
||||
background: #fef1ec/*{bgColorError}*/ url("images/ui-bg_glass_95_fef1ec_1x400.png")/*{bgImgUrlError}*/ 50%/*{bgErrorXPos}*/ 50%/*{bgErrorYPos}*/ repeat-x/*{bgErrorRepeat}*/;
|
||||
color: #cd0a0a/*{fcError}*/;
|
||||
}
|
||||
.ui-state-error a,
|
||||
.ui-widget-content .ui-state-error a,
|
||||
.ui-widget-header .ui-state-error a {
|
||||
color: #cd0a0a/*{fcError}*/;
|
||||
}
|
||||
.ui-state-error-text,
|
||||
.ui-widget-content .ui-state-error-text,
|
||||
.ui-widget-header .ui-state-error-text {
|
||||
color: #cd0a0a/*{fcError}*/;
|
||||
}
|
||||
.ui-priority-primary,
|
||||
.ui-widget-content .ui-priority-primary,
|
||||
.ui-widget-header .ui-priority-primary {
|
||||
font-weight: bold;
|
||||
}
|
||||
.ui-priority-secondary,
|
||||
.ui-widget-content .ui-priority-secondary,
|
||||
.ui-widget-header .ui-priority-secondary {
|
||||
opacity: .7;
|
||||
filter:Alpha(Opacity=70); /* support: IE8 */
|
||||
font-weight: normal;
|
||||
}
|
||||
.ui-state-disabled,
|
||||
.ui-widget-content .ui-state-disabled,
|
||||
.ui-widget-header .ui-state-disabled {
|
||||
opacity: .35;
|
||||
filter:Alpha(Opacity=35); /* support: IE8 */
|
||||
background-image: none;
|
||||
}
|
||||
.ui-state-disabled .ui-icon {
|
||||
filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */
|
||||
}
|
||||
|
||||
/* Icons
|
||||
----------------------------------*/
|
||||
|
||||
/* states and images */
|
||||
.ui-icon {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
.ui-icon,
|
||||
.ui-widget-content .ui-icon {
|
||||
background-image: url("images/ui-icons_222222_256x240.png")/*{iconsContent}*/;
|
||||
}
|
||||
.ui-widget-header .ui-icon {
|
||||
background-image: url("images/ui-icons_222222_256x240.png")/*{iconsHeader}*/;
|
||||
}
|
||||
.ui-state-default .ui-icon {
|
||||
background-image: url("images/ui-icons_888888_256x240.png")/*{iconsDefault}*/;
|
||||
}
|
||||
.ui-state-hover .ui-icon,
|
||||
.ui-state-focus .ui-icon {
|
||||
background-image: url("images/ui-icons_454545_256x240.png")/*{iconsHover}*/;
|
||||
}
|
||||
.ui-state-active .ui-icon {
|
||||
background-image: url("images/ui-icons_454545_256x240.png")/*{iconsActive}*/;
|
||||
}
|
||||
.ui-state-highlight .ui-icon {
|
||||
background-image: url("images/ui-icons_2e83ff_256x240.png")/*{iconsHighlight}*/;
|
||||
}
|
||||
.ui-state-error .ui-icon,
|
||||
.ui-state-error-text .ui-icon {
|
||||
background-image: url("images/ui-icons_cd0a0a_256x240.png")/*{iconsError}*/;
|
||||
}
|
||||
|
||||
/* positioning */
|
||||
.ui-icon-blank { background-position: 16px 16px; }
|
||||
.ui-icon-carat-1-n { background-position: 0 0; }
|
||||
.ui-icon-carat-1-ne { background-position: -16px 0; }
|
||||
.ui-icon-carat-1-e { background-position: -32px 0; }
|
||||
.ui-icon-carat-1-se { background-position: -48px 0; }
|
||||
.ui-icon-carat-1-s { background-position: -64px 0; }
|
||||
.ui-icon-carat-1-sw { background-position: -80px 0; }
|
||||
.ui-icon-carat-1-w { background-position: -96px 0; }
|
||||
.ui-icon-carat-1-nw { background-position: -112px 0; }
|
||||
.ui-icon-carat-2-n-s { background-position: -128px 0; }
|
||||
.ui-icon-carat-2-e-w { background-position: -144px 0; }
|
||||
.ui-icon-triangle-1-n { background-position: 0 -16px; }
|
||||
.ui-icon-triangle-1-ne { background-position: -16px -16px; }
|
||||
.ui-icon-triangle-1-e { background-position: -32px -16px; }
|
||||
.ui-icon-triangle-1-se { background-position: -48px -16px; }
|
||||
.ui-icon-triangle-1-s { background-position: -64px -16px; }
|
||||
.ui-icon-triangle-1-sw { background-position: -80px -16px; }
|
||||
.ui-icon-triangle-1-w { background-position: -96px -16px; }
|
||||
.ui-icon-triangle-1-nw { background-position: -112px -16px; }
|
||||
.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
|
||||
.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
|
||||
.ui-icon-arrow-1-n { background-position: 0 -32px; }
|
||||
.ui-icon-arrow-1-ne { background-position: -16px -32px; }
|
||||
.ui-icon-arrow-1-e { background-position: -32px -32px; }
|
||||
.ui-icon-arrow-1-se { background-position: -48px -32px; }
|
||||
.ui-icon-arrow-1-s { background-position: -64px -32px; }
|
||||
.ui-icon-arrow-1-sw { background-position: -80px -32px; }
|
||||
.ui-icon-arrow-1-w { background-position: -96px -32px; }
|
||||
.ui-icon-arrow-1-nw { background-position: -112px -32px; }
|
||||
.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
|
||||
.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
|
||||
.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
|
||||
.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
|
||||
.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
|
||||
.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
|
||||
.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
|
||||
.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
|
||||
.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
|
||||
.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
|
||||
.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
|
||||
.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
|
||||
.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
|
||||
.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
|
||||
.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
|
||||
.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
|
||||
.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
|
||||
.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
|
||||
.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
|
||||
.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
|
||||
.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
|
||||
.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
|
||||
.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
|
||||
.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
|
||||
.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
|
||||
.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
|
||||
.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
|
||||
.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
|
||||
.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
|
||||
.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
|
||||
.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
|
||||
.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
|
||||
.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
|
||||
.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
|
||||
.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
|
||||
.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
|
||||
.ui-icon-arrow-4 { background-position: 0 -80px; }
|
||||
.ui-icon-arrow-4-diag { background-position: -16px -80px; }
|
||||
.ui-icon-extlink { background-position: -32px -80px; }
|
||||
.ui-icon-newwin { background-position: -48px -80px; }
|
||||
.ui-icon-refresh { background-position: -64px -80px; }
|
||||
.ui-icon-shuffle { background-position: -80px -80px; }
|
||||
.ui-icon-transfer-e-w { background-position: -96px -80px; }
|
||||
.ui-icon-transferthick-e-w { background-position: -112px -80px; }
|
||||
.ui-icon-folder-collapsed { background-position: 0 -96px; }
|
||||
.ui-icon-folder-open { background-position: -16px -96px; }
|
||||
.ui-icon-document { background-position: -32px -96px; }
|
||||
.ui-icon-document-b { background-position: -48px -96px; }
|
||||
.ui-icon-note { background-position: -64px -96px; }
|
||||
.ui-icon-mail-closed { background-position: -80px -96px; }
|
||||
.ui-icon-mail-open { background-position: -96px -96px; }
|
||||
.ui-icon-suitcase { background-position: -112px -96px; }
|
||||
.ui-icon-comment { background-position: -128px -96px; }
|
||||
.ui-icon-person { background-position: -144px -96px; }
|
||||
.ui-icon-print { background-position: -160px -96px; }
|
||||
.ui-icon-trash { background-position: -176px -96px; }
|
||||
.ui-icon-locked { background-position: -192px -96px; }
|
||||
.ui-icon-unlocked { background-position: -208px -96px; }
|
||||
.ui-icon-bookmark { background-position: -224px -96px; }
|
||||
.ui-icon-tag { background-position: -240px -96px; }
|
||||
.ui-icon-home { background-position: 0 -112px; }
|
||||
.ui-icon-flag { background-position: -16px -112px; }
|
||||
.ui-icon-calendar { background-position: -32px -112px; }
|
||||
.ui-icon-cart { background-position: -48px -112px; }
|
||||
.ui-icon-pencil { background-position: -64px -112px; }
|
||||
.ui-icon-clock { background-position: -80px -112px; }
|
||||
.ui-icon-disk { background-position: -96px -112px; }
|
||||
.ui-icon-calculator { background-position: -112px -112px; }
|
||||
.ui-icon-zoomin { background-position: -128px -112px; }
|
||||
.ui-icon-zoomout { background-position: -144px -112px; }
|
||||
.ui-icon-search { background-position: -160px -112px; }
|
||||
.ui-icon-wrench { background-position: -176px -112px; }
|
||||
.ui-icon-gear { background-position: -192px -112px; }
|
||||
.ui-icon-heart { background-position: -208px -112px; }
|
||||
.ui-icon-star { background-position: -224px -112px; }
|
||||
.ui-icon-link { background-position: -240px -112px; }
|
||||
.ui-icon-cancel { background-position: 0 -128px; }
|
||||
.ui-icon-plus { background-position: -16px -128px; }
|
||||
.ui-icon-plusthick { background-position: -32px -128px; }
|
||||
.ui-icon-minus { background-position: -48px -128px; }
|
||||
.ui-icon-minusthick { background-position: -64px -128px; }
|
||||
.ui-icon-close { background-position: -80px -128px; }
|
||||
.ui-icon-closethick { background-position: -96px -128px; }
|
||||
.ui-icon-key { background-position: -112px -128px; }
|
||||
.ui-icon-lightbulb { background-position: -128px -128px; }
|
||||
.ui-icon-scissors { background-position: -144px -128px; }
|
||||
.ui-icon-clipboard { background-position: -160px -128px; }
|
||||
.ui-icon-copy { background-position: -176px -128px; }
|
||||
.ui-icon-contact { background-position: -192px -128px; }
|
||||
.ui-icon-image { background-position: -208px -128px; }
|
||||
.ui-icon-video { background-position: -224px -128px; }
|
||||
.ui-icon-script { background-position: -240px -128px; }
|
||||
.ui-icon-alert { background-position: 0 -144px; }
|
||||
.ui-icon-info { background-position: -16px -144px; }
|
||||
.ui-icon-notice { background-position: -32px -144px; }
|
||||
.ui-icon-help { background-position: -48px -144px; }
|
||||
.ui-icon-check { background-position: -64px -144px; }
|
||||
.ui-icon-bullet { background-position: -80px -144px; }
|
||||
.ui-icon-radio-on { background-position: -96px -144px; }
|
||||
.ui-icon-radio-off { background-position: -112px -144px; }
|
||||
.ui-icon-pin-w { background-position: -128px -144px; }
|
||||
.ui-icon-pin-s { background-position: -144px -144px; }
|
||||
.ui-icon-play { background-position: 0 -160px; }
|
||||
.ui-icon-pause { background-position: -16px -160px; }
|
||||
.ui-icon-seek-next { background-position: -32px -160px; }
|
||||
.ui-icon-seek-prev { background-position: -48px -160px; }
|
||||
.ui-icon-seek-end { background-position: -64px -160px; }
|
||||
.ui-icon-seek-start { background-position: -80px -160px; }
|
||||
/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
|
||||
.ui-icon-seek-first { background-position: -80px -160px; }
|
||||
.ui-icon-stop { background-position: -96px -160px; }
|
||||
.ui-icon-eject { background-position: -112px -160px; }
|
||||
.ui-icon-volume-off { background-position: -128px -160px; }
|
||||
.ui-icon-volume-on { background-position: -144px -160px; }
|
||||
.ui-icon-power { background-position: 0 -176px; }
|
||||
.ui-icon-signal-diag { background-position: -16px -176px; }
|
||||
.ui-icon-signal { background-position: -32px -176px; }
|
||||
.ui-icon-battery-0 { background-position: -48px -176px; }
|
||||
.ui-icon-battery-1 { background-position: -64px -176px; }
|
||||
.ui-icon-battery-2 { background-position: -80px -176px; }
|
||||
.ui-icon-battery-3 { background-position: -96px -176px; }
|
||||
.ui-icon-circle-plus { background-position: 0 -192px; }
|
||||
.ui-icon-circle-minus { background-position: -16px -192px; }
|
||||
.ui-icon-circle-close { background-position: -32px -192px; }
|
||||
.ui-icon-circle-triangle-e { background-position: -48px -192px; }
|
||||
.ui-icon-circle-triangle-s { background-position: -64px -192px; }
|
||||
.ui-icon-circle-triangle-w { background-position: -80px -192px; }
|
||||
.ui-icon-circle-triangle-n { background-position: -96px -192px; }
|
||||
.ui-icon-circle-arrow-e { background-position: -112px -192px; }
|
||||
.ui-icon-circle-arrow-s { background-position: -128px -192px; }
|
||||
.ui-icon-circle-arrow-w { background-position: -144px -192px; }
|
||||
.ui-icon-circle-arrow-n { background-position: -160px -192px; }
|
||||
.ui-icon-circle-zoomin { background-position: -176px -192px; }
|
||||
.ui-icon-circle-zoomout { background-position: -192px -192px; }
|
||||
.ui-icon-circle-check { background-position: -208px -192px; }
|
||||
.ui-icon-circlesmall-plus { background-position: 0 -208px; }
|
||||
.ui-icon-circlesmall-minus { background-position: -16px -208px; }
|
||||
.ui-icon-circlesmall-close { background-position: -32px -208px; }
|
||||
.ui-icon-squaresmall-plus { background-position: -48px -208px; }
|
||||
.ui-icon-squaresmall-minus { background-position: -64px -208px; }
|
||||
.ui-icon-squaresmall-close { background-position: -80px -208px; }
|
||||
.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
|
||||
.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
|
||||
.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
|
||||
.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
|
||||
.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
|
||||
.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
|
||||
|
||||
|
||||
/* Misc visuals
|
||||
----------------------------------*/
|
||||
|
||||
/* Corner radius */
|
||||
.ui-corner-all,
|
||||
.ui-corner-top,
|
||||
.ui-corner-left,
|
||||
.ui-corner-tl {
|
||||
border-top-left-radius: 4px/*{cornerRadius}*/;
|
||||
}
|
||||
.ui-corner-all,
|
||||
.ui-corner-top,
|
||||
.ui-corner-right,
|
||||
.ui-corner-tr {
|
||||
border-top-right-radius: 4px/*{cornerRadius}*/;
|
||||
}
|
||||
.ui-corner-all,
|
||||
.ui-corner-bottom,
|
||||
.ui-corner-left,
|
||||
.ui-corner-bl {
|
||||
border-bottom-left-radius: 4px/*{cornerRadius}*/;
|
||||
}
|
||||
.ui-corner-all,
|
||||
.ui-corner-bottom,
|
||||
.ui-corner-right,
|
||||
.ui-corner-br {
|
||||
border-bottom-right-radius: 4px/*{cornerRadius}*/;
|
||||
}
|
||||
|
||||
/* Overlays */
|
||||
.ui-widget-overlay {
|
||||
background: #aaaaaa/*{bgColorOverlay}*/ url("images/ui-bg_flat_0_aaaaaa_40x100.png")/*{bgImgUrlOverlay}*/ 50%/*{bgOverlayXPos}*/ 50%/*{bgOverlayYPos}*/ repeat-x/*{bgOverlayRepeat}*/;
|
||||
opacity: .3/*{opacityOverlay}*/;
|
||||
filter: Alpha(Opacity=30)/*{opacityFilterOverlay}*/; /* support: IE8 */
|
||||
}
|
||||
.ui-widget-shadow {
|
||||
margin: -8px/*{offsetTopShadow}*/ 0 0 -8px/*{offsetLeftShadow}*/;
|
||||
padding: 8px/*{thicknessShadow}*/;
|
||||
background: #aaaaaa/*{bgColorShadow}*/ url("images/ui-bg_flat_0_aaaaaa_40x100.png")/*{bgImgUrlShadow}*/ 50%/*{bgShadowXPos}*/ 50%/*{bgShadowYPos}*/ repeat-x/*{bgShadowRepeat}*/;
|
||||
opacity: .3/*{opacityShadow}*/;
|
||||
filter: Alpha(Opacity=30)/*{opacityFilterShadow}*/; /* support: IE8 */
|
||||
border-radius: 8px/*{cornerRadiusShadow}*/;
|
||||
}
|
21
OpenAuth.Mvc/Content/themes/base/tooltip.css
Normal file
@ -0,0 +1,21 @@
|
||||
/*!
|
||||
* jQuery UI Tooltip 1.11.4
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://api.jqueryui.com/tooltip/#theming
|
||||
*/
|
||||
.ui-tooltip {
|
||||
padding: 8px;
|
||||
position: absolute;
|
||||
z-index: 9999;
|
||||
max-width: 300px;
|
||||
-webkit-box-shadow: 0 0 5px #aaa;
|
||||
box-shadow: 0 0 5px #aaa;
|
||||
}
|
||||
body .ui-tooltip {
|
||||
border-width: 2px;
|
||||
}
|
119
OpenAuth.Mvc/Content/workflowdesigner.css
Normal file
@ -0,0 +1,119 @@
|
||||
body {
|
||||
}
|
||||
|
||||
.we-input {
|
||||
width: 98%;
|
||||
|
||||
}
|
||||
|
||||
#simplemodal-overlay {background-color:#000;}
|
||||
|
||||
#simplemodal-container {background-color:white; border:4px solid #444; padding:12px;}
|
||||
#simplemodal-container .simplemodal-data {padding:8px;}
|
||||
#simplemodal-container a.modalCloseImg {background:url(../Images/x.png) no-repeat; width:25px; height:29px; display:inline; z-index:3200; position:absolute; top:-15px; right:-16px; cursor:pointer;}
|
||||
|
||||
#simplemodal-container .Commands {
|
||||
display:none
|
||||
}
|
||||
|
||||
div.mombomenu {
|
||||
width: 250px;
|
||||
border: solid 1px #000;
|
||||
height: 200px;
|
||||
overflow: auto;
|
||||
position:absolute;
|
||||
background-color: #fff;
|
||||
}
|
||||
div.mombomenu .item {
|
||||
display: block;
|
||||
text-decoration: none;
|
||||
color: #000;
|
||||
padding: 1px;
|
||||
}
|
||||
div.mombomenu .item.selected {
|
||||
color: #fff;
|
||||
background-color: #007;
|
||||
}
|
||||
div.mombomenu .item.match {
|
||||
font-weight: bold;
|
||||
}
|
||||
div.mombobutton {
|
||||
border: solid 1px #ccc;
|
||||
background-color: #eee;
|
||||
width: 16px;
|
||||
height: 17px;
|
||||
float:left;
|
||||
text-align: center;
|
||||
border-left: none
|
||||
}
|
||||
|
||||
div.base {
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
font-family: Arial;
|
||||
font-size: 8pt;
|
||||
}
|
||||
|
||||
.WorkflowDesignerdragRow{
|
||||
background-color:#FFC310;
|
||||
}
|
||||
|
||||
.WorkflowDesignerRowCopy{
|
||||
background-color:#FFFFCC;
|
||||
}
|
||||
|
||||
table.WorkflowDesignerTable {
|
||||
border-top: 1px solid #E7E7E7;
|
||||
border-left: 1px solid #E7E7E7;
|
||||
border-bottom: 1px solid #E7E7E7;
|
||||
border-spacing: 0px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
table.WorkflowDesignerTable td.ColumnChecked {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
table.WorkflowDesignerTable th{
|
||||
padding-left: 5px;
|
||||
padding-right: 5px;
|
||||
border-right: 1px solid #E7E7E7;
|
||||
}
|
||||
|
||||
table.WorkflowDesignerTable td{
|
||||
padding-left: 5px;
|
||||
padding-right: 5px;
|
||||
border-top: 1px solid #E7E7E7;
|
||||
border-right: 1px solid #E7E7E7;
|
||||
}
|
||||
|
||||
table.WorkflowDesignerTable td.columnTree{
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
table.WorkflowDesignerTable tr:hover td,
|
||||
table.WorkflowDesignerTable tr.even:hover td.active,
|
||||
table.WorkflowDesignerTable tr.odd:hover td.active {
|
||||
background: #CCCCCC;
|
||||
}
|
||||
|
||||
.span-validation-error {
|
||||
color: #FF0033;
|
||||
background:url('/images/error.png');
|
||||
width:16px;
|
||||
height:16px;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.field-validation-error {
|
||||
border-color:#FF0033;
|
||||
}
|
||||
|
||||
.ui-autocomplete {
|
||||
max-height: 400px;
|
||||
overflow-y: auto; /* prevent horizontal scrollbar */
|
||||
overflow-x: hidden; /* add padding to account for vertical scrollbar */
|
||||
z-index:9999!important;
|
||||
}
|
||||
|
||||
.ui-dialog, .ui-dialog-content { overflow: visible; }
|
91
OpenAuth.Mvc/Controllers/DesignerController.cs
Normal file
@ -0,0 +1,91 @@
|
||||
using OptimaJet.Workflow;
|
||||
using OptimaJet.Workflow.Core.Builder;
|
||||
using OptimaJet.Workflow.Core.Bus;
|
||||
using OptimaJet.Workflow.Core.Runtime;
|
||||
using OptimaJet.Workflow.Core.Parser;
|
||||
using System.Collections.Generic;
|
||||
using System;
|
||||
using System.Collections.Specialized;
|
||||
using System.Configuration;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Web.Mvc;
|
||||
using System.Xml.Linq;
|
||||
using WorkflowRuntime = OptimaJet.Workflow.Core.Runtime.WorkflowRuntime;
|
||||
|
||||
namespace WF.Sample.Controllers
|
||||
{
|
||||
public class DesignerController : Controller
|
||||
{
|
||||
public ActionResult Index(string schemeName)
|
||||
{
|
||||
return View();
|
||||
}
|
||||
|
||||
public ActionResult API()
|
||||
{
|
||||
Stream filestream = null;
|
||||
if (Request.Files.Count > 0)
|
||||
filestream = Request.Files[0].InputStream;
|
||||
|
||||
var pars = new NameValueCollection();
|
||||
pars.Add(Request.Params);
|
||||
|
||||
if(Request.HttpMethod.Equals("POST", StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
var parsKeys = pars.AllKeys;
|
||||
foreach (var key in Request.Form.AllKeys)
|
||||
{
|
||||
if (!parsKeys.Contains(key))
|
||||
{
|
||||
pars.Add(Request.Form);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var res = getRuntime.DesignerAPI(pars, filestream, true);
|
||||
if (pars["operation"].ToLower() == "downloadscheme")
|
||||
return File(Encoding.UTF8.GetBytes(res), "text/xml", "scheme.xml");
|
||||
return Content(res);
|
||||
}
|
||||
|
||||
private static volatile WorkflowRuntime _runtime;
|
||||
private static readonly object _sync = new object();
|
||||
|
||||
private WorkflowRuntime getRuntime
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_runtime == null)
|
||||
{
|
||||
lock (_sync)
|
||||
{
|
||||
if (_runtime == null)
|
||||
{
|
||||
var connectionString = ConfigurationManager.ConnectionStrings["WorkFlow"].ConnectionString;
|
||||
var builder = new WorkflowBuilder<XElement>(
|
||||
new OptimaJet.Workflow.DbPersistence.DbXmlWorkflowGenerator(connectionString),
|
||||
new OptimaJet.Workflow.Core.Parser.XmlWorkflowParser(),
|
||||
new OptimaJet.Workflow.DbPersistence.DbSchemePersistenceProvider(connectionString)
|
||||
).WithDefaultCache();
|
||||
|
||||
_runtime = new WorkflowRuntime(new Guid("{8D38DB8F-F3D5-4F26-A989-4FDD40F32D9D}"))
|
||||
.WithBuilder(builder)
|
||||
.WithPersistenceProvider(new OptimaJet.Workflow.DbPersistence.DbPersistenceProvider(connectionString))
|
||||
.WithTimerManager(new TimerManager())
|
||||
.WithBus(new NullBus())
|
||||
.SwitchAutoUpdateSchemeBeforeGetAvailableCommandsOn()
|
||||
.Start();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return _runtime;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
BIN
OpenAuth.Mvc/Images/designer.command.png
Normal file
After Width: | Height: | Size: 615 B |
BIN
OpenAuth.Mvc/Images/designer.createat.png
Normal file
After Width: | Height: | Size: 567 B |
BIN
OpenAuth.Mvc/Images/designer.createt.png
Normal file
After Width: | Height: | Size: 380 B |
BIN
OpenAuth.Mvc/Images/designer.delete.png
Normal file
After Width: | Height: | Size: 524 B |
BIN
OpenAuth.Mvc/Images/designer.tb.actor.png
Normal file
After Width: | Height: | Size: 6.0 KiB |
BIN
OpenAuth.Mvc/Images/designer.tb.add.png
Normal file
After Width: | Height: | Size: 475 B |
BIN
OpenAuth.Mvc/Images/designer.tb.additionalparameters.png
Normal file
After Width: | Height: | Size: 6.0 KiB |
BIN
OpenAuth.Mvc/Images/designer.tb.arrangment.png
Normal file
After Width: | Height: | Size: 577 B |
BIN
OpenAuth.Mvc/Images/designer.tb.codeactions.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
OpenAuth.Mvc/Images/designer.tb.command.png
Normal file
After Width: | Height: | Size: 823 B |
BIN
OpenAuth.Mvc/Images/designer.tb.copy.png
Normal file
After Width: | Height: | Size: 845 B |
BIN
OpenAuth.Mvc/Images/designer.tb.copyprops.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
OpenAuth.Mvc/Images/designer.tb.copypropsactive.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
OpenAuth.Mvc/Images/designer.tb.delete.png
Normal file
After Width: | Height: | Size: 863 B |
BIN
OpenAuth.Mvc/Images/designer.tb.locale.png
Normal file
After Width: | Height: | Size: 2.7 KiB |
BIN
OpenAuth.Mvc/Images/designer.tb.move.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
OpenAuth.Mvc/Images/designer.tb.parameter.png
Normal file
After Width: | Height: | Size: 7.1 KiB |
BIN
OpenAuth.Mvc/Images/designer.tb.redo.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
OpenAuth.Mvc/Images/designer.tb.saveasimage.png
Normal file
After Width: | Height: | Size: 647 B |
BIN
OpenAuth.Mvc/Images/designer.tb.timer.png
Normal file
After Width: | Height: | Size: 6.4 KiB |
BIN
OpenAuth.Mvc/Images/designer.tb.undo.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
OpenAuth.Mvc/Images/designer.tb.zoomIn.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
OpenAuth.Mvc/Images/designer.tb.zoomOut.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
OpenAuth.Mvc/Images/designer.tb.zoomnorm.png
Normal file
After Width: | Height: | Size: 583 B |
BIN
OpenAuth.Mvc/Images/designer.tran.aa.png
Normal file
After Width: | Height: | Size: 993 B |
BIN
OpenAuth.Mvc/Images/designer.tran.ac.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
OpenAuth.Mvc/Images/designer.tran.ao.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
OpenAuth.Mvc/Images/designer.tran.ca.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
OpenAuth.Mvc/Images/designer.tran.cc.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
OpenAuth.Mvc/Images/designer.tran.co.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
OpenAuth.Mvc/Images/error.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
OpenAuth.Mvc/Images/findHosting.png
Normal file
After Width: | Height: | Size: 4.2 KiB |
BIN
OpenAuth.Mvc/Images/grid.gif
Normal file
After Width: | Height: | Size: 58 B |
BIN
OpenAuth.Mvc/Images/heroAccent.png
Normal file
After Width: | Height: | Size: 572 B |
BIN
OpenAuth.Mvc/Images/loading.gif
Normal file
After Width: | Height: | Size: 771 B |
BIN
OpenAuth.Mvc/Images/x.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
@ -72,6 +72,14 @@
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="OptimaJet.Workflow.Core, Version=1.5.5.0, Culture=neutral, PublicKeyToken=3d29392dccd464d7, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\WorkflowEngine.NET-Core.1.5.5.2\lib\net45\OptimaJet.Workflow.Core.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="OptimaJet.Workflow.DbPersistence, Version=1.5.5.0, Culture=neutral, PublicKeyToken=3d29392dccd464d7, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\WorkflowEngine.NET-ProviderForMSSQL.1.5.5.2\lib\net45\OptimaJet.Workflow.DbPersistence.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Web.DynamicData" />
|
||||
@ -132,6 +140,7 @@
|
||||
<Compile Include="AutofacExt.cs" />
|
||||
<Compile Include="Controllers\BaseController.cs" />
|
||||
<Compile Include="Controllers\CategoryManagerController.cs" />
|
||||
<Compile Include="Controllers\DesignerController.cs" />
|
||||
<Compile Include="Controllers\ErrorController.cs" />
|
||||
<Compile Include="Controllers\HomeController.cs" />
|
||||
<Compile Include="Controllers\LoginController.cs" />
|
||||
@ -511,6 +520,8 @@
|
||||
<Content Include="Content\niceValidator\local\en.js" />
|
||||
<Content Include="Content\other\jquery.autosize.js" />
|
||||
<Content Include="Content\other\respond.js" />
|
||||
<Content Include="Content\Site.css" />
|
||||
<Content Include="Content\style.css" />
|
||||
<Content Include="Content\styles\zTreeStyle\img\diy\1_close.png" />
|
||||
<Content Include="Content\styles\zTreeStyle\img\diy\1_open.png" />
|
||||
<Content Include="Content\styles\zTreeStyle\img\diy\2.png" />
|
||||
@ -528,6 +539,59 @@
|
||||
<Content Include="Content\styles\zTreeStyle\zTreeStyle.css" />
|
||||
<Content Include="Content\swfupload\swfupload.js" />
|
||||
<Content Include="Content\swfupload\swfupload.min.js" />
|
||||
<Content Include="Content\themes\base\accordion.css" />
|
||||
<Content Include="Content\themes\base\all.css" />
|
||||
<Content Include="Content\themes\base\autocomplete.css" />
|
||||
<Content Include="Content\themes\base\base.css" />
|
||||
<Content Include="Content\themes\base\button.css" />
|
||||
<Content Include="Content\themes\base\core.css" />
|
||||
<Content Include="Content\themes\base\datepicker.css" />
|
||||
<Content Include="Content\themes\base\dialog.css" />
|
||||
<Content Include="Content\themes\base\draggable.css" />
|
||||
<Content Include="Content\themes\base\images\toggle-collapse-dark.png" />
|
||||
<Content Include="Content\themes\base\images\toggle-collapse-light.png" />
|
||||
<Content Include="Content\themes\base\images\toggle-expand-dark.png" />
|
||||
<Content Include="Content\themes\base\images\toggle-expand-light.png" />
|
||||
<Content Include="Content\themes\base\images\ui-bg_diagonals-thick_18_b81900_40x40.png" />
|
||||
<Content Include="Content\themes\base\images\ui-bg_diagonals-thick_20_666666_40x40.png" />
|
||||
<Content Include="Content\themes\base\images\ui-bg_flat_0_aaaaaa_40x100.png" />
|
||||
<Content Include="Content\themes\base\images\ui-bg_flat_10_000000_40x100.png" />
|
||||
<Content Include="Content\themes\base\images\ui-bg_flat_75_ffffff_40x100.png" />
|
||||
<Content Include="Content\themes\base\images\ui-bg_glass_100_f6f6f6_1x400.png" />
|
||||
<Content Include="Content\themes\base\images\ui-bg_glass_100_fdf5ce_1x400.png" />
|
||||
<Content Include="Content\themes\base\images\ui-bg_glass_55_fbf9ee_1x400.png" />
|
||||
<Content Include="Content\themes\base\images\ui-bg_glass_65_ffffff_1x400.png" />
|
||||
<Content Include="Content\themes\base\images\ui-bg_glass_75_dadada_1x400.png" />
|
||||
<Content Include="Content\themes\base\images\ui-bg_glass_75_e6e6e6_1x400.png" />
|
||||
<Content Include="Content\themes\base\images\ui-bg_glass_95_fef1ec_1x400.png" />
|
||||
<Content Include="Content\themes\base\images\ui-bg_gloss-wave_35_f6a828_500x100.png" />
|
||||
<Content Include="Content\themes\base\images\ui-bg_highlight-soft_100_eeeeee_1x100.png" />
|
||||
<Content Include="Content\themes\base\images\ui-bg_highlight-soft_75_cccccc_1x100.png" />
|
||||
<Content Include="Content\themes\base\images\ui-bg_highlight-soft_75_ffe45c_1x100.png" />
|
||||
<Content Include="Content\themes\base\images\ui-icons_222222_256x240.png" />
|
||||
<Content Include="Content\themes\base\images\ui-icons_228ef1_256x240.png" />
|
||||
<Content Include="Content\themes\base\images\ui-icons_2e83ff_256x240.png" />
|
||||
<Content Include="Content\themes\base\images\ui-icons_454545_256x240.png" />
|
||||
<Content Include="Content\themes\base\images\ui-icons_888888_256x240.png" />
|
||||
<Content Include="Content\themes\base\images\ui-icons_cd0a0a_256x240.png" />
|
||||
<Content Include="Content\themes\base\images\ui-icons_ef8c08_256x240.png" />
|
||||
<Content Include="Content\themes\base\images\ui-icons_ffd27a_256x240.png" />
|
||||
<Content Include="Content\themes\base\images\ui-icons_ffffff_256x240.png" />
|
||||
<Content Include="Content\themes\base\jquery-ui.min.css" />
|
||||
<Content Include="Content\themes\base\jquery-ui.structure.min.css" />
|
||||
<Content Include="Content\themes\base\jquery-ui.theme.min.css" />
|
||||
<Content Include="Content\themes\base\jquery.treeTable.css" />
|
||||
<Content Include="Content\themes\base\menu.css" />
|
||||
<Content Include="Content\themes\base\progressbar.css" />
|
||||
<Content Include="Content\themes\base\resizable.css" />
|
||||
<Content Include="Content\themes\base\selectable.css" />
|
||||
<Content Include="Content\themes\base\selectmenu.css" />
|
||||
<Content Include="Content\themes\base\slider.css" />
|
||||
<Content Include="Content\themes\base\sortable.css" />
|
||||
<Content Include="Content\themes\base\spinner.css" />
|
||||
<Content Include="Content\themes\base\tabs.css" />
|
||||
<Content Include="Content\themes\base\theme.css" />
|
||||
<Content Include="Content\themes\base\tooltip.css" />
|
||||
<Content Include="Content\uploadify\css\uploadify.css" />
|
||||
<Content Include="Content\uploadify\img\add.jpg" />
|
||||
<Content Include="Content\uploadify\img\cancel.jpg" />
|
||||
@ -537,6 +601,7 @@
|
||||
<Content Include="Content\uploadify\scripts\jquery.uploadify.js" />
|
||||
<Content Include="Content\uploadify\scripts\jquery.uploadify.min.js" />
|
||||
<Content Include="Content\uploadify\scripts\uploadify.swf" />
|
||||
<Content Include="Content\workflowdesigner.css" />
|
||||
<Content Include="Content\ztree\jquery.ztree.all-3.5.js" />
|
||||
<Content Include="Content\ztree\jquery.ztree.all-3.5.min.js" />
|
||||
<Content Include="Content\ztree\jquery.ztree.core-3.5.js" />
|
||||
@ -597,9 +662,67 @@
|
||||
<Content Include="Content\BJUI\themes\purple\topbg.png" />
|
||||
<Content Include="Content\BJUI\themes\purple\zTreeStandard.png" />
|
||||
<Content Include="favicon.ico" />
|
||||
<Content Include="fonts\glyphicons-halflings-regular.svg" />
|
||||
<Content Include="Global.asax" />
|
||||
<Content Include="Images\designer.command.png" />
|
||||
<Content Include="Images\designer.createat.png" />
|
||||
<Content Include="Images\designer.createt.png" />
|
||||
<Content Include="Images\designer.delete.png" />
|
||||
<Content Include="Images\designer.tb.actor.png" />
|
||||
<Content Include="Images\designer.tb.add.png" />
|
||||
<Content Include="Images\designer.tb.additionalparameters.png" />
|
||||
<Content Include="Images\designer.tb.arrangment.png" />
|
||||
<Content Include="Images\designer.tb.codeactions.png" />
|
||||
<Content Include="Images\designer.tb.command.png" />
|
||||
<Content Include="Images\designer.tb.copy.png" />
|
||||
<Content Include="Images\designer.tb.copyprops.png" />
|
||||
<Content Include="Images\designer.tb.copypropsactive.png" />
|
||||
<Content Include="Images\designer.tb.delete.png" />
|
||||
<Content Include="Images\designer.tb.locale.png" />
|
||||
<Content Include="Images\designer.tb.move.png" />
|
||||
<Content Include="Images\designer.tb.parameter.png" />
|
||||
<Content Include="Images\designer.tb.redo.png" />
|
||||
<Content Include="Images\designer.tb.saveasimage.png" />
|
||||
<Content Include="Images\designer.tb.timer.png" />
|
||||
<Content Include="Images\designer.tb.undo.png" />
|
||||
<Content Include="Images\designer.tb.zoomIn.png" />
|
||||
<Content Include="Images\designer.tb.zoomnorm.png" />
|
||||
<Content Include="Images\designer.tb.zoomOut.png" />
|
||||
<Content Include="Images\designer.tran.aa.png" />
|
||||
<Content Include="Images\designer.tran.ac.png" />
|
||||
<Content Include="Images\designer.tran.ao.png" />
|
||||
<Content Include="Images\designer.tran.ca.png" />
|
||||
<Content Include="Images\designer.tran.cc.png" />
|
||||
<Content Include="Images\designer.tran.co.png" />
|
||||
<Content Include="Images\error.png" />
|
||||
<Content Include="Images\findHosting.png" />
|
||||
<Content Include="Images\grid.gif" />
|
||||
<Content Include="Images\heroAccent.png" />
|
||||
<Content Include="Images\loading.gif" />
|
||||
<Content Include="Images\x.png" />
|
||||
<Content Include="Scripts\ace.js" />
|
||||
<Content Include="Scripts\ext-searchbox.js" />
|
||||
<Content Include="Scripts\jquery-ui.js" />
|
||||
<Content Include="Scripts\jquery.js" />
|
||||
<Content Include="Scripts\json5.js" />
|
||||
<Content Include="Scripts\kinetic-v5.1.0.min.js" />
|
||||
<Content Include="Scripts\mode-csharp.js" />
|
||||
<Content Include="Scripts\mode-json.js" />
|
||||
<Content Include="Scripts\theme-monokai.js" />
|
||||
<Content Include="Scripts\workflowdesigner.min.js" />
|
||||
<Content Include="SQL\CreatePersistenceObjects.sql" />
|
||||
<Content Include="SQL\CreatePersistenceObjectsForAzureSQL.sql" />
|
||||
<Content Include="SQL\DropPersistenceObjects.sql" />
|
||||
<Content Include="SQL\update_1_3_to_1_4.sql" />
|
||||
<Content Include="SQL\update_1_4_5_to_1_5.sql" />
|
||||
<Content Include="SQL\update_1_4_to_1_4_3.sql" />
|
||||
<Content Include="SQL\update_1_4_to_1_4_4.sql" />
|
||||
<Content Include="Views\CategoryManager\Index.cshtml" />
|
||||
<Content Include="fonts\glyphicons-halflings-regular.eot" />
|
||||
<Content Include="fonts\glyphicons-halflings-regular.ttf" />
|
||||
<Content Include="fonts\glyphicons-halflings-regular.woff" />
|
||||
<None Include="Properties\PublishProfiles\default.pubxml" />
|
||||
<Content Include="Views\Designer\Index.cshtml" />
|
||||
<None Include="Views\Error\NoAccess.cshtml" />
|
||||
<Content Include="Views\Home\git.cshtml" />
|
||||
<Content Include="Web.config">
|
||||
|
11
OpenAuth.Mvc/Scripts/ace.js
Normal file
5
OpenAuth.Mvc/Scripts/ext-searchbox.js
Normal file
16617
OpenAuth.Mvc/Scripts/jquery-ui.js
vendored
Normal file
4
OpenAuth.Mvc/Scripts/jquery.js
vendored
Normal file
767
OpenAuth.Mvc/Scripts/json5.js
Normal file
@ -0,0 +1,767 @@
|
||||
// json5.js
|
||||
// Modern JSON. See README.md for details.
|
||||
//
|
||||
// This file is based directly off of Douglas Crockford's json_parse.js:
|
||||
// https://github.com/douglascrockford/JSON-js/blob/master/json_parse.js
|
||||
|
||||
var JSON5 = (typeof exports === 'object' ? exports : {});
|
||||
|
||||
JSON5.parse = (function () {
|
||||
"use strict";
|
||||
|
||||
// This is a function that can parse a JSON5 text, producing a JavaScript
|
||||
// data structure. It is a simple, recursive descent parser. It does not use
|
||||
// eval or regular expressions, so it can be used as a model for implementing
|
||||
// a JSON5 parser in other languages.
|
||||
|
||||
// We are defining the function inside of another function to avoid creating
|
||||
// global variables.
|
||||
|
||||
var at, // The index of the current character
|
||||
lineNumber, // The current line number
|
||||
columnNumber, // The current column number
|
||||
ch, // The current character
|
||||
escapee = {
|
||||
"'": "'",
|
||||
'"': '"',
|
||||
'\\': '\\',
|
||||
'/': '/',
|
||||
'\n': '', // Replace escaped newlines in strings w/ empty string
|
||||
b: '\b',
|
||||
f: '\f',
|
||||
n: '\n',
|
||||
r: '\r',
|
||||
t: '\t'
|
||||
},
|
||||
ws = [
|
||||
' ',
|
||||
'\t',
|
||||
'\r',
|
||||
'\n',
|
||||
'\v',
|
||||
'\f',
|
||||
'\xA0',
|
||||
'\uFEFF'
|
||||
],
|
||||
text,
|
||||
|
||||
renderChar = function (chr) {
|
||||
return chr === '' ? 'EOF' : "'" + chr + "'";
|
||||
},
|
||||
|
||||
error = function (m) {
|
||||
|
||||
// Call error when something is wrong.
|
||||
|
||||
var error = new SyntaxError();
|
||||
// beginning of message suffix to agree with that provided by Gecko - see https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse
|
||||
error.message = m + " at line " + lineNumber + " column " + columnNumber + " of the JSON5 data. Still to read: " + JSON.stringify(text.substring(at - 1, at + 19));
|
||||
error.at = at;
|
||||
// These two property names have been chosen to agree with the ones in Gecko, the only popular
|
||||
// environment which seems to supply this info on JSON.parse
|
||||
error.lineNumber = lineNumber;
|
||||
error.columnNumber = columnNumber;
|
||||
throw error;
|
||||
},
|
||||
|
||||
next = function (c) {
|
||||
|
||||
// If a c parameter is provided, verify that it matches the current character.
|
||||
|
||||
if (c && c !== ch) {
|
||||
error("Expected " + renderChar(c) + " instead of " + renderChar(ch));
|
||||
}
|
||||
|
||||
// Get the next character. When there are no more characters,
|
||||
// return the empty string.
|
||||
|
||||
ch = text.charAt(at);
|
||||
at++;
|
||||
columnNumber++;
|
||||
if (ch === '\n' || ch === '\r' && peek() !== '\n') {
|
||||
lineNumber++;
|
||||
columnNumber = 0;
|
||||
}
|
||||
return ch;
|
||||
},
|
||||
|
||||
peek = function () {
|
||||
|
||||
// Get the next character without consuming it or
|
||||
// assigning it to the ch varaible.
|
||||
|
||||
return text.charAt(at);
|
||||
},
|
||||
|
||||
identifier = function () {
|
||||
|
||||
// Parse an identifier. Normally, reserved words are disallowed here, but we
|
||||
// only use this for unquoted object keys, where reserved words are allowed,
|
||||
// so we don't check for those here. References:
|
||||
// - http://es5.github.com/#x7.6
|
||||
// - https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/Core_Language_Features#Variables
|
||||
// - http://docstore.mik.ua/orelly/webprog/jscript/ch02_07.htm
|
||||
// TODO Identifiers can have Unicode "letters" in them; add support for those.
|
||||
|
||||
var key = ch;
|
||||
|
||||
// Identifiers must start with a letter, _ or $.
|
||||
if ((ch !== '_' && ch !== '$') &&
|
||||
(ch < 'a' || ch > 'z') &&
|
||||
(ch < 'A' || ch > 'Z')) {
|
||||
error("Bad identifier as unquoted key");
|
||||
}
|
||||
|
||||
// Subsequent characters can contain digits.
|
||||
while (next() && (
|
||||
ch === '_' || ch === '$' ||
|
||||
(ch >= 'a' && ch <= 'z') ||
|
||||
(ch >= 'A' && ch <= 'Z') ||
|
||||
(ch >= '0' && ch <= '9'))) {
|
||||
key += ch;
|
||||
}
|
||||
|
||||
return key;
|
||||
},
|
||||
|
||||
number = function () {
|
||||
|
||||
// Parse a number value.
|
||||
|
||||
var number,
|
||||
sign = '',
|
||||
string = '',
|
||||
base = 10;
|
||||
|
||||
if (ch === '-' || ch === '+') {
|
||||
sign = ch;
|
||||
next(ch);
|
||||
}
|
||||
|
||||
// support for Infinity (could tweak to allow other words):
|
||||
if (ch === 'I') {
|
||||
number = word();
|
||||
if (typeof number !== 'number' || isNaN(number)) {
|
||||
error('Unexpected word for number');
|
||||
}
|
||||
return (sign === '-') ? -number : number;
|
||||
}
|
||||
|
||||
// support for NaN
|
||||
if (ch === 'N' ) {
|
||||
number = word();
|
||||
if (!isNaN(number)) {
|
||||
error('expected word to be NaN');
|
||||
}
|
||||
// ignore sign as -NaN also is NaN
|
||||
return number;
|
||||
}
|
||||
|
||||
if (ch === '0') {
|
||||
string += ch;
|
||||
next();
|
||||
if (ch === 'x' || ch === 'X') {
|
||||
string += ch;
|
||||
next();
|
||||
base = 16;
|
||||
} else if (ch >= '0' && ch <= '9') {
|
||||
error('Octal literal');
|
||||
}
|
||||
}
|
||||
|
||||
switch (base) {
|
||||
case 10:
|
||||
while (ch >= '0' && ch <= '9' ) {
|
||||
string += ch;
|
||||
next();
|
||||
}
|
||||
if (ch === '.') {
|
||||
string += '.';
|
||||
while (next() && ch >= '0' && ch <= '9') {
|
||||
string += ch;
|
||||
}
|
||||
}
|
||||
if (ch === 'e' || ch === 'E') {
|
||||
string += ch;
|
||||
next();
|
||||
if (ch === '-' || ch === '+') {
|
||||
string += ch;
|
||||
next();
|
||||
}
|
||||
while (ch >= '0' && ch <= '9') {
|
||||
string += ch;
|
||||
next();
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 16:
|
||||
while (ch >= '0' && ch <= '9' || ch >= 'A' && ch <= 'F' || ch >= 'a' && ch <= 'f') {
|
||||
string += ch;
|
||||
next();
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if(sign === '-') {
|
||||
number = -string;
|
||||
} else {
|
||||
number = +string;
|
||||
}
|
||||
|
||||
if (!isFinite(number)) {
|
||||
error("Bad number");
|
||||
} else {
|
||||
return number;
|
||||
}
|
||||
},
|
||||
|
||||
string = function () {
|
||||
|
||||
// Parse a string value.
|
||||
|
||||
var hex,
|
||||
i,
|
||||
string = '',
|
||||
delim, // double quote or single quote
|
||||
uffff;
|
||||
|
||||
// When parsing for string values, we must look for ' or " and \ characters.
|
||||
|
||||
if (ch === '"' || ch === "'") {
|
||||
delim = ch;
|
||||
while (next()) {
|
||||
if (ch === delim) {
|
||||
next();
|
||||
return string;
|
||||
} else if (ch === '\\') {
|
||||
next();
|
||||
if (ch === 'u') {
|
||||
uffff = 0;
|
||||
for (i = 0; i < 4; i += 1) {
|
||||
hex = parseInt(next(), 16);
|
||||
if (!isFinite(hex)) {
|
||||
break;
|
||||
}
|
||||
uffff = uffff * 16 + hex;
|
||||
}
|
||||
string += String.fromCharCode(uffff);
|
||||
} else if (ch === '\r') {
|
||||
if (peek() === '\n') {
|
||||
next();
|
||||
}
|
||||
} else if (typeof escapee[ch] === 'string') {
|
||||
string += escapee[ch];
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
} else if (ch === '\n') {
|
||||
// unescaped newlines are invalid; see:
|
||||
// https://github.com/aseemk/json5/issues/24
|
||||
// TODO this feels special-cased; are there other
|
||||
// invalid unescaped chars?
|
||||
break;
|
||||
} else {
|
||||
string += ch;
|
||||
}
|
||||
}
|
||||
}
|
||||
error("Bad string");
|
||||
},
|
||||
|
||||
inlineComment = function () {
|
||||
|
||||
// Skip an inline comment, assuming this is one. The current character should
|
||||
// be the second / character in the // pair that begins this inline comment.
|
||||
// To finish the inline comment, we look for a newline or the end of the text.
|
||||
|
||||
if (ch !== '/') {
|
||||
error("Not an inline comment");
|
||||
}
|
||||
|
||||
do {
|
||||
next();
|
||||
if (ch === '\n' || ch === '\r') {
|
||||
next();
|
||||
return;
|
||||
}
|
||||
} while (ch);
|
||||
},
|
||||
|
||||
blockComment = function () {
|
||||
|
||||
// Skip a block comment, assuming this is one. The current character should be
|
||||
// the * character in the /* pair that begins this block comment.
|
||||
// To finish the block comment, we look for an ending */ pair of characters,
|
||||
// but we also watch for the end of text before the comment is terminated.
|
||||
|
||||
if (ch !== '*') {
|
||||
error("Not a block comment");
|
||||
}
|
||||
|
||||
do {
|
||||
next();
|
||||
while (ch === '*') {
|
||||
next('*');
|
||||
if (ch === '/') {
|
||||
next('/');
|
||||
return;
|
||||
}
|
||||
}
|
||||
} while (ch);
|
||||
|
||||
error("Unterminated block comment");
|
||||
},
|
||||
|
||||
comment = function () {
|
||||
|
||||
// Skip a comment, whether inline or block-level, assuming this is one.
|
||||
// Comments always begin with a / character.
|
||||
|
||||
if (ch !== '/') {
|
||||
error("Not a comment");
|
||||
}
|
||||
|
||||
next('/');
|
||||
|
||||
if (ch === '/') {
|
||||
inlineComment();
|
||||
} else if (ch === '*') {
|
||||
blockComment();
|
||||
} else {
|
||||
error("Unrecognized comment");
|
||||
}
|
||||
},
|
||||
|
||||
white = function () {
|
||||
|
||||
// Skip whitespace and comments.
|
||||
// Note that we're detecting comments by only a single / character.
|
||||
// This works since regular expressions are not valid JSON(5), but this will
|
||||
// break if there are other valid values that begin with a / character!
|
||||
|
||||
while (ch) {
|
||||
if (ch === '/') {
|
||||
comment();
|
||||
} else if (ws.indexOf(ch) >= 0) {
|
||||
next();
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
word = function () {
|
||||
|
||||
// true, false, or null.
|
||||
|
||||
switch (ch) {
|
||||
case 't':
|
||||
next('t');
|
||||
next('r');
|
||||
next('u');
|
||||
next('e');
|
||||
return true;
|
||||
case 'f':
|
||||
next('f');
|
||||
next('a');
|
||||
next('l');
|
||||
next('s');
|
||||
next('e');
|
||||
return false;
|
||||
case 'n':
|
||||
next('n');
|
||||
next('u');
|
||||
next('l');
|
||||
next('l');
|
||||
return null;
|
||||
case 'I':
|
||||
next('I');
|
||||
next('n');
|
||||
next('f');
|
||||
next('i');
|
||||
next('n');
|
||||
next('i');
|
||||
next('t');
|
||||
next('y');
|
||||
return Infinity;
|
||||
case 'N':
|
||||
next( 'N' );
|
||||
next( 'a' );
|
||||
next( 'N' );
|
||||
return NaN;
|
||||
}
|
||||
error("Unexpected " + renderChar(ch));
|
||||
},
|
||||
|
||||
value, // Place holder for the value function.
|
||||
|
||||
array = function () {
|
||||
|
||||
// Parse an array value.
|
||||
|
||||
var array = [];
|
||||
|
||||
if (ch === '[') {
|
||||
next('[');
|
||||
white();
|
||||
while (ch) {
|
||||
if (ch === ']') {
|
||||
next(']');
|
||||
return array; // Potentially empty array
|
||||
}
|
||||
// ES5 allows omitting elements in arrays, e.g. [,] and
|
||||
// [,null]. We don't allow this in JSON5.
|
||||
if (ch === ',') {
|
||||
error("Missing array element");
|
||||
} else {
|
||||
array.push(value());
|
||||
}
|
||||
white();
|
||||
// If there's no comma after this value, this needs to
|
||||
// be the end of the array.
|
||||
if (ch !== ',') {
|
||||
next(']');
|
||||
return array;
|
||||
}
|
||||
next(',');
|
||||
white();
|
||||
}
|
||||
}
|
||||
error("Bad array");
|
||||
},
|
||||
|
||||
object = function () {
|
||||
|
||||
// Parse an object value.
|
||||
|
||||
var key,
|
||||
object = {};
|
||||
|
||||
if (ch === '{') {
|
||||
next('{');
|
||||
white();
|
||||
while (ch) {
|
||||
if (ch === '}') {
|
||||
next('}');
|
||||
return object; // Potentially empty object
|
||||
}
|
||||
|
||||
// Keys can be unquoted. If they are, they need to be
|
||||
// valid JS identifiers.
|
||||
if (ch === '"' || ch === "'") {
|
||||
key = string();
|
||||
} else {
|
||||
key = identifier();
|
||||
}
|
||||
|
||||
white();
|
||||
next(':');
|
||||
object[key] = value();
|
||||
white();
|
||||
// If there's no comma after this pair, this needs to be
|
||||
// the end of the object.
|
||||
if (ch !== ',') {
|
||||
next('}');
|
||||
return object;
|
||||
}
|
||||
next(',');
|
||||
white();
|
||||
}
|
||||
}
|
||||
error("Bad object");
|
||||
};
|
||||
|
||||
value = function () {
|
||||
|
||||
// Parse a JSON value. It could be an object, an array, a string, a number,
|
||||
// or a word.
|
||||
|
||||
white();
|
||||
switch (ch) {
|
||||
case '{':
|
||||
return object();
|
||||
case '[':
|
||||
return array();
|
||||
case '"':
|
||||
case "'":
|
||||
return string();
|
||||
case '-':
|
||||
case '+':
|
||||
case '.':
|
||||
return number();
|
||||
default:
|
||||
return ch >= '0' && ch <= '9' ? number() : word();
|
||||
}
|
||||
};
|
||||
|
||||
// Return the json_parse function. It will have access to all of the above
|
||||
// functions and variables.
|
||||
|
||||
return function (source, reviver) {
|
||||
var result;
|
||||
|
||||
text = String(source);
|
||||
at = 0;
|
||||
lineNumber = 1;
|
||||
columnNumber = 1;
|
||||
ch = ' ';
|
||||
result = value();
|
||||
white();
|
||||
if (ch) {
|
||||
error("Syntax error");
|
||||
}
|
||||
|
||||
// If there is a reviver function, we recursively walk the new structure,
|
||||
// passing each name/value pair to the reviver function for possible
|
||||
// transformation, starting with a temporary root object that holds the result
|
||||
// in an empty key. If there is not a reviver function, we simply return the
|
||||
// result.
|
||||
|
||||
return typeof reviver === 'function' ? (function walk(holder, key) {
|
||||
var k, v, value = holder[key];
|
||||
if (value && typeof value === 'object') {
|
||||
for (k in value) {
|
||||
if (Object.prototype.hasOwnProperty.call(value, k)) {
|
||||
v = walk(value, k);
|
||||
if (v !== undefined) {
|
||||
value[k] = v;
|
||||
} else {
|
||||
delete value[k];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return reviver.call(holder, key, value);
|
||||
}({'': result}, '')) : result;
|
||||
};
|
||||
}());
|
||||
|
||||
// JSON5 stringify will not quote keys where appropriate
|
||||
JSON5.stringify = function (obj, replacer, space) {
|
||||
if (replacer && (typeof(replacer) !== "function" && !isArray(replacer))) {
|
||||
throw new Error('Replacer must be a function or an array');
|
||||
}
|
||||
var getReplacedValueOrUndefined = function(holder, key, isTopLevel) {
|
||||
var value = holder[key];
|
||||
|
||||
// Replace the value with its toJSON value first, if possible
|
||||
if (value && value.toJSON && typeof value.toJSON === "function") {
|
||||
value = value.toJSON();
|
||||
}
|
||||
|
||||
// If the user-supplied replacer if a function, call it. If it's an array, check objects' string keys for
|
||||
// presence in the array (removing the key/value pair from the resulting JSON if the key is missing).
|
||||
if (typeof(replacer) === "function") {
|
||||
return replacer.call(holder, key, value);
|
||||
} else if(replacer) {
|
||||
if (isTopLevel || isArray(holder) || replacer.indexOf(key) >= 0) {
|
||||
return value;
|
||||
} else {
|
||||
return undefined;
|
||||
}
|
||||
} else {
|
||||
return value;
|
||||
}
|
||||
};
|
||||
|
||||
function isWordChar(c) {
|
||||
return (c >= 'a' && c <= 'z') ||
|
||||
(c >= 'A' && c <= 'Z') ||
|
||||
(c >= '0' && c <= '9') ||
|
||||
c === '_' || c === '$';
|
||||
}
|
||||
|
||||
function isWordStart(c) {
|
||||
return (c >= 'a' && c <= 'z') ||
|
||||
(c >= 'A' && c <= 'Z') ||
|
||||
c === '_' || c === '$';
|
||||
}
|
||||
|
||||
function isWord(key) {
|
||||
if (typeof key !== 'string') {
|
||||
return false;
|
||||
}
|
||||
if (!isWordStart(key[0])) {
|
||||
return false;
|
||||
}
|
||||
var i = 1, length = key.length;
|
||||
while (i < length) {
|
||||
if (!isWordChar(key[i])) {
|
||||
return false;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// export for use in tests
|
||||
JSON5.isWord = isWord;
|
||||
|
||||
// polyfills
|
||||
function isArray(obj) {
|
||||
if (Array.isArray) {
|
||||
return Array.isArray(obj);
|
||||
} else {
|
||||
return Object.prototype.toString.call(obj) === '[object Array]';
|
||||
}
|
||||
}
|
||||
|
||||
function isDate(obj) {
|
||||
return Object.prototype.toString.call(obj) === '[object Date]';
|
||||
}
|
||||
|
||||
var objStack = [];
|
||||
function checkForCircular(obj) {
|
||||
for (var i = 0; i < objStack.length; i++) {
|
||||
if (objStack[i] === obj) {
|
||||
throw new TypeError("Converting circular structure to JSON");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function makeIndent(str, num, noNewLine) {
|
||||
if (!str) {
|
||||
return "";
|
||||
}
|
||||
// indentation no more than 10 chars
|
||||
if (str.length > 10) {
|
||||
str = str.substring(0, 10);
|
||||
}
|
||||
|
||||
var indent = noNewLine ? "" : "\n";
|
||||
for (var i = 0; i < num; i++) {
|
||||
indent += str;
|
||||
}
|
||||
|
||||
return indent;
|
||||
}
|
||||
|
||||
var indentStr;
|
||||
if (space) {
|
||||
if (typeof space === "string") {
|
||||
indentStr = space;
|
||||
} else if (typeof space === "number" && space >= 0) {
|
||||
indentStr = makeIndent(" ", space, true);
|
||||
} else {
|
||||
// ignore space parameter
|
||||
}
|
||||
}
|
||||
|
||||
// Copied from Crokford's implementation of JSON
|
||||
// See https://github.com/douglascrockford/JSON-js/blob/e39db4b7e6249f04a195e7dd0840e610cc9e941e/json2.js#L195
|
||||
// Begin
|
||||
var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
|
||||
escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
|
||||
meta = { // table of character substitutions
|
||||
'\b': '\\b',
|
||||
'\t': '\\t',
|
||||
'\n': '\\n',
|
||||
'\f': '\\f',
|
||||
'\r': '\\r',
|
||||
'"' : '\\"',
|
||||
'\\': '\\\\'
|
||||
};
|
||||
function escapeString(string) {
|
||||
|
||||
// If the string contains no control characters, no quote characters, and no
|
||||
// backslash characters, then we can safely slap some quotes around it.
|
||||
// Otherwise we must also replace the offending characters with safe escape
|
||||
// sequences.
|
||||
escapable.lastIndex = 0;
|
||||
return escapable.test(string) ? '"' + string.replace(escapable, function (a) {
|
||||
var c = meta[a];
|
||||
return typeof c === 'string' ?
|
||||
c :
|
||||
'\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
|
||||
}) + '"' : '"' + string + '"';
|
||||
}
|
||||
// End
|
||||
|
||||
function internalStringify(holder, key, isTopLevel) {
|
||||
var buffer, res;
|
||||
|
||||
// Replace the value, if necessary
|
||||
var obj_part = getReplacedValueOrUndefined(holder, key, isTopLevel);
|
||||
|
||||
if (obj_part && !isDate(obj_part)) {
|
||||
// unbox objects
|
||||
// don't unbox dates, since will turn it into number
|
||||
obj_part = obj_part.valueOf();
|
||||
}
|
||||
switch(typeof obj_part) {
|
||||
case "boolean":
|
||||
return obj_part.toString();
|
||||
|
||||
case "number":
|
||||
if (isNaN(obj_part) || !isFinite(obj_part)) {
|
||||
return "null";
|
||||
}
|
||||
return obj_part.toString();
|
||||
|
||||
case "string":
|
||||
return escapeString(obj_part.toString());
|
||||
|
||||
case "object":
|
||||
if (obj_part === null) {
|
||||
return "null";
|
||||
} else if (isArray(obj_part)) {
|
||||
checkForCircular(obj_part);
|
||||
buffer = "[";
|
||||
objStack.push(obj_part);
|
||||
|
||||
for (var i = 0; i < obj_part.length; i++) {
|
||||
res = internalStringify(obj_part, i, false);
|
||||
buffer += makeIndent(indentStr, objStack.length);
|
||||
if (res === null || typeof res === "undefined") {
|
||||
buffer += "null";
|
||||
} else {
|
||||
buffer += res;
|
||||
}
|
||||
if (i < obj_part.length-1) {
|
||||
buffer += ",";
|
||||
} else if (indentStr) {
|
||||
buffer += "\n";
|
||||
}
|
||||
}
|
||||
objStack.pop();
|
||||
buffer += makeIndent(indentStr, objStack.length, true) + "]";
|
||||
} else {
|
||||
checkForCircular(obj_part);
|
||||
buffer = "{";
|
||||
var nonEmpty = false;
|
||||
objStack.push(obj_part);
|
||||
for (var prop in obj_part) {
|
||||
if (obj_part.hasOwnProperty(prop)) {
|
||||
var value = internalStringify(obj_part, prop, false);
|
||||
isTopLevel = false;
|
||||
if (typeof value !== "undefined" && value !== null) {
|
||||
buffer += makeIndent(indentStr, objStack.length);
|
||||
nonEmpty = true;
|
||||
key = isWord(prop) ? prop : escapeString(prop);
|
||||
buffer += key + ":" + (indentStr ? ' ' : '') + value + ",";
|
||||
}
|
||||
}
|
||||
}
|
||||
objStack.pop();
|
||||
if (nonEmpty) {
|
||||
buffer = buffer.substring(0, buffer.length-1) + makeIndent(indentStr, objStack.length) + "}";
|
||||
} else {
|
||||
buffer = '{}';
|
||||
}
|
||||
}
|
||||
return buffer;
|
||||
default:
|
||||
// functions and undefined should be ignored
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
|
||||
// special case...when undefined is used inside of
|
||||
// a compound object/array, return null.
|
||||
// but when top-level, return undefined
|
||||
var topLevelHolder = {"":obj};
|
||||
if (obj === undefined) {
|
||||
return getReplacedValueOrUndefined(topLevelHolder, '', true);
|
||||
}
|
||||
return internalStringify(topLevelHolder, '', true);
|
||||
};
|