You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

190 lines
7.2 KiB

<?php
/*********************************************************************************
* The contents of this file are subject to the SugarCRM Public License Version 1.1.2
* ("License"); You may not use this file except in compliance with the
* License. You may obtain a copy of the License at http://www.sugarcrm.com/SPL
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
* the specific language governing rights and limitations under the License.
* The Original Code is: SugarCRM Open Source
* The Initial Developer of the Original Code is SugarCRM, Inc.
* Portions created by SugarCRM are Copyright (C) SugarCRM, Inc.;
* All Rights Reserved.
* Contributor(s): ______________________________________.
********************************************************************************/
/*********************************************************************************
* $Header: /advent/projects/wesat/vtiger_crm/sugarcrm/include/listview.php,v 1.11 2004/12/08 12:09:36 jack Exp $
* Description: Includes generic helper functions used throughout the application.
********************************************************************************/
require_once('include/logging.php');
function listView($display_title, $html_varName, $xtemplate , $seed, $orderby){
global $theme,$image_path, $currentModule, $list_max_entries_per_page, $where, $mod_strings, $app_strings;
$log = LoggerManager::getLogger('listView_'.$html_varName);
$list_form=new XTemplate ($xtemplate);
$list_form->assign("ID",$mod_strings);
$list_form->assign("MOD", $mod_strings);
$list_form->assign("APP", $app_strings);
$list_form->assign("THEME", $theme);
$list_form->assign("IMAGE_PATH", $image_path);
$list_form->assign("MODULE_NAME", $currentModule);
$current_offset = 0;
if(isset($_REQUEST['current_offset']))
$current_offset = $_REQUEST['current_offset'];
$response;
if($currentModule == "Leads")
{
$response = $seed->get_lead_list($orderby, $where, $current_offset);
}
elseif($currentModule == "MessageBoard")
{
if(isset($_REQUEST['query']))
{
$_REQUEST['query']= 'query';
}
$response = $seed->get_msgboard_data($orderby, $where, $current_offset);
}
else
{
$response = $seed->get_list($orderby, $where, $current_offset);
}
$aList = $response['list'];
$row_count = $response['row_count'];
$next_offset = $response['next_offset'];
$previous_offset = $response['previous_offset'];
$start_record = $current_offset + 1;
// Set the start row to 0 if there are no rows (adding one looks bad)
if($row_count == 0)
$start_record = 0;
$end_record = $start_record + $list_max_entries_per_page;
// back up the the last page.
if($end_record > $row_count+1)
{
$end_record = $row_count+1;
}
// Deterime the start location of the last page
if($row_count == 0)
$number_pages = 0;
else
$number_pages = floor(($row_count - 1) / $list_max_entries_per_page);
$last_page_offset = $number_pages * $list_max_entries_per_page;
// Create the base URL without the current offset.
// Check to see if the current offset is already there
// If not, add it to the end.
// All of the other values should use a regular expression search
$base_URL = $_SERVER['REQUEST_URI'] .'?'.$_SERVER['QUERY_STRING']."&current_offset=";
$start_URL = $base_URL."0";
$previous_URL = $base_URL.$previous_offset;
$next_URL = $base_URL.$next_offset;
$end_URL = $base_URL.$last_page_offset;
$sort_URL_base = $base_URL.$current_offset."&sort_order=";
$log->debug("Offsets: (start, previous, next, last)(0, $previous_offset, $next_offset, $last_page_offset)");
if(0 == $current_offset)
$start_link = $app_strings['LNK_LIST_START'];
else
$start_link = "<a href=\"$start_URL\" class=\"listFormHeaderLinks\">".$app_strings['LNK_LIST_START']."</a>";
if($previous_offset < 0)
$previous_link = $app_strings['LNK_LIST_PREVIOUS'];
else
$previous_link = "<a href=\"$previous_URL\" class=\"listFormHeaderLinks\">".$app_strings['LNK_LIST_PREVIOUS']."</a>";
if($next_offset >= $end_record)
$next_link = $app_strings['LNK_LIST_NEXT'];
else
$next_link = "<a href=\"$next_URL\" class=\"listFormHeaderLinks\">".$app_strings['LNK_LIST_NEXT']."</a>";
if($last_page_offset <= $current_offset)
$end_link = $app_strings['LNK_LIST_END'];
else
$end_link = "<a href=\"$end_URL\" class=\"listFormHeaderLinks\">".$app_strings['LNK_LIST_END']."</a>";
$log->info("Offset (next, current, prev)($next_offset, $current_offset, $previous_offset)");
$log->info("Start/end records ($start_record, $end_record)");
$list_form->assign("START_RECORD", $start_record);
$list_form->assign("END_RECORD", $end_record-1);
$list_form->assign("ROW_COUNT", $row_count);
if ($start_link !== "") $list_form->assign("START_LINK", "[ ".$start_link." ]");
if ($end_link !== "") $list_form->assign("END_LINK", "[ ".$end_link." ]");
if ($next_link !== "") $list_form->assign("NEXT_LINK", "[ ".$next_link." ]");
if ($previous_link !== "") $list_form->assign("PREVIOUS_LINK", "[ ".$previous_link." ]");
$list_form->parse("main.list_nav_row");
$oddRow = true;
if($currentModule == "MessageBoard")
{
foreach($aList as $aItem)
{
$fields = $aItem->get_list_view_data();
$list_form->assign($html_varName, $fields);
$list_form->assign("MASS_DELETE_CHANGESTATUS", "");
if($oddRow)
{
$list_form->assign("ROW_COLOR", 'oddListRow');
}
else
{
$list_form->assign("ROW_COLOR", 'evenListRow');
}
$oddRow = !$oddRow;
$list_form->parse("main.row");
}
}
else
{
foreach($aList as $aItem)
{
$fields = $aItem->get_list_view_data();
$list_form->assign($html_varName, $fields);
$list_form->assign("MASS_DELETE_CHANGESTATUS", "<input class='button' type='submit' value='Mass Delete' onclick=\"return massDelete()\"/><br><input class='button' type='submit' value='Change Status' onclick=\"return changeStatus()\"/>");
if($oddRow)
{
$list_form->assign("ROW_COLOR", 'oddListRow');
}
else
{
$list_form->assign("ROW_COLOR", 'evenListRow');
}
$oddRow = !$oddRow;
$aItem->list_view_pare_additional_sections($list_form);
$list_form->parse("main.row");
}
}
$list_form->parse("main");
if( $display_title == 'Lead List')
{
$button ="<table cellspacing='0' cellpadding='1' border='0'><form action='index.php?module=Leads&action=fetchfile' method=post target=''><tr><td>&nbsp;</td><td><input class='button' type='submit' name='Import' value='Import Leads'/></td></form></tr></table>";
//include 'modules/imports/ImportButton.html';
// $importTitle = "&nbsp;&nbsp; [ <A href='index.php?module=imports&action=import'><Blink><B>".$app_strings['LNK_IMPORT_LEADS']."</Blink></B></A> ]";
// $display_title = $display_title .$importTitle;
}
echo get_form_header( $display_title, $button, false);
$list_form->out("main");
echo get_form_footer();
echo "</td></tr>\n</table>\n";
}
?>