function globallink_dashboard_node_filter_form in GlobalLink Connect for Drupal 7.6
Same name and namespace in other branches
- 7.7 globallink_send_translations.inc \globallink_dashboard_node_filter_form()
- 7.5 globallink_send_translations.inc \globallink_dashboard_node_filter_form()
Builds form to filter GlobalLink nodes to send for translation on dashboard.
1 string reference to 'globallink_dashboard_node_filter_form'
- globallink_dashboard_page in ./
globallink_send_translations.inc - Builds forms on GlobalLink send dashboard.
File
- ./
globallink_send_translations.inc, line 31
Code
function globallink_dashboard_node_filter_form($form, &$form_state) {
module_load_include('inc', 'globallink', 'globallink');
$form = array();
$redirect_nid = isset($_GET['rnid']) ? $_GET['rnid'] : '';
if ($redirect_nid != '') {
$_SESSION['globallink_source_locale'] = '';
$_SESSION['globallink_dashboard_filter'] = array();
$_SESSION['globallink_source_locale'] = globallink_get_node_source_languages($redirect_nid);
}
$locales = globallink_get_mapped_drupal_locales(FALSE);
$node_types = globallink_get_translatable_node_types(TRUE);
if (isset($locales) && count($locales) > 1) {
if (isset($node_types) && count($node_types) > 0) {
$session = isset($_SESSION['globallink_dashboard_filter']) ? $_SESSION['globallink_dashboard_filter'] : array();
$filters = globallink_build_filters(TRUE);
$form['filters'] = array(
'#type' => 'fieldset',
'#title' => t('FILTER RECORDS'),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
);
$selected_arr = array();
$selected_source_lang = '';
foreach ($session as $filter) {
list($type, $value) = $filter;
$selected_arr[$type] = $value;
}
$form['filters']['status']['filters'] = array(
'#type' => 'container',
'#attributes' => array(
'style' => 'padding: 0px;',
),
);
$module_path = drupal_get_path('module', 'globallink');
drupal_add_css($module_path . '/css/globallink.css');
foreach ($filters as $key => $filter) {
$disabled = FALSE;
$default = '[Any]';
if ($filter['form-type'] == 'select') {
if ($key == 'language_name') {
$default_language = language_default();
$default = $default_language->language;
if (isset($_SESSION['globallink_source_locale']) && $_SESSION['globallink_source_locale'] != '') {
$default = $_SESSION['globallink_source_locale'];
}
$selected_source_lang = $default;
$form['filters']['status']['filters'][$key] = array(
'#type' => $filter['form-type'],
'#options' => $filter['options'],
'#title' => check_plain($filter['title']),
'#default_value' => $default,
'#disabled' => $disabled,
'#attributes' => array(
'style' => array(
'padding:5px;',
),
),
'#prefix' => '<tr><td style="text-align: left;width: 15%;vertical-align: middle;border: none;">',
'#field_prefix' => '</td><td>',
'#ajax' => array(
'event' => 'change',
'callback' => 'globallink_dashboard_node_filter_target',
'wrapper' => 'replace-target',
),
);
$form['filters']['status']['filters']['node_parent'] = array(
'#type' => 'checkbox',
'#return_value' => 1,
'#default_value' => 1,
'#prefix' => '<span style="display:block;padding-top:10px;">',
'#suffix' => '</span></td></tr>',
'#field_suffix' => 'Show Source Language Only</td>',
);
}
else {
if ($key == 'target_language') {
if (isset($form_state['values']['language_name'])) {
$form['filters']['status']['filters'][$key] = array(
'#type' => $filter['form-type'],
'#options' => globallink_get_target_options($form_state['values']['language_name']),
'#disabled' => $disabled,
'#default_value' => isset($form_state['values']['target_language']) ? $form_state['values']['target_language'] : '',
'#attributes' => array(
'style' => array(
'padding:0px;',
),
),
'#field_prefix' => '<td><div id="replace-target">',
'#field_suffix' => '</div></td>',
);
}
else {
$form['filters']['status']['filters'][$key] = array(
'#type' => $filter['form-type'],
'#options' => globallink_get_target_options($selected_source_lang),
'#title' => check_plain($filter['title']),
'#disabled' => $disabled,
'#default_value' => isset($form_state['values']['target_language']) ? $form_state['values']['target_language'] : '',
'#attributes' => array(
'style' => array(
'padding:0px;',
),
),
'#prefix' => '<tr><td style="text-align: left;width: 15%;vertical-align: middle;border: none;">',
'#suffix' => '</tr>',
'#field_prefix' => '</td><td><div id="replace-target">',
'#field_suffix' => '</div></td>',
);
}
}
else {
if ($key == 'status' && module_exists('revisioning')) {
$default = 'status-1';
}
$form['filters']['status']['filters'][$key] = array(
'#type' => $filter['form-type'],
'#options' => $filter['options'],
'#title' => check_plain($filter['title']),
'#disabled' => $disabled,
'#default_value' => isset($selected_arr[$key]) ? $selected_arr[$key] : $default,
'#attributes' => array(
'style' => array(
'padding:0px;',
),
),
'#prefix' => '<tr><td style="text-align: left;width: 15%;vertical-align: middle;border: none;">',
'#suffix' => '</tr>',
'#field_suffix' => '</td>',
'#field_prefix' => '</td><td>',
);
}
}
}
elseif ($key == 'modified-after') {
drupal_add_library('system', 'ui.datepicker');
drupal_add_js('jQuery(document).ready(function(){
jQuery( ".pickadate" ).datepicker({
dateFormat: "mm/dd/yy",
maxDate: 0,
autoSize: true,
showOn: "button",
buttonImage: "' . $GLOBALS['base_url'] . '/' . $module_path . '/css/icon-calendar.png",
buttonImageOnly: true,
buttonText: "Click to select date"
});});', 'inline');
$form['filters']['status']['filters'][$key] = array(
'#type' => $filter['form-type'],
'#title' => check_plain($filter['title']),
'#disabled' => $disabled,
'#attributes' => array(
'class' => array(
'pickadate',
),
'style' => array(
'padding:0px;',
),
),
'#default_value' => isset($selected_arr[$key]) ? format_date($selected_arr[$key], 'custom', 'm/d/Y') : '',
'#prefix' => "<tr><td style='text-align: left;width: 15%;vertical-align: middle;border: none;'>",
'#suffix' => '</tr></table></div>',
'#field_suffix' => '</td>',
'#field_prefix' => '</td><td>',
);
}
elseif ($key == 'modified') {
$form['filters']['status']['filters'][$key] = array(
'#type' => $filter['form-type'],
'#title' => check_plain($filter['title']),
'#options' => $filter['options'],
'#disabled' => $disabled,
'#default_value' => isset($selected_arr[$key]) ? $selected_arr[$key] : 0,
'#attributes' => array(
'class' => array(
'container-inline',
),
'style' => array(
'padding:0px;',
),
),
'#prefix' => '<div class="container-inline"><table><tr><td style="text-align: left;width: 15%;vertical-align: middle;border: none;">',
'#suffix' => '</tr>',
'#field_suffix' => '</td>',
'#field_prefix' => '</td><td>',
);
}
elseif ($key == 'title') {
$form['filters']['status']['filters'][$key] = array(
'#type' => $filter['form-type'],
'#title' => check_plain($filter['title']),
'#disabled' => $disabled,
'#default_value' => isset($selected_arr[$key]) ? $selected_arr[$key] : '',
'#attributes' => array(
'size' => 30,
),
'#prefix' => '<tr><td style="text-align: left;width: 15%;vertical-align: middle;border: none;">',
'#suffix' => '</tr>',
'#field_suffix' => '</td>',
'#field_prefix' => '</td><td>',
);
}
}
$form['filters']['status']['actions'] = array(
'#type' => 'actions',
'#attributes' => array(
'class' => array(
'container-inline',
),
),
);
$disable_submit = FALSE;
if (isset($_SESSION['globallink_dashboard_filter'])) {
if (count($_SESSION['globallink_dashboard_filter']) > 0) {
$disable_submit = TRUE;
}
}
$form['filters']['status']['actions']['submit'] = array(
'#type' => 'submit',
'#value' => t('Filter'),
'#disabled' => $disable_submit,
);
if (count($session)) {
$form['filter-search'] = array(
'#type' => 'fieldset',
'#title' => t('FILTER CRITERIA'),
);
$form['filter-search']['filter-markup'] = array(
'#type' => 'container',
);
$form['filter-search']['filter-markup'][] = array(
'#markup' => '<table>',
);
$filters = globallink_build_filters(TRUE);
foreach ($session as $filter) {
list($type, $value) = $filter;
$selected_arr[$type] = $value;
$label = '';
if ($type == 'node_parent') {
continue;
}
if (isset($filters[$type]['options'])) {
$label = $filters[$type]['options'][$value];
}
elseif ($filters[$type]['field'] == 'changed') {
$label = format_date($value, 'custom', 'm/d/Y');
}
else {
$label = $value;
}
$form['filter-search']['filter-markup'][] = array(
'#markup' => '<tr><td style="text-align: left;width: 15%;vertical-align: middle;border: none;"><b>' . $filters[$type]['title'] . '</b>: </td><td style="text-align: left;width: 85%;vertical-align: middle;border: none;">' . str_replace(' ', '', $label) . '</td></tr>',
);
}
$form['filter-search']['filter-markup'][] = array(
'#markup' => '</table>',
);
$form['filter-search']['status']['actions'] = array(
'#type' => 'actions',
'#attributes' => array(
'class' => array(
'container-inline',
),
),
);
$form['filter-search']['status']['actions']['reset'] = array(
'#type' => 'submit',
'#value' => t('Reset'),
);
}
}
else {
$form['tpt_node_types']['no_type'] = array(
'#type' => 'markup',
'#prefix' => '<br/><b><i>',
'#markup' => t('No Content types enabled for translation.'),
'#suffix' => '</i></b>',
);
}
}
else {
$form['locale_mapping']['no_mapping'] = array(
'#type' => 'markup',
'#prefix' => '<br/><b><i>',
'#markup' => t('No GlobalLink locale mapping found.'),
'#suffix' => '</i></b>',
);
}
return $form;
}