_portfolio_form.php 12.8 KB
<?php
    /**
     * @var View            $this
     * @var Portfolio       $portfolio
     * @var integer[]       $specializations
     * @var string[]        $galleries
     * @var PortfolioUser[] $portfolioUsers
     * @var PortfolioUser[] $portfolioUsersConfirmed
     */
    use common\components\Request;
    use common\models\Option;
    use common\models\Portfolio;
    use common\models\PortfolioUser;
    use common\models\Specialization;
    use common\modules\file\widgets\ImageUploader;
    use common\modules\file\widgets\ImageUploaderInput;
    use mihaildev\ckeditor\CKEditor;
    use yii\helpers\ArrayHelper;
    use yii\helpers\Html;
    use yii\web\View;
    use yii\widgets\ActiveForm;
    use \common\widgets\MultiLangForm;
    use kartik\select2\Select2;
    use yii\web\JsExpression;

    $this->title = 'Портфолио';
    $this->params[ 'breadcrumbs' ][] = $this->title;
?>
<div class="login-left-column-title"><?= $this->title ?></div>

<?php
    $form = ActiveForm::begin();
?>
<div class="input-blocks-wrapper full-blocks data-block">
    <?= !empty( $portfolio->date_add ) ? "Дата создания: $portfolio->date_add" : "" ?>

</div>
<div class="style">

    <div class="input-blocks-wrapper">
        <div class="input-blocks">
            <?= $form->field($portfolio, 'name')
                     ->textInput([ 'class' => 'custom-input-2 fix-input-2' ]); ?>
        </div>
    </div>


    <div class="input-blocks-wrapper admin-menu-list">
        <div class="input-blocks" style="width: 100%; margin-bottom: 5px">
            <div class="required">
                <label>Специализации</label>
            </div>
        </div>

        <div class="style">
            <ul class="content-menu-first">
                <?php foreach($specializations as $specialization): ?>
                    <li data-img="<?= $specialization->image ?>">
                        <span data-menu-bg="<?= $specialization->background ?>" style="background: <?= $specialization->background ?>"></span><a href="#"><?= $specialization->specialization_name ?></a>
                        <ul>
                            <?php foreach($specialization->children as $child_first): ?>

                                <?php if($child_first instanceof Specialization): ?>
                                    <li>
                                        <a href="#"><?= $child_first->specialization_name ?></a>
                                        <ul>
                                            <?php foreach($child_first->children as $child_second): ?>
                                                <?php if($child_first instanceof Specialization): ?>
                                                    <li>
                                                        <a href="#" title="<?= $child_second->specialization_name ?>">
                                                            <?= $form->field($portfolio, "specializationInput[{$child_second->specialization_id}]", [
                                                                'template' => '{input}{label}{hint}{error}',
                                                            ])
                                                                     ->label('<span></span>' . $child_second->specialization_name)
                                                                     ->checkbox([
                                                                         'value'   => $child_second->specialization_id,
                                                                         'label'   => NULL,
                                                                         'uncheck' => NULL,
                                                                         'class'   => 'custom-check',
                                                                     ], false) ?>
                                                        </a>
                                                    </li>
                                                <?php endif; ?>
                                            <?php endforeach; ?>
                                        </ul>
                                    </li>
                                <?php endif; ?>
                            <?php endforeach; ?>

                        </ul>
                    </li>
                <?php endforeach; ?>
            </ul>
        </div>

        <div class="style admn-menu-err">
            <div class="help-block">Необходимо выбрать хотя бы одну «специализацию».</div>
        </div>
    </div>

    <div class="admin-specialization-selected style">
        <ul></ul>
    </div>

    <div class="input-blocks-wrapper admin-avatar admin-blog-min-img admin-portfolio-foto">
        <div style="font-size: 13px;color: inherit;font-weight: 700;">Фото главное</div>
        <?= $form->field($portfolio, 'cover')
                 ->widget(ImageUploaderInput::className(), [
                     'size'    => [
                         [
                             'width'  => 720,
                             'height' => 280,
                         ],
                         [
                             'width'  => 318,
                             'height' => 228,
                         ],
                         [
                             'width'  => 152,
                             'height' => 108,
                         ],
                         [
                             'width'  => 210,
                             'height' => 150,
                         ],
                     ],
                     'multi'   => false,
                     'gallery' => $portfolio->cover,
                     'name'    => 'Загрузить фото',
                 ]); ?>
    </div>

    <div class="input-blocks-wrapper">
        <div class="input-blocks admin-project-list admin-currency-second admin-portfolio-select">
            <?= $form->field($portfolio, 'gallery_id')
                     ->hint("<p>Для создания галереи перейдите по " . Html::a('ссылке', [ 'accounts/gallery-create' ], [ 'target' => '_BLANK' ]) . "</p>")
                     ->dropDownList($galleries, [ 'prompt' => 'Выберите галерею' ]) ?>
        </div>
    </div>

    <div class="input-blocks-wrapper">
        <div class="input-blocks">
            <?= $form->field($portfolio, 'city')
                     ->widget(Select2::classname(), [
                         'options'       => [ 'class' => 'Выбор города ...' ],
                         'pluginOptions' => [
                             'allowClear'         => true,
                             'minimumInputLength' => 3,
                             'ajax'               => [
                                 'url'      => \yii\helpers\Url::to([ 'site/city' ]),
                                 'dataType' => 'json',
                                 'data'     => new JsExpression('function(params) { return {q:params.term}; }'),
                             ],
                             'escapeMarkup'       => new JsExpression('function (markup) { return markup; }'),
                             'templateResult'     => new JsExpression('function(city) { return city.text; }'),
                             'templateSelection'  => new JsExpression('function (city) { return city.text; }'),
                         ],
                     ]); ?>

        </div>

        <div class="input-blocks street-input">
            <?= $form->field($portfolio, 'street', [ 'options' => [ 'class' => 'form-group company_info' ] ])
                     ->label('Улица')
                     ->textInput([ 'class' => 'custom-input-2' ]); ?>
        </div>

        <div class="input-blocks home-input">
            <?= $form->field($portfolio, 'house', [ 'options' => [ 'class' => 'form-group company_info' ] ])
                     ->label('Дом')
                     ->textInput([ 'class' => 'custom-input-2' ]); ?>
        </div>
    </div>

    <div class="input-blocks-wrapper full-blocks admin-editor-bl">
        <div class="input-blocks">
            <?= $form->field($portfolio, 'preview')
                     ->widget(CKEditor::className(), [ 'editorOptions' => [ 'preset' => 'basic' ] ]) ?>
        </div>
    </div>

    <div class="input-blocks-wrapper full-blocks admin-editor-bl">
        <div class="input-blocks">
            <?= $form->field($portfolio, 'description')
                     ->widget(CKEditor::className()) ?>
        </div>
    </div>

    <div class="clearfix"></div>

    <?php
        /* == Project add user block == */
    ?>
    <div class="add_project_user_wrapper" id="<?= $form->id ?>_project_user">
        <p>Добавить пользователя</p>
        <p><?= Html::a('Добавить', false, [ 'class' => 'add_project_user_link' ]) ?></p>
        <p>Отправлено предложение:</p>
        <div class="add_project_user_list">
            <?php
                foreach($portfolioUsers as $portfolioUser) {
                    echo $this->render('@frontend/views/ajax/project_user', [
                        'model' => $portfolioUser,
                        'user'  => $portfolioUser->user,
                    ]);
                }
            ?>
        </div>
        <?php
            if(!empty( $portfolioUsersConfirmed )) {
                ?>
                <p class="added_project_user_header">Подтвержденные:</p>
                <div class="added_project_user_list">
                    <?php
                        foreach($portfolioUsersConfirmed as $portfolioUserConfirmed) {
                            echo $this->render('@frontend/views/ajax/project_user', [
                                'model' => $portfolioUserConfirmed,
                                'user'  => $portfolioUserConfirmed->user,
                            ]);
                        }
                    ?>
                </div>
                <?php
            }
        ?>
    </div>
    <?php
        /* == End of project add user block == */
    ?>

</div>

<div class="input-blocks-wrapper">
    <div class="admin-save-btn skills-save-btn admin-add-remove-wr style">
        <?= Html::submitButton($portfolio->isNewRecord ? Yii::t('app', 'add') : 'Обновить', [ 'class' => 'input-blocks-wrapper button' ]) ?>
        <div class="admin-remove-note">
            <?php
                if(!$portfolio->isNewRecord) {
                    echo Html::a(Yii::t('app', 'delete'), [
                        'accounts/portfolio-delete',
                        'id' => $portfolio->portfolio_id,
                    ], [
                        'title'        => Yii::t('app', 'delete'),
                        'aria-label'   => Yii::t('app', 'delete'),
                        'data-confirm' => Yii::t('app', 'delete_confirm'),
                        'data-method'  => 'post',
                        'data-pjax'    => 0,
                    ]);
                }
            ?>
        </div>

        <div class="admin-back-note">
            <?= Html::a('вернуться', Request::getIsLocal(\Yii::$app->request->referrer) ? \Yii::$app->request->referrer : [ 'accounts/portfolio' ]) ?>
        </div>
    </div>
</div>
<?php
    $form->end();
?>
<script>
    $(document).ready(
        function()
        {
            bottomButton()
            function bottomButton()
            {
                if(($('.admin-portfolio-foto .admin-avatar-pattern img').length) > 0)
                {

                } else
                {
                    $('.admin-portfolio-foto .tst').css({marginBottom : 0})
                }
            }

            $('body').on(
                'click', '.admin-portfolio-foto #cover_remove_img', function()
                {
                    bottomButton()
                }
            )

            $('#portfolio-gallery_id').change(
                function()
                {
                    var gallery_id = $(this).val();
                    $.post(
                        "/accounts/gallery-cover", {gallery_id : gallery_id}, function(data)
                        {
                            if(!($('#cover_old_img').val().length))
                            {
                                $('#cover_picture_link').val(data);
                                var newimg = document.createElement("img");
                                newimg.setAttribute("src", data);

                                $('#cover_img_block .admin-avatar-pattern').append(newimg);
                            }
                        }
                    );
                }
            );
        }
    );
</script>