-
-
-
- Media Manager
- ... -
-
- ☁️
- Drop files or click to upload
-
- Direct to Drive • JPG, PNG, MP4
+
+
+
-
-
+
+
Loading...
+
+ ...
+
-
-
+
+
+
+
diff --git a/src/global.ts b/src/global.ts
index a22cb29..49c5b40 100644
--- a/src/global.ts
+++ b/src/global.ts
@@ -23,7 +23,7 @@ import { fillProductFromTemplate } from "./fillProductFromTemplate"
import { showSidebar, getQueueStatus, setQueueEnabled, deleteEdit, pushEdit } from "./sidebar"
import { checkRecentSales, reconcileSalesHandler } from "./salesSync"
import { installSalesSyncTrigger } from "./triggers"
-import { showMediaManager, getSelectedSku, getMediaForSku, saveFileToDrive, saveMediaChanges, getMediaDiagnostics, getPickerConfig, importFromPicker, debugScopes, createPhotoSession, checkPhotoSession, debugFolderAccess } from "./mediaHandlers"
+import { showMediaManager, getSelectedProductInfo, getMediaForSku, saveFileToDrive, saveMediaChanges, getMediaDiagnostics, getPickerConfig, importFromPicker, debugScopes, createPhotoSession, checkPhotoSession, debugFolderAccess } from "./mediaHandlers"
import { runSystemDiagnostics } from "./verificationSuite"
// prettier-ignore
@@ -52,7 +52,7 @@ import { runSystemDiagnostics } from "./verificationSuite"
;(global as any).reconcileSalesHandler = reconcileSalesHandler
;(global as any).installSalesSyncTrigger = installSalesSyncTrigger
;(global as any).showMediaManager = showMediaManager
-;(global as any).getSelectedSku = getSelectedSku
+;(global as any).getSelectedProductInfo = getSelectedProductInfo
;(global as any).getMediaForSku = getMediaForSku
;(global as any).saveFileToDrive = saveFileToDrive
;(global as any).saveMediaChanges = saveMediaChanges
diff --git a/src/mediaHandlers.test.ts b/src/mediaHandlers.test.ts
index 84d9131..e9e3163 100644
--- a/src/mediaHandlers.test.ts
+++ b/src/mediaHandlers.test.ts
@@ -1,5 +1,5 @@
-import { importFromPicker, getMediaForSku, createPhotoSession, checkPhotoSession, debugFolderAccess, showMediaManager, getSelectedSku, getPickerConfig, saveFileToDrive, debugScopes, saveMediaChanges } from "./mediaHandlers"
+import { importFromPicker, getMediaForSku, createPhotoSession, checkPhotoSession, debugFolderAccess, showMediaManager, getSelectedProductInfo, getPickerConfig, saveFileToDrive, debugScopes, saveMediaChanges } from "./mediaHandlers"
import { Config } from "./config"
import { GASDriveService } from "./services/GASDriveService"
import { GASSpreadsheetService } from "./services/GASSpreadsheetService"
@@ -47,7 +47,11 @@ jest.mock("./services/GASSpreadsheetService", () => {
return {
GASSpreadsheetService: jest.fn().mockImplementation(() => {
return {
- getCellValueByColumnName: jest.fn().mockReturnValue("TEST-SKU")
+ getCellValueByColumnName: jest.fn().mockImplementation((sheet, row, col) => {
+ if (col === "sku") return "TEST-SKU"
+ if (col === "title") return "Test Product Title"
+ return null
+ })
}
})
}
@@ -336,9 +340,9 @@ describe("mediaHandlers", () => {
expect(mockUi.showModalDialog).toHaveBeenCalledWith(mockHtml, "Media Manager")
})
- test("getSelectedSku should return sku from sheet", () => {
- const sku = getSelectedSku()
- expect(sku).toBe("TEST-SKU")
+ test("getSelectedProductInfo should return sku and title from sheet", () => {
+ const info = getSelectedProductInfo()
+ expect(info).toEqual({ sku: "TEST-SKU", title: "Test Product Title" })
})
test("getPickerConfig should return config", () => {
diff --git a/src/mediaHandlers.ts b/src/mediaHandlers.ts
index 0647246..314e942 100644
--- a/src/mediaHandlers.ts
+++ b/src/mediaHandlers.ts
@@ -15,7 +15,7 @@ export function showMediaManager() {
SpreadsheetApp.getUi().showModalDialog(html, "Media Manager");
}
-export function getSelectedSku(): string | null {
+export function getSelectedProductInfo(): { sku: string, title: string } | null {
const ss = new GASSpreadsheetService()
const sheet = SpreadsheetApp.getActiveSheet()
if (sheet.getName() !== "product_inventory") return null
@@ -24,7 +24,9 @@ export function getSelectedSku(): string | null {
if (row <= 1) return null // Header
const sku = ss.getCellValueByColumnName("product_inventory", row, "sku")
- return sku ? String(sku) : null
+ const title = ss.getCellValueByColumnName("product_inventory", row, "title")
+
+ return sku ? { sku: String(sku), title: String(title || "") } : null
}
export function getPickerConfig() {
+
+
+ Add Photos/Videos from...
+
+
+
+
+
+