make-upload-multiple-for-pj
This commit is contained in:
parent
dd23d4ea7b
commit
aaea3b1a92
@ -164570,7 +164570,7 @@ module.exports = /*#__PURE__*/JSON.parse('{"compressed":true,"categories":[{"id"
|
|||||||
/******/ // This function allow to reference async chunks
|
/******/ // This function allow to reference async chunks
|
||||||
/******/ __webpack_require__.u = (chunkId) => {
|
/******/ __webpack_require__.u = (chunkId) => {
|
||||||
/******/ // return url for filenames based on template
|
/******/ // return url for filenames based on template
|
||||||
/******/ return "calendar-" + chunkId + ".js?v=" + {"vendors-node_modules_nextcloud_capabilities_dist_index_js-node_modules_nextcloud_vue-select_d-877981":"7bde6f386631234ba146","vendors-node_modules_vue-material-design-icons_CalendarBlank_vue-node_modules_vue-material-de-e2c1f8":"2e0b0e8bc0e8488c397c","vendors-node_modules_path-browserify_index_js-node_modules_nextcloud_dialogs_dist_chunks_Dial-e0595f":"728c782d2751f8e6150a","node_modules_nextcloud_dialogs_dist_legacy_mjs":"8be838e4c6e9aae56c87","vendors-node_modules_webdav_dist_web_index_js":"454da8f908d41b47c607","vendors-node_modules_nextcloud_dialogs_dist_chunks_FilePicker-8ibBgPg__mjs":"ea54a36450de178d1141"}[chunkId] + "";
|
/******/ return "calendar-" + chunkId + ".js?v=" + {"vendors-node_modules_nextcloud_capabilities_dist_index_js-node_modules_nextcloud_vue-select_d-877981":"741d92f5ec54d0c1ff41","vendors-node_modules_vue-material-design-icons_CalendarBlank_vue-node_modules_vue-material-de-e2c1f8":"0658eb6db50a09dd2afe","vendors-node_modules_path-browserify_index_js-node_modules_nextcloud_dialogs_dist_chunks_Dial-e0595f":"e0f3178442f3c9eb35e1","node_modules_nextcloud_dialogs_dist_legacy_mjs":"8be838e4c6e9aae56c87","vendors-node_modules_webdav_dist_web_index_js":"454da8f908d41b47c607","vendors-node_modules_nextcloud_dialogs_dist_chunks_FilePicker-8ibBgPg__mjs":"ea54a36450de178d1141"}[chunkId] + "";
|
||||||
/******/ };
|
/******/ };
|
||||||
/******/ })();
|
/******/ })();
|
||||||
/******/
|
/******/
|
||||||
@ -164827,4 +164827,4 @@ const visitorInfo = (0,_nextcloud_initial_state__WEBPACK_IMPORTED_MODULE_1__.loa
|
|||||||
|
|
||||||
/******/ })()
|
/******/ })()
|
||||||
;
|
;
|
||||||
//# sourceMappingURL=calendar-appointments-booking.js.map?v=b7719d864afe6419c183
|
//# sourceMappingURL=calendar-appointments-booking.js.map?v=312d2cc5b7ca549a9366
|
||||||
File diff suppressed because one or more lines are too long
@ -37516,4 +37516,4 @@ const booking = (0,_nextcloud_initial_state__WEBPACK_IMPORTED_MODULE_1__.loadSta
|
|||||||
|
|
||||||
/******/ })()
|
/******/ })()
|
||||||
;
|
;
|
||||||
//# sourceMappingURL=calendar-appointments-confirmation.js.map?v=e09415d738d19b735882
|
//# sourceMappingURL=calendar-appointments-confirmation.js.map?v=a2ee83495b163cb419ce
|
||||||
File diff suppressed because one or more lines are too long
@ -37552,4 +37552,4 @@ const booking = (0,_nextcloud_initial_state__WEBPACK_IMPORTED_MODULE_1__.loadSta
|
|||||||
|
|
||||||
/******/ })()
|
/******/ })()
|
||||||
;
|
;
|
||||||
//# sourceMappingURL=calendar-appointments-conflict.js.map?v=203b5778e2275f51e478
|
//# sourceMappingURL=calendar-appointments-conflict.js.map?v=b617e2fd0c187cf8a3ef
|
||||||
File diff suppressed because one or more lines are too long
@ -160605,4 +160605,4 @@ vue__WEBPACK_IMPORTED_MODULE_5__["default"].prototype.$n = _nextcloud_l10n__WEBP
|
|||||||
|
|
||||||
/******/ })()
|
/******/ })()
|
||||||
;
|
;
|
||||||
//# sourceMappingURL=calendar-appointments-overview.js.map?v=11949b799a3d070cc45a
|
//# sourceMappingURL=calendar-appointments-overview.js.map?v=f24398268fe4a78a6630
|
||||||
File diff suppressed because one or more lines are too long
@ -500,4 +500,4 @@ if(false) {}
|
|||||||
/***/ })
|
/***/ })
|
||||||
|
|
||||||
}]);
|
}]);
|
||||||
//# sourceMappingURL=calendar-dashboard-lazy.js.map?v=0dd354a2fd4b9e38ddcf
|
//# sourceMappingURL=calendar-dashboard-lazy.js.map?v=60b7f707e08fff04c7a1
|
||||||
File diff suppressed because one or more lines are too long
@ -1322,7 +1322,7 @@ function b(n) {
|
|||||||
/******/ // This function allow to reference async chunks
|
/******/ // This function allow to reference async chunks
|
||||||
/******/ __webpack_require__.u = (chunkId) => {
|
/******/ __webpack_require__.u = (chunkId) => {
|
||||||
/******/ // return url for filenames based on template
|
/******/ // return url for filenames based on template
|
||||||
/******/ return "calendar-" + chunkId + ".js?v=" + {"vendors-node_modules_nextcloud_capabilities_dist_index_js-node_modules_nextcloud_vue-select_d-877981":"7bde6f386631234ba146","vendors-node_modules_vue_dist_vue_runtime_esm_js":"7e3171593bdc0f62040b","vendors-node_modules_nextcloud_cdav-library_dist_dist_js-node_modules_nextcloud_logger_dist_i-36c16b":"c3b3db23da041c717fc1","vendors-node_modules_webdav_dist_web_index_js":"454da8f908d41b47c607","vendors-node_modules_vue-material-design-icons_CalendarBlankOutline_vue-node_modules_nextclou-4adead":"273df538e0dc19672feb","vendors-node_modules_nextcloud_vue-dashboard_dist_vue-dashboard_js-node_modules_css-loader_di-9e6f3d":"86eaa619747854c0da61","src_models_rfcProps_js-src_services_caldavService_js-src_services_talkService_js-src_services-8a2790":"7cf71b4f92d5bbc180b4","src_store_index_js":"1b6e430f087ec0dfaad7","src_fullcalendar_eventSources_eventSourceFunction_js-src_utils_moment_js-data_image_svg_xml_3-b73258":"b5a1f8246e3d20bdaf6b","dashboard-lazy":"0dd354a2fd4b9e38ddcf","vendors-node_modules_vue-material-design-icons_CalendarBlank_vue-node_modules_vue-material-de-e2c1f8":"2e0b0e8bc0e8488c397c","vendors-node_modules_path-browserify_index_js-node_modules_nextcloud_dialogs_dist_chunks_Dial-e0595f":"728c782d2751f8e6150a","node_modules_nextcloud_dialogs_dist_legacy_mjs":"8be838e4c6e9aae56c87","vendors-node_modules_nextcloud_dialogs_dist_chunks_FilePicker-8ibBgPg__mjs":"ea54a36450de178d1141","vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96":"ce1bed825f57dd1d117a","node_modules_moment_locale_sync_recursive_":"4bc2c39c5e0ff182c2e3"}[chunkId] + "";
|
/******/ return "calendar-" + chunkId + ".js?v=" + {"vendors-node_modules_nextcloud_capabilities_dist_index_js-node_modules_nextcloud_vue-select_d-877981":"741d92f5ec54d0c1ff41","vendors-node_modules_vue_dist_vue_runtime_esm_js":"7e3171593bdc0f62040b","vendors-node_modules_nextcloud_cdav-library_dist_dist_js-node_modules_nextcloud_logger_dist_i-36c16b":"c3b3db23da041c717fc1","vendors-node_modules_webdav_dist_web_index_js":"454da8f908d41b47c607","vendors-node_modules_vue-material-design-icons_CalendarBlankOutline_vue-node_modules_nextclou-4adead":"01a7eb6779cc0e417f44","vendors-node_modules_nextcloud_vue-dashboard_dist_vue-dashboard_js-node_modules_css-loader_di-9e6f3d":"c2bd3081c493a88308a2","src_models_rfcProps_js-src_services_caldavService_js-src_services_talkService_js-src_services-8a2790":"7cf71b4f92d5bbc180b4","src_store_index_js":"b3c0e2be13c6c62873db","src_fullcalendar_eventSources_eventSourceFunction_js-src_utils_moment_js-data_image_svg_xml_3-b73258":"a830e20d5af09d6855dc","dashboard-lazy":"60b7f707e08fff04c7a1","vendors-node_modules_vue-material-design-icons_CalendarBlank_vue-node_modules_vue-material-de-e2c1f8":"0658eb6db50a09dd2afe","vendors-node_modules_path-browserify_index_js-node_modules_nextcloud_dialogs_dist_chunks_Dial-e0595f":"e0f3178442f3c9eb35e1","node_modules_nextcloud_dialogs_dist_legacy_mjs":"8be838e4c6e9aae56c87","vendors-node_modules_nextcloud_dialogs_dist_chunks_FilePicker-8ibBgPg__mjs":"ea54a36450de178d1141","vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96":"ce1bed825f57dd1d117a","node_modules_moment_locale_sync_recursive_":"4bc2c39c5e0ff182c2e3"}[chunkId] + "";
|
||||||
/******/ };
|
/******/ };
|
||||||
/******/ })();
|
/******/ })();
|
||||||
/******/
|
/******/
|
||||||
@ -1580,4 +1580,4 @@ document.addEventListener('DOMContentLoaded', function () {
|
|||||||
|
|
||||||
/******/ })()
|
/******/ })()
|
||||||
;
|
;
|
||||||
//# sourceMappingURL=calendar-dashboard.js.map?v=9f59da8ba9cf6ad77641
|
//# sourceMappingURL=calendar-dashboard.js.map?v=80c7149925c56bee9628
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@ -369,4 +369,4 @@ module.exports = /*#__PURE__*/JSON.parse('[{"country":"Algeria","filename":"Alge
|
|||||||
/***/ })
|
/***/ })
|
||||||
|
|
||||||
}]);
|
}]);
|
||||||
//# sourceMappingURL=calendar-public-calendar-subscription-picker.js.map?v=9168fca99a878d4c37e3
|
//# sourceMappingURL=calendar-public-calendar-subscription-picker.js.map?v=0c8b5b050db3beb63d49
|
||||||
File diff suppressed because one or more lines are too long
@ -8865,7 +8865,7 @@ window._registerCustomPickerElement = _;
|
|||||||
/******/ // This function allow to reference async chunks
|
/******/ // This function allow to reference async chunks
|
||||||
/******/ __webpack_require__.u = (chunkId) => {
|
/******/ __webpack_require__.u = (chunkId) => {
|
||||||
/******/ // return url for filenames based on template
|
/******/ // return url for filenames based on template
|
||||||
/******/ return "calendar-" + chunkId + ".js?v=" + {"vendors-node_modules_vue_dist_vue_runtime_esm_js":"7e3171593bdc0f62040b","vendors-node_modules_nextcloud_capabilities_dist_index_js-node_modules_nextcloud_vue-select_d-877981":"7bde6f386631234ba146","vendors-node_modules_nextcloud_cdav-library_dist_dist_js-node_modules_nextcloud_logger_dist_i-36c16b":"c3b3db23da041c717fc1","vendors-node_modules_vue-material-design-icons_CalendarBlank_vue-node_modules_vue-material-de-e2c1f8":"2e0b0e8bc0e8488c397c","vendors-node_modules_vue-material-design-icons_CalendarBlankOutline_vue-node_modules_nextclou-4adead":"273df538e0dc19672feb","vendors-node_modules_autosize_dist_autosize_esm_js-node_modules_html-entities_lib_index_js-no-4072c5":"56373f2063898525e8de","src_models_rfcProps_js-src_services_caldavService_js-src_services_talkService_js-src_services-8a2790":"7cf71b4f92d5bbc180b4","src_fullcalendar_eventSources_eventSourceFunction_js-src_utils_moment_js-data_image_svg_xml_3-b73258":"b5a1f8246e3d20bdaf6b","src_views_Calendar_vue-data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20heigh-4a4254":"43b155c96a21c7810d4f","vendors-node_modules_webdav_dist_web_index_js":"454da8f908d41b47c607","src_store_index_js":"1b6e430f087ec0dfaad7","vendors-node_modules_path-browserify_index_js-node_modules_nextcloud_dialogs_dist_chunks_Dial-e0595f":"728c782d2751f8e6150a","node_modules_nextcloud_dialogs_dist_legacy_mjs":"8be838e4c6e9aae56c87","vendors-node_modules_nextcloud_dialogs_dist_chunks_FilePicker-8ibBgPg__mjs":"ea54a36450de178d1141","public-calendar-subscription-picker":"9168fca99a878d4c37e3","vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96":"ce1bed825f57dd1d117a","node_modules_moment_locale_sync_recursive_":"4bc2c39c5e0ff182c2e3"}[chunkId] + "";
|
/******/ return "calendar-" + chunkId + ".js?v=" + {"vendors-node_modules_vue_dist_vue_runtime_esm_js":"7e3171593bdc0f62040b","vendors-node_modules_nextcloud_capabilities_dist_index_js-node_modules_nextcloud_vue-select_d-877981":"741d92f5ec54d0c1ff41","vendors-node_modules_nextcloud_cdav-library_dist_dist_js-node_modules_nextcloud_logger_dist_i-36c16b":"c3b3db23da041c717fc1","vendors-node_modules_vue-material-design-icons_CalendarBlank_vue-node_modules_vue-material-de-e2c1f8":"0658eb6db50a09dd2afe","vendors-node_modules_vue-material-design-icons_CalendarBlankOutline_vue-node_modules_nextclou-4adead":"01a7eb6779cc0e417f44","vendors-node_modules_autosize_dist_autosize_esm_js-node_modules_html-entities_lib_index_js-no-4072c5":"c3527b981de24f56109b","src_models_rfcProps_js-src_services_caldavService_js-src_services_talkService_js-src_services-8a2790":"7cf71b4f92d5bbc180b4","src_fullcalendar_eventSources_eventSourceFunction_js-src_utils_moment_js-data_image_svg_xml_3-b73258":"a830e20d5af09d6855dc","src_views_Calendar_vue-data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20heigh-4a4254":"4f448dc8e72eb96579fb","vendors-node_modules_webdav_dist_web_index_js":"454da8f908d41b47c607","src_store_index_js":"b3c0e2be13c6c62873db","vendors-node_modules_path-browserify_index_js-node_modules_nextcloud_dialogs_dist_chunks_Dial-e0595f":"e0f3178442f3c9eb35e1","node_modules_nextcloud_dialogs_dist_legacy_mjs":"8be838e4c6e9aae56c87","vendors-node_modules_nextcloud_dialogs_dist_chunks_FilePicker-8ibBgPg__mjs":"ea54a36450de178d1141","public-calendar-subscription-picker":"0c8b5b050db3beb63d49","vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96":"ce1bed825f57dd1d117a","node_modules_moment_locale_sync_recursive_":"4bc2c39c5e0ff182c2e3"}[chunkId] + "";
|
||||||
/******/ };
|
/******/ };
|
||||||
/******/ })();
|
/******/ })();
|
||||||
/******/
|
/******/
|
||||||
@ -9115,4 +9115,4 @@ __webpack_require__.p = (0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_1__.linkTo
|
|||||||
|
|
||||||
/******/ })()
|
/******/ })()
|
||||||
;
|
;
|
||||||
//# sourceMappingURL=calendar-reference.js.map?v=e31f7d3eba4de64ebe51
|
//# sourceMappingURL=calendar-reference.js.map?v=14fd5c4d36919b458223
|
||||||
File diff suppressed because one or more lines are too long
@ -1054,4 +1054,4 @@ module.exports = "data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/sv
|
|||||||
/***/ })
|
/***/ })
|
||||||
|
|
||||||
}]);
|
}]);
|
||||||
//# sourceMappingURL=calendar-src_fullcalendar_eventSources_eventSourceFunction_js-src_utils_moment_js-data_image_svg_xml_3-b73258.js.map?v=b5a1f8246e3d20bdaf6b
|
//# sourceMappingURL=calendar-src_fullcalendar_eventSources_eventSourceFunction_js-src_utils_moment_js-data_image_svg_xml_3-b73258.js.map?v=a830e20d5af09d6855dc
|
||||||
File diff suppressed because one or more lines are too long
@ -8307,4 +8307,4 @@ function getLinkToConfig(key) {
|
|||||||
/***/ })
|
/***/ })
|
||||||
|
|
||||||
}]);
|
}]);
|
||||||
//# sourceMappingURL=calendar-src_store_index_js.js.map?v=1b6e430f087ec0dfaad7
|
//# sourceMappingURL=calendar-src_store_index_js.js.map?v=b3c0e2be13c6c62873db
|
||||||
File diff suppressed because one or more lines are too long
@ -27707,4 +27707,4 @@ module.exports = "data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/sv
|
|||||||
/***/ })
|
/***/ })
|
||||||
|
|
||||||
}]);
|
}]);
|
||||||
//# sourceMappingURL=calendar-src_views_Calendar_vue-data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20heigh-4a4254.js.map?v=43b155c96a21c7810d4f
|
//# sourceMappingURL=calendar-src_views_Calendar_vue-data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20heigh-4a4254.js.map?v=4f448dc8e72eb96579fb
|
||||||
File diff suppressed because one or more lines are too long
@ -42554,4 +42554,4 @@ function hasInjectionContext() {
|
|||||||
/***/ })
|
/***/ })
|
||||||
|
|
||||||
}]);
|
}]);
|
||||||
//# sourceMappingURL=calendar-vendors-node_modules_autosize_dist_autosize_esm_js-node_modules_html-entities_lib_index_js-no-4072c5.js.map?v=56373f2063898525e8de
|
//# sourceMappingURL=calendar-vendors-node_modules_autosize_dist_autosize_esm_js-node_modules_html-entities_lib_index_js-no-4072c5.js.map?v=c3527b981de24f56109b
|
||||||
File diff suppressed because one or more lines are too long
@ -21864,4 +21864,4 @@ const webNamespaces = {
|
|||||||
/***/ })
|
/***/ })
|
||||||
|
|
||||||
}]);
|
}]);
|
||||||
//# sourceMappingURL=calendar-vendors-node_modules_nextcloud_capabilities_dist_index_js-node_modules_nextcloud_vue-select_d-877981.js.map?v=7bde6f386631234ba146
|
//# sourceMappingURL=calendar-vendors-node_modules_nextcloud_capabilities_dist_index_js-node_modules_nextcloud_vue-select_d-877981.js.map?v=741d92f5ec54d0c1ff41
|
||||||
File diff suppressed because one or more lines are too long
@ -27285,4 +27285,4 @@ window._registerCustomPickerElement = _;
|
|||||||
/***/ })
|
/***/ })
|
||||||
|
|
||||||
}]);
|
}]);
|
||||||
//# sourceMappingURL=calendar-vendors-node_modules_nextcloud_vue-dashboard_dist_vue-dashboard_js-node_modules_css-loader_di-9e6f3d.js.map?v=86eaa619747854c0da61
|
//# sourceMappingURL=calendar-vendors-node_modules_nextcloud_vue-dashboard_dist_vue-dashboard_js-node_modules_css-loader_di-9e6f3d.js.map?v=c2bd3081c493a88308a2
|
||||||
File diff suppressed because one or more lines are too long
@ -80146,4 +80146,4 @@ module.exports = /*#__PURE__*/JSON.parse('{"compressed":true,"categories":[{"id"
|
|||||||
/***/ })
|
/***/ })
|
||||||
|
|
||||||
}]);
|
}]);
|
||||||
//# sourceMappingURL=calendar-vendors-node_modules_path-browserify_index_js-node_modules_nextcloud_dialogs_dist_chunks_Dial-e0595f.js.map?v=728c782d2751f8e6150a
|
//# sourceMappingURL=calendar-vendors-node_modules_path-browserify_index_js-node_modules_nextcloud_dialogs_dist_chunks_Dial-e0595f.js.map?v=e0f3178442f3c9eb35e1
|
||||||
File diff suppressed because one or more lines are too long
@ -102420,4 +102420,4 @@ module.exports = /*#__PURE__*/JSON.parse('{"compressed":true,"categories":[{"id"
|
|||||||
/***/ })
|
/***/ })
|
||||||
|
|
||||||
}]);
|
}]);
|
||||||
//# sourceMappingURL=calendar-vendors-node_modules_vue-material-design-icons_CalendarBlankOutline_vue-node_modules_nextclou-4adead.js.map?v=273df538e0dc19672feb
|
//# sourceMappingURL=calendar-vendors-node_modules_vue-material-design-icons_CalendarBlankOutline_vue-node_modules_nextclou-4adead.js.map?v=01a7eb6779cc0e417f44
|
||||||
File diff suppressed because one or more lines are too long
@ -2030,4 +2030,4 @@ render._withStripped = true
|
|||||||
/***/ })
|
/***/ })
|
||||||
|
|
||||||
}]);
|
}]);
|
||||||
//# sourceMappingURL=calendar-vendors-node_modules_vue-material-design-icons_CalendarBlank_vue-node_modules_vue-material-de-e2c1f8.js.map?v=2e0b0e8bc0e8488c397c
|
//# sourceMappingURL=calendar-vendors-node_modules_vue-material-design-icons_CalendarBlank_vue-node_modules_vue-material-de-e2c1f8.js.map?v=0658eb6db50a09dd2afe
|
||||||
File diff suppressed because one or more lines are too long
@ -119,7 +119,7 @@ class EmailBoxController extends Controller {
|
|||||||
$order,
|
$order,
|
||||||
null,
|
null,
|
||||||
null,
|
null,
|
||||||
400,
|
100,
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -130,14 +130,17 @@ class EmailBoxController extends Controller {
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public function loadEmailboxAttachement(int $messageId = 0): Response {
|
public function loadEmailboxAttachement(int $messageId = 0): Response {
|
||||||
|
$data = [];
|
||||||
try {
|
try {
|
||||||
$message = $this->mailManager->getMessage($this->currentUserId, $messageId);
|
$message = $this->mailManager->getMessage($this->currentUserId, $messageId);
|
||||||
$mailbox = $this->mailManager->getMailbox($this->currentUserId, $message->getMailboxId());
|
$mailbox = $this->mailManager->getMailbox($this->currentUserId, $message->getMailboxId());
|
||||||
$account = $this->accountService->find($this->currentUserId, $mailbox->getAccountId());
|
$account = $this->accountService->find($this->currentUserId, $mailbox->getAccountId());
|
||||||
|
|
||||||
|
// $data["messageObject"] = $message ?? null;
|
||||||
} catch (DoesNotExistException $e) {
|
} catch (DoesNotExistException $e) {
|
||||||
return new JSONResponse([], Http::STATUS_FORBIDDEN);
|
return new JSONResponse([], Http::STATUS_FORBIDDEN);
|
||||||
}
|
}
|
||||||
$data = [];
|
|
||||||
$client = $this->clientFactory->getClient($account);
|
$client = $this->clientFactory->getClient($account);
|
||||||
try {
|
try {
|
||||||
$imapMessage = $this->mailManager->getImapMessage(
|
$imapMessage = $this->mailManager->getImapMessage(
|
||||||
@ -150,7 +153,6 @@ class EmailBoxController extends Controller {
|
|||||||
} finally {
|
} finally {
|
||||||
$client->logout();
|
$client->logout();
|
||||||
}
|
}
|
||||||
|
|
||||||
$data['attachments'] = array_map(function ($a) use ($messageId) {
|
$data['attachments'] = array_map(function ($a) use ($messageId) {
|
||||||
return $this->enrichDownloadUrl(
|
return $this->enrichDownloadUrl(
|
||||||
$messageId,
|
$messageId,
|
||||||
|
|||||||
@ -71,7 +71,7 @@
|
|||||||
{{ openConfirmationMessage }}
|
{{ openConfirmationMessage }}
|
||||||
</p>
|
</p>
|
||||||
</NcDialog>
|
</NcDialog>
|
||||||
<NcModal v-if="showModal" name="" @close="resetMailBoxModal">
|
<NcModal v-if="showModal" name="" size='large' @close="resetMailBoxModal">
|
||||||
|
|
||||||
<div class="modal__content" v-if="!showAttachmentsSection && !showAttachmentsSection">
|
<div class="modal__content" v-if="!showAttachmentsSection && !showAttachmentsSection">
|
||||||
<NcButton style="text-align: center;" @click="syncEmailBox()" v-if="!loadingDataEmailBox">
|
<NcButton style="text-align: center;" @click="syncEmailBox()" v-if="!loadingDataEmailBox">
|
||||||
@ -84,7 +84,7 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<NcListItem
|
<NcListItem
|
||||||
@click="getAttachments(mail)"
|
@click="getAttachments(mail)"
|
||||||
:name="getLabelEmailBox(mail.from) + ' : ' + getSubstringText(mail.subject, 30) "
|
:name="getLabelEmailBox(mail.from) + ' : ' + mail.subject"
|
||||||
:bold="false"
|
:bold="false"
|
||||||
counterType="outlined">
|
counterType="outlined">
|
||||||
<template #subname>
|
<template #subname>
|
||||||
@ -117,23 +117,32 @@
|
|||||||
<div class="mailHeader">
|
<div class="mailHeader">
|
||||||
Pièces jointes :
|
Pièces jointes :
|
||||||
</div>
|
</div>
|
||||||
<div class="image-list-attachement " v-if="!loadingDataEmailBox && mailAttachments.length > 0" v-for="attachment in mailAttachments">
|
<div class="image-list-attachement " v-if="!loadingDataEmailBox && mailAttachmentData.length > 0" v-for="attachment in mailAttachmentData">
|
||||||
<div v-if="attachment.isImage" class="image-item-attachement " @click="pickEmailAttachement(attachment)">
|
<div v-if="attachment.isImage" class="image-item-attachement " @click="selectAttachement(attachment.id)">
|
||||||
<img :src="attachment.downloadUrl" :alt="attachment.fileName ">
|
<img :src="attachment.downloadUrl" :alt="attachment.fileName ">
|
||||||
<label>{{ attachment.fileName }}</label>
|
<label>{{ attachment.fileName }} <span v-if="isInSelectedAttachment(attachment.id)"> ✔</span> </label>
|
||||||
</div>
|
</div>
|
||||||
<div v-else-if="! attachment.isImage && !attachment.isCalendarEvent" class="image-item-attachement " @click="pickEmailAttachement(attachment)">
|
<div v-else-if="! attachment.isImage && !attachment.isCalendarEvent" class="image-item-attachement " @click="selectAttachement(attachment.id)">
|
||||||
<label>{{ attachment.fileName }}</label>
|
<label>{{ attachment.fileName }}
|
||||||
|
<span v-if="isInSelectedAttachment(attachment.id)"> ✔</span>
|
||||||
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div v-else-if="attachment.isCalendarEvent" class="image-item-attachement " >
|
<div v-else-if="attachment.isCalendarEvent" class="image-item-attachement " >
|
||||||
<label>{{ attachment.fileName }} ( Non allouée)</label>
|
<label>{{ attachment.fileName }} ( Non allouée)</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<template v-if="!mailAttachments.length && !loadingDataEmailBox" >
|
<template v-if="!mailAttachmentData.length && !loadingDataEmailBox" >
|
||||||
<p> Pas d'attachements</p>
|
<p> Pas d'attachements</p>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="modal__content" v-if="selectedAttachements.length && !loadingDataEmailBox" >
|
||||||
|
<NcButton style="text-align: center;" @click="pickEmailAttachement()" >
|
||||||
|
Ajouter ({{ selectedAttachements.length }})
|
||||||
|
</NcButton>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal__content" v-if="loadingDataEmailBox" >
|
<div class="modal__content" v-if="loadingDataEmailBox" >
|
||||||
<div >
|
<div >
|
||||||
@ -155,6 +164,7 @@ import {
|
|||||||
NcButton,
|
NcButton,
|
||||||
NcAvatar,
|
NcAvatar,
|
||||||
NcLoadingIcon,
|
NcLoadingIcon,
|
||||||
|
NcCheckboxRadioSwitch
|
||||||
} from '@nextcloud/vue'
|
} from '@nextcloud/vue'
|
||||||
|
|
||||||
import axios from "@nextcloud/axios";
|
import axios from "@nextcloud/axios";
|
||||||
@ -177,6 +187,7 @@ import {
|
|||||||
uploadRemoteFile
|
uploadRemoteFile
|
||||||
} from '../../../services/attachmentService.js'
|
} from '../../../services/attachmentService.js'
|
||||||
import { parseXML } from 'webdav'
|
import { parseXML } from 'webdav'
|
||||||
|
import { size } from 'lodash';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'AttachmentsList',
|
name: 'AttachmentsList',
|
||||||
@ -196,7 +207,8 @@ export default {
|
|||||||
ArrowLeft,
|
ArrowLeft,
|
||||||
Reload,
|
Reload,
|
||||||
NcAvatar,
|
NcAvatar,
|
||||||
NcLoadingIcon
|
NcLoadingIcon,
|
||||||
|
NcCheckboxRadioSwitch
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
calendarObjectInstance: {
|
calendarObjectInstance: {
|
||||||
@ -218,7 +230,8 @@ export default {
|
|||||||
showAttachmentsSection: false,
|
showAttachmentsSection: false,
|
||||||
loadingDataEmailBox: false,
|
loadingDataEmailBox: false,
|
||||||
mailBoxData: [],
|
mailBoxData: [],
|
||||||
mailAttachments: [],
|
mailAttachmentData: [],
|
||||||
|
selectedAttachements: [],
|
||||||
loadingText: 'Chargement ...',
|
loadingText: 'Chargement ...',
|
||||||
selectedMail: null
|
selectedMail: null
|
||||||
}
|
}
|
||||||
@ -375,20 +388,41 @@ export default {
|
|||||||
this.selectedMail = mail
|
this.selectedMail = mail
|
||||||
this.loadingDataEmailBox = true
|
this.loadingDataEmailBox = true
|
||||||
this.showAttachmentsSection = true
|
this.showAttachmentsSection = true
|
||||||
this.mailAttachments = [] ;
|
this.mailAttachmentData = [] ;
|
||||||
await this.loadAttachments(mail)
|
await this.loadAttachments(mail)
|
||||||
this.loadingDataEmailBox = false
|
this.loadingDataEmailBox = false
|
||||||
},
|
},
|
||||||
async pickEmailAttachement(attachement){
|
selectAttachement(attachementId){
|
||||||
|
if(this.isInSelectedAttachment(attachementId)){
|
||||||
|
console.log("remove")
|
||||||
|
this.selectedAttachements = this.selectedAttachements.filter(id => id !== attachementId)
|
||||||
|
}else{
|
||||||
|
console.log("add")
|
||||||
|
this.selectedAttachements.push(attachementId)
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
isInSelectedAttachment(attachementId){
|
||||||
|
return this.selectedAttachements.find(id => id === attachementId)
|
||||||
|
},
|
||||||
|
async pickEmailAttachement(){
|
||||||
this.loadingText = 'Ajout de l\'attachement encours ...'
|
this.loadingText = 'Ajout de l\'attachement encours ...'
|
||||||
this.loadingDataEmailBox = true
|
this.loadingDataEmailBox = true
|
||||||
await this.pickEmailAttachementTodavFile(attachement)
|
//upload only attachmen if id is in selectedAttachements
|
||||||
|
const selectedAttachements = this.selectedAttachements.map(id => this.mailAttachmentData.find(attachement => attachement.id === id))
|
||||||
|
await this.uploadAttachment(selectedAttachements)
|
||||||
|
|
||||||
this.closeMailBoxModal()
|
this.closeMailBoxModal()
|
||||||
this.resetMailBoxModal()
|
this.resetMailBoxModal()
|
||||||
|
},
|
||||||
|
async uploadAttachment(attachements = []){
|
||||||
|
await Promise.all(attachements.map(async attachement => {
|
||||||
|
await this.uploadEmailAttachementTodavFile(attachement)
|
||||||
|
}))
|
||||||
},
|
},
|
||||||
resetMailBoxModal() {
|
resetMailBoxModal() {
|
||||||
this.mailBoxData = []
|
this.mailBoxData = []
|
||||||
this.mailAttachments = []
|
this.mailAttachmentData = []
|
||||||
this.showModal = false
|
this.showModal = false
|
||||||
this.showAttachmentsSection = false
|
this.showAttachmentsSection = false
|
||||||
this.loadingDataEmailBox = false
|
this.loadingDataEmailBox = false
|
||||||
@ -424,23 +458,34 @@ export default {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
async loadAttachments(mail) {
|
async loadAttachments(mail) {
|
||||||
if (!this.hasAttachements(mail)) {
|
// if (!this.hasAttachements(mail)) {
|
||||||
this.mailAttachments = [] ;
|
// this.mailAttachmentData = [] ;
|
||||||
this.loadingDataEmailBox = false
|
// this.loadingDataEmailBox = false
|
||||||
return;
|
// return;
|
||||||
}
|
// }
|
||||||
const ajaxUrl = generateUrl('/apps/calendar/load-email-attachement/' + mail.databaseId)
|
const ajaxUrl = generateUrl('/apps/calendar/load-email-attachement/' + mail.databaseId)
|
||||||
|
|
||||||
await axios.get(ajaxUrl)
|
await axios.get(ajaxUrl)
|
||||||
.then(response => {
|
.then(response => {
|
||||||
console.log(response.data)
|
|
||||||
this.mailAttachments = response.data.attachments
|
// response.data.attachments.forEach(attachement => {
|
||||||
|
// this.mailAttachmentData.push({
|
||||||
|
// id : attachement.id,
|
||||||
|
// fileName : attachement.fileName,
|
||||||
|
// downloadUrl : attachement.downloadUrl,
|
||||||
|
// id : attachement.id,
|
||||||
|
// isImage : attachement.isImage,
|
||||||
|
// isCalendarEvent : attachement.isCalendarEvent,
|
||||||
|
// size : attachement.size,
|
||||||
|
// })
|
||||||
|
// })
|
||||||
|
this.mailAttachmentData = response.data.attachments
|
||||||
})
|
})
|
||||||
.catch(error => {
|
.catch(error => {
|
||||||
console.log(error)
|
console.log(error)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
async pickEmailAttachementTodavFile(attachement) {
|
async uploadEmailAttachementTodavFile(attachement) {
|
||||||
const attachmentsFolder = await this.$store.dispatch('createAttachmentsFolder')
|
const attachmentsFolder = await this.$store.dispatch('createAttachmentsFolder')
|
||||||
const attachment = await uploadRemoteFile(attachmentsFolder, attachement.downloadUrl, attachement.fileName ,this.currentUser.dav)
|
const attachment = await uploadRemoteFile(attachmentsFolder, attachement.downloadUrl, attachement.fileName ,this.currentUser.dav)
|
||||||
// TODO do not share file, move to PHP
|
// TODO do not share file, move to PHP
|
||||||
|
|||||||
@ -201,7 +201,7 @@
|
|||||||
:calendar-object-instance="calendarObjectInstance"
|
:calendar-object-instance="calendarObjectInstance"
|
||||||
:is-read-only="isReadOnly" />
|
:is-read-only="isReadOnly" />
|
||||||
|
|
||||||
<NcModal v-if="showModal && !isPrivate()"
|
<NcModal v-if="showModal && !checkIsPrivate()"
|
||||||
:name="t('calendar', 'Managing shared access')"
|
:name="t('calendar', 'Managing shared access')"
|
||||||
@close="closeAttachmentsModal">
|
@close="closeAttachmentsModal">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
@ -232,7 +232,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<div class="modal-footer-checkbox">
|
<div class="modal-footer-checkbox">
|
||||||
<NcCheckboxRadioSwitch v-if="!isPrivate()" :checked.sync="doNotShare">
|
<NcCheckboxRadioSwitch v-if="!checkIsPrivate()" :checked.sync="doNotShare">
|
||||||
{{ t('calendar', 'Deny access') }}
|
{{ t('calendar', 'Deny access') }}
|
||||||
</NcCheckboxRadioSwitch>
|
</NcCheckboxRadioSwitch>
|
||||||
</div>
|
</div>
|
||||||
@ -552,7 +552,7 @@ export default {
|
|||||||
*
|
*
|
||||||
* @return {boolean}
|
* @return {boolean}
|
||||||
*/
|
*/
|
||||||
isPrivate() {
|
checkIsPrivate() {
|
||||||
return this.calendarObjectInstance.attendees.filter((attendee) => {
|
return this.calendarObjectInstance.attendees.filter((attendee) => {
|
||||||
if (this.currentUser.emailAddress.toLowerCase() !== (
|
if (this.currentUser.emailAddress.toLowerCase() !== (
|
||||||
attendee.uri.split('mailto:').length === 2
|
attendee.uri.split('mailto:').length === 2
|
||||||
@ -576,7 +576,7 @@ export default {
|
|||||||
if (!this.doNotShare) {
|
if (!this.doNotShare) {
|
||||||
const total = this.showModalNewAttachments.length
|
const total = this.showModalNewAttachments.length
|
||||||
this.showPreloader = true
|
this.showPreloader = true
|
||||||
if (!this.isPrivate()) {
|
if (!this.checkIsPrivate()) {
|
||||||
this.showModalNewAttachments.map(async (attachment, i) => {
|
this.showModalNewAttachments.map(async (attachment, i) => {
|
||||||
// console.log('Add share', attachment)
|
// console.log('Add share', attachment)
|
||||||
this.sharedProgress = Math.ceil(100 * (i + 1) / total)
|
this.sharedProgress = Math.ceil(100 * (i + 1) / total)
|
||||||
@ -638,10 +638,10 @@ export default {
|
|||||||
const newAttachments = this.calendarObjectInstance.attachments.filter(attachment => {
|
const newAttachments = this.calendarObjectInstance.attachments.filter(attachment => {
|
||||||
// get only new attachments
|
// get only new attachments
|
||||||
// TODO get NOT only new attachments =) Maybe we should filter all attachments without share-type, 'cause event can be private and AFTER save owner could add new participant
|
// TODO get NOT only new attachments =) Maybe we should filter all attachments without share-type, 'cause event can be private and AFTER save owner could add new participant
|
||||||
return !this.isPrivate() ? attachment.isNew && attachment.shareTypes === null : attachment.isNew && attachment.shareTypes !== null
|
return !this.checkIsPrivate() ? attachment.isNew && attachment.shareTypes === null : attachment.isNew && attachment.shareTypes !== null
|
||||||
})
|
})
|
||||||
// if there are new attachment and event not saved
|
// if there are new attachment and event not saved
|
||||||
if (newAttachments.length > 0 && !this.isPrivate()) {
|
if (newAttachments.length > 0 && !this.checkIsPrivate()) {
|
||||||
// and is event NOT private,
|
// and is event NOT private,
|
||||||
// then add share to each attachment
|
// then add share to each attachment
|
||||||
// only if attachment['share-types'] is null or empty
|
// only if attachment['share-types'] is null or empty
|
||||||
|
|||||||
@ -2913,6 +2913,11 @@ class PageController extends Controller {
|
|||||||
return $this->myDb->createDefaultGroupFacturation();
|
return $this->myDb->createDefaultGroupFacturation();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @NoAdminRequired
|
||||||
|
* @NoCSRFRequired
|
||||||
|
*
|
||||||
|
*/
|
||||||
public function getUserTypeByUserUuid($userUuid){
|
public function getUserTypeByUserUuid($userUuid){
|
||||||
try{
|
try{
|
||||||
return json_encode(value: $this->myDb->getUserTypeByUserUuid($userUuid));
|
return json_encode(value: $this->myDb->getUserTypeByUserUuid($userUuid));
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user