fix: scope Alpine gitea_workspace + commit admin fallback + settings cleanup
1. gitea_workspace.html: owner/repo en Jinja2 dans la topbar (pas Alpine) 2. gitea.py: save_file/delete_file → _require_gitea (admin token can write) 3. settings.html: retrait doublon defaultView, fix workspace_name Jinja2
This commit is contained in:
@@ -88,7 +88,7 @@ async def get_file(request: Request, owner: str, repo: str, path: str):
|
|||||||
async def save_file(request: Request, owner: str, repo: str):
|
async def save_file(request: Request, owner: str, repo: str):
|
||||||
"""Create or update a file in the repo."""
|
"""Create or update a file in the repo."""
|
||||||
import json
|
import json
|
||||||
gitea = _require_user_gitea(request)
|
gitea = _require_gitea(request) # admin token can write too
|
||||||
try:
|
try:
|
||||||
body = await request.json()
|
body = await request.json()
|
||||||
except Exception:
|
except Exception:
|
||||||
@@ -111,7 +111,7 @@ async def save_file(request: Request, owner: str, repo: str):
|
|||||||
async def delete_file(request: Request, owner: str, repo: str):
|
async def delete_file(request: Request, owner: str, repo: str):
|
||||||
"""Delete a file from the repo."""
|
"""Delete a file from the repo."""
|
||||||
import json
|
import json
|
||||||
gitea = _require_user_gitea(request)
|
gitea = _require_gitea(request) # admin token can write too
|
||||||
path = request.query_params.get("path", "")
|
path = request.query_params.get("path", "")
|
||||||
sha = request.query_params.get("sha", "")
|
sha = request.query_params.get("sha", "")
|
||||||
message = request.query_params.get("message", "Delete via FlowDeck")
|
message = request.query_params.get("message", "Delete via FlowDeck")
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<div class="topbar-left">
|
<div class="topbar-left">
|
||||||
<a href="/workspaces" class="breadcrumb" style="color:rgba(255,255,255,.5);text-decoration:none;">Home</a>
|
<a href="/workspaces" class="breadcrumb" style="color:rgba(255,255,255,.5);text-decoration:none;">Home</a>
|
||||||
<span class="page-title-topbar" x-text="owner + '/' + repo"></span>
|
<span class="page-title-topbar">{{ owner }}/{{ repo }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="topbar-right">
|
<div class="topbar-right">
|
||||||
<button class="page-action-btn" @click="refreshTree()" title="Refresh">🔄</button>
|
<button class="page-action-btn" @click="refreshTree()" title="Refresh">🔄</button>
|
||||||
|
|||||||
@@ -259,22 +259,7 @@
|
|||||||
<div class="setting-row">
|
<div class="setting-row">
|
||||||
<div>
|
<div>
|
||||||
<div class="setting-label">Workspace name</div>
|
<div class="setting-label">Workspace name</div>
|
||||||
<div class="setting-desc" x-text="'{{ workspace_name }}'"></div>
|
<div class="setting-desc">{{ workspace_name }}</div>
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="setting-row">
|
|
||||||
<div>
|
|
||||||
<div class="setting-label">Default view</div>
|
|
||||||
<div class="setting-desc">Choose the default view for new pages</div>
|
|
||||||
</div>
|
|
||||||
<div class="setting-control">
|
|
||||||
<select class="settings-select" x-model="defaultView" @change="saveDefaultView()">
|
|
||||||
<option value="tree">🌳 Tree</option>
|
|
||||||
<option value="list">📋 List</option>
|
|
||||||
<option value="details">📊 Details</option>
|
|
||||||
<option value="title">🏷️ Cards</option>
|
|
||||||
<option value="content">📝 Content</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user