GithubHelp home page GithubHelp logo

mattermost-community / mattermost-plugin-agenda Goto Github PK

View Code? Open in Web Editor NEW
32.0 31.0 21.0 1.75 MB

Mattermost plugin to handle meeting agendas

License: Apache License 2.0

Makefile 15.88% Go 58.50% JavaScript 25.62%
hacktoberfest mattermost mattermost-plugin

mattermost-plugin-agenda's Introduction

Disclaimer

This repository is community supported and not maintained by Mattermost. Mattermost disclaims liability for integrations, including Third Party Integrations and Mattermost Integrations. Integrations may be modified or discontinued at any time.

Agenda Plugin

CircleCI Go Report Card Code Coverage Release HW

Maintainer: @mickmister

The Agenda Plugin helps users queue and list items in a channel's meeting agenda. The agenda is identified by a hashtag based on the meeting date.

The plugin will create posts for the user preceding the agenda item with configured hashtag format and can open a search with that hashtag to view the agenda list.

Initial development as part of Mattermost Hackathon 2019 which was demoed here.

Usage

Enable the plugin

Once this plugin is installed, a Mattermost admin can enable it in the Mattermost System Console by going to Plugins > Plugin Management, and selecting Enable.

Configure meeting settings

The meeting settings for each channel can be configured in the Channel Header Dropdown.

channel_header_menu

settings_dialog

Meeting settings include:

  • Schedule Day: Day of the week when the meeting is scheduled.
  • Hashtag Format: The format of the hashtag for the meeting date. The date format is based on Go date and time formatting. The date format must be wrapped in double Braces ( {{ }} ). A default is generated from the first 15 characters of the channel's name with the short name of the month and day (i.e. Dev-{{ Jan02 }}).

Slash Commands to manage the meeting agenda

/agenda queue [meetingDay] message

Creates a post for the user with the given message for the next meeting date or the specified meetingDay (optional). The configured hashtag will precede the message. The meeting day supports long (Monday, Tuesday), short name (Mon Tue), number (0-6) or next-week. If next-week is indicated, it will use the date of the first meeting in the next calendar week.

post_example

/agenda list [meetingDay]

Executes a search of the hashtag of the next meeting or the specified meetingDay (optional), opening the RHS with all the posts with that hashtag. The meeting day supports long (Monday, Tuesday), short name (Mon Tue), number (0-6) or next-week. If next-week is indicated, it will use the date of the first meeting in the next calendar week.

/agenda setting field value

Updates the given setting with the provided value for the meeting settings of that channel.

Field can be one of:

  • schedule: Day of the week of the meeting. It is an int based on time.Weekday
  • hashtag: Format of the hashtag for the meeting date. It is based on the format used in time.Format

Future Improvements

  • Mark items as resolved or queue for next week.
  • Queue a post using a menu option in the post dot menu.
  • Handle time in meeting schedule.

Contributing

If you would like to make contributions to this plugin, please checkout the open issues labeled Help Wanted and Up For Grabs

mattermost-plugin-agenda's People

Contributors

marianunez avatar hanzei avatar jfrerich avatar dependabot[bot] avatar mickmister avatar aaronrothschild avatar attilamolnar avatar cwarnermm avatar rahulsuresh-git avatar will7200 avatar sibasankarnayak avatar sanjaydemansol avatar vovapi avatar spirosoik avatar iomodo avatar srkgupta avatar lieut-data avatar fedjavitko avatar augustasv avatar toninis avatar phoinixgrr avatar

Stargazers

Saturnino Abril avatar cednore avatar Joram Wilander avatar jon ⚝ avatar Andy avatar Iacopo Spalletti avatar daniel sieradski avatar  avatar Can Evgin avatar Leho Kraav avatar Julian Guttzeit avatar Markus Busche avatar  avatar mouson avatar Dinh Ngoc Hien avatar Kai Woerner avatar Patrick Schratz avatar Entrapta Jones avatar Pouria Taj avatar  avatar  avatar  avatar Jaime Arias Almeida avatar Ilya Gusev avatar Jason Todd avatar k1rajun avatar Meng Ye avatar Duvergier Claude avatar Pavel Sayekat avatar Melroy van den Berg avatar 煎饼果子 avatar  avatar

Watchers

Deepak Demiwal avatar Jesús Espino avatar Toshaan Bharvani avatar James Cloos avatar  avatar Christopher Poile avatar Daniel Espino García avatar Stavros Foteinopoulos avatar William Gathoye avatar Gabe Jackson avatar Mir Shahriar Sabuj avatar Doug Lauder avatar Elias Nahum avatar Steve Mudie avatar Abdulmalik Ibrahim avatar Corey R avatar Tanmay Singh avatar Pablo Vélez avatar Asaad Mahmood avatar Caleb Roseland avatar Scott Bishel avatar Nathaniel Allred avatar Ben Cooke avatar Ogi Marusic avatar  avatar na avatar Hossein avatar Maxwell Power avatar Rajat Dabade avatar  avatar Ihor_Tryhub avatar

mattermost-plugin-agenda's Issues

in the Dark theme The User is not able to see the Data/Text in the "Date Format" input box in the "Channel Agenda Settings"

Summary

in the Dark theme The User is not able to see the "Date Format" in the "Channel Agenda Settings"

Steps to reproduce

  1. in the mattermost change the theme as "Onyx" or "Indigo" and save it.
  2. Go in any Channel.
  3. Click On Channel Name and Click on the "agenda setting" option.
  4. issue :- in the dark theme you cant see any Text/Data in the "Date Format" input box.

Mattermost Version: 6.0.0-rc3
Database Schema Version: 6.0.0
Database: mysql
OS :- ubantu
Browser :- Chrome Version 94.0.4606.71 (Official Build) (64-bit)

Expected behavior

The user should able to see the data/text in the "date format" input box in the dark theme.

Observed behavior (that appears unintentional)

issue generate only in the dark theme

dark.theme.issue.agenda.mp4

.

Release v0.2.0

There where a lot of valuable bug fixes since the last release. Should we cut a new version?

Dependant on the following PRs:

Add Installation instruction to README

This is a request to add installation instructions for the plugin. This should include installing from binary and instructions on Developing the plugin

New items do not get the right index

Our agenda items format is the following:
#Int-Apr-21 5) Agenda item

But every time we do /agenda queue new item the new item starts back at 1. It should get the following number in the sequence.

Default Hashtag Format to Channel Name

The agenda plugin configures a hashtag format for queuing meeting topics and it currently defaults to JAN02 with no other text description.

Update the default hashtag to use the first 15 characters of a channel name prefixed to the date format. For example: Developers-JAN02 would be the default hashtag for a channel called Developers


If you're interested please comment here and come join our "Contributors" community channel on our daily build server, where you can discuss questions with community members and the Mattermost core team. For technical advice or questions, please join our "Developers" community channel.

New contributors please see our Developer's Guide.

JIRA: https://mattermost.atlassian.net/browse/MM-22727

Add sub queues

While adding something to the queue, I would also like to add substeps to the queue item (at the time of adding to the queue or at a later moment in time). This enhances clarity and a logical progression of the meeting within one topic.

Integrate with Google Calendar - initial

Use-cases:

  • /agenda setting schedule gcal brings up a calendar view of recurring meetings to select one (if not connected, prompts to connect)
  • /agenda queue uses the next instance of the selected meeting
  • bonus /agenda queue updates gcal's body with the item (appends to)
  • bonus any responses to the item in Mattermost are added to the gcal's body

We have a https://github.com/mattermost/mattermost-plugin-google-calendar that is still in the early prototype stage.

Allow monthly Meetings

We have a lot of meetings which have a fixed day but are monthly. Eg first Wednesday each month.

It would be nice if the plugin would support this schedule.

Improve help text in Agenda modal

We should add more help text to ensure the hashtag and date are set correctly in the text box. These changes are to help with the current UI but may be mooted if changes are implemented as part of #17

The help text must mention that this specific date must be used.
Using the example date of January 2nd, set the date format for your hashtag

0/5 There should also be an explanation that matching meetings tags would be applied across all channels. Depending how some people use Mattermost they may not be obvious.

Initial Plugin Review

This issue includes the checklist for initial PR review. These checklist items are for the reviewer to track and addressed before the plugin in considered Passing Initial Review Process.

When all checklist items are passing and the initial review PR is merged to master, this issue can be marked as closed.

PR Checklist

Jira Ticket

https://mattermost.atlassian.net/browse/MM-21873

Overall comments

For reviewer

  • what is official convention for plugin.json id naming?
    • com.mattermost.plugin-agenda
    • com.mattermost.agenda-plugin
    • com.mattermost.agenda

Plugin Metadata

Comparison with common files from mattermost-plugin-starter-template

Installation

  • make runs without errors - fixed errors
  • FAILS make golint has errors - fixed errors (In PR - #3)
  • make govet has shadow errors - fixed errors

Security

  • FAILS npm audit returns no issues (run from webapp/)
    • PR Submitted #4
    • make clean to remove node_modules/ dir
    • npm audit to find display issues
    • npm audit fix to fix issues

Functionality

README.md

Clear instructions

  • necessary screenshots/gifs

Slash command testing

  • works - /agenda
  • works - /agenda list
  • works - /agenda list next-week
  • works - /agenda queue
  • works - /agenda queue next-week
  • works - /agenda setting <int>

Unit Testing

  • TBD

MM-47046 Use version of React DOM provided by web app

From here:

"For some more context, see here. The short version though is that we updated the web app to React 17, and there's a chance that plugins will have some issues with it because they're compiled with the React 16 version of ReactDOM. I'm submitting PRs to the 3 products, the demo plugin, and the plugin template to have them use the web app's version of React DOM to fix any immediate issues, but we'll want to properly migrate them to React 17 going forward."

Ticket Link
https://mattermost.atlassian.net/browse/MM-47046

Related Pull Requests
mattermost/mattermost-plugin-playbooks#1489
mattermost/focalboard#3861
mattermost-community/mattermost-plugin-todo#190
mattermost/mattermost-plugin-starter-template#169

Support weekday short names for schedule configuration

The /agenda setting schedule slash commands allows the update the day in the meeting schedule for a channel. It currently supports a number from 0-6 that corresponds to the day of the week defined by time.Weekday.

This task is to extend support to include a shorthand string for the weekdays besides integers like: Mon or Tue.


If you're interested please comment here and come join our "Contributors" community channel on our daily build server, where you can discuss questions with community members and the Mattermost core team. For technical advice or questions, please join our "Developers" community channel.

New contributors please see our Developer's Guide.

JIRA: https://mattermost.atlassian.net/browse/MM-22738

Add post dot menu item to queue agenda item from post

Sometimes I want to queue an item for discussion when talking in a thread. It would be convenient to create a meeting item without having to leave the current context. Here's how I see this feature working:

  • I click on the dot menu on the post I want to use
  • There is a "queue as meeting item" button
  • After clicking the button, a modal form shows where I can pick the channel and specific meeting, and type in a title and optional body of the meeting item.
  • Submitting the form will create the meeting item in the target channel and meeting, with a link to the original post.

I see a lot of value in this as it would encourage liberal use of the plugin, allowing a large variety of discussion to occur in the associated meetings.

Fix linter checks

The CI linter checks are broken. The CI job fails with:

golangci-lint run ./...
Error: server/plugin.go:39:28: unused-parameter: parameter 'c' seems to be unused, consider removing or renaming it as _ (revive)
func (p *Plugin) ServeHTTP(c *plugin.Context, w http.ResponseWriter, r *http.Request) {
                           ^
Error: server/plugin.go:90:82: unused-parameter: parameter 'mmUserID' seems to be unused, consider removing or renaming it as _ (revive)
func (p *Plugin) httpMeetingSaveSettings(w http.ResponseWriter, r *http.Request, mmUserID string) {
                                                                                 ^
Error: server/plugin.go:115:81: unused-parameter: parameter 'mmUserID' seems to be unused, consider removing or renaming it as _ (revive)
func (p *Plugin) httpMeetingGetSettings(w http.ResponseWriter, r *http.Request, mmUserID string) {
                                                                                ^
Error: server/command.go:44:33: unused-parameter: parameter 'c' seems to be unused, consider removing or renaming it as _ (revive)
func (p *Plugin) ExecuteCommand(c *plugin.Context, args *model.CommandArgs) (*model.CommandResponse, *model.AppError) {
                                ^
Error: server/command.go:219:37: unused-parameter: parameter 'args' seems to be unused, consider removing or renaming it as _ (revive)
func (p *Plugin) executeCommandHelp(args *model.CommandArgs) *model.CommandResponse {
                                    ^
make: *** [Makefile:46: check-style] Error 1
Error: Process completed with exit code 2.

See https://github.com/mattermost/mattermost-plugin-agenda/actions/runs/8660923579/job/23749777528?pr=112

Improve date format selection UI

Currently, the user needs to type in a date format to be used - manually. This introduces errors and confusion for the end-user. It would be better if we just gave them 8 choices in a list and didn't have to type anything in.

  • (***) Improve the UI to use a radio or dropdown for the user to select their desired date format from a few options rather
  • Add validation that the hashtag before the date is a minimum of 3 characters to ensure meeting items create valid hashtags

Integrate with Microsoft Calendar - initial

Use-cases:

  • /agenda setting schedule mscal brings up a calendar view of user's recurring meetings to select one
  • /agenda queue uses the next instance of the selected meeting
  • bonus /agenda queue updates the event body with the item (appends to)
  • bonus any responses to the item in Mattermost are added to the event body

0/5 I see this implemented with plugin-to-plugin API calls to the mscalendar plugin

Support multiple meetings in a week

The agenda plugin allows users to configure a channel's associated meeting schedule but currently only supports one day a week.

This task is to allow to configure multiple days a week for meeting schedule and change next meeting calculation based on the configured schedule.


If you're interested please comment here and come join our "Contributors" community channel on our daily build server, where you can discuss questions with community members and the Mattermost core team. For technical advice or questions, please join our "Developers" community channel.

New contributors please see our Developer's Guide.

JIRA: https://mattermost.atlassian.net/browse/MM-22722

Set default hashtag format as hashtag for channel If first time using agenda plugin command

Summary

An issue was discovered while working on this ticket. Here we changed the default hashtag format to include the first 15 characters of the channel name. This will "break" the users that have not set a hashtag.

Assume the scenario.

Day 1: user posts agenda item with /agenda queue item1
image

Day 2: new Default value is changed (PR #30)

Day 3: user posts agenda item with /agenda queue item1
image

Notice the Day 3 hashtag not longer matches the previous default #hashtag. This will cause mismatch in hashtags used.

Proposed Fix:
The first time a /agenda queue is used, save the default hashtag format as the value for the channel.


If you're interested please comment here and come join our "Contributors" community channel on our daily build server, where you can discuss questions with community members and the Mattermost core team. For technical advice or questions, please join our "Developers" community channel.

New contributors please see our Developer's Guide.

Re-queue an item for next meeting

The post dot menu should show an option to (re-)queue an item to the next meeting that should update the post hashtag to the next meeting date, or if no hashtag is present add the hashtag to queue this item. This would be helpful in cases an item was not covered in the given meeting and is moved to the upcoming one.

This should show an ephemeral message for feedback that the item was queued successfully.


If you're interested please comment here and come join our "Contributors" community channel on our daily build server, where you can discuss questions with community members and the Mattermost core team. For technical advice or questions, please join our "Developers" community channel.

New contributors please see our Developer's Guide.

JIRA: https://mattermost.atlassian.net/browse/MM-22739

Plugin Intake Checklist

Mark as done after each step completed (completion is done in comments)

As the individual doing plugin intake, you will need the following privileges.

  • Github repository admin access. You will see the Settings option tab if access has been granted. (next to Pull requests, Actions, Releases)
  • Mattermost Channel admin access. This will allow editing the header
  • Mattermost sysadmin access.
    • Needed for creating new public channnels
    • Needed for /jira subscribe if applicable

Repository Setup - Settings

[x] Options (Make sure the following are the only selected items)

  • Features:
    • Wikis
    • Restrict editing to users in teams with push access only
    • Issues
    • Projects
  • Data services
    • Security alerts
  • Merge Button:
    • Allow squash merging
    • Automatically delete head branches

[x] Setup GitHub 1st Project

[x] Collaborators (Manage Access)

Added the following:

  • mattermost/core-build-engineers
  • mattermost/core-committers
  • mattermost/core-developers
  • mattermost/core-pms
  • mattermost/integrations
  • mattermost/qa-core-team
  • mattermost/tech-writers

[x] Branches

Branch protection Rules: master should already be available. Click edit next to master and verify the following defaults

  • Branch name pattern: master
    • Applies to 1 branch: master
  • Protecting matching branches
    • Require pull request reviews before merging: required approving reviews :2
      • Dismiss stale pull request approvals when new commits are pushed
    • Require status checks to pass before merging
      • Require branches to be up to date before merging

[x] Webhooks

[x] Apps and Integratinos

  • Installed GitHub Apps
    • CircleCi Checks
    • Dependabot Preview

README.md

  • add circleci badge
  • add codecov badge
  • add go report badge

If these don't exist, create Tickets for each

  • Add HW to Readme
  • Slash commands documented
  • Images added
  • Installation / Configuration section added

Repository checks

Each of the following might require new commits and PRs against master.

  • go mod tidy
  • version
  • All tests passing
  • npm audit fix
  • npm-check -E -u to view the changes interactively
  • npm-check -E -y to update without interactive
    • check in package-lock.json and package.json
  • grep for original repo references in all files

Mattermost Channels Setup

  • Plugin: <plugin_name> - setup new plugin channel
    • Add plugin author and some other integration team members
    • Github subscribe
      • /github subscribe mattermost/mattermost-plugin-agenda pulls,issues,creates
    • Jira subscribe - If the plugin has its own an epic, we can subscribe to that.
      • doesn't have epic so marking done
    • Header: [HW] | [repo] | [circle-ci] | PM: | Dev:
Actual text for header - replace all instances of <plugin_repo>, <pm-name>, <dev-name>

[GitHub](https://github.com/mattermost/<plugin_repo>) | [Help Wanted](https://github.com/mattermost/<plugin_repo>/issues?utf8=%E2%9C%93&q=is%3Aopen+label%3A%22up+for+grabs%22+label%3A%22help+wanted%22+sort%3Aupdated-desc) | [![CircleCI](https://circleci.com/gh/mattermost/<plugin-repo-namme>.svg?style=shield)](https://circleci.com/gh/mattermost/<plugin-repo) | PM: @<pm-name> | Dev: @<dev-name>
  • GitHub subscribe in ~Plugin Heartbeat channel
    • /github subscribe mattermost/mattermost-plugin-agenda pulls

The rest

Integrate GolangCI-Lint

Mattermost is currently in the process of using golangci-lint as the default linter for all go projects. mattermost-community/mattermost-plugin-autolink#108 serves as an example of how the migration should look like:

  1. Copy .golangci.yml from https://github.com/mattermost/mattermost-plugin-autolink/ into this repository.
  2. Copy Makefile from https://github.com/mattermost/mattermost-plugin-autolink/ into this repository.
  3. Copy build/ from https://github.com/mattermost/mattermost-plugin-autolink/ into this repository.
  4. Run go mod tidy and make dist to ensure the build system works fine.
  5. Update linters-settings.goimports.local-prefixes to the go module path i.e. to github.com/mattermost/mattermost-plugin-aws-SNS.
  6. Run make golangci-lint and fix all issues that arise.

Fixing an linter issue is sometimes trivial but can also be quite complicated. There might be cases, where ignoring an issue using issues.exclude-rules is needed. If you don't know how to resolve an error, please reach out to @hanzei on the Mattermost Community Server or ask the question here.

Improve setting date format

The way the date format is set is too brittle. Setting an incorrect format or, setting it in a way that is correct with a date other than January 2nd will cause the plugin to behave incorrectly in various ways.

Some suggestions form @marianunez on the previous PR about how this can be improved...

  • Limit it to a pre-set list of date formats like you suggest but not sure how this would work on placing the rest of your hashtag text (just before the date?).
  • Design a different way/UI to define your date format all together

My Suggestion would be to have a textbox where the hash-tag can be set and a radio button to select your desired date format.

Building the plugins fails on node v14

When using node version > 14, building the plugins fails with:

$ npm run build 

> [email protected] build /home/sumacheb/src/mattermost/plugins/agenda/webapp
> webpack --mode=production

Hash: 079fd45b303c38a7242d
Version: webpack 4.42.0
Time: 298ms
Built at: 05/13/2020 9:27:19 PM
 1 asset
Entrypoint main = main.js
[0] multi ./src/index.js 28 bytes {0} [built]
[1] ./src/index.js 5.46 KiB {0} [built] [failed] [1 error]

ERROR in ./src/index.js
Module build failed (from ./node_modules/babel-loader/lib/index.js):
Error: Cannot find module '@babel/compat-data/corejs3-shipped-proposals'
Require stack:
- /home/sumacheb/src/mattermost/plugins/agenda/webapp/node_modules/@babel/preset-env/lib/polyfills/corejs3/usage-plugin.js
- /home/sumacheb/src/mattermost/plugins/agenda/webapp/node_modules/@babel/preset-env/lib/index.js
- /home/sumacheb/src/mattermost/plugins/agenda/webapp/node_modules/@babel/core/lib/config/files/plugins.js
- /home/sumacheb/src/mattermost/plugins/agenda/webapp/node_modules/@babel/core/lib/config/files/index.js
- /home/sumacheb/src/mattermost/plugins/agenda/webapp/node_modules/@babel/core/lib/index.js
- /home/sumacheb/src/mattermost/plugins/agenda/webapp/node_modules/babel-loader/lib/index.js
- /home/sumacheb/src/mattermost/plugins/agenda/webapp/node_modules/loader-runner/lib/loadLoader.js
- /home/sumacheb/src/mattermost/plugins/agenda/webapp/node_modules/loader-runner/lib/LoaderRunner.js
- /home/sumacheb/src/mattermost/plugins/agenda/webapp/node_modules/webpack/lib/NormalModule.js
- /home/sumacheb/src/mattermost/plugins/agenda/webapp/node_modules/webpack/lib/NormalModuleFactory.js
- /home/sumacheb/src/mattermost/plugins/agenda/webapp/node_modules/webpack/lib/Compiler.js
- /home/sumacheb/src/mattermost/plugins/agenda/webapp/node_modules/webpack/lib/webpack.js
- /home/sumacheb/src/mattermost/plugins/agenda/webapp/node_modules/webpack-cli/bin/utils/validate-options.js
- /home/sumacheb/src/mattermost/plugins/agenda/webapp/node_modules/webpack-cli/bin/utils/convert-argv.js
- /home/sumacheb/src/mattermost/plugins/agenda/webapp/node_modules/webpack-cli/bin/cli.js
- /home/sumacheb/src/mattermost/plugins/agenda/webapp/node_modules/webpack/bin/webpack.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:1020:15)
    at Function.Module._load (internal/modules/cjs/loader.js:890:27)
    at Module.require (internal/modules/cjs/loader.js:1080:19)
    at require (/home/sumacheb/src/mattermost/plugins/agenda/webapp/node_modules/webpack-cli/node_modules/v8-compile-cache/v8-compile-cache.js:161:20)
    at Object.<anonymous> (/home/sumacheb/src/mattermost/plugins/agenda/webapp/node_modules/@babel/preset-env/lib/polyfills/corejs3/usage-plugin.js:10:55)
    at Module._compile (/home/sumacheb/src/mattermost/plugins/agenda/webapp/node_modules/webpack-cli/node_modules/v8-compile-cache/v8-compile-cache.js:192:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1196:10)
    at Module.load (internal/modules/cjs/loader.js:1040:32)
    at Function.Module._load (internal/modules/cjs/loader.js:929:14)
    at Module.require (internal/modules/cjs/loader.js:1080:19)
    at require (/home/sumacheb/src/mattermost/plugins/agenda/webapp/node_modules/webpack-cli/node_modules/v8-compile-cache/v8-compile-cache.js:161:20)
    at Object.<anonymous> (/home/sumacheb/src/mattermost/plugins/agenda/webapp/node_modules/@babel/preset-env/lib/index.js:29:44)
    at Module._compile (/home/sumacheb/src/mattermost/plugins/agenda/webapp/node_modules/webpack-cli/node_modules/v8-compile-cache/v8-compile-cache.js:192:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1196:10)
    at Module.load (internal/modules/cjs/loader.js:1040:32)
    at Function.Module._load (internal/modules/cjs/loader.js:929:14)
    at Module.require (internal/modules/cjs/loader.js:1080:19)
    at require (/home/sumacheb/src/mattermost/plugins/agenda/webapp/node_modules/webpack-cli/node_modules/v8-compile-cache/v8-compile-cache.js:161:20)
    at requireModule (/home/sumacheb/src/mattermost/plugins/agenda/webapp/node_modules/@babel/core/lib/config/files/plugins.js:165:12)
    at loadPreset (/home/sumacheb/src/mattermost/plugins/agenda/webapp/node_modules/@babel/core/lib/config/files/plugins.js:83:17)
    at createDescriptor (/home/sumacheb/src/mattermost/plugins/agenda/webapp/node_modules/@babel/core/lib/config/config-descriptors.js:154:9)
    at /home/sumacheb/src/mattermost/plugins/agenda/webapp/node_modules/@babel/core/lib/config/config-descriptors.js:109:50
    at Array.map (<anonymous>)
    at createDescriptors (/home/sumacheb/src/mattermost/plugins/agenda/webapp/node_modules/@babel/core/lib/config/config-descriptors.js:109:29)
    at createPresetDescriptors (/home/sumacheb/src/mattermost/plugins/agenda/webapp/node_modules/@babel/core/lib/config/config-descriptors.js:101:10)
    at /home/sumacheb/src/mattermost/plugins/agenda/webapp/node_modules/@babel/core/lib/config/config-descriptors.js:58:104
    at cachedFunction (/home/sumacheb/src/mattermost/plugins/agenda/webapp/node_modules/@babel/core/lib/config/caching.js:62:27)
    at cachedFunction.next (<anonymous>)
    at evaluateSync (/home/sumacheb/src/mattermost/plugins/agenda/webapp/node_modules/gensync/index.js:244:28)
    at sync (/home/sumacheb/src/mattermost/plugins/agenda/webapp/node_modules/gensync/index.js:84:14)
    at presets (/home/sumacheb/src/mattermost/plugins/agenda/webapp/node_modules/@babel/core/lib/config/config-descriptors.js:29:84)
    at mergeChainOpts (/home/sumacheb/src/mattermost/plugins/agenda/webapp/node_modules/@babel/core/lib/config/config-chain.js:320:26)
    at /home/sumacheb/src/mattermost/plugins/agenda/webapp/node_modules/@babel/core/lib/config/config-chain.js:283:7
    at Generator.next (<anonymous>)
    at buildRootChain (/home/sumacheb/src/mattermost/plugins/agenda/webapp/node_modules/@babel/core/lib/config/config-chain.js:68:36)
    at buildRootChain.next (<anonymous>)
 @ multi ./src/index.js main[0]

Agenda list command does not work on mobile

The design of Agenda for showing list in the RHS work well in webapp but it does not accommodate the mobile app.

When you run /agenda list on mobile nothing seems to happens

Steps:

  • Open a channel
  • Queue some items
  • From RN type /agenda list

Observed: Nothing happened
Expected: Not sure. If the behavior is consistent with other hashtag searches, I suppose it should open some search results for the appropriate hashtag.

Include CSRF token in webapp’s API requests

When a plugin’s webapp makes an API request to the Mattermost server, it needs to include the CSRF token supplied by the server in its request. This can be done using the getOptions function exported by the mattermost-redux library. Here is some example usage

https://github.com/mattermost/mattermost-plugin-jira/blob/ae5676ead0e9effca29d2948c6596f42cf6e35c1/webapp/src/client/index.js#L13-L18

The task here is to convert all API requests done by the plugin’s Client to use the token.

Agenda item number should get updated if the items of the agenda are deleted

The agenda items' numbering gets off by one when the first item is deleted.
The numbering is also off when the items are manually edited but might be difficult to tackle as Maria Nuñez has mentioned here

QA Test Steps

  1. Ensure that the agenda plugin is installed and enabled.
  2. Go to a channel header and edit the agenda settings to update the hashtag if needed (e.g.: test-Jan02).
  3. Use command /agenda queue to queue at least 3 items as following:
    /agenda queue item 1
    /agenda queue item 2
    /agenda queue item 3
  4. Click on the agenda hashtag to open up the agenda list on the RHS.
  5. On the RHS, click the post menu for item 1 (or the first item that was queued) and delete the agenda item.
  6. Ensure that now there are only 2 items for that agenda hashtag: item 2 and item 3 on the RHS.
  7. Add a new agenda item: /agenda queue new item.
  8. Click on the hashtag to refresh the RHS.

Observed: The RHS has 3 agenda items numbered 2), 3) and 3)

Expected: The RHS has 3 agenda items numbered 1), 2) and 3)

Jira: https://mattermost.atlassian.net/browse/MM-26536

Agenda settings modal does not show default value

The Agenda Settings modal is not setting the default value when a channel has no meeting settings and shows the last meeting settings viewed previously.

Steps:

  1. Go to a channel and set the Agenda hashtag (in the modal) to "myMeetingA{{Jan02}}".
  2. Create a new channel.
  3. Open the Agenda settings modal.

Observed:
Meeting hashtag shows "myMeetingA{{Jan02}}"

Expected:
It should show a default value of the channel name.

JS Warnings

There are two JS warnings that are showing when the plugin is enabled:

Warning: Failed prop type: The prop `visible` is marked as required in `P`, but its value is `undefined`.
react_devtools_backend.js:6 Warning: Failed prop type: The prop `channelId` is marked as required in `P`, but its value is `undefined`.

Screen Shot 2020-04-03 at 10 36 49 AM

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.