- Subscripciones

- Equipo, invitaciones de agentes

git-svn-id: https://192.168.0.254/svn/Proyectos.Incam_PROFIND_Web/trunk@39 3fe1ab16-cfe0-e34b-8c9f-7d8c168d430d
This commit is contained in:
David Arranz 2012-09-30 17:08:01 +00:00
parent 5753c6c14e
commit 7aa32d3238
23 changed files with 2354 additions and 894 deletions

View File

@ -36,90 +36,9 @@ class EquipoController extends Controller {
);
}
/**
* Creates a new model.
* If creation is successful, the browser will be redirected to the 'view' page.
*/
public function actionCreate($tipo) {
//Yii::import('ext.multimodelform.MultiModelForm');
$model = new Usuario;
$model->tipo = $tipo;
if ($tipo = 'C') {
$model->empresa = new Empresa();
}
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
if (isset($_POST['Usuario'])) {
$model->attributes = $_POST['Usuario'];
if ($model->save() && $model->empresa->save()) {
//$masterValues = array ('candidato_id'=>$model->id);
$this->redirect(array('view', 'id' => $model->id));
}
}
$this->render('create', array(
'model' => $model,
));
}
/**
* Actualiza un usuario.
* If update is successful, the browser will be redirected to the 'view' page.
* @param integer $id the ID of the model to be updated
*/
public function actionModificar($id) {
$model = $this->loadModel($id);
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
if (isset($_POST['Usuario'])) {
$model->attributes = $_POST['Usuario'];
if ($model->save()) {
Yii::app()->user->setFlash('success', Yii::t('profind', 'Se ha actualizado el perfil'));
$this->redirect(array('modificar', 'id' => $model->id));
}
}
$this->render('modificar', array(
'model' => $model,
));
}
/**
* Deletes a particular model.
* If deletion is successful, the browser will be redirected to the 'admin' page.
* @param integer $id the ID of the model to be deleted
*/
public function actionDelete($id) {
if (Yii::app()->request->isPostRequest) {
// we only allow deletion via POST request
$this->loadModel($id)->delete();
// if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser
if (!isset($_GET['ajax']))
$this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('admin'));
}
else
throw new CHttpException(400, 'Invalid request. Please do not repeat this request again.');
}
public function actionIndex() {
$consulta = new CDbCriteria();
$consulta->addCondition('id_empresa = ' . Yii::app()->user->id_empresa);
$consulta->addCondition('id != ' . Yii::app()->user->id);
$invitacion = new FormularioInvitarAgente;
// if it is ajax validation request
// if (isset($_POST['ajax']) && $_POST['ajax'] === 'invitacion-agente-form') {
// echo CActiveForm::validate($invitacion);
// Yii::app()->end();
// }
if (isset($_POST['FormularioInvitarAgente'])) {
$invitacion->attributes = $_POST['FormularioInvitarAgente'];
@ -145,7 +64,11 @@ class EquipoController extends Controller {
}
}
$agentes = Usuario::model()->findAll($consulta);
$agentes = Usuario::model()->equipo()->findAll();
if (count($agentes) >= Yii::app()->user->subscripcion->producto->n_agentes)
$invitacion = NULL;
$this->render('index', array(
'agentes' => $agentes,
'invitacion' => $invitacion,

View File

@ -20,18 +20,21 @@ class FormularioInvitarAgente extends CFormModel {
array('nombre, email', 'required'),
array('nombre, email, mensaje', 'safe'),
array('email', 'email'),
//array('email', 'comprobarEmailRepetido', 'message' => Yii::t('profind', 'Ya existe un agente con el mismo email')),
array('email', 'comprobarEmailRepetido', 'message' => Yii::t('profind', 'Ya existe un agente con el mismo email')),
);
}
public function comprobarEmailRepetido($email, $message) {
public function comprobarEmailRepetido($attribute, $params) {
$consulta = new CDbCriteria();
$consulta->addCondition('id_empresa = ' . Yii::app()->user->id_empresa);
$consulta->addCondition('email = ' . $email);
$consulta->addColumnCondition(array(
'id_empresa' => Yii::app()->user->id_empresa,
'email' => $this->$attribute
));
$consulta->limit = 1;
if (Usuario::model()->count($consulta) != '0')
$this->addError($email, $message);
if (Usuario::model()->count($consulta) != '0') {
$this->addError($attribute, $params['message']);
}
}
}

View File

@ -92,6 +92,18 @@ class Usuario extends CActiveRecord {
);
}
public function scopes() {
return array(
'equipo' => array(
'condition' => 'id_empresa = :id_empresa and id <> :id',
'params' => array(
'id_empresa' => Yii::app()->user->id_empresa,
'id' => Yii::app()->user->id
)
)
);
}
/**
* @return array customized attribute labels (name=>label)
*/
@ -203,4 +215,9 @@ class Usuario extends CActiveRecord {
public function encrypt($value) {
return md5($value);
}
public function getNombreCompleto() {
return $this->nombre . ' ' . $this->apellidos;
}
}

View File

@ -29,7 +29,7 @@ a, button, input {
}
.heading h1, .heading h2, .heading h3, h1.heading, h2.heading, h3.heading, .modal-header h3 {
font-family: helvetica, arial, sans-serif;
font-weight: bold;
font-weight: normal;
}
.heading .btn {
vertical-align: bottom;
@ -158,7 +158,7 @@ form .row-fluid + .row-fluid {
margin-top: 10px !important
}
.main_content .row-fluid + .row-fluid {
margin-top: 30px
margin-top: 10px
}
.nav-pills + .nav-pills {
margin-left: 10px;
@ -613,12 +613,18 @@ input.focused {
background-color: #f2dede;
border-color: #b94a48;
}
.f_error label.error {
.f_error label.error, .f_error .errorMessage {
display: block;
font-size: 11px;
font-weight: 700;
color: #C62626;
}
.f_error .errorMessage {
font-weight: normal;
margin-top: -5px;
}
input[type="text"] + label.error, input[type="password"] + label.error, select + label.error, textarea + label.error {
margin-top: -6px
}
@ -1004,7 +1010,7 @@ a.act.disabled:hover, .act[disabled]:hover {
}
.ov_boxes .ov_text {
text-align: left;
width: 150px;
width: 300px;
font-size: 12px;
float: left;
padding: 9px 10px 7px 0;
@ -1059,7 +1065,8 @@ a.act.disabled:hover, .act[disabled]:hover {
border-top: none;
}
.w-box-content.cnt_a {
padding: 10px
padding: 10px;
background: #F2F2F2;
}
.w-box-content table, .w-box-content pre {
margin-bottom: 0
@ -1125,21 +1132,6 @@ a.act.disabled:hover, .act[disabled]:hover {
-ms-border-radius: 4px;
border-radius: 4px;
}
/* sortable/searchable list */
.user_list {
list-style: none;
margin: 0;
}
.user_list li {
padding: 0 8px 8px;
margin-bottom: 8px;
border-bottom: 1px dashed #dcdcdc;
line-height: normal;
}
.user_list small {
font-size: 11px;
color: #9b9b9b;
}
/* chat */
.chat_box select {
margin: 0
@ -1389,3 +1381,92 @@ label, input, button, select, textarea, select, textarea, input[type="text"], in
margin: 0 auto;
}
/* paginación */
.pagination ul > li > div > a,.pagination ul > li > div > span {
float:left;
padding:0 14px;
line-height:38px;
text-decoration:none;
background-color:#ffffff;
border:1px solid #dddddd;
border-left-width:0;
}
.pagination ul > li > div > a:hover,.pagination ul > .active > div > a,.pagination ul > .active > div > span {
background-color:#f5f5f5;
}
.pagination ul > .active > div > a,.pagination ul > .active > div > span {
color:#999999;
cursor:default;
}
.pagination ul > .disabled > div > span,.pagination ul > .disabled > div > a,.pagination ul > .disabled > div > a:hover {
color:#999999;
cursor:default;
background-color:transparent;
}
.pagination ul > li:first-child > div > a,.pagination ul > li:first-child > div > span {
border-left-width:1px;
-webkit-border-radius:3px 0 0 3px;
-moz-border-radius:3px 0 0 3px;
border-radius:3px 0 0 3px;
}
.pagination ul > li:last-child > div > a,.pagination ul > li:last-child > div > span {
-webkit-border-radius:0 3px 3px 0;
-moz-border-radius:0 3px 3px 0;
border-radius:0 3px 3px 0;
}
.pagination {
height:26px;
}
.pagination a.active {
background-color:#f5f5f5;
}
.pagination a.active {
color:#999;
cursor:default;
}
.pagination ul > li > a,.pagination ul > li > span,.pagination ul > li > div > a,.pagination ul > li > div > span {
line-height:24px;
padding:0 10px;
}
.pagination ul > li > div.page {
display:inline;
}
.pager a {
-webkit-border-radius:6px;
-moz-border-radius:6px;
-ms-border-radius:6px;
border-radius:6px;
padding:4px 12px;
}
/* para la lista de agentes */
.user_list {
list-style: none;
margin: 0;
}
.user_list li {
padding: 0 8px 8px;
margin-bottom: 8px;
border-bottom: 1px dashed #dcdcdc;
line-height: normal;
}
.user_list small, .user_list small a {
font-size: 11px;
color: #8a8a8a;
}
.user_list .span1 {
margin-left: 0;
margin-right: 2.5641%;
width: 7.98291%;
}

View File

@ -1,663 +0,0 @@
html {overflow-y: scroll}
body {color: #222;padding: 0}
html,body {height:100%}
/* fix for inputs inline shadow */
input[type="text"], input[type="email"], input[type="search"], input[type="password"] {
-webkit-appearance: none;
-moz-appearance: none;
}
a,button,input {outline:none !important}
/* webkit extra margin fix */
@media screen and (-webkit-min-device-pixel-ratio:0) {
button {margin: 0px}
}
/* external links */
.external_link {background: url(../images/external_link.png) no-repeat right center;padding-right:12px}
/* main headings*/
.heading {border-bottom: 1px solid #dcdcdc;margin-bottom: 18px;padding-bottom: 5px}
.heading h1,.heading h2,.heading h3,h1.heading,h2.heading,h3.heading,.modal-header h3 {font-family: helvetica, arial, sans-serif;font-weight:bold;}
.heading .btn {vertical-align:bottom;margin-left:10px}
/* fix for .label position */
h1 + .label {margin:13px 10px 0 0}
h2 + .label {margin:12px 10px 0 0}
h3 + .label {margin:7px 10px 0 0}
/* element separation */
.sepH_a {margin-bottom:5px}.sepH_b {margin-bottom:10px}.sepH_c {margin-bottom:20px}
.sepV_a {margin-right:5px}.sepV_b {margin-right:10px}.sepV_c {margin-right:20px}
.sepH_a_line {padding-bottom:6px;margin-bottom:18px;border-bottom:1px solid #dcdcdc}
.sepH_no {margin-bottom:0}
.tac {text-align:center}
.line_sep {border-bottom: 1px solid #dcdcdc;margin-bottom: 18px;padding-bottom: 5px}
.sml_t {font-size:11px}
.sml {font-size:11px;color:#9d9d9d}
.spacer-30px {
width: 100%;
height: 30px;
display: inline-block;
}
.spacer-10px {
width: 100%;
height: 10px;
display: inline-block;
}
/* accordion background animation */
.accordion-toggle {
-webkit-transition:background-color 0.2s ease-in-out;
-moz-transition:background-color 0.2s ease-in-out;
-o-transition:background-color 0.2s ease-in-out;
transition:background-color 0.2s ease-in-out;
}
/* text-shadow */
.ov_boxes .ov_text,.dshb_icoNav li a,.table th,.fc thead th{text-shadow: 1px 1px 0 #fff}
.dataTables_wrapper .sorting_asc,.dataTables_wrapper .sorting_desc {text-shadow: 1px 1px 0 #eee}
/* Bootstrap adjustments */
[class^="icon-"], [class*=" icon-"] {margin-top:0}
.btn-mini [class^="icon-"], btn-mini [class*=" icon-"] {margin-top:1px}
h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:700;color:inherit;text-rendering:optimizelegibility;margin:0}
h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:400;color:#999}
h1{font-size:30px;line-height:36px}
h2{font-size:24px;line-height:36px}
h3{font-size:18px;line-height:27px}
h4,h5,h6{line-height:18px}
h6{font-size:11px;color:#999;text-transform:uppercase}
h1 small,h2 small{font-size:18px}
h3 small,h4{font-size:14px}
h4 small,h5{font-size:12px}
.row-fluid div[class*="span"] {min-height:1px}
form .row-fluid + .row-fluid {margin-top:10px !important}
.main_content .row-fluid + .row-fluid {margin-top: 30px}
.nav-pills + .nav-pills {margin-left: 10px;padding-left:10px;border-left: 1px solid #dcdcdc}
.nav-pills > li > a {padding: 5px 8px}
.navbar-fixed-top, .navbar-fixed-bottom {z-index:999}
.navbar-fixed-top .nav-collapse i {opacity:0.8}
.navbar-fixed-top .nav-collapse li:hover i {opacity:1}
.nav-list > li > a,.dropdown-menu li a {-webkit-border-radius: 4px;-moz-border-radius: 4px;-ms-border-radius: 4px;border-radius: 4px}
.navbar-fixed-top .navHover:after {height:1px;width:100%;bottom:-1px;position:absolute;content:'';display:block}
.navbar .nav > li > a.nav_condensed {padding-left:2px;padding-right:2px}
.pagination ul > li > div > a,.pagination ul > li > div > span {float: left;padding: 0 14px;line-height: 38px;text-decoration: none;background-color: #ffffff;border: 1px solid #dddddd;border-left-width: 0}
.pagination ul > li > div > a:hover,.pagination ul > .active > div > a,.pagination ul > .active > div > span {background-color: #f5f5f5}
.pagination ul > .active > div > a,.pagination ul > .active > div > span {color: #999999;cursor: default}
.pagination ul > .disabled > div > span,.pagination ul > .disabled > div > a,.pagination ul > .disabled > div > a:hover {color: #999999;cursor: default;background-color: transparent}
.pagination ul > li:first-child > div > a,.pagination ul > li:first-child > div > span {border-left-width: 1px;-webkit-border-radius: 3px 0 0 3px;-moz-border-radius: 3px 0 0 3px;border-radius: 3px 0 0 3px}
.pagination ul > li:last-child > div > a,.pagination ul > li:last-child > div > span {-webkit-border-radius: 0 3px 3px 0;-moz-border-radius: 0 3px 3px 0;border-radius: 0 3px 3px 0}
.pagination {height:26px}
.pagination a.active {background-color: #f5f5f5}
.pagination a.active {color: #999;cursor: default}
.pagination ul > li > a,.pagination ul > li > span,.pagination ul > li > div > a,.pagination ul > li > div > span {line-height: 24px;padding:0 10px}
.pagination ul > li > div.page {display:inline}
.pager a {-webkit-border-radius: 6px;-moz-border-radius: 6px;-ms-border-radius: 6px;border-radius: 6px;padding:4px 12px}
.label {cursor:default;font-size:11px}
.label-important,.badge-error {background: #C62626}
.label-success,.badge-success {background: #70A415}
.label-warning,.badge-warning {background: #F5AA1A}
.label-info,.badge-info {background: #058DC7}
.alert .close {top:0}
.alert-block p + p,.alert-block ul + p,.alert-block p + ul {margin-top:10px}
.alert-block h4 + p,.alert-block h4 + ul {margin-top:5px}
.icon-sw {width:16px;height:16px;display:inline-block;background-repeat: no-repeat;background-position: center center}
.well {-webkit-box-shadow: none;-moz-box-shadow: none;-ms-box-shadow: none;box-shadow: none}
.dropdown-menu li {padding:0 5px}
.dropdown-menu li a {padding:3px 20px 3px 8px;position:relative}
.modal-footer {padding:7px 15px 8px}
.modal {border:8px solid rgba(0, 0, 0, 0.5);-webkit-box-shadow: none;-moz-box-shadow: none;-ms-box-shadow: none;box-shadow: none}
.modal-header {background:#e4e4e4;border-color:#d4d4d4;padding:5px 15px}
.modal-header .close {margin-top:5px}
.modal-body{padding:20px 15px}
.modal-backdrop, .modal-backdrop.fade.in {opacity:.1;background:#777}
.main_content .accordion-heading .accordion-toggle {background-color:#f5f5f5;color:#222;text-decoration:none;background-image: url(../images/acc_icons.png);background-position: 98% 12px;background-repeat:no-repeat}
.main_content .accordion-heading .accordion-toggle:hover {background-color:#e5e5e5}
.main_content .accordion-heading .acc-in {background-position:98% -34px}
.btn-gebo {text-shadow: 0px -1px 0px #004f6f;color:#fff;background-color:#006d8d;background-image:-moz-linear-gradient(top, #1e8bab, #004f6f); background-image: -ms-linear-gradient(top, #1e8bab, #004f6f); background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#1e8bab), to(#004f6f)); background-image: -webkit-linear-gradient(top, #1e8bab, #004f6f); background-image: -o-linear-gradient(top, #1e8bab, #004f6f); background-image: linear-gradient(top, #1e8bab, #004f6f); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#1e8bab', endColorstr='#004f6f', GradientType=0); border-color: #006D8D #004f6f #004f6f #006D8D; border-color: rgba(0, 0, 0, 0.25) rgba(0, 0, 0, 0.35) rgba(0, 0, 0, 0.35) rgba(0, 0, 0, 0.25); }
.btn-gebo:hover, .btn-gebo:active, .btn-gebo.active, .btn-gebo.disabled, .btn-gebo[disabled] {background-color: #004f6f}
.btn-gebo:hover {color:#fff;text-shadow: 0px -1px 0px #003151}
.btn-gebo:focus {color: #fff;-webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); border-color: #006D8D #004f6f #004f6f #006D8D; border-color: rgba(0, 0, 0, 0.25) rgba(0, 0, 0, 0.35) rgba(0, 0, 0, 0.35) rgba(0, 0, 0, 0.25); }
.btn-gebo.active, .btn-gebo:active { background-image: none;-webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); color: #64d1f1; }
.table-striped tbody tr:nth-child(2n) td, .table-striped tbody tr:nth-child(2n) th {background: #fff}
.modal_box {background: #fff;padding:20px}
.modal_box form {background: #fff}
#colorbox ~ .bootstrap-timepicker,#colorbox ~ .colorpicker,#colorbox ~ .datepicker {z-index:10000}
textarea, input {outline: none}
tr.rowlink td {cursor:pointer}
tr.rowlink td.nolink {cursor:auto}
.table tbody tr.rowlink:hover td {background-color: #efefef}
a.rowlink {font: inherit;color: inherit;text-decoration: inherit}
.navbar .nav > li > a:focus {color:#fff}
/* header */
.navbar .brand {width: 200px;padding-bottom:0;padding-top:0;font: 100 18px/36px helvetica, arial, sans-serif;text-decoration:none;color: #fff;text-shadow:none}
.navbar .brand i {margin-top:5px}
.navbar .caret {opacity: .6;filter: alpha(opacity=60)}
.navbar .user_menu {margin-left: 0}
.navbar .user_menu .nb_boxes {margin:9px 0 0}
.navbar .user_menu .nb_boxes .label {background: transparent;background:rgba(0,0,0,.2);padding:3px 4px}
.navbar .user_menu .nb_boxes a {cursor:pointer;float:left;margin-right:8px}
.navbar .user_menu .nb_boxes a:last-child {margin:0}
.navbar .user_menu .user_avatar {margin-right:6px;height:20px}
.btn_menu {display:none}
/* main content */
#maincontainer {background-image: url(../images/main_bg.gif);background-repeat:repeat-y;min-height:100%}
#contentwrapper{float: left;width: 100%}
.main_content{padding:64px 30px 30px;background:#fff;border-left:1px solid transparent;margin-left:240px}
.main_content li{line-height:22px}
/* sidebar */
.sidebar{margin-left:-100%;width:240px;float:left;position:relative}
.sidebar_sep{background:#efefef;clear:both;float:none;height:5px;border-color:#ccc;border-style:solid;border-width:1px 0;margin:14px 0}
.sidebar_switch{text-indent:-10000px;width:16px;position:fixed;left:220px;top:45px;height:14px;cursor:pointer;z-index:100;display:block;opacity:.5}
.on_switch {background: url(../images/sidebar_switch.png) no-repeat 0 -19px}
.off_switch {background: url(../images/sidebar_switch.png) no-repeat 0 -1px}
.sidebar_inner form{padding:14px 0 9px 15px}
.sidebar_inner form input{margin:0}
.sidebar_hidden .sidebar {display:none}
.sidebar_hidden .sidebar_switch {left:4px;}
.sidebar_hidden .main_content {margin:0;border-left:none}
.sidebar_hidden {background: #fff}
.sidebar_hidden #maincontainer {background: #fff}
.sidebar_info {width:180px;position:relative;left:30px;bottom:10px}
.sidebar_info ul {padding:5px 10px;margin:0;font-size:11px;background:#fafafa;border:1px solid #e5e5e5;-webkit-border-radius: 6px;-moz-border-radius: 6px;-ms-border-radius: 6px;border-radius: 6px}
.sidebar_info ul li {line-height:26px;overflow:hidden;border-bottom:1px dashed #ccc}
.sidebar_info ul li:last-child {border:none}
.sidebar_info .act {float:right}
.sidebar .accordion {border-top: 1px solid #ccc;margin-bottom: 20px;margin-right:1px}
.sidebar .accordion-heading {text-shadow: 1px 1px 0 #efefef;background: #e0e0e0;-webkit-box-shadow: inset 0px 1px 0px 0px #ececec;box-shadow: inset 0px 1px 0px 0px #ececec}
.sidebar .accordion-heading a:hover {background-color: #cfcfcf}
.sidebar .accordion-group{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;margin-bottom:0;border-color:#ccc;border-style:solid;border-width:0 0 1px}
.sidebar .accordion-group a{color:#222;text-decoration:none!important}
.sidebar .accordion-group .active a{color:#fff}
.sidebar .accordion-group .accordion-heading a{color:#222}
.sidebar .accordion-inner{border-top:1px solid #ccc;background:#fafafa}
.sdb_h_active a {background: url("../images/bullet_green.png") no-repeat 98% center}
/* error pages */
.error_page {background:#eee}
.error_page,.error_page body,.error_page .error_box {height:100%}
.error_page h1 {font-family: 'Jockey One', sans-serif;font-size: 52px;line-height:1.1;text-transform: uppercase;color: #067ead;text-shadow: 2px 2px 0px rgba(255,255,255,.5), 4px 4px 0px rgba(0,0,0,.1);margin-bottom:10px;padding:40px 0 0 300px}
.error_page p {color:inherit;font-size:16px;line-height:24px;font-weight:200;margin-left:300px}
.error_page .back_link {margin-left:300px}
.error_page .error_box {padding:0;width:72%;margin: 0 auto}
/* search page */
.search_page .well {padding:10px 20px;line-height:26px}
.search_page .well select {margin:0;width:auto}
.search_page .search_panel {border:1px solid #e0e0e0;-webkit-border-radius: 6px;-moz-border-radius: 6px;-ms-border-radius: 6px;border-radius: 6px;margin-bottom:20px}
.search_page .search_item {border-bottom:1px solid #e0e0e0;padding:10px 20px 10px 30px;position:relative}
.search_page .search_item:nth-child(even) {background:#f2f8fd}
.search_page .search_item:last-child {border:none}
.search_page .search_content {padding-left:110px}
.search_page .search_content h4 {font-size:14px;margin-bottom:6px}
.search_page .search_content h4 {vertical-align:text-top}
.search_page .search_content strong {color:#666}
.search_page .search_content small {color:#666;font-size:11px}
.search_page .searchNb {position:absolute;top:10px;left:10px;color:#ccc;font-size:11px}
.search_page .result_view a {opacity:0.3}
.search_page .result_view a.active {opacity:1}
.search_page .box_view {border:none;margin-left:-1%}
.search_page .box_view .search_item {margin-left:1%;border:1px solid #e0e0e0;height:200px;-webkit-border-radius: 6px;-moz-border-radius: 6px;-ms-border-radius: 6px;border-radius: 6px;margin:0 0 1% 1%;float:left;width:32.333%;-webkit-box-sizing: border-box;-moz-box-sizing: border-box;-ms-box-sizing: border-box;box-sizing: border-box}
.search_page .box_view h4 {height:20px;overflow:hidden}
.search_page .box_view .item_description {max-height:92px;overflow:hidden}
.search_page .box_view .label {position:absolute;top:-9px;right:-6px}
.sidebar_filters {padding:30px 30px 20px}
.sidebar_filters h3 {font-size:13px;color:#067EAD}
.sidebar_filters .filter_items {padding:5px 10px 10px;margin-bottom:10px;border-bottom:1px dashed #ccc}
/* forms */
.formRow:last-child input, .formRow:last-child textarea, .formRow:last-child select, .uneditable-input {margin-bottom: 0}
.formRow small {display:block;font-size:11px;color:#999;line-height:14px}
.formSep {margin-bottom:12px;padding-bottom:12px;border-bottom:1px dashed #dcdcdc}
.stacked select, .stacked input[type="text"],.stacked textarea {display:block}
.help-inline,.help-block {font-size:11px;margin:-4px 0 0 2px}
.form-horizontal .help-block {margin-top:2px}
.form-horizontal .control-group {margin-bottom:14px}
input.focused {border-color: rgba(82,168,236,.8);-webkit-box-shadow: inset 0 1px 3px rgba(0,0,0,.1), 0 0 8px rgba(82,168,236,.6);-moz-box-shadow: inset 0 1px 3px rgba(0,0,0,.1), 0 0 8px rgba(82,168,236,.6);box-shadow: inset 0 1px 3px rgba(0,0,0,.1), 0 0 8px rgba(82,168,236,.6);outline: 0;z-index:2;position:relative}
.input-prepend .input-xlarge {
width: 243px;
}
.f_warning > label,.f_warning .help-block,.f_warning .help-inline{color:#c09853}
.f_warning input,.f_warning select,.f_warning textarea{color:#c09853;border-color:#c09853}
.f_warning input:focus,.f_warning select:focus,.f_warning textarea:focus{-webkit-box-shadow:0 0 6px #dbc59e;-moz-box-shadow:0 0 6px #dbc59e;box-shadow:0 0 6px #dbc59e;border-color:#a47e3c}
.f_warning .input-prepend .add-on,.f_warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853}
.f_error input,.f_error select,.f_error textarea{color:#b94a48;border-color:#b94a48}
.f_error input:focus,.f_error select:focus,.f_error textarea:focus{-webkit-box-shadow:0 0 6px #d59392;-moz-box-shadow:0 0 6px #d59392;box-shadow:0 0 6px #d59392;border-color:#953b39}
.f_error .input-prepend .add-on,.f_error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48}
.f_error label.error {display:block;font-size:11px;font-weight:700;color:#C62626}
input[type="text"] + label.error,input[type="password"] + label.error, select + label.error, textarea + label.error {margin-top:-6px}
.f_error label.radio + label.error,.f_error label.checkbox + label.error {margin-top:5px}
.input-prepend.f_error label.error,.input_append.f_error label.error {margin-top:4px}
.control-group.f_error label.error {margin-top:2px}
.f_success > label,.f_success .help-block,.f_success .help-inline{color:#468847}
.f_success input,.f_success select,.f_success textarea{color:#468847;border-color:#468847}
.f_success input:focus,.f_success select:focus,.f_success textarea:focus{-webkit-box-shadow:0 0 6px #7aba7b;-moz-box-shadow:0 0 6px #7aba7b;box-shadow:0 0 6px #7aba7b;border-color:#356635}
.f_success .input-prepend .add-on,.f_success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847}
.ui-tooltip label {margin-bottom:0}
.f_legend {font-size:16px;line-height:16px;padding-bottom:10px;margin-bottom:22px;border-bottom:1px solid #dcdcdc}
.radio.inline, .checkbox.inline {margin-left:0 !important;margin-right:10px}
.f_req, span.required {font-size:13px;color:#ff0000;font-family: helvetica, arial, sans-serif}
.form-horizontal .controls.text_line {line-height:25px}
.row-fluid input[class*="span"],.row-fluid textarea[class*="span"],.row-fluid select[class*="span"] {display:inline-block}
.row-fluid input[class*="span"] + input[class*="span"], .row-fluid textarea[class*="span"] + textarea[class*="span"], .row-fluid select[class*="span"] + select[class*="span"] {display:block}
textarea {resize: none}
.errorSummary ul {
margin: 0;
list-style: none;
}
input.error, select.error, textarea.error {color:#b94a48;border-color:#b94a48}
input:focus.error, select:focus.error, textarea:focus.error {-webkit-box-shadow:0 0 6px #d59392;-moz-box-shadow:0 0 6px #d59392;box-shadow:0 0 6px #d59392;border-color:#953b39}
/* file upload */
.btn.btn-file{overflow:hidden;position:relative;vertical-align:middle}
.btn.btn-file > input[type=file]{width:100%;position:absolute;left:0;top:0;opacity:0;cursor:pointer}
.fileupload{margin-bottom:9px}
.fileupload .uneditable-input{display:inline-block;margin-bottom:0;vertical-align:middle;height:28px !important;-webkit-box-sizing: border-box;-moz-box-sizing: border-box;-ms-box-sizing: border-box;box-sizing: border-box}
.fileupload .thumbnail{overflow:hidden;display:inline-block;margin-bottom:5px;vertical-align:middle;text-align:center}
.fileupload .thumbnail > img{display:block;vertical-align:middle;max-height:100%}
.fileupload .btn{vertical-align:middle}
.fileupload-exists .fileupload-new,.fileupload-new .fileupload-exists{display:none}
.fileupload-inline .fileupload-controls{display:inline}
.fileupload-new .input-append .btn-file{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}
.fileupload .fileupload-preview {vertical-align:middle}
.fileupload .close.fileupload-exists {vertical-align:middle}
/* multiselect 2-col */
#multi_search {width:148px;margin:4px}
.ms-container {margin-bottom:10px}
.ms-container .ms-optgroup li.ms-elem-selectable {padding-left:20px}
.ms-container h4 {font-size:14px;font-weight:100;padding:4px 6px;background:#efefef;border-bottom:1px solid #ccc;-webkit-border-radius: 4px 4px 0px 0px;border-radius: 4px 4px 0px 0px}
.ms-container #multi_search + .ms-list {height:196px}
#sForm_deselect {margin:2px;display:block}
/* input spinner */
.ui-spinner button {height:14px;position:absolute;background:none;border:none;width:18px;padding:0;background: url(../images/spinner_arrows.gif) no-repeat 0 -100px;cursor:pointer}
.ui-spinner .ui-spinner-up {top:0;right:0;background-position:0 0}
.ui-spinner .ui-spinner-down {top:14px;right:0;background-position:0 -14px}
.ui-spinner .ui-spinner-up:hover {background-position:-18px 0}
.ui-spinner .ui-spinner-down:hover {background-position:-18px -14px}
.ui-spinner input,.ui-spinner input:focus {display:block !important;margin:0 !important;padding:0;min-height:28px !important;height:28px !important;-webkit-box-shadow:none;-moz-box-shadow:none;-ms-box-shadow:none;box-shadow:none}
.ui-spinner ul {margin:0}
.ui-spinner li {line-height:28px}
.ui-spinner{-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);position:relative;margin-bottom:10px;font-size:13px;height:28px;line-height:28px;color:#555;background-color:#fff;border:1px solid #ccc;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;overflow:hidden;padding:0 24px 0 8px}
.ui-spinner .ui-spinner-box {background: none;border: none !important}
/* animated progresbars */
.pbar .ui-progressbar-value {display:block !important}
.pbar {overflow: hidden}
.percent,.elapsed {position:relative;text-align: right; font-size: 12px}
/* ul list styles */
.list_a,.list_b,.list_c,.list_d {margin-left:0;list-style:none}
.list_a li {background: url(../images/bullet_blue.png) no-repeat 3px 4px;padding-left:25px}
.list_b li {background: url(../images/bullet_green.png) no-repeat 3px 4px;padding-left:25px}
.list_c li {background: url(../images/bullet_orange.png) no-repeat 3px 4px;padding-left:25px}
.list_d li {background: url(../images/bullet_red.png) no-repeat 3px 4px;padding-left:25px}
/* prettyprint <pre> block */
.lit{color:#195f91}
.fun{color:#dc322f}
.str,.atv{color:#D14}
.kwd,.linenums .tag{color:#1e347b}
.typ,.atn,.dec,.var{color:teal}
.pln{color:#48484c}
.prettyprint{background-color:#f7f7f9;border:1px solid #e1e1e8;padding:8px}
.prettyprint.linenums{-webkit-box-shadow:inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;-moz-box-shadow:inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;box-shadow:inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0}
ol.linenums{margin:0 0 0 33px}
ol.linenums li{padding-left:12px;color:#bebec5;line-height:18px;text-shadow:0 1px 0 #fff}
.com,.pun,.opn,.clo{color:#93a1a1}
/* rowlink plugin */
[data-rowlink] td, td[data-rowlink],[data-msg_rowlink] td, td[data-msg_rowlink] {cursor: pointer}
[data-rowlink] td.nohref, td.nohref[data-rowlink], [data-msg_rowlink] td.nohref, td.nohref[data-msg_rowlink] {cursor:default}
/* actions links */
.act{background:inherit;border:none;display:inline;color:#555;font-weight:700;-webkit-transition:text-shadow .1s linear;-moz-transition:text-shadow .1s linear;-ms-transition:text-shadow .1s linear;-o-transition:text-shadow .1s linear;transition:text-shadow .1s linear;padding:0}
a.act:hover{color:#333;text-decoration:none;text-shadow:1px 1px 3px rgba(85,85,85,0.5)}
.act-primary{color:#006dcc}
a.act-primary:hover{color:#04c;text-shadow:1px 1px 3px rgba(0,109,204,0.5)}
.act-info{color:#49afcd}
a.act-info:hover{color:#2f96b4;text-shadow:1px 1px 3px rgba(75,175,206,0.5)}
.act-success{color:#70A415}
a.act-success:hover{color:#468847;text-shadow:1px 1px 3px rgba(81,164,81,0.5)}
.act-warning{color:#F5AA1A}
a.act-warning:hover{color:#f89406;text-shadow:1px 1px 3px rgba(192,152,84,0.5)}
.act-danger{color:#C62626}
a.act-danger:hover{color:#bd362f;text-shadow:1px 1px 3px rgba(185,72,70,0.5)}
.act.disabled,.act[disabled]{color:#AAA;cursor:not-allowed}
a.act.disabled:hover,.act[disabled]:hover{color:#AAA;text-shadow:none}
.form-actions .act{line-height:30px}
/* tabs */
.tabbable-bordered{-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}
.tabbable-bordered > .nav-tabs {margin: 0}
.tabbable-bordered .tab-content {border-color: #ddd;border-style:solid;border-width:0;overflow:auto;padding:18px 0 0}
.tabbable-bordered > .tab-content{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;border-width:0 1px 1px;padding:20px 20px 10px}
/* dashboard icon navigation*/
.dshb_icoNav {margin:0;text-align:center}
.dshb_icoNav li {-webkit-box-shadow: inset 0px 1px 0px 0px #fff;box-shadow: inset 0px 1px 0px 0px #fff;text-align:center;list-style:none;display:inline-block;margin:0 5px 10px;background: #f9f9f9;background: -moz-linear-gradient(top, #f9f9f9 0%, #efefef 100%);background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f9f9f9), color-stop(100%,#efefef));background: -webkit-linear-gradient(top, #f9f9f9 0%,#efefef 100%);background: -o-linear-gradient(top, #f9f9f9 0%,#efefef 100%);background: -ms-linear-gradient(top, #f9f9f9 0%,#efefef 100%);background: linear-gradient(top, #f9f9f9 0%,#efefef 100%);filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f9f9f9', endColorstr='#efefef',GradientType=0 );border:1px solid #e2e2e2;-webkit-border-radius: 6px;-moz-border-radius: 6px;-ms-border-radius: 6px;border-radius: 6px}
.dshb_icoNav li:hover {border-color:#d2d2d2;-moz-box-shadow: 0 0 6px #ccc;-webkit-box-shadow: 0 0 6px #ccc;box-shadow: 0 0 6px #ccc}
.dshb_icoNav li a {position:relative;display:block;padding:42px 8px 8px;width:88px;height:22px;font-size:12px;color:#222;background-repeat:no-repeat;background-position: center 10px}
.dshb_icoNav li a:hover {text-decoration:none}
.dshb_icoNav .label {position:absolute;right:-5px;top:-5px}
.iconNav_left {text-align:left}
.iconNav_right {text-align:right}
/* overview boxes (+small charts) */
.ov_boxes {list-style: none;display: inline-block;margin:0 0 -20px;text-align:center}
.ov_boxes li {-webkit-box-shadow: inset 0px 1px 0px 0px #fff;box-shadow: inset 0px 1px 0px 0px #fff;line-height:18px;background: #f9f9f9;background: -moz-linear-gradient(top, #f9f9f9 0%, #ededed 100%);background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f9f9f9), color-stop(100%,#ededed));background: -webkit-linear-gradient(top, #f9f9f9 0%,#ededed 100%);background: -o-linear-gradient(top, #f9f9f9 0%,#ededed 100%);background: -ms-linear-gradient(top, #f9f9f9 0%,#ededed 100%);background: linear-gradient(top, #f9f9f9 0%,#ededed 100%);filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f9f9f9', endColorstr='#ededed',GradientType=0 );border: 1px solid #e2e2e2;display: inline-block;margin:0 10px 10px;-webkit-border-radius: 4px;-moz-border-radius: 4px;-ms-border-radius: 4px;border-radius: 4px;padding: 0 10px}
.ov_boxes .p_canvas{margin-right:12px;float:left;border-right:1px solid #dcdcdc;-webkit-box-shadow:1px 0 0 0 #fff;-moz-box-shadow:1px 0 0 0 #fff;box-shadow:1px 0 0 0 #fff;padding:10px 14px 6px 4px}
.ov_boxes .ov_text{text-align:left;width:150px;font-size:12px;float:left;padding:9px 10px 7px 0}
.ov_boxes .ov_text strong{font-size:16px;display:block}
.p_canvas {width:50px}
/* widgets */
.w-box {-webkit-box-shadow: 0px 1px 2px 0px #efefef;box-shadow: 0px 1px 2px 0px #efefef}
.w-box + .w-box {margin-top:20px}
.w-box-header {height:32px;line-height:32px;border:1px solid #ddd;padding:0 10px;background: #fbfbfb;background: -moz-linear-gradient(top, #fbfbfb 0%, #f1f1f1 100%);background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#fbfbfb), color-stop(100%,#f1f1f1));background: -webkit-linear-gradient(top, #fbfbfb 0%,#f1f1f1 100%);background: -o-linear-gradient(top, #fbfbfb 0%,#f1f1f1 100%);background: -ms-linear-gradient(top, #fbfbfb 0%,#f1f1f1 100%); background: linear-gradient(top, #fbfbfb 0%,#f1f1f1 100%);filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fbfbfb', endColorstr='#f1f1f1',GradientType=0 );font-weight:700;color:#666;font-size:11px}
.w-box-header .btn-group {margin-top:5px;line-height:1}
.w-box-header .dropdown-menu {font-size:12px;left:auto;right:0}
.w-box-header input {padding:2px;margin:-2px 0 0}
.w-box-content {border:1px solid #ddd;border-top:none}
.w-box-content.cnt_a {padding:10px}
.w-box-content table,.w-box-content pre {margin-bottom:0}
.w-box-content pre {-webkit-border-radius: 0 0 0 0;-moz-border-radius: 0 0 0 0;-ms-border-radius: 0 0 0 0;border-radius: 0 0 0 0;border:none}
.w-box-content .no-th tr:first-child td {border-top:none}
.w-box-content .gebo-upload {margin:0}
.w-box-content .gebo-upload .plupload_filelist_header {border-top:none}
.w-box-content .gebo-upload .plupload_filelist_footer {border-bottom:none}
.w-box-content .nav-tabs {border-bottom:none;position:relative;top:-28px;margin-bottom:-18px}
.w-box-content .nav-tabs {float:right;clear:both}
.w-box-content .nav-tabs > li > a {padding:4px 6px;font-size:11px}
.w-box-content .nav-tabs > li.active > a {background:#fff !important}
.w-box-content .nav-tabs > li > a:hover {border-color:#ddd #ddd transparent;background: transparent}
.w-box-content .tab-content {clear:both}
.w-box-content .tab-pane {padding:0 10px 10px}
.w-box-footer {border:1px solid #ddd;padding:8px 10px;background: #fdfdfd;border-top:none}
.w-box-footer .pagination {margin:0; font-size:11px;height:22px}
.w-box-footer .pagination a {line-height:20px}
.page-toolbar {background:#f5f8fa;border:1px solid #ddd;padding:4px;margin-bottom:15px;-webkit-border-radius: 4px;-moz-border-radius: 4px;-ms-border-radius: 4px;border-radius: 4px}
/* sortable/searchable list */
.user_list {list-style: none;margin:0}
.user_list li {padding:0 8px 8px;margin-bottom:8px;border-bottom: 1px dashed #dcdcdc;line-height:normal }
.user_list small {font-size: 11px;color:#9b9b9b}
/* file manager */
#kcfinder_iframe {height:500px;margin-bottom:30px;border:1px solid #adaba9}
/* icon list */
.icon_list_a,.icon_list_b,.icon_list_c,.icon_list_d {list-style: none;margin:0 0 30px}
.icon_list_a li,.icon_list_b li,.icon_list_d li {padding:4px 0;width:30px;text-align:center;border:1px solid #dcdcdc;float:left;margin:4px;-webkit-border-radius: 4px;-moz-border-radius: 4px;-ms-border-radius: 4px;border-radius: 4px}
.icon_list_c li {padding:4px 0;width:40px;text-align:center;border:1px solid #dcdcdc;float:left;margin:4px;-webkit-border-radius: 4px;-moz-border-radius: 4px;-ms-border-radius: 4px;border-radius: 4px}
/* aditional icons */
.icon-adt_trash,.icon-adt_atach,.icon-adt_enter {background: url(../images/adt-icons.png) no-repeat 0 0;width:16px;height:16px}
.icon-adt_atach {background-position:0 0}
.icon-adt_trash {background-position:0 -24px}
.icon-adt_enter {background-position:0 -47px;width:12px;height:12px}
/* chat */
.chat_box select {margin:0}
.chat_box .chat_content {border:1px solid #ddd;-webkit-border-radius:6px;border-radius:6px}
.chat_box .chat_message {margin-bottom:10px}
.chat_box .chat_editor_box {margin:10px;border:1px solid #ddd;-webkit-border-radius:6px;border-radius:6px;min-height:40px}
.chat_box .chat_editor_heading {height:20px;line-height:20px;padding:2px 8px 0}
.chat_box .chat_editor_box textarea {border:none;margin:0;-webkit-box-shadow:none;box-shadow:none;-webkit-border-radius: 0px 0px 6px 6px;border-radius: 0px 0px 6px 6px}
.chat_box .chat_editor_box .send_btns {margin:5px}
.chat_box .chat_heading {-webkit-box-shadow: inset 0px 1px 0px 0px #fefefe;box-shadow: inset 0px 1px 0px 0px #fefefe;font-size:12px;font-weight:700;color:#444;padding:6px 12px;font-size:13px;height:21px;line-height:22px;background:#f4f4f4;border-bottom:1px solid #ddd;-webkit-border-radius: 6px 6px 0px 0px;border-radius: 6px 6px 0px 0px}
.chat_box .chat_heading .chat_close {opacity:.8;cursor:pointer}
.chat_box .msg_window {height:300px;overflow-y:auto;margin:5px 10px}
.chat_box .chat_msg {margin:10px 5px}
.chat_box .chat_msg .chat_msg_heading {font-size:11px;padding:0 5px}
.chat_box .chat_msg .chat_msg_body {padding:4px 8px;border:1px solid #ddd;background:#fafafa;-webkit-border-radius: 6px;-moz-border-radius: 6px;-ms-border-radius: 6px;border-radius: 6px}
.chat_box .chat_msg .chat_msg_date {float:right}
.chat_box .chat_msg .chat_user_name {color:#CC333F;font-weight:700}
.chat_box .chat_msg p {margin:0}
.chat_box .chat_sidebar {border:1px solid #ddd;-webkit-border-radius: 6px;-moz-border-radius: 6px;-ms-border-radius: 6px;border-radius: 6px}
.chat_box .chat_sidebar .chat_user_list {margin:0}
.chat_box .chat_sidebar .chat_user_list li {list-style:none;border-bottom:1px solid #e6e6e6;overflow:hidden}
.chat_box .chat_sidebar .chat_user_list li:last-child {border:none}
.chat_box .chat_sidebar .chat_user_list li input {float:left;margin:15px 0 0 6px}
.chat_box .chat_sidebar .chat_user_list li a {display:block;margin-left:16px;padding:5px 20px 5px 12px;line-height:32px}
.chat_box .chat_sidebar .chat_user_list li a:hover {text-decoration:none}
.chat_box .chat_sidebar .chat_user_list li img {vertical-align:top;-webkit-border-radius: 4px;-moz-border-radius: 4px;-ms-border-radius: 4px;border-radius: 4px;margin-right:5px;border:1px solid #ddd}
.chat_box .chat_sidebar .chat_user_list li.online a {background: url(../images/bullet_green.png) no-repeat 98% center}
.chat_box .chat_sidebar .chat_user_list li.offline a {background: url(../images/bullet_red.png) no-repeat 98% center;cursor:default}
.chat_box .chat_sidebar .chat_user_list li.active {background-color:#ffffef}
.chat_box .chat_sidebar .chat_user_list li a span {color:#888;font-size:11px}
/* vcard */
.vcard .thumbnail {float:left}
.vcard > ul {list-style:none;margin:10px 0 0 120px;overflow:hidden}
.vcard > ul > li:first-child {border-top:1px dashed #dcdcdc}
.vcard > ul > li {padding:8px;border-bottom:1px dashed #dcdcdc;overflow:hidden}
.vcard .item-key {float:left;color:#888}
.vcard .vcard-item {margin-left:120px}
.vcard .v-heading {background:#F0F9FF;font-weight:700}
.vcard .v-heading span {font-weight:100;font-size:11px;color:#666}
.vcard .item-list-more,.vcard .thumbnail.item-list-more {display:none}
/* sidebar scroll */
.antiScroll{display:inline-block;position:relative;overflow:hidden}
.antiscroll-scrollbar{background:#bbb;background:rgba(0,0,0,0.5);-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px;-webkit-box-shadow:0 0 1px #fff;-moz-box-shadow:0 0 1px #fff;box-shadow:0 0 1px #fff;position:absolute;opacity:0;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);-webkit-transition:linear 300ms opacity;-moz-transition:linear 300ms opacity;-o-transition:linear 300ms opacity}
.antiscroll-scrollbar-shown{opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
.antiscroll-scrollbar-horizontal{height:7px;margin-left:2px;bottom:2px;left:0}
.antiscroll-scrollbar-vertical{width:7px;margin:2px 0;left:2px;top:0}
.antiscroll-inner{overflow-y:scroll}
.antiScroll,.antiscroll-content,.antiscroll-inner{width:240px}
.antiscroll-inner::-webkit-scrollbar,.antiscroll-inner::scrollbar{width:0;height:0}
/* sortable elements */
.ui-sortable-placeholder { border: 2px dashed #aaa;background:transparent;visibility: visible !important; height: 50px !important;margin-bottom:20px}
.ui-sortable-helper {z-index:2100 !important}
.ui-sortable-placeholder * { visibility: hidden; }
.ui-sortable {min-height:40px !important}
.ui-sortable .w-box-header {cursor:move}
.sort-disabled .w-box-header {cursor:default}
.sort_ph {background:#f8f8f8}
/* submenus */
.caret-right {display: inline-block;position:absolute;top: 8px;right: 10px;width: 0;height: 0;vertical-align: top;border-left: 4px solid #000;border-top: 4px solid transparent;border-bottom: 4px solid transparent;content: "";opacity: 0.6;filter: alpha(opacity=60)}
.dropdown-menu .sub-menu {left: 100%;position: absolute;top: 0;visibility: hidden;margin-top: -1px}
.dropdown-menu li {position:relative}
.dropdown-menu .sub-open {visibility: visible;display: block}
.navbar .sub-menu:before {border-bottom: 7px solid transparent;border-left: none;border-right: 7px solid rgba(0, 0, 0, 0.2);border-top: 7px solid transparent;left: -7px;top: 5px}
.navbar .sub-menu:after {
border-top: 6px solid transparent;
border-left: none;
border-right: 6px solid #fff;
border-bottom: 6px solid transparent;
left: 10px;
top: 6px;
left: -6px;
}
.sub-dropdown > a:hover .caret-right, .sub-dropdown.active > a .caret-right, .sub-dropdown.active > a:hover .caret-right {border-left: 4px solid #fff;opacity:1;filter: alpha(opacity=100);}
.navHover .dropdown-menu {display:block}
/* to top */
#toTop{display:none;text-decoration:none;position:fixed;bottom:10px;right:0;overflow:hidden;width:29px;height:32px;border:none;text-indent:100%;background:url(../images/ui.totop.png) no-repeat 0 0}
#toTopHover{background:url(../images/ui.totop.png) no-repeat 0 -32px;width:29px;height:32px;display:block;overflow:hidden;float:left;opacity:0;-moz-opacity:0;filter:alpha(opacity=0)}
#toTop:active,#toTop:focus{outline:none}
/* jquery 1.8, bootstrap 2.1 */
body {font-size:13px;line-height:18px}
h1, h2, h3, h4, h5, h6 {margin:0}
h3 {line-height:27px;font-size:18px}
label, input, button, select, textarea,
select, textarea, input[type="text"], input[type="password"], input[type="datetime"], input[type="datetime-local"], input[type="date"], input[type="month"], input[type="time"], input[type="week"], input[type="number"], input[type="email"], input[type="url"], input[type="search"], input[type="tel"], input[type="color"], .uneditable-input,
.btn {font-size:13px}
.navbar .nav > li > a {text-shadow:none;padding:9px 10px 11px}
.navbar .nav li.dropdown.open > .dropdown-toggle, .navbar .nav li.dropdown.active > .dropdown-toggle, .navbar .nav li.dropdown.open.active > .dropdown-toggle {background:none;color:#fff}
.navbar .nav li.dropdown .dropdown-toggle .caret, .navbar .nav li.dropdown.open .caret,
.navbar .nav li.dropdown.open > .dropdown-toggle .caret, .navbar .nav li.dropdown.active > .dropdown-toggle .caret, .navbar .nav li.dropdown.open.active > .dropdown-toggle .caret {border-bottom-color: #fff;border-top-color: #fff}
.nav .dropdown-toggle:hover .caret {opacity: 1;filter: alpha(opacity=100)}
/* media queries */
@media (min-width: 980px) {
.sidebar {position:fixed;top:40px;left:0;margin-left:0}
.navbar-fixed-top .nav-collapse {height:40px !important}
.navbar .nav > li > a {padding-top:10px}
/* fixed layout */
.gebo-fixed {max-width:940px;margin:0 auto}
.gebo-fixed header .container-fluid {max-width:940px;margin:0 auto}
.gebo-fixed #maincontainer {border-right:1px solid #ccc;border-left:1px solid #ccc}
.gebo-fixed .sidebar {left:50%;margin-left:-469px}
.gebo-fixed .sidebar_switch {left:50%;margin-left:-250px}
.gebo-fixed.sidebar_hidden .sidebar_switch {margin-left:-465px;left:50%}
.gebo-fixed .search_page .box_view .search_item {width:48%;height:210px;margin:0 0 2% 2%}
.gebo-fixed .activeMediaTable th.optional,.gebo-fixed .activeMediaTable td.optional{display:none}
.gebo-fixed .brand {width:120px}
.sidebar_right #maincontainer {background-image: url(../images/main_bg_right.gif);background-position: right 0 }
.sidebar_right .sidebar {left:auto;right:-1px}
.sidebar_right .sidebar_switch {left:auto;right:6px}
.sidebar_right .main_content {margin-right:240px;margin-left:0;border-left:none}
.sidebar_right.sidebar_hidden #maincontainer {background: #fff}
.sidebar_right.sidebar_hidden .main_content {margin:0}
.gebo-fixed.sidebar_right .sidebar {left:auto;right:50%;margin-left:0;margin-right:-470px}
.gebo-fixed.sidebar_right .sidebar_switch {left:auto;right:50%;margin-left:0;margin-right:-465px}
.gebo-fixed.sidebar_hidden.sidebar_right .sidebar_switch {laeft:auto;margin-left:0;margin-right:-465px;right:50%}
}
@media (max-width: 1279px) {
.search_page .box_view .search_item {width:49%}
}
@media (max-width: 979px) {
#maincontainer {background: #fff}
.row > [class*="span"],.navbar-fixed-top {margin:0 !important}
.navbar-fixed-top .container-fluid {padding:0 !important}
.navbar .brand {width:auto;line-height:18px;margin:3px 0 6px 34px}
.navbar .user_menu {padding-top:5px}
.navbar .user_menu .dropdown-menu {margin:8px 10px 0 0}
.navbar .user_menu > li > a {padding:0 10px 0 0}
.navbar-inner {position:relative;z-index:990;min-height:28px}
.nav-collapse a {color:#fff !important}
.nav-collapse .dropdown-menu li {padding:0}
.nav-collapse .dropdown-menu li a {font-weight:400}
.nav-collapse .sub-menu {display:block;left:0;right:auto;position:relative;visibility:visible}
.nav-collapse .caret-right {display:none}
.btn-navbar {margin-top:2px !important;padding:2px 8px !important}
.user_menu .dropdown {margin-left:10px}
.main_content {margin:0 !important;border:none !important;padding:28px 14px 20px}
.main_content .row-fluid + .row-fluid {margin-top:20px}
.sidebar {height: 400px;position:absolute;top:39px;left:0;background:#f1f1f1;border-width:0 1px;border-style:solid;border-color:#ccc;margin:0;-webkit-box-shadow: 1px 1px 4px rgba(0,0,0,0.2);-moz-box-shadow: 1px 1px 4px rgba(0,0,0,0.2);box-shadow: 1px 1px 4px rgba(0,0,0,0.2);z-index:1000;-webkit-border-radius: 0px 5px 5px 0px;border-radius: 0px 5px 5px 0px}
.sidebar:after {border-bottom: 6px solid #fff;border-left: 6px solid transparent;border-right: 6px solid transparent;content: "";display: inline-block;left: 15px;position: absolute;top: -6px}
.sidebar_hidden .sidebar {border:none}
.sidebar_switch {position:absolute;z-index:1000;left:5px !important;top:14px;padding:0 10px}
.off_switch {background-position:center 1px}
.on_switch {background-position:center -17px}
.sidebar_inner {padding-bottom:0 !important}
div.sticky-queue {z-index:10000;top:0}
.ms-container {background-position: 160px 83px}
.ms-container ul.ms-list {width:152px;}
#multi_search {width:136px}
.btn_menu {display:block;clear:both;padding:8px 0 6px;border-top:1px solid rgba(255,255,255,.2);box-shadow: 0 -1px 0 rgba(0,0,0,.2);text-align:center;position:relative;top:4px;cursor:pointer}
.btn_menu span {opacity:.8}
.ssw_trigger {display:none}
}
@media (max-width: 767px) {
.row-fluid > [class*="span"] + [class*="span"] {margin-top:20px}
.row-fluid input[class*="span"],.row-fluid textarea[class*="span"],.row-fluid select[class*="span"] {width:80%}
.input-prepend, .input-append {margin-bottom:10px}
form .row-fluid > [class*="span"] + [class*="span"] {margin-top:0}
.login_page .content_b {margin: 0 20px}
.search_page .box_view .search_item {width:99%;margin-bottom:3%}
.error_page .error_box {background:none;width:100%}
.error_page .error_box h1 {padding:40px 20px 0}
.error_page .error_box p {margin:0 20px 10px}
.error_page .error_box .back_link {margin:0 20px}
.style_switcher {display:none}
.dshb_icoNav {text-align:center}
.dshb_icoNav li {float:none;display:inline-block}
#cboxContent .video-js {width:100% !important;height:100% !important}
.vcard > .thumbnail {display:none}
.vcard > ul {margin:0}
.item-list .thumbnail {float:none;display:inline-block;margin:0 10px 10px 0}
}
@media (max-width: 479px) {
.login_page .login_box {width:100%}
.login_page .cnt_b {padding:20px 0;width:68%;margin:0 auto}
.-list-container {height:300px}
}
@media (min-width: 1681px) {
body {max-width:1680px;margin:0 auto}
header .container-fluid {max-width:1640px;margin:0 auto}
#maincontainer {border-right:1px solid #ccc;border-left:1px solid #ccc}
.main_content {border-left:none}
.sidebar {left:50%;margin-left:-839px}
.sidebar_switch {left:50%;margin-left:-620px}
.sidebar_hidden .sidebar_switch {margin-left:-832px;left:50%}
.sidebar_right .sidebar {right:50%;margin-left:0;margin-right:-840px}
.sidebar_right .sidebar_switch {left:auto;right:50%;margin-left:0;margin-right:-836px}
}

View File

@ -0,0 +1 @@
.DS_Store

View File

@ -0,0 +1,288 @@
Uniform
=======
Sexy form elements with jQuery. Now with HTML5 attributes
Version 1.8 (not yet released)
Works well with jQuery 1.6+. We've received patches to make it work with older versions of jQuery, back through version 1.3.
Licensed under the [MIT License](http://www.opensource.org/licenses/mit-license.php)
Installation
------------
Installation of Uniform is quite simple. First, make sure you have jQuery 1.4+ installed. Then youll want to link to the jquery.uniform.js file and uniform.default.css in the head area of your page:
<script src="jquery.uniform.js" type="text/javascript"></script>
<link rel="stylesheet" href="uniform.default.css" type="text/css"
media="screen" charset="utf-8" />
Basic usage
-----------
Using Uniform can be quite easy as well. Simply call:
$("select").uniform();
To "uniform" all possible form elements, just do something like this. Things that can't get styled appropriately will be skipped by Uniform.
$("select, input, a.button, button").uniform();
A complete tag in the HEAD section of your site can therefore look like this:
<script type='text/javascript'>
$(function(){
$("select, input:checkbox, input:radio, input:file").uniform();
});
</script>
Remember that it is essential to first follow the steps in the Installation section, above.
Extra parameters
----------------
You can pass in extra parameters to control certain aspects of Uniform. To pass in parameters, use syntax like this:
$("select").uniform({
param1: value,
param2: value,
param3: value
});
Alternately, you can specify global defaults by using the `defaults` property.
$.uniform.defaults.checkedClass = "uniformCheckedClass";
$.uniform.defaults.fileBtnText = "Pick a file";
### activeClass (string)
*Default:* "active"
Sets the class given to elements when they are active (pressed).
$("select").uniform({activeClass: 'myActiveClass'});
### autoHide (boolean)
*Default:* true
If this option is set to true, Uniform will hide the new elements if the existing elements are currently hidden using `display: none`.
If you want to show a select or checkbox you'll need to show the new Uniform div instead of the child element.
### buttonClass (string)
*Default:* "button"
Sets the class given to a button that's been uniformed
$("input[type=button]").uniform({buttonClass: 'myBtnClass'});
### checkboxClass (string)
*Default:* "checker"
Sets the class given to the wrapper div for checkbox elements.
$(":checkbox").uniform({checkboxClass: 'myCheckClass'});
### checkedClass (string)
*Default:* "checked"
Sets the class given to elements when they are checked (radios and checkboxes).
$(":radio, :checkbox").uniform({checkedClass: 'myCheckedClass'});
### disabledClass (string)
*Default:* "disabled"
Sets the class given to elements when they are disabled.
$("select").uniform({disabledClass: 'myDisabledClass'});
### fileBtnClass (string)
*Default:* "action"
Sets the class given to div inside a file upload container that acts as the "Choose file" button.
$(":file").uniform({fileBtnClass: 'myFileBtnClass'});
### fileBtnText (string)
*Default:* "Choose File"
Sets the text written on the action button inside a file upload input.
$(":file").uniform({fileBtnText: 'Choose&hellip;'});
### fileClass (string)
*Default:* "uploader"
Sets the class given to the wrapper div for file upload elements.
$(":file").uniform({fileClass: 'myFileClass'});
### fileDefaultText (string)
*Default:* "No file selected"
Sets the text written in the filename div of a file upload input when there is no file selected.
$(":file").uniform({fileDefaultText: 'Select a file please'});
### filenameClass (string)
*Default:* "filename"
Sets the class given to div inside a file upload container that spits out the filename.
$(":file").uniform({filenameClass: 'myFilenameClass'});
### focusClass (string)
*Default:* "focus"
Sets the class given to elements when they are focused.
$("select").uniform({focusClass: 'myFocusClass'});
### hoverClass (string)
*Default:* "hover"
Sets the class given to elements when they are currently hovered.
$("select").uniform({hoverClass: 'myHoverClass'});
### idPrefix (string)
*Default:* "uniform"
If useID is set to true, this string is prefixed to element IDs and attached to the container div of each uniformed element. If you have a checkbox with the ID of "remember-me" the container div would have the ID "uniform-remember-me".
$("select").uniform({idPrefix: 'container'});
### radioClass (string)
*Default:* "radio"
Sets the class given to the wrapper div for radio elements.
$(":radio").uniform({radioClass: 'myRadioClass'});
### resetDefaultText (string)
*Default:* "Reset"
This text is what's shown on form reset buttons. It is very similar to submitDefaultText.
$("input[type='reset']).uniform({resetDefaultText: "Clear"});
### resetSelector (boolean/string)
*Default:* false
This parameter allows you to use a jQuery-style selector to point to a "reset" button in your form if you have one. Use false if you have no "reset" button, or a selector string that points to the reset button if you have one.
$("select").uniform({resetSelector: 'input[type="reset"]'});
### selectAutoWidth (boolean)
*Default:* true
If this option is set to true, Uniform will try to fit the select width to the actual content. If the select is populated via JavaScript, it is recommended to set a custom width for the element (`style="width:XX"`) or uniform it after being populated.
### selectClass (string)
*Default:* "selector"
Sets the class given to the wrapper div for select elements.
$("select").uniform({selectClass: 'mySelectClass'});
### submitDefaultText (string)
*Default:* "Submit"
This text is what's shown on form submit buttons. It is very similar to resetDefaultText.
$("input[type='submit']).uniform({resetDefaultText: "Submit Form"});
### useID (boolean)
*Default:* true
If true, sets an ID on the container div of each form element. The ID is a prefixed version of the same ID of the form element.
$("select").uniform({useID: false});
Additional Functions
--------------------
In addition to the parameters, there are a couple of other ways you can interact with Uniform.
### $.uniform.update([elem/selector string]);
If you need to change values on the form dynamically you must tell Uniform to update that elements style. Fortunately, its very simple. Just call this function, and Uniform will do the rest.
$.uniform.update("#myUpdatedCheckbox");
If you don't mind updating all Uniformed elements or just dont specifically know which element to update, you can just leave out the parameter (see below) and Uniform will update all Uniformed elements on the page:
$.uniform.update();
### $.uniform.restore([elem/selector string]);
If you want to "un-uniform" something, simply call this function. It will remove the inline styles, extra dom elements, and event handlers, effectively restoring the element to it's previous state.
$.uniform.restore("select");
### $.uniform.elements[]
You can get an array of all the elements that have been Uniformed at any time using this public variable. I don't advise changing the contents!
var uniforms = $.uniform.elements;
Customizing CSS
---------------
To edit the CSS of Uniform it is highly recommended to not edit the theme files, but to override them using CSS. Make sure your CSS file comes after the uniform theme css file in the HEAD section.
It's common to want to resize the selects or other elements. The best way is to set the width property on the div element, span element and the form element itself. Look through the theme CSS in the `PRESENTATION` section to see where the width property is currently set.
Tips & Tricks
-------------
Uniform is supposed to be pretty simple, but there are a few things that can be tricky. Here are some tips that may make your experience simpler:
* Remember to change the CSS classes in the theme if you change the parameters for elements classes. This can be tedious work, but if you dont do it, its not going to look correct. Find and Replace is your friend.
* Uniform cannot automatically sniff out dynamic value changes. If you make changes to elements in JavaScript or using a Reset button of some kind remember to call $.uniform.update(); to sync the changes with Uniform.
* Uniform is disabled in IE6. Its not possible to fix due to the way IE6 handles form elements. If you care about IE6 users, give it a quick look to make sure your "naked" form elements look alright in there.
* Youre on your own for styling text inputs and more. Fortunately, things that are not handled by Uniform are pretty easy to skin. :)
* Uniform does not support multiselect. At least not yet. Patches to add support are certainly welcome!
* There is a bug in Safari 5.1 that will cause the web rendering process to crash when you use custom fonts. For more information, see [Issue #183](https://github.com/pixelmatrix/uniform/issues/183).
* With IE 7-9, sometimes the "change" event doesn't get fired or doesn't get triggered at the right time. When we detect a change, Uniform may submit its own "change" event on the element. See [Issue #152](https://github.com/pixelmatrix/uniform/issues/152) and [Issue #238](https://github.com/pixelmatrix/uniform/issues/238).
* If you have ideas, or bugs, please post them in [GitHub](https://github.com/pixelmatrix/uniform). We rely on our users' for improvement ideas and bug reports. Without your participation, Uniform will stay static.
Upgrading To 1.8
----------------
Your sprite map will now support many new things and will need to be updated. If you use custom backgrounds that are not in the sprite map, those will need updating as well.
The uniform.options object was renamed to uniform.defaults since they are the default options.
Previously, calls to update() would render all elements with the most recent set of options. This has been fixed, but may change how your page looks. Test to make sure things still render as expected.
Various option names have changed to be less ambiguous or have a consistent naming scheme.

View File

@ -0,0 +1,7 @@
* Enhance demo page to show all sorts of edge cases, like when bugs were
found. shidec has IE7 fixes with uniformed 'a' elements, which might
be needed if they are still broken.
* Add tests. szaboat added Jasmine tests. May wish to be more thorough?
Not browser based?
* Add another demo page or maybe break into a few pages so different sprite
images can be shown off.

View File

@ -0,0 +1,644 @@
/*
Uniform Theme: Uniform Default
Version: 1.8
By: Josh Pyles
License: MIT License
---
For use with the Uniform plugin:
http://pixelmatrixdesign.com/uniform/
---
Generated by Uniform Theme Generator:
http://pixelmatrixdesign.com/uniform/themer.html
*/
/* Global Declaration */
div.selector,
div.selector span,
div.checker span,
div.radio span,
div.uploader,
div.uploader span.action,
div.button,
div.button span {
background-image: url(../images/sprite.png);
background-repeat: no-repeat;
-webkit-font-smoothing: antialiased;
}
.selector,
.radio,
.checker,
.uploader,
.button,
.selector *,
.radio *,
.checker *,
.uploader *,
.button *{
margin: 0;
padding: 0;
}
/* INPUT & TEXTAREA */
input.text,
input.email,
input.search,
input.tel,
input.url,
input.datetime,
input.date,
input.month,
input.week,
input.time,
input.datetime-local,
input.number,
input.color,
input.password,
select.uniform-multiselect,
textarea.uniform {
font-size: 12px;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-weight: normal;
padding: 3px;
color: #777;
background: url('../images/bg-input-focus.png') repeat-x 0px 0px;
background: url('../images/bg-input.png') repeat-x 0px 0px;
border-top: solid 1px #aaa;
border-left: solid 1px #aaa;
border-bottom: solid 1px #ccc;
border-right: solid 1px #ccc;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
outline: 0;
}
/* remove default webkit and possible mozilla .search styles */
input.search, input.search:active {
-moz-appearance: none;
-webkit-appearance: none;
}
input.text:focus,
input.email:focus,
input.search:focus,
input.tel:focus,
input.url:focus,
input.datetime:focus,
input.date:focus,
input.month:focus,
input.week:focus,
input.time:focus,
input.datetime-local:focus,
input.number:focus,
input.color:focus,
input.password:focus,
select.uniform-multiselect:focus,
textarea.uniform:focus {
-webkit-box-shadow: 0px 0px 4px rgba(0,0,0,0.3);
-moz-box-shadow: 0px 0px 4px rgba(0,0,0,0.3);
box-shadow: 0px 0px 4px rgba(0,0,0,0.3);
border-color: #999;
background: url('../images/bg-input-focus.png') repeat-x 0px 0px;
}
/* SPRITES */
/* Select */
div.selector {
background-position: -483px -130px;
line-height: 26px;
height: 26px;
}
div.selector span {
background-position: right 0px;
height: 26px;
line-height: 26px;
}
div.selector select {
/* change these to adjust positioning of select element */
top: 0px;
left: 0px;
}
div.selector:active,
div.selector.active {
background-position: -483px -156px;
}
div.selector:active span,
div.selector.active span {
background-position: right -26px;
}
div.selector.focus, div.selector.hover, div.selector:hover {
background-position: -483px -182px;
}
div.selector.focus span, div.selector.hover span, div.selector:hover span {
background-position: right -52px;
}
div.selector.focus:active,
div.selector.focus.active,
div.selector:hover:active,
div.selector.active:hover {
background-position: -483px -208px;
}
div.selector.focus:active span,
div.selector:hover:active span,
div.selector.active:hover span,
div.selector.focus.active span {
background-position: right -78px;
}
div.selector.disabled {
background-position: -483px -234px;
}
div.selector.disabled span {
background-position: right -104px;
}
/* Checkbox */
div.checker {
width: 19px;
height: 19px;
}
div.checker input {
width: 19px;
height: 19px;
}
div.checker span {
background-position: 0px -260px;
height: 19px;
width: 19px;
}
div.checker:active span,
div.checker.active span {
background-position: -19px -260px;
}
div.checker.focus span,
div.checker:hover span {
background-position: -38px -260px;
}
div.checker.focus:active span,
div.checker:active:hover span,
div.checker.active:hover span,
div.checker.focus.active span {
background-position: -57px -260px;
}
div.checker span.checked {
background-position: -76px -260px;
}
div.checker:active span.checked,
div.checker.active span.checked {
background-position: -95px -260px;
}
div.checker.focus span.checked,
div.checker:hover span.checked {
background-position: -114px -260px;
}
div.checker.focus:active span.checked,
div.checker:hover:active span.checked,
div.checker.active:hover span.checked,
div.checker.active.focus span.checked {
background-position: -133px -260px;
}
div.checker.disabled span,
div.checker.disabled:active span,
div.checker.disabled.active span {
background-position: -152px -260px;
}
div.checker.disabled span.checked,
div.checker.disabled:active span.checked,
div.checker.disabled.active span.checked {
background-position: -171px -260px;
}
/* Radio */
div.radio {
width: 18px;
height: 18px;
}
div.radio input {
width: 18px;
height: 18px;
}
div.radio span {
height: 18px;
width: 18px;
background-position: 0px -279px;
}
div.radio:active span,
div.radio.active span {
background-position: -18px -279px;
}
div.radio.focus span,
div.radio:hover span {
background-position: -36px -279px;
}
div.radio.focus:active span,
div.radio:active:hover span,
div.radio.active:hover span,
div.radio.active.focus span {
background-position: -54px -279px;
}
div.radio span.checked {
background-position: -72px -279px;
}
div.radio:active span.checked,
div.radio.active span.checked {
background-position: -90px -279px;
}
div.radio.focus span.checked, div.radio:hover span.checked {
background-position: -108px -279px;
}
div.radio.focus:active span.checked,
div.radio:hover:active span.checked,
div.radio.focus.active span.checked,
div.radio.active:hover span.checked {
background-position: -126px -279px;
}
div.radio.disabled span,
div.radio.disabled:active span,
div.radio.disabled.active span {
background-position: -144px -279px;
}
div.radio.disabled span.checked,
div.radio.disabled:active span.checked,
div.radio.disabled.active span.checked {
background-position: -162px -279px;
}
/* Uploader */
div.uploader {
background-position: 0px -297px;
height: 28px;
}
div.uploader span.action {
background-position: right -409px;
height: 24px;
line-height: 24px;
}
div.uploader span.filename {
height: 24px;
/* change this line to adjust positioning of filename area */
margin: 2px 0px 2px 2px;
line-height: 24px;
}
div.uploader.focus,
div.uploader.hover,
div.uploader:hover {
background-position: 0px -353px;
}
div.uploader.focus span.action,
div.uploader.hover span.action,
div.uploader:hover span.action {
background-position: right -437px;
}
div.uploader.active span.action,
div.uploader:active span.action {
background-position: right -465px;
}
div.uploader.focus.active span.action,
div.uploader:focus.active span.action,
div.uploader.focus:active span.action,
div.uploader:focus:active span.action {
background-position: right -493px;
}
div.uploader.disabled {
background-position: 0px -325px;
}
div.uploader.disabled span.action {
background-position: right -381px;
}
div.button {
background-position: 0px -523px;
}
div.button span {
background-position: right -643px;
}
div.button.focus,
div.button:focus,
div.button:hover,
div.button.hover {
background-position: 0px -553px;
}
div.button.focus span,
div.button:focus span,
div.button:hover span,
div.button.hover span {
background-position: right -673px;
}
div.button.active,
div.button:active {
background-position: 0px -583px;
}
div.button.active span,
div.button:active span {
background-position: right -703px;
color: #555;
}
div.button.disabled,
div.button:disabled {
background-position: 0px -613px;
}
div.button.disabled span,
div.button:disabled span {
background-position: right -733px;
color: #bbb;
cursor: default;
}
/* PRESENTATION */
/* Button */
div.button {
height: 30px;
}
div.button span {
margin-left: 13px;
height: 22px;
padding-top: 8px;
font-weight: bold;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 12px;
letter-spacing: 1px;
text-transform: uppercase;
padding-left: 2px;
padding-right: 15px;
}
/* Select */
div.selector {
width: 190px;
font-size: 12px;
}
div.selector select {
min-width: 190px;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 12px;
border: solid 1px #fff;
}
div.selector span {
padding: 0px 25px 0px 2px;
cursor: pointer;
}
div.selector span {
color: #666;
width: 158px;
text-shadow: 0 1px 0 #fff;
}
div.selector.disabled span {
color: #bbb;
}
/* Checker */
div.checker {
margin-right: 5px;
}
/* Radio */
div.radio {
margin-right: 3px;
}
/* Uploader */
div.uploader {
width: 190px;
cursor: pointer;
}
div.uploader span.action {
width: 85px;
text-align: center;
text-shadow: #fff 0px 1px 0px;
background-color: #fff;
font-size: 11px;
font-weight: bold;
}
div.uploader span.filename {
color: #777;
width: 82px;
border-right: solid 1px #bbb;
font-size: 11px;
}
div.uploader input {
width: 190px;
}
div.uploader.disabled span.action {
color: #aaa;
}
div.uploader.disabled span.filename {
border-color: #ddd;
color: #aaa;
}
/*
CORE FUNCTIONALITY
Not advised to edit stuff below this line
-----------------------------------------------------
*/
.selector,
.checker,
.button,
.radio,
.uploader {
display: -moz-inline-box;
display: inline-block;
vertical-align: middle;
zoom: 1;
*display: inline;
}
.selector select:focus, .radio input:focus, .checker input:focus, .uploader input:focus {
outline: 0;
}
/* Button */
div.button a,
div.button button,
div.button input {
position: absolute;
}
div.button {
cursor: pointer;
position: relative;
}
div.button span {
display: -moz-inline-box;
display: inline-block;
line-height: 1;
text-align: center;
}
/* Select */
div.selector {
position: relative;
padding-left: 10px;
overflow: hidden;
}
div.selector span {
display: block;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
div.selector select {
position: absolute;
opacity: 0;
filter: alpha(opacity=0);
-moz-opacity: 0;
height: 25px;
border: none;
background: none;
}
/* Checker */
div.checker {
position: relative;
}
div.checker span {
display: -moz-inline-box;
display: inline-block;
text-align: center;
}
div.checker input {
opacity: 0;
filter: alpha(opacity=0);
-moz-opacity: 0;
display: inline-block;
background: none;
}
/* Radio */
div.radio {
position: relative;
}
div.radio span {
display: -moz-inline-box;
display: inline-block;
text-align: center;
}
div.radio input {
opacity: 0;
filter: alpha(opacity=0);
-moz-opacity: 0;
text-align: center;
display: inline-block;
background: none;
}
/* Uploader */
div.uploader {
position: relative;
overflow: hidden;
cursor: default;
}
div.uploader span.action {
float: left;
display: inline;
padding: 2px 0px;
overflow: hidden;
cursor: pointer;
}
div.uploader span.filename {
padding: 0px 10px;
float: left;
display: block;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
cursor: default;
}
div.uploader input {
opacity: 0;
filter: alpha(opacity=0);
-moz-opacity: 0;
position: absolute;
top: 0;
right: 0;
bottom: 0;
float: right;
height: 25px;
border: none;
cursor: default;
}

View File

@ -0,0 +1,262 @@
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" charset="utf-8">
/*global optionValues*/
(function () {
var params;
optionValues = {
min: false,
jquery: "1.4.2"
}
params = window.location.search
function css(src) {
document.write('<link rel="stylesheet" href="' + src + '" type="text/css" />');
}
function script(src) {
document.write('<script src="' + src + '" type="text/javascript" charset="utf-8"></sc' + 'ript>');
}
if (params) {
params = params.substr(1).split('&');
for (i = 0; i < params.length; i ++) {
var equals = params[i].split('=');
if (Object.prototype.hasOwnProperty.call(optionValues, equals[0])) {
optionValues[equals[0]] = equals[1];
}
}
}
if (window.location.protocol == 'https:') {
script('https://ajax.googleapis.com/ajax/libs/jquery/' + optionValues.jquery + '/jquery.min.js');
} else {
script('http://ajax.googleapis.com/ajax/libs/jquery/' + optionValues.jquery + '/jquery.min.js');
}
if (optionValues.min) {
script('../jquery.uniform.min.js');
} else {
script('../jquery.uniform.js');
}
css('../css/uniform.default.css');
}());
</script>
<script type="text/javascript">
// Can't merge with previous script block since this relies on jQuery and that
// was not loaded until the previous script block ends
$(function () {
var $min;
$(".styleThese").find("input, textarea, select, button, a.uniformTest").not(".skipThese").uniform();
$("#optionsForm input, #optionsForm select").change(function () {
this.form.submit();
});
if (optionValues.min) {
$min = $("#optionsMin");
if ($min.prop) {
$min.prop("checked", true);
} else {
$min.attr("checked", "checked");
}
}
$("#optionsJquery").val(optionValues.jquery);
$("#jqueryCurrentVersion").text("Using " + jQuery.fn.jquery);
});
</script>
<style type="text/css" media="screen">
body {
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
color: #666;
padding: 40px;
}
h1 {
margin-top: 0;
}
label {
font-size: 10px;
font-weight: bold;
text-transform: uppercase;
display: block;
margin-bottom: 3px;
clear: both;
}
.error {
background-color: #FF8080;
}
.hide {
display: none;
}
</style>
</head>
<body>
<h1>Uniform Demo</h1>
<form method=GET action="?" id="optionsForm">
Options:
<input type=checkbox name="min" id="optionsMin"> Minified
<select name="jquery" id="optionsJquery">
<option value="1.3">jQuery 1.3.x</option>
<option value="1.4.2">jQuery 1.4.2</option>
<option value="1.4">jQuery 1.4.x</option>
<option value="1.5">jQuery 1.5.x</option>
<option value="1.6">jQuery 1.6.x</option>
<option value="1.7">jQuery 1.7.x</option>
<option value="1.8">jQuery 1.8.x</option>
</select>
<span id="jqueryCurrentVersion"></span>
</form>
<form class="styleThese">
<table width="100%">
<tr>
<td width="50%">
<div>
<label>Message:</label>
<textarea cols="40" rows="5"></textarea>
</div>
<div>
<label>Unstyled:</label>
<input class="skipThese" type="text" size="40" value="This is unstyled on purpose" />
</div>
<div>
<label>Your Name:</label>
<input type="text" size="40" value="John Doe"/>
</div>
<div>
<label>Your Email:</label>
<input type="email" size="40" value="mr_hotshot0357@example.com" />
</div>
<div>
<label>Search:</label>
<input type="search" size="40"/>
</div>
<div>
<label>Phone:</label>
<input type="tel" size="40"/>
</div>
<div>
<label>URL:</label>
<input type="url" size="40"/>
</div>
<div>
<label>Datetime:</label>
<input type="datetime" size="40"/>
</div>
<div>
<label>Date:</label>
<input type="date" size="40"/>
</div>
<div>
<label>Month:</label>
<input type="month" size="40"/>
</div>
<div>
<label>Week:</label>
<input type="week" size="40"/>
</div>
<div>
<label>Time:</label>
<input type="time" size="40"/>
</div>
<div>
<label>Datetime-local:</label>
<input type="datetime-local" size="40"/>
</div>
</td>
<td>
<div>
<label>Number:</label>
<input type="number" size="40"/>
</div>
<div>
<label>Range:</label>
<input type="range" size="40"/>
</div>
<div>
<label>Color:</label>
<input type="color" size="40"/>
</div>
<div>
<label>Some Password:</label>
<input type="password" size="40"/>
</div>
<div>
<label>I found your site:</label>
<select>
<option value="google">Through Google</option>
<option value="twitter">Through Twitter</option>
<option value="other">Other&hellip;</option>
<option value="hi">&lt;Hi&gt;</option>
</select>
</div>
<div>
<label>How do you feel?</label>
<select multiple="multiple" size=4>
<option value="elated">Elated</option>
<option value="happy">Happy</option>
<option value="content">Content</option>
<option value="ok">Ok</option>
<option value="unhappy">Unhappy</option>
<option value="frustrated">Frustrated</option>
<option value="cranky">Cranky</option>
<option value="mad">Mad</option>
<option value="unlisted">Anything else</option>
</select>
</div>
<div>
<label>
<input type="radio" name="radio" value="hi" /> Saying hi
</label>
<label>
<input type="radio" name="radio" value="feedback" /> Sending feedback
</label>
<label>
<input type="radio" name="radio" value="default" checked="CHECKED" /> Default Seleted Radio
</label>
</div>
<div>
<label>
<input type="checkbox" id="contactBack" /> Please contact me back
</label>
<label>
<input type="checkbox" checked="CHECKED" id="goodDay" /> Today is a good day
</label>
</div>
<div>
<label>Upload a file:</label>
<input type="file" />
</div>
</td>
</tr>
</table>
<div class="error">
<!-- Here are some fields with "display: none" on them.
When Uniform wraps them, the surrounding div should also get
the "display: none" style applied. -->
<input type="text" value="You should not see this." class="hide" />
<select class="hide">
<option>If you can see this, it's an error</option>
</select>
<input type="checkbox" class="hide" />
<input type="radio" name="radio" class="hide" value="hidden" />
<input type="file" class="hide" />
</div>
<div>
<input type="submit" />
<input type="reset" />
</div>
</form>
<p class="styleThese">
<a href="http://google.com/">Normal link</a>,
<a href="http://google.com" class="uniformTest">uniformed link (self)</a> and
<a href="http://google.com" class="uniformTest" target="newWindow">uniformed link (new window)</a>.
</p>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 143 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 143 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

View File

@ -0,0 +1,806 @@
/*
Uniform v1.8.0+f
Copyright © 2009 Josh Pyles / Pixelmatrix Design LLC
http://pixelmatrixdesign.com
Requires jQuery 1.3 or newer
Much thanks to Thomas Reynolds and Buck Wilson for their help and advice on
this.
Disabling text selection is made possible by Mathias Bynens
<http://mathiasbynens.be/> and his noSelect plugin.
<http://github.com/mathiasbynens/noSelect-jQuery-Plugin>.
Also, thanks to David Kaneda and Eugene Bond for their contributions to the
plugin.
This version (+f) is from fidian's forked repository until the changes can
get merged upstream. See https://github.com/fidian/uniform
License:
MIT License - http://www.opensource.org/licenses/mit-license.php
Enjoy!
*/
/*global jQuery, window, document*/
(function ($, undef) {
"use strict";
$.uniform = {
// Default options that can be overridden globally or when uniformed
// globally: $.uniform.defaults.fileButtonHtml = "Pick A File";
// on uniform: $('input').uniform({fileButtonHtml: "Pick a File"});
defaults: {
activeClass: "active",
autoHide: true,
buttonClass: "button",
checkboxClass: "checker",
checkedClass: "checked",
disabledClass: "disabled",
fileButtonClass: "action",
fileButtonHtml: "Choose File",
fileClass: "uploader",
fileDefaultHtml: "No file selected",
filenameClass: "filename",
focusClass: "focus",
hoverClass: "hover",
idPrefix: "uniform",
radioClass: "radio",
resetDefaultHtml: "Reset",
resetSelector: false, // We'll use our own function when you don't specify one
selectAutoWidth: false,
selectClass: "selector",
submitDefaultHtml: "Submit", // Only text allowed
useID: true
},
// All uniformed elements - DOM objects
elements: []
};
// Change text into HTML
function htmlify(text) {
if (!text) {
return "";
}
return $('<span />').text(text).html();
}
// For backwards compatibility with older jQuery libraries
// Also adds our namespace in one consistent location and shrinks the
// resulting minified code
function bindMany($el, events) {
var name, namespaced;
for (name in events) {
if (events.hasOwnProperty(name)) {
namespaced = name.replace(/ |$/g, ".uniform");
$el.bind(name, events[name]);
}
}
}
// Test if the element is a multiselect
function isMultiselect($el) {
var elSize;
if ($el[0].multiple) {
return true;
}
elSize = $el.attr("size");
if (elSize === undef || elSize <= 1) {
return false;
}
return true;
}
// Update the filename tag based on $el's value
function setFilename($el, $filenameTag, options) {
var filename = $el.val();
if (filename === "") {
filename = options.fileDefaultHtml;
} else {
filename = filename.split(/[\/\\]+/);
filename = filename[(filename.length - 1)];
}
$filenameTag.text(filename);
}
function classClearStandard($el, options) {
$el.removeClass(options.hoverClass + " " + options.focusClass + " " + options.activeClass);
}
function classToggle($el, className, enabled) {
if (enabled) {
$el.addClass(className);
} else {
$el.removeClass(className);
}
}
function classToggleChecked($tag, $el, options) {
var isChecked = $el.is(":checked");
if ($el.prop) {
// jQuery 1.6+
$el.prop("checked", isChecked);
} else {
// jQuery 1.5 and below
if (isChecked) {
$el.attr("checked", "checked");
} else {
$el.removeAttr("checked");
}
}
classToggle($tag, options.checkedClass, isChecked);
}
function classToggleDisabled($tag, $el, options) {
classToggle($tag, options.disabledClass, $el.is(":disabled"));
}
function divSpanWrap($el, $container, method) {
switch (method) {
case "after":
$el.after($container);
return $el.next();
case "before":
$el.before($container);
return $el.prev();
case "wrap":
$el.wrap($container);
return $el.parent();
}
return null;
}
function divSpan($el, options, divSpanConfig) {
var $div, $span;
if (!divSpanConfig) {
divSpanConfig = {};
}
divSpanConfig = $.extend({
bind: {},
css: null,
divClass: null,
divWrap: "wrap",
spanClass: null,
spanHtml: null,
spanWrap: "wrap"
}, divSpanConfig);
$div = $('<div />');
$span = $('<span />');
if (options.autoHide && !($el.is(':visible'))) {
$div.hide();
}
if (divSpanConfig.divClass) {
$div.addClass(divSpanConfig.divClass);
}
if (divSpanConfig.spanClass) {
$span.addClass(divSpanConfig.spanClass);
}
if (options.useID && $el.attr('id')) {
$div.attr('id', options.idPrefix + '-' + $el.attr('id'));
}
if (divSpanConfig.spanHtml) {
$span.html(divSpanConfig.spanHtml);
}
$div = divSpanWrap($el, $div, divSpanConfig.divWrap);
$span = divSpanWrap($el, $span, divSpanConfig.spanWrap);
if (divSpanConfig.css) {
$el.css(divSpanConfig.css);
}
classToggleDisabled($div, $el, options);
return {
div: $div,
span: $span
};
}
var allowStyling = true,
uniformHandlers = [
{
// Buttons
match: function ($el) {
return $el.is("button, :submit, :reset, a, input[type='button']");
},
apply: function ($el, options) {
var $div, spanHtml, ds;
spanHtml = options.submitDefaultHtml;
if ($el.is(":reset")) {
spanHtml = options.resetDefaultHtml;
}
if ($el.is("a, button")) {
spanHtml = $el.html() || spanHtml;
} else if ($el.is(":submit, :reset, input[type=button]")) {
spanHtml = htmlify($el.attr("value")) || spanHtml;
}
ds = divSpan($el, options, {
css: { display: "none" },
divClass: options.buttonClass,
spanHtml: spanHtml
});
$div = ds.div;
bindMany($div, {
"mouseenter": function () {
$div.addClass(options.hoverClass);
},
"mouseleave": function () {
$div.removeClass(options.hoverClass);
$div.removeClass(options.activeClass);
},
"mousedown touchbegin": function () {
$div.addClass(options.activeClass);
},
"mouseup touchend": function () {
$div.removeClass(options.activeClass);
},
"click touchend": function (e) {
var ev;
if ($(e.target).is("span, div")) {
if ($el[0].dispatchEvent) {
ev = document.createEvent("MouseEvents");
ev.initEvent("click", true, true);
$el[0].dispatchEvent(ev);
} else {
$el.click();
}
}
}
});
bindMany($el, {
"focus": function () {
$div.addClass(options.focusClass);
},
"blur": function () {
$div.removeClass(options.focusClass);
}
});
$.uniform.noSelect($div);
return {
remove: function () {
return $el.unwrap().unwrap();
},
update: function () {
classClearStandard($div, options);
classToggleDisabled($div, $el, options);
}
};
}
},
{
// Checkboxes
match: function ($el) {
return $el.is(":checkbox");
},
apply: function ($el, options) {
var ds, $div, $span;
ds = divSpan($el, options, {
css: { opacity: 0 },
divClass: options.checkboxClass
});
$div = ds.div;
$span = ds.span;
// Add focus classes, toggling, active, etc.
bindMany($el, {
"focus": function () {
$div.addClass(options.focusClass);
},
"blur": function () {
$div.removeClass(options.focusClass);
},
"click touchend": function () {
classToggleChecked($span, $el, options);
},
"mousedown touchbegin": function () {
$div.addClass(options.activeClass);
},
"mouseup touchend": function () {
$div.removeClass(options.activeClass);
},
"mouseenter": function () {
$div.addClass(options.hoverClass);
},
"mouseleave": function () {
$div.removeClass(options.hoverClass);
$div.removeClass(options.activeClass);
}
});
classToggleChecked($span, $el, options);
return {
remove: function () {
return $el.unwrap().unwrap();
},
update: function () {
classClearStandard($div, options);
$span.removeClass(options.checkedClass);
classToggleChecked($span, $el, options);
classToggleDisabled($div, options);
}
};
}
},
{
// File selection / uploads
match: function ($el) {
return $el.is(":file");
},
apply: function ($el, options) {
var ds, $div, $filename, $button;
// The "span" is the button
ds = divSpan($el, options, {
css: { opacity: 0 },
divClass: options.fileClass,
spanClass: options.fileButtonClass,
spanHtml: options.fileButtonHtml,
spanWrap: "after"
});
$div = ds.div;
$button = ds.span;
$filename = $("<span />").html(options.fileDefaultHtml);
$filename.addClass(options.filenameClass);
$filename = divSpanWrap($el, $filename, "after");
// Set the size
if (!$el.attr("size")) {
$el.attr("size", $div.width() / 10);
}
// Actions
function filenameUpdate() {
setFilename($el, $filename, options);
}
// Account for input saved across refreshes
filenameUpdate();
bindMany($el, {
"focus": function () {
$div.addClass(options.focusClass);
},
"blur": function () {
$div.removeClass(options.focusClass);
},
"mousedown": function () {
if (!$el.is(":disabled")) {
$div.addClass(options.activeClass);
}
},
"mouseup": function () {
$div.removeClass(options.activeClass);
},
"mouseenter": function () {
$div.addClass(options.hoverClass);
},
"mouseleave": function () {
$div.removeClass(options.hoverClass);
$div.removeClass(options.activeClass);
}
});
// IE7 doesn't fire onChange until blur or second fire.
if ($.browser.msie) {
// IE considers browser chrome blocking I/O, so it
// suspends tiemouts until after the file has been selected.
bindMany($el, {
"click": function () {
$el.trigger("change");
setTimeout(filenameUpdate, 0);
}
});
} else {
// All other browsers behave properly
bindMany($el, {
"change": filenameUpdate
});
}
$.uniform.noSelect($filename);
$.uniform.noSelect($button);
return {
remove: function () {
// Remove sibling spans
$el.siblings("span").remove();
// Unwrap parent div
$el.unwrap();
return $el;
},
update: function () {
classClearStandard($div, options);
setFilename($el, $filename, options);
classToggleDisabled($div, $el, options);
}
};
}
},
{
// Input fields (text)
match: function ($el) {
if ($el.is("input")) {
var t = $el.attr("type").toLowerCase(),
allowed = " color date datetime datetime-local email month number password search tel text time url week ";
return allowed.indexOf(" " + t + " ") >= 0;
}
return false;
},
apply: function ($el) {
var elType = $el.attr("type");
$el.addClass(elType);
return {
remove: function () {
$el.removeClass(elType);
},
update: function () {
}
};
}
},
{
// Radio buttons
match: function ($el) {
return $el.is(":radio");
},
apply: function ($el, options) {
var ds, $div, $span;
ds = divSpan($el, options, {
css: { opacity: 0 },
divClass: options.radioClass
});
$div = ds.div;
$span = ds.span;
// Add classes for focus, hanlde active, checked
bindMany($el, {
"focus": function () {
$div.addClass(options.focusClass);
},
"blur": function () {
$div.removeClass(options.focusClass);
},
"click touchend": function () {
// Untoggle the rest of the radios
var radioClass = options.radioClass.split(" ")[0],
otherRadioSpans = "." + radioClass + " span." + options.checkedClass + ":has([name='" + $el.attr("name") + "'])";
$(otherRadioSpans).each(function () {
var $spanTag = $(this),
$el = $spanTag.find(":radio");
classToggleChecked($spanTag, $el, options);
});
// Toggle me
classToggleChecked($span, $el, options);
},
"mousedown touchend": function () {
if (!$el.is(":disabled")) {
$div.addClass(options.activeClass);
}
},
"mouseup touchbegin": function () {
$div.removeClass(options.activeClass);
},
"mouseenter touchend": function () {
$div.addClass(options.hoverClass);
},
"mouseleave": function () {
$div.removeClass(options.hoverClass);
$div.removeClass(options.activeClass);
}
});
classToggleChecked($span, $el, options);
return {
remove: function () {
// Unwrap from span and div
return $el.unwrap().unwrap();
},
update: function () {
classClearStandard($div, options);
classToggleChecked($span, $el, options);
classToggleDisabled($div, $el, options);
}
};
}
},
{
// Select lists, but do not style multiselects
match: function ($el) {
var elSize;
if ($el.is("select") && !isMultiselect($el)) {
return true;
}
return false;
},
apply: function ($el, options) {
var ds, $div, $span, origElemWidth, px;
origElemWidth = $el.width();
ds = divSpan($el, options, {
css: {
opacity: 0,
// The next two need some review
left: "2px",
width: (origElemWidth + 32) + "px"
},
divClass: options.selectClass,
spanHtml: ($el.find(":selected:first") || $el.find("option:first")).html(),
spanWrap: "before"
});
$div = ds.div;
$span = ds.span;
if (options.selectAutoWidth) {
// This needs some critical review
$div.width($("<div />").width() - $("<span />").width() + origElemWidth + 25);
px = parseInt($div.css("paddingLeft"), 10);
$span.width(origElemWidth - px - 15);
$el.width(origElemWidth + px);
$el.css("min-width", origElemWidth + px + "px");
$div.width(origElemWidth + px);
} else {
// Set the width of select behavior
px = $el.width();
$div.width(px);
$span.width(px - 25);
}
bindMany($el, {
"change": function () {
$span.html($el.find(":selected").html());
$div.removeClass(options.activeClass);
},
"focus": function () {
$div.addClass(options.focusClass);
},
"blur": function () {
$div.removeClass(options.focusClass);
$div.removeClass(options.activeClass);
},
"mousedown touchbegin": function () {
$div.addClass(options.activeClass);
},
"mouseup touchend": function () {
$div.removeClass(options.activeClass);
},
"click touchend": function () {
// IE7 and IE8 may not update the value right
// until click - issue #238
var selHtml = $el.find(":selected").html();
if ($span.html() !== selHtml) {
// Change was detected
// Fire the change event on the select tag
$el.trigger('change');
}
},
"mouseenter": function () {
$div.addClass(options.hoverClass);
},
"mouseleave": function () {
$div.removeClass(options.hoverClass);
$div.removeClass(options.activeClass);
},
"keyup": function () {
$span.html($el.find(":selected").html());
}
});
$.uniform.noSelect($span);
return {
remove: function () {
// Remove sibling span
$el.siblings("span").remove();
// Unwrap parent div
$el.unwrap();
return $el;
},
update: function () {
classClearStandard($div, options);
// Reset current selected text
$span.html($el.find(":selected").html());
classToggleDisabled($div, $el, options);
}
};
}
},
{
// Select lists - multiselect lists only
match: function ($el) {
var elSize;
if ($el.is("select") && isMultiselect($el)) {
return true;
}
return false;
},
apply: function ($el) {
$el.addClass("uniform-multiselect");
return {
remove: function () {
$el.removeClass("uniform-multiselect");
},
update: function () {
}
};
}
},
{
// Textareas
match: function ($el) {
return $el.is("textarea");
},
apply: function ($el) {
$el.addClass("uniform");
return {
remove: function () {
$el.removeClass("uniform");
},
update: function () {
}
};
}
}
];
// IE6 can't be styled - can't set opacity on select
if ($.browser.msie && $.browser.version < 7) {
allowStyling = false;
}
$.fn.uniform = function (options) {
var el = this;
options = $.extend({}, $.uniform.defaults, options);
// Code for specifying a reset button
if (options.resetSelector !== false) {
$(options.resetSelector).mouseup(function () {
window.setTimeout(function () {
$.uniform.update(el);
}, 10);
});
}
return this.each(function () {
var $el = $(this),
i,
handler,
callbacks;
// Avoid uniforming elements already uniformed - just update
if ($el.data("uniformed")) {
$.uniform.update($el);
}
// Avoid uniforming browsers that don't work right
if ($el.data("uniformed") || !allowStyling) {
return;
}
for (i = 0; i < uniformHandlers.length; i = i + 1) {
handler = uniformHandlers[i];
if (handler.match($el, options)) {
callbacks = handler.apply($el, options);
// Mark the element as uniformed and save options
$el.data("uniformed", callbacks);
// Store element in our global array
$.uniform.elements.push($el.get(0));
return;
}
}
});
};
$.uniform.restore = function (elem) {
if (elem === undef) {
elem = $.uniform.elements;
}
var $elem = $(elem);
$elem.each(function () {
var $el = $(this),
index,
elementData;
elementData = $el.data("uniformed");
// Skip elements that are not uniformed
if (!elementData) {
return;
}
elementData.remove();
// Unbind events
$el.unbind(".uniform");
// Remove item from list of uniformed elements
index = $.inArray(this, $.uniform.elements);
if (index >= 0) {
$.uniform.elements.splice(index, 1);
}
$el.removeData("uniformed");
});
};
//noSelect v1.0
$.uniform.noSelect = function (elem) {
var f = function () {
return false;
};
$(elem).each(function () {
this.onselectstart = this.ondragstart = f; // Webkit & IE
// .mousedown() for Webkit and Opera
// .css for Firefox
$(this).mousedown(f).css({
MozUserSelect: "none"
});
});
};
$.uniform.update = function (elem) {
if (elem === undef) {
elem = $.uniform.elements;
}
var $elem = $(elem);
$elem.each(function () {
var $el = $(this),
elementData;
elementData = $el.data("uniformed");
// Skip elements that are not uniformed
if (!elementData) {
return;
}
elementData.update($el, elementData.options);
});
};
}(jQuery));

View File

@ -0,0 +1,17 @@
(function(f,m){function h(a,b){for(var c in b)b.hasOwnProperty(c)&&(c.replace(/ |$/g,".uniform"),a.bind(c,b[c]))}function p(a){if(a[0].multiple)return!0;a=a.attr("size");return a===m||1>=a?!1:!0}function q(a,b,c){a=a.val();""===a?a=c.fileDefaultHtml:(a=a.split(/[\/\\]+/),a=a[a.length-1]);b.text(a)}function k(a,b){a.removeClass(b.hoverClass+" "+b.focusClass+" "+b.activeClass)}function i(a,b,c){var d=b.is(":checked");b.prop?b.prop("checked",d):d?b.attr("checked","checked"):b.removeAttr("checked");b=
c.checkedClass;d?a.addClass(b):a.removeClass(b)}function j(a,b,c){c=c.disabledClass;b.is(":disabled")?a.addClass(c):a.removeClass(c)}function n(a,b,c){switch(c){case "after":return a.after(b),a.next();case "before":return a.before(b),a.prev();case "wrap":return a.wrap(b),a.parent()}return null}function l(a,b,c){var d,e;c||(c={});c=f.extend({bind:{},css:null,divClass:null,divWrap:"wrap",spanClass:null,spanHtml:null,spanWrap:"wrap"},c);d=f("<div />");e=f("<span />");b.autoHide&&!a.is(":visible")&&d.hide();
c.divClass&&d.addClass(c.divClass);c.spanClass&&e.addClass(c.spanClass);b.useID&&a.attr("id")&&d.attr("id",b.idPrefix+"-"+a.attr("id"));c.spanHtml&&e.html(c.spanHtml);d=n(a,d,c.divWrap);e=n(a,e,c.spanWrap);c.css&&a.css(c.css);j(d,a,b);return{div:d,span:e}}f.uniform={defaults:{activeClass:"active",autoHide:!0,buttonClass:"button",checkboxClass:"checker",checkedClass:"checked",disabledClass:"disabled",fileButtonClass:"action",fileButtonHtml:"Choose File",fileClass:"uploader",fileDefaultHtml:"No file selected",
filenameClass:"filename",focusClass:"focus",hoverClass:"hover",idPrefix:"uniform",radioClass:"radio",resetDefaultHtml:"Reset",resetSelector:!1,selectAutoWidth:!1,selectClass:"selector",submitDefaultHtml:"Submit",useID:!0},elements:[]};var r=!0,s=[{match:function(a){return a.is("button, :submit, :reset, a, input[type='button']")},apply:function(a,b){var c,d;d=b.submitDefaultHtml;a.is(":reset")&&(d=b.resetDefaultHtml);if(a.is("a, button"))d=a.html()||d;else if(a.is(":submit, :reset, input[type=button]")){var e;
e=(e=a.attr("value"))?f("<span />").text(e).html():"";d=e||d}c=l(a,b,{css:{display:"none"},divClass:b.buttonClass,spanHtml:d}).div;h(c,{mouseenter:function(){c.addClass(b.hoverClass)},mouseleave:function(){c.removeClass(b.hoverClass);c.removeClass(b.activeClass)},"mousedown touchbegin":function(){c.addClass(b.activeClass)},"mouseup touchend":function(){c.removeClass(b.activeClass)},"click touchend":function(b){f(b.target).is("span, div")&&(a[0].dispatchEvent?(b=document.createEvent("MouseEvents"),
b.initEvent("click",!0,!0),a[0].dispatchEvent(b)):a.click())}});h(a,{focus:function(){c.addClass(b.focusClass)},blur:function(){c.removeClass(b.focusClass)}});f.uniform.noSelect(c);return{remove:function(){return a.unwrap().unwrap()},update:function(){k(c,b);j(c,a,b)}}}},{match:function(a){return a.is(":checkbox")},apply:function(a,b){var c,d,e;c=l(a,b,{css:{opacity:0},divClass:b.checkboxClass});d=c.div;e=c.span;h(a,{focus:function(){d.addClass(b.focusClass)},blur:function(){d.removeClass(b.focusClass)},
"click touchend":function(){i(e,a,b)},"mousedown touchbegin":function(){d.addClass(b.activeClass)},"mouseup touchend":function(){d.removeClass(b.activeClass)},mouseenter:function(){d.addClass(b.hoverClass)},mouseleave:function(){d.removeClass(b.hoverClass);d.removeClass(b.activeClass)}});i(e,a,b);return{remove:function(){return a.unwrap().unwrap()},update:function(){k(d,b);e.removeClass(b.checkedClass);i(e,a,b);j(d,b)}}}},{match:function(a){return a.is(":file")},apply:function(a,b){function c(){q(a,
g,b)}var d,e,g;d=l(a,b,{css:{opacity:0},divClass:b.fileClass,spanClass:b.fileButtonClass,spanHtml:b.fileButtonHtml,spanWrap:"after"});e=d.div;d=d.span;g=f("<span />").html(b.fileDefaultHtml);g.addClass(b.filenameClass);g=n(a,g,"after");a.attr("size")||a.attr("size",e.width()/10);c();h(a,{focus:function(){e.addClass(b.focusClass)},blur:function(){e.removeClass(b.focusClass)},mousedown:function(){a.is(":disabled")||e.addClass(b.activeClass)},mouseup:function(){e.removeClass(b.activeClass)},mouseenter:function(){e.addClass(b.hoverClass)},
mouseleave:function(){e.removeClass(b.hoverClass);e.removeClass(b.activeClass)}});f.browser.msie?h(a,{click:function(){a.trigger("change");setTimeout(c,0)}}):h(a,{change:c});f.uniform.noSelect(g);f.uniform.noSelect(d);return{remove:function(){a.siblings("span").remove();a.unwrap();return a},update:function(){k(e,b);q(a,g,b);j(e,a,b)}}}},{match:function(a){return a.is("input")?(a=a.attr("type").toLowerCase(),0<=" color date datetime datetime-local email month number password search tel text time url week ".indexOf(" "+
a+" ")):!1},apply:function(a){var b=a.attr("type");a.addClass(b);return{remove:function(){a.removeClass(b)},update:function(){}}}},{match:function(a){return a.is(":radio")},apply:function(a,b){var c,d,e;c=l(a,b,{css:{opacity:0},divClass:b.radioClass});d=c.div;e=c.span;h(a,{focus:function(){d.addClass(b.focusClass)},blur:function(){d.removeClass(b.focusClass)},"click touchend":function(){var c="."+b.radioClass.split(" ")[0]+" span."+b.checkedClass+":has([name='"+a.attr("name")+"'])";f(c).each(function(){var a=
f(this),c=a.find(":radio");i(a,c,b)});i(e,a,b)},"mousedown touchend":function(){a.is(":disabled")||d.addClass(b.activeClass)},"mouseup touchbegin":function(){d.removeClass(b.activeClass)},"mouseenter touchend":function(){d.addClass(b.hoverClass)},mouseleave:function(){d.removeClass(b.hoverClass);d.removeClass(b.activeClass)}});i(e,a,b);return{remove:function(){return a.unwrap().unwrap()},update:function(){k(d,b);i(e,a,b);j(d,a,b)}}}},{match:function(a){return a.is("select")&&!p(a)?!0:!1},apply:function(a,
b){var c,d,e,g;g=a.width();c=l(a,b,{css:{opacity:0,left:"2px",width:g+32+"px"},divClass:b.selectClass,spanHtml:(a.find(":selected:first")||a.find("option:first")).html(),spanWrap:"before"});d=c.div;e=c.span;b.selectAutoWidth?(d.width(f("<div />").width()-f("<span />").width()+g+25),c=parseInt(d.css("paddingLeft"),10),e.width(g-c-15),a.width(g+c),a.css("min-width",g+c+"px"),d.width(g+c)):(c=a.width(),d.width(c),e.width(c-25));h(a,{change:function(){e.html(a.find(":selected").html());d.removeClass(b.activeClass)},
focus:function(){d.addClass(b.focusClass)},blur:function(){d.removeClass(b.focusClass);d.removeClass(b.activeClass)},"mousedown touchbegin":function(){d.addClass(b.activeClass)},"mouseup touchend":function(){d.removeClass(b.activeClass)},"click touchend":function(){var b=a.find(":selected").html();e.html()!==b&&a.trigger("change")},mouseenter:function(){d.addClass(b.hoverClass)},mouseleave:function(){d.removeClass(b.hoverClass);d.removeClass(b.activeClass)},keyup:function(){e.html(a.find(":selected").html())}});
f.uniform.noSelect(e);return{remove:function(){a.siblings("span").remove();a.unwrap();return a},update:function(){k(d,b);e.html(a.find(":selected").html());j(d,a,b)}}}},{match:function(a){return a.is("select")&&p(a)?!0:!1},apply:function(a){a.addClass("uniform-multiselect");return{remove:function(){a.removeClass("uniform-multiselect")},update:function(){}}}},{match:function(a){return a.is("textarea")},apply:function(a){a.addClass("uniform");return{remove:function(){a.removeClass("uniform")},update:function(){}}}}];
f.browser.msie&&7>f.browser.version&&(r=!1);f.fn.uniform=function(a){var b=this,a=f.extend({},f.uniform.defaults,a);!1!==a.resetSelector&&f(a.resetSelector).mouseup(function(){window.setTimeout(function(){f.uniform.update(b)},10)});return this.each(function(){var b=f(this),d,e;b.data("uniformed")&&f.uniform.update(b);if(!b.data("uniformed")&&r)for(d=0;d<s.length;d+=1)if(e=s[d],e.match(b,a)){d=e.apply(b,a);b.data("uniformed",d);f.uniform.elements.push(b.get(0));break}})};f.uniform.restore=function(a){a===
m&&(a=f.uniform.elements);f(a).each(function(){var a=f(this),c;if(c=a.data("uniformed"))c.remove(),a.unbind(".uniform"),c=f.inArray(this,f.uniform.elements),0<=c&&f.uniform.elements.splice(c,1),a.removeData("uniformed")})};f.uniform.noSelect=function(a){var b=function(){return!1};f(a).each(function(){this.onselectstart=this.ondragstart=b;f(this).mousedown(b).css({MozUserSelect:"none"})})};f.uniform.update=function(a){a===m&&(a=f.uniform.elements);f(a).each(function(){var a=f(this),c;(c=a.data("uniformed"))&&
c.update(a,c.options)})}})(jQuery);

View File

@ -0,0 +1,10 @@
#!/bin/bash
echo "Sending JS to appspot.com"
curl \
-s \
--data-urlencode js_code@jquery.uniform.js \
--data output_info=compiled_code \
--data output_format=text \
--data compilation_level=SIMPLE_OPTIMIZATIONS \
http://closure-compiler.appspot.com/compile > jquery.uniform.min.js

View File

@ -4,7 +4,7 @@
* and open the template in the editor.
*/
?>
<h3 class="heading">Añadir un nuevo agente</h3>
<div id="w_sort05" class="w-box">
<div class="w-box-header">
Añadir un nuevo agente
@ -28,17 +28,17 @@
));
?>
<fieldset>
<div class="sepH_b">
<div class="sepH_b <?php echo ($invitacion->getError('nombre')) ? 'f_error' : ''; ?>">
<?php echo $form->labelEx($invitacion, 'nombre', array('class' => 'control-label')); ?>
<?php echo $form->textField($invitacion, 'nombre', array('class' => 'span12')); ?>
<?php echo $form->error($invitacion,'nombre'); ?>
</div>
<div class="sepH_b">
<div class="sepH_b <?php echo ($invitacion->getError('email')) ? 'f_error' : ''; ?>">
<?php echo $form->labelEx($invitacion, 'email', array('class' => 'control-label')); ?>
<?php echo $form->textField($invitacion, 'email', array('class' => 'span12')); ?>
<?php echo $form->error($invitacion,'email'); ?>
</div>
<div class="formSep">
<div class="formSep <?php echo ($invitacion->getError('mensaje')) ? 'f_error' : ''; ?>">
<?php echo $form->labelEx($invitacion, 'mensaje', array('class' => 'control-label')); ?>
<?php echo $form->textArea($invitacion, 'mensaje', array('class' => 'span12 auto_expand')); ?>
</div>

View File

@ -1,44 +1,84 @@
<?php $this->pageTitle = Yii::t('profind', 'Lista de agentes'); ?>
<div class="row-fluid">
<div class="span12">
<h3 class="heading"><?php echo Yii::t('profind', 'Lista de agentes'); ?></h3>
<div class="chat_box">
<div class="row-fluid">
<div class="span8 chat_sidebar">
<div class="chat_heading clearfix">
<?php echo Yii::t('profind', 'Agentes'); ?>
<div class="pull-right">
<div class="btn-group">
<a class="btn btn-mini delete_msg btn sepV_b" href="#" id="widget_upload_browse" style="position: relative; z-index: 0;">
<i class="icon-plus"></i> <?php echo Yii::t('profind', 'Nuevo agente'); ?></a>
</div>
</div>
</div>
<ul class="chat_user_list">
<?php foreach ($agentes as $agente) { ?>
<li class="<?php echo ($agente->estaActivo) ? 'online' : 'offline'; ?>">
<input type="checkbox" name="chat_user">
<a href="#">
<div class="span1">
<img alt="" src="http://placekitten.com/g/30/30">
</div>
<div class="span3">
<strong><?php echo $agente->nombre . ' ' . $agente->apellidos; ?></strong>
</div>
<div class="span3">
<?php echo $agente->email; ?>
</div>
<div class="clearfix"></div>
</a>
</li>
<?php } ?>
</ul>
</div>
<div class="span4">
<?php echo $this->renderPartial('_invitacion_form', array('invitacion'=>$invitacion), false, true); ?>
</div>
<div class="row-fluid">
<div id="lista-agentes" class="span8">
<h3 class="heading"><?php echo Yii::t('profind', 'Lista de agentes'); ?></h3>
<div class="row-fluid">
<div class="input-prepend">
<span class="add-on ad-on-icon"><i class="icon-user"></i></span>
<input type="text" placeholder="<?php echo Yii::t('profind', 'Buscar agente'); ?>" class="lista-agentes-search search">
</div>
<ul class="nav nav-pills line_sep">
<li class="dropdown">
<a href="#" data-toggle="dropdown" class="dropdown-toggle"><?php echo Yii::t('profind', 'Ordenar por'); ?> <b class="caret"></b></a>
<ul class="dropdown-menu sort-by">
<li><a data-sort="sl_name" class="sort" href="javascript:void(0)"><?php echo Yii::t('profind', 'por nombre'); ?></a></li>
<li><a data-sort="sl_status" class="sort" href="javascript:void(0)"><?php echo Yii::t('profind', 'por estado'); ?></a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" data-toggle="dropdown" class="dropdown-toggle"><?php echo Yii::t('profind', 'Mostrar'); ?> <b class="caret"></b></a>
<ul class="dropdown-menu filter">
<li class="active"><a id="filter-none" href="javascript:void(0)"><?php echo Yii::t('profind', 'Todos'); ?></a></li>
<li><a id="filter-online" href="javascript:void(0)"><?php echo Yii::t('profind', 'Activos'); ?></a></li>
<li><a id="filter-offline" href="javascript:void(0)"><?php echo Yii::t('profind', 'No activos'); ?></a></li>
</ul>
</li>
</ul>
</div>
<ul class="list user_list">
<?php foreach ($agentes as $agente) : ?>
<li>
<span class="label pull-right sl_status <?php echo ($agente->estaActivo) ? 'label-success' : ''; ?>">
<?php echo ($agente->estaActivo) ? Yii::t('profind', 'activo') : Yii::t('profind', 'no activo'); ?>
</span>
<div class="span1">
<?php
echo CHtml::image($agente->fotografia->getThumbnail(), $agente->nombreCompleto, array(
'class' => 'thumbnail',
'width' => '50px',
'height' => '50px')
);
?>
</div>
<a class="sl_name" href="#"><?php echo $agente->nombreCompleto; ?></a><br>
<?php if ($agente->titulo) : ?>
<small><?php echo $agente->titulo; ?></small><br>
<?php endif; ?>
<small class="s_color sl_email"><?php echo CHtml::link($agente->email, $agente->email); ?></small><br>
<div class="clearfix">&nbsp;</div>
</li>
<?php endforeach; ?>
</ul>
</div>
</div>
<div class="span4">
<?php if ($invitacion) : ?>
<?php echo $this->renderPartial('_invitacion_form', array('invitacion' => $invitacion), false, true); ?>
<?php else: ?>
<h3 class="heading">Añadir un nuevo agente</h3>
<div id="w_sort01" class="w-box">
<div class="w-box-header">
Máximo alcanzado
<div class="pull-right"><span class="label label-important"><?php echo Usuario::model()->equipo()->count(); ?> agentes</span></div>
</div>
<div class="w-box-content cnt_a">
<p>Ha alcanzado el número máximo de agentes permitidos para su producto contratado <strong><?php echo Yii::app()->user->subscripcion->producto->titulo; ?></strong>.</p>
<p>Puede cambiar a producto superior para poder seguir añadiendo más agentes.</p>
</div>
<div class="w-box-footer">
<div class="pagination-centered">
<?php
echo CHtml::link(
'Cambiar de producto',
Yii::app()->createUrl('/subscripcion/modificar', array('id' => Yii::app()->user->subscripcion->id)),
array(
'class' => 'btn btn-primary'
));
?>
</div>
</div>
</div>
<?php endif; ?>
</div>
</div>

View File

@ -1,75 +0,0 @@
<div class="row-fluid">
<div class="span12">
<h3 class="heading"><?php echo Yii::t('profind', 'Producto'); ?></h3>
<div class="row-fluid">
<div class="span8">
<?php if($model->hasErrors()) { ?>
<div class="alert alert-error">
<a data-dismiss="alert" class="close">×</a>
<?php echo CHtml::errorSummary($model,
'<strong>' . Yii::t('profind', 'Se han encontrado errores') . '</strong>',
'',
array('firstError' => true)); ?>
</div>
<?php } ?>
<?php
$form = $this->beginWidget('CActiveForm', array(
'id' => 'subcripcion-form',
'enableAjaxValidation' => false,
'htmlOptions' => array(
'class' => 'form-horizontal'
)
));
?>
<fieldset>
<div class="control-group formSep">
<?php echo $form->labelEx($model, 'Ud. Tiene ahora:', array('class' => 'control-label')); ?>
<div class="controls">
<?php echo $form->labelEx($model, $model->producto->titulo, array('class' => 'control-label')); ?>
</div>
</div>
<h3 class="heading">Si desea Actualizar Producto pulse en el nuevo:</h3>
<label>Cuenta Personal</label>
<label class="radio">
<input type="radio" checked="true" value="1" id="Producto1" name="Subcripcion[id_producto]">1 Publicación - Gratis
</label>
<label class="radio">
<input type="radio" value="2" id="Producto2" name="Subcripcion[id_producto]">5 Publicaciones - 80 euros/mes
</label>
<label class="radio">
<input type="radio" value="3" id="Producto3" name="Subcripcion[id_producto]">10 Publicaciones - 120 euros/mes
</label>
<label class="radio">
<input type="radio" value="4" id="Producto4" name="Subcripcion[id_producto]">20 Publicaciones - 180 euros/mes
</label>
<label>Cuenta para Equipos (Publicaciones Ilimitadas)</label>
<label class="radio">
<input type="radio" value="5" id="Producto5" name="Subcripcion[id_producto]">Hasta 5 Agentes - 500 euros/mes
</label>
<label class="radio">
<input type="radio" value="6" id="Producto6" name="Subcripcion[id_producto]">Hasta 10 Agentes - 800 euros/mes
</label>
<label class="radio">
<input type="radio" value="7" id="Producto7" name="Subcripcion[id_producto]">Hasta 20 Agentes - 1.200 euros/mes
</label>
<label class="radio">
<input type="radio" value="8" id="Producto8" name="Subcripcion[id_producto]">180 Publicaciones - 80 euros/mes
</label>
<div class="form-actions">
<button type="submit" class="btn btn-primary"><?php echo $model->isNewRecord ? Yii::t('profind', 'Crear') : Yii::t('profind', 'Guardar cambios'); ?></button>
<button class="btn"><?php echo Yii::t('profind', 'Cancelar'); ?></button>
</div>
</fieldset>
<?php $this->endWidget(); ?>
</div>
<div class="span4">
</div>
</div>
</div>
</div>

View File

@ -1,2 +0,0 @@
<?php $this->pageTitle=Yii::t('profind', 'Modificación de producto'); ?>
<?php echo $this->renderPartial('_form', array('model'=>$model)); ?>

View File

@ -0,0 +1,80 @@
<?php Yii::app()->clientScript->registerCssFile(Yii::app()->theme->baseUrl . '/lib/uniform/css/uniform.default.css'); ?>
<?php Yii::app()->clientScript->registerScriptFile(Yii::app()->theme->baseUrl . '/lib/uniform/jquery.uniform.min.js', CClientScript::POS_END); ?>
<?php
Yii::app()->clientScript->registerScript(
'uniform', "
$(document).ready(function(){
$('.uni_style').uniform();
});
", CClientScript::POS_END);
?>
<div class="row-fluid">
<div class="span12 clearfix">
<h4 class="heading"><?php echo Yii::t('profind', 'Si desea Actualizar Producto pulse en el nuevo:'); ?></h4>
<?php if ($model->hasErrors()) { ?>
<div class="alert alert-error">
<a data-dismiss="alert" class="close">×</a>
<?php
echo CHtml::errorSummary($model, '<strong>' . Yii::t('profind', 'Se han encontrado errores') . '</strong>', '', array('firstError' => true));
?>
</div>
<?php } ?>
</div>
</div>
<div class="row-fluid">
<div class="span6">
<?php
$form = $this->beginWidget('CActiveForm', array(
'id' => 'subscripcion-form',
'enableAjaxValidation' => false,
'htmlOptions' => array(
'class' => 'form-horizontal'
)
));
?>
<fieldset>
<?php echo $form->hiddenField($model, 'id'); ?>
<p><span class="label label-info"><?php echo Yii::t('profing', 'Cuenta Personal'); ?></span></p>
<label class="uni-radio">
<input type="radio" checked="true" value="1" class="uni_style" id="Producto1" name="Subscripcion[id_producto]">1 Publicación - Gratis
</label>
<label class="uni-radio">
<input type="radio" value="2" class="uni_style" id="Producto2" name="Subscripcion[id_producto]">5 Publicaciones - 80 euros/mes
</label>
<label class="uni-radio">
<input type="radio" value="3" class="uni_style" id="Producto3" name="Subscripcion[id_producto]">10 Publicaciones - 120 euros/mes
</label>
<label class="uni-radio">
<input type="radio" value="4" class="uni_style" id="Producto4" name="Subscripcion[id_producto]">20 Publicaciones - 180 euros/mes
</label>
</div>
<div class="span6">
<p><span class="label label-info"><?php echo Yii::t('profing', 'Cuenta para Equipos (Publicaciones Ilimitadas)'); ?></span></p>
<label class="uni-radio">
<input type="radio" value="5" class="uni_style" id="Producto5" name="Subscripcion[id_producto]">Hasta 5 Agentes - 500 euros/mes
</label>
<label class="uni-radio">
<input type="radio" value="6" class="uni_style" id="Producto6" name="Subscripcion[id_producto]">Hasta 10 Agentes - 800 euros/mes
</label>
<label class="uni-radio">
<input type="radio" value="7" class="uni_style" id="Producto7" name="Subscripcion[id_producto]">Hasta 20 Agentes - 1.200 euros/mes
</label>
<label class="uni-radio">
<input type="radio" value="8" class="uni_style" id="Producto8" name="Subscripcion[id_producto]">180 Publicaciones - 80 euros/mes
</label>
</div>
</div>
<div class="row-fluid">
<div class="span12">
<div class="form-actions tac">
<button type="submit" class="btn btn-primary"><?php echo Yii::t('profind', 'Cambiar de producto'); ?></button>
</div>
</fieldset>
<?php $this->endWidget(); ?>
</div>
</div>

View File

@ -0,0 +1,21 @@
<?php $this->pageTitle = Yii::t('profind', 'Modificación de producto'); ?>
<div class="row-fluid">
<div class="span12">
<h3 class="heading"><?php echo Yii::t('profind', 'Producto'); ?></h3>
</div>
<div class="span12 tac clearfix">
<ul class="ov_boxes">
<li>
<div class=""></div>
<div class="ov_text">
<?php echo Yii::t('profind', 'Ud. Tiene ahora:'); ?>
<strong><?php echo $model->producto->titulo; ?></strong>
</div>
</li>
</ul>
</div>
</div>
<?php echo $this->renderPartial('_form', array('model' => $model)); ?>

View File

@ -9,7 +9,7 @@
allow_single_deselect: true
});
});
");
", CClientScript::POS_END);
?>
<?php Yii::app()->clientScript->registerScript(
@ -21,7 +21,7 @@
}
});
});
");
", CClientScript::POS_END);
?>