From 7aa32d3238151704e895cf6d5e5dc4e5bd3153fa Mon Sep 17 00:00:00 2001 From: david Date: Sun, 30 Sep 2012 17:08:01 +0000 Subject: [PATCH] - 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 --- .../controllers/EquipoController.php | 87 +- .../models/FormularioInvitarAgente.php | 17 +- www/protected/models/Usuario.php | 17 + www/themes/profind/css/profind.css | 121 ++- www/themes/profind/css/profind_1.css | 663 -------------- www/themes/profind/lib/uniform/.gitignore | 1 + www/themes/profind/lib/uniform/README.md | 288 +++++++ www/themes/profind/lib/uniform/TODO.md | 7 + .../lib/uniform/css/uniform.default.css | 644 ++++++++++++++ www/themes/profind/lib/uniform/demo/demo.html | 262 ++++++ .../lib/uniform/images/bg-input-focus.png | Bin 0 -> 143 bytes .../profind/lib/uniform/images/bg-input.png | Bin 0 -> 143 bytes .../profind/lib/uniform/images/sprite.png | Bin 0 -> 34229 bytes .../profind/lib/uniform/jquery.uniform.js | 806 ++++++++++++++++++ .../profind/lib/uniform/jquery.uniform.min.js | 17 + www/themes/profind/lib/uniform/minify | 10 + .../profind/views/equipo/_invitacion_form.php | 8 +- www/themes/profind/views/equipo/index.php | 118 ++- .../profind/views/subcripcion/_form.php | 75 -- .../profind/views/subcripcion/modificar.php | 2 - .../profind/views/subscripcion/_form.php | 80 ++ .../profind/views/subscripcion/modificar.php | 21 + www/themes/profind/views/usuario/_form.php | 4 +- 23 files changed, 2354 insertions(+), 894 deletions(-) delete mode 100644 www/themes/profind/css/profind_1.css create mode 100644 www/themes/profind/lib/uniform/.gitignore create mode 100644 www/themes/profind/lib/uniform/README.md create mode 100644 www/themes/profind/lib/uniform/TODO.md create mode 100644 www/themes/profind/lib/uniform/css/uniform.default.css create mode 100644 www/themes/profind/lib/uniform/demo/demo.html create mode 100644 www/themes/profind/lib/uniform/images/bg-input-focus.png create mode 100644 www/themes/profind/lib/uniform/images/bg-input.png create mode 100644 www/themes/profind/lib/uniform/images/sprite.png create mode 100644 www/themes/profind/lib/uniform/jquery.uniform.js create mode 100644 www/themes/profind/lib/uniform/jquery.uniform.min.js create mode 100644 www/themes/profind/lib/uniform/minify delete mode 100644 www/themes/profind/views/subcripcion/_form.php delete mode 100644 www/themes/profind/views/subcripcion/modificar.php create mode 100644 www/themes/profind/views/subscripcion/_form.php create mode 100644 www/themes/profind/views/subscripcion/modificar.php diff --git a/www/protected/controllers/EquipoController.php b/www/protected/controllers/EquipoController.php index a074b71..88cc69c 100644 --- a/www/protected/controllers/EquipoController.php +++ b/www/protected/controllers/EquipoController.php @@ -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, diff --git a/www/protected/models/FormularioInvitarAgente.php b/www/protected/models/FormularioInvitarAgente.php index d7f99fa..32c345e 100644 --- a/www/protected/models/FormularioInvitarAgente.php +++ b/www/protected/models/FormularioInvitarAgente.php @@ -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']); + } } } diff --git a/www/protected/models/Usuario.php b/www/protected/models/Usuario.php index cc27c35..18457cc 100644 --- a/www/protected/models/Usuario.php +++ b/www/protected/models/Usuario.php @@ -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; + } + } diff --git a/www/themes/profind/css/profind.css b/www/themes/profind/css/profind.css index e6fdc3b..af895cc 100644 --- a/www/themes/profind/css/profind.css +++ b/www/themes/profind/css/profind.css @@ -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%; +} \ No newline at end of file diff --git a/www/themes/profind/css/profind_1.css b/www/themes/profind/css/profind_1.css deleted file mode 100644 index 1b9b82d..0000000 --- a/www/themes/profind/css/profind_1.css +++ /dev/null @@ -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
 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}
-		}
\ No newline at end of file
diff --git a/www/themes/profind/lib/uniform/.gitignore b/www/themes/profind/lib/uniform/.gitignore
new file mode 100644
index 0000000..496ee2c
--- /dev/null
+++ b/www/themes/profind/lib/uniform/.gitignore
@@ -0,0 +1 @@
+.DS_Store
\ No newline at end of file
diff --git a/www/themes/profind/lib/uniform/README.md b/www/themes/profind/lib/uniform/README.md
new file mode 100644
index 0000000..661e44f
--- /dev/null
+++ b/www/themes/profind/lib/uniform/README.md
@@ -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 you’ll want to link to the jquery.uniform.js file and uniform.default.css in the head area of your page:
+
+    
+    
+
+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:
+
+    
+
+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…'});
+
+### 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 ID’s 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 element’s style. Fortunately, it’s 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 don’t 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 don’t do it, it’s 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. It’s 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.
+
+* You’re 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.
diff --git a/www/themes/profind/lib/uniform/TODO.md b/www/themes/profind/lib/uniform/TODO.md
new file mode 100644
index 0000000..1ab1e25
--- /dev/null
+++ b/www/themes/profind/lib/uniform/TODO.md
@@ -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.
diff --git a/www/themes/profind/lib/uniform/css/uniform.default.css b/www/themes/profind/lib/uniform/css/uniform.default.css
new file mode 100644
index 0000000..bdcfedf
--- /dev/null
+++ b/www/themes/profind/lib/uniform/css/uniform.default.css
@@ -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;
+}
diff --git a/www/themes/profind/lib/uniform/demo/demo.html b/www/themes/profind/lib/uniform/demo/demo.html
new file mode 100644
index 0000000..0ab0a9a
--- /dev/null
+++ b/www/themes/profind/lib/uniform/demo/demo.html
@@ -0,0 +1,262 @@
+
+
+	
+		
+		
+		
+	
+	
+		

Uniform Demo

+
+ Options: + Minified + + +
+
+ + + + + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + + +
+
+ + +
+
+ + +
+
+
+ + + + + + +
+
+ + +
+
+

+ Normal link, + uniformed link (self) and + uniformed link (new window). +

+ + diff --git a/www/themes/profind/lib/uniform/images/bg-input-focus.png b/www/themes/profind/lib/uniform/images/bg-input-focus.png new file mode 100644 index 0000000000000000000000000000000000000000..0b059d48da54ea8912aa090ff066c305ad2bd737 GIT binary patch literal 143 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrB!3-o#&#{0g$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1G`~f~8u0MYKc>n(WvuDrl-o5+(|Np=24<-Yp#5`RbLn>}1 nC8Q-JC8Q)IBqSybP0l+XkKgNrV7 literal 0 HcmV?d00001 diff --git a/www/themes/profind/lib/uniform/images/bg-input.png b/www/themes/profind/lib/uniform/images/bg-input.png new file mode 100644 index 0000000000000000000000000000000000000000..485d222ebb14b743b62680377907cf01944bb761 GIT binary patch literal 143 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrB!3-o#&#{0g$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1G`~f~8u1}vnee>qc=g*&i{rdI)|No0DL0f=QVxBIJAr-fh n5)u+p5|R?q5)u;_ISd#WoEZ4!^X2t`Di}On{an^LB{Ts5W?d~; literal 0 HcmV?d00001 diff --git a/www/themes/profind/lib/uniform/images/sprite.png b/www/themes/profind/lib/uniform/images/sprite.png new file mode 100644 index 0000000000000000000000000000000000000000..66b558fc6e40a749db29374e9bfef084c7c91e0e GIT binary patch literal 34229 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 literal 0 HcmV?d00001 diff --git a/www/themes/profind/lib/uniform/jquery.uniform.js b/www/themes/profind/lib/uniform/jquery.uniform.js new file mode 100644 index 0000000..85d0ca3 --- /dev/null +++ b/www/themes/profind/lib/uniform/jquery.uniform.js @@ -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 + and his noSelect 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 $('').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 = $('
'); + $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 = $("").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($("
").width() - $("").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)); diff --git a/www/themes/profind/lib/uniform/jquery.uniform.min.js b/www/themes/profind/lib/uniform/jquery.uniform.min.js new file mode 100644 index 0000000..59f1ff9 --- /dev/null +++ b/www/themes/profind/lib/uniform/jquery.uniform.min.js @@ -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("
");e=f("");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("").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("").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("
").width()-f("").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 jquery.uniform.min.js diff --git a/www/themes/profind/views/equipo/_invitacion_form.php b/www/themes/profind/views/equipo/_invitacion_form.php index bbd4e62..e3ea767 100644 --- a/www/themes/profind/views/equipo/_invitacion_form.php +++ b/www/themes/profind/views/equipo/_invitacion_form.php @@ -4,7 +4,7 @@ * and open the template in the editor. */ ?> - +

Añadir un nuevo agente

Añadir un nuevo agente @@ -28,17 +28,17 @@ )); ?>
-
+
labelEx($invitacion, 'nombre', array('class' => 'control-label')); ?> textField($invitacion, 'nombre', array('class' => 'span12')); ?> error($invitacion,'nombre'); ?>
-
+
labelEx($invitacion, 'email', array('class' => 'control-label')); ?> textField($invitacion, 'email', array('class' => 'span12')); ?> error($invitacion,'email'); ?>
-
+
labelEx($invitacion, 'mensaje', array('class' => 'control-label')); ?> textArea($invitacion, 'mensaje', array('class' => 'span12 auto_expand')); ?>
diff --git a/www/themes/profind/views/equipo/index.php b/www/themes/profind/views/equipo/index.php index e4547b8..d5c6e06 100644 --- a/www/themes/profind/views/equipo/index.php +++ b/www/themes/profind/views/equipo/index.php @@ -1,44 +1,84 @@ pageTitle = Yii::t('profind', 'Lista de agentes'); ?> -
-
-

-
-
- -
- renderPartial('_invitacion_form', array('invitacion'=>$invitacion), false, true); ?> -
+
+
+

+
+
+ +
+
+
    + +
  • + + estaActivo) ? Yii::t('profind', 'activo') : Yii::t('profind', 'no activo'); ?> + +
    + fotografia->getThumbnail(), $agente->nombreCompleto, array( + 'class' => 'thumbnail', + 'width' => '50px', + 'height' => '50px') + ); + ?> +
    + nombreCompleto; ?>
    + titulo) : ?> + titulo; ?>
    + + email, $agente->email); ?>
    +
     
    +
  • + +
-
\ No newline at end of file +
+ + renderPartial('_invitacion_form', array('invitacion' => $invitacion), false, true); ?> + +

Añadir un nuevo agente

+
+
+ Máximo alcanzado +
equipo()->count(); ?> agentes
+
+
+

Ha alcanzado el número máximo de agentes permitidos para su producto contratado user->subscripcion->producto->titulo; ?>.

+

Puede cambiar a producto superior para poder seguir añadiendo más agentes.

+
+ +
+ +
+
+ diff --git a/www/themes/profind/views/subcripcion/_form.php b/www/themes/profind/views/subcripcion/_form.php deleted file mode 100644 index 3d6445d..0000000 --- a/www/themes/profind/views/subcripcion/_form.php +++ /dev/null @@ -1,75 +0,0 @@ -
-
-

-
-
- hasErrors()) { ?> -
- × - ' . Yii::t('profind', 'Se han encontrado errores') . '', - '', - array('firstError' => true)); ?> -
- - - beginWidget('CActiveForm', array( - 'id' => 'subcripcion-form', - 'enableAjaxValidation' => false, - 'htmlOptions' => array( - 'class' => 'form-horizontal' - ) - )); - ?> - - -
-
- labelEx($model, 'Ud. Tiene ahora:', array('class' => 'control-label')); ?> -
- labelEx($model, $model->producto->titulo, array('class' => 'control-label')); ?> -
-
- -

Si desea Actualizar Producto pulse en el nuevo:

- - - - - - - - - - - - -
- - -
-
- endWidget(); ?> -
-
-
-
-
-
diff --git a/www/themes/profind/views/subcripcion/modificar.php b/www/themes/profind/views/subcripcion/modificar.php deleted file mode 100644 index 8041e53..0000000 --- a/www/themes/profind/views/subcripcion/modificar.php +++ /dev/null @@ -1,2 +0,0 @@ -pageTitle=Yii::t('profind', 'Modificación de producto'); ?> -renderPartial('_form', array('model'=>$model)); ?> diff --git a/www/themes/profind/views/subscripcion/_form.php b/www/themes/profind/views/subscripcion/_form.php new file mode 100644 index 0000000..d70947a --- /dev/null +++ b/www/themes/profind/views/subscripcion/_form.php @@ -0,0 +1,80 @@ +clientScript->registerCssFile(Yii::app()->theme->baseUrl . '/lib/uniform/css/uniform.default.css'); ?> +clientScript->registerScriptFile(Yii::app()->theme->baseUrl . '/lib/uniform/jquery.uniform.min.js', CClientScript::POS_END); ?> +clientScript->registerScript( + 'uniform', " + $(document).ready(function(){ + $('.uni_style').uniform(); + }); + ", CClientScript::POS_END); +?> + + +
+
+

+hasErrors()) { ?> +
+ × + ' . Yii::t('profind', 'Se han encontrado errores') . '', '', array('firstError' => true)); + ?> +
+ +
+
+
+
+ + beginWidget('CActiveForm', array( + 'id' => 'subscripcion-form', + 'enableAjaxValidation' => false, + 'htmlOptions' => array( + 'class' => 'form-horizontal' + ) + )); + ?> + + +
+hiddenField($model, 'id'); ?> +

+ + + + +
+
+

+ + + + +
+
+
+
+
+ +
+
+endWidget(); ?> +
+
diff --git a/www/themes/profind/views/subscripcion/modificar.php b/www/themes/profind/views/subscripcion/modificar.php new file mode 100644 index 0000000..e097c35 --- /dev/null +++ b/www/themes/profind/views/subscripcion/modificar.php @@ -0,0 +1,21 @@ +pageTitle = Yii::t('profind', 'Modificación de producto'); ?> + +
+
+

+
+ +
+
    +
  • +
    +
    + + producto->titulo; ?> +
    +
  • +
+
+
+ +renderPartial('_form', array('model' => $model)); ?> diff --git a/www/themes/profind/views/usuario/_form.php b/www/themes/profind/views/usuario/_form.php index d370747..85c09f2 100644 --- a/www/themes/profind/views/usuario/_form.php +++ b/www/themes/profind/views/usuario/_form.php @@ -9,7 +9,7 @@ allow_single_deselect: true }); }); - "); + ", CClientScript::POS_END); ?> clientScript->registerScript( @@ -21,7 +21,7 @@ } }); }); - "); + ", CClientScript::POS_END); ?>