Пример #1
0
 /**
  *
  * @param string $name
  * @param array $fields
  * @param Zend_Paginator_Instance $paginator
  * @param array $extracolumn
  * @param Bool  $sorting
  *
  * @return string
  */
 public function generateGrid($dataArray, $paginator, $extracolumn = array(), $sorting = false, $formgrid = 'false', $addaction = '', $menuName = '', $addpermission, $sortStr = '', $actnArr)
 {
     $view_link = isset($dataArray['view_link']) ? $dataArray['view_link'] : "";
     $name = isset($dataArray['objectname']) ? $dataArray['objectname'] : "";
     $by = isset($dataArray['by']) ? $dataArray['by'] : "";
     $search_filters = isset($dataArray['search_filters']) ? $dataArray['search_filters'] : array();
     $fields = isset($dataArray['tableheader']) ? $dataArray['tableheader'] : array();
     $searchArray = isset($dataArray['searchArray']) ? $dataArray['searchArray'] : array();
     $jsGridFnname = isset($dataArray['jsGridFnName']) ? $dataArray['jsGridFnName'] : "";
     $perPage = isset($dataArray['perPage']) ? $dataArray['perPage'] : "20";
     $page = isset($dataArray['pageNo']) ? $dataArray['pageNo'] : "1";
     $call = isset($dataArray['call']) ? $dataArray['call'] : "";
     $dashboardCall = isset($dataArray['dashboardcall']) ? $dataArray['dashboardcall'] : "No";
     $sortname = isset($dataArray['sort']) ? $dataArray['sort'] : "";
     $grid_type = isset($dataArray['grid_type']) ? $dataArray['grid_type'] : "";
     $status_value = isset($dataArray['status_value']) ? $dataArray['status_value'] : "";
     $add_link = isset($dataArray['add_link']) ? $dataArray['add_link'] : "";
     $sd_req_model = new Default_Model_Servicerequests();
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         $loginUserId = $auth->getStorage()->read()->id;
     }
     $request = Zend_Controller_Front::getInstance();
     $params = $request->getRequest()->getParams();
     $dataclass = '';
     // Store Extra Columns
     $this->extra = $extracolumn;
     $sortIconStr = "";
     $sort = Zend_Controller_Front::getInstance()->getRequest()->getParam('sort', 'DESC');
     // checking and handling sorting.
     if ($sort == "") {
         $sortIconStr = "<span class='s-ico'>\r\n\t\t\t<span class='ui-icon-desc ui-state-disabled ui-icon ui-icon-triangle-1-n'></span>\r\n\t\t\t<span class='ui-icon-asc ui-state-disabled ui-icon ui-icon-triangle-1-s'></span></span>";
     } else {
         if ($sort == 'ASC') {
             $sort = 'DESC';
             //For Sort Icons....
             $sortIconStr = "<span class='s-ico'>\r\n\t\t\t<span class='ui-icon-desc ui-icon ui-icon-triangle-1-n'></span>\r\n\t\t\t</span>";
         } else {
             $sort = 'ASC';
             //For Sort Icons....
             $sortIconStr = "<span class='s-ico'>\r\n\t\t\t<span class='ui-icon-asc  ui-icon ui-icon-triangle-1-s'></span></span>";
         }
     }
     if ($call != "ajaxcall") {
         $sortIconStr = "";
     }
     if ($addaction != '') {
         $action = $addaction;
     }
     $con = '';
     $output = "<div class='table-header'><span>" . $menuName . "</span>";
     if ($addaction != '') {
         $output .= "<div class='add-btn-div'>";
         if ($add_link != '') {
             $output .= "<input type='button' title = 'Raise a Request' onclick='window.location.href=\"" . $add_link . "\"' value='Raise a Request' class='sprite addrequest' />";
         } else {
             $output .= "<input type='button' title = 'Raise a Request' onclick='window.location.href=\"" . DOMAIN . $name . '/' . $action . "\"' value='Raise a Request' class='sprite addrequest' />";
         }
         $output .= "</div>";
     }
     $output .= "</div>";
     if ($addpermission == 'false') {
         $output = "<div class='table-header'><span>" . $menuName . "</span></div>";
     }
     $output .= "<div id='" . $name . "' class='details_data_display_block newtablegrid'>";
     $output .= "<table class='grid' align='center'  width='100%' cellspacing='0' cellpadding='4' border='0'><thead><tr>";
     // this foreach loop display the column header  in �th� tag.
     $colinr = 0;
     if (!empty($fields)) {
         $tabindx = 0;
         if (empty($actnArr)) {
             unset($fields['action']);
         }
         foreach ($fields as $key => $value) {
             if (isset($value['align'])) {
                 $align = $value['align'] != '' ? 'align="' . $value['align'] . '" ' : '';
             }
             if (isset($value['sortkey'])) {
                 $sortkey = $value['sortkey'] != '' ? 'align="' . $value['sortkey'] . '" ' : '';
             }
             if (isset($value['style'])) {
                 $style = $value['style'] != '' ? 'style="' . $value['style'] . '" ' : '';
             }
             $value = is_array($value) && !isset($value['sortkey']) ? $value['value'] : $value;
             if ($value == 'Action') {
                 $width = 'width=90';
             } else {
                 $width = '';
             }
             $output .= "<th " . $width . ">";
             // Check if Sorting is set to True
             if ($sorting) {
                 // Disable Sorting if Key is in Extra Columns
                 if (@$this->extra[$key]['name'] != '' && !is_array($value)) {
                     if ($value == "Action") {
                         $output .= "<span class='action-text'>Action</span>";
                     } else {
                         $output .= $value;
                     }
                 } else {
                     if (is_array($value)) {
                         $key = $value['sortkey'];
                         $value = $value['value'];
                     }
                     $welcome = 'false';
                     $urlString = $_SERVER['REQUEST_URI'];
                     if (strpos($urlString, 'welcome') !== false) {
                         $welcome = 'true';
                     }
                     if ($formgrid == 'true') {
                         $output .= "<a href='javascript:void(0);' onclick=javascript:paginationndsorting('" . DOMAIN . $name . "/index/sort/" . $sort . "/by/" . $key . "/objname/" . $name . "/page/" . $page . "/per_page/" . $perPage . "/call/ajaxcall/{$con}/');>" . $value . "</a>";
                         //For Sort Icons....
                         if ($key == $sortStr) {
                             $output .= $sortIconStr;
                         }
                     } else {
                         if ($welcome == 'true') {
                             $output .= "<a href='javascript:void(0);' onclick=javascript:paginationndsorting('" . DOMAIN . $name . "/index/sort/" . $sort . "/by/" . $key . "/objname/" . $name . "/page/" . $page . "/per_page/" . $perPage . "/call/ajaxcall/{$con}/');>" . $value . "</a>";
                             //For Sort Icons....
                             if ($key == $sortStr) {
                                 $output .= $sortIconStr;
                             }
                         } else {
                             $output .= "<a href='javascript:void(0);' onclick=javascript:paginationndsorting('" . $this->view->url(array('sort' => $sort, 'by' => $key, 'objname' => $name, 'page' => $page, 'per_page' => $perPage)) . "');>" . $value . "</a>";
                             //For Sort Icons....
                             if ($key == $sortStr) {
                                 $output .= $sortIconStr;
                             }
                         }
                     }
                 }
             } else {
                 //For Sort Icons....
                 if ($key == $sortStr) {
                     $output .= $sortIconStr;
                 }
                 $output .= $value;
             }
             $output .= "</th>";
             $colinr++;
             $tabindx++;
         }
         //end of for each loop
         $output .= "</tr><tr id='search_tr_{$name}'>";
         $tabindx = 0;
         foreach ($fields as $key => $value) {
             if (isset($value['align'])) {
                 $align = @$value['align'] != '' ? 'align="' . $value['align'] . '" ' : '';
             }
             if (isset($value['sortkey'])) {
                 $sortkey = @$value['sortkey'] != '' ? 'align="' . $value['sortkey'] . '" ' : '';
             }
             if (isset($value['style'])) {
                 $style = @$value['style'] != '' ? 'style="' . $value['style'] . '" ' : '';
             }
             $value = is_array($value) && !isset($value['sortkey']) ? $value['value'] : $value;
             if ($value == 'Action') {
                 $width = 'width=90';
             } else {
                 $width = '';
             }
             $output .= "<th " . $width . ">";
             // Check if Sorting is set to True
             if ($sorting) {
                 // Disable Sorting if Key is in Extra Columns
                 if (@$this->extra[$key]['name'] != '' && !is_array($value)) {
                     if ($value == "Action") {
                         $output .= "<span class='action-text'></span>";
                     } else {
                         $output .= $value;
                     }
                 } else {
                     if (is_array($value)) {
                         $key = $value['sortkey'];
                         $value = $value['value'];
                     }
                     $welcome = 'false';
                     $urlString = $_SERVER['REQUEST_URI'];
                     if ($key != 'id') {
                         $sText = '';
                         if (!empty($searchArray)) {
                             $display = 'display: block;';
                         } else {
                             $display = 'display: none;';
                         }
                         if (is_array($searchArray)) {
                             if (array_key_exists($key, $searchArray)) {
                                 $sText = $searchArray[$key];
                             } else {
                                 $sText = '';
                             }
                         }
                         if (isset($search_filters[$key])) {
                             $search_function = 'getsearchdata("' . $name . '","",this.id,event';
                             $output .= sapp_Global::grid_data($search_filters, $key, $name, $display, $sText, $tabindx, $search_function);
                         } else {
                             $output .= "<input tabIndex={$tabindx} type='text' name='{$name}' id='{$key}' style='{$display}' class='searchtxtbox_{$name} table_inputs grid_search_inputs' value='{$sText}' onkeydown='getsearchdata(\"{$name}\",\"\",this.id,event,\"text\")' />";
                         }
                     }
                 }
             } else {
                 //For Sort Icons....
                 if ($key == $sortStr) {
                     $output .= $sortIconStr;
                 }
                 $output .= $value;
             }
             $output .= "</th>";
             $colinr++;
             $tabindx++;
         }
         //end of for each loop
     }
     if ($grid_type != '') {
         $output .= "<input type='hidden' id='service_grid' value='" . sapp_Global::_encrypt($grid_type) . "' />";
     }
     if ($status_value != '') {
         $output .= "<input type='hidden' id='service_grid_status' value='" . sapp_Global::_encrypt($status_value) . "' />";
     }
     $output .= "</tr></thead>";
     $output .= "<tbody>";
     // Start Looping Data
     $ii = 0;
     foreach ($paginator as $p) {
         $cell_color = $ii % 2 == 0 ? "row1" : "row2";
         $ii++;
         $bodyCount = 0;
         //$output.="<tr onclick='window.location=\"" . $this->_parseString($view_link, $p) . "\"' class='$cell_color cursor'>";
         $output .= "<tr class='{$cell_color} '>";
         // Reset Fields Array to Top
         if (!empty($fields)) {
             reset($fields);
             foreach ($fields as $k => $v) {
                 $tdclass = '';
                 // Look for additional attributes
                 $characterlimit = 40;
                 if (is_array($v)) {
                     $class = @$v['class'] != '' ? 'class="' . $v['class'] . '" ' : '';
                     $align = @$v['align'] != '' ? 'align="' . $v['align'] . '" ' : '';
                     $valign = @$v['valign'] != '' ? 'valign="' . $v['valign'] . '" ' : '';
                     if (isset($v['characterlimit'])) {
                         $characterlimit = $v['characterlimit'];
                     }
                     $output .= "<td {$tdclass}{$align}{$valign}>";
                 } else {
                     if ($k == 'description' && $menuName == 'Screening Types') {
                         $characterlimit = 80;
                     }
                     $output .= "<td {$tdclass}>";
                 }
                 // Check to see if this Field is in Extra Columns
                 if (isset($this->extra[$k]['value'])) {
                     $output .= $this->_parseExtra($k, $p);
                 } else {
                     $valToInclude = strlen(trim($p[$k])) > $characterlimit ? substr(trim($p[$k]), 0, $characterlimit) . ".." : trim($p[$k]);
                     if ($k == 'executor_id') {
                         if (!empty($valToInclude)) {
                             #$output .= "<span " . $dataclass . " title='" . htmlentities(trim($p[$k]), ENT_QUOTES, "UTF-8") . "' ><a onclick='displaydeptform(\'' . DOMAIN . $name . '/assignservicerequestpopup/id/{{id}}') name='{{id}}'>Allocate Executor</a></span>";
                             $isAdmin = $sd_req_model->IsAdminForServiceTicket($loginUserId, $p["ticket_number"]);
                             if ($isAdmin == "1") {
                                 $output .= "<span " . $dataclass . " title='" . htmlentities(trim($p[$k]), ENT_QUOTES, "UTF-8") . "' ><a href='" . DOMAIN . $name . '/assignservicerequestpopup/id/' . $p["id"] . "' target='_blank'>" . ($valToInclude == -1 ? "Allocate" : "Reallocate") . " Executor</a></span>";
                             }
                         }
                     } else {
                         if ($k == 'ticket_number') {
                             if (!empty($valToInclude)) {
                                 $temp_ticketnumber = "<span " . $dataclass . " title='" . htmlentities(trim($p[$k]), ENT_QUOTES, "UTF-8") . "' >" . htmlentities($valToInclude, ENT_QUOTES, "UTF-8") . "</span>";
                                 $output .= "<span " . $dataclass . " title='" . htmlentities(trim($p[$k]), ENT_QUOTES, "UTF-8") . "' ><a href='" . $this->_parseString($view_link, $p) . "'>" . $temp_ticketnumber . "</a></span>";
                             }
                         } else {
                             $p = (array) $p;
                             if (isset($p[$k])) {
                                 $output .= "<span " . $dataclass . " title='" . htmlentities(trim($p[$k]), ENT_QUOTES, "UTF-8") . "' >" . htmlentities($valToInclude, ENT_QUOTES, "UTF-8") . "</span>";
                             }
                             // Customize grid fields data - END
                         }
                     }
                 }
                 $dataclass = '';
                 $output .= "</td>";
                 $bodyCount++;
             }
         }
         // Close the Table Row
         $output .= "</tr>";
     }
     if ($ii == 0) {
         $output .= "<tr><td colspan='{$colinr}' class='no-data-td'><p class='no-data'>No data found</p></td></tr>";
     }
     $output .= "</tbody>";
     $output .= "</table>\r\n                    <script type='text/javascript' language='javascript'>\r\n                    \$(document).ready(function(){                                                                        \r\n                        if(\$('.searchtxtbox_" . $name . "').is(':visible'))\r\n                        {                                        \r\n                            \$('#search_tr_" . $name . "').show();\t\r\n                        }\r\n                        else                                         \r\n                            \$('#search_tr_" . $name . "').hide();\t\r\n                    });\r\n                </script>    \r\n                </div>";
     // Attach Pagination
     if ($paginator) {
         $params = array();
         $params['jsGridFnName'] = $jsGridFnname;
         $params['perPage'] = $perPage;
         $params['objname'] = $name;
         $params['searchArray'] = $searchArray;
         $params['formgrid'] = $formgrid;
         $params['con'] = $con;
         $params['dashboardcall'] = $dashboardCall;
         $params['sortname'] = $sortname;
         $params['by'] = $by;
         $output .= $this->view->paginationControl($paginator, 'Sliding', 'partials/pagination.phtml', $params);
     }
     $output .= "<script type='text/javascript' language='javascript'>\$('#{$name}').slimScrollHorizontal({\r\n\t\t\t\t\t\t\t\t\t  alwaysVisible: false,\r\n\t\t\t\t\t\t\t\t\t  start: 'left',\r\n\t\t\t\t\t\t\t\t\t  position: 'bottom',\r\n\t\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t\t}).css({ background: '#ccc', paddingBottom: '10px' }); </script>";
     $output .= "<script type='text/javascript' language='javascript'>\r\n\t\t\t\t\t\tvar id = \$('#columnId').val();\r\n\t\t\t\t\t\tvar coldata = \$('#'+id).val();\r\n\t\t\t\t\t\tvar focusID = \$('#columnId').val();\r\n                                                var fval = \$('#'+focusID).attr('data-focus');\r\n                                                if(fval == '' || fval == null)\r\n\t\t\t\t\t\t\$('#'+focusID).focus().val('').val(coldata);\r\n                                                \r\n\t\t\t\t\t</script>";
     return $output;
 }