[IMP]Implemet captch on apply job form.
bzr revid: bth@tinyerp.com-20130801125857-lb5qso72vb5wahf8
This commit is contained in:
parent
f550dbaeaa
commit
efae961fb8
|
@ -12,6 +12,12 @@ OpenERP Contact Form
|
|||
'data': [
|
||||
'views/website_hr_recruitment.xml'
|
||||
],
|
||||
'js':[
|
||||
'static/src/js/*.js',
|
||||
],
|
||||
'css':[
|
||||
'static/src/css/*.css'
|
||||
],
|
||||
'installable': True,
|
||||
'auto_install': False,
|
||||
}
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
|
@ -1,433 +0,0 @@
|
|||
section {
|
||||
margin-top: 60px;
|
||||
padding-top: 100px;
|
||||
}
|
||||
|
||||
/* index */
|
||||
|
||||
.tooltip-inner {
|
||||
max-width: 500px;
|
||||
}
|
||||
|
||||
.hero-unit {
|
||||
padding-bottom: 5px;
|
||||
background-color: #F3F3F3;
|
||||
border: 1px solid #ddd;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.hero-unit h1,
|
||||
.hero-unit p {
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
#social {
|
||||
display: inline-block;
|
||||
margin-top: 45px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#gh-star {
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.twitter-share-button {
|
||||
margin-right: 15px;
|
||||
}
|
||||
|
||||
.rss-button {
|
||||
width: 40px;
|
||||
height: 14px;
|
||||
font-size: 11px;
|
||||
line-height: 14px;
|
||||
font-weight: bold;
|
||||
margin: 0 0 10px;
|
||||
padding: 2px 5px 2px 4px;
|
||||
}
|
||||
|
||||
.index h3 {
|
||||
text-align: center;
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
#ticker {
|
||||
margin-top: 40px;
|
||||
margin-bottom: 10px;
|
||||
font-size: 14px;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.about {
|
||||
margin-top: 40px;
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
|
||||
.about > div {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.about h3 {
|
||||
margin: 0;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.about i {
|
||||
margin-right: 8px;
|
||||
font-size: 1.3em;
|
||||
}
|
||||
|
||||
#gallery {
|
||||
padding-top: 60px;
|
||||
}
|
||||
|
||||
.thumbnail {
|
||||
margin-bottom: 20px;
|
||||
background-color: #f3f3f3;
|
||||
background-color: rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
|
||||
.thumbnail img {
|
||||
width: 100%;
|
||||
-webkit-border-radius: 7px;
|
||||
-moz-border-radius: 7px;
|
||||
border-radius: 7px;
|
||||
}
|
||||
|
||||
.thumbnail .caption {
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
.thumbnail .caption p {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.thumbnail h3 {
|
||||
text-align: left;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.thumbnail .btn-toolbar {
|
||||
margin-top: 15px;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.more {
|
||||
margin-top: 40px;
|
||||
margin-bottom: 20px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.links {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.links > a {
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.bsa {
|
||||
float: right;
|
||||
max-width: 400px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
body .one .bsa_it_ad {
|
||||
margin-bottom: -10px;
|
||||
padding: 25px;
|
||||
background: none;
|
||||
border: none;
|
||||
font-family: inherit;
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
body .one .bsa_it_ad .bsa_it_t,
|
||||
body .one .bsa_it_ad .bsa_it_d {
|
||||
color: inherit;
|
||||
font-size: inherit;
|
||||
}
|
||||
|
||||
body .one .bsa_it_p {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.bsap img {
|
||||
-webkit-border-radius: 0;
|
||||
-moz-border-radius: 0;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
#footer {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
#footer .links a {
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
@media (max-width: 480px) {
|
||||
|
||||
.hero-unit {
|
||||
padding: 20px 20px 0;
|
||||
margin: 0 0 20px;
|
||||
}
|
||||
|
||||
.hero-unit h1 {
|
||||
font-size: 36px;
|
||||
}
|
||||
|
||||
.hero-unit iframe {
|
||||
margin-right: 0 !important;
|
||||
}
|
||||
|
||||
#social {
|
||||
margin-top: 0px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
#social > span {
|
||||
display: block;
|
||||
}
|
||||
|
||||
#ticker {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.about {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.about h3 {
|
||||
margin-top: 30px;
|
||||
}
|
||||
|
||||
.about p {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.thumbnail .btn {
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
.modal {
|
||||
position: fixed !important;
|
||||
top: 25% !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 481px) and (max-width: 767px) {
|
||||
|
||||
.hero-unit {
|
||||
margin-top: 0;
|
||||
padding: 30px;
|
||||
}
|
||||
|
||||
.about {
|
||||
margin-top: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 767px) {
|
||||
|
||||
|
||||
section {
|
||||
padding-top: 20px;
|
||||
}
|
||||
|
||||
.bsa {
|
||||
float: none;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 979px) and (min-width: 768px) {
|
||||
|
||||
.index .navbar {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.hero-unit {
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
section {
|
||||
padding-top: 20px;
|
||||
}
|
||||
|
||||
.thumbnail .btn {
|
||||
padding: 6px 10px;
|
||||
font-size: 14px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 980px) {
|
||||
|
||||
.index {
|
||||
padding-top: 40px;
|
||||
}
|
||||
|
||||
.preview {
|
||||
padding-top: 100px;
|
||||
}
|
||||
}
|
||||
|
||||
/* preview */
|
||||
|
||||
.subhead {
|
||||
padding-bottom: 0;
|
||||
margin-bottom: 9px;
|
||||
}
|
||||
|
||||
.subhead h1 {
|
||||
font-size: 54px;
|
||||
}
|
||||
|
||||
.subhead > div:first-child {
|
||||
min-height: 200px;
|
||||
}
|
||||
|
||||
/* subnav */
|
||||
|
||||
.subnav {
|
||||
margin-bottom: 60px;
|
||||
width: 100%;
|
||||
height: 36px;
|
||||
background-color: #eeeeee; /* Old browsers */
|
||||
background-repeat: repeat-x; /* Repeat the gradient */
|
||||
background-image: -moz-linear-gradient(top, #f5f5f5 0%, #eeeeee 100%); /* FF3.6+ */
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f5f5f5), color-stop(100%,#eeeeee)); /* Chrome,Safari4+ */
|
||||
background-image: -webkit-linear-gradient(top, #f5f5f5 0%,#eeeeee 100%); /* Chrome 10+,Safari 5.1+ */
|
||||
background-image: -ms-linear-gradient(top, #f5f5f5 0%,#eeeeee 100%); /* IE10+ */
|
||||
background-image: -o-linear-gradient(top, #f5f5f5 0%,#eeeeee 100%); /* Opera 11.10+ */
|
||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f5f5f5', endColorstr='#eeeeee',GradientType=0 ); /* IE6-9 */
|
||||
background-image: linear-gradient(top, #f5f5f5 0%,#eeeeee 100%); /* W3C */
|
||||
border: 1px solid #e5e5e5;
|
||||
-webkit-border-radius: 4px;
|
||||
-moz-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.subnav .nav {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.subnav .nav > li > a {
|
||||
margin: 0;
|
||||
padding-top: 11px;
|
||||
padding-bottom: 11px;
|
||||
border-left: 1px solid #f5f5f5;
|
||||
border-right: 1px solid #e5e5e5;
|
||||
-webkit-border-radius: 0;
|
||||
-moz-border-radius: 0;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
.subnav .nav > .active > a,
|
||||
.subnav .nav > .active > a:hover {
|
||||
padding-left: 13px;
|
||||
color: #777;
|
||||
background-color: #e9e9e9;
|
||||
border-right-color: #ddd;
|
||||
border-left: 0;
|
||||
-webkit-box-shadow: inset 0 3px 5px rgba(0,0,0,.05);
|
||||
-moz-box-shadow: inset 0 3px 5px rgba(0,0,0,.05);
|
||||
box-shadow: inset 0 3px 5px rgba(0,0,0,.05);
|
||||
}
|
||||
|
||||
.subnav .nav > .active > a .caret,
|
||||
.subnav .nav > .active > a:hover .caret {
|
||||
border-top-color: #777;
|
||||
}
|
||||
|
||||
.subnav .nav > li:first-child > a,
|
||||
.subnav .nav > li:first-child > a:hover {
|
||||
border-left: 0;
|
||||
padding-left: 12px;
|
||||
-webkit-border-radius: 4px 0 0 4px;
|
||||
-moz-border-radius: 4px 0 0 4px;
|
||||
border-radius: 4px 0 0 4px;
|
||||
}
|
||||
|
||||
.subnav .nav > li:last-child > a {
|
||||
border-right: 0;
|
||||
}
|
||||
|
||||
.subnav .dropdown-menu {
|
||||
-webkit-border-radius: 0 0 4px 4px;
|
||||
-moz-border-radius: 0 0 4px 4px;
|
||||
border-radius: 0 0 4px 4px;
|
||||
}
|
||||
|
||||
@media (max-width: 767px) {
|
||||
|
||||
.subnav {
|
||||
position: static;
|
||||
top: auto;
|
||||
z-index: auto;
|
||||
width: auto;
|
||||
height: auto;
|
||||
background: #fff; /* whole background property since we use a background-image for gradient */
|
||||
-webkit-box-shadow: none;
|
||||
-moz-box-shadow: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.subnav .nav > li {
|
||||
float: none;
|
||||
}
|
||||
|
||||
.subnav .nav > li > a {
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.subnav .nav > li + li > a {
|
||||
border-top: 1px solid #e5e5e5;
|
||||
}
|
||||
|
||||
.subnav .nav > li:first-child > a,
|
||||
.subnav .nav > li:first-child > a:hover {
|
||||
-webkit-border-radius: 4px 4px 0 0;
|
||||
-moz-border-radius: 4px 4px 0 0;
|
||||
border-radius: 4px 4px 0 0;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 980px) {
|
||||
|
||||
.subnav-fixed {
|
||||
position: fixed;
|
||||
top: 40px;
|
||||
left: 0;
|
||||
right: 0;
|
||||
z-index: 1020; /* 10 less than .navbar-fixed to prevent any overlap */
|
||||
border-color: #d5d5d5;
|
||||
border-width: 0 0 1px; /* drop the border on the fixed edges */
|
||||
-webkit-border-radius: 0;
|
||||
-moz-border-radius: 0;
|
||||
border-radius: 0;
|
||||
-webkit-box-shadow: inset 0 1px 0 #fff, 0 1px 5px rgba(0,0,0,.1);
|
||||
-moz-box-shadow: inset 0 1px 0 #fff, 0 1px 5px rgba(0,0,0,.1);
|
||||
box-shadow: inset 0 1px 0 #fff, 0 1px 5px rgba(0,0,0,.1);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); /* IE6-9 */
|
||||
}
|
||||
|
||||
.subnav-fixed .nav {
|
||||
width: 938px;
|
||||
margin: 0 auto;
|
||||
padding: 0 1px;
|
||||
}
|
||||
|
||||
.subnav .nav > li:first-child > a,
|
||||
.subnav .nav > li:first-child > a:hover {
|
||||
-webkit-border-radius: 0;
|
||||
-moz-border-radius: 0;
|
||||
border-radius: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1210px) {
|
||||
|
||||
.subnav-fixed .nav {
|
||||
width: 1168px; /* 2px less to account for left/right borders being removed when in fixed mode */
|
||||
}
|
||||
}
|
|
@ -1,593 +0,0 @@
|
|||
// Slate 2.3.2
|
||||
// Bootswatch
|
||||
// -----------------------------------------------------
|
||||
|
||||
|
||||
// TYPOGRAPHY
|
||||
// -----------------------------------------------------
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
code, pre {
|
||||
background-color: #F7F7F7;
|
||||
border: 1px solid darken(@grayDarker, 5%);
|
||||
text-shadow: none;
|
||||
}
|
||||
|
||||
// SCAFFOLDING
|
||||
// -----------------------------------------------------
|
||||
|
||||
legend, .page-header {
|
||||
border-bottom: 1px solid @hrBorder;
|
||||
}
|
||||
|
||||
hr {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
// NAVBAR
|
||||
// -----------------------------------------------------
|
||||
|
||||
.navbar {
|
||||
|
||||
.navbar-inner {
|
||||
#gradient > .vertical-three-colors(@gray, @grayDark, 70%, @grayDark);
|
||||
}
|
||||
|
||||
.brand {
|
||||
font-weight: bold;
|
||||
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3);
|
||||
border-right: 1px solid darken(@gray, 15%);
|
||||
}
|
||||
|
||||
.navbar-text {
|
||||
padding: 0 15px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.nav > li > a {
|
||||
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3);
|
||||
border-right: 1px solid rgba(0, 0, 0, 0.2);
|
||||
border-left: 1px solid rgba(255, 255, 255, 0.1);
|
||||
|
||||
&:hover {
|
||||
#gradient > .directional(@grayDarker, @grayDark, 280deg);
|
||||
border-left: 1px solid transparent;
|
||||
border-right: 1px solid transparent;
|
||||
}
|
||||
}
|
||||
|
||||
.nav > li.active > a,
|
||||
.nav > li.active > a:hover {
|
||||
color: @grayLighter;
|
||||
background-color: @grayDark;
|
||||
#gradient > .directional(lighten(@grayDarker, 4%), lighten(@grayDark, 4%), 280deg);
|
||||
border-right: 1px solid darken(@gray, 15%);
|
||||
}
|
||||
|
||||
.navbar-search .search-query {
|
||||
border: 1px solid darken(@gray, 15%);
|
||||
}
|
||||
|
||||
.btn,
|
||||
.btn-group {
|
||||
margin: 4px 0;
|
||||
}
|
||||
|
||||
.divider-vertical {
|
||||
background-color: transparent;
|
||||
border-right: none;
|
||||
}
|
||||
|
||||
.dropdown-menu::after {
|
||||
border-bottom: 6px solid @grayDark;
|
||||
}
|
||||
|
||||
&-inverse {
|
||||
|
||||
.navbar-inner {
|
||||
#gradient > .vertical-three-colors(darken(@grayDarker, 3%), darken(@grayDarker, 8%), 70%, darken(@grayDarker, 8%));
|
||||
}
|
||||
|
||||
.nav li > a {
|
||||
background-image: none;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.nav li > a:hover,
|
||||
.nav li.active > a,
|
||||
.nav li.active > a:hover {
|
||||
#gradient > .directional(darken(@grayDarker, 10%), darken(@grayDarker, 5%), 280deg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: @navbarCollapseWidth) {
|
||||
|
||||
.navbar .nav-collapse {
|
||||
|
||||
.nav li > a,
|
||||
.nav li > a:hover,
|
||||
.nav .active > a,
|
||||
.nav .active > a:hover {
|
||||
.box-shadow(none);
|
||||
color: @grayLighter;
|
||||
border: 1px solid transparent;
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
}
|
||||
|
||||
.nav li > a:hover,
|
||||
.nav .active > a:hover {
|
||||
background-color: @grayDarker;
|
||||
}
|
||||
|
||||
.navbar-form,
|
||||
.navbar-search {
|
||||
border-color: transparent;
|
||||
.box-shadow(none);
|
||||
}
|
||||
|
||||
.nav-header {
|
||||
color: @grayLight;
|
||||
}
|
||||
}
|
||||
|
||||
.navbar-inverse .nav-collapse {
|
||||
|
||||
.nav li > a:hover,
|
||||
.nav .active > a:hover {
|
||||
background-color: @grayDarker !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
div.subnav {
|
||||
|
||||
margin: 0 1px;
|
||||
#gradient > .vertical-three-colors(@gray, @grayDark, 70%, @grayDark);
|
||||
border: 1px solid transparent;
|
||||
.box-shadow('0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1)');
|
||||
|
||||
.nav > li > a {
|
||||
color: @grayLighter;
|
||||
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3);
|
||||
border-right: 1px solid darken(@gray, 15%);
|
||||
border-left: 1px solid @gray;
|
||||
|
||||
&:hover {
|
||||
color: @grayLighter;
|
||||
background-color: @grayDark;
|
||||
#gradient > .directional(@grayDarker, @grayDark, 280deg);
|
||||
border-left: 1px solid transparent;
|
||||
border-right: 1px solid transparent;
|
||||
}
|
||||
}
|
||||
|
||||
.nav > li.active > a,
|
||||
.nav > li.active > a:hover {
|
||||
color: @grayLighter;
|
||||
background-color: @grayDark;
|
||||
#gradient > .directional(lighten(@grayDarker, 4%), lighten(@grayDark, 4%), 280deg);
|
||||
border-right: 1px solid darken(@gray, 15%);
|
||||
}
|
||||
|
||||
.nav > li:first-child > a,
|
||||
.nav > li:first-child > a:hover {
|
||||
border-left: 1px solid transparent;
|
||||
}
|
||||
|
||||
.nav > li.active:last-child > a,
|
||||
.nav > li:last-child > a:hover {
|
||||
border-right: 1px solid darken(@gray, 15%);
|
||||
}
|
||||
|
||||
.open .dropdown-toggle {
|
||||
border-right: 1px solid darken(@gray, 15%);
|
||||
border-left: 1px solid @gray;
|
||||
}
|
||||
|
||||
&.subnav-fixed {
|
||||
top: @navbarHeight;
|
||||
margin: 0;
|
||||
.box-shadow(none);
|
||||
|
||||
.nav > li.active:first-child > a,
|
||||
.nav > li:first-child > a:hover {
|
||||
border-left: 1px solid darken(@gray, 15%);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// NAV
|
||||
// -----------------------------------------------------
|
||||
|
||||
.nav {
|
||||
|
||||
.nav-header {
|
||||
text-shadow: -1px -1px 0 rgba(0,0,0,0.3);
|
||||
}
|
||||
|
||||
& > li > a {
|
||||
#gradient > .vertical-three-colors(@gray, @grayDark, 70%, @grayDark);
|
||||
.box-shadow('0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1)');
|
||||
border: none;
|
||||
color: @grayLight;
|
||||
font-weight: bold;
|
||||
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
li.active > a,
|
||||
li.active > a:hover {
|
||||
background-color: transparent;
|
||||
border: none;
|
||||
color: @white;
|
||||
}
|
||||
|
||||
& > li.disabled > a,
|
||||
& > li.disabled > a:hover {
|
||||
color: @gray;
|
||||
}
|
||||
|
||||
li > a:hover {
|
||||
background-color: transparent;
|
||||
color: @grayLighter;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.nav-list {
|
||||
background-color: @grayDark;
|
||||
.box-shadow(1px 1px 1px rgba(0, 0, 0, 0.4));
|
||||
|
||||
li > a {
|
||||
background-image: none;
|
||||
text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
.nav-header {
|
||||
color: @gray;
|
||||
text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
.divider {
|
||||
border-bottom: 1px solid darken(@grayDarker, 5%);
|
||||
background-color: transparent;
|
||||
}
|
||||
}
|
||||
|
||||
.nav-tabs {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.tabs-below .nav-tabs {
|
||||
border-top: none;
|
||||
}
|
||||
|
||||
.tabs-left .nav-tabs {
|
||||
border-right: none;
|
||||
}
|
||||
|
||||
.tabs-right .nav-tabs {
|
||||
border-left: none;
|
||||
}
|
||||
|
||||
.nav-tabs.nav-stacked {
|
||||
|
||||
li > a,
|
||||
li > a:hover {
|
||||
border: 1px solid darken(@grayDarker, 5%);
|
||||
background-image: none;
|
||||
}
|
||||
|
||||
li > a:hover,
|
||||
.active > a,
|
||||
.active > a:hover {
|
||||
background-color: @wellBackground;
|
||||
color: @white;
|
||||
}
|
||||
}
|
||||
|
||||
.breadcrumb {
|
||||
border: 1px solid transparent;
|
||||
#gradient > .vertical-three-colors(@gray, @grayDark, 70%, @grayDark);
|
||||
.box-shadow('0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1)');
|
||||
|
||||
a {
|
||||
color: @grayLighter;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
li {
|
||||
color: @grayLight;
|
||||
font-weight: bold;
|
||||
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
}
|
||||
|
||||
.pagination {
|
||||
|
||||
ul {
|
||||
.box-shadow(none);
|
||||
}
|
||||
|
||||
ul > li > a,
|
||||
ul > li > span {
|
||||
border-left: 1px solid @gray;
|
||||
border-right: 1px solid darken(@gray, 15%);
|
||||
border-top: none;
|
||||
border-bottom: none;
|
||||
#gradient > .vertical-three-colors(@gray, @grayDark, 70%, @grayDark);
|
||||
.box-shadow('0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1)');
|
||||
color: @grayLighter;
|
||||
font-weight: bold;
|
||||
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3);
|
||||
|
||||
&:hover {
|
||||
#gradient > .directional(@grayDarker, @grayDark, 280deg);
|
||||
border-left: 1px solid transparent;
|
||||
}
|
||||
}
|
||||
|
||||
ul > .active > a,
|
||||
ul > .active > a:hover,
|
||||
ul > .active > span,
|
||||
ul > .active > span:hover {
|
||||
color: @grayLighter;
|
||||
background-color: @grayDark;
|
||||
#gradient > .directional(lighten(@grayDarker, 4%), lighten(@grayDark, 4%), 280deg);
|
||||
border-left: 1px solid transparent;
|
||||
}
|
||||
|
||||
ul > .disabled > a,
|
||||
ul > .disabled > a:hover,
|
||||
ul > .disabled > span,
|
||||
ul > .disabled > span:hover {
|
||||
border-left: 1px solid @gray;
|
||||
border-right: 1px solid darken(@gray, 15%);
|
||||
border-top: none;
|
||||
border-bottom: none;
|
||||
#gradient > .vertical-three-colors(@grayLight, @gray, 70%, @gray);
|
||||
}
|
||||
}
|
||||
|
||||
.pager {
|
||||
|
||||
li > a,
|
||||
li > span {
|
||||
|
||||
border: 1px solid transparent;
|
||||
.box-shadow('0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1)');
|
||||
#gradient > .vertical-three-colors(@gray, @grayDark, 70%, @grayDark);
|
||||
|
||||
&:hover {
|
||||
#gradient > .directional(@grayDarker, @grayDark, 280deg);
|
||||
border: 1px solid transparent;
|
||||
}
|
||||
}
|
||||
|
||||
.disabled a,
|
||||
.disabled a:hover {
|
||||
background-color: transparent;
|
||||
#gradient > .vertical-three-colors(@gray, @grayDark, 70%, @grayDark);
|
||||
}
|
||||
}
|
||||
|
||||
// BUTTONS
|
||||
// -----------------------------------------------------
|
||||
|
||||
.btn {
|
||||
.buttonBackground(@gray, darken(@gray, 10%));
|
||||
.border-radius(3px);
|
||||
border: 1px solid @grayDarker;
|
||||
}
|
||||
|
||||
.btn, .btn:hover {
|
||||
color: @white;
|
||||
font-weight: bold;
|
||||
text-shadow: -1px -1px 1px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
.btn-primary {
|
||||
.buttonBackground(@btnPrimaryBackground, spin(@btnPrimaryBackground, 20));
|
||||
color: @grayDark;
|
||||
text-shadow: 1px 1px 1px rgba(255, 255, 255, 0.3);
|
||||
}
|
||||
|
||||
.btn-warning {
|
||||
.buttonBackground(lighten(@orange, 15%), @orange);
|
||||
}
|
||||
|
||||
.btn-danger {
|
||||
.buttonBackground(@red, #bd362f);
|
||||
}
|
||||
|
||||
.btn-success {
|
||||
.buttonBackground(@green, #51a351);
|
||||
}
|
||||
|
||||
.btn-info {
|
||||
.buttonBackground(@blue, #2f96b4);
|
||||
}
|
||||
|
||||
.btn-inverse {
|
||||
.buttonBackground(@gray, @grayDarker);
|
||||
}
|
||||
|
||||
.caret {
|
||||
border-top-color: @white;
|
||||
}
|
||||
|
||||
// TABLES
|
||||
// -----------------------------------------------------
|
||||
|
||||
.table {
|
||||
|
||||
tbody tr.success td {
|
||||
background-color: @successText;
|
||||
}
|
||||
|
||||
tbody tr.error td {
|
||||
background-color: @errorText;
|
||||
}
|
||||
|
||||
tbody tr.info td {
|
||||
background-color: @infoText;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
// FORMS
|
||||
// -----------------------------------------------------
|
||||
|
||||
label, input, button, select, textarea, legend {
|
||||
color: @textColor;
|
||||
}
|
||||
|
||||
legend, label {
|
||||
text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
.input-prepend .add-on,
|
||||
.input-append .add-on {
|
||||
vertical-align: top;
|
||||
background-color: @gray;
|
||||
border-top: 1px solid @grayLight;
|
||||
border-left: 1px solid @grayLight;
|
||||
border-bottom: 1px solid @grayDark;
|
||||
border-right: 1px solid @grayDark;
|
||||
text-shadow: none;
|
||||
}
|
||||
|
||||
.input-append .btn,
|
||||
.input-prepend .btn {
|
||||
margin-top: -1px;
|
||||
padding: 5px 14px;
|
||||
}
|
||||
|
||||
.uneditable-input,
|
||||
input[disabled],
|
||||
select[disabled],
|
||||
textarea[disabled],
|
||||
input[readonly],
|
||||
select[readonly],
|
||||
textarea[readonly] {
|
||||
color: @grayLighter;
|
||||
}
|
||||
|
||||
.form-actions {
|
||||
border-top: none;
|
||||
}
|
||||
|
||||
// DROPDOWNS
|
||||
// -----------------------------------------------------
|
||||
|
||||
.dropdown-menu {
|
||||
.box-shadow(0 5px 5px rgba(0, 0, 0, 0.2));
|
||||
}
|
||||
|
||||
.dropdown.open .dropdown-toggle {
|
||||
background-color: @grayDark;
|
||||
color: @grayLighter;
|
||||
}
|
||||
|
||||
.dropdown-submenu > a::after {
|
||||
border-left-color: @white;
|
||||
}
|
||||
|
||||
// ALERTS, LABELS, BADGES
|
||||
// -----------------------------------------------------
|
||||
|
||||
.label, .alert {
|
||||
color: rgba(255, 255, 255, 0.9);
|
||||
text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.3);
|
||||
.box-shadow(1px 1px 1px rgba(0, 0, 0, 0.3));
|
||||
}
|
||||
|
||||
.alert {
|
||||
background-color: @orange;
|
||||
border-color: @orange;
|
||||
|
||||
.alert-heading {
|
||||
color: rgba(255, 255, 255, 0.9);
|
||||
text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.4);
|
||||
}
|
||||
}
|
||||
|
||||
.alert-success {
|
||||
background-color: @successText;
|
||||
border-color: @successText;
|
||||
}
|
||||
|
||||
.alert-error {
|
||||
background-color: @errorText;
|
||||
border-color: @errorText;
|
||||
}
|
||||
|
||||
.alert-info {
|
||||
background-color: @infoText;
|
||||
border-color: @infoText;
|
||||
}
|
||||
|
||||
// MISC
|
||||
// -----------------------------------------------------
|
||||
|
||||
.well, .hero-unit {
|
||||
.box-shadow(inset 1px 1px 1px rgba(0, 0, 0, 0.5));
|
||||
}
|
||||
|
||||
.thumbnail,
|
||||
a.thumbnail:hover {
|
||||
border: 1px solid darken(@grayDarker, 5%);
|
||||
}
|
||||
|
||||
.progress {
|
||||
background-color: darken(@grayDarker, 3%);
|
||||
#gradient > .vertical(darken(@grayDarker, 3%), darken(@grayDarker, 3%));
|
||||
.box-shadow(inset 1px 1px 1px rgba(0, 0, 0, 0.5));
|
||||
}
|
||||
|
||||
.footer {
|
||||
border-top: 1px solid darken(@grayDarker, 5%);
|
||||
|
||||
p {
|
||||
color: @textColor;
|
||||
}
|
||||
}
|
||||
|
||||
.modal {
|
||||
|
||||
background-color: darken(@grayDark, 5%);
|
||||
|
||||
&-header {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
&-body {
|
||||
border-bottom: 1px solid #1C1E22;
|
||||
}
|
||||
|
||||
&-footer {
|
||||
border-top: none;
|
||||
background-color: @grayDarker;
|
||||
.box-shadow(none);
|
||||
}
|
||||
}
|
||||
|
||||
// MEDIA QUERIES
|
||||
// -----------------------------------------------------
|
||||
|
||||
@media (max-width: 979px) {
|
||||
.navbar .brand {
|
||||
border-right: none;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
div.subnav .nav > li + li > a {
|
||||
border-top: 1px solid transparent;
|
||||
}
|
||||
}
|
File diff suppressed because one or more lines are too long
|
@ -1,301 +0,0 @@
|
|||
// Slate 2.3.2
|
||||
// Variables
|
||||
// --------------------------------------------------
|
||||
|
||||
|
||||
// Global values
|
||||
// --------------------------------------------------
|
||||
|
||||
|
||||
// Grays
|
||||
// -------------------------
|
||||
@black: #000;
|
||||
@grayDarker: #272B30;
|
||||
@grayDark: #3A3F44;
|
||||
@gray: #52575C;
|
||||
@grayLight: #7A8288;
|
||||
@grayLighter: #BBBFC2;
|
||||
@white: #fff;
|
||||
|
||||
|
||||
// Accent colors
|
||||
// -------------------------
|
||||
@blue: #5bc0de;
|
||||
@blueDark: #108CBB;
|
||||
@green: #62c462;
|
||||
@red: #ee5f5b;
|
||||
@yellow: #F6D30D;
|
||||
@orange: #f89406;
|
||||
@pink: #c3325f;
|
||||
@purple: #7a43b6;
|
||||
|
||||
|
||||
// Scaffolding
|
||||
// -------------------------
|
||||
@bodyBackground: @grayDarker;
|
||||
@textColor: #C8C8C8;
|
||||
|
||||
|
||||
// Links
|
||||
// -------------------------
|
||||
@linkColor: @white;
|
||||
@linkColorHover: @white;
|
||||
|
||||
|
||||
// Typography
|
||||
// -------------------------
|
||||
@sansFontFamily: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||
@serifFontFamily: Georgia, "Times New Roman", Times, serif;
|
||||
@monoFontFamily: Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||
|
||||
@baseFontSize: 14px;
|
||||
@baseFontFamily: @sansFontFamily;
|
||||
@baseLineHeight: 21px;
|
||||
@altFontFamily: @serifFontFamily;
|
||||
|
||||
@headingsFontFamily: inherit; // empty to use BS default, @baseFontFamily
|
||||
@headingsFontWeight: bold; // instead of browser default, bold
|
||||
@headingsColor: inherit; // empty to use BS default, @textColor
|
||||
|
||||
|
||||
// Component sizing
|
||||
// -------------------------
|
||||
// Based on 14px font-size and 20px line-height
|
||||
|
||||
@fontSizeLarge: @baseFontSize * 1.25; // ~18px
|
||||
@fontSizeSmall: @baseFontSize * 0.85; // ~12px
|
||||
@fontSizeMini: @baseFontSize * 0.75; // ~11px
|
||||
|
||||
@paddingLarge: 11px 19px; // 44px
|
||||
@paddingSmall: 2px 10px; // 26px
|
||||
@paddingMini: 0px 6px; // 22px
|
||||
|
||||
@baseBorderRadius: 4px;
|
||||
@borderRadiusLarge: 6px;
|
||||
@borderRadiusSmall: 3px;
|
||||
|
||||
|
||||
// Tables
|
||||
// -------------------------
|
||||
@tableBackground: transparent; // overall background-color
|
||||
@tableBackgroundAccent: darken(@grayDark, 5%); // for striping
|
||||
@tableBackgroundHover: @grayDark; // for hover
|
||||
@tableBorder: darken(@grayDarker, 5%); // table and cell border
|
||||
|
||||
// Buttons
|
||||
// -------------------------
|
||||
@btnBackground: @white;
|
||||
@btnBackgroundHighlight: darken(@white, 10%);
|
||||
@btnBorder: darken(@white, 20%);
|
||||
|
||||
@btnPrimaryBackground: @grayLighter;
|
||||
@btnPrimaryBackgroundHighlight: spin(@btnPrimaryBackground, 15%);
|
||||
|
||||
@btnInfoBackground: @blue;
|
||||
@btnInfoBackgroundHighlight: #2f96b4;
|
||||
|
||||
@btnSuccessBackground: @green;
|
||||
@btnSuccessBackgroundHighlight: #51a351;
|
||||
|
||||
@btnWarningBackground: lighten(@orange, 15%);
|
||||
@btnWarningBackgroundHighlight: @orange;
|
||||
|
||||
@btnDangerBackground: @red;
|
||||
@btnDangerBackgroundHighlight: #bd362f;
|
||||
|
||||
@btnInverseBackground: @gray;
|
||||
@btnInverseBackgroundHighlight: @grayDarker;
|
||||
|
||||
|
||||
// Forms
|
||||
// -------------------------
|
||||
@inputBackground: @white;
|
||||
@inputBorder: #ccc;
|
||||
@inputBorderRadius: @baseBorderRadius;
|
||||
@inputDisabledBackground: @grayLighter;
|
||||
@formActionsBackground: darken(@grayDarker, 3%);
|
||||
@inputHeight: @baseLineHeight + 10px; // base line-height + 8px vertical padding + 2px top/bottom border
|
||||
|
||||
|
||||
// Dropdowns
|
||||
// -------------------------
|
||||
@dropdownBackground: @grayDark;
|
||||
@dropdownBorder: rgba(0,0,0,.2);
|
||||
@dropdownDividerTop: transparent;
|
||||
@dropdownDividerBottom: darken(@grayDarker, 5%);
|
||||
|
||||
@dropdownLinkColor: @grayLight;
|
||||
@dropdownLinkColorHover: @white;
|
||||
@dropdownLinkColorActive: @white;
|
||||
|
||||
@dropdownLinkBackgroundActive: @grayDarker;
|
||||
@dropdownLinkBackgroundHover: @grayDarker;
|
||||
|
||||
|
||||
|
||||
// COMPONENT VARIABLES
|
||||
// --------------------------------------------------
|
||||
|
||||
|
||||
// Z-index master list
|
||||
// -------------------------
|
||||
// Used for a bird's eye view of components dependent on the z-axis
|
||||
// Try to avoid customizing these :)
|
||||
@zindexDropdown: 1000;
|
||||
@zindexPopover: 1010;
|
||||
@zindexTooltip: 1030;
|
||||
@zindexFixedNavbar: 1030;
|
||||
@zindexModalBackdrop: 1040;
|
||||
@zindexModal: 1050;
|
||||
|
||||
|
||||
// Sprite icons path
|
||||
// -------------------------
|
||||
@iconSpritePath: "../img/glyphicons-halflings.png";
|
||||
@iconWhiteSpritePath: "../img/glyphicons-halflings-white.png";
|
||||
|
||||
|
||||
// Input placeholder text color
|
||||
// -------------------------
|
||||
@placeholderText: @grayLight;
|
||||
|
||||
|
||||
// Hr border color
|
||||
// -------------------------
|
||||
@hrBorder: darken(@grayDarker, 5%);
|
||||
|
||||
|
||||
// Horizontal forms & lists
|
||||
// -------------------------
|
||||
@horizontalComponentOffset: 180px;
|
||||
|
||||
|
||||
// Wells
|
||||
// -------------------------
|
||||
@wellBackground: darken(@grayDarker, 3%);
|
||||
|
||||
|
||||
// Navbar
|
||||
// -------------------------
|
||||
@navbarCollapseWidth: 979px;
|
||||
@navbarCollapseDesktopWidth: @navbarCollapseWidth + 1;
|
||||
|
||||
@navbarHeight: 40px;
|
||||
@navbarBackground: @grayDarker;
|
||||
@navbarBackgroundHighlight: @grayDark;
|
||||
@navbarBorder: darken(@navbarBackground, 12%);
|
||||
|
||||
@navbarText: @textColor;
|
||||
@navbarLinkColor: @textColor;
|
||||
@navbarLinkColorHover: @white;
|
||||
@navbarLinkColorActive: @navbarLinkColorHover;
|
||||
@navbarLinkBackgroundHover: @grayDark;
|
||||
@navbarLinkBackgroundActive: @navbarBackground;
|
||||
|
||||
@navbarBrandColor: @grayLighter;
|
||||
|
||||
// Inverted navbar
|
||||
@navbarInverseBackground: darken(@grayDarker, 10%);
|
||||
@navbarInverseBackgroundHighlight: @grayDarker;
|
||||
@navbarInverseBorder: #252525;
|
||||
|
||||
@navbarInverseText: @grayLight;
|
||||
@navbarInverseLinkColor: @grayLight;
|
||||
@navbarInverseLinkColorHover: @white;
|
||||
@navbarInverseLinkColorActive: @navbarInverseLinkColorHover;
|
||||
@navbarInverseLinkBackgroundHover: transparent;
|
||||
@navbarInverseLinkBackgroundActive: @navbarInverseBackground;
|
||||
|
||||
@navbarInverseSearchBackground: lighten(@navbarInverseBackground, 25%);
|
||||
@navbarInverseSearchBackgroundFocus: @white;
|
||||
@navbarInverseSearchBorder: @navbarInverseBackground;
|
||||
@navbarInverseSearchPlaceholderColor: #ccc;
|
||||
|
||||
@navbarInverseBrandColor: @navbarInverseLinkColor;
|
||||
|
||||
|
||||
// Pagination
|
||||
// -------------------------
|
||||
@paginationBackground: #fff;
|
||||
@paginationBorder: #ddd;
|
||||
@paginationActiveBackground: #f5f5f5;
|
||||
|
||||
|
||||
// Hero unit
|
||||
// -------------------------
|
||||
@heroUnitBackground: darken(@grayDarker, 3%);
|
||||
@heroUnitHeadingColor: inherit;
|
||||
@heroUnitLeadColor: inherit;
|
||||
|
||||
|
||||
// Form states and alerts
|
||||
// -------------------------
|
||||
@warningText: #c09853;
|
||||
@warningBackground: #fcf8e3;
|
||||
@warningBorder: darken(spin(@warningBackground, -10), 3%);
|
||||
|
||||
@errorText: #b94a48;
|
||||
@errorBackground: #f2dede;
|
||||
@errorBorder: darken(spin(@errorBackground, -10), 3%);
|
||||
|
||||
@successText: #468847;
|
||||
@successBackground: #dff0d8;
|
||||
@successBorder: darken(spin(@successBackground, -10), 5%);
|
||||
|
||||
@infoText: #3a87ad;
|
||||
@infoBackground: #d9edf7;
|
||||
@infoBorder: darken(spin(@infoBackground, -10), 7%);
|
||||
|
||||
|
||||
// Tooltips and popovers
|
||||
// -------------------------
|
||||
@tooltipColor: #fff;
|
||||
@tooltipBackground: @dropdownBackground;
|
||||
@tooltipArrowWidth: 5px;
|
||||
@tooltipArrowColor: @tooltipBackground;
|
||||
|
||||
@popoverBackground: @dropdownBackground;
|
||||
@popoverArrowWidth: 10px;
|
||||
@popoverArrowColor: @dropdownBackground;
|
||||
@popoverTitleBackground: lighten(@popoverBackground, 3%);
|
||||
|
||||
// Special enhancement for popovers
|
||||
@popoverArrowOuterWidth: @popoverArrowWidth + 1;
|
||||
@popoverArrowOuterColor: rgba(0,0,0,.25);
|
||||
|
||||
|
||||
|
||||
// GRID
|
||||
// --------------------------------------------------
|
||||
|
||||
|
||||
// Default 940px grid
|
||||
// -------------------------
|
||||
@gridColumns: 12;
|
||||
@gridColumnWidth: 60px;
|
||||
@gridGutterWidth: 20px;
|
||||
@gridRowWidth: (@gridColumns * @gridColumnWidth) + (@gridGutterWidth * (@gridColumns - 1));
|
||||
|
||||
// 1200px min
|
||||
@gridColumnWidth1200: 70px;
|
||||
@gridGutterWidth1200: 30px;
|
||||
@gridRowWidth1200: (@gridColumns * @gridColumnWidth1200) + (@gridGutterWidth1200 * (@gridColumns - 1));
|
||||
|
||||
// 768px-979px
|
||||
@gridColumnWidth768: 42px;
|
||||
@gridGutterWidth768: 20px;
|
||||
@gridRowWidth768: (@gridColumns * @gridColumnWidth768) + (@gridGutterWidth768 * (@gridColumns - 1));
|
||||
|
||||
|
||||
// Fluid grid
|
||||
// -------------------------
|
||||
@fluidGridColumnWidth: percentage(@gridColumnWidth/@gridRowWidth);
|
||||
@fluidGridGutterWidth: percentage(@gridGutterWidth/@gridRowWidth);
|
||||
|
||||
// 1200px min
|
||||
@fluidGridColumnWidth1200: percentage(@gridColumnWidth1200/@gridRowWidth1200);
|
||||
@fluidGridGutterWidth1200: percentage(@gridGutterWidth1200/@gridRowWidth1200);
|
||||
|
||||
// 768px-979px
|
||||
@fluidGridColumnWidth768: percentage(@gridColumnWidth768/@gridRowWidth768);
|
||||
@fluidGridGutterWidth768: percentage(@gridGutterWidth768/@gridRowWidth768);
|
|
@ -0,0 +1,26 @@
|
|||
/* Real Person jQuery plugin styles v1.1.1. */
|
||||
.realperson-challenge {
|
||||
display: block;
|
||||
color: #000;
|
||||
}
|
||||
.realperson-text {
|
||||
font-family: "Courier New",monospace;
|
||||
font-size: 6px;
|
||||
font-weight: bold;
|
||||
letter-spacing: -1px;
|
||||
line-height: 3px;
|
||||
}
|
||||
.realperson-regen {
|
||||
padding-top: 4px;
|
||||
font-size: 12px;
|
||||
text-align: center;
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
}
|
||||
.realperson-disabled {
|
||||
opacity: 0.5;
|
||||
filter: Alpha(Opacity=50);
|
||||
}
|
||||
.realperson-disabled .realperson-regen {
|
||||
cursor: default;
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
$(document).ready(function (event) {
|
||||
$('#defaultReal').realperson();
|
||||
$('button[type=submit]').click(function (e) {
|
||||
value = $('#defaultReal').val();
|
||||
var hash = 5381;
|
||||
for (var i = 0; i < value.length; i++) {
|
||||
hash = ((hash << 5) + hash) + value.charCodeAt(i);
|
||||
}
|
||||
$('#captchaval').val(hash);
|
||||
if ($('[name=partner_name]').val() && $('[name=email_from]').val() && $('[name=ufile]').val()){
|
||||
var flag = 0;
|
||||
if ($('#captchaval').val()) {
|
||||
var hashval = $('[name=defaultRealHash]').val();
|
||||
var captchahash = $('#captchaval').val();
|
||||
flag = 1;
|
||||
}
|
||||
}
|
||||
if (flag==1) {
|
||||
if (hashval == captchahash){
|
||||
return true;
|
||||
}else{
|
||||
$('[name=defaultReal]').focus();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
|
@ -0,0 +1,235 @@
|
|||
/* http://keith-wood.name/realPerson.html
|
||||
Real Person Form Submission for jQuery v1.1.1.
|
||||
Written by Keith Wood (kwood{at}iinet.com.au) June 2009.
|
||||
Available under the MIT (https://github.com/jquery/jquery/blob/master/MIT-LICENSE.txt) license.
|
||||
Please attribute the author if you use it. */
|
||||
|
||||
(function($) { // Hide scope, no $ conflict
|
||||
|
||||
/* Real person manager. */
|
||||
function RealPerson() {
|
||||
this._defaults = {
|
||||
length: 6, // Number of characters to use
|
||||
includeNumbers: false, // True to use numbers as well as letters
|
||||
regenerate: 'Click to change', // Instruction text to regenerate
|
||||
hashName: '{n}Hash' // Name of the hash value field to compare with,
|
||||
// use {n} to substitute with the original field name
|
||||
};
|
||||
}
|
||||
|
||||
var CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
|
||||
var DOTS = [
|
||||
[' * ', ' * * ', ' * * ', ' * * ', ' ***** ', '* *', '* *'],
|
||||
['****** ', '* *', '* *', '****** ', '* *', '* *', '****** '],
|
||||
[' ***** ', '* *', '* ', '* ', '* ', '* *', ' ***** '],
|
||||
['****** ', '* *', '* *', '* *', '* *', '* *', '****** '],
|
||||
['*******', '* ', '* ', '**** ', '* ', '* ', '*******'],
|
||||
['*******', '* ', '* ', '**** ', '* ', '* ', '* '],
|
||||
[' ***** ', '* *', '* ', '* ', '* ***', '* *', ' ***** '],
|
||||
['* *', '* *', '* *', '*******', '* *', '* *', '* *'],
|
||||
['*******', ' * ', ' * ', ' * ', ' * ', ' * ', '*******'],
|
||||
[' *', ' *', ' *', ' *', ' *', '* *', ' ***** '],
|
||||
['* *', '* ** ', '* ** ', '** ', '* ** ', '* ** ', '* *'],
|
||||
['* ', '* ', '* ', '* ', '* ', '* ', '*******'],
|
||||
['* *', '** **', '* * * *', '* * *', '* *', '* *', '* *'],
|
||||
['* *', '** *', '* * *', '* * *', '* * *', '* **', '* *'],
|
||||
[' ***** ', '* *', '* *', '* *', '* *', '* *', ' ***** '],
|
||||
['****** ', '* *', '* *', '****** ', '* ', '* ', '* '],
|
||||
[' ***** ', '* *', '* *', '* *', '* * *', '* * ', ' **** *'],
|
||||
['****** ', '* *', '* *', '****** ', '* * ', '* * ', '* *'],
|
||||
[' ***** ', '* *', '* ', ' ***** ', ' *', '* *', ' ***** '],
|
||||
['*******', ' * ', ' * ', ' * ', ' * ', ' * ', ' * '],
|
||||
['* *', '* *', '* *', '* *', '* *', '* *', ' ***** '],
|
||||
['* *', '* *', ' * * ', ' * * ', ' * * ', ' * * ', ' * '],
|
||||
['* *', '* *', '* *', '* * *', '* * * *', '** **', '* *'],
|
||||
['* *', ' * * ', ' * * ', ' * ', ' * * ', ' * * ', '* *'],
|
||||
['* *', ' * * ', ' * * ', ' * ', ' * ', ' * ', ' * '],
|
||||
['*******', ' * ', ' * ', ' * ', ' * ', ' * ', '*******'],
|
||||
[' *** ', ' * * ', '* * *', '* * *', '* * *', ' * * ', ' *** '],
|
||||
[' * ', ' ** ', ' * * ', ' * ', ' * ', ' * ', '*******'],
|
||||
[' ***** ', '* *', ' *', ' * ', ' ** ', ' ** ', '*******'],
|
||||
[' ***** ', '* *', ' *', ' ** ', ' *', '* *', ' ***** '],
|
||||
[' * ', ' ** ', ' * * ', ' * * ', '*******', ' * ', ' * '],
|
||||
['*******', '* ', '****** ', ' *', ' *', '* *', ' ***** '],
|
||||
[' **** ', ' * ', '* ', '****** ', '* *', '* *', ' ***** '],
|
||||
['*******', ' * ', ' * ', ' * ', ' * ', ' * ', '* '],
|
||||
[' ***** ', '* *', '* *', ' ***** ', '* *', '* *', ' ***** '],
|
||||
[' ***** ', '* *', '* *', ' ******', ' *', ' * ', ' **** ']];
|
||||
|
||||
$.extend(RealPerson.prototype, {
|
||||
/* Class name added to elements to indicate already configured with real person. */
|
||||
markerClassName: 'hasRealPerson',
|
||||
/* Name of the data property for instance settings. */
|
||||
propertyName: 'realperson',
|
||||
|
||||
/* Override the default settings for all real person instances.
|
||||
@param options (object) the new settings to use as defaults
|
||||
@return (RealPerson) this object */
|
||||
setDefaults: function(options) {
|
||||
$.extend(this._defaults, options || {});
|
||||
return this;
|
||||
},
|
||||
|
||||
/* Attach the real person functionality to an input field.
|
||||
@param target (element) the control to affect
|
||||
@param options (object) the custom options for this instance */
|
||||
_attachPlugin: function(target, options) {
|
||||
target = $(target);
|
||||
if (target.hasClass(this.markerClassName)) {
|
||||
return;
|
||||
}
|
||||
var inst = {options: $.extend({}, this._defaults)};
|
||||
target.addClass(this.markerClassName).data(this.propertyName, inst);
|
||||
this._optionPlugin(target, options);
|
||||
},
|
||||
|
||||
/* Retrieve or reconfigure the settings for a control.
|
||||
@param target (element) the control to affect
|
||||
@param options (object) the new options for this instance or
|
||||
(string) an individual property name
|
||||
@param value (any) the individual property value (omit if options
|
||||
is an object or to retrieve the value of a setting)
|
||||
@return (any) if retrieving a value */
|
||||
_optionPlugin: function(target, options, value) {
|
||||
target = $(target);
|
||||
var inst = target.data(this.propertyName);
|
||||
if (!options || (typeof options == 'string' && value == null)) { // Get option
|
||||
var name = options;
|
||||
options = (inst || {}).options;
|
||||
return (options && name ? options[name] : options);
|
||||
}
|
||||
|
||||
if (!target.hasClass(this.markerClassName)) {
|
||||
return;
|
||||
}
|
||||
options = options || {};
|
||||
if (typeof options == 'string') {
|
||||
var name = options;
|
||||
options = {};
|
||||
options[name] = value;
|
||||
}
|
||||
$.extend(inst.options, options);
|
||||
target.prevAll('.' + this.propertyName + '-challenge,.' + this.propertyName + '-hash').
|
||||
remove().end().before(this._generateHTML(target, inst));
|
||||
},
|
||||
|
||||
/* Generate the additional content for this control.
|
||||
@param target (jQuery) the input field
|
||||
@param inst (object) the current instance settings
|
||||
@return (string) the additional content */
|
||||
_generateHTML: function(target, inst) {
|
||||
var text = '';
|
||||
for (var i = 0; i < inst.options.length; i++) {
|
||||
text += CHARS.charAt(Math.floor(Math.random() *
|
||||
(inst.options.includeNumbers ? 36 : 26)));
|
||||
}
|
||||
var html = '<div class="' + this.propertyName + '-challenge">' +
|
||||
'<div class="' + this.propertyName + '-text">';
|
||||
for (var i = 0; i < DOTS[0].length; i++) {
|
||||
for (var j = 0; j < text.length; j++) {
|
||||
html += DOTS[CHARS.indexOf(text.charAt(j))][i].replace(/ /g, ' ') +
|
||||
' ';
|
||||
}
|
||||
html += '<br>';
|
||||
}
|
||||
html += '</div><div class="' + this.propertyName + '-regen">' + inst.options.regenerate +
|
||||
'</div></div><input type="hidden" class="' + this.propertyName + '-hash" name="' +
|
||||
inst.options.hashName.replace(/\{n\}/, target.attr('name')) +
|
||||
'" value="' + this._hash(text) + '">';
|
||||
return html;
|
||||
},
|
||||
|
||||
/* Enable the plugin functionality for a control.
|
||||
@param target (element) the control to affect */
|
||||
_enablePlugin: function(target) {
|
||||
target = $(target);
|
||||
if (!target.hasClass(this.markerClassName)) {
|
||||
return;
|
||||
}
|
||||
target.removeClass(this.propertyName + '-disabled').prop('disabled', false).
|
||||
prevAll('.' + this.propertyName + '-challenge').removeClass(this.propertyName + '-disabled');
|
||||
},
|
||||
|
||||
/* Disable the plugin functionality for a control.
|
||||
@param target (element) the control to affect */
|
||||
_disablePlugin: function(target) {
|
||||
target = $(target);
|
||||
if (!target.hasClass(this.markerClassName)) {
|
||||
return;
|
||||
}
|
||||
target.addClass(this.propertyName + '-disabled').prop('disabled', true).
|
||||
prevAll('.' + this.propertyName + '-challenge').addClass(this.propertyName + '-disabled');
|
||||
},
|
||||
|
||||
/* Remove the plugin functionality from a control.
|
||||
@param target (element) the control to affect */
|
||||
_destroyPlugin: function(target) {
|
||||
target = $(target);
|
||||
if (!target.hasClass(this.markerClassName)) {
|
||||
return;
|
||||
}
|
||||
target.removeClass(this.markerClassName).
|
||||
removeData(this.propertyName).
|
||||
prevAll('.' + this.propertyName + '-challenge,.' + this.propertyName + '-hash').remove();
|
||||
},
|
||||
|
||||
/* Compute a hash value for the given text.
|
||||
@param value (string) the text to hash
|
||||
@return the corresponding hash value */
|
||||
_hash: function(value) {
|
||||
var hash = 5381;
|
||||
for (var i = 0; i < value.length; i++) {
|
||||
hash = ((hash << 5) + hash) + value.charCodeAt(i);
|
||||
}
|
||||
return hash;
|
||||
}
|
||||
});
|
||||
|
||||
// The list of commands that return values and don't permit chaining
|
||||
var getters = [''];
|
||||
|
||||
/* Determine whether a command is a getter and doesn't permit chaining.
|
||||
@param command (string, optional) the command to run
|
||||
@param otherArgs ([], optional) any other arguments for the command
|
||||
@return true if the command is a getter, false if not */
|
||||
function isNotChained(command, otherArgs) {
|
||||
if (command == 'option' && (otherArgs.length == 0 ||
|
||||
(otherArgs.length == 1 && typeof otherArgs[0] == 'string'))) {
|
||||
return true;
|
||||
}
|
||||
return $.inArray(command, getters) > -1;
|
||||
}
|
||||
|
||||
/* Attach the real person functionality to a jQuery selection.
|
||||
@param options (object) the new settings to use for these instances (optional) or
|
||||
(string) the command to run (optional)
|
||||
@return (jQuery) for chaining further calls or
|
||||
(any) getter value */
|
||||
$.fn.realperson = function(options) {
|
||||
var otherArgs = Array.prototype.slice.call(arguments, 1);
|
||||
if (isNotChained(options, otherArgs)) {
|
||||
return plugin['_' + options + 'Plugin'].apply(plugin, [this[0]].concat(otherArgs));
|
||||
}
|
||||
return this.each(function() {
|
||||
if (typeof options == 'string') {
|
||||
if (!plugin['_' + options + 'Plugin']) {
|
||||
throw 'Unknown command: ' + options;
|
||||
}
|
||||
plugin['_' + options + 'Plugin'].apply(plugin, [this].concat(otherArgs));
|
||||
}
|
||||
else {
|
||||
plugin._attachPlugin(this, options || {});
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
/* Initialise the real person functionality. */
|
||||
var plugin = $.realperson = new RealPerson(); // Singleton instance
|
||||
|
||||
$(document).on('click', 'div.' + plugin.propertyName + '-challenge', function() {
|
||||
if (!$(this).hasClass(plugin.propertyName + '-disabled')) {
|
||||
$(this).nextAll('.' + plugin.markerClassName).realperson('option', {});
|
||||
}
|
||||
});
|
||||
|
||||
})(jQuery);
|
|
@ -83,16 +83,23 @@
|
|||
<input type="hidden" t-att-value="job.id" name="job_id"/>
|
||||
<input type="hidden" t-att-value="job.name" name="name"/>
|
||||
<div class="control-group">
|
||||
<input type="text" class="input-xlarge" id="nametxt" name="partner_name" required="True" placeholder="Name..."/>
|
||||
<input type="text" class="input-xlarge" id="nametxt" name="partner_name" required="true" placeholder="Name..."/>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<input type="text" class="input-xlarge" id="emailtxt" name="email_from" required="True" placeholder="Email..."/>
|
||||
<input type="text" class="input-xlarge" id="emailtxt" name="email_from" required="true" placeholder="Email..."/>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<textarea class="span8" style="margin-top:5px; height: 140px;" name="description" placeholder="Enter your comment..."> </textarea>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<input class="input-file" id="fileInput" type="file" name="ufile" required="True"/>
|
||||
<input class="input-file" id="fileInput" type="file" name="ufile" required="true"/>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label">Please enter the letters displayed:</label>
|
||||
<div class="controls">
|
||||
<input type="text" id="defaultReal" name="defaultReal" required="true"/>
|
||||
<input type="hidden" id="captchaval" name="captchaval"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-actions">
|
||||
<button type="submit" class="btn btn-primary">Save</button>
|
||||
|
|
Loading…
Reference in New Issue