[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: IndexResponse.php
<?php /** -------------------------------------------------------------------------------- * This classes renders the response for the [index] process for the timesheets * controller * @package Grow CRM * @author NextLoop *----------------------------------------------------------------------------------*/ namespace App\Http\Responses\Timesheets; use Illuminate\Contracts\Support\Responsable; class IndexResponse implements Responsable { private $payload; public function __construct($payload = array()) { $this->payload = $payload; } /** * render the view for timesheets * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function toResponse($request) { //set all data to arrays foreach ($this->payload as $key => $value) { $$key = $value; } //was this call made from an embedded page/ajax or directly on temp page if (request('source') == 'ext' || request('action') == 'search' || request()->ajax()) { //template and dom - for additional ajax loading switch (request('action')) { //typically from the loadmore button case 'load': $template = 'pages/timesheets/components/table/ajax'; $dom_container = '#timesheets-td-container'; $dom_action = 'append'; break; //from the sorting links case 'sort': $template = 'pages/timesheets/components/table/ajax'; $dom_container = '#timesheets-td-container'; $dom_action = 'replace'; break; //from search box or filter panel case 'search': $template = 'pages/timesheets/components/table/table'; $dom_container = '#timesheets-table-wrapper'; $dom_action = 'replace'; break; //template and dom - for ajax initial loading default: $template = 'pages/timesheets/tabswrapper'; $dom_container = '#embed-content-container'; $dom_action = 'replace'; break; } //load more button - change the page number and determine buttons visibility if ($timesheets->currentPage() < $timesheets->lastPage()) { $url = loadMoreButtonUrl($timesheets->currentPage() + 1, request('source')); $jsondata['dom_attributes'][] = array( 'selector' => '#load-more-button', 'attr' => 'data-url', 'value' => $url); //load more - visible $jsondata['dom_visibility'][] = array('selector' => '.loadmore-button-container', 'action' => 'show'); //load more: (intial load - sanity) $page['visibility_show_load_more'] = true; $page['url'] = $url; } else { $jsondata['dom_visibility'][] = array('selector' => '.loadmore-button-container', 'action' => 'hide'); } //flip sorting url for this particular link - only is we clicked sort menu links if (request('action') == 'sort') { $sort_url = flipSortingUrl(request()->fullUrl(), request('sortorder')); $element_id = '#sort_' . request('orderby'); $jsondata['dom_attributes'][] = array( 'selector' => $element_id, 'attr' => 'data-url', 'value' => $sort_url); } //render the view and save to json $html = view($template, compact('page', 'timesheets', 'stats'))->render(); $jsondata['dom_html'][] = array( 'selector' => $dom_container, 'action' => $dom_action, 'value' => $html); //move the actions buttons if (request('source') == 'ext' && request('action') == '') { $jsondata['dom_move_element'][] = array( 'element' => '#list-page-actions', 'newparent' => '.parent-page-actions', 'method' => 'replace', 'visibility' => 'show'); $jsondata['dom_visibility'][] = [ 'selector' => '#list-page-actions-container', 'action' => 'show', ]; } //for embedded - change breadcrumb title $jsondata['dom_html'][] = [ 'selector' => '.active-bread-crumb', 'action' => 'replace', 'value' => strtoupper(__('lang.timesheets')), ]; //for embedded request -change active tabs menu $jsondata['dom_classes'][] = [ 'selector' => '.tabs-menu-item', 'action' => 'remove', 'value' => 'active', ]; $jsondata['dom_classes'][] = [ 'selector' => '#tabs-menu-billing, #tabs-menu-expenses', 'action' => 'add', 'value' => 'active', ]; //remove kanban mode $jsondata['dom_classes'][] = [ 'selector' => '#main-body', 'action' => 'remove', 'value' => 'kanban', ]; //update export URL $query_params = urlQuery(); $export_url = url('/export/timesheets'); if (!empty($query_params)) { $export_url .= '?' . http_build_query($query_params); } $jsondata['dom_attributes'][] = [ 'selector' => '#export-timesheets-button', 'attr' => 'data-url', 'value' => $export_url, ]; //reload stats widget $html = view('misc/list-pages-stats-3', compact('stats'))->render(); $jsondata['dom_html'][] = array( 'selector' => '#list-pages-stats-widget', 'action' => 'replace-with', 'value' => $html); //do not reset filter panel if (request('action') == 'search') { $jsondata['skip_dom_reset'] = true; } //ajax response return response()->json($jsondata); } else { //standard view $page['url'] = loadMoreButtonUrl($timesheets->currentPage() + 1, request('source')); $page['loading_target'] = 'timesheets-td-container'; $page['visibility_show_load_more'] = ($timesheets->currentPage() < $timesheets->lastPage()) ? true : false; return view('pages/timesheets/wrapper', compact('page', 'timesheets', 'stats'))->render(); } } }
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: server1.winmanyltd.com
Server IP: 203.161.60.52
PHP Version: 8.3.27
Server Software: Apache
System: Linux server1.winmanyltd.com 4.18.0-553.22.1.el8_10.x86_64 #1 SMP Tue Sep 24 05:16:59 EDT 2024 x86_64
HDD Total: 117.98 GB
HDD Free: 59.69 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
Yes
pkexec:
Yes
git:
Yes
User Info
Username: eliosofonline
User ID (UID): 1002
Group ID (GID): 1003
Script Owner UID: 1002
Current Dir Owner: 1002