Web: Files: SharingPanel: Added a template for setting up an external link

This commit is contained in:
Alexey Kostenko 2020-11-30 09:33:35 +03:00
parent 06b29a5cb9
commit e27400e573
2 changed files with 97 additions and 3 deletions

View File

@ -27,6 +27,7 @@ const SharingRow = (props) => {
onDenyAccessClick,
onRemoveUserClick,
onShowEmbeddingPanel,
accessRight,
} = props;
const linkVisible = selection && selection.length === 1 && item.shareLink;
@ -38,6 +39,57 @@ const SharingRow = (props) => {
toastr.success(t("LinkCopySuccess"));
};
const advancedOptions = (
<>
{accessOptions.includes("FullAccess") && (
<DropDownItem
label="Full access"
icon="AccessEditIcon"
//onClick={props.onFullAccessClick}
/>
)}
{accessOptions.includes("ReadOnly") && (
<DropDownItem
label="Read only"
icon="EyeIcon"
//onClick={props.onReadOnlyClick}
/>
)}
{accessOptions.includes("Review") && (
<DropDownItem
label="Review"
icon="AccessReviewIcon"
//onClick={props.onReviewClick}
/>
)}
{accessOptions.includes("Comment") && (
<DropDownItem
label="Comment"
icon="AccessCommentIcon"
//onClick={props.onCommentClick}
/>
)}
{accessOptions.includes("FormFilling") && (
<DropDownItem
label="Form filling"
icon="AccessFormIcon"
//onClick={props.onFormFillingClick}
/>
)}
{accessOptions.includes("DenyAccess") && (
<DropDownItem
label="Deny access"
icon="AccessNoneIcon"
//onClick={props.onDenyAccessClick}
/>
)}
</>
);
const advancedOptionsRender = () => (
<>
{accessOptions.includes("FullAccess") && (
@ -89,6 +141,25 @@ const SharingRow = (props) => {
</>
);
const accessOptionsComboBox = (accessOptions, item, isDisabled) => (
<ComboBox
advancedOptions={advancedOptions}
options={[]}
selectedOption={{ key: 0 }}
size="content"
className="panel_combo-box"
scaled={false}
directionX="left"
disableIconClick={false}
isDisabled={isDisabled}
>
{React.createElement(Icons[accessRight.icon], {
size: "medium",
className: "sharing-access-combo-box-icon",
})}
</ComboBox>
);
const embeddedComponentRender = (accessOptions, item, isDisabled) => (
<ComboBox
advancedOptions={advancedOptionsRender()}
@ -233,7 +304,7 @@ const SharingRow = (props) => {
<LinkRow
linkText="ExternalLink"
data={externalLinkData}
embeddedComponentRender={embeddedComponentRender}
embeddedComponentRender={accessOptionsComboBox}
onChangeToggle={onChangeToggle}
withToggle={true}
{...props}

View File

@ -16,7 +16,13 @@ import {
import { connect } from "react-redux";
import { withRouter } from "react-router";
import { withTranslation } from "react-i18next";
import { utils as commonUtils, constants, toastr, store } from "asc-web-common";
import {
utils as commonUtils,
constants,
toastr,
store,
api,
} from "asc-web-common";
import { getShareUsers, setShareFiles } from "../../../store/files/actions";
import { getAccessOption, getSelection } from "../../../store/files/selectors";
import {
@ -33,7 +39,7 @@ const i18n = createI18N({
page: "SharingPanel",
localesPath: "panels/SharingPanel",
});
const { setExternalAccess } = api.files;
const { changeLanguage } = commonUtils;
const { ShareAccessRights } = constants;
const {
@ -41,6 +47,18 @@ const {
getSettingsCustomNamesGroupsCaption,
} = store.auth.selectors;
const accessType = Object.freeze({
None: 0,
ReadWrite: 1,
Read: 2,
Restrict: 3,
Varies: 4,
Review: 5,
Comment: 6,
FillForms: 7,
CustomFilter: 8,
});
class SharingPanelComponent extends React.Component {
constructor(props) {
super(props);
@ -429,6 +447,10 @@ class SharingPanelComponent extends React.Component {
let error = null;
let shareData = {};
setExternalAccess(fileId, accessType.none).then((res) => {
console.log(res);
});
if (folderId.length !== 0 || fileId.length !== 0) {
getShareUsers(folderId, fileId)
.then((res) => {
@ -648,6 +670,7 @@ class SharingPanelComponent extends React.Component {
index={index}
isMyId={isMyId}
accessOptions={accessOptions}
accessRight={accessRight}
onFullAccessClick={this.onFullAccessItemClick}
onReadOnlyClick={this.onReadOnlyItemClick}
onReviewClick={this.onReviewItemClick}