_portfolio_form.php 13.4 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 input-blocks admin-avatar admin-blog-min-img admin-portfolio-foto" style="width: 100%">
        <div style="font-size: 13px;color: inherit;font-weight: 700;" class="required"><label>Фото главное</label></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'    => 'Загрузить фото',
            ])
         ->label(false)
         ?>
    </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">
        <div class="style add_participant-wr">Добавить участника(ов) проекта</div>
        <div class="style" style="margin-top: 10px"><?= Html::a('Добавить', false, [ 'class' => 'add_project_user_link add-participant' ]) ?></div>
        <div class="hidden_sentence style" style="display: none">Отправленные предложения:</div>
        <div class="add_project_user_list style">
            <?php
            foreach($portfolioUsers as $portfolioUser) {
                echo $this->render('@frontend/views/ajax/project_user', [
                    'model' => $portfolioUser,
                    'user'  => $portfolioUser->user,
                ]);
            }
            ?>
        </div>
        <?php
        if(!empty( $portfolioUsersConfirmed )) {
            ?>
            <div class="added_project_user_header _hidden_sentence style">Подтвержденные предложения:</div>
            <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(data.length && !($('#cover_old_img').val().length) && !($('#portfolio-cover').val().length))
                            {
                                $('#portfolio-cover').val(data);
                                var newimg = document.createElement("img");
                                newimg.setAttribute("src", data);
                                $('#cover_img_block .admin-avatar-pattern').append(newimg);
                            }
                        }
                    );
                }
            );
                var blocks = $('.add_project_user_list .project_user_wrapper')
                if(blocks.length>0) {
                    $('.hidden_sentence').css({display:'block'})
                }
            $('body').on('click', '.project_user_remove', function () {
                blocks = $('.add_project_user_list .project_user_wrapper')
                    if((blocks.length-1)<1) {
                        $('.hidden_sentence').css({display:'none'})
                    }
            })

            $('.input-blocks.home-input.time_fix input').keypress(function (e) {
                if (!(e.which==8 || e.which==46 || (e.which>47 && e.which<58))) return false;
            })
        }
    );
</script>