From 3c61830326eac017dedd2d80e46c8b279477526d Mon Sep 17 00:00:00 2001 From: Yarik Date: Thu, 17 Mar 2016 14:57:46 +0200 Subject: [PATCH] test --- common/models/Project.php | 31 +++++++++++++++++++++++++++---- common/models/User.php | 46 ++++++++++++++++++++++++++++++++++++++++++++++ frontend/controllers/BookmarksController.php | 224 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------- frontend/views/bookmarks/bookmarks-customer.php | 462 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/views/bookmarks/bookmarks-performer.php | 459 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/views/bookmarks/bookmarks-project.php | 459 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/views/bookmarks/bookmarks-vacancy.php | 459 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ frontend/views/layouts/main.php | 4 ++-- frontend/views/search/_customer_list_view.php | 17 ++++++++++++++++- frontend/views/search/_performer_list_view.php | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------- frontend/views/search/_projects_list_view.php | 2 +- frontend/views/tender/view.php | 4 ++-- frontend/web/js/forms.js | 154 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 13 files changed, 2360 insertions(+), 53 deletions(-) create mode 100644 frontend/views/bookmarks/bookmarks-customer.php create mode 100644 frontend/views/bookmarks/bookmarks-performer.php create mode 100644 frontend/views/bookmarks/bookmarks-project.php create mode 100644 frontend/views/bookmarks/bookmarks-vacancy.php diff --git a/common/models/Project.php b/common/models/Project.php index 48df7c1..de6a879 100644 --- a/common/models/Project.php +++ b/common/models/Project.php @@ -2,6 +2,7 @@ namespace common\models; + use common\modules\comment\models\CommentProject; use Yii; use yii\behaviors\BlameableBehavior; use yii\behaviors\TimestampBehavior; @@ -64,8 +65,8 @@ 'class' => 'common\behaviors\Slug', 'in_attribute' => 'name', 'out_attribute' => 'link', - 'translit' => true - ] + 'translit' => true, + ], ]; } @@ -78,7 +79,7 @@ [ [ 'name', - 'link' + 'link', ], 'required', ], @@ -277,6 +278,28 @@ public function getIsBookmarked() { - return false; + $type = Bookmark::TYPE_PROJECT; + if(!empty( \Yii::$app->user->identity )) { + if(!empty( $this->hasOne(Bookmark::className(), [ 'model_id' => 'project_id' ]) + ->andWhere([ + 'model' => $this->className(), + 'user_id' => \Yii::$app->user->getId(), + 'type' => $type, + ]) + ->one() ) + ) { + return true; + } else { + return false; + } + } else { + return false; + } + } + + public function getComments() + { + return $this->hasMany(CommentProject::className(), [ 'model_id' => 'project_id' ]) + ->andWhere([ 'model' => $this->className() ]); } } diff --git a/common/models/User.php b/common/models/User.php index bc43e82..a0d46bf 100755 --- a/common/models/User.php +++ b/common/models/User.php @@ -725,4 +725,50 @@ } } + public function getBookmarks() + { + return $this->hasMany(Bookmark::className(), [ 'user_id' => 'id' ]); + } + + public function getBookmarksPerformers() + { + return $this->hasMany(User::className(), [ 'id' => 'model_id' ]) + ->viaTable('{{%bookmark}}', [ 'user_id' => 'id' ], function($query) { + /** + * @var ActiveQuery $query + */ + $query->andWhere([ + 'model' => User::className(), + 'type' => Bookmark::TYPE_PERFORMER, + ]); + }); + } + + public function getBookmarksCustomers() + { + return $this->hasMany(User::className(), [ 'id' => 'model_id' ]) + ->viaTable('{{%bookmark}}', [ 'user_id' => 'id' ], function($query) { + /** + * @var ActiveQuery $query + */ + $query->andWhere([ + 'model' => User::className(), + 'type' => Bookmark::TYPE_CUSTOMER, + ]); + }); + } + + public function getBookmarksProjects() + { + return $this->hasMany(Project::className(), [ 'project_id' => 'model_id' ]) + ->viaTable('{{%bookmark}}', [ 'user_id' => 'id' ], function($query) { + /** + * @var ActiveQuery $query + */ + $query->andWhere([ + 'model' => Project::className(), + 'type' => Bookmark::TYPE_PROJECT, + ]); + }); + } } diff --git a/frontend/controllers/BookmarksController.php b/frontend/controllers/BookmarksController.php index 01947e0..48784c5 100644 --- a/frontend/controllers/BookmarksController.php +++ b/frontend/controllers/BookmarksController.php @@ -2,7 +2,10 @@ namespace frontend\controllers; use common\models\Bookmark; + use common\models\Project; use common\models\User; + use frontend\models\SearchPerformerForm; + use yii\data\ActiveDataProvider; use yii\filters\AccessControl; use yii\filters\VerbFilter; use yii\web\Controller; @@ -14,6 +17,10 @@ class BookmarksController extends Controller { + public $enableCsrfValidation = false; + + public $defaultAction = 'performer'; + public function behaviors() { return [ @@ -47,6 +54,60 @@ return $this->render('bookmarks'); } + public function actionPerformer() + { + /** + * @var User $user + */ + $user = \Yii::$app->user->identity; + $dataProvider = new ActiveDataProvider([ + 'query' => $user->getBookmarksPerformers(), + 'pagination' => [ + 'pageSize' => 10, + ], + ]); + return $this->render('bookmarks-performer', [ + 'dataProvider' => $dataProvider, + 'user' => $user, + ]); + } + + public function actionCustomer() + { + /** + * @var User $user + */ + $user = \Yii::$app->user->identity; + $dataProvider = new ActiveDataProvider([ + 'query' => $user->getBookmarksCustomers(), + 'pagination' => [ + 'pageSize' => 10, + ], + ]); + return $this->render('bookmarks-customer', [ + 'dataProvider' => $dataProvider, + 'user' => $user, + ]); + } + + public function actionProject() + { + /** + * @var User $user + */ + $user = \Yii::$app->user->identity; + $dataProvider = new ActiveDataProvider([ + 'query' => $user->getBookmarksProjects()->with('comments'), + 'pagination' => [ + 'pageSize' => 10, + ], + ]); + return $this->render('bookmarks-project', [ + 'dataProvider' => $dataProvider, + 'user' => $user, + ]); + } + public function actionAddPerformer() { $response = \Yii::$app->response; @@ -89,14 +150,91 @@ } } - public function actionAddCustomer($id) + public function actionAddCustomer() { - + $response = \Yii::$app->response; + $response->format = Response::FORMAT_JSON; + $model_id = \Yii::$app->request->post('id'); + if(empty( $model_id )) { + return [ 'error' => 'Ошибка добавления. Отсутствует id заказчика' ]; + } + $user = User::findOne($model_id); + if(empty( $user )) { + return [ 'error' => 'Ошибка добавления. Заказчик не найден.' ]; + } + $model = $user->className(); + $user_id = \Yii::$app->user->getId(); + $type = Bookmark::TYPE_CUSTOMER; + if(Bookmark::findOne([ + 'model' => $model, + 'model_id' => $model_id, + 'user_id' => $user_id, + 'type' => $type, + ]) + ) { + return [ 'error' => 'Ошибка добавления. Заказчик уже добавлен.' ]; + } + $bookmark = new Bookmark([ + 'model' => $model, + 'model_id' => $model_id, + 'user_id' => $user_id, + 'type' => $type, + ]); + if($bookmark->save()) { + $result = $this->renderAjax('//site/forms-modal-fav', [ + 'message' => 'Добавлено в закладки.', + 'image' => $user->userInfo->image, + 'name' => $user->name, + ]); + return [ 'result' => $result ]; + } else { + return [ 'error' => 'Ошибка добавления.' ]; + } } - public function actionAddProject($id) + public function actionAddProject() { - + $response = \Yii::$app->response; + $response->format = Response::FORMAT_JSON; + $model_id = \Yii::$app->request->post('id'); + if(empty( $model_id )) { + return [ 'error' => 'Ошибка добавления. Отсутствует id проекта' ]; + } + /** + * @var Project $project + */ + $project = Project::findOne($model_id); + if(empty( $project )) { + return [ 'error' => 'Ошибка добавления. Проект не найден.' ]; + } + $model = $project->className(); + $user_id = \Yii::$app->user->getId(); + $type = Bookmark::TYPE_PROJECT; + if(Bookmark::findOne([ + 'model' => $model, + 'model_id' => $model_id, + 'user_id' => $user_id, + 'type' => $type, + ]) + ) { + return [ 'error' => 'Ошибка добавления. Проект уже добавлен.' ]; + } + $bookmark = new Bookmark([ + 'model' => $model, + 'model_id' => $model_id, + 'user_id' => $user_id, + 'type' => $type, + ]); + if($bookmark->save()) { + $result = $this->renderAjax('//site/forms-modal-fav', [ + 'message' => 'Добавлено в закладки.', + 'image' => $project->user->userInfo->image, + 'name' => $project->name, + ]); + return [ 'result' => $result ]; + } else { + return [ 'error' => 'Ошибка добавления.' ]; + } } public function actionAddVacancy($id) @@ -128,14 +266,84 @@ 'user_id' => $user_id, 'type' => $type, ]); - if(!empty($bookmark)) { + if(!empty( $bookmark )) { + if($bookmark->delete()) { + return [ 'message' => 'Закладка успешно удалена' ]; + } else { + return [ 'error' => 'Ошибка при удалении' ]; + } + } else { + return [ 'error' => 'Закладка не найдена' ]; + } + } + + public function actionRemoveCustomer() + { + $response = \Yii::$app->response; + $response->format = Response::FORMAT_JSON; + $model_id = \Yii::$app->request->post('id'); + if(empty( $model_id )) { + return [ 'error' => 'Ошибка удаления. Отсутствует id заказчика' ]; + } + $user = User::findOne($model_id); + if(empty( $user )) { + return [ 'error' => 'Ошибка добавления. Заказчик не найден.' ]; + } + $model = $user->className(); + $user_id = \Yii::$app->user->getId(); + $type = Bookmark::TYPE_CUSTOMER; + /** + * @var Bookmark $bookmark + */ + $bookmark = Bookmark::findOne([ + 'model' => $model, + 'model_id' => $model_id, + 'user_id' => $user_id, + 'type' => $type, + ]); + if(!empty( $bookmark )) { + if($bookmark->delete()) { + return [ 'message' => 'Закладка успешно удалена' ]; + } else { + return [ 'error' => 'Ошибка при удалении' ]; + } + } else { + return [ 'error' => 'Закладка не найдена' ]; + } + } + + public function actionRemoveProject() + { + $response = \Yii::$app->response; + $response->format = Response::FORMAT_JSON; + $model_id = \Yii::$app->request->post('id'); + if(empty( $model_id )) { + return [ 'error' => 'Ошибка удаления. Отсутствует id проекта' ]; + } + $project = Project::findOne($model_id); + if(empty( $project )) { + return [ 'error' => 'Ошибка добавления. Проект не найден.' ]; + } + $model = $project->className(); + $user_id = \Yii::$app->user->getId(); + $type = Bookmark::TYPE_PROJECT; + /** + * @var Bookmark $bookmark + */ + $bookmark = Bookmark::findOne([ + 'model' => $model, + 'model_id' => $model_id, + 'user_id' => $user_id, + 'type' => $type, + ]); + if(!empty( $bookmark )) { if($bookmark->delete()) { - return ['message' => 'Закладка успешно удалена']; + return [ 'message' => 'Закладка успешно удалена' ]; } else { - return ['error' => 'Ошибка при удалении']; + return [ 'error' => 'Ошибка при удалении' ]; } } else { - return ['error' => 'Закладка не найдена']; + return [ 'error' => 'Закладка не найдена' ]; } } diff --git a/frontend/views/bookmarks/bookmarks-customer.php b/frontend/views/bookmarks/bookmarks-customer.php new file mode 100644 index 0000000..0af6e6f --- /dev/null +++ b/frontend/views/bookmarks/bookmarks-customer.php @@ -0,0 +1,462 @@ +title = 'Мой профиль'; + $this->params[ 'breadcrumbs' ][] = $this->title; +?> + +
+
+
+
+
+ + 'search-performer-button-performers' ]) ?> + 'search-performer-button-customers' ]) ?> + 'search-performer-button-project' ]) ?> + 'search-performer-button-project' ]) ?> +
+
+
Заказчики
+ $dataProvider, + 'itemView' => '@frontend/views/search/_customer_list_view', + 'itemOptions' => [ + 'class' => 'search-worker-blocks', + ], + 'summary' => '
Готовые приступить к работе {totalCount}
', + ]) ?> + +
Компании готовые приступить к работе + 145
+
+
+
Сортировать: 
+ +
+
+ +
+
+
+
+
PRO
+
ООО «Ортекс»
+
+
+
+ + +
+
30 отзывов, Киев
+
+
+ Сотрудники: более 40 +
+
+
+ География работ: Киев, Полтава, Харьков, Днепропетровск, Львов, Одесса +
+
+ +
+
+ Последний визит: 2 дня назад +
+
+ 21 работа в портфолио + +
+
+
+
+ + + + +
+
+
+ +
+
+
+
+
+
+
NEW
+
ООО «Ортекс»
+
+
+
+ + +
+
30 отзывов, Киев
+
+
+ Сотрудники: более 40 +
+
+
+ География работ: Киев, Полтава, Харьков, Днепропетровск, Львов, Одесса +
+
+ +
+
+ Последний визит: 2 дня назад +
+
+ 21 работа в портфолио + +
+
+
+
+ + + + +
+
+
+ +
+
+
+
+ +
+
+
+ + + + +
+
+
+ +
+
+
+
+
+
+
PRO
+
ООО «Ортекс»
+
+
+
+ + +
+
30 отзывов, Киев
+
+
+ Сотрудники: более 40 +
+
+
+ География работ: Киев, Полтава, Харьков, Днепропетровск, Львов, Одесса +
+
+ +
+
+ Последний визит: 2 дня назад +
+
+ 21 работа в портфолио + +
+
+
+
+ + + + +
+
+
+ +
+
+
+ +
+ +
+
+
+
+ +
diff --git a/frontend/views/bookmarks/bookmarks-performer.php b/frontend/views/bookmarks/bookmarks-performer.php new file mode 100644 index 0000000..134e5fe --- /dev/null +++ b/frontend/views/bookmarks/bookmarks-performer.php @@ -0,0 +1,459 @@ +title = 'Мой профиль'; + $this->params[ 'breadcrumbs' ][] = $this->title; +?> + +
+
+
+
+
+ + 'search-performer-button-performers' ]) ?> + 'search-performer-button-customers' ]) ?> + 'search-performer-button-project' ]) ?> + 'search-performer-button-project' ]) ?> +
+
+
Исполнители
+ $dataProvider, + 'itemView' => '@frontend/views/search/_performer_list_view', + 'summary' => '
Готовые приступить к работе {totalCount}
', + ]) ?> + +
Компании готовые приступить к работе + 145
+
+
+
Сортировать: 
+ +
+
+ +
+
+
+
+
PRO
+
ООО «Ортекс»
+
+
+
+ + +
+
30 отзывов, Киев
+
+
+ Сотрудники: более 40 +
+
+
+ География работ: Киев, Полтава, Харьков, Днепропетровск, Львов, Одесса +
+
+ +
+
+ Последний визит: 2 дня назад +
+
+ 21 работа в портфолио + +
+
+
+
+ + + + +
+
+
+ +
+
+
+
+
+
+
NEW
+
ООО «Ортекс»
+
+
+
+ + +
+
30 отзывов, Киев
+
+
+ Сотрудники: более 40 +
+
+
+ География работ: Киев, Полтава, Харьков, Днепропетровск, Львов, Одесса +
+
+ +
+
+ Последний визит: 2 дня назад +
+
+ 21 работа в портфолио + +
+
+
+
+ + + + +
+
+
+ +
+
+
+
+ +
+
+
+ + + + +
+
+
+ +
+
+
+
+
+
+
PRO
+
ООО «Ортекс»
+
+
+
+ + +
+
30 отзывов, Киев
+
+
+ Сотрудники: более 40 +
+
+
+ География работ: Киев, Полтава, Харьков, Днепропетровск, Львов, Одесса +
+
+ +
+
+ Последний визит: 2 дня назад +
+
+ 21 работа в портфолио + +
+
+
+
+ + + + +
+
+
+ +
+
+
+ +
+ +
+
+
+
+ +
diff --git a/frontend/views/bookmarks/bookmarks-project.php b/frontend/views/bookmarks/bookmarks-project.php new file mode 100644 index 0000000..80f0b20 --- /dev/null +++ b/frontend/views/bookmarks/bookmarks-project.php @@ -0,0 +1,459 @@ +title = 'Мой профиль'; + $this->params[ 'breadcrumbs' ][] = $this->title; +?> + +
+
+
+
+
+ + 'search-performer-button-performers' ]) ?> + 'search-performer-button-customers' ]) ?> + 'search-performer-button-project' ]) ?> + 'search-performer-button-project' ]) ?> +
+
+
Заказчики
+ $dataProvider, + 'itemView' => '@frontend/views/search/_projects_list_view', + 'summary' => '
Всего {totalCount} проектов в закладках
', + ]) ?> + +
Компании готовые приступить к работе + 145
+
+
+
Сортировать: 
+ +
+
+ +
+
+
+
+
PRO
+
ООО «Ортекс»
+
+
+
+ + +
+
30 отзывов, Киев
+
+
+ Сотрудники: более 40 +
+
+
+ География работ: Киев, Полтава, Харьков, Днепропетровск, Львов, Одесса +
+
+ +
+
+ Последний визит: 2 дня назад +
+
+ 21 работа в портфолио + +
+
+
+
+ + + + +
+
+
+ +
+
+
+
+
+
+
NEW
+
ООО «Ортекс»
+
+
+
+ + +
+
30 отзывов, Киев
+
+
+ Сотрудники: более 40 +
+
+
+ География работ: Киев, Полтава, Харьков, Днепропетровск, Львов, Одесса +
+
+ +
+
+ Последний визит: 2 дня назад +
+
+ 21 работа в портфолио + +
+
+
+
+ + + + +
+
+
+ +
+
+
+
+ +
+
+
+ + + + +
+
+
+ +
+
+
+
+
+
+
PRO
+
ООО «Ортекс»
+
+
+
+ + +
+
30 отзывов, Киев
+
+
+ Сотрудники: более 40 +
+
+
+ География работ: Киев, Полтава, Харьков, Днепропетровск, Львов, Одесса +
+
+ +
+
+ Последний визит: 2 дня назад +
+
+ 21 работа в портфолио + +
+
+
+
+ + + + +
+
+
+ +
+
+
+ +
+ +
+
+
+
+ +
diff --git a/frontend/views/bookmarks/bookmarks-vacancy.php b/frontend/views/bookmarks/bookmarks-vacancy.php new file mode 100644 index 0000000..f79431c --- /dev/null +++ b/frontend/views/bookmarks/bookmarks-vacancy.php @@ -0,0 +1,459 @@ +title = 'Мой профиль'; + $this->params[ 'breadcrumbs' ][] = $this->title; +?> + +
+
+
+
+
+ + 'search-performer-button-performers' ]) ?> + 'search-performer-button-customers' ]) ?> + 'search-performer-button-project' ]) ?> + 'search-performer-button-project' ]) ?> +
+
+
Вакансии
+ $dataProvider, + 'itemView' => '@frontend/views/search/_vacancy_list_view', + 'summary' => '
Всего {totalCount} вакансии в закладках
', + ]) ?> + +
Компании готовые приступить к работе + 145
+
+
+
Сортировать: 
+ +
+
+ +
+
+
+
+
PRO
+
ООО «Ортекс»
+
+
+
+ + +
+
30 отзывов, Киев
+
+
+ Сотрудники: более 40 +
+
+
+ География работ: Киев, Полтава, Харьков, Днепропетровск, Львов, Одесса +
+
+ +
+
+ Последний визит: 2 дня назад +
+
+ 21 работа в портфолио + +
+
+
+
+ + + + +
+
+
+ +
+
+
+
+
+
+
NEW
+
ООО «Ортекс»
+
+
+
+ + +
+
30 отзывов, Киев
+
+
+ Сотрудники: более 40 +
+
+
+ География работ: Киев, Полтава, Харьков, Днепропетровск, Львов, Одесса +
+
+ +
+
+ Последний визит: 2 дня назад +
+
+ 21 работа в портфолио + +
+
+
+
+ + + + +
+
+
+ +
+
+
+
+ +
+
+
+ + + + +
+
+
+ +
+
+
+
+
+
+
PRO
+
ООО «Ортекс»
+
+
+
+ + +
+
30 отзывов, Киев
+
+
+ Сотрудники: более 40 +
+
+
+ География работ: Киев, Полтава, Харьков, Днепропетровск, Львов, Одесса +
+
+ +
+
+ Последний визит: 2 дня назад +
+
+ 21 работа в портфолио + +
+
+
+
+ + + + +
+
+
+ +
+
+
+ +
+ +
+
+
+
+ +
diff --git a/frontend/views/layouts/main.php b/frontend/views/layouts/main.php index fc397eb..b32a5d4 100755 --- a/frontend/views/layouts/main.php +++ b/frontend/views/layouts/main.php @@ -161,8 +161,8 @@ AppAsset::register($this); 'template' => '28', ], [ - 'url' => ['accounts/bookmarks'], - 'template' => '1', + 'url' => ['bookmarks/index'], + 'template' => "".count(\Yii::$app->user->identity->bookmarks)."", ], ], ]); diff --git a/frontend/views/search/_customer_list_view.php b/frontend/views/search/_customer_list_view.php index 4954370..88672d9 100644 --- a/frontend/views/search/_customer_list_view.php +++ b/frontend/views/search/_customer_list_view.php @@ -5,6 +5,7 @@ * @var integer $index * @var ListView $widget */ + use common\models\Bookmark; use common\models\Project; use common\models\User; use frontend\helpers\TextHelper; @@ -74,5 +75,19 @@ ?> - Добавить в закладки + user->identity )) { + if($model->getIsBookmarked(Bookmark::TYPE_CUSTOMER)) { + echo Html::a('Убрать из закладок', [ '#' ], [ + 'class' => 'get-list artbox_bookmark_remove_customer', + 'data-id' => $model->id, + ]); + } else { + echo Html::a('Добавить в закладки', [ '#' ], [ + 'class' => 'get-list artbox_bookmark_add_customer', + 'data-id' => $model->id, + ]); + } + } + ?> \ No newline at end of file diff --git a/frontend/views/search/_performer_list_view.php b/frontend/views/search/_performer_list_view.php index 3da863b..0f40f25 100644 --- a/frontend/views/search/_performer_list_view.php +++ b/frontend/views/search/_performer_list_view.php @@ -1,32 +1,38 @@
@@ -34,16 +40,16 @@ use yii\helpers\Url;
- minImg($model->userInfo->image, '48','48'))?> + minImg($model->userInfo->image, '48', '48')) ?>
- userInfo->member):?> + userInfo->member): ?>
PRO
NEW
-
name?>
+
name ?>
@@ -53,32 +59,52 @@ use yii\helpers\Url;
-
30 отзывов, userInfo->city?>
+
30 отзывов, userInfo->city ?>
- userInfo->busy):?> - занят - - свободен - + userInfo->busy): ?> + занят + + свободен +
- География работ: portfolios, 'city'))) ?> + География работ: portfolios, 'city'))) ?>
- specializations as $specialization):?> - specialization_name ?>, - + specializations as $specialization): ?> + specialization_name ?>, +
-
Последний визит: userInfo->lastVisit ?>
- portfolios)." работа в портфолио",[Url::toRoute(['performer/portfolio','performer_id'=>$model->userInfo->user_id])], ['class' => "search-worker-blocks-jobs-portfolio" ])?> +
+ Последний визит: userInfo->lastVisit ?>
+ portfolios) . " работа в портфолио", [ + Url::toRoute([ + 'performer/portfolio', + 'performer_id' => $model->userInfo->user_id, + ]), + ], [ 'class' => "search-worker-blocks-jobs-portfolio" ]) ?>
- Добавить в закладки + user->identity )) { + if($model->isBookmarked) { + echo Html::a('Убрать из закладок', [ '#' ], [ + 'class' => 'get-list artbox_bookmark_remove_performer', + 'data-id' => $model->id, + ]); + } else { + echo Html::a('Добавить в закладки', [ '#' ], [ + 'class' => 'get-list artbox_bookmark_add_performer', + 'data-id' => $model->id, + ]); + } + } + ?> Предложить проект
diff --git a/frontend/views/search/_projects_list_view.php b/frontend/views/search/_projects_list_view.php index 1a2408c..92b8467 100644 --- a/frontend/views/search/_projects_list_view.php +++ b/frontend/views/search/_projects_list_view.php @@ -44,7 +44,7 @@ use yii\helpers\Url; formatter->asDatetime($model->date_end, 'dd.MM.Y')?>
- X предложения + comments) ?> предложения
\ No newline at end of file diff --git a/frontend/views/tender/view.php b/frontend/views/tender/view.php index 8aed57e..e8e0ceb 100755 --- a/frontend/views/tender/view.php +++ b/frontend/views/tender/view.php @@ -72,12 +72,12 @@ $this->title = 'My Yii Application'; isBookmarked) { echo Html::a('', [ '#' ], [ - 'class' => 'artbox_bookmark_remove_performer', + 'class' => 'artbox_bookmark_remove_project', 'data-id' => $model->project_id, ]); } else { echo Html::a('', [ '#' ], [ - 'class' => 'artbox_bookmark_add_performer', + 'class' => 'artbox_bookmark_add_project', 'data-id' => $model->project_id, ]); } diff --git a/frontend/web/js/forms.js b/frontend/web/js/forms.js index 1f7a1bd..adc3823 100755 --- a/frontend/web/js/forms.js +++ b/frontend/web/js/forms.js @@ -162,7 +162,8 @@ $(document).ready( $('#overlay, .forms-modal-hide').remove(); alert(data.error); } else { - $('.artbox_bookmark_add_performer').removeClass('artbox_bookmark_add_performer').addClass('artbox_bookmark_remove_performer'); + $('.artbox_bookmark_add_performer[data-id='+id+']').removeClass('artbox_bookmark_add_performer').addClass('artbox_bookmark_remove_performer'); + $('.get-list.artbox_bookmark_remove_performer[data-id='+id+']').text('Убрать из закладок'); $('.forms-modal-hide').append(data.result); } }, 'json').fail( @@ -198,7 +199,156 @@ $(document).ready( $('#overlay, .forms-modal-hide').remove(); alert(data.error); } else { - $('.artbox_bookmark_remove_performer').removeClass('artbox_bookmark_remove_performer').addClass('artbox_bookmark_add_performer'); + $('.artbox_bookmark_remove_performer[data-id='+id+']').removeClass('artbox_bookmark_remove_performer').addClass('artbox_bookmark_add_performer'); + $('.get-list.artbox_bookmark_add_performer[data-id='+id+']').text('Добавить в закладки'); + $('#overlay, .forms-modal-hide').remove(); + alert(data.message); + } + }, 'json').fail( + function() + { + $('#overlay, .forms-modal-hide').remove(); + alert(txtErrorModal); + } + ) + .done( + function() + { + var newMarg = $(window).scrollTop(); + $('#overlay').fadeIn( + 400, function() + { + $('.forms-modal-hide>div') + .css({display : 'block', marginTop : -230 + newMarg}) + .animate({opacity : 1, top : '50%'}, 200); + } + ); + } + ) + }); + + //Customerbookmark add + $(document).on('click', '.artbox_bookmark_add_customer', function(e) { + e.preventDefault(); + var id = $(this).data('id'); + addRemoveBlocks(); + $.post('/bookmarks/add-customer', {id: id}, function(data) { + if(data.error) { + $('#overlay, .forms-modal-hide').remove(); + alert(data.error); + } else { + $('.artbox_bookmark_add_customer[data-id='+id+']').removeClass('artbox_bookmark_add_customer').addClass('artbox_bookmark_remove_customer'); + $('.get-list.artbox_bookmark_remove_customer[data-id='+id+']').text('Убрать из закладок'); + $('.forms-modal-hide').append(data.result); + } + }, 'json').fail( + function() + { + $('#overlay, .forms-modal-hide').remove(); + alert(txtErrorModal); + } + ) + .done( + function() + { + var newMarg = $(window).scrollTop(); + $('#overlay').fadeIn( + 400, function() + { + $('.forms-modal-hide>div') + .css({display : 'block', marginTop : -230 + newMarg}) + .animate({opacity : 1, top : '50%'}, 200); + } + ); + } + ) + }); + //Customer bookmark remove + $(document).on('click', '.artbox_bookmark_remove_customer', function(e) { + e.preventDefault(); + var id = $(this).data('id'); + var link = $(this); + addRemoveBlocks(); + $.post('/bookmarks/remove-customer', {id: id}, function(data) { + if(data.error) { + $('#overlay, .forms-modal-hide').remove(); + alert(data.error); + } else { + $('.artbox_bookmark_remove_customer[data-id='+id+']').removeClass('artbox_bookmark_remove_customer').addClass('artbox_bookmark_add_customer'); + $('.get-list.artbox_bookmark_add_customer[data-id='+id+']').text('Добавить в закладки'); + $('#overlay, .forms-modal-hide').remove(); + alert(data.message); + } + }, 'json').fail( + function() + { + $('#overlay, .forms-modal-hide').remove(); + alert(txtErrorModal); + } + ) + .done( + function() + { + var newMarg = $(window).scrollTop(); + $('#overlay').fadeIn( + 400, function() + { + $('.forms-modal-hide>div') + .css({display : 'block', marginTop : -230 + newMarg}) + .animate({opacity : 1, top : '50%'}, 200); + } + ); + } + ) + }); + + //Project bookmark add + $(document).on('click', '.artbox_bookmark_add_project', function(e) { + e.preventDefault(); + var id = $(this).data('id'); + addRemoveBlocks(); + $.post('/bookmarks/add-project', {id: id}, function(data) { + if(data.error) { + $('#overlay, .forms-modal-hide').remove(); + alert(data.error); + } else { + $('.artbox_bookmark_add_project[data-id='+id+']').removeClass('artbox_bookmark_add_project').addClass('artbox_bookmark_remove_project'); + $('.forms-modal-hide').append(data.result); + } + }, 'json').fail( + function() + { + $('#overlay, .forms-modal-hide').remove(); + alert(txtErrorModal); + } + ) + .done( + function() + { + var newMarg = $(window).scrollTop(); + $('#overlay').fadeIn( + 400, function() + { + $('.forms-modal-hide>div') + .css({display : 'block', marginTop : -230 + newMarg}) + .animate({opacity : 1, top : '50%'}, 200); + } + ); + } + ) + }); + //Project bookmark remove + $(document).on('click', '.artbox_bookmark_remove_project', function(e) { + e.preventDefault(); + var id = $(this).data('id'); + var link = $(this); + addRemoveBlocks(); + $.post('/bookmarks/remove-project', {id: id}, function(data) { + if(data.error) { + $('#overlay, .forms-modal-hide').remove(); + alert(data.error); + } else { + $('.artbox_bookmark_remove_project[data-id='+id+']').removeClass('artbox_bookmark_remove_project').addClass('artbox_bookmark_add_project'); $('#overlay, .forms-modal-hide').remove(); alert(data.message); } -- libgit2 0.21.4