lingotek.ajax.inc in Lingotek Translation 7.3
Same filename and directory in other branches
Page handlers and supporting routines for Ajax callbacks.
File
includes/lingotek.ajax.incView source
<?php
/**
* @file
* Page handlers and supporting routines for Ajax callbacks.
*/
/**
* Page handler for completing the current phases of remote Lingotek documents.
*
* @param object $node
* The node whose targets should have phases marked as complete.
*
* @return string
* JSON-encoded return data.
*/
function lingotek_page_mark_phases_complete($node) {
$output = array(
'success' => TRUE,
);
if (!empty($_POST['token']) && drupal_valid_token($_POST['token'])) {
if (!empty($_POST['targets']) && is_array($_POST['targets'])) {
$languages = language_list();
if ($lingotek_document_id = lingotek_lingonode($node->nid, 'document_id')) {
$targets = LingotekDocument::load($lingotek_document_id)
->translationTargets();
$api = LingotekApi::instance();
foreach ($_POST['targets'] as $target) {
if ($remote_target = $api
->getTranslationTarget($targets[$target]->id)) {
$current_phase_id = lingotek_current_phase($remote_target->phases);
if ($api
->markPhaseComplete($current_phase_id)) {
drupal_set_message(t('Marked phase complete for @language', array(
'@language' => $languages[$target]->name,
)));
}
else {
drupal_set_message(t('Unable to mark the current phase as complete for @language.', array(
'@language' => $languages[$target]->name,
)), 'error');
}
}
else {
drupal_set_message(t('Unable to mark the current phase as complete for @language.', array(
'@language' => $languages[$target]->name,
)), 'error');
}
}
}
else {
drupal_set_message(t('Unable to location Lingotek Document. No phases were marked as complete.'), 'error');
LingotekLog::error('Unable to locate Lingotek Document for node @node_id.', array(
'@node_id' => $node->nid,
));
}
}
else {
drupal_set_message(t('No target langauges were selected.'), 'error');
}
}
return drupal_json_output($output);
}
Functions
Name | Description |
---|---|
lingotek_page_mark_phases_complete | Page handler for completing the current phases of remote Lingotek documents. |