diff --git a/frontend/src/app/main/data/dashboard.cljs b/frontend/src/app/main/data/dashboard.cljs index 24f629343..7a8af0e92 100644 --- a/frontend/src/app/main/data/dashboard.cljs +++ b/frontend/src/app/main/data/dashboard.cljs @@ -264,14 +264,15 @@ (let [files (d/index-by :id files)] (assoc-in state [:dashboard-local :files-with-shared] files))))) -(defn fetch-library-using-files - [file] +(defn fetch-libraries-using-files + [files] (ptk/reify ::fetch-library-using-files ptk/WatchEvent (watch [_ _ _] - (let [file-id (:id file)] - (->> (rp/query :library-using-files {:file-id file-id}) - (rx/map library-using-files-fetched)))))) + (->> (rx/from files) + (rx/mapcat (fn [file] (rp/query :library-using-files {:file-id (:id file)}))) + (rx/reduce into []) + (rx/map library-using-files-fetched))))) ;; --- EVENT: recent-files diff --git a/frontend/src/app/main/ui/dashboard/file_menu.cljs b/frontend/src/app/main/ui/dashboard/file_menu.cljs index 3091904e1..3b122c18c 100644 --- a/frontend/src/app/main/ui/dashboard/file_menu.cljs +++ b/frontend/src/app/main/ui/dashboard/file_menu.cljs @@ -92,26 +92,30 @@ on-delete (fn [event] (dom/stop-propagation event) - (if (:is-shared file) - (do (st/emit! (dd/fetch-library-using-files file)) - (st/emit! (modal/show - {:type :delete-shared - :origin :delete - :on-accept delete-fn}))) - (if multi? - (st/emit! (modal/show - {:type :confirm - :title (tr "modals.delete-file-multi-confirm.title" file-count) - :message (tr "modals.delete-file-multi-confirm.message" file-count) - :accept-label (tr "modals.delete-file-multi-confirm.accept" file-count) - :on-accept delete-fn})) - (st/emit! (modal/show - {:type :confirm - :title (tr "modals.delete-file-confirm.title") - :message (tr "modals.delete-file-confirm.message") - :accept-label (tr "modals.delete-file-confirm.accept") - :on-accept delete-fn}))))) + (let [has-shared? (filter #(:is-shared %) files)] + + (if has-shared? + (do (st/emit! (dd/fetch-libraries-using-files files)) + (st/emit! (modal/show + {:type :delete-shared + :origin :delete + :on-accept delete-fn + :count-libraries (count has-shared?)}))) + + (if multi? + (st/emit! (modal/show + {:type :confirm + :title (tr "modals.delete-file-multi-confirm.title" file-count) + :message (tr "modals.delete-file-multi-confirm.message" file-count) + :accept-label (tr "modals.delete-file-multi-confirm.accept" file-count) + :on-accept delete-fn})) + (st/emit! (modal/show + {:type :confirm + :title (tr "modals.delete-file-confirm.title") + :message (tr "modals.delete-file-confirm.message") + :accept-label (tr "modals.delete-file-confirm.accept") + :on-accept delete-fn})))))) on-move-success (fn [team-id project-id] @@ -155,11 +159,12 @@ (fn [event] (dom/prevent-default event) (dom/stop-propagation event) - (st/emit! (dd/fetch-library-using-files file)) + (st/emit! (dd/fetch-libraries-using-files [file])) (st/emit! (modal/show {:type :delete-shared :origin :unpublish - :on-accept del-shared}))) + :on-accept del-shared + :count-libraries 1}))) on-export-files (fn [event-name binary?] diff --git a/frontend/src/app/main/ui/delete_shared.cljs b/frontend/src/app/main/ui/delete_shared.cljs index d1fbe026a..2a2b0412b 100644 --- a/frontend/src/app/main/ui/delete_shared.cljs +++ b/frontend/src/app/main/ui/delete_shared.cljs @@ -24,7 +24,8 @@ [{:keys [on-accept on-cancel accept-style - origin] :as props}] + origin + count-libraries] :as props}] (let [on-accept (or on-accept identity) on-cancel (or on-cancel identity) cancel-label (tr "labels.cancel") @@ -34,18 +35,22 @@ files->shared (:files-with-shared dashboard-local) count-files (count (keys files->shared)) title (if is-delete? - (tr "modals.delete-shared-confirm.title") - (tr "modals.unpublish-shared-confirm.title")) + (tr "modals.delete-shared-confirm.title" (i18n/c count-libraries)) + (tr "modals.unpublish-shared-confirm.title" (i18n/c count-libraries))) message (if is-delete? - (tr "modals.delete-shared-confirm.message") - (tr "modals.unpublish-shared-confirm.message")) - + (tr "modals.delete-shared-confirm.message" (i18n/c count-libraries)) + (tr "modals.unpublish-shared-confirm.message" (i18n/c count-libraries))) accept-label (if is-delete? - (tr "modals.delete-shared-confirm.accept") - (tr "modals.unpublish-shared-confirm.accept")) - scd-message (if is-delete? - (tr "modals.delete-shared-confirm.scd-message" (i18n/c count-files)) - (tr "modals.unpublish-shared-confirm.scd-message" (i18n/c count-files))) + (tr "modals.delete-shared-confirm.accept" (i18n/c count-libraries)) + (tr "modals.unpublish-shared-confirm.accept")) + scd-message (if is-delete? + (if (> count-libraries 1) + (tr "modals.delete-shared-confirm.scd-message-plural" (i18n/c count-files)) + (tr "modals.delete-shared-confirm.scd-message" (i18n/c count-files))) + (if (> count-libraries 1) + (tr "modals.unpublish-shared-confirm.scd-message-plural" (i18n/c count-files)) + (tr "modals.unpublish-shared-confirm.scd-message" (i18n/c count-files))) + ) hint (if is-delete? "" (tr "modals.unpublish-shared-confirm.hint" (i18n/c count-files))) diff --git a/frontend/translations/en.po b/frontend/translations/en.po index 8191aa81e..961f46910 100644 --- a/frontend/translations/en.po +++ b/frontend/translations/en.po @@ -1781,11 +1781,15 @@ msgstr "Remove “%s” as Shared Library" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.title" -msgstr "Unpublish library" +msgid_plural "modals.unpublish-shared-confirm.title" +msgstr[0] "Unpublish library" +msgstr[1] "Unpublish libraries" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.message" -msgstr "Are you sure you want to unpublish this library?" +msgid_plural "modals.unpublish-shared-confirm.message" +msgstr[0] "Are you sure you want to unpublish this library?" +msgstr[1] "Are you sure you want to unpublish these libraries?" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.scd-message" @@ -1805,11 +1809,15 @@ msgstr "Unpublish" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.title" -msgstr "Deleting file" +msgid_plural "modals.delete-shared-confirm.title" +msgstr[0] "Deleting file" +msgstr[1] "Deleting files" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.message" -msgstr "Are you sure you want to delete this file?" +msgid_plural "modals.delete-shared-confirm.message" +msgstr[0] "Are you sure you want to delete this file?" +msgstr[1] "Are you sure you want to delete these files?" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.scd-message" @@ -1818,9 +1826,16 @@ msgstr[0] "This file has libraries that are being used in this file:" msgstr[1] "This file has libraries that are being used in these files:" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "modals.delete-shared-confirm.accept" -msgstr "Delete file" +msgid "modals.delete-shared-confirm.scd-message-plural" +msgid_plural "modals.delete-shared-confirm.scd-message-plural" +msgstr[0] "These files have libraries that are being used in this file:" +msgstr[1] "These files have libraries that are being used in these files:" +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "modals.delete-shared-confirm.accept" +msgid_plural "modals.delete-shared-confirm.accept" +msgstr[0] "Delete file" +msgstr[1] "Delete files" #: src/app/main/ui/workspace/nudge.cljs msgid "modals.small-nudge" diff --git a/frontend/translations/es.po b/frontend/translations/es.po index 38ca85826..ce84b24b5 100644 --- a/frontend/translations/es.po +++ b/frontend/translations/es.po @@ -1855,11 +1855,15 @@ msgstr "Añadir “%s” como Biblioteca Compartida" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.title" -msgstr "Despublicar biblioteca" +msgid_plural "modals.unpublish-shared-confirm.title" +msgstr[0] "Despublicar biblioteca" +msgstr[1] "Despublicar bibliotecas" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.message" -msgstr "¿Seguro que quieres despublicar esta biblioteca?" +msgid_plural "modals.unpublish-shared-confirm.message" +msgstr[0] "¿Seguro que quieres despublicar esta biblioteca?" +msgstr[1] "¿Seguro que quieres despublicar estas bibliotecas?" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.scd-message" @@ -1879,11 +1883,15 @@ msgstr "Despublicar" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.title" -msgstr "Borrar archivo" +msgid_plural "modals.delete-shared-confirm.title" +msgstr[0] "Borrar archivo" +msgstr[1] "Borrar archivos" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.message" -msgstr "¿Seguro que quieres borrar este archivo?" +msgid_plural "modals.delete-shared-confirm.message" +msgstr[0] "¿Seguro que quieres borrar este archivo?" +msgstr[1] "¿Seguro que quieres borrar estos archivos?" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.scd-message" @@ -1891,9 +1899,17 @@ msgid_plural "modals.delete-shared-confirm.scd-message" msgstr[0] "El archivo que quieres borrar tiene una librería que se está usando en este archivo:" msgstr[1] "El archivo que quieres borrar tiene una librería que se está usando en estos archivos:" +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "modals.delete-shared-confirm.scd-message-plural" +msgid_plural "modals.delete-shared-confirm.scd-message-plural" +msgstr[0] "Los archivos que quieres borrar tienen una librería que se está usando en este archivo:" +msgstr[1] "Los archivos que quieres borrar tienen una librería que se está usando en estos archivos:" + #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.accept" -msgstr "Borrar archivo" +msgid_plural "modals.delete-shared-confirm.accept" +msgstr[0] "Borrar archivo" +msgstr[1] "Borrar archivos" #: src/app/main/ui/workspace/nudge.cljs msgid "modals.small-nudge"