public function saveToDb()
 {
     $content = $this->getDocData();
     $hash = md5($content);
     $version = $this->getVersion();
     $model = JsonHistory::find()->where(['hash' => $hash, 'version' => $version])->one();
     if (!$model) {
         $model = new JsonHistory();
         $model->content = $content;
         $model->hash = $hash;
         $model->version = $version;
         $model->created_at = time();
         $model->size = strlen($content);
         if (!$model->save()) {
             var_dump($model->errors);
             die(__METHOD__);
         }
     }
 }
Exemple #2
0
 public static function getCrossVersionDiffData()
 {
     $result = [];
     //берем две последние версии
     $versions = self::getLast2Versions();
     if (count($versions) == 2) {
         $modelPrev = JsonHistory::find()->where(['version' => $versions[0]])->orderBy('id DESC')->one();
         $modelCurrent = JsonHistory::find()->where(['version' => $versions[1]])->orderBy('id DESC')->one();
         if ($modelPrev && $modelCurrent) {
             $result = JsonSchemaDiff::diff(json_decode($modelPrev->content, 1), json_decode($modelCurrent->content, 1));
         }
     }
     return $result;
 }
Exemple #3
0
 public function run()
 {
     $models = JsonHistory::find()->where(['version' => \Yii::$app->docParser->getVersion()])->orderBy('created_at DESC')->all();
     $crossVersionData = JsonHistory::getCrossVersionDiffData();
     return $this->render('diffWidget/main', ['crossVersionData' => $crossVersionData, 'models' => $models]);
 }
Exemple #4
0
<?php

/**
 * @var $this \yii\web\View
 */
$versions = \app\models\JsonHistory::getLast2Versions();
?>

<div role="tabpanel" style="margin-top: 20px">

    <!-- Nav tabs -->
    <ul class="nav nav-tabs" role="tablist">
        <li role="presentation" class="active">
            <a href="#current" aria-controls="history" role="tab" data-toggle="tab">
                Changes in current version &mdash; <strong><?php 
echo Yii::$app->docParser->getVersion();
?>
</strong>
            </a>
        </li>
        <?php 
if (count($versions) == 2) {
    ?>
            <li role="presentation">
                <a href="#prev" aria-controls="home" role="tab" data-toggle="tab">
                    The difference between the versions &mdash; <?php 
    echo $versions[0];
    ?>
 and <?php 
    echo $versions[1];
    ?>