feat: add refresh functionality to UI and document future feature requests

This commit is contained in:
Martin Tranberg
2026-03-31 12:05:50 +02:00
parent f7cebfc489
commit 6659ebd6ac
2 changed files with 57 additions and 1 deletions

View File

@@ -41,4 +41,10 @@ Den færdige fil findes i mappen `dist/`. Husk at placere `settings.json` i samm
"tenant_id": "DIN_TENANT_ID",
"temp_dir": "C:\\Temp_SP"
}
## Feature Request
1. Tilføj funktion til at gemme og administrere, flere tenants.
2. Debug log til at se hvad der sker i baggrunden.
3. Exteded log for 14 dage, som logger alle handlinger brugeren forateager sig i appen.
4. Licens styring, så man kan licencere programmet til kunder. Der skal være mulighed for 1 år, 3 år og unlimited.
```

View File

@@ -59,6 +59,7 @@ STRINGS = {
"btn_save_changes": "💾 Gem ændringer i SharePoint",
"btn_login": "Log ind",
"btn_logged_in": "Logget ind",
"btn_refresh": "🔄 Opdater",
"btn_upload_file": "📤 Upload Fil",
"btn_upload_folder": "📁 Upload Mappe",
"btn_new_folder": " Ny Mappe",
@@ -128,6 +129,7 @@ STRINGS = {
"btn_save_changes": "💾 Save changes to SharePoint",
"btn_login": "Login",
"btn_logged_in": "Logged in",
"btn_refresh": "🔄 Refresh",
"btn_upload_file": "📤 Upload File",
"btn_upload_folder": "📁 Upload Folder",
"btn_new_folder": " New Folder",
@@ -315,6 +317,11 @@ class SharePointApp(wx.Frame):
self.home_btn.Bind(wx.EVT_BUTTON, self.load_sites)
nav_hbox.Add(self.home_btn, 0, wx.LEFT | wx.ALIGN_CENTER_VERTICAL, 5)
self.refresh_btn = wx.Button(nav_panel, label=self.get_txt("btn_refresh"), size=(100, 30))
self.refresh_btn.Disable()
self.refresh_btn.Bind(wx.EVT_BUTTON, self.on_refresh)
nav_hbox.Add(self.refresh_btn, 0, wx.LEFT | wx.ALIGN_CENTER_VERTICAL, 5)
# NY KNAP: Gem ændringer (Vises kun ved redigering)
self.done_btn = wx.Button(nav_panel, label=self.get_txt("btn_save_changes"), size=(200, 30))
self.done_btn.SetBackgroundColour(wx.Colour(255, 69, 0)) # OrangeRed
@@ -372,6 +379,7 @@ class SharePointApp(wx.Frame):
self.tree_ctrl.AssignImageList(self.image_list)
self.tree_ctrl.Bind(wx.EVT_TREE_ITEM_EXPANDING, self.on_tree_expanding)
self.tree_ctrl.Bind(wx.EVT_TREE_SEL_CHANGED, self.on_tree_selected)
self.tree_ctrl.Bind(wx.EVT_TREE_ITEM_MENU, self.on_tree_right_click)
# Right side: File Area - ListCtrl
self.list_ctrl = wx.ListCtrl(self.splitter, style=wx.LC_REPORT | wx.BORDER_SUNKEN)
@@ -450,8 +458,26 @@ class SharePointApp(wx.Frame):
new_folder_item = menu.Append(wx.ID_ANY, self.get_txt("msg_new_folder_here"))
self.Bind(wx.EVT_MENU, self.on_new_folder_clicked, new_folder_item)
# Tilføj altid opdater punkt til sidst
if menu.GetMenuItemCount() > 0:
self.PopupMenu(menu)
menu.AppendSeparator()
refresh_item = menu.Append(wx.ID_ANY, self.get_txt("btn_refresh"))
self.Bind(wx.EVT_MENU, self.on_refresh, refresh_item)
self.PopupMenu(menu)
menu.Destroy()
def on_tree_right_click(self, event):
if self.is_editing: return
item = event.GetItem()
if not item.IsOk() or item == self.tree_root: return
self.tree_ctrl.SelectItem(item)
menu = wx.Menu()
refresh_item = menu.Append(wx.ID_ANY, self.get_txt("btn_refresh"))
self.Bind(wx.EVT_MENU, self.on_refresh, refresh_item)
self.PopupMenu(menu)
menu.Destroy()
# --- FILHÅNDTERING (Upload, Slet, Ny Mappe) ---
@@ -686,6 +712,7 @@ class SharePointApp(wx.Frame):
self.upload_btn.SetLabel(self.get_txt("btn_upload_file"))
self.upload_folder_btn.SetLabel(self.get_txt("btn_upload_folder"))
self.new_folder_btn.SetLabel(self.get_txt("btn_new_folder"))
self.refresh_btn.SetLabel(self.get_txt("btn_refresh"))
if self.access_token:
self.login_btn.SetLabel(self.get_txt("btn_logged_in"))
@@ -721,9 +748,31 @@ class SharePointApp(wx.Frame):
self.list_ctrl.Enable(not lock)
self.back_btn.Enable(not lock if len(self.history) > 1 else False)
self.home_btn.Enable(not lock)
self.refresh_btn.Enable(not lock)
self.login_btn.Enable(not lock)
wx.CallAfter(_do)
def on_refresh(self, event=None):
if self.is_editing: return
selected = self.tree_ctrl.GetSelection()
if not selected.IsOk() or selected == self.tree_root:
self.load_sites()
return
data = self.tree_item_data.get(selected)
if data:
self.set_status(f"Opdaterer '{data['name']}'...")
# Opdater Listekontrol (højre side)
threading.Thread(target=self._fetch_list_contents_bg, args=(data,), daemon=True).start()
# Opdater Træstruktur (venstre side) - Ryd og indlæs igen hvis det er en container
if data['type'] in ["SITE", "DRIVE", "FOLDER"]:
data["loaded"] = False # Tillad genindlæsning
if self.tree_ctrl.IsExpanded(selected):
# Genindlæs træets børn asynkront
threading.Thread(target=self._fetch_tree_children_bg, args=(selected, data), daemon=True).start()
def _refresh_current_view(self):
sel = self.tree_ctrl.GetSelection()
if sel.IsOk():
@@ -819,6 +868,7 @@ class SharePointApp(wx.Frame):
self.login_btn.SetLabel(self.get_txt("btn_logged_in"))
self.login_btn.SetBackgroundColour(wx.Colour(200, 200, 200)) # Grå
self.home_btn.Enable()
self.refresh_btn.Enable()
self.load_sites()
else:
self.set_status(self.get_txt("status_login_failed"))