151 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			151 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| use backend\modules\card\models\ResumeTemplate;
 | |
| use common\helpers\StatusHelper;
 | |
| use mihaildev\ckeditor\CKEditor;
 | |
| use mihaildev\elfinder\InputFile;
 | |
| use yii\helpers\Html;
 | |
| use yii\widgets\ActiveForm;
 | |
| 
 | |
| /* @var $this yii\web\View */
 | |
| /* @var $model backend\modules\card\models\ResumeTemplate */
 | |
| /* @var $form yii\widgets\ActiveForm */
 | |
| ?>
 | |
| 
 | |
| <div class="row">
 | |
|     <div class="col-md-8">
 | |
|         <div class="resume-template-form">
 | |
| 
 | |
|             <?php $form = ActiveForm::begin(); ?>
 | |
| 
 | |
|             <?= $form->field($model, 'title')->textInput(['maxlength' => true]) ?>
 | |
| 
 | |
|             <?= $form->field($model, 'status')->dropDownList(
 | |
|                 StatusHelper::statusList(),
 | |
|                 [
 | |
|                     'prompt' => 'Выберите'
 | |
|                 ]
 | |
|             ) ?>
 | |
| 
 | |
|             <?= $form->field($model, 'template_body')->widget(CKEditor::className(),[
 | |
|                 'editorOptions' => [
 | |
|                     'preset' => 'full',
 | |
|                     'inline' => false,
 | |
|                 ],
 | |
|             ]); ?>
 | |
| 
 | |
|             <?= $form->field($model, 'header_text')->textInput(['maxlength' => true]) ?>
 | |
| 
 | |
|             <div class="imgUpload form-group">
 | |
|                 <div class="media__upload_img">
 | |
|                     <img src="<?= $model->header_image; ?>" width="100px"/>
 | |
|                 </div>
 | |
|                 <?php echo InputFile::widget([
 | |
|                         'language' => 'ru',
 | |
|                         'controller' => 'elfinder',
 | |
|                         // вставляем название контроллера, по умолчанию равен elfinder
 | |
|                         'filter' => 'image',
 | |
|                         // фильтр файлов, можно задать массив фильтров https://github.com/Studio-42/elFinder/wiki/Client-con..
 | |
|                         'name' => 'ResumeTemplate[header_image]',
 | |
|                         'id' => 'resumeTemplateHeader_img',
 | |
|                         'template' => '<label>Картинка в верхнем контикуле</label><div class="input-group">{input}<span class="span-btn">{button}</span></div>',
 | |
|                         'options' => ['class' => 'form-control itemImg', 'maxlength' => '255'],
 | |
|                         'buttonOptions' => ['class' => 'btn btn-primary'],
 | |
|                         'value' => $model->header_image,
 | |
|                         'buttonName' => 'Выбрать изображение',
 | |
|                     ]);
 | |
|                 ?>
 | |
|             </div>
 | |
| 
 | |
|             <?= $form->field($model, 'footer_text')->textInput(['maxlength' => true]) ?>
 | |
| 
 | |
|             <div class="imgUpload form-group">
 | |
|                 <div class="media__upload_img">
 | |
|                     <img src="<?= $model->footer_image; ?>" width="100px"/>
 | |
|                 </div>
 | |
|                 <?php echo InputFile::widget([
 | |
|                     'language' => 'ru',
 | |
|                     'controller' => 'elfinder',
 | |
|                     // вставляем название контроллера, по умолчанию равен elfinder
 | |
|                     'filter' => 'image',
 | |
|                     // фильтр файлов, можно задать массив фильтров https://github.com/Studio-42/elFinder/wiki/Client-con..
 | |
|                     'name' => 'ResumeTemplate[footer_image]',
 | |
|                     'id' => 'resumeTemplateFooter_img',
 | |
|                     'template' => '<label>Картинка в верхнем контикуле</label><div class="input-group">{input}<span class="span-btn">{button}</span></div>',
 | |
|                     'options' => ['class' => 'form-control itemImg', 'maxlength' => '255'],
 | |
|                     'buttonOptions' => ['class' => 'btn btn-primary'],
 | |
|                     'value' => $model->footer_image,
 | |
|                     'buttonName' => 'Выбрать изображение',
 | |
|                 ]);
 | |
|                 ?>
 | |
|             </div>
 | |
| 
 | |
|             <div class="form-group">
 | |
|                 <?= Html::submitButton('Сохранить', ['class' => 'btn btn-success']) ?>
 | |
|             </div>
 | |
| 
 | |
|             <?php ActiveForm::end(); ?>
 | |
| 
 | |
|         </div>
 | |
|     </div>
 | |
|     <div class="col-md-4">
 | |
|         <div class="table-responsive">
 | |
|             <table class="table" id="fieldNameTable">
 | |
|                 <thead>
 | |
|                     <tr>
 | |
|                         <th>Поле</th>
 | |
|                         <th>Сигнатура поля</th>
 | |
|                     </tr>
 | |
|                 </thead>
 | |
|                 <tbody>
 | |
|                 <?php
 | |
|                     foreach (ResumeTemplate::$fieldNamesAndSignature as $fieldNames => $signature) {
 | |
|                         echo "
 | |
|                                 <tr class='info'>
 | |
|                                     <td class='table-cell'>$fieldNames</td>
 | |
|                                     <td class='table-cell'>$signature</td>
 | |
|                                 </tr>
 | |
|                              ";
 | |
|                     }
 | |
|                 ?>
 | |
|                 </tbody>
 | |
|             </table>
 | |
|         </div>
 | |
|         <div>
 | |
|             <p>
 | |
|                 Нажмите на ячейку чтобы скопировать содержимое
 | |
|             </p>
 | |
|         </div>
 | |
|     </div>
 | |
| </div>
 | |
| 
 | |
| <script>
 | |
|     const popup = document.createElement('h4')
 | |
|     popup.textContent = 'Скопировано'
 | |
|     popup.style.cssText = `
 | |
|       background: #a6caf0;
 | |
|       position: absolute;
 | |
|       right: 0;
 | |
|       top: 0;
 | |
|       `
 | |
|     document.querySelectorAll('.table-cell').forEach(function (elm) {
 | |
|         elm.style.position = 'relative'
 | |
|         elm.addEventListener('click', function (e) {
 | |
|             e.target.style.backgroundColor = '#76d7c4'
 | |
|             var copyText = e.target.textContent
 | |
|             const el = document.createElement('textarea')
 | |
|             el.value = copyText
 | |
|             document.body.appendChild(el)
 | |
|             el.select()
 | |
|             document.execCommand('copy')
 | |
|             document.body.removeChild(el)
 | |
|             elm.appendChild(popup)
 | |
|             setTimeout(() => {
 | |
|                 elm.removeChild(popup)
 | |
|             }, 1000)
 | |
|         })
 | |
|     })
 | |
| </script>
 | |
| 
 | |
| 
 | 
