feat: add dev tools page and update sidebar toggle and team mood dashboard UI
This commit is contained in:
@@ -41,6 +41,14 @@ if($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['share_project'])) {
|
||||
}
|
||||
}
|
||||
|
||||
if($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['remove_project_share'])) {
|
||||
$share_id = (int)$_POST['share_id'];
|
||||
$chk = query("SELECT ps.id FROM project_shares ps JOIN projects p ON ps.project_id=p.id WHERE ps.id=? AND p.owner_id=?", [$share_id, $user_id])->fetch();
|
||||
if($chk) {
|
||||
$pdo->prepare("DELETE FROM project_shares WHERE id=?")->execute([$share_id]);
|
||||
}
|
||||
}
|
||||
|
||||
// ── Fetch current folder content ──────────────────────────────────────────────
|
||||
$user_groups = get_user_groups($user_id);
|
||||
$my_group_ids = array_column($user_groups, 'id');
|
||||
@@ -138,6 +146,11 @@ function get_file_icon($name, $is_folder) {
|
||||
<input type="hidden" name="item_id" id="delete-item-id">
|
||||
</form>
|
||||
|
||||
<form method="POST" id="remove-share-form" style="display:none;">
|
||||
<input type="hidden" name="remove_project_share" value="1">
|
||||
<input type="hidden" name="share_id" id="remove-share-id">
|
||||
</form>
|
||||
|
||||
<!-- Hidden folder create form -->
|
||||
<form method="POST" id="new-folder-form" style="display:none;">
|
||||
<input type="hidden" name="create_folder" value="1">
|
||||
@@ -227,10 +240,13 @@ function get_file_icon($name, $is_folder) {
|
||||
<td style="font-size:0.8rem; color:var(--text-light);">
|
||||
<?php
|
||||
// Show shares
|
||||
$shares = query("SELECT ps.share_type, ps.share_id, u.username, g.name as gname FROM project_shares ps LEFT JOIN users u ON (ps.share_type='user' AND ps.share_id=u.id) LEFT JOIN groups g ON (ps.share_type='group' AND ps.share_id=g.id) WHERE ps.project_id=?", [$item['id']])->fetchAll();
|
||||
$shares = query("SELECT ps.id, ps.share_type, ps.share_id, u.username, g.name as gname FROM project_shares ps LEFT JOIN users u ON (ps.share_type='user' AND ps.share_id=u.id) LEFT JOIN groups g ON (ps.share_type='group' AND ps.share_id=g.id) WHERE ps.project_id=?", [$item['id']])->fetchAll();
|
||||
foreach($shares as $sh) {
|
||||
echo '<span style="font-size:0.72rem; background:rgba(var(--primary-rgb),0.1); color:var(--primary); padding:1px 5px; border-radius:8px; margin:1px; display:inline-block;">';
|
||||
echo '<span style="font-size:0.72rem; background:rgba(var(--primary-rgb),0.1); color:var(--primary); padding:1px 5px; border-radius:8px; margin:1px; display:inline-flex; align-items:center; gap:3px;">';
|
||||
echo $sh['share_type']==='user' ? ('👤 '.htmlspecialchars($sh['username']??'')) : ('👥 '.htmlspecialchars($sh['gname']??''));
|
||||
if($item['is_mine']) {
|
||||
echo '<button type="button" style="border:none;background:transparent;color:inherit;cursor:pointer;line-height:1;" title="Unshare" onclick="removeProjectShare('.$sh['id'].')">×</button>';
|
||||
}
|
||||
echo '</span>';
|
||||
}
|
||||
if(!$shares) echo '<span style="color:var(--text-light); font-size:0.8rem;">—</span>';
|
||||
@@ -283,6 +299,12 @@ function openShare(id) {
|
||||
document.getElementById('share-modal').classList.add('active');
|
||||
}
|
||||
|
||||
function removeProjectShare(shareId) {
|
||||
if(!confirm('Unshare this item?')) return;
|
||||
document.getElementById('remove-share-id').value = shareId;
|
||||
document.getElementById('remove-share-form').submit();
|
||||
}
|
||||
|
||||
function showNewFolderDialog() {
|
||||
const name = prompt('New folder name:');
|
||||
if(name && name.trim()) {
|
||||
|
||||
Reference in New Issue
Block a user