diff --git a/radicale/web/internal_data/js/api/sharing.js b/radicale/web/internal_data/js/api/sharing.js index f3d77595..ccd01e54 100644 --- a/radicale/web/internal_data/js/api/sharing.js +++ b/radicale/web/internal_data/js/api/sharing.js @@ -130,43 +130,13 @@ export class Share { /** @type {string} */ this.User = data.User || ""; /** @type {string} */ this.Permissions = data.Permissions || "r"; /** @type {boolean} */ this.EnabledByOwner = data.EnabledByOwner ?? data.Enabled ?? false; - /** @type {boolean} */ this.EnabledByUser = data.EnabledByUser ?? data.Enabled ?? false; + /** @type {?boolean} */ this.EnabledByUser = data.EnabledByUser ?? data.Enabled ?? null; /** @type {boolean} */ this.HiddenByOwner = data.HiddenByOwner ?? data.Hidden ?? false; - /** @type {boolean} */ this.HiddenByUser = data.HiddenByUser ?? data.Hidden ?? false; + /** @type {?boolean} */ this.HiddenByUser = data.HiddenByUser ?? data.Hidden ?? null; /** @type {number} */ this.TimestampCreated = data.TimestampCreated || 0; /** @type {number} */ this.TimestampUpdated = data.TimestampUpdated || 0; /** @type {Object} */ this.Properties = data.Properties || {}; } - - /** - * @returns {boolean} - */ - get Enabled() { - return this.EnabledByOwner || this.EnabledByUser; - } - - /** - * @param {boolean} value - */ - set Enabled(value) { - this.EnabledByOwner = value; - this.EnabledByUser = value; - } - - /** - * @returns {boolean} - */ - get Hidden() { - return this.HiddenByOwner || this.HiddenByUser; - } - - /** - * @param {boolean} value - */ - set Hidden(value) { - this.HiddenByOwner = value; - this.HiddenByUser = value; - } } /** @@ -242,8 +212,8 @@ export function add_share_by_token( { PathMapped: share.PathMapped, Permissions: share.Permissions, - Enabled: share.Enabled, - Hidden: share.Hidden, + Enabled: share.EnabledByOwner, + Hidden: share.HiddenByOwner, Properties: share.Properties, }, function (response) { @@ -280,8 +250,8 @@ export function add_share_by_map( { PathMapped: share.PathMapped, Permissions: share.Permissions, - Enabled: share.Enabled, - Hidden: share.Hidden, + Enabled: share.EnabledByOwner, + Hidden: share.HiddenByOwner, Properties: share.Properties, User: share.User, PathOrToken: share.PathOrToken, @@ -383,8 +353,8 @@ export function update_share_by_token( { PathOrToken: share.PathOrToken, Permissions: share.Permissions, - Enabled: share.Enabled, - Hidden: share.Hidden, + Enabled: share.EnabledByOwner, + Hidden: share.HiddenByOwner, Properties: share.Properties, }, function (response) { @@ -423,8 +393,8 @@ export function update_share_by_map( PathMapped: share.PathMapped, User: share.User, Permissions: share.Permissions, - Enabled: share.Enabled, - Hidden: share.Hidden, + Enabled: share.EnabledByOwner, + Hidden: share.HiddenByOwner, Properties: share.Properties, }, function (response) { diff --git a/radicale/web/internal_data/js/scenes/CreateEditShareScene.js b/radicale/web/internal_data/js/scenes/CreateEditShareScene.js index 63c1e37d..cb6d83d2 100644 --- a/radicale/web/internal_data/js/scenes/CreateEditShareScene.js +++ b/radicale/web/internal_data/js/scenes/CreateEditShareScene.js @@ -97,8 +97,8 @@ export class CreateEditShareScene { return false; } } - let enabled = enabled_checkbox.checked; - let hidden = hidden_checkbox.checked; + let enabled_by_owner = enabled_checkbox.checked; + let hidden_by_owner = hidden_checkbox.checked; let permissions = permissions_rw_radio.checked ? "rw" : "r"; let properties = {}; @@ -127,8 +127,10 @@ export class CreateEditShareScene { ShareType: shareType, PathMapped: pathMapped, Permissions: permissions, - Enabled: enabled, - Hidden: hidden, + EnabledByOwner: enabled_by_owner, + EnabledByUser: edit ? share.EnabledByUser : null, + HiddenByOwner: hidden_by_owner, + HiddenByUser: edit ? share.HiddenByUser : null, Properties: properties, User: edit ? share.User : shareuser_input.value, PathOrToken: edit ? share.PathOrToken : (shareType === "map" ? "/" + shareuser_input.value + "/" + sharehref_input.value + "/" : ""), @@ -165,8 +167,8 @@ export class CreateEditShareScene { shareuser_input.value = edit ? share.User : ""; shareuser_input.disabled = edit; - enabled_checkbox.checked = edit ? share.Enabled : true; - hidden_checkbox.checked = edit ? share.Hidden : false; + enabled_checkbox.checked = edit ? share.EnabledByOwner : true; + hidden_checkbox.checked = edit ? share.HiddenByOwner : false; permissions_ro_radio.checked = edit ? share.Permissions.toLowerCase() === "r" : true; permissions_rw_radio.checked = edit ? share.Permissions.toLowerCase() === "rw" : false;