Fixed ajax support to also update the current dir permissions
This commit is contained in:
parent
4549cf519e
commit
364e7991a4
|
@ -20,6 +20,8 @@ $doBreadcrumb = isset($_GET['breadcrumb']);
|
|||
$data = array();
|
||||
$baseUrl = OCP\Util::linkTo('files', 'index.php') . '?dir=';
|
||||
|
||||
$permissions = \OCA\files\lib\Helper::getDirPermissions($dir);
|
||||
|
||||
// Make breadcrumb
|
||||
if($doBreadcrumb) {
|
||||
$breadcrumb = \OCA\files\lib\Helper::makeBreadcrumb($dir);
|
||||
|
@ -38,6 +40,8 @@ $list = new OCP\Template("files", "part.list", "");
|
|||
$list->assign('files', $files, false);
|
||||
$list->assign('baseURL', $baseUrl, false);
|
||||
$list->assign('downloadURL', OCP\Util::linkToRoute('download', array('file' => '/')));
|
||||
$list->assign('isPublic', false);
|
||||
$data['files'] = $list->fetchPage();
|
||||
$data['permissions'] = $permissions;
|
||||
|
||||
OCP\JSON::success(array('data' => $data));
|
||||
|
|
|
@ -65,19 +65,7 @@ $breadcrumbNav = new OCP\Template('files', 'part.breadcrumb', '');
|
|||
$breadcrumbNav->assign('breadcrumb', $breadcrumb);
|
||||
$breadcrumbNav->assign('baseURL', OCP\Util::linkTo('files', 'index.php') . '?dir=');
|
||||
|
||||
$permissions = OCP\PERMISSION_READ;
|
||||
if (\OC\Files\Filesystem::isCreatable($dir . '/')) {
|
||||
$permissions |= OCP\PERMISSION_CREATE;
|
||||
}
|
||||
if (\OC\Files\Filesystem::isUpdatable($dir . '/')) {
|
||||
$permissions |= OCP\PERMISSION_UPDATE;
|
||||
}
|
||||
if (\OC\Files\Filesystem::isDeletable($dir . '/')) {
|
||||
$permissions |= OCP\PERMISSION_DELETE;
|
||||
}
|
||||
if (\OC\Files\Filesystem::isSharable($dir . '/')) {
|
||||
$permissions |= OCP\PERMISSION_SHARE;
|
||||
}
|
||||
$permissions = \OCA\files\lib\Helper::getDirPermissions($dir);
|
||||
|
||||
if ($needUpgrade) {
|
||||
OCP\Util::addscript('files', 'upgrade');
|
||||
|
|
|
@ -7,9 +7,11 @@ var FileList={
|
|||
});
|
||||
},
|
||||
update:function(fileListHtml) {
|
||||
var $fileList = $('#fileList');
|
||||
var $fileList = $('#fileList'),
|
||||
permissions = $('#permissions').val(),
|
||||
isCreatable = (permissions & OC.PERMISSION_CREATE) !== 0;
|
||||
$fileList.empty().html(fileListHtml);
|
||||
$('#emptycontent').toggleClass('hidden', $fileList.find('tr').length > 0);
|
||||
$('#emptycontent').toggleClass('hidden', !isCreatable || $fileList.find('tr').length > 0);
|
||||
$fileList.find('tr').each(function () {
|
||||
FileActions.display($(this).children('td.filename'));
|
||||
});
|
||||
|
@ -216,6 +218,10 @@ var FileList={
|
|||
return;
|
||||
}
|
||||
|
||||
if (result.data.permissions){
|
||||
FileList.setDirectoryPermissions(result.data.permissions);
|
||||
}
|
||||
|
||||
if(typeof(result.data.breadcrumb) != 'undefined'){
|
||||
$controls.find('.crumb').remove();
|
||||
$controls.prepend(result.data.breadcrumb);
|
||||
|
@ -232,6 +238,12 @@ var FileList={
|
|||
|
||||
FileList.update(result.data.files);
|
||||
},
|
||||
setDirectoryPermissions: function(permissions){
|
||||
var isCreatable = (permissions & OC.PERMISSION_CREATE) !== 0;
|
||||
$('#permissions').val(permissions);
|
||||
$('.creatable').toggleClass('hidden', !isCreatable);
|
||||
$('.notCreatable').toggleClass('hidden', isCreatable);
|
||||
},
|
||||
remove:function(name){
|
||||
$('tr').filterAttr('data-file',name).find('td.filename').draggable('destroy');
|
||||
$('tr').filterAttr('data-file',name).remove();
|
||||
|
|
|
@ -111,4 +111,26 @@ class Helper
|
|||
}
|
||||
return $breadcrumb;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the numeric permissions for the given directory.
|
||||
* @param string $dir directory without trailing slash
|
||||
* @return numeric permissions
|
||||
*/
|
||||
public static function getDirPermissions($dir){
|
||||
$permissions = \OCP\PERMISSION_READ;
|
||||
if (\OC\Files\Filesystem::isCreatable($dir . '/')) {
|
||||
$permissions |= \OCP\PERMISSION_CREATE;
|
||||
}
|
||||
if (\OC\Files\Filesystem::isUpdatable($dir . '/')) {
|
||||
$permissions |= \OCP\PERMISSION_UPDATE;
|
||||
}
|
||||
if (\OC\Files\Filesystem::isDeletable($dir . '/')) {
|
||||
$permissions |= \OCP\PERMISSION_DELETE;
|
||||
}
|
||||
if (\OC\Files\Filesystem::isSharable($dir . '/')) {
|
||||
$permissions |= \OCP\PERMISSION_SHARE;
|
||||
}
|
||||
return $permissions;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
<!--[if IE 8]><style>input[type="checkbox"]{padding:0;}table td{position:static !important;}</style><![endif]-->
|
||||
<div id="controls">
|
||||
<?php print_unescaped($_['breadcrumb']); ?>
|
||||
<?php if ($_['isCreatable']):?>
|
||||
<div class="actions <?php if (isset($_['files']) and count($_['files'])==0):?>emptycontent<?php endif; ?>">
|
||||
<div class="actions creatable <?php if (!$_['isCreatable']):?>hidden<?php endif; ?> <?php if (isset($_['files']) and count($_['files'])==0):?>emptycontent<?php endif; ?>">
|
||||
<div id="new" class="button">
|
||||
<a><?php p($l->t('New'));?></a>
|
||||
<ul>
|
||||
|
@ -50,10 +49,9 @@
|
|||
</div>
|
||||
</div>
|
||||
<div id="file_action_panel"></div>
|
||||
<?php elseif( !$_['isPublic'] ):?>
|
||||
<div class="notCreatable notPublic <?php if ($_['isCreatable'] or $_['isPublic'] ):?>hidden<?php endif; ?>">
|
||||
<div class="actions"><input type="button" disabled value="<?php p($l->t('You don’t have write permissions here.'))?>"></div>
|
||||
<input type="hidden" name="dir" value="<?php p($_['dir']) ?>" id="dir">
|
||||
<?php endif;?>
|
||||
</div>
|
||||
<input type="hidden" name="permissions" value="<?php p($_['permissions']); ?>" id="permissions">
|
||||
</div>
|
||||
|
||||
|
|
Loading…
Reference in New Issue