当前位置: 首页>>代码示例>>TypeScript>>正文


TypeScript service.ChoiceService.open方法代码示例

本文整理汇总了TypeScript中app/core/ui-services/choice.service.ChoiceService.open方法的典型用法代码示例。如果您正苦于以下问题:TypeScript service.ChoiceService.open方法的具体用法?TypeScript service.ChoiceService.open怎么用?TypeScript service.ChoiceService.open使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在app/core/ui-services/choice.service.ChoiceService的用法示例。


在下文中一共展示了service.ChoiceService.open方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。

示例1: bulkMoveItems

    /**
     * Triggers the selected motions to be moved in the call-list (sort_parent, weight)
     * as children or as following after a selected motion.
     *
     * @param motions The motions to move
     */
    public async bulkMoveItems(motions: ViewMotion[]): Promise<void> {
        const title = this.translate.instant(
            'This will move all selected motions under or after the following motion in the call list:'
        );
        const options = [this.translate.instant('Set as parent'), this.translate.instant('Insert after')];
        const allMotions = this.repo.getViewModelList();
        const tree = this.treeService.makeTree(allMotions, 'weight', 'sort_parent_id');
        const itemsToMove = this.treeService.getTopItemsFromTree(tree, motions);
        const selectableItems = this.treeService.getTreeWithoutSelection(tree, motions);

        const selectedChoice = await this.choiceService.open(title, selectableItems, false, options);
        if (selectedChoice) {
            if (selectedChoice.action === options[0]) {
                // set choice as parent
                this.repo.sortMotionBranches(itemsToMove, selectedChoice.items as number);
            } else if (selectedChoice.action === options[1]) {
                // insert after chosen
                const olderSibling = this.repo.getViewModel(selectedChoice.items as number);
                const parentId = olderSibling ? olderSibling.sort_parent_id : null;
                const siblings = this.repo.getViewModelList().filter(motion => motion.sort_parent_id === parentId);
                const idx = siblings.findIndex(sib => sib.id === olderSibling.id);
                const before = siblings.slice(0, idx + 1);
                const after = siblings.slice(idx + 1);
                const sum = [].concat(before, itemsToMove, after);
                this.repo.sortMotionBranches(sum, parentId);
            }
        }
    }
开发者ID:jwinzer,项目名称:OpenSlides,代码行数:34,代码来源:motion-multiselect.service.ts

示例2: changeSubmitters

 /**
  * Opens a dialog and adds or removes the selected submitters for all given motions.
  *
  * @param motions The motions to add/remove the sumbitters to
  */
 public async changeSubmitters(motions: ViewMotion[]): Promise<void> {
     const title = this.translate.instant(
         'This will add or remove the following submitters for all selected motions:'
     );
     const choices = [this.translate.instant('Add'), this.translate.instant('Remove')];
     const selectedChoice = await this.choiceService.open(title, this.userRepo.getViewModelList(), true, choices);
     if (selectedChoice && selectedChoice.action === choices[0]) {
         const requestData = motions.map(motion => {
             let submitterIds = [...motion.sorted_submitters_id, ...(selectedChoice.items as number[])];
             submitterIds = submitterIds.filter((id, index, self) => self.indexOf(id) === index); // remove duplicates
             return {
                 id: motion.id,
                 submitters: submitterIds
             };
         });
         await this.httpService.post('/rest/motions/motion/manage_multiple_submitters/', { motions: requestData });
     } else if (selectedChoice && selectedChoice.action === choices[1]) {
         const requestData = motions.map(motion => {
             const submitterIdsToRemove = selectedChoice.items as number[];
             const submitterIds = motion.sorted_submitters_id.filter(id => !submitterIdsToRemove.includes(id));
             return {
                 id: motion.id,
                 submitters: submitterIds
             };
         });
         await this.httpService.post('/rest/motions/motion/manage_multiple_submitters/', { motions: requestData });
     }
 }
开发者ID:jwinzer,项目名称:OpenSlides,代码行数:33,代码来源:motion-multiselect.service.ts

示例3: setStateOfMultiple

 /**
  * Opens a dialog and then sets the status for all motions.
  *
  * @param motions The motions to change
  */
 public async setStateOfMultiple(motions: ViewMotion[]): Promise<void> {
     const title = this.translate.instant('This will set the following state for all selected motions:');
     const choices = this.workflowRepo.getWorkflowStatesForMotions(motions).map(workflowState => ({
         id: workflowState.id,
         label: workflowState.name
     }));
     const selectedChoice = await this.choiceService.open(title, choices);
     if (selectedChoice) {
         await this.repo.setMultiState(motions, selectedChoice.items as number);
     }
 }
开发者ID:jwinzer,项目名称:OpenSlides,代码行数:16,代码来源:motion-multiselect.service.ts

示例4: moveToItem

 /**
  * Moves the related agenda items from the motions as childs under a selected (parent) agenda item.
  */
 public async moveToItem(motions: ViewMotion[]): Promise<void> {
     const title = this.translate.instant('This will move all selected motions as childs to:');
     const choices: (Displayable & Identifiable)[] = this.agendaRepo.getViewModelList();
     const selectedChoice = await this.choiceService.open(title, choices);
     if (selectedChoice) {
         const requestData = {
             items: motions.map(motion => motion.agenda_item_id),
             parent_id: selectedChoice.items as number
         };
         await this.httpService.post('/rest/agenda/item/assign/', requestData);
     }
 }
开发者ID:jwinzer,项目名称:OpenSlides,代码行数:15,代码来源:motion-multiselect.service.ts

示例5: bulkSetFavorite

 /**
  * Bulk sets/unsets the favorite status (after a confirmation dialog)
  *
  * @param motions The motions to set/unset the favorite status for
  */
 public async bulkSetFavorite(motions: ViewMotion[]): Promise<void> {
     const title = this.translate.instant('This will set the favorite status for all selected motions:');
     const choices: ChoiceDialogOptions = [
         { id: 1, label: this.translate.instant('Set as favorite') },
         { id: 2, label: this.translate.instant('Set as not favorite') }
     ];
     const selectedChoice = await this.choiceService.open(title, choices);
     if (selectedChoice && motions.length) {
         const star = (selectedChoice.items as number) === choices[0].id;
         await this.personalNoteService.bulkSetStar(motions, star);
     }
 }
开发者ID:tsiegleauq,项目名称:OpenSlides,代码行数:17,代码来源:motion-multiselect.service.ts

示例6: setMotionBlock

 /**
  * Opens a dialog and changes the motionBlock for all given motions.
  *
  * @param motions The motions for which to change the motionBlock
  */
 public async setMotionBlock(motions: ViewMotion[]): Promise<void> {
     const title = this.translate.instant('This will set the following motion block for all selected motions:');
     const clearChoice = 'Clear motion block';
     const selectedChoice = await this.choiceService.open(
         title,
         this.motionBlockRepo.getViewModelList(),
         false,
         null,
         clearChoice
     );
     if (selectedChoice) {
         for (const motion of motions) {
             const blockId = selectedChoice.action ? null : (selectedChoice.items as number);
             await this.repo.update({ motion_block_id: blockId }, motion);
         }
     }
 }
开发者ID:jwinzer,项目名称:OpenSlides,代码行数:22,代码来源:motion-multiselect.service.ts

示例7: setCategory

 /**
  * Opens a dialog and sets the category for all given motions.
  *
  * @param motions The motions to change
  */
 public async setCategory(motions: ViewMotion[]): Promise<void> {
     const title = this.translate.instant('This will set the following category for all selected motions:');
     const clearChoice = this.translate.instant('No category');
     const selectedChoice = await this.choiceService.open(
         title,
         this.categoryRepo.sortViewCategoriesByConfig(this.categoryRepo.getViewModelList()),
         false,
         null,
         clearChoice
     );
     if (selectedChoice) {
         for (const motion of motions) {
             await this.repo.update(
                 { category_id: selectedChoice.action ? null : (selectedChoice.items as number) },
                 motion
             );
         }
     }
 }
开发者ID:jwinzer,项目名称:OpenSlides,代码行数:24,代码来源:motion-multiselect.service.ts

示例8: setRecommendation

 /**
  * Opens a dialog and sets the recommendation to the users choice for all selected motions.
  *
  * @param motions The motions to change
  */
 public async setRecommendation(motions: ViewMotion[]): Promise<void> {
     const title = this.translate.instant('This will set the following recommendation for all selected motions:');
     const choices = this.workflowRepo
         .getWorkflowStatesForMotions(motions)
         .filter(workflowState => !!workflowState.recommendation_label)
         .map(workflowState => ({
             id: workflowState.id,
             label: workflowState.recommendation_label
         }));
     const clearChoice = this.translate.instant('Delete recommendation');
     const selectedChoice = await this.choiceService.open(title, choices, false, null, clearChoice);
     if (selectedChoice) {
         const requestData = motions.map(motion => ({
             id: motion.id,
             recommendation: selectedChoice.action ? 0 : (selectedChoice.items as number)
         }));
         await this.httpService.post('/rest/motions/motion/manage_multiple_recommendation/', {
             motions: requestData
         });
     }
 }
开发者ID:jwinzer,项目名称:OpenSlides,代码行数:26,代码来源:motion-multiselect.service.ts


注:本文中的app/core/ui-services/choice.service.ChoiceService.open方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。