type == 'folder') {
$folder_parent->title = '..';
$children = array_merge(array($folder_parent), $children);
}
}
foreach ($children as $child) {
$author = $child->author;
$updated = date_format($child->properties['LastModificationDate'], 'n/j/Y g:i A');
$actions = array(
l(t('properties'), 'cmis/properties', array('attributes' => array('class' => 'action properties'), 'query' => array('id' => $child->id))),
l(t('delete'), 'cmis/delete', array('query' => array('id' => $child->id, 'return_url' => $_GET['q'])))
);
// @todo should be baseType in place of type
switch ($child->type) {
case 'folder':
$icon = $folder_img;
if (isset($context['id'])) {
$link = l($child->title, 'cmis/browser', array('query' => array('id' => $child->id)));
}
else {
$link = l($child->title, implode('/', array_merge(array('cmis/browser'), $context['bcarray'], array($child->title))));
}
$mimetype = 'Space';
$size = '';
break;
default:
$icon = $document_img;
$link = l($child->title, 'cmis/browser', array('query' => array('id' => $child->id)));
$mimetype = $child->contentMimeType;
$size = number_format($child->size / 1000, 2, '.', ',') .' K';
}
$rows[] = array($icon .' '. $link, $mimetype, $size, $author, $updated, theme('item_list', $actions, NULL, 'ul', array('class'=>'actions')));
}
drupal_add_js('
$(document).ready(function() {
$("A.action.properties").each(function() {
$(this).click(function() {
$(this).parents("LI:first").toggleClass("expanded").toggleClass("collapsed");
if ($(this).parents("TR:first").next().filter("TR.details").toggle().length == 0) {
$("
'. t('Loading'). '... | ")
.load(this.href+"&no_layout")
.insertAfter($(this).parents("TR:first"))
.wrapAll("
")
.before(" | ");
}
return false;
}).parents("LI:first").toggleClass("collapsed");
});
});', 'inline');
return theme('table', $header, $rows, array('class' => 'cmis_browser_browse_children'));
}
/**
* Theme for cmis_browser breadcrumb
*
* @param $bcarray
*/
function theme_cmis_browser_browse_breadcrumb($bcarray) {
$next_img = theme('image', drupal_get_path('module', 'cmis_browser') .'/images/next.gif');
$contents .= '';
$currentpath = '';
foreach ($bcarray as $space) {
$currentpath .= '/'. $space;
$pagelink = l($space, 'cmis/browser'. $currentpath);
$contents .= $pagelink;
if ($space != end($bcarray)) {
$contents .= $next_img .' ';
}
}
$contents .= '
';
return $contents;
}
/**
* Generate CMIS document list view.
* It displays document icon, name, download link, description, size, last modification date,
* modifier and thumbnail if any.
*
* @param $target_path
*/
function theme_cmis_browser_doc_view($target_path) {
module_load_include('api.inc', 'cmis');
$folder_img = theme('image', drupal_get_path('module', 'cmis_browser') .'/images/space.gif');
$document_img = theme('image', drupal_get_path('module', 'cmis_browser') .'/images/file.png');
try {
$repository = cmisapi_getRepositoryInfo();
$cmis_object = cmisapi_getProperties($repository->repositoryId, drupal_urlencode($target_path));
}
catch (CMISException $e) {
cmis_error_handler('cmis_browser', $e);
return t('Errors occured while trying to access CMIS repository. Please check Drupal error logs. (@error)', array('@error' => $e->getMessage()));
}
$updated = date_format($cmis_object->updated, 'n/j/Y g:i A');
if ($cmis_object->type == 'folder') {
$icon = $folder_img;
$link = l($cmis_object->title, 'cmis/browser'. $target_path);
}
else {
$icon = $document_img;
$link = l($cmis_object->title, 'cmis/browser', array('query' => array('id' => $cmis_object->id)));
}
$contents = ''. $icon . $link .'
';
$contents .= ''. $cmis_object->summary .'
';
$contents .= $cmis_object->type == 'folder'?'':' Size:'. number_format($cmis_object->size/1000, 2, '.', ',') .' K
';
$contents .= ' Modified:'. $updated .'
';
$contents .= ' Modifier:'. $cmis_object->author .'
';
return $contents;
}
/**
* Theme for cmis_browser_content_properties action.
*
* @param $cmis_object
*/
function theme_cmis_browser_content_properties($cmis_object) {
$output = theme('box', $cmis_object->title, $cmis_object->summary);
$header = array(t('Property'), t('Value'));
$rows = array();
$rows[] = array(''. t('Author') .'', $cmis_object->author);
$rows[] = array(''. t('Type') .'', $cmis_object->author);
foreach ($cmis_object->properties as $property => $value) {
if ($value instanceof DateTime) {
$rows[] = array(''. $property.'', date_format($value, 'n/j/Y g:i A'));
}
else {
$rows[] = array(''. $property.'', $value);
}
}
return $output . theme('table', NULL, $rows);
}