Skip to content
This repository was archived by the owner on Sep 10, 2021. It is now read-only.

Commit b8255a2

Browse files
author
Charles Marion
committed
ENH: fixed some small bugs with the browser
1 parent 909c129 commit b8255a2

File tree

9 files changed

+59
-13
lines changed

9 files changed

+59
-13
lines changed

core/controllers/BrowseController.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,14 @@ public function getfolderscontentAction()
197197
$tmp['folder_id']=$folder->getFolderId();
198198
$tmp['name']=$folder->getName();
199199
$tmp['creation']=$this->Component->Date->ago($folder->getDate(),true);
200+
if($tmp['name']=='Public'||$tmp['name']=='Private')
201+
{
202+
$tmp['deletable']='false';
203+
}
204+
else
205+
{
206+
$tmp['deletable']='true';
207+
}
200208
$tmp['policy']=$folder->policy;
201209
$jsonContent[$folder->getParentId()]['folders'][]=$tmp;
202210
unset($tmp);

core/controllers/FolderController.php

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,9 @@ public function viewAction()
7676
$this->view->folders=$folders;
7777
$this->view->items=$items;
7878
$this->view->header=$header;
79+
80+
$this->view->isModerator=$this->Folder->policyCheck($folder, $this->userSession->Dao,MIDAS_POLICY_WRITE);
81+
$this->view->isAdmin=$this->Folder->policyCheck($folder, $this->userSession->Dao,MIDAS_POLICY_ADMIN);
7982
}// end View Action
8083

8184

@@ -100,6 +103,16 @@ public function deleteAction()
100103
{
101104
throw new Zend_Exception("Permissions error.");
102105
}
106+
107+
$parent=$folder->getParent();
108+
if($this->Folder->getCommunity($parent)!=false||$this->Folder->getCommunity($folder)!=false)
109+
{
110+
throw new Zend_Exception("Community Folder. You cannot delete it.");
111+
}
112+
if($this->Folder->getUser($parent)!=false||$this->Folder->getUser($folder)!=false)
113+
{
114+
throw new Zend_Exception("User Folder. You cannot delete it.");
115+
}
103116
$this->Folder->delete($folder);
104117
$folderInfo=$folder->_toArray();
105118
echo JsonComponent::encode(array(true,$this->t('Changes saved'),$folderInfo));

core/models/pdo/FolderModel.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@ public function getSizeFiltered($folders,$userDao=null,$policy=0)
123123
->where('u2g.user_id = ?' , $userId)
124124
) .'))' ,array());
125125
}
126+
126127
$subqueryGroup ->where('left_indice > ?', $folder->getLeftIndice())
127128
->where('right_indice < ?', $folder->getRightIndice());
128129

@@ -140,7 +141,7 @@ public function getSizeFiltered($folders,$userDao=null,$policy=0)
140141
,array() );
141142
if(!$isAdmin)
142143
{
143-
$sql ->joinLeft(array('ip' => 'itempolicyuser'),'
144+
$sql ->joinLeft(array('ip' => 'itempolicyuser'),'
144145
i.item_id = ip.item_id AND '.$this->database->getDB()->quoteInto('policy >= ?', $policy).'
145146
AND '.$this->database->getDB()->quoteInto('user_id = ? ',$userId).' ',array())
146147
->joinLeft(array('ipg' => 'itempolicygroup'),'
@@ -161,7 +162,6 @@ public function getSizeFiltered($folders,$userDao=null,$policy=0)
161162
;
162163
}
163164

164-
165165
$row = $this->database->fetchRow($sql);
166166
$folders[$key]->count = $row['count'];
167167
$folders[$key]->size = $row['sum'];

core/public/js/browse/browse.index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
$(document).ready(function() {
22

3+
34
$("#browseTable").treeTable();
45

56
$("img.tableLoading").hide();

core/public/js/common/common.browser.js

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -148,10 +148,13 @@
148148
html+='<li><a href="'+json.global.webroot+'/folder/'+element+'">'+json.browse.view+'</a></li>';
149149
html+='<li><a href="'+json.global.webroot+'/download?folders='+element+'">'+json.browse.download+'</a></li>';
150150
if(policy>=1)
151-
{
152-
html+='<li><a onclick="deleteFolder('+element+');">'+json.browse['delete']+'</a></li>';
151+
{
153152
html+='<li><a onclick="createNewFolder('+element+');">'+json.browse.createFolder+'</a></li>';
154-
html+='<li><a>'+json.browse.share+'</a></li>';
153+
if(node.attr('deletable')!=undefined && node.attr('deletable')=='true')
154+
{
155+
html+='<li><a type="folder" element="'+element+'" class="sharingLink">'+json.browse.share+'</a></li>';
156+
html+='<li><a onclick="deleteFolder('+element+');">'+json.browse['delete']+'</a></li>';
157+
}
155158
}
156159
}
157160
if(type=='item')
@@ -160,10 +163,14 @@
160163
html+='<li><a href="'+json.global.webroot+'/download?items='+element+'">'+json.browse.downloadLastest+'</a></li>';
161164
if(policy>=1)
162165
{
163-
html+='<li><a>'+json.browse.share+'</a></li>';
166+
html+='<li><a type="item" element="'+element+'" class="sharingLink">'+json.browse.share+'</a></li>';
164167
}
165168
}
166169
$('div.viewAction ul').html(html);
170+
$('a.sharingLink').click(function(){
171+
loadDialog("sharing"+$(this).attr('type')+$(this).attr('element'),"/share/dialog?type="+$(this).attr('type')+'&element='+$(this).attr('element'));
172+
showDialog(json.browse.share);
173+
});
167174
$('div.viewAction ul').fadeIn('fast');
168175
});
169176
}

core/public/js/layout/jquery.treeTable.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -320,7 +320,7 @@
320320
var padding=parseInt(node.find('td:first').css('padding-left').slice(0,-2));
321321
var html='';
322322
$.each(elements['folders'], function(index, value) {
323-
html+= "<tr id='"+id+"-"+i+"' class='parent child-of-"+id+"' ajax='"+value['folder_id']+"'type='folder' policy='"+value['policy']+"' element='"+value['folder_id']+"'>";
323+
html+= "<tr id='"+id+"-"+i+"' deletable='"+value['deletable']+"' class='parent child-of-"+id+"' ajax='"+value['folder_id']+"'type='folder' policy='"+value['policy']+"' element='"+value['folder_id']+"'>";
324324
html+= " <td><span class='folder'>"+trimName(value['name'],padding)+"</span></td>";
325325
html+= " <td>"+'<img class="folderLoading" element="'+value['folder_id']+'" alt="" src="'+json.global.coreWebroot+'/public/images/icons/loading.gif"/>'+"</td>";
326326
html+= " <td>"+value['creation']+"</td>";

core/views/community/view.phtml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,10 +74,14 @@ $this->headScript()->appendFile($this->coreWebroot.'/public/js/common/common.bro
7474
<tbody>
7575
<?php
7676
$node=1;
77-
7877
foreach($this->folders as $folder)
7978
{
80-
echo "<tr id='node--$node' class='parent' type='folder' element='{$folder->getFolderId()}' ajax='{$folder->getFolderId()}'>";
79+
$policy=MIDAS_POLICY_READ;
80+
if($this->isModerator||$this->isAdmin)
81+
{
82+
$policy=MIDAS_POLICY_WRITE;
83+
}
84+
echo "<tr id='node--$node' policy='$policy' class='parent' type='folder' element='{$folder->getFolderId()}' ajax='{$folder->getFolderId()}'>";
8185
echo " <td class='treeBrowseElement'><span class='folder'>{$folder->getName()}</span></td>";
8286
echo " <td><img class='folderLoading' element='{$folder->getFolderId()}' alt='' src='{$this->coreWebroot}/public/images/icons/loading.gif'/></td>";
8387
echo " <td>{$this->Date->ago($folder->getDate(),true)}</td>";

core/views/folder/view.phtml

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
foreach($this->folders as $folder)
2424
{
25-
echo "<tr id='node--$node' class='parent' type='folder' element='{$folder->getFolderId()}' ajax='{$folder->getFolderId()}'>";
25+
echo "<tr id='node--$node' deletable='true' policy='{$folder->policy}' class='parent' type='folder' element='{$folder->getFolderId()}' ajax='{$folder->getFolderId()}'>";
2626
echo " <td class='treeBrowseElement'><span class='folder'>{$folder->getName()}</span></td>";
2727
echo " <td><img class='folderLoading' element='{$folder->getFolderId()}' alt='' src='{$this->coreWebroot}/public/images/icons/loading.gif'/></td>";
2828
echo " <td>{$this->Date->ago($folder->getDate(),true)}</td>";
@@ -33,7 +33,7 @@
3333

3434
foreach($this->items as $item)
3535
{
36-
echo "<tr id='node--$node' class='' type='item' element='{$item->getItemId()}' >";
36+
echo "<tr id='node--$node' policy='{$item->policy}' class='' type='item' element='{$item->getItemId()}' >";
3737
echo " <td class='treeBrowseElement'><span class='file'>{$item->getName()}</span></td>";
3838
echo " <td>{$item->size}</td>";
3939
echo " <td>{$this->Date->ago($item->getDate(),true)}</td>";
@@ -85,7 +85,15 @@
8585
</div>
8686
</div>
8787

88-
<div class="defaultSideTrigger" type='folder' element='<?php echo $this->mainFolder->getFolderId() ?>'>
88+
<?php
89+
$policy=MIDAS_POLICY_READ;
90+
if($this->isModerator||$this->isAdmin)
91+
{
92+
$policy=MIDAS_POLICY_WRITE;
93+
}
94+
?>
95+
96+
<div class="defaultSideTrigger" policy='<?php echo $policy?>' type='folder' element='<?php echo $this->mainFolder->getFolderId() ?>'>
8997
</div>
9098

9199

core/views/user/userpage.phtml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,14 @@ $this->headScript()->appendFile($this->coreWebroot.'/public/js/common/common.bro
7474
<tbody>
7575
<?php
7676
$node=1;
77+
$policy=MIDAS_POLICY_READ;
78+
if($this->isViewAction)
79+
{
80+
$policy=MIDAS_POLICY_WRITE;
81+
}
7782
foreach($this->folders as $folder)
7883
{
79-
echo "<tr id='node--$node' class='parent' type='folder' element='{$folder->getFolderId()}' ajax='{$folder->getFolderId()}'>";
84+
echo "<tr id='node--$node' policy='$policy' class='parent' type='folder' element='{$folder->getFolderId()}' ajax='{$folder->getFolderId()}'>";
8085
echo " <td class='treeBrowseElement'><span class='folder'>{$folder->getName()}</span></td>";
8186
echo " <td><img class='folderLoading' element='{$folder->getFolderId()}' alt='' src='{$this->coreWebroot}/public/images/icons/loading.gif'/></td>";
8287
echo " <td>{$this->Date->ago($folder->getDate(),true)}</td>";

0 commit comments

Comments
 (0)