diff --git a/backend/src/app/rpc/commands/files.clj b/backend/src/app/rpc/commands/files.clj index 784e52484..3d2098712 100644 --- a/backend/src/app/rpc/commands/files.clj +++ b/backend/src/app/rpc/commands/files.clj @@ -384,8 +384,10 @@ f.revn, f.vern, f.is_shared, - ft.media_id AS thumbnail_id + ft.media_id AS thumbnail_id, + p.team_id from file as f + inner join project as p on (p.id = f.project_id) left join file_thumbnail as ft on (ft.file_id = f.id and ft.revn = f.revn and ft.deleted_at is null) @@ -539,7 +541,8 @@ f.modified_at, f.name, f.is_shared, - ft.media_id + ft.media_id, + p.team_id from file as f inner join project as p on (p.id = f.project_id) left join file_thumbnail as ft on (ft.file_id = f.id and ft.revn = f.revn and ft.deleted_at is null) @@ -686,7 +689,8 @@ f.name, f.is_shared, ft.media_id AS thumbnail_id, - row_number() over w as row_num + row_number() over w as row_num, + p.team_id from file as f inner join project as p on (p.id = f.project_id) left join file_thumbnail as ft on (ft.file_id = f.id diff --git a/frontend/src/app/main/data/dashboard.cljs b/frontend/src/app/main/data/dashboard.cljs index 3f0d9bbd3..ddd2206b5 100644 --- a/frontend/src/app/main/data/dashboard.cljs +++ b/frontend/src/app/main/data/dashboard.cljs @@ -16,6 +16,7 @@ [app.main.data.common :as dcm] [app.main.data.event :as ev] [app.main.data.fonts :as df] + [app.main.data.helpers :as dsh] [app.main.data.modal :as modal] [app.main.data.websocket :as dws] [app.main.features :as features] @@ -247,10 +248,10 @@ (ptk/reify ::create-project ptk/WatchEvent (watch [_ state _] - (let [projects (get state :projects) + (let [team-id (:current-team-id state) + projects (dsh/lookup-team-projects state team-id) unames (cfh/get-used-names projects) name (cfh/generate-unique-name unames (str (tr "dashboard.new-project-prefix") " 1")) - team-id (:current-team-id state) params {:name name :team-id team-id} {:keys [on-success on-error] @@ -478,7 +479,7 @@ :or {on-success identity on-error rx/throw}} (meta params) - files (get state :files) + files (dsh/lookup-team-files state) unames (cfh/get-used-names files) name (or name (cfh/generate-unique-name unames (str (tr "dashboard.new-file-prefix") " 1"))) features (-> (features/get-team-enabled-features state) @@ -587,10 +588,10 @@ pparams (:path-params route) in-project? (contains? pparams :project-id) name (if in-project? - (let [files (get state :files) + (let [files (dsh/lookup-team-files state team-id) unames (cfh/get-used-names files)] (cfh/generate-unique-name unames (str (tr "dashboard.new-file-prefix") " 1"))) - (let [projects (get state :projects) + (let [projects (dsh/lookup-team-projects state team-id) unames (cfh/get-used-names projects)] (cfh/generate-unique-name unames (str (tr "dashboard.new-project-prefix") " 1")))) params (if in-project? diff --git a/frontend/src/app/main/data/helpers.cljs b/frontend/src/app/main/data/helpers.cljs index b104af0dc..279e3e0b2 100644 --- a/frontend/src/app/main/data/helpers.cljs +++ b/frontend/src/app/main/data/helpers.cljs @@ -168,3 +168,21 @@ [state] (when-let [{:keys [x y width height]} (get-in state [:workspace-local :vbox])] (gpt/point (+ x (/ width 2)) (+ y (/ height 2))))) + +(defn lookup-team-files + ([state] + (lookup-team-files state (:current-team-id state))) + ([state team-id] + (->> state + :files + (filter #(= team-id (:team-id (val %)))) + (into {})))) + +(defn lookup-team-projects + ([state] + (lookup-team-projects (:current-team-id state))) + ([state team-id] + (->> state + :projects + (filter #(= team-id (:team-id (val %)))) + (into {}))))