All pastes #2846678 Raw Edit

Mine

public unlisted text v1 · immutable
#2846678 ·published 2014-09-26 03:36 UTC
rendered paste body
----------------------
Listing Page
----------------------
$sort = new EDTSort('Jobs', $columns);
        $sort->defaultOrder = 'job_created_date DESC';
        /* $sort->attributes = array(
          'client_name'=>'client_name',
          'created_on'=>'created_on',
          'name' => array(
          'asc'=>'EntityType.name',
          'desc'=>'EntityType.name DESC',
          ),
          ); */
        $pagination = new EDTPagination();
        if (Yii::app()->getRequest()->getIsAjaxRequest()) {
            //echo "<pre>";            print_r($criteria);
        }

        $dataProvider = new CActiveDataProvider('Jobs', array(
            'criteria' => $criteria,
            'pagination' => $pagination,
            'sort' => $sort,
        ));

        $columns = array(
            array('name' => 'jobName', 'header' => 'Job Name', 'value' => '$data["jobName"]'),
            array(
                'class' => 'ext.EDataTables.EButtonColumn',
                'template' => '{update} ',
                'header' => Yii::t('app', 'Documents'),
                'buttons' => array(
                    'view' => array(
                        'label' => 'View',
                        'imageUrl' => false,
                        'options' => array(
                            'class' => 'some-css-class-drawing-pretty-icons',
                        ),
                    ),
                    'update' => array(
                        'url'   => 'Yii::app()->createUrl("documents/viewdocs/", array("id"=>$data->job_id))',
                        'label' => '<div class="btn-group margin-right-5px"><span data-original-title="Upload" data-placement="top">View Documents</span></div>',
                        'htmlClass' => '',
                        'icon' => '',
                        'imageUrl' => false,
                        'click' => 'function(e) {
                                      $("#viewDocuments").remove();
                                      e.preventDefault();
                                      var $this = $(this)
                                        , $remote = $this.data("remote") || $this.attr("href")
                                        , $modal = $("<div class=\'modal\' id=\'viewDocuments\'><div class=\'modal-body\'><div class=\'loading-shadow\'><div class=\'loading\'><img src=\'' . Yii::app()->theme->baseUrl. '/images/sr-loading.gif\'></div></div></div></div>");
                                      $("body").append($modal);
                                      $modal.modal({backdrop: "static", keyboard: false});
                                      $modal.load($remote);
                                      $modal.on("hidden.bs.modal", function () {
                                        $("#viewDocuments").remove();
                                      });
                                    }',
                        'options' => array(
                            'class' => 'viewdocs',
                            'title' => '',
                            'data-toggle'=>"viewDocuments",
                            'data-target'=>"#uploadDocs"
                        ),
                    ),
                ),
            ),

            array(
                'class' => 'ext.EDataTables.EButtonColumn',
                'template' => '{update} ',
                'header' => Yii::t('app', 'Upload Document'),
                'buttons' => array(
                    'view' => array(
                        'label' => 'View',
                        'imageUrl' => false,
                        'options' => array(
                            'class' => 'some-css-class-drawing-pretty-icons',
                        ),
                    ),
                    'update' => array(
                        'url'   => 'Yii::app()->createUrl("documents/ajaxupload/", array("id"=>$data->job_id))',
                        'label' => '<div class="btn-group margin-right-5px"><button data-original-title="Upload" data-placement="top" class="btn sr-btn-success pull-right margin-top-zero margin-bottom-zero upload" type="button">
<d class="icon-sr-icons-upload"></d></button></div>',
                        'htmlClass' => '',
                        'icon' => '',
                        'imageUrl' => false,
                        'click' => 'function(e) {
                                      $("#ajaxModal").remove();
                                      e.preventDefault();
                                      var $this = $(this)
                                        , $remote = $this.data("remote") || $this.attr("href")
                                        , $modal = $("<div class=\'modal\' id=\'ajaxModal\'><div class=\'modal-body\'><div class=\'loading-shadow\'><div class=\'loading\'><img src=\'' . Yii::app()->theme->baseUrl. '/images/sr-loading.gif\'></div></div></div></div>");
                                      $("body").append($modal);
                                      $modal.modal({backdrop: "static", keyboard: false});
                                      $modal.load($remote);
                                    }',
                        'options' => array(
                            'class' => 'a',
                            'title' => '',
                            'data-toggle'=>"ajaxModal",
                            'data-target'=>"#uploadDocs"
                        ),
                    ),
                ),
            ),
        );

        $widget = $this->createWidget('ext.EDataTables.EDataTables', array(
            'id' => 'jobs-grid-docs',
            'dataProvider' => $dataProvider,            
            'ajaxUrl' => Yii::app()->createUrl('jobs/document'),
            'columns' => $columns,
            'buttons' => array('refresh'=>NULL),
            'htmlOptions'=>array('class'=>''),
                )
        );
        //echo "<pre>";           print_r($widget);exit;

        if (!Yii::app()->getRequest()->getIsAjaxRequest()) {
            $this->render('document', array('widget' => $widget,));
            return;
        } else {
            //echo "<pre>";print_r($widget);
            echo json_encode($widget->getFormattedData(intval($_REQUEST['sEcho'])));
            Yii::app()->end();
        }

------------------------------------------------------
Popup Grid is below
------------------------------------------------------
if (Yii::app()->getRequest()->getIsAjaxRequest()) {
            $this->layout = '//jobtracker/layouts/ajax';
        }
        $model = new Jobs();
        $jobData = $model->findAll('job_id=' . $id);
//        echo "<pre>";
//        print_r($jobData);
//        exit;
        $jobData[0]->jobName = $model->generateJobName($jobData[0]);

        $model = new Documents();
        $columns = array(
            'id',
            'document_title',
            'upload_date',
        );

        $criteria = new CDbCriteria;
        $criteria->with = array('Jobs');
        $criteria->together = true;
        $criteria->compare('t.job_id', $id, false, 'AND');

        if (isset($_REQUEST['sSearch']) && isset($_REQUEST['sSearch']{0})) {
            $criteria1 = new CDbCriteria;
            $criteria1->compare('t.document_title', $_REQUEST['sSearch'], true, 'OR');
            $criteria1->compare('upload_date', date('Y-m-d', strtotime(str_replace("/", "-", $_REQUEST['sSearch']))), true, 'OR');
            $criteria->mergeWith($criteria1);
        }

        $sort = new EDTSort('Documents', $columns);
        $sort->defaultOrder = 'upload_date DESC';
        $pagination = new EDTPagination();

        $dataProvider = new CActiveDataProvider('Documents', array(
            'criteria' => $criteria,
            'pagination' => $pagination,
            'sort' => $sort,
        ));

        $columns = array(
            array('name' => 'doc', 'header' => 'Documents', 'value' => '$data->document_title'),
            array('name' => 'upload_date', 'header' => 'Upload Date', 'value' => 'date("d/m/Y",strtotime($data->upload_date))'),
            array(
                'class' => 'ext.EDataTables.EButtonColumn',
                'template' => '{update} ',
                'header' => Yii::t('app', 'Download'),
                'buttons' => array(
                    'view' => array(
                        'label' => 'View',
                        'imageUrl' => false,
                        'options' => array(
                            'class' => 'some-css-class-drawing-pretty-icons',
                        ),
                    ),
                    'update' => array(
                        'url' => 'Yii::app()->createUrl("documents/download/", array("fileName"=>$data->file_path,"jobtype"=>strtolower($data->Jobs->job_genre)))',
                        'label' => '<div class="btn-group margin-right-5px"><button data-original-title="Download" data-placement="top" class="btn sr-btn-success pull-right margin-top-zero margin-bottom-zero upload" type="button"><d class="icon-sr-icons-download"></d></button></div>',
                        'imageUrl' => false,
                        'options' => array(
                            'class' => '',
                        ),
                    ),
                ),
            ),
        );

        $widget = $this->createWidget('ext.EDataTables.EDataTables', array(
            'id' => 'document-grid',
            'dataProvider' => $dataProvider,
            'ajaxUrl' => Yii::app()->createUrl('documents/viewdocs',array('id'=>$id)),
            'columns' => $columns,
            'buttons' => array('refresh' => NULL),
            'htmlOptions' => array('class' => ''),
                )
        );

        if (!isset($_REQUEST['sEcho'])) {
            $this->render('viewdocs', array(
                'id' => $id,
                'model' => $jobData[0],
                'widget' => $widget
            ));
            return;
        } else {
            //echo "<pre>";print_r($widget);
            echo json_encode($widget->getFormattedData(intval($_REQUEST['sEcho'])));
            Yii::app()->end();
        }