public function actionEdit_action($id, $render_page = null) { $actions = Actions::model()->findByPk($id); $client = Clients::model()->findByPk($actions->client_id); $action_resp_role = UsersRoles::model()->find('user_id=' . $actions->responsable_id); $correct_path = 'http://' . $_SERVER["HTTP_HOST"]; $user = Users::model()->findByPk(Yii::app()->user->id); if ($_POST['MainActions']) { $actions->attributes = $_POST['MainActions']; if ($_POST['type'] == 'i') { $actions->responsable_id = Yii::app()->user->id; } elseif ($_POST['type'] == 'manager_edit_action') { $actions->responsable_id = $_POST['MainActions']['manager_id']; } elseif ($_POST['type'] == 'director_edit_action') { $actions->responsable_id = $_POST['MainActions']['director_id']; } elseif ($_POST['type'] == 'no') { $admin = new Users(); $admin_id = $admin->getAdminId(); $actions->responsable_id = $admin_id; } if (isset($_POST['ajax']) && $_POST['ajax'] == 'edit-action') { echo CActiveForm::validate($actions); Yii::app()->end(); } $actions->action_date = date('Y-m-d H:i', strtotime($_POST['MainActions']['action_date'])); if ($actions->update()) { $render_page = explode(';', $render_page); if ($render_page[0] == 'actions_page') { $this->redirect(array('actions_page', 'term' => $render_page[1])); } else { $this->redirect(array('client_profile', 'id' => $actions->client_id)); } } } // Работа с ролями $role = UsersRoles::model()->find('user_id=' . Yii::app()->user->id)->itemname; $responsible_options = array('i' => 'Я ответственный', 'director_edit_action' => 'Руководители', 'manager_edit_action' => 'Менежеры', 'no' => 'Создатель компании'); $directors_array = array(); $managers_array = array(); if ($role == 'director') { unset($responsible_options['director_edit_action']); $managers_array = Users::model()->with('roles')->findAll('company_id=' . $user->company_id . ' and status="active" and roles.name="manager" and parent_id=' . Yii::app()->user->id); } elseif ($role == 'manager') { unset($responsible_options['director_edit_action'], $responsible_options['manager_edit_action']); } else { unset($responsible_options['no']); $directors_array = Users::model()->with('roles')->findAll('company_id=' . $user->company_id . ' and status="active" and roles.name="director"'); $managers_array = Users::model()->with('roles')->findAll('company_id=' . $user->company_id . ' and status="active" and roles.name="manager"'); } if (count($directors_array) <= 0) { unset($responsible_options['director_edit_action']); } if (count($managers_array) <= 0) { unset($responsible_options['manager_edit_action']); } // Создание кнопок $form = $this->beginWidget('CActiveForm', array('id' => 'edit-action', 'enableAjaxValidation' => true, 'clientOptions' => array('validateOnSubmit' => true))); $delete_button = CHtml::button("Удалить", array('onClick' => 'window.location.href="' . Yii::app()->createUrl("page/delete_action", array("id" => $actions->id, 'render_page' => $render_page)) . '"', 'class' => 'btn')); $prior_array = ActionsPriority::model()->findAll(); $priority_selector = ''; foreach ($prior_array as $prior) { $priority_selector .= '<option ' . ($actions->action_priority_id == $prior->id ? ' selected="selected"' : '') . ' class="' . $prior->color . '" value="' . $prior->id . '">' . 'Приоритет: ' . $prior->name . '</option>'; } $statuses_array = ActionsStatuses::model()->findAll(); $status_selector = ''; foreach ($statuses_array as $status) { $status_selector .= '<option ' . ($actions->action_status_id == $status->id ? ' selected="selected"' : '') . ' value="' . $status->id . '">' . 'Состояние: ' . $status->name . '</option>'; } $directors_block_to_display = $action_resp_role->itemname == 'director' && $role != 'director' ? 'style="display:block"' : ''; $managers_block_to_display = $action_resp_role->itemname == 'manager' && count($managers_array) > 0 ? 'style="display:block"' : ''; // выбор значения в селекторе if ($actions->responsable_id == Yii::app()->user->id) { $selected_option = array('i' => array('selected' => true)); } elseif ($action_resp_role->itemname == 'director') { $selected_option = array('director_edit_action' => array('selected' => true)); } elseif ($action_resp_role->itemname == 'manager') { $selected_option = array('manager_edit_action' => array('selected' => true)); } else { $selected_option = array('no' => array('selected' => true)); } echo '<div class="popup new_action" id="popup-edit-action" style="display: block;"> <div class="popup__head"> <div class="title">Действие по клиенту</div> </div> <div class="popup__form"> <div class="help-dropdown"> <dl> <dt class="dt2"><i class="icon-help">help</i>Контактная информация</dt> <dd class="dd2"> <ul> <div class="taber-body"> <div class="tab"> <ul class="compay-info edit-row" id="compay-info"> <li><img class="image1" src="' . $correct_path . '/img/1111.svg"><span class="editable" rel="name">' . $client->name . '</li></span></li> <li><img class="image1" src="' . $correct_path . '/img/home168.svg"><span class="editable" rel="city">' . $client->city->name . '</span></li> <li><img class="image1" src="' . $correct_path . '/img/location.svg"><span class="editable" rel="address">' . $client->adres . '</span></li> <li><img class="image1" src="' . $correct_path . '/img/phone21.svg"><span class="editable" rel="tel">' . $client->phone_1 . '</span></li> <li><img class="image1" src="' . $correct_path . '/img/email.svg"><span class="editable" rel="mail1">' . $client->email_1 . '</span></li> </ul> </div> </div> </ul> </dd> </dl> </div> <div class="form-group"> <div class="client_info"> Информация о действии: </div> <div class="form-group"> ' . $form->textField($actions, 'text', array('class' => 'form-control editable', 'placeholder' => 'Тема действия')) . $form->error($actions, 'text', array('class' => 'form-error')) . ' <span class="star">*</span> </div> <div class="form-group"> <select name="MainActions[action_priority_id]" class="styled status square" data-placeholder="Все приоритеты">' . $priority_selector . '</select> <span class="star">*</span> </div> <div class="form-group"> <select name="MainActions[action_status_id]" class="styled status circle" data-placeholder="Состояние действия">' . $status_selector . '</select> <span class="star">*</span> </div> <div class="form-group"> ' . $this->widget('ext.CJuiDateTimePicker.CJuiDateTimePicker', array('name' => 'MainActions[action_date]', 'model' => $actions, 'attribute' => 'action_date', 'language' => 'ru', 'htmlOptions' => array('value' => date('d.m.Y', strtotime($actions->action_date))), 'options' => array('dateFormat' => 'dd.mm.yy', 'changeMonth' => 'true', 'changeYear' => 'true', 'showButtonPanel' => true, 'beforeShow' => new CJavaScriptExpression('function(element){dataPickerFocus = $(element).attr(\'id\').trim();}')), 'htmlOptions' => array('class' => 'form-control editable')), true) . $form->error($actions, 'action_date', array('class' => 'form-error')) . ' <span class="star">*</span> </div> <div class="form-group"> <div class="client_info"> Ответственный: </div> <div class="form-group"> ' . $form->dropDownList($actions, 'responsable_id', $responsible_options, array('options' => $selected_option, 'class' => 'styled permis editable typeAccess', 'name' => 'type')) . ' </div> <div class="access-options access-tab" id="director_edit_action" ' . $directors_block_to_display . '> ' . $form->dropDownList($actions, 'director_id', CHtml::listData($directors_array, 'id', 'first_name'), array('options' => array($actions->responsable_id => array('selected' => true)), 'class' => 'styled')) . ' </div> <div class="access-options access-tab" id="manager_edit_action"' . $managers_block_to_display . '> ' . $form->dropDownList($actions, 'manager_id', CHtml::listData($managers_array, 'id', 'first_name'), array('options' => array($actions->responsable_id => array('selected' => true)), 'class' => 'styled')) . ' </div> </div> <div class="form-group"> <div class="client_info"> Дополнительно: </div> <div class="form-group"> ' . $form->dropDownList($actions, 'action_type_id', CHtml::listData(ActionsTypes::model()->findAll('company_id=' . $user->company_id), "id", "name"), array('class' => 'styled status', 'data-placeholder' => 'Тип действия')) . ' </div> <div class="form-group"> ' . $form->textArea($actions, 'description', array('class' => 'form-control editable', 'placeholder' => 'Комментарий')) . ' </div> ' . $this->actionGetJSStyle('edit-action', '[{ "id": "MainActions_text", "inputID": "MainActions_text", "errorID": "MainActions_text_em_", "model": "MainActions", "name": "text", "enableAjaxValidation": true }, { "id": "MainActions_action_date", "inputID": "MainActions_action_date", "errorID": "MainActions_action_date_em_", "model": "MainActions", "name": "action_date", "enableAjaxValidation": true }]', 'MainActions_action_date') . ' <div class="form-group"> ' . CHtml::submitButton('Редактировать действие', array('class' => 'btn')) . ' </div> <div class="function-delete"> <a class="delete" href="#">Удалить действие</a> </div> <div class="function-delete-confirm"> <ul class="horizontal"> <li class="big">Вы уверены что хотите удалить?</li> <li><a class="delete" href="#">Отмена</a></li> <li>' . $delete_button . '</li> </ul> </div> </div> </div> '; $this->endWidget(); }
<div class="client_info"> Информация о действии: </div> <div class="form-group"> <?php echo $form->textField($actions, 'text', array('class' => 'form-control editable', 'placeholder' => 'Тема действия')); ?> <?php echo $form->error($actions, 'text', array('class' => 'form-error')); ?> <span class="star">*</span> </div> <div class="form-group"> <select name="Actions[action_priority_id]" class="styled status square" data-placeholder="Все приоритеты"> <?php $prior_array = ActionsPriority::model()->findAll(); foreach ($prior_array as $prior) { echo '<option ' . ($prior->id == 1 ? ' selected="selected"' : '') . ' class="' . $prior->color . '" value="' . $prior->id . '">' . 'Приоритет: ' . $prior->name . '</option>'; } ?> </select> <span class="star">*</span> </div> <div class="form-group"> <select name="Actions[action_status_id]" class="styled status circle" data-placeholder="Состояние действия"> <?php $statuses_array = ActionsStatuses::model()->findAll(); foreach ($statuses_array as $status) { echo '<option ' . ($actions->action_priority_id == $status->id ? ' selected="selected"' : '') . ' value="' . $status->id . '">' . 'Состояние: ' . $status->name . '</option>'; } ?>