Commit 2bb287cd81165f7ccffc5e21db0067a0e977ed2b
Merge remote-tracking branch 'origin/master'
Showing
13 changed files
with
720 additions
and
240 deletions
Show diff stats
| 1 | +<?php | ||
| 2 | + | ||
| 3 | + namespace common\models; | ||
| 4 | + | ||
| 5 | + use Yii; | ||
| 6 | + use yii\base\Model; | ||
| 7 | + use yii\data\ActiveDataProvider; | ||
| 8 | + use common\models\User; | ||
| 9 | + | ||
| 10 | + /** | ||
| 11 | + * CustomerSearch represents the model behind the search form about `common\models\UserInfo`. | ||
| 12 | + */ | ||
| 13 | + class CustomerSearch extends User | ||
| 14 | + { | ||
| 15 | + | ||
| 16 | + public $type; | ||
| 17 | + | ||
| 18 | + public $rating; | ||
| 19 | + | ||
| 20 | + public $online; | ||
| 21 | + | ||
| 22 | + public $city; | ||
| 23 | + | ||
| 24 | + public $info; | ||
| 25 | + | ||
| 26 | + /** | ||
| 27 | + * @inheritdoc | ||
| 28 | + */ | ||
| 29 | + public function rules() | ||
| 30 | + { | ||
| 31 | + return [ | ||
| 32 | + [ | ||
| 33 | + [ | ||
| 34 | + 'type', | ||
| 35 | + 'rating', | ||
| 36 | + 'online', | ||
| 37 | + ], | ||
| 38 | + 'integer', | ||
| 39 | + ], | ||
| 40 | + [ | ||
| 41 | + [ | ||
| 42 | + 'city', | ||
| 43 | + 'info', | ||
| 44 | + ], | ||
| 45 | + 'safe', | ||
| 46 | + ], | ||
| 47 | + ]; | ||
| 48 | + } | ||
| 49 | + | ||
| 50 | + /** | ||
| 51 | + * @inheritdoc | ||
| 52 | + */ | ||
| 53 | + public function attributeLabels() | ||
| 54 | + { | ||
| 55 | + return [ | ||
| 56 | + 'type' => Yii::t('app', 'Тип заказчика'), | ||
| 57 | + 'rating' => Yii::t('app', 'Рейтинг'), | ||
| 58 | + 'online' => Yii::t('app', 'Статус'), | ||
| 59 | + 'city' => Yii::t('app', 'Город'), | ||
| 60 | + 'info' => Yii::t('app', 'Любая информация о заказчике'), | ||
| 61 | + ]; | ||
| 62 | + } | ||
| 63 | + | ||
| 64 | + /** | ||
| 65 | + * @inheritdoc | ||
| 66 | + */ | ||
| 67 | + public function scenarios() | ||
| 68 | + { | ||
| 69 | + // bypass scenarios() implementation in the parent class | ||
| 70 | + return Model::scenarios(); | ||
| 71 | + } | ||
| 72 | + | ||
| 73 | + /** | ||
| 74 | + * Creates data provider instance with search query applied | ||
| 75 | + * | ||
| 76 | + * @param array $params | ||
| 77 | + * | ||
| 78 | + * @return ActiveDataProvider | ||
| 79 | + */ | ||
| 80 | + public function search($params) | ||
| 81 | + { | ||
| 82 | + $query = User::find() | ||
| 83 | + ->joinWith('userInfo') | ||
| 84 | + ->joinWith('companyInfo'); | ||
| 85 | + | ||
| 86 | + $dataProvider = new ActiveDataProvider([ | ||
| 87 | + 'query' => $query, | ||
| 88 | + ]); | ||
| 89 | + | ||
| 90 | + $this->load($params); | ||
| 91 | + | ||
| 92 | + if(!$this->validate()) { | ||
| 93 | + // uncomment the following line if you do not want to return any records when validation fails | ||
| 94 | + // $query->where('0=1'); | ||
| 95 | + return $dataProvider; | ||
| 96 | + } | ||
| 97 | + | ||
| 98 | + $query->andWhere([ | ||
| 99 | + 'is_customer' => 1, | ||
| 100 | + ]); | ||
| 101 | + | ||
| 102 | + if($this->type == 2) { | ||
| 103 | + $query->andWhere([ | ||
| 104 | + 'not', | ||
| 105 | + [ 'company_info.company_info_id' => NULL ], | ||
| 106 | + ]); | ||
| 107 | + | ||
| 108 | + $query->andWhere([ | ||
| 109 | + 'type' => 2, | ||
| 110 | + ]); | ||
| 111 | + } elseif($this->type == 1) { | ||
| 112 | + $query->andWhere([ | ||
| 113 | + 'type' => 1, | ||
| 114 | + ]); | ||
| 115 | + } | ||
| 116 | + | ||
| 117 | + if($this->online == 1) { | ||
| 118 | + $query->andWhere([ | ||
| 119 | + '>=', | ||
| 120 | + 'user_info.date_visit', | ||
| 121 | + date('Y-m-d H:i:s.u', time() - 1800), | ||
| 122 | + ]); | ||
| 123 | + } | ||
| 124 | + | ||
| 125 | + $query->andFilterWhere([ | ||
| 126 | + 'like', | ||
| 127 | + 'user_info.city', | ||
| 128 | + $this->city, | ||
| 129 | + ])->andFilterWhere([ | ||
| 130 | + 'or', | ||
| 131 | + [ | ||
| 132 | + 'like', | ||
| 133 | + 'LOWER(username)', | ||
| 134 | + mb_strtolower($this->info), | ||
| 135 | + ], | ||
| 136 | + [ | ||
| 137 | + 'like', | ||
| 138 | + 'LOWER(lastname)', | ||
| 139 | + mb_strtolower($this->info), | ||
| 140 | + ], | ||
| 141 | + [ | ||
| 142 | + 'like', | ||
| 143 | + 'LOWER(firstname)', | ||
| 144 | + mb_strtolower($this->info), | ||
| 145 | + ], | ||
| 146 | + [ | ||
| 147 | + 'like', | ||
| 148 | + 'LOWER(middlename)', | ||
| 149 | + mb_strtolower($this->info), | ||
| 150 | + ], | ||
| 151 | + [ | ||
| 152 | + 'like', | ||
| 153 | + 'LOWER(company_info.name)', | ||
| 154 | + mb_strtolower($this->info), | ||
| 155 | + ], | ||
| 156 | + [ | ||
| 157 | + 'like', | ||
| 158 | + 'LOWER(company_info.street)', | ||
| 159 | + mb_strtolower($this->info), | ||
| 160 | + ], | ||
| 161 | + [ | ||
| 162 | + 'like', | ||
| 163 | + 'LOWER(user_info.country)', | ||
| 164 | + mb_strtolower($this->info), | ||
| 165 | + ], | ||
| 166 | + [ | ||
| 167 | + 'like', | ||
| 168 | + 'LOWER(user_info.city)', | ||
| 169 | + mb_strtolower($this->info), | ||
| 170 | + ], | ||
| 171 | + [ | ||
| 172 | + 'like', | ||
| 173 | + 'LOWER(user_info.about)', | ||
| 174 | + mb_strtolower($this->info), | ||
| 175 | + ], | ||
| 176 | + ]); | ||
| 177 | + | ||
| 178 | + return $dataProvider; | ||
| 179 | + } | ||
| 180 | + } |
common/models/User.php
| 1 | <?php | 1 | <?php |
| 2 | namespace common\models; | 2 | namespace common\models; |
| 3 | 3 | ||
| 4 | + use common\modules\comment\models\Comment; | ||
| 5 | + use common\modules\comment\models\Rating; | ||
| 4 | use Yii; | 6 | use Yii; |
| 7 | + use yii\base\InvalidConfigException; | ||
| 5 | use yii\base\NotSupportedException; | 8 | use yii\base\NotSupportedException; |
| 6 | use yii\behaviors\TimestampBehavior; | 9 | use yii\behaviors\TimestampBehavior; |
| 7 | use yii\db\ActiveQuery; | 10 | use yii\db\ActiveQuery; |
| @@ -13,17 +16,18 @@ | @@ -13,17 +16,18 @@ | ||
| 13 | 16 | ||
| 14 | /** | 17 | /** |
| 15 | * User model | 18 | * User model |
| 16 | - * @property integer $id | ||
| 17 | - * @property string $username | ||
| 18 | - * @property string $password_hash | ||
| 19 | - * @property string $password_reset_token | ||
| 20 | - * @property string $email | ||
| 21 | - * @property string $auth_key | ||
| 22 | - * @property integer $status | ||
| 23 | - * @property integer $created_at | ||
| 24 | - * @property integer $updated_at | ||
| 25 | - * @property string $password write-only password | ||
| 26 | - * @property string $type | 19 | + * @property integer $id |
| 20 | + * @property string $username | ||
| 21 | + * @property string $password_hash | ||
| 22 | + * @property string $password_reset_token | ||
| 23 | + * @property string $email | ||
| 24 | + * @property string $auth_key | ||
| 25 | + * @property integer $status | ||
| 26 | + * @property integer $created_at | ||
| 27 | + * @property integer $updated_at | ||
| 28 | + * @property string $password write-only password | ||
| 29 | + * @property string $type | ||
| 30 | + * @property UserInfo $userInfo | ||
| 27 | */ | 31 | */ |
| 28 | class User extends ActiveRecord implements IdentityInterface, UserRbacInterface | 32 | class User extends ActiveRecord implements IdentityInterface, UserRbacInterface |
| 29 | { | 33 | { |
| @@ -57,9 +61,6 @@ | @@ -57,9 +61,6 @@ | ||
| 57 | ]; | 61 | ]; |
| 58 | } | 62 | } |
| 59 | 63 | ||
| 60 | - | ||
| 61 | - | ||
| 62 | - | ||
| 63 | /** | 64 | /** |
| 64 | * @inheritdoc | 65 | * @inheritdoc |
| 65 | */ | 66 | */ |
| @@ -93,10 +94,15 @@ | @@ -93,10 +94,15 @@ | ||
| 93 | [ | 94 | [ |
| 94 | 'specializationInput', | 95 | 'specializationInput', |
| 95 | 'paymentInput', | 96 | 'paymentInput', |
| 96 | - 'type' | 97 | + 'type', |
| 97 | ], | 98 | ], |
| 98 | 'safe', | 99 | 'safe', |
| 99 | ], | 100 | ], |
| 101 | + [ | ||
| 102 | + 'type', | ||
| 103 | + 'default', | ||
| 104 | + 'value' => 1, | ||
| 105 | + ], | ||
| 100 | ]; | 106 | ]; |
| 101 | } | 107 | } |
| 102 | 108 | ||
| @@ -107,8 +113,8 @@ | @@ -107,8 +113,8 @@ | ||
| 107 | { | 113 | { |
| 108 | return [ | 114 | return [ |
| 109 | 'firstname' => Yii::t('app', 'Имя'), | 115 | 'firstname' => Yii::t('app', 'Имя'), |
| 110 | - 'lastname' => Yii::t('app', 'Фамилия'), | ||
| 111 | - 'email' => Yii::t('app', 'Email'), | 116 | + 'lastname' => Yii::t('app', 'Фамилия'), |
| 117 | + 'email' => Yii::t('app', 'Email'), | ||
| 112 | ]; | 118 | ]; |
| 113 | } | 119 | } |
| 114 | 120 | ||
| @@ -343,7 +349,8 @@ | @@ -343,7 +349,8 @@ | ||
| 343 | */ | 349 | */ |
| 344 | public function getUserInfo() | 350 | public function getUserInfo() |
| 345 | { | 351 | { |
| 346 | - return $this->hasOne(UserInfo::className(), [ 'user_id' => 'id' ])->inverseOf('user'); | 352 | + return $this->hasOne(UserInfo::className(), [ 'user_id' => 'id' ]) |
| 353 | + ->inverseOf('user'); | ||
| 347 | } | 354 | } |
| 348 | 355 | ||
| 349 | /** | 356 | /** |
| @@ -403,11 +410,11 @@ | @@ -403,11 +410,11 @@ | ||
| 403 | $date1 = new \DateTime(date('Y-m-d H:i:s', $this->created_at)); | 410 | $date1 = new \DateTime(date('Y-m-d H:i:s', $this->created_at)); |
| 404 | $result = explode(',', \Yii::$app->formatter->asDuration($date1->diff($now))); | 411 | $result = explode(',', \Yii::$app->formatter->asDuration($date1->diff($now))); |
| 405 | 412 | ||
| 406 | - if($result >= 4){ | 413 | + if($result >= 4) { |
| 407 | array_splice($result, 2); | 414 | array_splice($result, 2); |
| 408 | } | 415 | } |
| 409 | 416 | ||
| 410 | - return implode(',',$result); | 417 | + return implode(',', $result); |
| 411 | } | 418 | } |
| 412 | 419 | ||
| 413 | /** | 420 | /** |
| @@ -544,7 +551,8 @@ | @@ -544,7 +551,8 @@ | ||
| 544 | */ | 551 | */ |
| 545 | public function getVacancies() | 552 | public function getVacancies() |
| 546 | { | 553 | { |
| 547 | - return $this->hasMany(Vacancy::className(), [ 'user_id' => 'id' ])->inverseOf('user'); | 554 | + return $this->hasMany(Vacancy::className(), [ 'user_id' => 'id' ]) |
| 555 | + ->inverseOf('user'); | ||
| 548 | } | 556 | } |
| 549 | 557 | ||
| 550 | public function getGalleries() | 558 | public function getGalleries() |
| @@ -554,22 +562,44 @@ | @@ -554,22 +562,44 @@ | ||
| 554 | 562 | ||
| 555 | public function getOwner() | 563 | public function getOwner() |
| 556 | { | 564 | { |
| 557 | - if($this->type == 1){ | ||
| 558 | - return $this->hasOne(UserInfo::className(), [ 'user_id' => 'id' ]); | ||
| 559 | - } else if($this->type == 2) { | 565 | + if($this->type == 2) { |
| 560 | return $this->hasOne(CompanyInfo::className(), [ 'user_id' => 'id' ]); | 566 | return $this->hasOne(CompanyInfo::className(), [ 'user_id' => 'id' ]); |
| 567 | + } else { | ||
| 568 | + return $this->hasOne(UserInfo::className(), [ 'user_id' => 'id' ]); | ||
| 561 | } | 569 | } |
| 562 | - | ||
| 563 | } | 570 | } |
| 564 | 571 | ||
| 565 | - public function getName(){ | ||
| 566 | - if($this->type == 1){ | ||
| 567 | - return $this->firstname. ' '.$this->lastname; | ||
| 568 | - } else if($this->type == 2){ | 572 | + public function getName() |
| 573 | + { | ||
| 574 | + if($this->type == 2) { | ||
| 569 | return $this->companyInfo->name; | 575 | return $this->companyInfo->name; |
| 576 | + } else { | ||
| 577 | + return $this->firstname . ' ' . $this->lastname; | ||
| 570 | } | 578 | } |
| 579 | + } | ||
| 571 | 580 | ||
| 581 | + public function getComments() | ||
| 582 | + { | ||
| 583 | + $entity = 'user-' . $this->id; | ||
| 584 | + $comments = (new Comment())->getComments($entity); | ||
| 585 | + return $comments; | ||
| 572 | } | 586 | } |
| 573 | 587 | ||
| 588 | + public function getRatingPG() | ||
| 589 | + { | ||
| 590 | + if(\Yii::$app->db->driverName != 'pgsql') { | ||
| 591 | + throw new InvalidConfigException('This method is available only in PostgreSQL'); | ||
| 592 | + } | ||
| 593 | + $entity = 'user-' . $this->id; | ||
| 594 | + $rating = (new Comment())->getComments($entity) | ||
| 595 | + ->select('ROUND(SUM("rating"."value")/COUNT("rating"."rating_id")::float) as rating') | ||
| 596 | + ->leftJoin(Rating::tableName(), "CONCAT('Comment-', \"comment\".\"comment_id\") = \"rating\".\"entity\"") | ||
| 597 | + ->andWhere([ | ||
| 598 | + 'not', | ||
| 599 | + [ 'rating.value' => NULL ], | ||
| 600 | + ]) | ||
| 601 | + ->one(); | ||
| 602 | + return $rating; | ||
| 603 | + } | ||
| 574 | 604 | ||
| 575 | } | 605 | } |
common/modules/comment/models/Comment.php
| 1 | <?php | 1 | <?php |
| 2 | namespace common\modules\comment\models; | 2 | namespace common\modules\comment\models; |
| 3 | 3 | ||
| 4 | + use yii\db\ActiveQuery; | ||
| 5 | + | ||
| 4 | /** | 6 | /** |
| 5 | * Class Comment | 7 | * Class Comment |
| 6 | * @property bool $guestComment | 8 | * @property bool $guestComment |
| @@ -19,6 +21,8 @@ | @@ -19,6 +21,8 @@ | ||
| 19 | const SCENARIO_USER = 'user'; | 21 | const SCENARIO_USER = 'user'; |
| 20 | const SCENARIO_GUEST = 'guest'; | 22 | const SCENARIO_GUEST = 'guest'; |
| 21 | 23 | ||
| 24 | + public $rating; | ||
| 25 | + | ||
| 22 | /** | 26 | /** |
| 23 | * @var bool | 27 | * @var bool |
| 24 | */ | 28 | */ |
| @@ -130,12 +134,17 @@ | @@ -130,12 +134,17 @@ | ||
| 130 | $this->guestComment = $value; | 134 | $this->guestComment = $value; |
| 131 | } | 135 | } |
| 132 | 136 | ||
| 137 | + /** | ||
| 138 | + * @param string $entity | ||
| 139 | + * | ||
| 140 | + * @return ActiveQuery | ||
| 141 | + */ | ||
| 133 | public function getComments($entity) | 142 | public function getComments($entity) |
| 134 | { | 143 | { |
| 135 | return $this->find() | 144 | return $this->find() |
| 136 | ->where([ | 145 | ->where([ |
| 137 | - 'entity' => $this->entity, | ||
| 138 | - 'status' => 1, | 146 | + 'comment.entity' => $entity, |
| 147 | + 'comment.status' => 1, | ||
| 139 | ]); | 148 | ]); |
| 140 | } | 149 | } |
| 141 | 150 |
frontend/controllers/SearchController.php
| 1 | <?php | 1 | <?php |
| 2 | namespace frontend\controllers; | 2 | namespace frontend\controllers; |
| 3 | 3 | ||
| 4 | +use common\models\CustomerSearch; | ||
| 4 | use common\models\Project; | 5 | use common\models\Project; |
| 5 | use common\models\UserInfo; | 6 | use common\models\UserInfo; |
| 6 | use common\models\Vacancy; | 7 | use common\models\Vacancy; |
| @@ -68,7 +69,65 @@ class SearchController extends Controller | @@ -68,7 +69,65 @@ class SearchController extends Controller | ||
| 68 | 69 | ||
| 69 | 70 | ||
| 70 | public function actionCustomer(){ | 71 | public function actionCustomer(){ |
| 72 | + $model = new CustomerSearch(); | ||
| 73 | + $dataProvider = $model->search(Yii::$app->request->queryParams); | ||
| 74 | + $dataProvider->setPagination([ | ||
| 75 | + 'pageSize' => 5 | ||
| 76 | + ]); | ||
| 77 | + $dataProvider->setSort([ | ||
| 78 | + 'attributes' => [ | ||
| 79 | + 'name' => [ | ||
| 80 | + 'asc' => [ | ||
| 81 | + 'company_info.name' => SORT_ASC, | ||
| 82 | + 'firstname' => SORT_ASC, | ||
| 83 | + 'lastname' => SORT_ASC, | ||
| 84 | + ], | ||
| 85 | + 'desc' => [ | ||
| 86 | + 'company_info.name' => SORT_DESC, | ||
| 87 | + 'firstname' => SORT_DESC, | ||
| 88 | + 'lastname' => SORT_DESC, | ||
| 89 | + ], | ||
| 90 | + 'default' => SORT_ASC, | ||
| 91 | + 'label' => 'Название', | ||
| 92 | + ], | ||
| 93 | + 'staff' => [ | ||
| 94 | + 'asc' => [ | ||
| 95 | + 'company_info.staff' => SORT_ASC, | ||
| 96 | + ], | ||
| 97 | + 'desc' => [ | ||
| 98 | + 'company_info.staff' => SORT_DESC, | ||
| 99 | + ], | ||
| 100 | + 'default' => SORT_DESC, | ||
| 101 | + 'label' => 'Количество сотрудников', | ||
| 102 | + ], | ||
| 103 | + 'visit' => [ | ||
| 104 | + 'asc' => [ | ||
| 105 | + 'user_info.date_visit' => SORT_ASC, | ||
| 106 | + ], | ||
| 107 | + 'desc' => [ | ||
| 108 | + 'user_info.date_visit' => SORT_DESC, | ||
| 109 | + ], | ||
| 110 | + 'default' => SORT_DESC, | ||
| 111 | + 'label' => 'Последний визит', | ||
| 112 | + ], | ||
| 113 | + 'city' => [ | ||
| 114 | + 'asc' => [ | ||
| 115 | + 'user_info.city' => SORT_ASC, | ||
| 116 | + ], | ||
| 117 | + 'desc' => [ | ||
| 118 | + 'user_info.city' => SORT_DESC, | ||
| 119 | + ], | ||
| 120 | + 'default' => SORT_ASC, | ||
| 121 | + 'label' => 'Город', | ||
| 122 | + ], | ||
| 123 | + ], | ||
| 124 | + ]); | ||
| 125 | + $model->load(Yii::$app->request->queryParams); | ||
| 126 | + $cities = UserInfo::find()->select('city')->distinct()->asArray()->indexBy('city')->column(); | ||
| 71 | return $this->render('customer',[ | 127 | return $this->render('customer',[ |
| 128 | + 'model' => $model, | ||
| 129 | + 'dataProvider' => $dataProvider, | ||
| 130 | + 'cities' => $cities, | ||
| 72 | ]); | 131 | ]); |
| 73 | } | 132 | } |
| 74 | 133 |
frontend/views/layouts/company.php
| @@ -16,10 +16,17 @@ $this->beginContent('@app/views/layouts/main.php'); | @@ -16,10 +16,17 @@ $this->beginContent('@app/views/layouts/main.php'); | ||
| 16 | <div class="performance-vacancy-call-back"> | 16 | <div class="performance-vacancy-call-back"> |
| 17 | <div class="performance-vacancy-call-back-title">Оставьте заявку<br />и мы вам перезвоним</div> | 17 | <div class="performance-vacancy-call-back-title">Оставьте заявку<br />и мы вам перезвоним</div> |
| 18 | <form class="callback" action=""> | 18 | <form class="callback" action=""> |
| 19 | - <label for="callbac_name">Имя</label> | ||
| 20 | - <input id="callbac_name" type="text"/> | ||
| 21 | - <label for="callbac_phone">Телефон</label> | ||
| 22 | - <input id="callbac_phone" type="text"/> | 19 | + |
| 20 | + <div class="input-blocks-wrapper"> | ||
| 21 | + <label for="callbac_name">Имя</label> | ||
| 22 | + <input id="callbac_name" type="text"/> | ||
| 23 | + </div> | ||
| 24 | + | ||
| 25 | + <div class="input-blocks-wrapper"> | ||
| 26 | + <label for="callbac_phone">Телефон</label> | ||
| 27 | + <input id="callbac_phone" type="text"/> | ||
| 28 | + </div> | ||
| 29 | + | ||
| 23 | <input id="callbac_submit" type="submit" value="Перезвонить мне"/> | 30 | <input id="callbac_submit" type="submit" value="Перезвонить мне"/> |
| 24 | </form> | 31 | </form> |
| 25 | <div class="performance-vacancy-call-back-conf">Гарантируем конфидециальность</div> | 32 | <div class="performance-vacancy-call-back-conf">Гарантируем конфидециальность</div> |
| 1 | +<?php | ||
| 2 | + /** | ||
| 3 | + * @var User $model | ||
| 4 | + * @var mixed $key | ||
| 5 | + * @var integer $index | ||
| 6 | + * @var ListView $widget | ||
| 7 | + */ | ||
| 8 | + use common\models\Project; | ||
| 9 | + use common\models\User; | ||
| 10 | + use frontend\helpers\TextHelper; | ||
| 11 | + use yii\bootstrap\Html; | ||
| 12 | + use yii\helpers\Url; | ||
| 13 | + use yii\widgets\ListView; | ||
| 14 | +?> | ||
| 15 | +<div class="search_perform_txt-wr"> | ||
| 16 | + <div class="search_perform_title"> | ||
| 17 | + <?php | ||
| 18 | + if($model->type == 2) { | ||
| 19 | + echo Html::a($model->companyInfo->name, ['company/common', 'company_id' => $model->id]); | ||
| 20 | + } else { | ||
| 21 | + echo Html::a($model->firstname . $model->lastname, ['performer/common', 'performer_id' => $model->id]); | ||
| 22 | + } | ||
| 23 | + ?> | ||
| 24 | + </div> | ||
| 25 | + <div class="search_perform-stars-wr"> | ||
| 26 | + <div class="rating_search_performer"> | ||
| 27 | + <!--оценка--> | ||
| 28 | + <?php | ||
| 29 | + if($rating = $model->getRatingPG()->rating) { | ||
| 30 | + echo "<input type='hidden' class='val' value='{$rating}'/>"; | ||
| 31 | + } else { | ||
| 32 | + echo "<input type='hidden' class='val' value='0'/>"; | ||
| 33 | + } | ||
| 34 | + ?> | ||
| 35 | + <input type="hidden" class="val" value="4"/> | ||
| 36 | + </div> | ||
| 37 | + <div class="search_perform-stars-txt"> | ||
| 38 | + <?= $model->getComments()->count() ?> отзывов | ||
| 39 | + <?php | ||
| 40 | + if(!empty( $model->userInfo->city )) { | ||
| 41 | + echo ", {$model->userInfo->city}"; | ||
| 42 | + } | ||
| 43 | + ?> | ||
| 44 | + </div> | ||
| 45 | + </div> | ||
| 46 | + <?php | ||
| 47 | + if($model->type == 2 && !empty( $model->companyInfo->staff )) { | ||
| 48 | + ?> | ||
| 49 | + <div class="search_perform_leng"> | ||
| 50 | + <div>Сотрудники: <?= $model->companyInfo->staff ?></div> | ||
| 51 | + </div> | ||
| 52 | + <?php | ||
| 53 | + } | ||
| 54 | + ?> | ||
| 55 | + <div class="search_perform_visit"> | ||
| 56 | + <span>Послелний визит:</span> <?= \Yii::$app->formatter->asRelativeTime($model->userInfo->date_visit) ?> | ||
| 57 | + </div> | ||
| 58 | + <div class="search_perform_projets_nam"> | ||
| 59 | + <?= Html::a("Заказано проектов {$model->getProjects()->count()}", ['search/project', (new Project())->formName().'[user_id]' => $model->id]) ?> | ||
| 60 | + </div> | ||
| 61 | +</div> | ||
| 62 | + | ||
| 63 | +<div class="right_search_perform_block-wr"> | ||
| 64 | + <div class="right_search_perform_foto-wr"> | ||
| 65 | + <div> | ||
| 66 | + <?php | ||
| 67 | + echo Html::img($model->userInfo->image?:"/images/search_performer_img-1.jpg", ['class' => 'search_customer_image']); | ||
| 68 | + ?> | ||
| 69 | + </div> | ||
| 70 | + </div> | ||
| 71 | + <a class="get-list" href="#">Добавить в закладки</a> | ||
| 72 | +</div> | ||
| 0 | \ No newline at end of file | 73 | \ No newline at end of file |
frontend/views/search/company.php
| @@ -100,6 +100,12 @@ use yii\widgets\ListView; | @@ -100,6 +100,12 @@ use yii\widgets\ListView; | ||
| 100 | <input type="submit" value="Найти"/> | 100 | <input type="submit" value="Найти"/> |
| 101 | </div> | 101 | </div> |
| 102 | </form> | 102 | </form> |
| 103 | + <script> | ||
| 104 | + $('div.rating').rating({ | ||
| 105 | + fx: 'full', | ||
| 106 | + url: 'rating.php' | ||
| 107 | + }); | ||
| 108 | + </script> | ||
| 103 | </div> | 109 | </div> |
| 104 | <div class="right-search-work"> | 110 | <div class="right-search-work"> |
| 105 | <div class="search-worker-title style">Найти исполнителя</div> | 111 | <div class="search-worker-title style">Найти исполнителя</div> |
| @@ -144,6 +150,14 @@ use yii\widgets\ListView; | @@ -144,6 +150,14 @@ use yii\widgets\ListView; | ||
| 144 | ?> | 150 | ?> |
| 145 | </div> | 151 | </div> |
| 146 | 152 | ||
| 153 | + <script> | ||
| 154 | + $('div.rating-new').rating({ | ||
| 155 | + fx: 'full', | ||
| 156 | + readOnly: 'true', | ||
| 157 | + url: 'rating.php' | ||
| 158 | + }); | ||
| 159 | + </script> | ||
| 160 | + | ||
| 147 | </div> | 161 | </div> |
| 148 | </div> | 162 | </div> |
| 149 | </div> | 163 | </div> |
frontend/views/search/customer.php
| 1 | <?php | 1 | <?php |
| 2 | -/** | ||
| 3 | - * Created by PhpStorm. | ||
| 4 | - * User: vitaliy | ||
| 5 | - * Date: 09.03.16 | ||
| 6 | - * Time: 10:21 | ||
| 7 | - */ | 2 | + /** |
| 3 | + * @var CustomerSearch $model | ||
| 4 | + * @var ActiveDataProvider $dataProvider | ||
| 5 | + * @var string[] $cities | ||
| 6 | + */ | ||
| 7 | + use common\models\CustomerSearch; | ||
| 8 | + use yii\data\ActiveDataProvider; | ||
| 9 | + use yii\helpers\Html; | ||
| 10 | + use yii\widgets\ActiveForm; | ||
| 11 | + use yii\widgets\LinkSorter; | ||
| 12 | + use yii\widgets\ListView; | ||
| 13 | + | ||
| 8 | ?> | 14 | ?> |
| 9 | <div class="section-box-22 section-box-customer"> | 15 | <div class="section-box-22 section-box-customer"> |
| 10 | <div class="box-wr"> | 16 | <div class="box-wr"> |
| 11 | <div class="box-all"> | 17 | <div class="box-all"> |
| 18 | + <?php | ||
| 19 | + // == Left filter == | ||
| 20 | + ?> | ||
| 12 | <div class="left-search-work"> | 21 | <div class="left-search-work"> |
| 13 | - <form action="" class="search-work-form"> | ||
| 14 | - <div class="blocks-check-list-wrapp"> | ||
| 15 | - <div class="blocks-check-title"><label for="theme-1">Город</label></div> | ||
| 16 | - <select id="theme-1"> | ||
| 17 | - <option selected="" value="">Любой</option> | ||
| 18 | - <option value="">Киев</option> | ||
| 19 | - <option value="">Житомир</option> | ||
| 20 | - <option value="">Львов</option> | ||
| 21 | - <option value="">Киев</option> | ||
| 22 | - <option value="">Житомир</option> | ||
| 23 | - <option value="">Львов</option> | 22 | + <?php |
| 23 | + $form = ActiveForm::begin(['method' => 'get', 'options' => [ 'class' => 'search-work-form' ], 'action' => [''] ]); | ||
| 24 | 24 | ||
| 25 | - <option value="">Киев</option> | ||
| 26 | - <option value="">Житомир</option> | ||
| 27 | - <option value="">Львов</option> | ||
| 28 | - <option value="">Киев</option> | ||
| 29 | - <option value="">Житомир</option> | ||
| 30 | - <option value="">Львов</option> | ||
| 31 | - <option value="">Киев</option> | ||
| 32 | - <option value="">Житомир</option> | ||
| 33 | - <option value="">Львов</option> | ||
| 34 | - <option value="">Киев</option> | ||
| 35 | - <option value="">Житомир</option> | ||
| 36 | - <option value="">Львов</option> | ||
| 37 | - <option value="">Киев</option> | ||
| 38 | - <option value="">Житомир</option> | ||
| 39 | - <option value="">Львов</option> | ||
| 40 | - <option value="">Киев</option> | ||
| 41 | - <option value="">Житомир</option> | ||
| 42 | - <option value="">Львов</option> | ||
| 43 | - <option value="">Киев</option> | ||
| 44 | - <option value="">Житомир</option> | ||
| 45 | - <option value="">Львов</option> | ||
| 46 | - <option value="">Киев</option> | ||
| 47 | - <option value="">Житомир</option> | ||
| 48 | - <option value="">Львов</option> | ||
| 49 | - <option value="">Киев</option> | ||
| 50 | - <option value="">Житомир</option> | ||
| 51 | - <option value="">Львов</option> | ||
| 52 | - <option value="">Киев</option> | ||
| 53 | - <option value="">Житомир</option> | ||
| 54 | - <option value="">Львов</option> | ||
| 55 | - <option value="">Киев</option> | ||
| 56 | - <option value="">Житомир</option> | ||
| 57 | - <option value="">Львов</option> | ||
| 58 | - <option value="">Киев</option> | ||
| 59 | - <option value="">Житомир</option> | ||
| 60 | - <option value="">Львов</option> | ||
| 61 | - <option value="">Киев</option> | ||
| 62 | - <option value="">Житомир</option> | ||
| 63 | - <option value="">Львов</option> | ||
| 64 | - <option value="">Киев</option> | ||
| 65 | - <option value="">Житомир</option> | ||
| 66 | - <option value="">Львов</option> | ||
| 67 | - <option value="">Киев</option> | ||
| 68 | - <option value="">Житомир</option> | ||
| 69 | - <option value="">Львов</option> | ||
| 70 | - <option value="">Киев</option> | ||
| 71 | - <option value="">Житомир</option> | ||
| 72 | - <option value="">Львов</option> | ||
| 73 | - <option value="">Киев</option> | ||
| 74 | - <option value="">Житомир</option> | ||
| 75 | - <option value="">Львов</option> | ||
| 76 | - <option value="">Киев</option> | ||
| 77 | - <option value="">Житомир</option> | ||
| 78 | - <option value="">Львов</option> | ||
| 79 | - <option value="">Киев</option> | 25 | + echo $form->field($model, 'city', [ |
| 26 | + 'options' => [ | ||
| 27 | + 'class' => 'blocks-check-list-wrapp', | ||
| 28 | + ], | ||
| 29 | + 'template' => "<div class='blocks-check-title'>{label}</div>\n{input}<div class='select-after'></div>\n{hint}\n{error}", | ||
| 30 | + ]) | ||
| 31 | + ->dropDownList($cities, [ 'prompt' => 'Любой' ]); | ||
| 80 | 32 | ||
| 81 | - </select><div class="select-after"></div> | ||
| 82 | - </div> | ||
| 83 | - | ||
| 84 | - <div class="blocks-check-list-wrapp"> | ||
| 85 | - <div class="blocks-check-title"><label for="theme-3">Тип заказчика</label></div> | ||
| 86 | - <select id="theme-3"> | ||
| 87 | - <option selected="" value="">Любая</option> | ||
| 88 | - <option value="">Киев</option> | ||
| 89 | - <option value="">Житомир</option> | ||
| 90 | - <option value="">Львов</option> | ||
| 91 | - <option value="">Киев</option> | ||
| 92 | - <option value="">Житомир</option> | ||
| 93 | - <option value="">Львов</option> | ||
| 94 | - </select><div class="select-after"></div> | ||
| 95 | - </div> | 33 | + echo $form->field($model, 'type', [ |
| 34 | + 'options' => [ | ||
| 35 | + 'class' => 'blocks-check-list-wrapp', | ||
| 36 | + ], | ||
| 37 | + 'template' => "<div class='blocks-check-title'>{label}</div>\n{input}<div class='select-after'></div>\n{hint}\n{error}", | ||
| 38 | + ]) | ||
| 39 | + ->dropDownList([ | ||
| 40 | + 1 => 'Физическое лицо', | ||
| 41 | + 2 => 'Компания', | ||
| 42 | + ], [ 'prompt' => 'Любой' ]); | ||
| 43 | + ?> | ||
| 96 | 44 | ||
| 45 | + <?php | ||
| 46 | + /* Рейтинг | ||
| 47 | + ?> | ||
| 97 | <div class="blocks-check-list-wrapp"> | 48 | <div class="blocks-check-list-wrapp"> |
| 98 | <div class="blocks-check-title">Рейтинг</div> | 49 | <div class="blocks-check-title">Рейтинг</div> |
| 99 | <div class="rating"> | 50 | <div class="rating"> |
| @@ -101,56 +52,92 @@ | @@ -101,56 +52,92 @@ | ||
| 101 | <input type="hidden" class="val" value="0"> | 52 | <input type="hidden" class="val" value="0"> |
| 102 | </div> | 53 | </div> |
| 103 | </div> | 54 | </div> |
| 55 | + <?php | ||
| 56 | + */ | ||
| 57 | + ?> | ||
| 104 | 58 | ||
| 105 | - <div class="blocks-check-list-wrapp"> | ||
| 106 | - <div class="blocks-check-title">Статус</div> | ||
| 107 | - <div class="blocks-check-list"> | ||
| 108 | - <input type="radio" name="group3" class="check-search" id="theme-8"><label for="theme-8"><span></span>Онлайн</label> | ||
| 109 | - </div> | ||
| 110 | - <div class="blocks-check-list"> | ||
| 111 | - <input type="radio" name="group3" class="check-search" id="theme-9" checked=""><label for="theme-9"><span></span>Все</label> | ||
| 112 | - </div> | ||
| 113 | - </div> | 59 | + <?php |
| 60 | + echo $form->field($model, 'online', [ | ||
| 61 | + 'options' => [ | ||
| 62 | + 'class' => 'blocks-check-list-wrapp', | ||
| 63 | + ], | ||
| 64 | + 'template' => "<div class='blocks-check-title'>{label}</div>\n{input}\n{hint}\n{error}", | ||
| 65 | + ]) | ||
| 66 | + ->radioList([ | ||
| 67 | + '' => 'Все', | ||
| 68 | + 1 => 'Онлайн', | ||
| 69 | + ], [ | ||
| 70 | + 'item' => function($index, $label, $name, $checked, $value) use ($model) { | ||
| 71 | + $checked = ($model->online == $value); | ||
| 72 | + return "<div class='blocks-check-list'><input type='radio' id='{$model->formName()}-{$index}' name='{$name}' class='check-search' value='{$value}' " . ($checked?'checked':'') . "><label for='{$model->formName()}-{$index}'><span></span>{$label}</label></div>"; | ||
| 73 | + }, | ||
| 74 | + 'unselect' => NULL, | ||
| 75 | + ]); | ||
| 114 | 76 | ||
| 115 | - <div class="blocks-check-list-submit"> | ||
| 116 | - <input type="submit" value="Найти"> | ||
| 117 | - </div> | ||
| 118 | - </form> | 77 | + echo '<div class="blocks-check-list-submit">'.Html::submitInput('Найти').'</div>'; |
| 78 | + | ||
| 79 | + $form->end(); | ||
| 80 | + ?> | ||
| 119 | <script> | 81 | <script> |
| 120 | - $('div.rating').rating({ | ||
| 121 | - fx: 'full', | ||
| 122 | - url: 'rating.php' | ||
| 123 | - }); | 82 | + $('div.rating').rating( |
| 83 | + { | ||
| 84 | + fx : 'full', url : 'rating.php' | ||
| 85 | + } | ||
| 86 | + ); | ||
| 124 | </script> | 87 | </script> |
| 125 | </div> | 88 | </div> |
| 126 | 89 | ||
| 90 | + <?php | ||
| 91 | + // == End of left filter == | ||
| 92 | + ?> | ||
| 93 | + | ||
| 94 | + <?php | ||
| 95 | + // == Page content == | ||
| 96 | + ?> | ||
| 127 | <div class="right-search-work"> | 97 | <div class="right-search-work"> |
| 128 | <div class="search-worker-title style">Найти заказчика</div> | 98 | <div class="search-worker-title style">Найти заказчика</div> |
| 129 | - <div class="search-worker-title-two style">Заказчики готовые приступить к работе <span>145</span></div> | 99 | + <div class="search-worker-title-two style">Заказчики готовые приступить к работе |
| 100 | + <span><?= $dataProvider->totalCount ?></span></div> | ||
| 130 | <div class="search-worker-search-wr style"> | 101 | <div class="search-worker-search-wr style"> |
| 131 | - <form action="" class="search-worker-form"> | ||
| 132 | - <input id="srch-wrk-text" type="text" placeholder="Любая информация о заказчике" required=""> | ||
| 133 | - <input id="srch-wrk-sub" type="submit" value="Найти"> | ||
| 134 | - </form> | 102 | + <?php |
| 103 | + $form2 = ActiveForm::begin(['method' => 'get', 'action' => [''], 'options' => ['class' => 'search-worker-form']]); | ||
| 104 | + echo $form2->field($model, 'info', ['options' => ['tag' => false]])->label(false)->textInput(['placeholder' => $model->getAttributeLabel('info')]); | ||
| 105 | + echo Html::submitInput('Найти'); | ||
| 106 | + $form2->end(); | ||
| 107 | + ?> | ||
| 135 | <a href="#" class="add-to-catalog-search-worker">Добавить себя в каталог</a> | 108 | <a href="#" class="add-to-catalog-search-worker">Добавить себя в каталог</a> |
| 136 | <div class="search-worker-sort-wr style"> | 109 | <div class="search-worker-sort-wr style"> |
| 137 | <div class="search-worker-sort">Сортировать: </div> | 110 | <div class="search-worker-sort">Сортировать: </div> |
| 138 | <ul> | 111 | <ul> |
| 139 | <li class="activejob"> | 112 | <li class="activejob"> |
| 140 | - <a href="#">рейтинг</a> | 113 | + <a href="#"></a> |
| 141 | <div class="sidebar-droped-wr style"> | 114 | <div class="sidebar-droped-wr style"> |
| 142 | - <ul> | ||
| 143 | - <li><a href="#">рейтинг</a></li> | ||
| 144 | - <li><a href="#">1заказчик</a></li> | ||
| 145 | - <li><a href="#">2заказчик</a></li> | ||
| 146 | - <li><a href="#">3заказчик</a></li> | ||
| 147 | - <li><a href="#">4заказчик</a></li> | ||
| 148 | - </ul> | 115 | + <?php |
| 116 | + echo LinkSorter::widget([ | ||
| 117 | + 'sort' => $dataProvider->sort, | ||
| 118 | + ]); | ||
| 119 | + ?> | ||
| 149 | </div> | 120 | </div> |
| 150 | </li> | 121 | </li> |
| 151 | </ul> | 122 | </ul> |
| 152 | </div> | 123 | </div> |
| 153 | </div> | 124 | </div> |
| 125 | + <?php | ||
| 126 | + echo ListView::widget([ | ||
| 127 | + 'dataProvider' => $dataProvider, | ||
| 128 | + 'layout' => "{items}\n{pager}", | ||
| 129 | + 'options' => [ | ||
| 130 | + 'class' => 'search-worker-blocks-wr style', | ||
| 131 | + ], | ||
| 132 | + 'itemOptions' => [ | ||
| 133 | + 'class' => 'search-worker-blocks', | ||
| 134 | + ], | ||
| 135 | + 'itemView' => '_customer_list_view', | ||
| 136 | + ]); | ||
| 137 | + ?> | ||
| 138 | + <?php | ||
| 139 | + /* == Layout == | ||
| 140 | + ?> | ||
| 154 | <div class="search-worker-blocks-wr style"> | 141 | <div class="search-worker-blocks-wr style"> |
| 155 | 142 | ||
| 156 | <div class="search-worker-blocks"> | 143 | <div class="search-worker-blocks"> |
| @@ -161,13 +148,16 @@ | @@ -161,13 +148,16 @@ | ||
| 161 | <!--оценка--> | 148 | <!--оценка--> |
| 162 | <input type="hidden" class="val" value="4"/> | 149 | <input type="hidden" class="val" value="4"/> |
| 163 | </div> | 150 | </div> |
| 164 | - <div class="search_perform-stars-txt">30 отзывов, Киев </div> | 151 | + <div class="search_perform-stars-txt">30 отзывов, Киев</div> |
| 165 | </div> | 152 | </div> |
| 166 | <div class="search_perform_leng"> | 153 | <div class="search_perform_leng"> |
| 167 | <div>Сотрудники: более 40</div> | 154 | <div>Сотрудники: более 40</div> |
| 168 | </div> | 155 | </div> |
| 169 | - <div class="search_perform_visit"><span>Послелний визит:</span> 2 дня назад</div> | ||
| 170 | - <div class="search_perform_projets_nam"><a href="#">Заказано проектов: 21</a></div> | 156 | + <div class="search_perform_visit"> |
| 157 | + <span>Послелний визит:</span> 2 дня назад | ||
| 158 | + </div> | ||
| 159 | + <div class="search_perform_projets_nam"> | ||
| 160 | + <a href="#">Заказано проектов: 21</a></div> | ||
| 171 | </div> | 161 | </div> |
| 172 | 162 | ||
| 173 | <div class="right_search_perform_block-wr"> | 163 | <div class="right_search_perform_block-wr"> |
| @@ -186,13 +176,16 @@ | @@ -186,13 +176,16 @@ | ||
| 186 | <!--оценка--> | 176 | <!--оценка--> |
| 187 | <input type="hidden" class="val" value="2"/> | 177 | <input type="hidden" class="val" value="2"/> |
| 188 | </div> | 178 | </div> |
| 189 | - <div class="search_perform-stars-txt">30 отзывов, Киев </div> | 179 | + <div class="search_perform-stars-txt">30 отзывов, Киев</div> |
| 190 | </div> | 180 | </div> |
| 191 | <div class="search_perform_leng"> | 181 | <div class="search_perform_leng"> |
| 192 | <!--<div>Сотрудники: более 40</div>--> | 182 | <!--<div>Сотрудники: более 40</div>--> |
| 193 | </div> | 183 | </div> |
| 194 | - <div class="search_perform_visit"><span>Послелний визит:</span> 2 дня назад</div> | ||
| 195 | - <div class="search_perform_projets_nam"><a href="#">Заказано проектов: 21</a></div> | 184 | + <div class="search_perform_visit"> |
| 185 | + <span>Послелний визит:</span> 2 дня назад | ||
| 186 | + </div> | ||
| 187 | + <div class="search_perform_projets_nam"> | ||
| 188 | + <a href="#">Заказано проектов: 21</a></div> | ||
| 196 | </div> | 189 | </div> |
| 197 | 190 | ||
| 198 | <div class="right_search_perform_block-wr"> | 191 | <div class="right_search_perform_block-wr"> |
| @@ -211,13 +204,16 @@ | @@ -211,13 +204,16 @@ | ||
| 211 | <!--оценка--> | 204 | <!--оценка--> |
| 212 | <input type="hidden" class="val" value="1"/> | 205 | <input type="hidden" class="val" value="1"/> |
| 213 | </div> | 206 | </div> |
| 214 | - <div class="search_perform-stars-txt">30 отзывов, Киев </div> | 207 | + <div class="search_perform-stars-txt">30 отзывов, Киев</div> |
| 215 | </div> | 208 | </div> |
| 216 | <div class="search_perform_leng"> | 209 | <div class="search_perform_leng"> |
| 217 | <div>Сотрудники: более 40</div> | 210 | <div>Сотрудники: более 40</div> |
| 218 | </div> | 211 | </div> |
| 219 | - <div class="search_perform_visit"><span>Послелний визит:</span> 2 дня назад</div> | ||
| 220 | - <div class="search_perform_projets_nam"><a href="#">Заказано проектов: 21</a></div> | 212 | + <div class="search_perform_visit"> |
| 213 | + <span>Послелний визит:</span> 2 дня назад | ||
| 214 | + </div> | ||
| 215 | + <div class="search_perform_projets_nam"> | ||
| 216 | + <a href="#">Заказано проектов: 21</a></div> | ||
| 221 | </div> | 217 | </div> |
| 222 | 218 | ||
| 223 | <div class="right_search_perform_block-wr"> | 219 | <div class="right_search_perform_block-wr"> |
| @@ -236,13 +232,16 @@ | @@ -236,13 +232,16 @@ | ||
| 236 | <!--оценка--> | 232 | <!--оценка--> |
| 237 | <input type="hidden" class="val" value="5"/> | 233 | <input type="hidden" class="val" value="5"/> |
| 238 | </div> | 234 | </div> |
| 239 | - <div class="search_perform-stars-txt">30 отзывов, Киев </div> | 235 | + <div class="search_perform-stars-txt">30 отзывов, Киев</div> |
| 240 | </div> | 236 | </div> |
| 241 | <div class="search_perform_leng"> | 237 | <div class="search_perform_leng"> |
| 242 | <!--<div>Сотрудники: более 40</div>--> | 238 | <!--<div>Сотрудники: более 40</div>--> |
| 243 | </div> | 239 | </div> |
| 244 | - <div class="search_perform_visit"><span>Послелний визит:</span> 2 дня назад</div> | ||
| 245 | - <div class="search_perform_projets_nam"><a href="#">Заказано проектов: 21</a></div> | 240 | + <div class="search_perform_visit"> |
| 241 | + <span>Послелний визит:</span> 2 дня назад | ||
| 242 | + </div> | ||
| 243 | + <div class="search_perform_projets_nam"> | ||
| 244 | + <a href="#">Заказано проектов: 21</a></div> | ||
| 246 | </div> | 245 | </div> |
| 247 | 246 | ||
| 248 | <div class="right_search_perform_block-wr"> | 247 | <div class="right_search_perform_block-wr"> |
| @@ -263,14 +262,21 @@ | @@ -263,14 +262,21 @@ | ||
| 263 | </ul> | 262 | </ul> |
| 264 | </div> | 263 | </div> |
| 265 | 264 | ||
| 265 | + <?php | ||
| 266 | + == End of layout == */ | ||
| 267 | + ?> | ||
| 268 | + | ||
| 266 | <script> | 269 | <script> |
| 267 | - $('div.rating_search_performer').rating({ | ||
| 268 | - fx: 'full', | ||
| 269 | - readOnly: 'true', | ||
| 270 | - url: 'rating.php' | ||
| 271 | - }); | 270 | + $('div.rating_search_performer').rating( |
| 271 | + { | ||
| 272 | + fx : 'full', readOnly : 'true', url : 'rating.php' | ||
| 273 | + } | ||
| 274 | + ); | ||
| 272 | </script> | 275 | </script> |
| 273 | </div> | 276 | </div> |
| 277 | + <?php | ||
| 278 | + // == End of page content == | ||
| 279 | + ?> | ||
| 274 | </div> | 280 | </div> |
| 275 | </div> | 281 | </div> |
| 276 | </div> | 282 | </div> |
| 277 | \ No newline at end of file | 283 | \ No newline at end of file |
frontend/views/search/performer.php
| @@ -159,6 +159,12 @@ $this->title = 'My Yii Application'; | @@ -159,6 +159,12 @@ $this->title = 'My Yii Application'; | ||
| 159 | <input type="submit" value="Найти"/> | 159 | <input type="submit" value="Найти"/> |
| 160 | </div> | 160 | </div> |
| 161 | </form> | 161 | </form> |
| 162 | + <script> | ||
| 163 | + $('div.rating').rating({ | ||
| 164 | + fx: 'full', | ||
| 165 | + url: 'rating.php' | ||
| 166 | + }); | ||
| 167 | + </script> | ||
| 162 | </div> | 168 | </div> |
| 163 | <div class="right-search-work"> | 169 | <div class="right-search-work"> |
| 164 | <div class="search-worker-title style">Найти исполнителя</div> | 170 | <div class="search-worker-title style">Найти исполнителя</div> |
| @@ -203,6 +209,14 @@ $this->title = 'My Yii Application'; | @@ -203,6 +209,14 @@ $this->title = 'My Yii Application'; | ||
| 203 | 209 | ||
| 204 | 210 | ||
| 205 | </div> | 211 | </div> |
| 212 | + | ||
| 213 | + <script> | ||
| 214 | + $('div.rating-new').rating({ | ||
| 215 | + fx: 'full', | ||
| 216 | + readOnly: 'true', | ||
| 217 | + url: 'rating.php' | ||
| 218 | + }); | ||
| 219 | + </script> | ||
| 206 | </div> | 220 | </div> |
| 207 | </div> | 221 | </div> |
| 208 | </div> | 222 | </div> |
frontend/views/site/forms-modal-offer.php
| @@ -44,7 +44,7 @@ | @@ -44,7 +44,7 @@ | ||
| 44 | <div class="form-resume-sub style">Предложить проект</div> | 44 | <div class="form-resume-sub style">Предложить проект</div> |
| 45 | <form action="" class="offer-project"> | 45 | <form action="" class="offer-project"> |
| 46 | 46 | ||
| 47 | - <label>Выбрать проект</label><div style="clear:both;"></div> | 47 | + <label>Выбрать проект</label> |
| 48 | <div class="list_item title"> | 48 | <div class="list_item title"> |
| 49 | <div class="main_item"> | 49 | <div class="main_item"> |
| 50 | <div class="pr_title"></div> | 50 | <div class="pr_title"></div> |
| @@ -77,11 +77,6 @@ | @@ -77,11 +77,6 @@ | ||
| 77 | </div> | 77 | </div> |
| 78 | </div> | 78 | </div> |
| 79 | 79 | ||
| 80 | - <label for="off_name">Название проекта</label><input id="off_name" name="" type="text"> | ||
| 81 | - | ||
| 82 | - <label for="off_text">Описание</label><textarea id="off_text" name=""></textarea> | ||
| 83 | - | ||
| 84 | - <label for="off_price">Цена</label><input id="off_price" name="" type="text"> | ||
| 85 | 80 | ||
| 86 | <input id="off_submit" type="submit" value="Предложить"> | 81 | <input id="off_submit" type="submit" value="Предложить"> |
| 87 | </form> | 82 | </form> |
| @@ -89,5 +84,56 @@ | @@ -89,5 +84,56 @@ | ||
| 89 | </div> | 84 | </div> |
| 90 | </div> | 85 | </div> |
| 91 | 86 | ||
| 87 | +<!--<div id="modal_form_offer">--> | ||
| 88 | +<!-- <div class="closed-form"></div>--> | ||
| 89 | +<!-- <div class="form-resume-wr offer">--> | ||
| 90 | +<!-- <div class="form-resume-sub style">Предложить проект</div>--> | ||
| 91 | +<!-- <form action="" class="offer-project">--> | ||
| 92 | +<!----> | ||
| 93 | +<!-- <label>Выбрать проект</label><div style="clear:both;"></div>--> | ||
| 94 | +<!-- <div class="list_item title">--> | ||
| 95 | +<!-- <div class="main_item">--> | ||
| 96 | +<!-- <div class="pr_title"></div>--> | ||
| 97 | +<!-- <span></span>--> | ||
| 98 | +<!-- </div>--> | ||
| 99 | +<!-- <div class="arrow up"></div>--> | ||
| 100 | +<!-- <div class="off_list">--> | ||
| 101 | +<!-- <ul class="content list-form-offer">--> | ||
| 102 | +<!-- <li>--> | ||
| 103 | +<!-- <div class="title1">Проект бассейна 1</div>--> | ||
| 104 | +<!-- <div class="title2">Подряд: Вилла 1</div>--> | ||
| 105 | +<!-- </li>--> | ||
| 106 | +<!-- <li>--> | ||
| 107 | +<!-- <div class="title1">Проект бассейна 2</div>--> | ||
| 108 | +<!-- <div class="title2">Подряд: Вилла 2</div>--> | ||
| 109 | +<!-- </li>--> | ||
| 110 | +<!-- <li>--> | ||
| 111 | +<!-- <div class="title1">Проект бассейна 3</div>--> | ||
| 112 | +<!-- <div class="title2">Подряд: Вилла 3</div>--> | ||
| 113 | +<!-- </li>--> | ||
| 114 | +<!-- <li>--> | ||
| 115 | +<!-- <div class="title1">Проект бассейна 4</div>--> | ||
| 116 | +<!-- <div class="title2">Подряд: Вилла 4</div>--> | ||
| 117 | +<!-- </li>--> | ||
| 118 | +<!-- <li>--> | ||
| 119 | +<!-- <div class="title1">Проект бассейна 5</div>--> | ||
| 120 | +<!-- <div class="title2">Подряд: Вилла 5</div>--> | ||
| 121 | +<!-- </li>--> | ||
| 122 | +<!-- </ul>--> | ||
| 123 | +<!-- </div>--> | ||
| 124 | +<!-- </div>--> | ||
| 125 | +<!----> | ||
| 126 | +<!-- <label for="off_name">Название проекта</label><input id="off_name" name="" type="text">--> | ||
| 127 | +<!----> | ||
| 128 | +<!-- <label for="off_text">Описание</label><textarea id="off_text" name=""></textarea>--> | ||
| 129 | +<!----> | ||
| 130 | +<!-- <label for="off_price">Цена</label><input id="off_price" name="" type="text">--> | ||
| 131 | +<!----> | ||
| 132 | +<!-- <input id="off_submit" type="submit" value="Предложить">--> | ||
| 133 | +<!-- </form>--> | ||
| 134 | +<!-- <div class="res_form_line"></div>--> | ||
| 135 | +<!-- </div>--> | ||
| 136 | +<!--</div>--> | ||
| 137 | + | ||
| 92 | 138 | ||
| 93 | 139 |
frontend/views/site/login.php
| @@ -11,42 +11,62 @@ | @@ -11,42 +11,62 @@ | ||
| 11 | $this->title = 'Авторизация'; | 11 | $this->title = 'Авторизация'; |
| 12 | $this->params[ 'breadcrumbs' ][] = $this->title; | 12 | $this->params[ 'breadcrumbs' ][] = $this->title; |
| 13 | ?> | 13 | ?> |
| 14 | - <h1><?php echo Html::encode($this->title); ?></h1> | 14 | +<div class="box-wr"> |
| 15 | + <div class="box-all"> | ||
| 16 | + <div class="form_site_logn-wr"> | ||
| 17 | + <div class="form_site_logn_"> | ||
| 18 | + <h1><?php echo Html::encode($this->title); ?></h1> | ||
| 19 | + | ||
| 20 | + <?php | ||
| 21 | + if(Yii::$app->getSession() | ||
| 22 | + ->hasFlash('error') | ||
| 23 | + ) { | ||
| 24 | + echo '<div class="alert alert-danger">' . Yii::$app->getSession() | ||
| 25 | + ->getFlash('error') . '</div>'; | ||
| 26 | + } | ||
| 27 | + ?> | ||
| 28 | + | ||
| 29 | + | ||
| 30 | + <?php //echo \nodge\eauth\Widget::widget([ 'action' => 'site/login' ]); ?> | ||
| 31 | + | ||
| 15 | 32 | ||
| 16 | -<?php | ||
| 17 | - if(Yii::$app->getSession() | ||
| 18 | - ->hasFlash('error') | ||
| 19 | - ) { | ||
| 20 | - echo '<div class="alert alert-danger">' . Yii::$app->getSession() | ||
| 21 | - ->getFlash('error') . '</div>'; | ||
| 22 | - } | ||
| 23 | -?> | ||
| 24 | 33 | ||
| 34 | + <?php $form = ActiveForm::begin([ | ||
| 35 | + 'options' => [ | ||
| 36 | + 'class' => 'form-horizontal', | ||
| 37 | + 'id' => 'login-form', | ||
| 38 | + ], | ||
| 39 | + ]); ?> | ||
| 40 | + <div class="input-blocks-wrapper"> | ||
| 41 | + <?php echo $form->field($model, 'username') | ||
| 42 | + ->textInput(['class'=>'custom-input-2']); ?> | ||
| 43 | + </div> | ||
| 25 | 44 | ||
| 26 | -<?php //echo \nodge\eauth\Widget::widget([ 'action' => 'site/login' ]); ?> | 45 | + <div class="input-blocks-wrapper"> |
| 46 | + <?php echo $form->field($model, 'password') | ||
| 47 | + ->passwordInput(['class'=>'custom-input-2']); ?> | ||
| 48 | + </div> | ||
| 27 | 49 | ||
| 50 | + <div class="login-check-remember style"> | ||
| 51 | + <?php echo $form->field($model, 'rememberMe', [ 'template' => "{input}\n{label}\n{error}" ]) | ||
| 52 | + ->label('<span></span>Запомнить меня') | ||
| 53 | + ->checkbox([ | ||
| 54 | + 'class' => 'custom-check', | ||
| 55 | + 'checked' => 'checked', | ||
| 56 | + ], false); ?> | ||
| 57 | + </div> | ||
| 28 | 58 | ||
| 29 | 59 | ||
| 60 | + <div class="form-actions style"> | ||
| 61 | + <?php echo Html::submitButton('Вход', [ 'class' => 'btn btn-primary login-button' ]); ?> | ||
| 62 | + </div> | ||
| 63 | + <div class="style" style="text-align: center; font-size: 13px; margin-top: 16px"> | ||
| 64 | + <?= Html::a('Восстановить пароль', [ 'site/request-password-reset' ]) ?> | ||
| 65 | + </div> | ||
| 30 | 66 | ||
| 31 | -<?php $form = ActiveForm::begin([ | ||
| 32 | - 'options' => [ | ||
| 33 | - 'class' => 'form-horizontal', | ||
| 34 | - 'id' => 'login-form', | ||
| 35 | - ], | ||
| 36 | -]); ?> | ||
| 37 | -<?php echo $form->field($model, 'username') | ||
| 38 | - ->textInput(); ?> | ||
| 39 | -<?php echo $form->field($model, 'password') | ||
| 40 | - ->passwordInput(); ?> | ||
| 41 | -<?php echo $form->field($model, 'rememberMe', [ 'template' => "{input}\n{label}\n{error}" ]) | ||
| 42 | - ->label('<span></span>Запомнить меня') | ||
| 43 | - ->checkbox([ | ||
| 44 | - 'class' => 'custom-check', | ||
| 45 | - 'checked' => 'checked', | ||
| 46 | - ], false); ?> | 67 | + <?php ActiveForm::end(); ?> |
| 68 | + </div> | ||
| 69 | + </div> | ||
| 47 | 70 | ||
| 48 | - <div class="form-actions"> | ||
| 49 | - <?php echo Html::submitButton('Login', [ 'class' => 'btn btn-primary' ]); ?> | ||
| 50 | </div> | 71 | </div> |
| 51 | -<?= Html::a('Восстановить пароль', [ 'site/request-password-reset' ]) ?> | ||
| 52 | -<?php ActiveForm::end(); ?> | ||
| 53 | \ No newline at end of file | 72 | \ No newline at end of file |
| 73 | +</div> |
frontend/web/css/style.css
| @@ -945,13 +945,13 @@ li.project-home-active span{ | @@ -945,13 +945,13 @@ li.project-home-active span{ | ||
| 945 | margin-left: -120px; | 945 | margin-left: -120px; |
| 946 | margin-top: 22px; | 946 | margin-top: 22px; |
| 947 | } | 947 | } |
| 948 | -.form-resume-wr form label { | 948 | +.form-resume-wr form label, .form_site_logn-wr label { |
| 949 | font-size: 13px; | 949 | font-size: 13px; |
| 950 | font-weight: 700; | 950 | font-weight: 700; |
| 951 | width: 100%; | 951 | width: 100%; |
| 952 | float: left; | 952 | float: left; |
| 953 | } | 953 | } |
| 954 | -.form-resume-wr form input { | 954 | +.form-resume-wr form input, .form_site_logn-wr form input { |
| 955 | width: 240px; | 955 | width: 240px; |
| 956 | height: 29px; | 956 | height: 29px; |
| 957 | border: 1px solid #dcdcdc; | 957 | border: 1px solid #dcdcdc; |
| @@ -2724,12 +2724,14 @@ input[type=file]::-webkit-file-upload-button { | @@ -2724,12 +2724,14 @@ input[type=file]::-webkit-file-upload-button { | ||
| 2724 | .search-worker-blocks:first-child{margin-top: 20px} | 2724 | .search-worker-blocks:first-child{margin-top: 20px} |
| 2725 | .search-worker-blocks-foto-wr { | 2725 | .search-worker-blocks-foto-wr { |
| 2726 | width: 318px; | 2726 | width: 318px; |
| 2727 | - | 2727 | + min-height: 320px; |
| 2728 | float: left; | 2728 | float: left; |
| 2729 | } | 2729 | } |
| 2730 | .search-worker-blocks-text-wr { | 2730 | .search-worker-blocks-text-wr { |
| 2731 | width: 382px; | 2731 | width: 382px; |
| 2732 | float: right; | 2732 | float: right; |
| 2733 | + min-height: 320px; | ||
| 2734 | + position: relative; | ||
| 2733 | } | 2735 | } |
| 2734 | .search-worker-blocks-ico-wr { | 2736 | .search-worker-blocks-ico-wr { |
| 2735 | width: 48px; | 2737 | width: 48px; |
| @@ -2752,7 +2754,7 @@ input[type=file]::-webkit-file-upload-button { | @@ -2752,7 +2754,7 @@ input[type=file]::-webkit-file-upload-button { | ||
| 2752 | text-align: center; | 2754 | text-align: center; |
| 2753 | } | 2755 | } |
| 2754 | .search-worker-blocks-title { | 2756 | .search-worker-blocks-title { |
| 2755 | - font-size: 18px; margin-top: -4px; | 2757 | + font-size: 18px; margin-top: -1px; |
| 2756 | } | 2758 | } |
| 2757 | .rating-new { | 2759 | .rating-new { |
| 2758 | float: left; | 2760 | float: left; |
| @@ -2877,8 +2879,14 @@ input[type=file]::-webkit-file-upload-button { | @@ -2877,8 +2879,14 @@ input[type=file]::-webkit-file-upload-button { | ||
| 2877 | .search-worker-blocks-buttons { | 2879 | .search-worker-blocks-buttons { |
| 2878 | margin-top: 49px; | 2880 | margin-top: 49px; |
| 2879 | } | 2881 | } |
| 2880 | - | ||
| 2881 | - | 2882 | +.search-worker-blocks-buttons { |
| 2883 | + margin-top: 0; | ||
| 2884 | + position: absolute; | ||
| 2885 | + bottom: 0; | ||
| 2886 | + left: 0; | ||
| 2887 | +} | ||
| 2888 | +.search-worker-blocks .search-worker-blocks-jobs-portfolio {margin-bottom: 41px} | ||
| 2889 | +.search-company-block-left .search-worker-blocks-jobs-portfolio {margin-bottom: 31px} | ||
| 2882 | 2890 | ||
| 2883 | .gallery-box-search { | 2891 | .gallery-box-search { |
| 2884 | width: 100%; | 2892 | width: 100%; |
| @@ -3258,10 +3266,13 @@ ul.proektant-comments {margin-top: 15px} | @@ -3258,10 +3266,13 @@ ul.proektant-comments {margin-top: 15px} | ||
| 3258 | .search-company-block-left { | 3266 | .search-company-block-left { |
| 3259 | width: 400px; | 3267 | width: 400px; |
| 3260 | float: left; | 3268 | float: left; |
| 3269 | + min-height: 320px; | ||
| 3270 | + position: relative; | ||
| 3261 | } | 3271 | } |
| 3262 | .search-company-block-right { | 3272 | .search-company-block-right { |
| 3263 | width: 320px; | 3273 | width: 320px; |
| 3264 | float: right; | 3274 | float: right; |
| 3275 | + min-height: 320px; | ||
| 3265 | } | 3276 | } |
| 3266 | .search-company-block-left .search-worker-blocks-title-wr {float: left; width: 100% !important;} | 3277 | .search-company-block-left .search-worker-blocks-title-wr {float: left; width: 100% !important;} |
| 3267 | .search-company-block-left .land-stars-pro, .land-stars-new {margin-right: 11px} | 3278 | .search-company-block-left .land-stars-pro, .land-stars-new {margin-right: 11px} |
| @@ -3422,7 +3433,8 @@ ul.proektant-comments {margin-top: 15px} | @@ -3422,7 +3433,8 @@ ul.proektant-comments {margin-top: 15px} | ||
| 3422 | .favorite-user-profile-add span{line-height: 18px} | 3433 | .favorite-user-profile-add span{line-height: 18px} |
| 3423 | 3434 | ||
| 3424 | form.offer-project { | 3435 | form.offer-project { |
| 3425 | - height: 531px; | 3436 | + /*height: 531px;*/ |
| 3437 | + height: 211px; | ||
| 3426 | } | 3438 | } |
| 3427 | #off_submit { | 3439 | #off_submit { |
| 3428 | bottom: 25px; | 3440 | bottom: 25px; |
| @@ -4114,7 +4126,8 @@ ul.min_markers_two | @@ -4114,7 +4126,8 @@ ul.min_markers_two | ||
| 4114 | /*** message-read***/ | 4126 | /*** message-read***/ |
| 4115 | .comments_block{width:938px;height:498px;background-color:#fcfcfc;border:1px solid #b7b7b7;border-right:none;margin-bottom:57px;color:#333;font-family:Roboto;font-size:13px;position:relative;overflow:hidden;outline:none}.comment_type{width:940px}.comment_type .pole{width:660px;margin:0 auto;position:relative}.comment_type .mes_title{font-size:18px;color:#333;margin:18px 0}.message_text{width:638px;height:78px;resize:none;border:1px solid #c2c2c2;margin:0 auto;margin-bottom:26px;margin-top:18px;padding:10px;font-family:Roboto}.send_mess_but{outline:none;border:none;cursor:pointer;font-size:12px!important;padding-top:2px;width:170px;height:43px;text-align:center;text-transform:uppercase;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr = '#148ad6',endColorstr = '#0072bc');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr = '#148ad6',endColorstr = '#0072bc')";background-image:-moz-linear-gradient(top,#148ad6,#0072bc);background-image:-ms-linear-gradient(top,#148ad6,#0072bc);background-image:-o-linear-gradient(top,#148ad6,#0072bc);background-image:-webkit-gradient(linear,center top,center bottom,from(#148ad6),to(#0072bc));background-image:-webkit-linear-gradient(top,#148ad6,#0072bc);background-image:linear-gradient(top,#148ad6,#0072bc);color:#fff;border-bottom:2px solid #0054a6;border-radius:4px;transition:.1s;top:170px;line-height:3.5}.send_mess_but:hover{opacity:.9}.send_mess_but:active{line-height:3.7}.pick_file{position:absolute;top:170px;right:0;width:130px}.pick_file .link:after{content:'';background:url(/images/skrpk.png) left center no-repeat;position:absolute;width:19px;height:21px;left:-28px;top:0}.pick_file .link{text-transform:uppercase;color:#0276c0;font-size:13px;cursor:pointer;text-decoration:none;border-bottom:1px solid #70b2db;position:relative}.pick_file .capt{color:#c2c2c2;font-size:11px;line-height:16px;margin-top:3px}.comment_text{position:relative;padding:12px 13px;width:602px;border:1px solid #c2c2c2;min-height:74px;left:10px;line-height:1.3;background-color:#fff}.comment.left .comment_text{float:left}.comment.right .comment_text{float:right}.comment.left .comment_text:before{content:'';background:url(/images/mes_bord_left.png);position:absolute;width:11px;height:11px;top:-1px;left:-11px}.comment.right .comment_text:before{content:'';background:url(/images/mes_bord_right.png);position:absolute;width:11px;height:11px;top:-1px;right:-11px}.comment.left .author_pic{float:left;margin:0 10px}.comment.right .author_pic{float:right;margin:0 25px 0 30px}.comment_time{color:#c6c6c6;font-family:Roboto;font-size:13px;font-weight:600;line-height:32px;position:absolute}.comment.left .comment_time{top: 17px; right: -120px; width: 100px;}.comment.right .comment_time{ top: 18px; left: -88px; width: 100px;}.comment{position:relative;margin:30px 21px 30px 1px}.comment .offer_link a{color:#0173bd;display:block; height:25px; position:relative}.comment .offer_link a:before{content:'';position:absolute;background:url(/images/skrpk_sm.png) left center no-repeat;width:19px;height:21px;left:-26px;top:-3px}.comment.right .offer_link{float:right;margin-right:94px;margin-top:12px;margin-bottom:-17px}.comment.left .offer_link{left:104px;bottom:-27px}.comment_block .content{overflow:auto;width:938px;height:498px}.fileform{background-color:#FFF;border:1px solid #CCC;border-radius:2px;cursor:pointer;height:26px;overflow:hidden;padding:2px;position:relative;text-align:left;vertical-align:middle;width:230px}.comment_type form{width:660px;margin:0 auto}.comment_type form label{color:#333;font-family:Roboto;font-size:18px}.input_file_text{color:#c2c2c2;font-size:11px;font-family:Roboto;width:125px;position:absolute;right:0;line-height:16px;top:18px;overflow:hidden;text-overflow:ellipsis;white-space:pre-line}.inputfile{float:right;position:relative;width:153px;padding-bottom:10px;background-repeat:no-repeat}.input_file{opacity:0;cursor:pointer;width:160px}.inputfile .file_input_title{position:absolute;color:#0276c0;border-bottom:1px solid #0276c0;text-transform:uppercase;font-family:Roboto;font-size:13px;right:0}.jspArrow{background-color:#0173bd;width:20px;height:20px}.jspVerticalBar{width:20px}.jspVerticalBar .jspArrow{height:20px}.jspTrack{background:#ebebeb;position:relative}.jspDrag{background:#c2c2c2;position:relative;top:0;left:0;cursor:pointer;border-left:2px solid #ebebeb;border-right:2px solid #ebebeb}.jspVerticalBar{background:#ebebeb}.jspArrowUp{background:#0173bd url(/images/scroll_up.png) center center no-repeat}.jspArrowUp:hover{opacity:.8}.jspArrowUp:active{background-position-y:1px!important}.jspDisabled.jspArrowUp{background:#80808d url(/images/scroll_up_grey.png) center center no-repeat}.jspArrowDown{background:#0173bd url(/images/scroll_down.png) center center no-repeat}.jspArrowDown:hover{opacity:.8}.jspArrowDown:active{background-position-y:1px!important}.jspArrowDown{background:#0173bd url(/images/scroll_down.png) center center no-repeat}.jspDisabled.jspArrowDown{background:#80808d url(/images/scroll_down_grey.png) center center no-repeat}.jspContainer{outline:none;border:none} | 4127 | .comments_block{width:938px;height:498px;background-color:#fcfcfc;border:1px solid #b7b7b7;border-right:none;margin-bottom:57px;color:#333;font-family:Roboto;font-size:13px;position:relative;overflow:hidden;outline:none}.comment_type{width:940px}.comment_type .pole{width:660px;margin:0 auto;position:relative}.comment_type .mes_title{font-size:18px;color:#333;margin:18px 0}.message_text{width:638px;height:78px;resize:none;border:1px solid #c2c2c2;margin:0 auto;margin-bottom:26px;margin-top:18px;padding:10px;font-family:Roboto}.send_mess_but{outline:none;border:none;cursor:pointer;font-size:12px!important;padding-top:2px;width:170px;height:43px;text-align:center;text-transform:uppercase;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr = '#148ad6',endColorstr = '#0072bc');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr = '#148ad6',endColorstr = '#0072bc')";background-image:-moz-linear-gradient(top,#148ad6,#0072bc);background-image:-ms-linear-gradient(top,#148ad6,#0072bc);background-image:-o-linear-gradient(top,#148ad6,#0072bc);background-image:-webkit-gradient(linear,center top,center bottom,from(#148ad6),to(#0072bc));background-image:-webkit-linear-gradient(top,#148ad6,#0072bc);background-image:linear-gradient(top,#148ad6,#0072bc);color:#fff;border-bottom:2px solid #0054a6;border-radius:4px;transition:.1s;top:170px;line-height:3.5}.send_mess_but:hover{opacity:.9}.send_mess_but:active{line-height:3.7}.pick_file{position:absolute;top:170px;right:0;width:130px}.pick_file .link:after{content:'';background:url(/images/skrpk.png) left center no-repeat;position:absolute;width:19px;height:21px;left:-28px;top:0}.pick_file .link{text-transform:uppercase;color:#0276c0;font-size:13px;cursor:pointer;text-decoration:none;border-bottom:1px solid #70b2db;position:relative}.pick_file .capt{color:#c2c2c2;font-size:11px;line-height:16px;margin-top:3px}.comment_text{position:relative;padding:12px 13px;width:602px;border:1px solid #c2c2c2;min-height:74px;left:10px;line-height:1.3;background-color:#fff}.comment.left .comment_text{float:left}.comment.right .comment_text{float:right}.comment.left .comment_text:before{content:'';background:url(/images/mes_bord_left.png);position:absolute;width:11px;height:11px;top:-1px;left:-11px}.comment.right .comment_text:before{content:'';background:url(/images/mes_bord_right.png);position:absolute;width:11px;height:11px;top:-1px;right:-11px}.comment.left .author_pic{float:left;margin:0 10px}.comment.right .author_pic{float:right;margin:0 25px 0 30px}.comment_time{color:#c6c6c6;font-family:Roboto;font-size:13px;font-weight:600;line-height:32px;position:absolute}.comment.left .comment_time{top: 17px; right: -120px; width: 100px;}.comment.right .comment_time{ top: 18px; left: -88px; width: 100px;}.comment{position:relative;margin:30px 21px 30px 1px}.comment .offer_link a{color:#0173bd;display:block; height:25px; position:relative}.comment .offer_link a:before{content:'';position:absolute;background:url(/images/skrpk_sm.png) left center no-repeat;width:19px;height:21px;left:-26px;top:-3px}.comment.right .offer_link{float:right;margin-right:94px;margin-top:12px;margin-bottom:-17px}.comment.left .offer_link{left:104px;bottom:-27px}.comment_block .content{overflow:auto;width:938px;height:498px}.fileform{background-color:#FFF;border:1px solid #CCC;border-radius:2px;cursor:pointer;height:26px;overflow:hidden;padding:2px;position:relative;text-align:left;vertical-align:middle;width:230px}.comment_type form{width:660px;margin:0 auto}.comment_type form label{color:#333;font-family:Roboto;font-size:18px}.input_file_text{color:#c2c2c2;font-size:11px;font-family:Roboto;width:125px;position:absolute;right:0;line-height:16px;top:18px;overflow:hidden;text-overflow:ellipsis;white-space:pre-line}.inputfile{float:right;position:relative;width:153px;padding-bottom:10px;background-repeat:no-repeat}.input_file{opacity:0;cursor:pointer;width:160px}.inputfile .file_input_title{position:absolute;color:#0276c0;border-bottom:1px solid #0276c0;text-transform:uppercase;font-family:Roboto;font-size:13px;right:0}.jspArrow{background-color:#0173bd;width:20px;height:20px}.jspVerticalBar{width:20px}.jspVerticalBar .jspArrow{height:20px}.jspTrack{background:#ebebeb;position:relative}.jspDrag{background:#c2c2c2;position:relative;top:0;left:0;cursor:pointer;border-left:2px solid #ebebeb;border-right:2px solid #ebebeb}.jspVerticalBar{background:#ebebeb}.jspArrowUp{background:#0173bd url(/images/scroll_up.png) center center no-repeat}.jspArrowUp:hover{opacity:.8}.jspArrowUp:active{background-position-y:1px!important}.jspDisabled.jspArrowUp{background:#80808d url(/images/scroll_up_grey.png) center center no-repeat}.jspArrowDown{background:#0173bd url(/images/scroll_down.png) center center no-repeat}.jspArrowDown:hover{opacity:.8}.jspArrowDown:active{background-position-y:1px!important}.jspArrowDown{background:#0173bd url(/images/scroll_down.png) center center no-repeat}.jspDisabled.jspArrowDown{background:#80808d url(/images/scroll_down_grey.png) center center no-repeat}.jspContainer{outline:none;border:none} |
| 4116 | /***form-order***/ | 4128 | /***form-order***/ |
| 4117 | -#modal_form_offer {height: 505px;} | 4129 | +#modal_form_offer { /*height: 505px;*/ height: 309px; } |
| 4130 | +#modal_form_offer .form-resume-wr {overflow: visible} | ||
| 4118 | #modal_form_offer,#modal_form_question, #modal_form_question{margin-top: 70px;} | 4131 | #modal_form_offer,#modal_form_question, #modal_form_question{margin-top: 70px;} |
| 4119 | .form-resume-wr form input[type="submit"]{margin-left: 55px;} | 4132 | .form-resume-wr form input[type="submit"]{margin-left: 55px;} |
| 4120 | .form-resume-wr form{top:72px;} | 4133 | .form-resume-wr form{top:72px;} |
| @@ -4140,6 +4153,7 @@ ul.min_markers_two | @@ -4140,6 +4153,7 @@ ul.min_markers_two | ||
| 4140 | border: 1px solid #dcdcdc; | 4153 | border: 1px solid #dcdcdc; |
| 4141 | position: relative; | 4154 | position: relative; |
| 4142 | cursor:pointer; | 4155 | cursor:pointer; |
| 4156 | + z-index: 2; | ||
| 4143 | } | 4157 | } |
| 4144 | .list_item.title{margin-bottom: 15px;} | 4158 | .list_item.title{margin-bottom: 15px;} |
| 4145 | .list_item .arrow{ | 4159 | .list_item .arrow{ |
| @@ -4169,14 +4183,13 @@ ul.min_markers_two | @@ -4169,14 +4183,13 @@ ul.min_markers_two | ||
| 4169 | border: 4px solid transparent; | 4183 | border: 4px solid transparent; |
| 4170 | border-top-color: white; | 4184 | border-top-color: white; |
| 4171 | } | 4185 | } |
| 4172 | -form.offer-project {height: 406px;} | 4186 | + |
| 4173 | .list_item .main_item{padding: 10px 37px 12px 12px;transition:0.3s;} | 4187 | .list_item .main_item{padding: 10px 37px 12px 12px;transition:0.3s;} |
| 4174 | .off_list ul li:hover{background-color: #fffccc; } | 4188 | .off_list ul li:hover{background-color: #fffccc; } |
| 4175 | .act-offer-li{opacity: 0.6; cursor: default } | 4189 | .act-offer-li{opacity: 0.6; cursor: default } |
| 4176 | .act-offer-li:hover{background-color: #fff !important; } | 4190 | .act-offer-li:hover{background-color: #fff !important; } |
| 4177 | .off_list{ | 4191 | .off_list{ |
| 4178 | position: absolute; | 4192 | position: absolute; |
| 4179 | - width: 100%; | ||
| 4180 | width: 238px; | 4193 | width: 238px; |
| 4181 | background-color: white; | 4194 | background-color: white; |
| 4182 | border: 1px solid #dcdcdc; | 4195 | border: 1px solid #dcdcdc; |
| @@ -5286,23 +5299,6 @@ input.disabled.admin-check:checked + label, input.disabled.admin-check:checked + | @@ -5286,23 +5299,6 @@ input.disabled.admin-check:checked + label, input.disabled.admin-check:checked + | ||
| 5286 | left: -12px; | 5299 | left: -12px; |
| 5287 | width: 15px; | 5300 | width: 15px; |
| 5288 | } | 5301 | } |
| 5289 | - | ||
| 5290 | -.help-block { | ||
| 5291 | - /*width: 320px;*/ | ||
| 5292 | - /*margin-left: -10px;*/ | ||
| 5293 | - /*text-align: center;*/ | ||
| 5294 | - /*position: relative;*/ | ||
| 5295 | - /*border: 1px solid #c1c1c1;*/ | ||
| 5296 | - /*margin-top: 25px;*/ | ||
| 5297 | - /*box-shadow: 3px 3px 7px 0 rgba(200, 200, 200, .5), inset 0 -3px 0 0 #c1c1c1;*/ | ||
| 5298 | - /*padding: 15px 0;*/ | ||
| 5299 | - /*display: none;*/ | ||
| 5300 | -} | ||
| 5301 | -.has-error .help-block { | ||
| 5302 | - /*display: block;*/ | ||
| 5303 | - /*color: inherit;*/ | ||
| 5304 | - /*background: #fff;*/ | ||
| 5305 | -} | ||
| 5306 | .new-portf-add-comm .help-block{ | 5302 | .new-portf-add-comm .help-block{ |
| 5307 | width: 230px; | 5303 | width: 230px; |
| 5308 | margin-left: 0; | 5304 | margin-left: 0; |
| @@ -5344,7 +5340,7 @@ top: 272px; | @@ -5344,7 +5340,7 @@ top: 272px; | ||
| 5344 | margin-top: 6px; | 5340 | margin-top: 6px; |
| 5345 | margin-bottom: 60px; | 5341 | margin-bottom: 60px; |
| 5346 | } | 5342 | } |
| 5347 | -.form-resume-wr .required:before, .site-request-password-reset .required:before{ | 5343 | +.form-resume-wr .required:before, .site-request-password-reset .required:before, .form_site_logn-wr .required:before{ |
| 5348 | display: block; | 5344 | display: block; |
| 5349 | content: "*"; | 5345 | content: "*"; |
| 5350 | color: #D40000; | 5346 | color: #D40000; |
| @@ -5356,7 +5352,7 @@ top: 272px; | @@ -5356,7 +5352,7 @@ top: 272px; | ||
| 5356 | .site-request-password-reset .required:before{ | 5352 | .site-request-password-reset .required:before{ |
| 5357 | left: 125px; | 5353 | left: 125px; |
| 5358 | } | 5354 | } |
| 5359 | -.form-resume-wr .help-block { | 5355 | +.form-resume-wr .help-block, .form_site_logn-wr .help-block { |
| 5360 | width: 320px; | 5356 | width: 320px; |
| 5361 | margin: 0; | 5357 | margin: 0; |
| 5362 | text-align: center; | 5358 | text-align: center; |
| @@ -5368,12 +5364,12 @@ top: 272px; | @@ -5368,12 +5364,12 @@ top: 272px; | ||
| 5368 | padding: 15px 0; | 5364 | padding: 15px 0; |
| 5369 | display: none; | 5365 | display: none; |
| 5370 | } | 5366 | } |
| 5371 | -.form-resume-wr .has-error .help-block { | 5367 | +.form-resume-wr .has-error .help-block, .form_site_logn-wr .has-error .help-block{ |
| 5372 | display: block; | 5368 | display: block; |
| 5373 | color: inherit; | 5369 | color: inherit; |
| 5374 | background: #fff; | 5370 | background: #fff; |
| 5375 | } | 5371 | } |
| 5376 | -.form-resume-wr .help-block:before { | 5372 | +.form-resume-wr .help-block:before, .form_site_logn-wr .help-block:before { |
| 5377 | width: 20px; | 5373 | width: 20px; |
| 5378 | height: 20px; | 5374 | height: 20px; |
| 5379 | background: #fff; | 5375 | background: #fff; |
| @@ -5384,7 +5380,7 @@ top: 272px; | @@ -5384,7 +5380,7 @@ top: 272px; | ||
| 5384 | left: -2px; | 5380 | left: -2px; |
| 5385 | margin-top: -10px; | 5381 | margin-top: -10px; |
| 5386 | } | 5382 | } |
| 5387 | -.form-resume-wr .help-block:after { | 5383 | +.form-resume-wr .help-block:after, .form_site_logn-wr .help-block:after { |
| 5388 | height: 20px; | 5384 | height: 20px; |
| 5389 | background: #fff; | 5385 | background: #fff; |
| 5390 | transform: rotate(45deg); | 5386 | transform: rotate(45deg); |
| @@ -6641,8 +6637,8 @@ input[disabled], select[disabled] { | @@ -6641,8 +6637,8 @@ input[disabled], select[disabled] { | ||
| 6641 | .rating_search_performer .vote-success, .rating_search_performer .vote-result { | 6637 | .rating_search_performer .vote-success, .rating_search_performer .vote-result { |
| 6642 | display: none; | 6638 | display: none; |
| 6643 | } | 6639 | } |
| 6644 | -.rating_search_performer .vote-active { | ||
| 6645 | - background: url("/images/stars.png") 0px 14px !important; | 6640 | +.vote-active { |
| 6641 | + top: -1px !important; | ||
| 6646 | } | 6642 | } |
| 6647 | .rating_search_performer .div.vote-stars, .rating_search_performer div.vote-active { | 6643 | .rating_search_performer .div.vote-stars, .rating_search_performer div.vote-active { |
| 6648 | cursor: default; | 6644 | cursor: default; |
| @@ -6659,4 +6655,29 @@ input[disabled], select[disabled] { | @@ -6659,4 +6655,29 @@ input[disabled], select[disabled] { | ||
| 6659 | text-align: center; | 6655 | text-align: center; |
| 6660 | } | 6656 | } |
| 6661 | .right_search_perform_foto-wr {vertical-align: middle} | 6657 | .right_search_perform_foto-wr {vertical-align: middle} |
| 6662 | -.section-box-customer .search-worker-blocks {margin-top: 20px} | ||
| 6663 | \ No newline at end of file | 6658 | \ No newline at end of file |
| 6659 | +.section-box-customer .search-worker-blocks {margin-top: 20px} | ||
| 6660 | +.form_site_logn-wr { | ||
| 6661 | + width: 240px; | ||
| 6662 | + margin: 0 auto; | ||
| 6663 | +} | ||
| 6664 | +.form_site_logn_ { | ||
| 6665 | + width: 100%; | ||
| 6666 | + padding: 30px 0; | ||
| 6667 | + float: left; | ||
| 6668 | + position: relative; | ||
| 6669 | +} | ||
| 6670 | +.form_site_logn-wr h1 { | ||
| 6671 | + font-size: 24px; | ||
| 6672 | + width: 100%; | ||
| 6673 | + text-align: center; | ||
| 6674 | +} | ||
| 6675 | + | ||
| 6676 | +.form_site_logn-wr .login-check-remember { | ||
| 6677 | + margin-bottom: 19px; | ||
| 6678 | +} | ||
| 6679 | +.form_site_logn-wr input.custom-check + label span {margin-top: 1px; margin-right: 6px} | ||
| 6680 | +.callback .input-blocks-wrapper {margin-top: 0} | ||
| 6681 | +.list_item.title {margin-top: 20px} | ||
| 6682 | +.search_customer_image { | ||
| 6683 | + height: 100%; | ||
| 6684 | +} | ||
| 6664 | \ No newline at end of file | 6685 | \ No newline at end of file |
frontend/web/js/forms.js
| @@ -54,6 +54,7 @@ $(document).ready(function(){ | @@ -54,6 +54,7 @@ $(document).ready(function(){ | ||
| 54 | var newMarg = $(window).scrollTop(); | 54 | var newMarg = $(window).scrollTop(); |
| 55 | $('#overlay').fadeIn(400, | 55 | $('#overlay').fadeIn(400, |
| 56 | function(){ | 56 | function(){ |
| 57 | + $('body').css({overflowY:'hidden'}) | ||
| 57 | $('.forms-modal-hide>div') | 58 | $('.forms-modal-hide>div') |
| 58 | .css({display:'block', marginTop:-230+newMarg}) | 59 | .css({display:'block', marginTop:-230+newMarg}) |
| 59 | .animate({opacity: 1, top: '50%'}, 200); | 60 | .animate({opacity: 1, top: '50%'}, 200); |
| @@ -110,6 +111,7 @@ $(document).ready(function(){ | @@ -110,6 +111,7 @@ $(document).ready(function(){ | ||
| 110 | clocseModalForms() | 111 | clocseModalForms() |
| 111 | function clocseModalForms(){ | 112 | function clocseModalForms(){ |
| 112 | $('body').on('click','.closed-form, #overlay', function(){ | 113 | $('body').on('click','.closed-form, #overlay', function(){ |
| 114 | + $('body').css({overflowY:'visible'}) | ||
| 113 | $('.forms-modal-hide>div') | 115 | $('.forms-modal-hide>div') |
| 114 | .animate({opacity: 0, top: '30%'}, 200, | 116 | .animate({opacity: 0, top: '30%'}, 200, |
| 115 | function(){ | 117 | function(){ |