Ejemplo n.º 1
0
 if ($action == 'get_kwg_in') {
     include_lcm('inc_keywords');
     include_lcm('inc_access');
     // Return a list of sub-keyword-groups
     // Or, if the kwg selected has "apply = many", list the sub-kwg and their keywords
     // Note: currently, it does only for "apply = many".
     // Example: The user selected "matter type = Family", so we will
     // return the "Type 1" + "Type 2" comboboxes.
     echo '<div id="' . _request('div') . '">';
     if (_request('group_name')) {
         $kwg = get_kwg_from_name(_request('group_name', '__ASSERT__'));
         $id_group = $kwg['id_group'];
         $type_obj = _request('type_obj', 'case');
         $id_obj = _request('id_obj', 0);
         $id_obj_sec = _request('id_obj_sec', 0);
         $sub_kwgs = get_subgroups_in_group_id($id_group);
         if (count($sub_kwgs)) {
             if ($kwg['quantity'] == 'one') {
                 // Show which sub-kwg to select from
                 $obj_id_ajax = 'kw_' . create_random_password(15, time());
                 echo '<select id="nop_kwg_' . $obj_id_ajax . '" ' . 'name="nop_kwg_' . $type_obj . '_value[]" ' . "onchange=\"getKeywordInfo('get_kws_in', this.value, '{$type_obj}', {$id_obj}, {$id_obj_sec}, '{$obj_id_ajax}')\"" . '>';
                 echo '<option value="">' . '' . "</option>\n";
                 foreach ($sub_kwgs as $foo_kwg) {
                     echo '<option value="' . $foo_kwg['name'] . '">' . _T(remove_number_prefix($foo_kwg['title'])) . "</option>\n";
                 }
                 echo "</select>\n";
                 echo '<div id="' . $obj_id_ajax . '"></div>' . "\n";
             } else {
                 // Show all sub-kwgs as a seperate combobox
                 foreach ($sub_kwgs as $sg) {
                     $obj_id_ajax = 'kw_' . create_random_password(15, time());
Ejemplo n.º 2
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++;
    }
}
Ejemplo n.º 3
0
function show_keyword_group_id($id_group, $id_parent = 0)
{
    global $system_kwg;
    $kwg = array();
    $sub_kwg = array();
    $parent_kwg = array();
    if (!$id_group) {
        // set default values (common to both new kwg or sub-kwg)
        $kwg['title'] = $kwg['description'] = '';
        $kwg['ac_author'] = 'Y';
        $kwg['policy'] = '';
        $kwg['suggest'] = '';
        $kwg['quantity'] = 'one';
        if ($id_parent) {
            // New keyword sub-group
            $parent_kwg = get_kwg_from_id($id_parent);
            // set default values (based on parent kwg)
            $kwg['type'] = $parent_kwg['type'];
            // recommend a new name
            $all_kws = get_subgroups_in_group_id($id_parent, false);
            $cpt = sprintf("%02d", count($all_kws) + 1);
            while (get_kw_from_name($parent_kwg['name'], $parent_kwg['name'] . '_sub' . $cpt)) {
                $cpt = sprintf("%02d", ++$cpt);
            }
            $kwg['name'] = $parent_kwg['name'] . '_sub' . $cpt;
            lcm_page_start(_T('title_subkwg_edit'));
        } else {
            // New keyword group, set default values
            if (_request('type')) {
                $kwg['name'] = '';
                $kwg['type'] = _request('type');
            } else {
                $kwg['name'] = '';
                $kwg['type'] = 'user';
            }
            lcm_page_start(_T('title_kwg_new'));
        }
    } else {
        // Editing existing (parent or sub) keyword group
        $kwg = get_kwg_from_id($id_group);
        lcm_page_start(_T('title_kwg_edit'));
        if ($kwg['id_parent']) {
            $parent_kwg = get_kwg_from_id($kwg['id_parent']);
            $id_parent = $kwg['id_parent'];
        }
    }
    echo show_all_errors($_SESSION['errors']);
    //
    // Start form
    //
    echo '<form action="keywords.php" method="post">' . "\n";
    echo '<input type="hidden" name="action" value="update_group" />' . "\n";
    echo '<input type="hidden" name="id_group" value="' . $id_group . '" />' . "\n";
    if ($id_parent) {
        echo '<input type="hidden" name="id_parent" value="' . $id_parent . '" />' . "\n";
    }
    echo "<table border='0' width='99%' align='left' class='tbl_usr_dtl'>\n";
    echo "<tr>\n";
    //
    // Parent group (if sub-group)
    //
    if ($id_parent || $kwg['id_parent']) {
        echo "<td>" . _Ti('keywords_parent_group_title') . "</td>\n";
        echo "<td>" . _T($parent_kwg['title']) . "</td>\n";
        echo "</tr><tr>\n";
    }
    //
    // Keyword group type (applies to..)
    //
    echo '<td width="30%"><label for="kwg_type">' . f_err_star('type') . _T('keywords_input_type') . "</label></td>\n";
    echo "<td>";
    if ($kwg['type'] == 'system' || $kwg['type'] == 'contact' || $id_parent) {
        echo _T('keywords_input_type_' . $kwg['type']);
        echo '<input type="hidden" name="kwg_type" value="' . $kwg['type'] . '" />' . "\n";
    } else {
        $all_types = array("case", "stage", "followup", "client", "org", "client_org");
        // "author"
        echo '<select name="kwg_type" id="kwg_type">';
        foreach ($all_types as $t) {
            $sel = isSelected($t == $kwg['type']);
            echo '<option value="' . $t . '"' . $sel . '>' . _T('keywords_input_type_' . $t) . '</option>';
        }
        echo "</select>\n";
    }
    echo "</td>\n";
    echo "</tr>\n";
    //
    // Policy
    // Note: if sub-group, there could be a per-subgroup policy
    // E.g. one kw from SubGroupAlpha mandatory, one kw from SubGroupBeta optional
    //
    echo "<tr>\n";
    echo '<td><label for="kwg_policy">' . f_err_star('policy') . _T('keywords_input_policy') . "</label></td>\n";
    echo "<td>";
    if ($kwg['type'] == 'system') {
        echo _T('keywords_input_policy_' . $kwg['policy']);
    } else {
        $all_policy = array('mandatory', 'optional', 'recommended');
        echo '<select name="kwg_policy" id="kwg_policy">';
        foreach ($all_policy as $pol) {
            $sel = isSelected($kwg['policy'] == $pol);
            echo '<option value="' . $pol . '"' . $sel . '>' . _T('keywords_input_policy_' . $pol) . "</option>\n";
        }
        echo "</select>\n";
    }
    echo "</td>\n";
    echo "</tr>\n";
    //
    // Default suggested keyword
    //
    if ($kwg['type'] != 'contact') {
        echo "<tr>\n";
        echo "<td>" . _T('keywords_input_suggest') . "</td>\n";
        echo "<td>";
        echo '<select name="kwg_suggest" class="sel_frm">';
        echo '<option value="">' . "none" . '</option>' . "\n";
        // TRAD
        if ($id_group) {
            $all_kw = get_keywords_in_group_name($kwg['name']);
            foreach ($all_kw as $kw) {
                $sel = isSelected($kw['name'] == $kwg['suggest']);
                echo '<option value="' . $kw['name'] . '"' . $sel . '>' . _T($kw['title']) . '</option>' . "\n";
            }
        }
        echo '</select>';
        echo "</td>\n";
        echo "</tr>\n";
    }
    echo "<tr>\n";
    //
    // Name (only for new keywords, must be unique and cannot be changed)
    //
    $disabled = $id_group ? ' disabled="disabled" ' : '';
    echo "<td colspan='2'>";
    echo "<p class='normal_text'>";
    echo "<strong>" . f_err_star('name') . _T('keywords_input_name') . "</strong> " . "(short identifier, unique to this keyword group)" . "<br />\n";
    // TRAD
    echo '<input ' . $disabled . ' type="text" style="width:99%;" id="kwg_name" name="kwg_name" size="45" value="' . $kwg['name'] . '" class="search_form_txt" />' . "\n";
    echo "</p>\n";
    //
    // Title
    //
    echo "<p class='normal_text'>";
    echo "<strong>" . f_err_star('title') . _T('keywords_input_title') . "</strong><br />\n";
    echo "<input type='text' style='width:99%;' id='kwg_title' name='kwg_title' size='45' value='" . $kwg['title'] . "' class='search_form_txt' />\n";
    echo "</p>\n";
    //
    // Description
    //
    echo "<p class='normal_text'>";
    echo "<strong>" . _T('keywords_input_description') . "</strong><br />\n";
    echo "<textarea id='kwg_description' name='kwg_description' style='width:99%' rows='2' cols='45' wrap='soft' class='frm_tarea'>";
    echo $kwg['description'];
    echo "</textarea>\n";
    echo "</p>\n";
    echo "</td>\n";
    echo "</tr><tr>\n";
    echo '<td colspan="2">';
    echo '<ul class="info">';
    // Quantity: relevevant only for user keywords (ex: 'thematics' for cases)
    if ($kwg['type'] == 'system') {
        $html_quantity = _T('keywords_option_quantity_' . $kwg['quantity']) . '<input type="hidden" name="kwg_quantity" value="' . $kwg['quantity'] . '" />';
    } else {
        $my_qty = $kwg['quantity'];
        // [ML] Yes, strange UI, but imho it works great (otherwise confusing, I hate checkboxes)
        $html_quantity = '<select name="kwg_quantity" id="kwg_quantity">' . (!$my_qty ? '<option value=""></option>' : '') . '<option value="one"' . isSelected($my_qty == 'one') . '>' . _T('keywords_option_quantity_one') . '</option>' . '<option value="many"' . isSelected($my_qty == 'many') . '>' . _T('keywords_option_quantity_many') . '</option>' . '</select>';
    }
    echo '<li>' . _T('keywords_info_quantity', array('quantity' => $html_quantity)) . "</li>\n";
    if ($kwg['type'] != 'system') {
        echo '<li>' . _T('keywords_info_kwg_ac_author') . " " . get_yes_no('kwg_ac_author', $kwg['ac_author']) . "</li>\n";
    }
    echo "</ul>\n";
    echo "</td>\n";
    echo "</tr>\n";
    echo "</table>\n\n";
    echo '<p><button name="submit" type="submit" value="submit" class="simple_form_btn">' . _T('button_validate') . "</button></p>\n";
    echo "</form>\n";
    // destroy error messages
    $_SESSION['errors'] = array();
    lcm_page_end();
    exit;
}