Merge branch 'h2f/features/private-event' into releases/release-h2f

This commit is contained in:
Tiavina 2025-03-26 11:07:48 +03:00
commit 8f144fff2e
24 changed files with 1345 additions and 479 deletions

File diff suppressed because it is too large Load Diff

View File

@ -53,6 +53,7 @@ __webpack_require__.r(__webpack_exports__);
*/
function eventSourceFunction(calendarObjects, calendar, start, end, timezone) {
const fcEvents = [];
const authUser = OC.currentUser;
for (const calendarObject of calendarObjects) {
let allObjectsInTimeRange;
try {
@ -123,6 +124,24 @@ function eventSourceFunction(calendarObjects, calendar, start, end, timezone) {
title += " (".concat(object.percent, "%)");
}
}
let isPrivateEvent = false;
let objectProperties = object._properties.get('ISPRIVATE');
if (objectProperties && objectProperties.length > 0) {
isPrivateEvent = objectProperties[0]._value == "1" ? true : false;
}
//Get owen object's user
let owenUrl = calendarObject.dav._parent.owner;
let owenUser = owenUrl.replace('/remote.php/dav/principals/users/', '').split('/')[0];
if (!owenUser) {
//Get from url shared calendar
owenUrl = calendarObject.dav._parent.url;
owenUser = owenUrl.replace('/remote.php/dav/calendars/' + authUser + '/personal_shared_by_', '').split('/')[0];
}
const isOwenOfEvent = owenUser == authUser;
if (isPrivateEvent && !isOwenOfEvent) {
title = (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate)('calendar', "Absent (".concat(owenUser, ")"));
}
const fcEvent = {
id: [calendarObject.id, object.id].join('###'),
title,
@ -144,7 +163,10 @@ function eventSourceFunction(calendarObjects, calendar, start, end, timezone) {
percent: object.percent || null,
davUrl: calendarObject.dav.url,
location: object.location,
description: object.description
description: object.description,
isPrivate: isPrivateEvent,
calendarObjectOwen: owenUser,
calendarObjectIsOwen: isOwenOfEvent
}
};
if (object.color) {
@ -1032,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=740a2859d1f364b508c1
//# sourceMappingURL=calendar-src_fullcalendar_eventSources_eventSourceFunction_js-src_utils_moment_js-data_image_svg_xml_3-b73258.js.map?v=b5a1f8246e3d20bdaf6b

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -4372,6 +4372,7 @@ __webpack_require__.r(__webpack_exports__);
},
isEditable() {
var _this$$route3, _this$$route4;
console.log("this.isAuthenticatedUser" + this.isAuthenticatedUser);
// We do not allow drag and drop when the editor is open.
return this.isAuthenticatedUser && ((_this$$route3 = this.$route) === null || _this$$route3 === void 0 ? void 0 : _this$$route3.name) !== 'EditPopoverView' && ((_this$$route4 = this.$route) === null || _this$$route4 === void 0 ? void 0 : _this$$route4.name) !== 'EditSidebarView';
}
@ -5925,6 +5926,45 @@ __webpack_require__.r(__webpack_exports__);
/***/ }),
/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/Editor/Properties/PropertyIsPrivate.vue?vue&type=script&lang=js":
/*!********************************************************************************************************************************************************************************************!*\
!*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/Editor/Properties/PropertyIsPrivate.vue?vue&type=script&lang=js ***!
\********************************************************************************************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _nextcloud_vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/vue */ "./node_modules/@nextcloud/vue/dist/index.mjs");
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
name: "PropertyIsPrivate",
components: {
NcCheckboxRadioSwitch: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_0__.NcCheckboxRadioSwitch
},
props: {
isPrivate: {
type: Boolean,
default: false
}
},
computed: {
getIsPrivateLabel() {
return this.isPrivate ? this.$t('calendar', 'Privé') : this.$t('calendar', 'Mettre en privé');
}
},
methods: {
toggleIsPrivate() {
const newState = !this.isPrivate;
this.$emit('toggle-is-private', newState);
}
}
});
/***/ }),
/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/Editor/Properties/PropertySelect.vue?vue&type=script&lang=js":
/*!*****************************************************************************************************************************************************************************************!*\
!*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/Editor/Properties/PropertySelect.vue?vue&type=script&lang=js ***!
@ -8034,13 +8074,13 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var vue_material_design_icons_ContentDuplicate_vue__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! vue-material-design-icons/ContentDuplicate.vue */ "./node_modules/vue-material-design-icons/ContentDuplicate.vue");
/* harmony import */ var vue_material_design_icons_Pencil_vue__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! vue-material-design-icons/Pencil.vue */ "./node_modules/vue-material-design-icons/Pencil.vue");
/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! vuex */ "./node_modules/vuex/dist/vuex.esm.js");
/* harmony import */ var _nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @nextcloud/dialogs */ "./node_modules/@nextcloud/dialogs/dist/index.mjs");
/* harmony import */ var _components_Editor_Properties_PropertySelect_vue__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../components/Editor/Properties/PropertySelect.vue */ "./src/components/Editor/Properties/PropertySelect.vue");
/* harmony import */ var _components_Editor_Properties_PropertySelectAjax_vue__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../components/Editor/Properties/PropertySelectAjax.vue */ "./src/components/Editor/Properties/PropertySelectAjax.vue");
/* harmony import */ var _components_Editor_Properties_PropertySelectAjaxMultiple_vue__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../components/Editor/Properties/PropertySelectAjaxMultiple.vue */ "./src/components/Editor/Properties/PropertySelectAjaxMultiple.vue");
/* harmony import */ var _components_Editor_Properties_PropertySelectLieu_vue__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../components/Editor/Properties/PropertySelectLieu.vue */ "./src/components/Editor/Properties/PropertySelectLieu.vue");
/* harmony import */ var _components_Editor_Properties_PropertySelectClient_vue__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../components/Editor/Properties/PropertySelectClient.vue */ "./src/components/Editor/Properties/PropertySelectClient.vue");
/* harmony import */ var _components_Editor_Properties_PropertySelectArticle_vue__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../components/Editor/Properties/PropertySelectArticle.vue */ "./src/components/Editor/Properties/PropertySelectArticle.vue");
/* harmony import */ var _components_Editor_Properties_PropertySelect_vue__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../components/Editor/Properties/PropertySelect.vue */ "./src/components/Editor/Properties/PropertySelect.vue");
/* harmony import */ var _components_Editor_Properties_PropertySelectAjax_vue__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../components/Editor/Properties/PropertySelectAjax.vue */ "./src/components/Editor/Properties/PropertySelectAjax.vue");
/* harmony import */ var _components_Editor_Properties_PropertySelectAjaxMultiple_vue__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../components/Editor/Properties/PropertySelectAjaxMultiple.vue */ "./src/components/Editor/Properties/PropertySelectAjaxMultiple.vue");
/* harmony import */ var _components_Editor_Properties_PropertySelectLieu_vue__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../components/Editor/Properties/PropertySelectLieu.vue */ "./src/components/Editor/Properties/PropertySelectLieu.vue");
/* harmony import */ var _components_Editor_Properties_PropertySelectClient_vue__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../components/Editor/Properties/PropertySelectClient.vue */ "./src/components/Editor/Properties/PropertySelectClient.vue");
/* harmony import */ var _components_Editor_Properties_PropertySelectArticle_vue__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../components/Editor/Properties/PropertySelectArticle.vue */ "./src/components/Editor/Properties/PropertySelectArticle.vue");
/* harmony import */ var _components_Editor_Properties_PropertyIsPrivate_vue__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../components/Editor/Properties/PropertyIsPrivate.vue */ "./src/components/Editor/Properties/PropertyIsPrivate.vue");
@ -8069,12 +8109,13 @@ __webpack_require__.r(__webpack_exports__);
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
name: 'EditSimple',
components: {
PropertySelectAjaxMultiple: _components_Editor_Properties_PropertySelectAjaxMultiple_vue__WEBPACK_IMPORTED_MODULE_20__["default"],
PropertySelectAjax: _components_Editor_Properties_PropertySelectAjax_vue__WEBPACK_IMPORTED_MODULE_19__["default"],
PropertySelectLieu: _components_Editor_Properties_PropertySelectLieu_vue__WEBPACK_IMPORTED_MODULE_21__["default"],
PropertySelectClient: _components_Editor_Properties_PropertySelectClient_vue__WEBPACK_IMPORTED_MODULE_22__["default"],
PropertySelectArticle: _components_Editor_Properties_PropertySelectArticle_vue__WEBPACK_IMPORTED_MODULE_23__["default"],
PropertySelect: _components_Editor_Properties_PropertySelect_vue__WEBPACK_IMPORTED_MODULE_18__["default"],
PropertySelectAjaxMultiple: _components_Editor_Properties_PropertySelectAjaxMultiple_vue__WEBPACK_IMPORTED_MODULE_19__["default"],
PropertySelectAjax: _components_Editor_Properties_PropertySelectAjax_vue__WEBPACK_IMPORTED_MODULE_18__["default"],
PropertySelectLieu: _components_Editor_Properties_PropertySelectLieu_vue__WEBPACK_IMPORTED_MODULE_20__["default"],
PropertySelectClient: _components_Editor_Properties_PropertySelectClient_vue__WEBPACK_IMPORTED_MODULE_21__["default"],
PropertySelectArticle: _components_Editor_Properties_PropertySelectArticle_vue__WEBPACK_IMPORTED_MODULE_22__["default"],
PropertyIsPrivate: _components_Editor_Properties_PropertyIsPrivate_vue__WEBPACK_IMPORTED_MODULE_23__["default"],
PropertySelect: _components_Editor_Properties_PropertySelect_vue__WEBPACK_IMPORTED_MODULE_17__["default"],
PopoverLoadingIndicator: _components_Popover_PopoverLoadingIndicator_vue__WEBPACK_IMPORTED_MODULE_6__["default"],
SaveButtons: _components_Editor_SaveButtons_vue__WEBPACK_IMPORTED_MODULE_5__["default"],
PropertyText: _components_Editor_Properties_PropertyText_vue__WEBPACK_IMPORTED_MODULE_4__["default"],
@ -12762,6 +12803,40 @@ var staticRenderFns = [];
render._withStripped = true;
/***/ }),
/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/Editor/Properties/PropertyIsPrivate.vue?vue&type=template&id=fb6819ac&scoped=true":
/*!*******************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/Editor/Properties/PropertyIsPrivate.vue?vue&type=template&id=fb6819ac&scoped=true ***!
\*******************************************************************************************************************************************************************************************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ render: () => (/* binding */ render),
/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns)
/* harmony export */ });
var render = function render() {
var _vm = this,
_c = _vm._self._c;
return !_vm.isReadOnly ? _c("div", {
staticClass: "property-title-time-picker"
}, [_c("div", {
staticClass: "property-title-time-picker__all-day"
}, [_c("NcCheckboxRadioSwitch", {
attrs: {
checked: _vm.isPrivate
},
on: {
"update:checked": _vm.toggleIsPrivate
}
}, [_vm._v("\n\t\t\t" + _vm._s(_vm.$t("calendar", "Privé")) + "\n\t\t")])], 1)]) : _c("div", [_vm._v("\n\t" + _vm._s(_vm.getIsPrivateLabel) + "\n")]);
};
var staticRenderFns = [];
render._withStripped = true;
/***/ }),
/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/Editor/Properties/PropertySelect.vue?vue&type=template&id=04aa9fca&scoped=true":
@ -14335,6 +14410,14 @@ var render = function render() {
"update-end-timezone": _vm.updateEndTimezone,
"toggle-all-day": _vm.toggleAllDay
}
}), _vm._v(" "), _c("PropertyIsPrivate", {
attrs: {
"is-read-only": _vm.isReadOnly,
"is-private": _vm.isPrivate
},
on: {
"toggle-is-private": _vm.toggleIsPrivate
}
}), _vm._v(" "), _c("PropertySelectClient", {
staticClass: "property-location",
attrs: {
@ -15645,6 +15728,9 @@ __webpack_require__.r(__webpack_exports__);
*/
function handleEventClick(event, store, router, route, window) {
let isWidget = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;
if (event.extendedProps.isPrivate && !event.extendedProps.calendarObjectIsOwen) {
return;
}
if (isWidget) {
store.commit('setSelectedEvent', {
object: event.extendedProps.objectId,
@ -16893,14 +16979,23 @@ __webpack_require__.r(__webpack_exports__);
var _this$calendarObjectI8, _this$calendarObjectI9;
return (_this$calendarObjectI8 = (_this$calendarObjectI9 = this.calendarObjectInstance) === null || _this$calendarObjectI9 === void 0 ? void 0 : _this$calendarObjectI9.embalmer) !== null && _this$calendarObjectI8 !== void 0 ? _this$calendarObjectI8 : null;
},
/**
* Returns the isPrivate property
*
* @return {boolean}
*/
isPrivate() {
var _this$calendarObjectI10, _this$calendarObjectI11;
return (_this$calendarObjectI10 = (_this$calendarObjectI11 = this.calendarObjectInstance) === null || _this$calendarObjectI11 === void 0 ? void 0 : _this$calendarObjectI11.isPrivate) !== null && _this$calendarObjectI10 !== void 0 ? _this$calendarObjectI10 : false;
},
/**
* Returns the description or null if the event is still loading
*
* @return {string|null}
*/
description() {
var _this$calendarObjectI10, _this$calendarObjectI11;
return (_this$calendarObjectI10 = (_this$calendarObjectI11 = this.calendarObjectInstance) === null || _this$calendarObjectI11 === void 0 ? void 0 : _this$calendarObjectI11.description) !== null && _this$calendarObjectI10 !== void 0 ? _this$calendarObjectI10 : null;
var _this$calendarObjectI12, _this$calendarObjectI13;
return (_this$calendarObjectI12 = (_this$calendarObjectI13 = this.calendarObjectInstance) === null || _this$calendarObjectI13 === void 0 ? void 0 : _this$calendarObjectI13.description) !== null && _this$calendarObjectI12 !== void 0 ? _this$calendarObjectI12 : null;
},
/**
* Returns the start-date (without timezone) or null if the event is still loading
@ -16908,8 +17003,8 @@ __webpack_require__.r(__webpack_exports__);
* @return {Date|null}
*/
startDate() {
var _this$calendarObjectI12, _this$calendarObjectI13;
return (_this$calendarObjectI12 = (_this$calendarObjectI13 = this.calendarObjectInstance) === null || _this$calendarObjectI13 === void 0 ? void 0 : _this$calendarObjectI13.startDate) !== null && _this$calendarObjectI12 !== void 0 ? _this$calendarObjectI12 : null;
var _this$calendarObjectI14, _this$calendarObjectI15;
return (_this$calendarObjectI14 = (_this$calendarObjectI15 = this.calendarObjectInstance) === null || _this$calendarObjectI15 === void 0 ? void 0 : _this$calendarObjectI15.startDate) !== null && _this$calendarObjectI14 !== void 0 ? _this$calendarObjectI14 : null;
},
/**
* Returns the timezone of the event's start-date or null if the event is still loading
@ -16917,8 +17012,8 @@ __webpack_require__.r(__webpack_exports__);
* @return {string|null}
*/
startTimezone() {
var _this$calendarObjectI14, _this$calendarObjectI15;
return (_this$calendarObjectI14 = (_this$calendarObjectI15 = this.calendarObjectInstance) === null || _this$calendarObjectI15 === void 0 ? void 0 : _this$calendarObjectI15.startTimezoneId) !== null && _this$calendarObjectI14 !== void 0 ? _this$calendarObjectI14 : null;
var _this$calendarObjectI16, _this$calendarObjectI17;
return (_this$calendarObjectI16 = (_this$calendarObjectI17 = this.calendarObjectInstance) === null || _this$calendarObjectI17 === void 0 ? void 0 : _this$calendarObjectI17.startTimezoneId) !== null && _this$calendarObjectI16 !== void 0 ? _this$calendarObjectI16 : null;
},
/**
* Returns the end-date (without timezone) or null if the event is still loading
@ -16926,8 +17021,8 @@ __webpack_require__.r(__webpack_exports__);
* @return {Date|null}
*/
endDate() {
var _this$calendarObjectI16, _this$calendarObjectI17;
return (_this$calendarObjectI16 = (_this$calendarObjectI17 = this.calendarObjectInstance) === null || _this$calendarObjectI17 === void 0 ? void 0 : _this$calendarObjectI17.endDate) !== null && _this$calendarObjectI16 !== void 0 ? _this$calendarObjectI16 : null;
var _this$calendarObjectI18, _this$calendarObjectI19;
return (_this$calendarObjectI18 = (_this$calendarObjectI19 = this.calendarObjectInstance) === null || _this$calendarObjectI19 === void 0 ? void 0 : _this$calendarObjectI19.endDate) !== null && _this$calendarObjectI18 !== void 0 ? _this$calendarObjectI18 : null;
},
/**
* Returns the timezone of the event's end-date or null if the event is still loading
@ -16935,8 +17030,8 @@ __webpack_require__.r(__webpack_exports__);
* @return {string|null}
*/
endTimezone() {
var _this$calendarObjectI18, _this$calendarObjectI19;
return (_this$calendarObjectI18 = (_this$calendarObjectI19 = this.calendarObjectInstance) === null || _this$calendarObjectI19 === void 0 ? void 0 : _this$calendarObjectI19.endTimezoneId) !== null && _this$calendarObjectI18 !== void 0 ? _this$calendarObjectI18 : null;
var _this$calendarObjectI20, _this$calendarObjectI21;
return (_this$calendarObjectI20 = (_this$calendarObjectI21 = this.calendarObjectInstance) === null || _this$calendarObjectI21 === void 0 ? void 0 : _this$calendarObjectI21.endTimezoneId) !== null && _this$calendarObjectI20 !== void 0 ? _this$calendarObjectI20 : null;
},
/**
* Returns whether or not the event is all-day or null if the event is still loading
@ -16944,8 +17039,8 @@ __webpack_require__.r(__webpack_exports__);
* @return {boolean}
*/
isAllDay() {
var _this$calendarObjectI20, _this$calendarObjectI21;
return (_this$calendarObjectI20 = (_this$calendarObjectI21 = this.calendarObjectInstance) === null || _this$calendarObjectI21 === void 0 ? void 0 : _this$calendarObjectI21.isAllDay) !== null && _this$calendarObjectI20 !== void 0 ? _this$calendarObjectI20 : false;
var _this$calendarObjectI22, _this$calendarObjectI23;
return (_this$calendarObjectI22 = (_this$calendarObjectI23 = this.calendarObjectInstance) === null || _this$calendarObjectI23 === void 0 ? void 0 : _this$calendarObjectI23.isAllDay) !== null && _this$calendarObjectI22 !== void 0 ? _this$calendarObjectI22 : false;
},
/**
* Returns whether or not the user is allowed to modify the all-day setting
@ -16953,8 +17048,8 @@ __webpack_require__.r(__webpack_exports__);
* @return {boolean}
*/
canModifyAllDay() {
var _this$calendarObjectI22, _this$calendarObjectI23;
return (_this$calendarObjectI22 = (_this$calendarObjectI23 = this.calendarObjectInstance) === null || _this$calendarObjectI23 === void 0 ? void 0 : _this$calendarObjectI23.canModifyAllDay) !== null && _this$calendarObjectI22 !== void 0 ? _this$calendarObjectI22 : false;
var _this$calendarObjectI24, _this$calendarObjectI25;
return (_this$calendarObjectI24 = (_this$calendarObjectI25 = this.calendarObjectInstance) === null || _this$calendarObjectI25 === void 0 ? void 0 : _this$calendarObjectI25.canModifyAllDay) !== null && _this$calendarObjectI24 !== void 0 ? _this$calendarObjectI24 : false;
},
/**
* Returns the color the illustration should be colored in
@ -16986,8 +17081,8 @@ __webpack_require__.r(__webpack_exports__);
* @return {null | string}
*/
color() {
var _this$calendarObjectI24, _this$calendarObjectI25;
return (_this$calendarObjectI24 = (_this$calendarObjectI25 = this.calendarObjectInstance) === null || _this$calendarObjectI25 === void 0 ? void 0 : _this$calendarObjectI25.customColor) !== null && _this$calendarObjectI24 !== void 0 ? _this$calendarObjectI24 : null;
var _this$calendarObjectI26, _this$calendarObjectI27;
return (_this$calendarObjectI26 = (_this$calendarObjectI27 = this.calendarObjectInstance) === null || _this$calendarObjectI27 === void 0 ? void 0 : _this$calendarObjectI27.customColor) !== null && _this$calendarObjectI26 !== void 0 ? _this$calendarObjectI26 : null;
},
/**
* Returns whether or not to display save buttons
@ -17452,6 +17547,15 @@ __webpack_require__.r(__webpack_exports__);
calendarObjectInstance: this.calendarObjectInstance
});
},
/**
* Toggles the event to private
*/
toggleIsPrivate(isPrivate) {
this.$store.commit('toggleIsPrivate', {
calendarObjectInstance: this.calendarObjectInstance,
isPrivate
});
},
/**
* Resets the internal state after changing the viewed calendar-object
*/
@ -20751,6 +20855,39 @@ ___CSS_LOADER_EXPORT___.push([module.id, `
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/Editor/Properties/PropertyIsPrivate.vue?vue&type=style&index=0&id=fb6819ac&scoped=true&lang=css":
/*!**********************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/Editor/Properties/PropertyIsPrivate.vue?vue&type=style&index=0&id=fb6819ac&scoped=true&lang=css ***!
\**********************************************************************************************************************************************************************************************************************************************************************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js");
/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js");
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
// Imports
var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
// Module
___CSS_LOADER_EXPORT___.push([module.id, `
.checkbox-container[data-v-fb6819ac] {
display: flex;
align-items: center;
gap: 8px;
}
`, ""]);
// Exports
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
/***/ }),
/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/AppNavigation/AppNavigationHeader/AppNavigationHeaderNewEvent.vue?vue&type=style&index=0&id=673844b5&scoped=true&lang=css":
@ -20806,6 +20943,61 @@ var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppNavigationHeaderNewEvent_vue_vue_type_style_index_0_id_673844b5_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppNavigationHeaderNewEvent_vue_vue_type_style_index_0_id_673844b5_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppNavigationHeaderNewEvent_vue_vue_type_style_index_0_id_673844b5_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined);
/***/ }),
/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/Editor/Properties/PropertyIsPrivate.vue?vue&type=style&index=0&id=fb6819ac&scoped=true&lang=css":
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/Editor/Properties/PropertyIsPrivate.vue?vue&type=style&index=0&id=fb6819ac&scoped=true&lang=css ***!
\**************************************************************************************************************************************************************************************************************************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js");
/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js");
/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js");
/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js");
/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js");
/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js");
/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_PropertyIsPrivate_vue_vue_type_style_index_0_id_fb6819ac_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PropertyIsPrivate.vue?vue&type=style&index=0&id=fb6819ac&scoped=true&lang=css */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/Editor/Properties/PropertyIsPrivate.vue?vue&type=style&index=0&id=fb6819ac&scoped=true&lang=css");
var options = {};
options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default());
options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default());
options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head");
options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default());
options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default());
var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_PropertyIsPrivate_vue_vue_type_style_index_0_id_fb6819ac_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"], options);
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_PropertyIsPrivate_vue_vue_type_style_index_0_id_fb6819ac_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_PropertyIsPrivate_vue_vue_type_style_index_0_id_fb6819ac_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_PropertyIsPrivate_vue_vue_type_style_index_0_id_fb6819ac_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined);
/***/ }),
/***/ "./src/components/AppNavigation/AppNavigationHeader.vue":
@ -22853,6 +23045,47 @@ component.options.__file = "src/components/Editor/OrganizerNoEmailError.vue"
/***/ }),
/***/ "./src/components/Editor/Properties/PropertyIsPrivate.vue":
/*!****************************************************************!*\
!*** ./src/components/Editor/Properties/PropertyIsPrivate.vue ***!
\****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _PropertyIsPrivate_vue_vue_type_template_id_fb6819ac_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./PropertyIsPrivate.vue?vue&type=template&id=fb6819ac&scoped=true */ "./src/components/Editor/Properties/PropertyIsPrivate.vue?vue&type=template&id=fb6819ac&scoped=true");
/* harmony import */ var _PropertyIsPrivate_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./PropertyIsPrivate.vue?vue&type=script&lang=js */ "./src/components/Editor/Properties/PropertyIsPrivate.vue?vue&type=script&lang=js");
/* harmony import */ var _PropertyIsPrivate_vue_vue_type_style_index_0_id_fb6819ac_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./PropertyIsPrivate.vue?vue&type=style&index=0&id=fb6819ac&scoped=true&lang=css */ "./src/components/Editor/Properties/PropertyIsPrivate.vue?vue&type=style&index=0&id=fb6819ac&scoped=true&lang=css");
/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");
;
/* normalize component */
var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])(
_PropertyIsPrivate_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"],
_PropertyIsPrivate_vue_vue_type_template_id_fb6819ac_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render,
_PropertyIsPrivate_vue_vue_type_template_id_fb6819ac_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns,
false,
null,
"fb6819ac",
null
)
/* hot reload */
if (false) { var api; }
component.options.__file = "src/components/Editor/Properties/PropertyIsPrivate.vue"
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports);
/***/ }),
/***/ "./src/components/Editor/Properties/PropertySelect.vue":
/*!*************************************************************!*\
!*** ./src/components/Editor/Properties/PropertySelect.vue ***!
@ -24467,6 +24700,22 @@ __webpack_require__.r(__webpack_exports__);
/***/ }),
/***/ "./src/components/Editor/Properties/PropertyIsPrivate.vue?vue&type=script&lang=js":
/*!****************************************************************************************!*\
!*** ./src/components/Editor/Properties/PropertyIsPrivate.vue?vue&type=script&lang=js ***!
\****************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_PropertyIsPrivate_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PropertyIsPrivate.vue?vue&type=script&lang=js */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/Editor/Properties/PropertyIsPrivate.vue?vue&type=script&lang=js");
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_PropertyIsPrivate_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
/***/ }),
/***/ "./src/components/Editor/Properties/PropertySelect.vue?vue&type=script&lang=js":
/*!*************************************************************************************!*\
!*** ./src/components/Editor/Properties/PropertySelect.vue?vue&type=script&lang=js ***!
@ -25652,6 +25901,23 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_OrganizerNoEmailError_vue_vue_type_template_id_af50adac__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OrganizerNoEmailError.vue?vue&type=template&id=af50adac */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/Editor/OrganizerNoEmailError.vue?vue&type=template&id=af50adac");
/***/ }),
/***/ "./src/components/Editor/Properties/PropertyIsPrivate.vue?vue&type=template&id=fb6819ac&scoped=true":
/*!**********************************************************************************************************!*\
!*** ./src/components/Editor/Properties/PropertyIsPrivate.vue?vue&type=template&id=fb6819ac&scoped=true ***!
\**********************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_PropertyIsPrivate_vue_vue_type_template_id_fb6819ac_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render),
/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_PropertyIsPrivate_vue_vue_type_template_id_fb6819ac_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns)
/* harmony export */ });
/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_PropertyIsPrivate_vue_vue_type_template_id_fb6819ac_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PropertyIsPrivate.vue?vue&type=template&id=fb6819ac&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/Editor/Properties/PropertyIsPrivate.vue?vue&type=template&id=fb6819ac&scoped=true");
/***/ }),
/***/ "./src/components/Editor/Properties/PropertySelect.vue?vue&type=template&id=04aa9fca&scoped=true":
@ -26005,6 +26271,19 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppNavigationHeaderNewEvent_vue_vue_type_style_index_0_id_673844b5_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppNavigationHeaderNewEvent.vue?vue&type=style&index=0&id=673844b5&scoped=true&lang=css */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/AppNavigation/AppNavigationHeader/AppNavigationHeaderNewEvent.vue?vue&type=style&index=0&id=673844b5&scoped=true&lang=css");
/***/ }),
/***/ "./src/components/Editor/Properties/PropertyIsPrivate.vue?vue&type=style&index=0&id=fb6819ac&scoped=true&lang=css":
/*!************************************************************************************************************************!*\
!*** ./src/components/Editor/Properties/PropertyIsPrivate.vue?vue&type=style&index=0&id=fb6819ac&scoped=true&lang=css ***!
\************************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_PropertyIsPrivate_vue_vue_type_style_index_0_id_fb6819ac_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PropertyIsPrivate.vue?vue&type=style&index=0&id=fb6819ac&scoped=true&lang=css */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/Editor/Properties/PropertyIsPrivate.vue?vue&type=style&index=0&id=fb6819ac&scoped=true&lang=css");
/***/ }),
/***/ "./src/components/AppNavigation/AppNavigationHeader/AppNavigationHeaderDatePicker.vue?vue&type=style&index=0&id=e8250812&lang=scss":

View File

@ -187,6 +187,7 @@ export default {
]
},
isEditable() {
console.log("this.isAuthenticatedUser" + this.isAuthenticatedUser)
// We do not allow drag and drop when the editor is open.
return this.isAuthenticatedUser
&& this.$route?.name !== 'EditPopoverView'

View File

@ -0,0 +1,49 @@
<template>
<div v-if="!isReadOnly" class="property-title-time-picker">
<div class="property-title-time-picker__all-day">
<NcCheckboxRadioSwitch :checked="isPrivate"
@update:checked="toggleIsPrivate">
{{ $t('calendar', 'Privé') }}
</NcCheckboxRadioSwitch>
</div>
</div>
<div v-else>
{{ getIsPrivateLabel }}
</div>
</template>
<script>
import { NcCheckboxRadioSwitch } from '@nextcloud/vue'
export default {
name: "PropertyIsPrivate",
components: {
NcCheckboxRadioSwitch,
},
props: {
isPrivate: {
type: Boolean,
default: false
},
},
computed: {
getIsPrivateLabel() {
return this.isPrivate ? this.$t('calendar', 'Privé') : this.$t('calendar', 'Mettre en privé');
}
},
methods: {
toggleIsPrivate() {
const newState = !this.isPrivate;
this.$emit('toggle-is-private',newState)
},
}
};
</script>
<style scoped>
.checkbox-container {
display: flex;
align-items: center;
gap: 8px;
}
</style>

View File

@ -41,7 +41,9 @@ import { getAllObjectsInTimeRange } from '../../utils/calendarObject.js'
*/
export function eventSourceFunction(calendarObjects, calendar, start, end, timezone) {
const fcEvents = []
const authUser = OC.currentUser;
for (const calendarObject of calendarObjects) {
let allObjectsInTimeRange
try {
allObjectsInTimeRange = getAllObjectsInTimeRange(calendarObject, start, end)
@ -100,6 +102,8 @@ export function eventSourceFunction(calendarObjects, calendar, start, end, timez
}
}
let title
if (object.name === 'VEVENT') {
if (object.title) {
@ -119,6 +123,27 @@ export function eventSourceFunction(calendarObjects, calendar, start, end, timez
}
}
let isPrivateEvent = false;
let objectProperties = object._properties.get('ISPRIVATE');
if (objectProperties && objectProperties.length > 0) {
isPrivateEvent = objectProperties[0]._value == "1" ? true : false;
}
//Get owen object's user
let owenUrl = calendarObject.dav._parent.owner
let owenUser = owenUrl.replace('/remote.php/dav/principals/users/','').split('/')[0]
if (!owenUser) {
//Get from url shared calendar
owenUrl = calendarObject.dav._parent.url
owenUser = owenUrl.replace('/remote.php/dav/calendars/' + authUser + '/personal_shared_by_' ,'').split('/')[0]
}
const isOwenOfEvent = owenUser == authUser
if (isPrivateEvent && !isOwenOfEvent ) {
title = t('calendar', `Absent (${owenUser})`)
}
const fcEvent = {
id: [calendarObject.id, object.id].join('###'),
title,
@ -143,6 +168,9 @@ export function eventSourceFunction(calendarObjects, calendar, start, end, timez
davUrl: calendarObject.dav.url,
location: object.location,
description: object.description,
isPrivate: isPrivateEvent,
calendarObjectOwen : owenUser ,
calendarObjectIsOwen : isOwenOfEvent,
},
}

View File

@ -69,6 +69,10 @@ export default function(store, router, route, window, isWidget = false, ref = un
* @param {boolean} isWidget Whether the calendar is embedded in a widget
*/
function handleEventClick(event, store, router, route, window, isWidget = false) {
if(event.extendedProps.isPrivate && !event.extendedProps.calendarObjectIsOwen ){
return;
}
if (isWidget) {
store.commit('setSelectedEvent', { object: event.extendedProps.objectId, recurrenceId: event.extendedProps.recurrenceId })
return

View File

@ -119,6 +119,15 @@ export default {
},
/**
* Returns the isPrivate property
*
* @return {boolean}
*/
isPrivate() {
return this.calendarObjectInstance?.isPrivate ?? false
},
/**
* Returns the description or null if the event is still loading
*
@ -698,6 +707,16 @@ export default {
calendarObjectInstance: this.calendarObjectInstance,
})
},
/**
* Toggles the event to private
*/
toggleIsPrivate(isPrivate) {
this.$store.commit('toggleIsPrivate', {
calendarObjectInstance: this.calendarObjectInstance,
isPrivate
})
},
/**
* Resets the internal state after changing the viewed calendar-object
*/

View File

@ -60,6 +60,8 @@ const getDefaultEventObject = (props = {}) => Object.assign({}, {
client : null,
//embalmer(Thanato) of the event
embalmer : null,
//Private
isPrivate: false,
// description of the event
description: null,
// Access class of the event (PUBLIC, PRIVATE, CONFIDENTIAL)
@ -104,6 +106,7 @@ const mapEventComponentToEventObject = (eventComponent) => {
eventComponent,
title: eventComponent.title,
isAllDay: eventComponent.isAllDay(),
isPrivate: false,
canModifyAllDay: eventComponent.canModifyAllDay(),
location: eventComponent.location,
client : "CLIENT",
@ -197,6 +200,10 @@ const mapEventComponentToEventObject = (eventComponent) => {
eventObject.client = eventComponent.getFirstPropertyFirstValue('CLIENT');
}
if(eventComponent.hasProperty('ISPRIVATE')){
eventObject.isPrivate = eventComponent.getFirstPropertyFirstValue('ISPRIVATE') === '1' ? true : false;
}
if(eventComponent.hasProperty('EMBALMER')){
eventObject.embalmer = eventComponent.getFirstPropertyFirstValue('EMBALMER');
}
@ -215,6 +222,7 @@ const copyCalendarObjectInstanceIntoEventComponent = (eventObject, eventComponen
eventComponent.location = eventObject.location
eventComponent.client = eventObject.client
eventComponent.embalmer = eventObject.embalmer
eventComponent.isPrivate = eventObject.isPrivate
eventComponent.description = eventObject.description
eventComponent.accessClass = eventObject.accessClass
eventComponent.status = eventObject.status

View File

@ -286,6 +286,21 @@ const mutations = {
}
},
/**
* Is private
*
* @param {object} state The Vuex state
* @param {object} data The destructuring object
* @param {object} data.calendarObjectInstance The calendarObjectInstance object
*/
toggleIsPrivate(state, { calendarObjectInstance, isPrivate }) {
calendarObjectInstance.eventComponent.isPrivate = isPrivate
calendarObjectInstance.isPrivate = isPrivate
},
/**
* Changes the time of a timed event to the default values
*
@ -1688,6 +1703,7 @@ const actions = {
updateAlarms(eventComponent)
updateTalkParticipants(eventComponent)
let additionalFieldWasUpdated =
eventComponent.isPrivate != null ||
eventComponent.client != null;
if (eventComponent.isDirty() || additionalFieldWasUpdated) {
const isForkedItem = eventComponent.primaryItem !== null

View File

@ -232,6 +232,22 @@ const actions = {
let newClientKeyValue = "CLIENT:"+eventComponent.client;
icsValue = icsValue.replace(/CLIENT:\d+/, newClientKeyValue);
}
if(eventComponent.isPrivate != null){
let isPrivateValue = eventComponent.isPrivate ? "1" : "0";
let newIsPrivateKeyValue = "ISPRIVATE:"+isPrivateValue;
let regex = /ISPRIVATE:\d+/;
if(regex.test(icsValue)){
icsValue = icsValue.replace(regex, newIsPrivateKeyValue);
}
else{
const customKeyValue = {
"ISPRIVATE": isPrivateValue
};
icsValue = setCustomKeyValuesArrayToIcsAndReturnIcs(icsValue,customKeyValue);
}
}
}
calendarObject.dav.data = icsValue;
await calendarObject.dav.update()
@ -247,7 +263,10 @@ const actions = {
const calendar = context.getters.getCalendarById(calendarObject.calendarId)
let icsValue = calendarObject.calendarComponent.toICS();
if(eventComponent != null){
const customKeyValue = {"CLIENT": eventComponent.client, "EMBALMER": eventComponent.embalmer};
const customKeyValue = {
"CLIENT": eventComponent.client,
"EMBALMER": eventComponent.embalmer ,
"ISPRIVATE": eventComponent.isPrivate ? "1" : "0",};
icsValue = setCustomKeyValuesArrayToIcsAndReturnIcs(icsValue,customKeyValue);
}
calendarObject.dav = await calendar.dav.createVObject(icsValue);

View File

@ -103,6 +103,12 @@
@update-end-timezone="updateEndTimezone"
@toggle-all-day="toggleAllDay" />
<PropertyIsPrivate
:is-read-only="isReadOnly"
:is-private="isPrivate"
@toggle-is-private="toggleIsPrivate"
/>
<PropertySelectClient class="property-location"
url="/apps/gestion/ajaxGetClientsName"
:is-read-only="isReadOnly"
@ -347,6 +353,8 @@ import PropertySelectAjaxMultiple from "../components/Editor/Properties/Property
import PropertySelectLieu from "../components/Editor/Properties/PropertySelectLieu.vue";
import PropertySelectClient from "../components/Editor/Properties/PropertySelectClient.vue";
import PropertySelectArticle from "../components/Editor/Properties/PropertySelectArticle.vue";
import PropertyIsPrivate from "../components/Editor/Properties/PropertyIsPrivate.vue";
export default {
name: 'EditSidebar',
@ -356,6 +364,7 @@ export default {
PropertySelectLieu,
PropertySelectClient,
PropertySelectArticle,
PropertyIsPrivate,
ResourceList,
PropertyColor,
PropertySelectMultiple,

View File

@ -121,6 +121,12 @@
@update-end-timezone="updateEndTimezone"
@toggle-all-day="toggleAllDay" />
<PropertyIsPrivate
:is-read-only="isReadOnly"
:is-private="isPrivate"
@toggle-is-private="toggleIsPrivate"
/>
<PropertySelectClient class="property-location"
url="/apps/gestion/ajaxGetClientsName"
:is-read-only="isReadOnly"
@ -218,13 +224,13 @@ import Download from 'vue-material-design-icons/Download.vue'
import ContentDuplicate from 'vue-material-design-icons/ContentDuplicate.vue'
import EditIcon from 'vue-material-design-icons/Pencil.vue'
import { mapState } from 'vuex'
import {showError} from "@nextcloud/dialogs";
import PropertySelect from "../components/Editor/Properties/PropertySelect.vue";
import PropertySelectAjax from "../components/Editor/Properties/PropertySelectAjax.vue";
import PropertySelectAjaxMultiple from "../components/Editor/Properties/PropertySelectAjaxMultiple.vue";
import PropertySelectLieu from "../components/Editor/Properties/PropertySelectLieu.vue";
import PropertySelectClient from "../components/Editor/Properties/PropertySelectClient.vue";
import PropertySelectArticle from "../components/Editor/Properties/PropertySelectArticle.vue";
import PropertyIsPrivate from "../components/Editor/Properties/PropertyIsPrivate.vue";
export default {
name: 'EditSimple',
@ -234,6 +240,7 @@ export default {
PropertySelectLieu,
PropertySelectClient,
PropertySelectArticle,
PropertyIsPrivate,
PropertySelect,
PopoverLoadingIndicator,
SaveButtons,

View File

@ -0,0 +1,8 @@
<?php
declare(strict_types=1);
namespace OCA\Gestion\Constants;
abstract class VCalendarPropertyConstant
{
const PROPERTY_IS_LEAVE = "ISPRIVATE";
}

View File

@ -27,9 +27,11 @@ declare(strict_types=1);
namespace OCA\Gestion\Service;
use GuzzleHttp\Exception\GuzzleException;
use OCP\IConfig;
use OCP\DB\Exception;
use OCP\IUserSession;
use OCP\Mail\IMailer;
use Ramsey\Uuid\Uuid;
use OCA\Gestion\Db\Bdd;
use OC\Files\Filesystem;
use OCP\Files\IRootFolder;
@ -43,8 +45,7 @@ use OCA\Gestion\Constants\ThanatoTypeConstant;
use OCA\Gestion\Service\Order\OrderPdfService;
use OCA\Gestion\Constants\DevisMentionConstant;
use OCA\Gestion\Service\Devis\Pdf\DevisPdfService;
use OCP\IConfig;
use Ramsey\Uuid\Uuid;
use OCA\Gestion\Constants\VCalendarPropertyConstant;
class GestionService {
/** @var Bdd */
@ -192,8 +193,20 @@ class GestionService {
return $calendarStartDate;
}
private function GetIsPivateFromVCalendarString(string $vCalendarString): bool{
$isPrivateValue = VCalendarHelpers::GetValueFromKeyInVCalendarString(VCalendarPropertyConstant::PROPERTY_IS_LEAVE, $vCalendarString);
return $isPrivateValue === "1" ? true : false;
}
public function HandleCreatedCalendarObject(string $vCalendarString ,$cookie){
try{
$isPrivate = $this->GetIsPivateFromVCalendarString($vCalendarString);
if($isPrivate){
//Nothing to do manage fo a private calendar
return;
}
$thanato = $this->GetThanatoFromVCalendarString($vCalendarString);
if($thanato != null){
$thanatoId = $thanato["id"];