View source
<?php
function globallink_file_entity_dashboard($type) {
$default_date = format_date(REQUEST_TIME + 7 * 24 * 60 * 60, 'custom', 'm/d/Y');
drupal_add_library('system', 'ui.datepicker');
drupal_add_js('jQuery(function() {
jQuery(document).ajaxComplete(function() {
jQuery(".pickadate1").datepicker({
dateFormat: "mm/dd/yy",
defaultDate: "' . $default_date . '",
minDate: 0
});
});
});', array(
'group' => CSS_THEME,
'type' => 'inline',
'scope' => 'header',
'weight' => 80,
));
$_SESSION['globallink_selected_type'] = $type;
$array = array();
$array[] = drupal_get_form('globallink_file_entity_dashboard_filter_form');
$array[] = drupal_get_form('globallink_file_entity_dashboard_pager_form');
$array[] = drupal_get_form('globallink_file_entity_dashboard_form');
return $array;
}
function globallink_file_entity_dashboard_filter_form() {
module_load_include('inc', 'globallink', 'globallink');
$form = array();
$locales = globallink_get_mapped_drupal_locales(FALSE);
if (!empty($locales)) {
$filter = FALSE;
foreach ($locales as $key => $lang) {
$lang_filter[$key] = $lang;
}
$default_language = language_default();
$default_file_type = '[any]';
if (!empty($_SESSION['globallink_selected_file_entity_type'])) {
$default_file_type = $_SESSION['globallink_selected_file_entity_type'];
$filter = TRUE;
}
$file_type_filter = globallink_file_entity_get_filetype_list();
$form['select_file_entity_type'] = array(
'#type' => 'fieldset',
'#title' => t('FILTER FILE ENTITY'),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
);
$form['select_file_entity_type']['filters'] = array(
'#type' => 'container',
'#attributes' => array(
'class' => array(
'container-inline',
),
),
);
$form['select_file_entity_type']['filters']['types'] = array(
'#type' => 'select',
'#title' => 'File Types' . ': ',
'#options' => $file_type_filter,
'#default_value' => $default_file_type,
'#prefix' => '<div class="container-inline"><table><tr><td style="text-align: left;width: 15%;vertical-align: middle;border: none;">',
'#suffix' => '</tr></table></div>',
'#field_suffix' => '</td>',
'#field_prefix' => '</td><td>',
);
$disable_submit = $filter ? TRUE : FALSE;
$form['select_file_entity_type']['filters']['filter'] = array(
'#type' => 'submit',
'#value' => 'Filter',
'#disabled' => $disable_submit,
);
if ($filter) {
$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>",
);
if (!empty($default_file_type)) {
$form['filter-search']['filter-markup'][] = array(
'#markup' => "<tr><td style='text-align: left;width: 15%;vertical-align: middle;border: none;'><b>" . "File Types" . "</b>: </td><td style='text-align: left;width: 85%;vertical-align: middle;border: none;'>" . $file_type_filter[$default_file_type] . "</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' => 'Reset',
);
}
}
else {
$form['locale_mapping']['no_mapping'] = array(
'#type' => 'markup',
'#markup' => t('<br/><b><i>No GlobalLink locale mapping found.</i></b>'),
);
}
return $form;
}
function globallink_file_entity_dashboard_filter_form_submit($form, &$form_state) {
$op = isset($form_state['values']['op']) ? $form_state['values']['op'] : '';
switch ($op) {
case 'Filter':
$_SESSION['globallink_selected_file_entity_type'] = $form_state['values']['types'];
break;
case 'Reset':
$_SESSION['globallink_selected_file_entity_type'] = '';
break;
}
}
function globallink_file_entity_dashboard_pager_form() {
$module_path = drupal_get_path('module', 'globallink');
drupal_add_css($module_path . '/css/globallink.css');
$form = array();
$locales = globallink_get_mapped_drupal_locales(FALSE);
if (!empty($locales)) {
$form['page_counter']['markup'] = array(
'#type' => 'container',
'#attributes' => array(
'class' => array(
'tpt-center',
),
),
);
$form['page_counter']['markup']['p_count'] = array(
'#type' => 'textfield',
'#size' => 5,
'#default_value' => isset($_SESSION['globallink_file_entity_page_count']) ? $_SESSION['globallink_file_entity_page_count'][0] : TPT_PAGER_LIMIT,
'#field_prefix' => t('Show') . ' ',
'#field_suffix' => ' ' . t('records') . ' ',
'#prefix' => '<div class="container-inline">',
);
$form['page_counter']['markup']['action'] = array(
'#type' => 'submit',
'#value' => t('Go'),
'#suffix' => '</div>',
'#limit_validation_errors' => array(),
'#submit' => array(
'globallink_file_entity_dashboard_pager_form_submit',
),
'#access' => TRUE,
);
}
return $form;
}
function globallink_file_entity_dashboard_pager_form_submit($form, &$form_state) {
$op = isset($form_state['values']['op']) ? $form_state['values']['op'] : '';
if ($op != t('Go')) {
return;
}
$page_count = $form_state['input']['p_count'];
if (!is_numeric($page_count) || $page_count < 1) {
form_set_error('', t('Invalid Page Count.'));
}
else {
$_SESSION['globallink_file_entity_page_count'] = array(
$page_count,
);
return;
}
}
function globallink_file_entity_dashboard_form() {
module_load_include('inc', 'globallink_file_entity', 'globallink_file_entity');
module_load_include('inc', 'globallink', 'globallink');
module_load_include('inc', 'globallink', 'globallink_send_translations');
$module_path = drupal_get_path('module', 'globallink');
drupal_add_js($module_path . '/js/globallink_send_translations.js');
drupal_add_js(array(
'globallinkSendTranslations' => array(
'selectAll' => base_path() . globallink_get_root_menu('create-submission/select_all_js'),
'selectedPath' => base_path() . globallink_get_root_menu('create-submission/select_id_js'),
'selectedType' => GLOBALLINK_ENTITY_TYPE_FILE_ENTITY,
'sessionKey' => 'fids',
),
), 'setting');
drupal_add_css($module_path . '/css/globallink.css');
$form = array();
$default_checked = array();
if (isset($_SESSION['fids'])) {
$default_checked = $_SESSION['fids'];
}
$default_file_type = '[any]';
if (!empty($_SESSION['globallink_selected_file_entity_type'])) {
$default_file_type = $_SESSION['globallink_selected_file_entity_type'];
}
$languages = globallink_get_mapped_drupal_locales(FALSE);
if (isset($languages) && count($languages) > 1) {
$target_lang_arr = globallink_get_mapped_locales_with_drupal_desc(FALSE);
$source_lang_arr = globallink_get_mapped_locales_with_drupal_desc(FALSE);
$default_language = language_default();
$default = $default_language->language;
unset($target_lang_arr[globallink_get_locale_code($default)]);
$t_count = 0;
foreach ($target_lang_arr as $key => $value) {
$t_count++;
if ($t_count % 2 === 0) {
$target_lang_arr[$key] = ' ' . $value . '<BR/>';
}
else {
$target_lang_arr[$key] = ' ' . $value . ' ';
}
}
$page_count = TPT_PAGER_LIMIT;
if (isset($_SESSION['globallink_file_entity_page_count'])) {
$page_count = $_SESSION['globallink_file_entity_page_count'][0];
}
$header = array(
'fid' => array(
'field' => 'file.fid',
'data' => t('File Id'),
),
'title' => array(
'field' => 'file.title',
'data' => t('File Title'),
),
'bundle' => array(
'field' => 'file.bundle',
'data' => t('File Type'),
),
'category' => array(
'field' => 'file.category',
'data' => t('File Mime'),
),
'active' => t('In Active Submission'),
'preview' => t('Preview'),
);
$query = db_select('file_managed', 'file')
->fields('file')
->extend('PagerDefault')
->limit($page_count)
->extend('TableSort')
->orderByHeader($header);
$query
->condition('file.type', 'undefined', '<>');
if ($default_file_type != '[any]') {
$query
->condition('file.type', array(
$default_file_type,
), 'IN');
}
$results = $query
->execute();
$file_info = entity_get_info('file');
$count = 0;
$rows = array();
foreach ($results as $item) {
$count++;
$active = '';
$active_arr = globallink_file_entity_get_active_submission_by_id($item->fid);
if (!empty($active_arr)) {
foreach ($active_arr as $active_row) {
$l_title = globallink_format_display_string($active_row->submission);
$l_href = 'admin/globallink-translations/workbench/all/' . $active_row->submission_rid . '/' . $active_row->target_lang_code;
$l_options = array();
$active .= l($l_title, $l_href, $l_options) . ' - ' . $active_row->sub_target_lang_name . ' <BR/> ';
}
}
$rows[$item->fid] = array(
'fid' => l($item->fid, 'file/' . $item->fid . '/edit', array(
'attributes' => array(
'target' => '_blank',
),
)),
'title' => l($item->filename, 'file/' . $item->fid, array(
'attributes' => array(
'target' => '_blank',
),
)),
'bundle' => $item->type,
'category' => $item->filemime,
'active' => $active,
'preview' => globallink_file_entity_make_preview_link('Preview', $item->fid),
);
}
$form['table'] = array(
'#type' => 'tableselect',
'#header' => $header,
'#options' => $rows,
'#empty' => t('No items available'),
);
$cart_count = get_cart_count();
globallink_add_cart_form_elements($form, $header, $rows, $default_checked, $cart_count);
if ($count > 0) {
$form['pager'] = array(
'#markup' => theme('pager'),
);
}
}
form_load_include($form_state, 'inc', 'globallink', 'globallink_send_translations');
return $form;
}
function globallink_file_entity_dashboard_form_validate($form, &$form_state) {
return;
}
function globallink_dashboard_file_entity_form_submit($form, &$form_state) {
return;
}
function globallink_file_entity_make_preview_link($link_text = '', $id) {
drupal_add_js(array(
'my-modal-style' => array(
'modalSize' => array(
'type' => 'fixed',
'width' => 700,
'height' => 400,
),
'animation' => 'fadeIn',
),
), 'setting');
if (empty($link_text)) {
$link_text = 'Preview';
}
return '<div id="preview-link" style="text-align: left;" title="Click to Preview">' . l($link_text, 'admin/globallink-translations/dashboard/file_entity/preview/' . $id . '/nojs', array(
'attributes' => array(
'class' => 'ctools-use-modal ctools-modal-my-modal-style',
),
)) . '</div>';
}
function globallink_file_entity_preview($ajax) {
if ($ajax) {
ctools_include('ajax');
ctools_include('modal');
$form_state = array(
'ajax' => TRUE,
'title' => t('Preview'),
);
$output = ctools_modal_form_wrapper('globallink_file_entity_preview_content', $form_state);
if (!empty($form_state['ajax_commands'])) {
$output = $form_state['ajax_commands'];
}
print ajax_render($output);
drupal_exit();
}
else {
return drupal_get_form('globallink_file_entity_preview_content');
}
}
function globallink_file_entity_preview_content() {
module_load_include('inc', 'globallink', 'globallink_file_entity/globallink_file_entity');
module_load_include('inc', 'globallink', 'globallink');
$fid = arg(5);
$output = "";
$string = globallink_get_file_entity_xml($fid, NULL);
$xml = new SimpleXMLElement($string);
$elem = $xml->field
->count();
$output .= "<table><tr><th>Fields</th><th>Source Contents</th></tr>";
if ($elem > 0) {
foreach ($xml->field as $element) {
$tag = $element
->getName();
$value = (string) $element;
$label = (string) $element
->attributes()->field;
$output .= "<tr><td><strong>" . ucfirst($label) . "</strong></td><td>" . $value . "</td></tr>";
}
}
$output .= "</table>";
$form['preview'] = array(
'#markup' => $output,
);
return $form;
}
function globallink_file_entity_get_filetype_list() {
$t_arr = array(
'[any]' => 'Any',
);
$arr = array();
$file_types = file_type_get_enabled_types(FALSE);
foreach ($file_types as $file_type) {
$arr[$file_type->type] = $file_type->type;
}
asort($arr);
return $t_arr + $arr;
}