From 399be2370d375e49183968ba56872c0c198e1812 Mon Sep 17 00:00:00 2001 From: Dessalines Date: Sat, 29 Feb 2020 22:06:42 -0500 Subject: Adding more for advanced actions on comments and posts. - Fixes #561 --- ui/src/components/post-listing.tsx | 366 ++++++++++++++++++++----------------- 1 file changed, 200 insertions(+), 166 deletions(-) (limited to 'ui/src/components/post-listing.tsx') diff --git a/ui/src/components/post-listing.tsx b/ui/src/components/post-listing.tsx index 1fdfad2d..d57aa663 100644 --- a/ui/src/components/post-listing.tsx +++ b/ui/src/components/post-listing.tsx @@ -45,6 +45,7 @@ interface PostListingState { showConfirmTransferCommunity: boolean; imageExpanded: boolean; viewSource: boolean; + showAdvanced: boolean; my_vote: number; score: number; upvotes: number; @@ -75,6 +76,7 @@ export class PostListing extends Component { showConfirmTransferCommunity: false, imageExpanded: false, viewSource: false, + showAdvanced: false, my_vote: this.props.post.my_vote, score: this.props.post.score, upvotes: this.props.post.upvotes, @@ -511,211 +513,238 @@ export class PostListing extends Component { )} - {this.canModOnSelf && ( - <> -
  • - - {post.locked ? i18n.t('unlock') : i18n.t('lock')} - -
  • -
  • - - {post.stickied - ? i18n.t('unsticky') - : i18n.t('sticky')} - -
  • - - )} - {/* Mods can ban from community, and appoint as mods to community */} - {(this.canMod || this.canAdmin) && ( + + {!this.state.showAdvanced && this.props.showBody ? (
  • - {!post.removed ? ( - - {i18n.t('remove')} - - ) : ( - - {i18n.t('restore')} - - )} + + {i18n.t('more')} +
  • - )} - {this.canMod && ( + ) : ( <> - {!this.isMod && ( + {this.canModOnSelf && ( + <> +
  • + + {post.locked + ? i18n.t('unlock') + : i18n.t('lock')} + +
  • +
  • + + {post.stickied + ? i18n.t('unsticky') + : i18n.t('sticky')} + +
  • + + )} + {/* Mods can ban from community, and appoint as mods to community */} + {(this.canMod || this.canAdmin) && (
  • - {!post.banned_from_community ? ( + {!post.removed ? ( - {i18n.t('ban')} + {i18n.t('remove')} ) : ( - {i18n.t('unban')} + {i18n.t('restore')} )}
  • )} - {!post.banned_from_community && ( -
  • - - {this.isMod - ? i18n.t('remove_as_mod') - : i18n.t('appoint_as_mod')} - -
  • - )} - - )} - {/* Community creators and admins can transfer community to another mod */} - {(this.amCommunityCreator || this.canAdmin) && this.isMod && ( -
  • - {!this.state.showConfirmTransferCommunity ? ( - - {i18n.t('transfer_community')} - - ) : ( + {this.canMod && ( <> - - {i18n.t('are_you_sure')} - - - {i18n.t('yes')} - - + {!post.banned_from_community ? ( + + {i18n.t('ban')} + + ) : ( + + {i18n.t('unban')} + + )} +
  • + )} + {!post.banned_from_community && ( +
  • + + {this.isMod + ? i18n.t('remove_as_mod') + : i18n.t('appoint_as_mod')} + +
  • + )} + + )} + {/* Community creators and admins can transfer community to another mod */} + {(this.amCommunityCreator || this.canAdmin) && + this.isMod && ( +
  • + {!this.state.showConfirmTransferCommunity ? ( + + {i18n.t('transfer_community')} + + ) : ( + <> + + {i18n.t('are_you_sure')} + + + {i18n.t('yes')} + + + {i18n.t('no')} + + )} - > - {i18n.t('no')} - +
  • + )} + {/* Admins can ban from all, and appoint other admins */} + {this.canAdmin && ( + <> + {!this.isAdmin && ( +
  • + {!post.banned ? ( + + {i18n.t('ban_from_site')} + + ) : ( + + {i18n.t('unban_from_site')} + + )} +
  • + )} + {!post.banned && ( +
  • + + {this.isAdmin + ? i18n.t('remove_as_admin') + : i18n.t('appoint_as_admin')} + +
  • + )} )} - - )} - {/* Admins can ban from all, and appoint other admins */} - {this.canAdmin && ( - <> - {!this.isAdmin && ( + {/* Site Creator can transfer to another admin */} + {this.amSiteCreator && this.isAdmin && (
  • - {!post.banned ? ( - - {i18n.t('ban_from_site')} - - ) : ( + {!this.state.showConfirmTransferSite ? ( - {i18n.t('unban_from_site')} + {i18n.t('transfer_site')} + ) : ( + <> + + {i18n.t('are_you_sure')} + + + {i18n.t('yes')} + + + {i18n.t('no')} + + )}
  • )} - {!post.banned && ( -
  • - - {this.isAdmin - ? i18n.t('remove_as_admin') - : i18n.t('appoint_as_admin')} - -
  • - )} )} - {/* Site Creator can transfer to another admin */} - {this.amSiteCreator && this.isAdmin && ( -
  • - {!this.state.showConfirmTransferSite ? ( - - {i18n.t('transfer_site')} - - ) : ( - <> - - {i18n.t('are_you_sure')} - - - {i18n.t('yes')} - - - {i18n.t('no')} - - - )} -
  • - )} )} {this.props.showBody && post.body && ( @@ -1201,4 +1230,9 @@ export class PostListing extends Component { i.state.viewSource = !i.state.viewSource; i.setState(i.state); } + + handleShowAdvanced(i: PostListing) { + i.state.showAdvanced = !i.state.showAdvanced; + i.setState(i.state); + } } -- cgit v1.2.3