×

Welcome to TagMyCode

Please login or create account to add a snippet.
0
0
 
0
Language: HTML
Posted by: Сергей Шевченко
Added: Aug 13, 2017 4:23 PM
Views: 1
Tags: mustache
  1. <script id="assessmentViewTpl" type="text/template">
  2.     <table id="assessmentViewTable" class="table">
  3.         <thead>
  4.             <tr>
  5.                 <th width="25%">Корпусная деталь</th>
  6.                 <th width="20%" colspan="1">Оценка</th>
  7.                 <th width="50%">Описание</th>
  8.                 <th width="5%">&nbsp;</th>
  9.             </tr>
  10.         </thead>
  11.         <tfoot>
  12.             <tr>
  13.                 <th width="25%">Оценка внешнего вида</th>
  14.                 <th width="10%">
  15.                     <label><input type="number" id="average-assessment" name="average-assessment" step="0.1"></label>
  16.                 </th>
  17.                 <th colspan="1" width="65%" class="text-right">
  18.                     <label><input type="button" id="add-assessment" name="add-assessment" value="Добавить"></label>
  19.                 </th>
  20.             </tr>
  21.         </tfoot>
  22.         <tbody>
  23.             <tr class="assessment-row" data-id="[[ AssessmentId ]]">
  24.                 <td width="25%" data-name="AssessmentDetailName">[[ AssessmentDetailName ]]</td>
  25.                 <td width="20%" colspan="1" data-name="AssessmentAssessment">[[ AssessmentCorrecting ]] [[ AssessmentActual ]]</td>
  26.                 <td width="50%" data-name="AssessmentDescription">[[ AssessmentDescription ]]</td>
  27.                 <td width="5%" data-name="AssessmentDelete">[[ AssessmentDelete ]]</td>
  28.             </tr>
  29.         </tbody>
  30.     </table>
  31.  
  32. <script type="text/javascript">
  33.     $.ajax({
  34.         url: '<?= $this->url([
  35.             'controller' => 'assessment',
  36.             'action' => 'get-by-specification-id',
  37.             'specification-id' => $this->specificationId
  38.         ], 'storage', true); ?>',
  39.         type: 'post',
  40.         dataType: 'json',
  41.         success: function (assessments) {
  42.             assessments = $.parseJSON(assessments);
  43.             console.log(assessments);
  44.             initAssessmentView(assessments);
  45.         }
  46.     });
  47.  
  48.     /**
  49.      * Инициализируем оценку внешнего вида
  50.      * @param {JSON} assessments
  51.      */
  52.     function initAssessmentView(assessments) {
  53.         var param = {},
  54.             /**
  55.              * Подгружаем блок "Описание"
  56.              * @return {jQuery} $dl
  57.              */
  58.             $correctionPriceBlock = $('#correctionprice-element'),
  59.  
  60.             /**
  61.              * Подгружаем тело блока "Описание"
  62.              * @return {jQuery} $dl
  63.              */
  64.             $dl = $correctionPriceBlock.find('dl'),
  65.  
  66.             /**
  67.              * Подгружаем шаблон с таблицей оценки внешнего вида
  68.              * @return {string} tpl
  69.              */
  70.             tpl = $('#assessmentViewTpl').html(),
  71.  
  72.             /**
  73.              * Подгружаем body оценки внешнего вида
  74.              * @return {jQuery} $assessmentTBody
  75.              */
  76.             $assessmentTBody = $(tpl).find('tbody'),
  77.  
  78.             /**
  79.              * Подгружаем footer оценки внешнего вида
  80.              * @return {jQuery} $assessmentTFoot
  81.              */
  82.             $assessmentTFoot = $(tpl).find('tfoot'),
  83.  
  84.             /**
  85.              * Подгружаем шаблон строки оценки внешнего вида (для шаблонизатора)
  86.              * @return {jQuery} $assessmentRowTpl
  87.              */
  88.             $assessmentRowTpl = $assessmentTBody.find('tr'),
  89.  
  90.             /**
  91.              * Подгружаем поле для ввода среднего арифметического актуальных оценок
  92.              * @return {jQuery} $averageInput
  93.              */
  94.             $averageInput = $assessmentTFoot.find('input#average-assessment')
  95.         ;
  96.  
  97.         // Вырезаем шаблон строки оценки внешнего вида
  98.         $assessmentRowTpl.detach();
  99.  
  100.         console.log($assessmentRowTpl);
  101.         debugger;
  102.  
  103.         for (var i = 0; i <= assessments.length; i++) {
  104.            console.log(assessments[i]);
  105.        }
  106.  
  107.        param.Id = 1;
  108.        param.AssessmentDetailName = 'DetailName';
  109.        param.AssessmentCorrecting = 1.5;
  110.        param.AssessmentActual = '5+';
  111.        param.AssessmentDescription = 'AssessmentDescription AssessmentDescription AssessmentDescription';
  112.        param.AssessmentDelete = '[X]';
  113.  
  114.        Mustache.parse(tpl);
  115.        $assessmentTBody.append(Mustache.render($assessmentRowTpl.html(), param));
  116.        $dl.append(tpl);
  117.  
  118.        debugger;
  119.    }
  120.