Пример #1
0
        die("Error seeking position {$list_pos} in the result");
    }
}
$headers = array();
$headers[0]['title'] = _Th('person_input_name');
$headers[0]['order'] = 'order_title';
$headers[0]['default'] = 'ASC';
show_list_start($headers);
// Process the output of the query
for ($i = 0; $i < $prefs['page_rows'] && ($row = lcm_fetch_array($result)); $i++) {
    // Show report title
    echo "<tr><td class='tbl_cont_" . ($i % 2 ? "dark" : "light") . "'>";
    if (true) {
        echo '<a href="rep_det.php?rep=' . $row['id_report'] . '" class="content_link">';
    }
    echo highlight_matches(clean_output(remove_number_prefix($row['title'])), $find_rep_string);
    if (true) {
        echo '</a>';
    }
    echo "</td>\n";
    echo "</tr>\n";
}
show_list_end($list_pos, $number_of_rows);
echo '<p><a href="edit_rep.php?rep=0" class="create_new_lnk">' . _T('rep_button_new') . "</a></p>\n";
//
// Custom reports (plugins)
//
$custom_reports = array();
$handle = opendir("inc/config/custom/reports");
while (($f = readdir($handle)) != '') {
    if (is_file("inc/config/custom/reports/" . $f)) {
Пример #2
0
function _Tkw($grp, $val, $args = '')
{
    global $system_kwg;
    $kwg = array();
    // If a 'contact' keyword (starts with +), remove the +
    if (substr($val, 0, 1) == '+') {
        $val = substr($val, 1);
    }
    if ($system_kwg[$grp]) {
        $kwg = $system_kwg[$grp]['keywords'];
    } else {
        $kwg = get_keywords_in_group_name($grp, false);
    }
    if (count($kwg)) {
        if ($kwg[$val]) {
            return _T(remove_number_prefix($kwg[$val]['title']), $args);
        } else {
            // This is a weird case where the upgrade didn't refresh the
            // group correctly, so we will try to fix the situation.
            // First, we check in the database to see if the keyword exists,
            // and if it does, then we refresh the keywords.
            // Note: that get_keywords_in_group_id() consults only the DB
            // [ML] Note: this should not happen from 0.6.3, but i'm fed up of
            // thinking that this time we fixed it, so the code stays..
            $tmp_group = get_kwg_from_name($grp);
            $kws1 = get_keywords_in_group_id($tmp_group['id_group'], false);
            foreach ($kws1 as $kw) {
                if ($kw['name'] == $val) {
                    include_lcm('inc_keywords_default');
                    $system_keyword_groups = get_default_keywords();
                    create_groups($system_keyword_groups);
                    write_metas();
                    // regenerate inc/data/inc_meta_cache.php
                    return _T(remove_number_prefix($kw['title']), $args);
                }
            }
            lcm_panic("*** The keyword does not exist. It is possible that a\n\t\t\t\tminor error occured while the last upgrade of the software. Please\n\t\t\t\task your administrator to do the following: Go to the 'Keywords'\n\t\t\t\tmenu, then click on the 'Maintenance' tab, then click on the\n\t\t\t\t'Validate' button. This will refresh the available keywords.");
        }
    } else {
        lcm_panic("*** The keyword group does not exist. It is possible that a\n\t\t\tminor error occured while the last upgrade of the software. Please\n\t\t\task your administrator to do the following: Go to the 'Keywords'\n\t\t\tmenu, then click on the 'Maintenance' tab, then click on the\n\t\t\t'Validate' button. This will refresh the available keywords.");
    }
}
Пример #3
0
?>
</td>
			<td><select <?php 
echo $dis;
?>
 name="type" size="1" class="sel_frm">
			<?php 
global $system_kwg;
if ($_SESSION['form_data']['type']) {
    $default_app = $_SESSION['form_data']['type'];
} else {
    $default_app = $system_kwg['appointments']['suggest'];
}
foreach ($system_kwg['appointments']['keywords'] as $kw) {
    $sel = $kw['name'] == $default_app ? ' selected="selected"' : '';
    echo "<option value='" . $kw['name'] . "'" . "{$sel}>" . _T(remove_number_prefix($kw['title'])) . "</option>\n";
}
?>
			</select></td></tr>

		<!-- Appointment description -->
		<tr><td valign="top"><?php 
echo _T('app_input_description');
?>
</td>
			<td><textarea <?php 
echo $dis;
?>
 name="description" rows="5" cols="40" class="frm_tarea"><?php 
echo clean_output(_session('description')) . "</textarea></td></tr>\n";
// Appointment participants - authors
Пример #4
0
 function printEdit()
 {
     echo '<input type="hidden" name="id_case" value="' . $this->getDataInt('id_case') . '" />' . "\n";
     echo '<table width="99%" border="0" align="center" cellpadding="5" cellspacing="0" class="tbl_usr_dtl">' . "\n";
     // TODO:
     // Ajouter auteur, etc.
     // Ajouter "approved by" si id_admin != 0
     show_context_start();
     show_context_case_title($this->getDataInt('id_case'), 'exps');
     show_context_end();
     if ($this->getDataInt('id_expense')) {
         echo "<tr><td>" . _T('expense_input_id') . "</td>\n";
         echo "<td>" . $this->getDataInt('id_expense') . '<input type="hidden" name="id_expense" value="' . $this->getDataInt('id_expense') . '" /></td></tr>' . "\n";
     }
     echo '<tr><td>' . f_err_star('description') . _T('expense_input_description') . '</td>' . "\n";
     echo '<td><textarea name="description" id="input_expense_description" class="frm_tarea" rows="3" cols="60">' . clean_output($this->getDataString('description')) . "</textarea>\n" . "</td>\n";
     echo "</tr>\n";
     echo '<tr><td>' . f_err_star('type') . _T('expense_input_type') . '</td>' . "\n";
     echo '<td>';
     echo '<select ' . $dis . ' name="type" size="1" class="sel_frm">' . "\n";
     $default_exp = $this->getDataString('type', get_suggest_in_group_name('_exptypes'));
     $exptype_kws = get_keywords_in_group_name('_exptypes');
     foreach ($exptype_kws as $kw) {
         $sel = isSelected($kw['name'] == $default_exp);
         if ($sel) {
             $kw_found = true;
         }
         echo '<option value="' . $kw['name'] . '"' . $sel . '>' . _T(remove_number_prefix($kw['title'])) . "</option>\n";
     }
     echo '</td></tr>' . "\n";
     echo '<tr><td>' . f_err_star('cost') . _T('expense_input_cost') . '</td>' . "\n";
     echo '<td>';
     echo '<input type="text" name="cost" value="' . $this->getDataFloat('cost') . '" class="search_form_txt" size="10" />';
     echo ' ' . htmlspecialchars(read_meta('currency'));
     echo "</td></tr>\n";
     // Show comment box only if new expense (not edit)
     if (!$this->getDataInt('id_expense')) {
         echo "<tr>\n";
         echo "<td>" . f_err_star('comment') . _Ti('expense_input_comment') . "</td>\n";
         echo '<td><textarea name="comment" id="input_expense_comment" class="frm_tarea" rows="3" cols="60">' . clean_output($this->getDataString('comment')) . "</textarea>\n" . "</td>\n";
         echo "</tr>\n";
     }
     echo "</table>\n";
 }
Пример #5
0
function show_new_contact($num_new, $type_person, $ctype = "__add__", $exceptions = array())
{
    $all_contact_types = get_kwg_all('contact');
    // There may be a config error, or admin removed all contact types
    if (!count($all_contact_types)) {
        return;
    }
    echo "<tr>\n";
    // Contact type (either specific or 'Add contact')
    echo '<td align="left" valign="top">' . f_err_star('new_contact_' . $num_new);
    if ($ctype == "__add__") {
        echo _Ti('generic_input_contact_other');
    } else {
        $c = get_kwg_from_name($ctype);
        echo f_err_star('contact_' . $c['name']);
        echo _Ti(remove_number_prefix($c['title']));
        echo $c['policy'] != 'optional' ? '<br/>(' . _T('keywords_input_policy_' . $c['policy']) . ')' : '';
    }
    echo '</td>';
    echo '<td align="left" valign="top">';
    // Avoids that the values in these fields get lost when there is an error after submitting the form
    $value = '';
    $type = '';
    if (isset($_SESSION['form_data']['new_contact_type_name'][$num_new])) {
        $type = $_SESSION['form_data']['new_contact_type_name'][$num_new];
    }
    if (isset($_SESSION['form_data']['new_contact_value'][$num_new])) {
        $value = $_SESSION['form_data']['new_contact_value'][$num_new];
    }
    if ($ctype == "__add__") {
        echo "<div>\n";
        echo '<select name="new_contact_type_name[]" id="new_contact_type_' . $num_new . '" class="sel_frm">' . "\n";
        echo "<option value=''>" . " ... " . "</option>\n";
        foreach ($all_contact_types as $contact) {
            if (!($contact['quantity'] == 'one' && isset($exceptions[$contact['name']]) && $type != $contact['name'])) {
                $sel = isSelected($type == $contact['name']);
                echo "<option value='" . $contact['name'] . "' {$sel}>" . _T($contact['title']) . "</option>\n";
            }
        }
        echo "</select>\n";
        echo "</div>\n";
        echo "<div>\n";
        echo '<input type="text" size="40" name="new_contact_value[]" id="new_contact_value_' . $num_new . '" ';
        echo ' value="' . $value . '" ';
        echo 'class="search_form_txt" />' . "\n";
        echo "</div>\n";
    } else {
        echo '<input name="new_contact_type_name[]" id="new_contact_type_name_' . $num_new . '" ' . 'type="hidden" value="' . $ctype . '" />' . "\n";
        echo '<input name="new_contact_value[]" id="new_contact_value_' . $num_new . '" type="text" ' . 'class="search_form_txt" size="35" value="' . $value . '"/>&nbsp;';
    }
    echo "</td>\n";
    echo "</tr>\n";
}
Пример #6
0
 function printEdit()
 {
     global $prefs;
     $admin = allowed($this->getDataInt('id_case'), 'a');
     // FIXME
     $edit = allowed($this->getDataInt('id_case'), 'e');
     // FIXME
     $write = allowed($this->getDataInt('id_case'), 'w');
     // FIXME (put in constructor)
     // FIXME: not sure whether this works as previously
     $dis = isDisabled(!($admin || $edit));
     echo '<table class="tbl_usr_dtl" width="99%">' . "\n";
     echo '<tr><td>';
     echo f_err_star('date_start') . _T('fu_input_date_start');
     echo "</td>\n";
     echo "<td>";
     $name = $admin || $edit ? 'start' : '';
     echo get_date_inputs($name, $this->data['date_start'], false);
     echo ' ' . _T('time_input_time_at') . ' ';
     echo get_time_inputs($name, $this->data['date_start']);
     echo "</td>\n";
     echo "</tr>\n";
     echo "<tr><td>";
     echo f_err_star('date_end') . ($prefs['time_intervals'] == 'absolute' ? _T('fu_input_date_end') : _T('fu_input_time_length'));
     echo "</td>\n";
     echo '<td>';
     if ($prefs['time_intervals'] == 'absolute') {
         // Buggy code, so isolated most important cases
         if ($this->data['id_followup'] == 0) {
             $name = 'end';
         } elseif ($edit) {
             $name = 'end';
         } else {
             // user can 'finish' entering data
             $name = $admin || $edit && $this->data['date_end'] == '0000-00-00 00:00:00' ? 'end' : '';
         }
         echo get_date_inputs($name, $this->data['date_end']);
         echo ' ';
         echo _T('time_input_time_at') . ' ';
         echo get_time_inputs($name, $this->data['date_end']);
     } else {
         $name = '';
         // Buggy code, so isolated most important cases
         if ($this->getDataInt('id_followup') == 0) {
             $name = 'delta';
         } elseif ($edit) {
             $name = 'delta';
         } else {
             // user can 'finish' entering data
             $name = $admin || $edit && $this->getDataString('date_end') == '0000-00-00 00:00:00' ? 'delta' : '';
         }
         if (empty($_SESSION['errors'])) {
             $interval = $this->getDataString('date_end') != '0000-00-00 00:00:00' ? strtotime($this->getDataString('date_end')) - strtotime($this->getDataString('date_start')) : 0;
             echo get_time_interval_inputs($name, $interval);
         } else {
             echo get_time_interval_inputs_from_array($name, $this->data);
         }
     }
     echo "</td>\n";
     echo "</tr>\n";
     // Show 'conclusion' options
     if ($this->show_conclusion) {
         $kws_conclusion = get_keywords_in_group_name('conclusion');
         $kws_result = get_keywords_in_group_name('_crimresults');
         echo "<tr>\n";
         echo "<td>" . _Ti('fu_input_conclusion') . "</td>\n";
         echo '<td>';
         // Result
         if (read_meta('case_result') == 'yes') {
             echo '<select ' . $dis . ' name="result" size="1" class="sel_frm">' . "\n";
             $default = '';
             if ($this->data['result']) {
                 $default = $this->data['result'];
             }
             foreach ($kws_result as $kw) {
                 $sel = isSelected($kw['name'] == $default);
                 echo '<option ' . $sel . ' value="' . $kw['name'] . '">' . _T(remove_number_prefix($kw['title'])) . "</option>\n";
             }
             echo "</select><br/>\n";
         }
         // Conclusion
         echo '<select ' . $dis . ' name="conclusion" size="1" class="sel_frm">' . "\n";
         $default = '';
         if ($this->data['conclusion']) {
             $default = $this->data['conclusion'];
         }
         foreach ($kws_conclusion as $kw) {
             $sel = isSelected($kw['name'] == $default);
             echo '<option ' . $sel . ' value="' . $kw['name'] . '">' . _T(remove_number_prefix($kw['title'])) . "</option>\n";
         }
         echo "</select>\n";
         echo "</td>\n";
         echo "</tr>\n";
         // If guilty, what sentence?
         $kws_sentence = get_keywords_in_group_name('sentence');
         echo "<tr>\n";
         echo "<td>" . _Ti('fu_input_sentence') . "</td>\n";
         echo '<td>';
         echo '<select ' . $dis . ' name="sentence" size="1" class="sel_frm">' . "\n";
         $default = '';
         if ($this->data['sentence']) {
             $default = $this->data['sentence'];
         }
         echo "<!-- " . $default . " -->\n";
         foreach ($kws_sentence as $kw) {
             $sel = $kw['name'] == $default ? ' selected="selected"' : '';
             echo '<option ' . $sel . ' value="' . $kw['name'] . '">' . _T(remove_number_prefix($kw['title']), array('currency' => read_meta('currency'))) . "</option>\n";
         }
         echo "</select>\n";
         // If sentence, for how much?
         echo '<input type="text" name="sentence_val" size="10" value="' . $this->data['sentence_val'] . '" />';
         echo "</td>\n";
         echo "</tr>\n";
     }
     if (_request('submit') == 'set_status' || is_status_change($this->getDataString('type'))) {
         // Change status
         echo "<tr>\n";
         echo "<td>" . _T('case_input_status') . "</td>\n";
         echo "<td>";
         echo '<input type="hidden" name="type" value="' . $this->getDataString('type') . '" />' . "\n";
         echo _T('kw_followups_' . $this->data['type'] . '_title');
         echo "</td>\n";
         echo "</tr>\n";
     } elseif (_request('submit') == 'set_stage' || $this->getDataString('type') == 'stage_change') {
         // Change stage
         echo "<tr>\n";
         echo "<td>" . _T('fu_input_next_stage') . "</td>\n";
         echo "<td>";
         echo '<input type="hidden" name="type" value="' . $this->getDataString('type') . '" />' . "\n";
         // This is to compensate an old bug, when 'case stage' was not stored in fu.description
         // and therefore editing a follow-up would not give correct information.
         // Bug was in CVS of 0.4.3 between 19-20 April 2005. Should not affect many people.
         if ($s = $this->getDataString('new_stage')) {
             echo '<input type="hidden" name="new_stage" value="' . $s . '" />' . "\n";
             echo _Tkw('stage', $s);
         } else {
             echo "New stage information not available";
         }
         echo "</td>\n";
         echo "</tr>\n";
         if ($s = $this->getDataString('new_stage')) {
             // Update stage keywords (if any)
             $stage = get_kw_from_name('stage', $s);
             $id_stage = $stage['id_keyword'];
             show_edit_keywords_form('stage', $this->data['id_case'], $id_stage);
         }
     } elseif ($this->getDataString('type') == 'assignment' || $this->getDataString('type') == 'unassignment') {
         // Do not allow assignment/un-assignment follow-ups to be changed
         echo "<tr>\n";
         echo "<td>" . _T('fu_input_next_stage') . "</td>\n";
         echo "<td>";
         echo '<input type="hidden" name="type" value="' . $this->getDataString('type') . '" />' . "\n";
         echo _Tkw('followups', $this->getDataString('type'));
         echo "</td>\n";
         echo "</tr>\n";
     } else {
         // The usual follow-up
         echo "<tr>\n";
         echo "<td>" . _T('fu_input_type') . "</td>\n";
         echo "<td>";
         echo '<select ' . $dis . ' name="type" size="1" class="sel_frm">' . "\n";
         $default_fu = get_suggest_in_group_name('followups');
         $futype_kws = get_keywords_in_group_name('followups');
         $kw_found = false;
         foreach ($futype_kws as $kw) {
             $sel = isSelected($kw['name'] == $default_fu);
             if ($sel) {
                 $kw_found = true;
             }
             echo '<option value="' . $kw['name'] . '"' . $sel . '>' . _T(remove_number_prefix($kw['title'])) . "</option>\n";
         }
         // Exotic case where the FU keyword was hidden by the administrator,
         // but an old follow-up using that keyword is being edited.
         if (!$kw_found) {
             echo '<option selected="selected" value="' . $default_fu . '">' . _Tkw('followups', $default_fu) . "</option>\n";
         }
         echo "</select>\n";
         echo "</td>\n";
         echo "</tr>\n";
     }
     // Keywords (if any)
     show_edit_keywords_form('followup', $this->getDataInt('id_followup'));
     // Description
     echo "<tr>\n";
     echo '<td valign="top">' . f_err_star('description') . _T('fu_input_description') . "</td>\n";
     echo '<td>';
     if ($this->getDataString('type') == 'assignment' || $this->getDataString('type') == 'unassignment') {
         // Do not allow edit of assignment
         echo '<input type="hidden" name="description" value="' . $this->getDataString('description') . '" />' . "\n";
         echo get_fu_description($this->data);
     } else {
         echo '<textarea ' . $dis . ' name="description" rows="15" cols="60" class="frm_tarea">';
         echo clean_output($this->getDataString('description'));
         echo "</textarea>";
     }
     echo "</td></tr>\n";
     // Sum billed field
     if ($this->show_sum_billed == "yes") {
         echo '<tr>';
         echo '<td>' . _T('fu_input_sum_billed') . "</td>\n";
         echo '<td>';
         echo '<input ' . $dis . ' name="sumbilled" ' . 'value="' . clean_output($this->getDataString('sumbilled')) . '" ' . 'class="search_form_txt" size="10" />';
         // [ML] If we do this we may as well make a function
         // out of it, but not sure where to place it :-)
         // This code is also in config_site.php
         $currency = read_meta('currency');
         if (empty($currency)) {
             $current_lang = $GLOBALS['lang'];
             $GLOBALS['lang'] = read_meta('default_language');
             $currency = _T('currency_default_format');
             $GLOBALS['lang'] = $current_lang;
         }
         echo htmlspecialchars($currency);
         echo "</td></tr>\n";
     }
     echo "</table>\n\n";
     // XXX FIXME: Should probably be in some function "is_system_fu"
     // or even "is_deletable"
     if ($this->getDataInt('id_followup') && allowed($this->data['id_case'], 'a') && !(is_status_change($this->data['type']) || $this->data['type'] == 'assignment' || $this->data['type'] == 'unassignment')) {
         $checked = $this->getDataString('hidden') == 'Y' ? ' checked="checked" ' : '';
         echo '<p class="normal_text">';
         echo '<input type="checkbox"' . $checked . ' name="delete" id="box_delete" />';
         echo '<label for="box_delete">' . _T('fu_info_delete') . '</label>';
         echo "</p>\n";
     }
     // Add followup appointment
     if (!_request('followup')) {
         echo "<!-- Add appointment? -->\n";
         echo '<p class="normal_text">';
         echo '<input type="checkbox" name="add_appointment" id="box_new_app" onclick="display_block(\'new_app\', \'flip\')" />';
         echo '<label for="box_new_app">' . _T('fu_info_add_future_activity') . '</label>';
         echo "</p>\n";
         echo '<div id="new_app" style="display: none;">';
         echo '<table class="tbl_usr_dtl" width="99%">' . "\n";
         echo "<!-- Start time -->\n\t\t<tr><td>";
         echo _T('time_input_date_start');
         echo "</td><td>";
         echo get_date_inputs('app_start', $this->data['app_start_time'], false);
         echo ' ' . _T('time_input_time_at') . ' ';
         echo get_time_inputs('app_start', $this->data['app_start_time']);
         echo f_err_star('app_start_time');
         echo "</td></tr>\n";
         echo "<!-- End time -->\n\t\t<tr><td>";
         echo $prefs['time_intervals'] == 'absolute' ? _T('time_input_date_end') : _T('app_input_time_length');
         echo "</td><td>";
         if ($prefs['time_intervals'] == 'absolute') {
             echo get_date_inputs('app_end', $this->data['app_end_time']);
             echo ' ' . _T('time_input_time_at') . ' ';
             echo get_time_inputs('app_end', $this->data['app_end_time']);
             echo f_err_star('app_end_time');
         } else {
             $interval = $this->data['app_end_time'] != '0000-00-00 00:00:00' ? strtotime($this->data['app_end_time']) - strtotime($this->data['app_start_time']) : 0;
             //	echo _T('calendar_info_time') . ' ';
             echo get_time_interval_inputs('app_delta', $interval);
             echo f_err_star('app_end_time');
         }
         echo "</td></tr>\n";
         /* [ML] Removing, not useful for now
         			   echo "<!-- Reminder -->\n\t\t<tr><td>";
         			   echo (($prefs['time_intervals'] == 'absolute') ? _T('app_input_reminder_time') : _T('app_input_reminder_offset'));
         			   echo "</td><td>";
         			   if ($prefs['time_intervals'] == 'absolute') {
         			   echo get_date_inputs('app_reminder', $this->data['app_reminder']);
         			   echo ' ' . _T('time_input_time_at') . ' ';
         			   echo get_time_inputs('app_reminder', $this->data['app_reminder']);
         			   echo f_err_star('app_reminder');
         			   } else {
         			   $interval = ( ($this->data['app_end_time']!='0000-00-00 00:00:00') ?
         			   strtotime($this->data['app_start_time']) - strtotime($this->data['app_reminder']) : 0);
         			//	echo _T('calendar_info_time') . ' ';
         			echo get_time_interval_inputs('app_rem_offset', $interval);
         			echo " " . _T('time_info_before_start');
         			echo f_err_star('app_reminder');
         			}
         			echo "</td></tr>\n";
         			 */
         // TODO: [ML] a bit of testing to see if this survives an error on new case
         // I suspect it doesn't..
         echo "<!-- Appointment title -->\n\t\t<tr><td>";
         echo f_err_star('app_title') . _T('app_input_title');
         echo "</td><td>";
         echo '<input type="text" ' . $dis . ' name="app_title" size="50" value="';
         echo clean_output($this->getDataString('app_title')) . '" class="search_form_txt" />';
         echo "</td></tr>\n";
         echo "<!-- Appointment type -->\n\t\t<tr><td>";
         echo _T('app_input_type');
         echo "</td><td>";
         echo '<select ' . $dis . ' name="app_type" size="1" class="sel_frm">';
         global $system_kwg;
         if ($_SESSION['fu_app_data']['type']) {
             $default_app = $_SESSION['fu_app_data']['type'];
         } else {
             $app_kwg = get_kwg_from_name('appointments');
             $default_app = $app_kwg['suggest'];
         }
         $opts = array();
         foreach ($system_kwg['appointments']['keywords'] as $kw) {
             $opts[$kw['name']] = _T(remove_number_prefix($kw['title']));
         }
         asort($opts);
         foreach ($opts as $k => $opt) {
             $sel = isSelected($k == $default_app);
             echo "<option value='{$k}'{$sel}>{$opt}</option>\n";
         }
         echo '</select>';
         echo "</td></tr>\n";
         echo "<!-- Appointment description -->\n";
         echo "<tr><td valign=\"top\">";
         echo _T('app_input_description');
         echo "</td><td>";
         echo '<textarea ' . $dis . ' name="app_description" rows="5" cols="60" class="frm_tarea">';
         echo clean_output($this->getDataString('app_description'));
         echo '</textarea>';
         echo "</td></tr>\n";
         echo "</table>\n";
         echo "</div>\n";
     }
 }
Пример #7
0
 function printHeaderValue($val)
 {
     $val = _Th(remove_number_prefix($val));
     echo '"' . $val . '", ';
 }
Пример #8
0
 function printStartDoc($title, $description, $helpref)
 {
     if ($this->ui == 'html') {
         $title = _Ti('title_rep_run') . $title;
         $this->setOption('headers_sent', 'yes');
     }
     $this->exporter->printStartDoc(remove_number_prefix($title), $description, $helpref);
 }
Пример #9
0
function show_edit_keywords_form($type_obj, $id_obj, $id_obj_sec = 0)
{
    include_lcm('inc_access');
    if (!$GLOBALS['legal_obj'][$type_obj]) {
        lcm_panic("Invalid object type requested");
    }
    if ($id_obj) {
        //
        // Show current keywords (already attached to object)
        //
        $current_kws = get_keywords_applied_to($type_obj, $id_obj, $id_obj_sec);
        $cpt = 0;
        foreach ($current_kws as $kw) {
            $kwg = get_kwg_from_id($kw['id_group']);
            $show_kw_value = false;
            echo "<tr>\n";
            echo "<td>" . "<label for=\"kw_value_{$type_obj}{$cpt}\">" . f_err_star('kwg' . $kwg['id_group']) . _Ti(remove_number_prefix($kwg['title'])) . "</label>" . "<br />(" . _T('keywords_input_policy_' . $kwg['policy']) . ")" . "</td>\n";
            echo "<td>";
            $kw_for_kwg = get_keywords_in_group_id($kwg['id_group']);
            if (count($kw_for_kwg)) {
                echo '<input type="hidden" name="kwg_id_' . $type_obj . '[]" value="' . $kwg['id_group'] . '" />' . "\n";
                echo '<input type="hidden" name="kw_entry_' . $type_obj . '[]" value="' . $kw['id_entry'] . '" />' . "\n";
                echo '<select id="kw_value_' . $type_obj . $cpt . '" name="kw_value_' . $type_obj . '[]">';
                echo '<option value="">' . '' . "</option>\n";
                foreach ($kw_for_kwg as $kw1) {
                    if ($kw1['hasvalue'] == 'Y') {
                        $show_kw_value = true;
                    }
                    $sel = '';
                    if (isset($_SESSION['form_data']['kw_value_' . $type_obj][$cpt]) && $_SESSION['form_data']['kw_value_' . $type_obj][$cpt] == $kw1['id_keyword']) {
                        $sel = ' selected="selected" ';
                    } elseif ($kw1['id_keyword'] == $kw['id_keyword']) {
                        $sel = ' selected="selected" ';
                    }
                    echo '<option value="' . $kw1['id_keyword'] . '"' . $sel . '>' . _T(remove_number_prefix($kw1['title'])) . "</option>\n";
                }
                echo "</select>\n";
            }
            // Check if keyword policy = mandatory, and quantity = one
            $kwg = get_kwg_from_id($kw['id_group']);
            if (!($kwg['policy'] == 'mandatory' && $kwg['quantity'] == 'one')) {
                echo '<label for="kw_del_' . $type_obj . $cpt . '">' . '<img src="images/jimmac/stock_trash-16.png" width="16" height="16" alt="Delete?" title="Delete?" />' . '</label>&nbsp;<input type="checkbox" id="kw_del_' . $type_obj . $cpt . '" name="kw_del_' . $type_obj . $cpt . '"/>';
            }
            if ($show_kw_value) {
                // Use value if submitted with the form, else use previous one
                if (isset($_SESSION['form_data']['kw_entryval_' . $type_obj . $cpt])) {
                    $tmp_value = $_SESSION['form_data']['kw_entryval_' . $type_obj . $cpt];
                } else {
                    $tmp_value = $kw['value'];
                }
                echo "<br />\n";
                echo '<input type="text" name="kw_entryval_' . $type_obj . $cpt . '" ' . 'value="' . $tmp_value . '" />' . "\n";
            }
            echo "</td>\n";
            echo "</tr>\n";
            $cpt++;
        }
    }
    //
    // New keywords
    //
    $kwg_for_case = get_kwg_applicable_for($type_obj, $id_obj, $id_obj_sec);
    $cpt_kw = 0;
    foreach ($kwg_for_case as $kwg) {
        echo "<tr>\n";
        echo '<td><label for="new_keyword_' . $type_obj . $cpt_kw . '">' . f_err_star('keyword_' . $type_obj . $cpt_kw) . f_err_star('kwg' . $kwg['id_group']) . _Ti(remove_number_prefix($kwg['title'])) . '</label>' . "<br />(" . _T('keywords_input_policy_' . $kwg['policy']) . ")</td>\n";
        echo "<td>";
        $kw_for_kwg = get_keywords_in_group_id($kwg['id_group']);
        if (count($kw_for_kwg)) {
            $obj_id_ajax = 'kw_' . create_random_password(15, time());
            echo '<input type="hidden" name="new_kwg_' . $type_obj . '_id[]" value="' . $kwg['id_group'] . '" />' . "\n";
            echo '<select id="new_keyword_' . $type_obj . $cpt_kw . '" ' . 'name="new_keyword_' . $type_obj . '_value[]" ' . "onchange=\"getKeywordInfo('get_kwg_in','" . $kwg['name'] . "', '{$type_obj}', {$id_obj}, 0, '{$obj_id_ajax}')\"" . '>';
            echo '<option value="">' . '' . "</option>\n";
            $show_kw_value = false;
            foreach ($kw_for_kwg as $kw) {
                if ($kw['hasvalue'] == 'Y') {
                    $show_kw_value = true;
                }
                // For default value, use the form_data (if present), else use suggested keyword
                $sel = '';
                if (isset($_SESSION['form_data']['new_keyword_' . $type_obj . '_value'][$cpt_kw]) && $_SESSION['form_data']['new_keyword_' . $type_obj . '_value'][$cpt_kw] == $kw['id_keyword']) {
                    $sel = ' selected="selected" ';
                } elseif ($kwg['suggest'] == $kw['name']) {
                    $sel = ' selected="selected" ';
                }
                // $sel = ($kwg['suggest'] == $kw['name'] ? ' selected="selected" ' : '');
                echo '<option ' . $sel . ' value="' . $kw['id_keyword'] . '">' . _T(remove_number_prefix($kw['title'])) . "</option>\n";
            }
            echo "</select>\n";
            if ($show_kw_value) {
                $tmp_value = '';
                if (isset($_SESSION['form_data']['new_kw_entryval_' . $type_obj . $cpt_kw])) {
                    $tmp_value = $_SESSION['form_data']['new_kw_entryval_' . $type_obj . $cpt_kw];
                }
                echo "<br />\n";
                echo '<input type="text" name="new_kw_entryval_' . $type_obj . $cpt_kw . '" ' . 'value="' . $tmp_value . '" />' . "\n";
            }
            echo '<div id="' . $obj_id_ajax . '"></div>' . "\n";
        } else {
            //
            // Sub-keyword group(s), since no top-level keywords
            //
            $sub_kwgs = get_subgroups_in_group_id($kwg['id_group']);
            if (count($sub_kwgs)) {
                echo '<input type="hidden" name="nop_kwg_' . $type_obj . '_id[]" value="' . $kwg['id_group'] . '" />' . "\n";
                $obj_id_ajax = 'kw_' . create_random_password(15, time());
                $sel_id = 'nop_kwg_' . $type_obj . $cpt_kw;
                $sel_name = 'nop_keyword_' . $type_obj . '_value[]';
                echo "<select id=\"{$sel_id}\" name=\"{$sel_name}\" " . "onchange=\"getKeywordInfo('get_kwg_in', this.value, '{$type_obj}', {$id_obj}, 0, '{$obj_id_ajax}')\"" . '>';
                echo '<option value="">' . '' . "</option>\n";
                foreach ($sub_kwgs as $sg) {
                    echo '<option value="' . $sg['name'] . '">' . _T(remove_number_prefix($sg['title'])) . "</option>\n";
                }
                echo "</select>\n";
                echo '<div id="' . $obj_id_ajax . '"></div>' . "\n";
            }
            echo '<div id="keywords_in_group_data' . $kwg['id_group'] . '"></div>' . "\n";
        }
        echo "</td>\n";
        echo "</tr>\n";
        $cpt_kw++;
    }
}
Пример #10
0
 function printEdit()
 {
     // Read site configuration preferences
     $case_assignment_date = read_meta('case_assignment_date');
     $case_alledged_crime = read_meta('case_alledged_crime');
     $case_legal_reason = read_meta('case_legal_reason');
     $case_allow_modif = read_meta('case_allow_modif');
     echo '<table class="tbl_usr_dtl">' . "\n";
     // Case ID (if editing existing case)
     if ($this->getDataInt('id_case')) {
         echo "<tr>" . "<td>" . _T('case_input_id') . "</td>" . "<td>" . $this->getDataInt('id_case') . '<input type="hidden" name="id_case" value="' . $this->getDataInt('id_case') . '" />' . "</td></tr>\n";
     }
     echo '<tr><td><label for="input_case_title">' . f_err_star('title') . _T('case_input_title') . "</label></td>\n";
     echo '<td><input size="35" name="title" id="input_case_title" value="' . clean_output($this->getDataString('title')) . '" class="search_form_txt" />';
     echo "</td></tr>\n";
     // Date of earlier assignment
     if ($case_assignment_date == 'yes') {
         echo "<tr>\n";
         echo "<td>" . f_err_star('date_assignment') . _Ti('case_input_date_assigned') . "</td>\n";
         echo "<td>" . get_date_inputs('assignment', $this->getDataString('date_assignment'), false) . "</td>\n";
         echo "</tr>\n";
     }
     // Legal reason
     if (substr($case_legal_reason, 0, 3) == 'yes') {
         echo '<tr><td><label for="input_legal_reason">' . f_err_star('legal_reason') . _T('case_input_legal_reason') . "</label>" . ($case_legal_reason == 'yes_mandatory' ? '<br/>(' . _T('keywords_input_policy_mandatory') . ')' : '') . "</td>\n";
         echo '<td>';
         echo '<textarea name="legal_reason" id="input_legal_reason" class="frm_tarea" rows="2" cols="60">';
         echo clean_output($this->getDataString('legal_reason'));
         echo "</textarea>";
         echo "</td>\n";
         echo "</tr>\n";
     }
     // Alledged crime
     if (substr($case_alledged_crime, 0, 3) == 'yes') {
         echo '<tr><td><label for="input_alledged_crime">' . f_err_star('alledged_crime') . _T('case_input_alledged_crime') . "</label>" . ($case_alledged_crime == 'yes_mandatory' ? '<br/>(' . _T('keywords_input_policy_mandatory') . ')' : '') . "</td>\n";
         echo '<td>';
         echo '<textarea name="alledged_crime" id="input_alledged_crime" class="frm_tarea" rows="2" cols="60">';
         echo clean_output($this->getDataString('alledged_crime'));
         echo '</textarea>';
         echo "</td>\n";
         echo "</tr>\n";
     }
     // Keywords (if any)
     show_edit_keywords_form('case', $this->getDataInt('id_case'));
     $id_stage = 0;
     // new case, stage not yet known
     if ($this->getDataString('stage')) {
         $stage = get_kw_from_name('stage', $this->getDataString('stage', '__ASSERT__'));
         $id_stage = $stage['id_keyword'];
     }
     show_edit_keywords_form('stage', $this->getDataInt('id_case'), $id_stage);
     // Notes
     echo "<tr>\n";
     echo "<td><label for='input_case_notes'>" . f_err_star('case_notes') . _Ti('case_input_notes') . "</label></td>\n";
     echo '<td><textarea name="case_notes" id="input_case_notes" class="frm_tarea" rows="3" cols="60">' . clean_output($this->getDataString('notes')) . "</textarea>\n" . "</td>\n";
     echo "</tr>\n";
     // Case status
     echo '<tr><td><label for="input_status">' . f_err_star('status') . _Ti('case_input_status') . "</label></td>\n";
     echo '<td>';
     echo '<select name="status" id="input_status" class="sel_frm">' . "\n";
     $statuses = $this->getDataInt('id_case') ? array('draft', 'open', 'suspended', 'closed', 'merged') : array('draft', 'open');
     foreach ($statuses as $s) {
         $sel = $s == $this->getDataString('status') ? ' selected="selected"' : '';
         echo '<option value="' . $s . '"' . $sel . ">" . _T('case_status_option_' . $s) . "</option>\n";
     }
     echo "</select></td>\n";
     echo "</tr>\n";
     // Case stage
     if (!$this->getDataString('stage')) {
         $this->data['stage'] = get_suggest_in_group_name('stage');
     }
     $kws = get_keywords_in_group_name('stage');
     echo '<tr><td><label for="input_stage">' . f_err_star('stage') . _T('case_input_stage') . "</label></td>\n";
     echo '<td><select name="stage" id="input_stage" class="sel_frm">' . "\n";
     foreach ($kws as $kw) {
         $sel = $kw['name'] == $this->data['stage'] ? ' selected="selected"' : '';
         echo "\t\t\t\t<option value='" . $kw['name'] . "'" . "{$sel}>" . _T(remove_number_prefix($kw['title'])) . "</option>\n";
     }
     echo "</select></td>\n";
     echo "</tr>\n";
     // Public access rights
     // FIXME FIXME FIXME
     if ($this->data['admin'] || read_meta('case_read_always') != 'yes' || read_meta('case_write_always') != 'yes') {
         $dis = isDisabled(!allowed($this->getDataInt('id_case'), 'a'));
         echo '<tr><td colspan="2">' . _T('case_input_collaboration') . ' <br /><ul>';
         if (read_meta('case_read_always') != 'yes' || $GLOBALS['author_session']['status'] == 'admin') {
             echo '<li style="list-style-type: none;">';
             echo '<input type="checkbox" name="public" id="case_public_read" value="yes"';
             if ($_SESSION['form_data']['public']) {
                 echo ' checked="checked"';
             }
             echo "{$dis} />";
             echo '<label for="case_public_read">' . _T('case_input_collaboration_read') . "</label></li>\n";
         }
         if (read_meta('case_write_always') != 'yes' || _session('admin')) {
             echo '<li style="list-style-type: none;">';
             echo '<input type="checkbox" name="pub_write" id="case_public_write" value="yes"';
             if (_session('pub_write')) {
                 echo ' checked="checked"';
             }
             echo "{$dis} />";
             echo '<label for="case_public_write">' . _T('case_input_collaboration_write') . "</label></li>\n";
         }
         echo "</ul>\n";
         echo "</td>\n";
         echo "</tr>\n";
     }
     echo "</table>\n";
 }
Пример #11
0
             echo '<option value="">' . '' . "</option>\n";
             $show_kw_value = false;
             foreach ($kw_for_kwg as $kw) {
                 if ($kw['hasvalue'] == 'Y') {
                     $show_kw_value = true;
                 }
                 // For default value, use the form_data (if present), else use suggested keyword
                 if (isset($_SESSION['form_data']['new_keyword_' . $type_obj . '_value'][$cpt_kw]) && $_SESSION['form_data']['new_keyword_' . $type_obj . '_value'][$cpt_kw] == $kw['id_keyword']) {
                     $sel = ' selected="selected" ';
                 } elseif ($kwg['suggest'] == $kw['name']) {
                     $sel = ' selected="selected" ';
                 } else {
                     $sel = '';
                 }
                 // $sel = ($kwg['suggest'] == $kw['name'] ? ' selected="selected" ' : '');
                 echo '<option ' . $sel . ' value="' . $kw['id_keyword'] . '">' . _T(remove_number_prefix($kw['title'])) . "</option>\n";
             }
             echo "</select>\n";
             if ($show_kw_value) {
                 $tmp_value = '';
                 if (isset($_SESSION['form_data']['new_kw_entryval_' . $type_obj . $cpt_kw])) {
                     $tmp_value = $_SESSION['form_data']['new_kw_entryval_' . $type_obj . $cpt_kw];
                 }
                 echo "<br />\n";
                 echo '<input type="text" name="new_kw_entryval_' . $type_obj . $cpt_kw . '" ' . 'value="' . $tmp_value . '" />' . "\n";
             }
             echo '<div id="' . $obj_id_ajax . '"></div>' . "\n";
         }
     }
     echo "</div>\n";
 } elseif ($action == 'changefont') {
Пример #12
0
function show_kwg_info($kwg, $level = 0)
{
    // test ac-admin?
    $suggest = $kwg['suggest'];
    echo '<a name="' . $kwg['name'] . '"></a>' . "\n";
    echo "<fieldset class='info_box'>\n";
    echo "<div class='prefs_column_menu_head'>";
    echo _T($kwg['title']);
    // Applies to: show only if not sub-kwg, because otherwise redundant info
    if (!$level) {
        if ($kwg['type'] != 'system' && $kwg['type'] != 'contact') {
            echo " - " . _Ti('keywords_input_type') . _T('keywords_input_type_' . $kwg['type']);
        }
    }
    if ($kwg['ac_author'] != 'Y') {
        echo ' ' . _T('keywords_info_kwg_hidden');
    }
    echo "</div>\n";
    $kw_all = get_keywords_in_group_id($kwg['id_group'], false);
    if (count($kw_all)) {
        $cpt_kw = 0;
        echo "<ul class='wo_blt'>\n";
        echo '<table border="0" align="center" class="tbl_usr_dtl" width="100%">' . "\n";
        foreach ($kw_all as $key => $kw) {
            $css = ' class="tbl_cont_' . ($cpt_kw % 2 ? "dark" : "light") . '" ';
            // echo '<li>';
            echo "<tr>\n";
            // Keyword name
            echo "<td width='80%' {$css}>";
            if ($suggest == $kw['name']) {
                echo "<b>";
            }
            echo "<a href='?action=edit_keyword&amp;id_keyword=" . $kw['id_keyword'] . "' class='content_link'>" . _T(remove_number_prefix($kw['title'])) . "</a>";
            if ($suggest == $kw['name']) {
                echo "</b>";
            }
            echo "</td>";
            // Hidden kw?
            echo "<td {$css}>";
            if ($kw['ac_author'] != 'Y') {
                echo _T('keywords_info_kw_hidden');
            }
            echo "</td>";
            echo "</tr>\n";
            // echo "</li>\n";
            $cpt_kw++;
        }
        echo "</table>\n";
        echo "</ul>\n";
    }
    //
    // Sub-groups (recursive)
    //
    if ($kwg['type'] != 'system' && $kwg['type'] != 'contact') {
        $sub_kwgs = get_subgroups_in_group_id($kwg['id_group']);
        foreach ($sub_kwgs as $skwg) {
            show_kwg_info($skwg, $level + 1);
        }
    }
    //
    // Buttons
    //
    echo '<p>';
    if ($kwg['ac_admin']) {
        echo '<a class="edit_lnk" href="keywords.php?action=edit_group&amp;id_group=' . $kwg['id_group'] . '">' . _T('keywords_button_kwg_edit') . '</a>';
    }
    // New keyword
    if ($kwg['type'] != 'contact') {
        echo ' <a class="edit_lnk" href="keywords.php?action=edit_keyword&amp;id_keyword=0&amp;' . 'id_group=' . $kwg['id_group'] . '">' . _T('keywords_button_kw_new') . '</a>';
    }
    // New sub-group
    if ($kwg['type'] != 'system' && $kwg['type'] != 'contact') {
        echo ' <a class="edit_lnk" href="keywords.php?action=edit_group&amp;id_group=0&amp;' . 'id_parent=' . $kwg['id_group'] . '">' . _T('keywords_button_subkwg_new') . '</a>';
    }
    echo "</p>\n";
    echo "</fieldset>\n";
}
Пример #13
0
function show_report_field_edit($type, $rep_info)
{
    $src_type = $rep_info[$type . '_src_type'];
    $src_name = $rep_info[$type . '_src_name'];
    if ($src_type == 'table' && $src_name && !preg_match('/^lcm_/', $src_name)) {
        $src_name = 'lcm_' . $src_name;
    }
    // Extract source type, if any
    if ($src_type && $src_name) {
        if ($src_type == 'keyword') {
            $kwg = get_kwg_from_name($src_name);
            echo '<p class="normal_text">' . _Ti('rep_info_source_' . $src_type) . " (" . _T('rep_info_table_lcm_' . $kwg['type']) . ") " . _T(remove_number_prefix($kwg['title']));
        } else {
            echo "<p class='normal_text'>" . _Ti('rep_info_source_' . $src_type) . _T('rep_info_table_' . $src_name);
        }
        // Show list of fields for line/col, if any
        $my_id = $type == 'col' ? 'id_column' : 'id_line';
        $my_fields = array();
        $query = "SELECT " . $my_id . ", f.id_field, f.description \n\t\t\tFROM lcm_rep_" . $type . " as rl, lcm_fields as f\n\t\t\tWHERE id_report = " . $rep_info['id_report'] . "\n\t\t\tAND rl.id_field = f.id_field\n\t\t\tORDER BY col_order, " . $my_id . " ASC";
        $result_fields = lcm_query($query);
        if (lcm_num_rows($result_fields)) {
            echo "</p>\n";
            echo "<table border='0' class='tbl_usr_dtl' width='99%'>\n";
            while ($field = lcm_fetch_array($result_fields)) {
                echo "<tr>\n";
                echo "<td>" . _Th($field['description']) . "</td>\n";
                echo "<td><a href='upd_rep_field.php?rep=" . $rep_info['id_report'] . "&amp;" . "remove=" . $type . "&amp;" . $my_id . "=" . $field[$my_id] . "' class='content_link'>" . "X" . "</a></td>\n";
                // ACCESSIBILITY
                echo "</tr>\n";
                array_push($my_fields, $field['id_field']);
            }
            echo "</table>\n";
        } else {
            if (!$rep_info['filecustom']) {
                // Allow to change the source table
                echo ' <a href="upd_rep_field.php?rep=' . $rep_info['id_report'] . '&amp;unselect_' . $type . '=1" class="content_link">' . "X" . '</a>';
                // TRAD ACCESSIBILITY
                echo "</p>\n";
            }
        }
        // Add field (if line_src_type == table)
        // TODO: add 'not in (...existing fields..)
        $query = "SELECT *\n\t\t\tFROM lcm_fields\n\t\t\tWHERE table_name = '" . $src_name . "'";
        $result = lcm_query($query);
        if (lcm_num_rows($result)) {
            echo "\n<br />\n\n";
            echo "<form action='upd_rep_field.php' name='frm_" . $type . "_additem' method='get'>\n";
            echo "<input name='rep' value='" . $rep_info['id_report'] . "' type='hidden' />\n";
            echo "<input name='add' value='" . $type . "' type='hidden' />\n";
            echo "<table border='0' class='tbl_usr_dtl' width='99%'>\n";
            echo "<tr>\n";
            echo "<th class='heading'>" . _Ti('rep_input_item_add') . "</th>\n";
            echo "<td>\n";
            echo "<select name='id_field' class='sel_frm'>";
            echo "<option value=''>...</option>\n";
            while ($row = lcm_fetch_array($result)) {
                echo "<option value='" . $row['id_field'] . "'>" . _Th($row['description']) . "</option>\n";
            }
            echo "</select>\n";
            echo "<button class='simple_form_btn' name='validate_" . $type . "_additem'>" . _T('button_validate') . "</button>\n";
            echo "</td>\n";
            echo "</tr>\n";
            echo "</table>\n";
            echo "</form>\n";
        }
    } else {
        if (!$src_type || $src_type != 'keyword') {
            echo "<form action='upd_rep_field.php' name='frm_" . $type . "_source' method='post'>\n";
            echo "<input name='rep' value='" . $rep_info['id_report'] . "' type='hidden' />\n";
            echo '<p class="normal_text">' . f_err_star('rep_' . $type) . _Ti('rep_info_source_table');
            echo "<input name='select_" . $type . "_type' value='table' type='hidden' />\n";
            echo "<select name='select_" . $type . "_name' class='sel_frm'>\n\t\t\t\t<option value='author'>" . _T('rep_info_table_lcm_author') . "</option>\n\t\t\t\t<option value='case'>" . _T('rep_info_table_lcm_case') . "</option>\n\t\t\t\t<option value='stage'>" . _T('rep_info_table_lcm_stage') . "</option>\n\t\t\t\t<option value='client'>" . _T('rep_info_table_lcm_client') . "</option>\n\t\t\t\t<option value='followup'>" . _T('rep_info_table_lcm_followup') . "</option>\n\t\t\t\t</select>\n";
            echo "<button class='simple_form_btn' name='validate_" . $type . "_source'>" . _T('button_validate') . "</button>\n";
            echo "</p>\n";
            echo "</form>\n";
        }
        if (!$src_type) {
            echo '<p class="normal_text">' . _T('info_or') . "</p>\n";
        }
        if (!$src_type || $src_type != 'table') {
            echo "<form action='upd_rep_field.php' name='frm_" . $type . "_source' method='post'>\n";
            echo "<input name='rep' value='" . $rep_info['id_report'] . "' type='hidden' />\n";
            echo "<p class='normal_text'>" . _Ti('rep_info_source_keyword');
            echo "<input name='select_" . $type . "_type' value='keyword' type='hidden' />\n";
            // Restrict list of keywords if custom report
            if ($rep_info['filecustom']) {
                include_custom_report($rep_info['filecustom']);
                $obj = new CustomReportSpecs();
                $info = $type == 'line' ? $obj->getReportLine() : $obj->getReportCol();
                if (substr($info['name'], 0, 4) == 'FOR:') {
                    $choices = split(':', $info['name']);
                    $all_kwgs = get_kwg_all($choices[1], true);
                } else {
                    lcm_panic("Error in custom report specifications.");
                }
            } else {
                $all_kwgs = get_kwg_all('', true);
            }
            echo "<select name='select_" . $type . "_name' class='sel_frm'>\n";
            echo "<option value=''>...</option>\n";
            foreach ($all_kwgs as $kwg) {
                echo "<option value='" . $kwg['name'] . "'>" . _T('rep_info_table_lcm_' . $kwg['type']) . " - " . _T(remove_number_prefix($kwg['title'])) . "</option>\n";
            }
            echo "</select>\n";
            echo "<button class='simple_form_btn' name='validate_" . $type . "_source_kw'>" . _T('button_validate') . "</button>\n";
            echo "</p>\n";
            echo "</form>\n";
        }
    }
}
Пример #14
0
function show_context_stage($id_case, $id_stage)
{
    if (!(is_numeric($id_case) && $id_case > 0)) {
        lcm_log("Warning: show_context_stage, id_case not a number > 0: {$id_case}");
        return;
    }
    if (!(is_numeric($id_stage) && $id_stage > 0)) {
        lcm_log("Warning: show_context_stage, id_stage not a number > 0: {$id_stage}");
        return;
    }
    include_lcm('inc_keywords');
    $kws = get_keywords_applied_to('stage', $id_case, $id_stage);
    foreach ($kws as $kw) {
        echo '<li style="list-style-type: none;">';
        if ($kw['value']) {
            echo _Ti(remove_number_prefix($kw['title']));
            echo $kw['value'];
        } else {
            echo _Ti(remove_number_prefix($kw['kwg_title'])) . _T(remove_number_prefix($kw['title']));
        }
        echo "</li>\n";
    }
}
Пример #15
0
function get_filters_sql($report, $obj_type = '', $obj_name = '')
{
    $ret = "";
    $is_missing_filters = false;
    $my_filters = get_filters($report->getId(), $obj_type, $obj_name);
    $clauses = array();
    // Apply the filter values and check for missing values
    foreach ($my_filters as $f) {
        if ($f['value'] || isset($_REQUEST['filter_val' . $f['id_filter']]) || isset_datetime_from_array($_REQUEST, 'filter_val' . $f['id_filter'], 'year_only') || isset_datetime_from_array($_REQUEST, 'filter_val' . $f['id_filter'] . "_start", 'year_only') && isset_datetime_from_array($_REQUEST, 'filter_val' . $f['id_filter'] . "_end", 'year_only')) {
            $filter_sql = apply_filter($f);
            if ($filter_sql) {
                array_push($clauses, $filter_sql);
            }
        } else {
            // For now, we ignore filters without type (eq/lt/gt/..)
            // because it's a bit messy to allow input at runtime
            // (because of fields for filter value)
            if ($f['type']) {
                $is_missing_filters = true;
            }
        }
    }
    if ($is_missing_filters) {
        if (!($report->getOption('headers_sent') == 'yes')) {
            lcm_page_start(_T('title_rep_run') . " " . remove_number_prefix($rep_info['title']), '', '', 'report_intro');
        }
        show_page_subtitle(_T('rep_subtitle_filters'), 'reports_edit', 'filters');
        echo '<p class="normal_text">';
        include_lcm('inc_conditions');
        show_report_filters($report->getId(), true);
        echo "</p>\n";
        lcm_page_end();
        exit;
    }
    $ret1 = implode(" AND ", $clauses);
    return $ret1;
}