Пример #1
0
    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();
    }
Пример #2
0
            </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>';
}
?>
                </select>
                <span class="star">*</span>
            </div>
            <div class="form-group form-control editable">
                <?php 
echo $this->widget('ext.CJuiDateTimePicker.CJuiDateTimePicker', array('name' => 'Actions[action_date]', 'model' => $actions, 'attribute' => 'action_date', 'language' => 'ru', '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);
?>
                <?php 
echo $form->error($actions, 'action_date', array('class' => 'form-error'));
?>
                <span class="star">*</span>