1
0
mirror of https://github.com/dwaxweiler/connector-mobilizon synced 2025-06-05 21:59:25 +02:00

13 Commits

10 changed files with 2969 additions and 6683 deletions

View File

@ -1,2 +1,2 @@
npm test npm test
npx lint-staged lint-staged

View File

@ -6,6 +6,8 @@ More details can be found in the [WordPress Plugin Directory](https://wordpress.
The current changelog can be found under [source/changelog.txt](source/changelog.txt). The current changelog can be found under [source/changelog.txt](source/changelog.txt).
This plugin uses [Mobilizon's GraphQL API](https://docs.joinmobilizon.org/contribute/graphql_api/).
## Development ## Development
### Setup ### Setup
@ -22,21 +24,23 @@ The current changelog can be found under [source/changelog.txt](source/changelog
### Release procedure ### Release procedure
1. Make sure `changelog.txt` is up-to-date. 1. Make sure `changelog.txt` is up-to-date.
2. Use a new version number and copy over the new section into `readme.txt`. 2. Create a new section with a new version number.
3. Update `package.json` with the same version number. 3. Copy over the new section into `readme.txt`.
4. Update the `package-lock.json`: `npm i --package-lock-only` 4. Update `package.json` with the same version number.
5. Build: `npm run build-prod` 5. Update the `package-lock.json`: `npm i --package-lock-only`
6. Make sure screenshots are up-to-date. 6. Build: `npm run build-prod`
7. Copy the built plugin into `/trunk` of SVN. 7. Make sure screenshots are up-to-date.
8. Create a new tag of the new version: `svn cp trunk tags/<version>` 8. Copy the built plugin into `/trunk` of SVN.
9. Check the version number occurrences in both folders. 9. Create a new tag of the new version: `svn cp trunk tags/<version>`
10. Commit everything together to the release SVN: `svn ci -m "release version <version>"` Make sure to add new files beforehand. 10. Check the version number occurrences in both folders.
11. Commit the new version in git with the same message. 11. Make sure to handle exclamation and question marks in `svn status`.
12. Tag the new version: `git tag v<version>` 12. Commit everything together to the release SVN: `svn ci -m "release version <version>"`
13. Push the new tag to the repository: `git push --tags` 13. Commit the new version in git with the same message.
14. Append `-next` to the version number in `package.json`. 14. Tag the new version: `git tag v<version>`
15. Update the `package-lock.json`: `npm i --package-lock-only` 15. Push the new tag to the repository: `git push --tags`
16. Commit: `git commit -am "prepare next release"` 16. Append `-next` to the version number in `package.json`.
17. Update the `package-lock.json`: `npm i --package-lock-only`
18. Commit: `git commit -am "prepare next release"`
### Other commands ### Other commands

9554
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
{ {
"name": "connector-mobilizon", "name": "connector-mobilizon",
"version": "1.0.0", "version": "1.1.0",
"description": "Display Mobilizon events in WordPress.", "description": "Display Mobilizon events in WordPress.",
"private": true, "private": true,
"type": "module", "type": "module",
@ -24,32 +24,32 @@
}, },
"license": "Apache-2.0", "license": "Apache-2.0",
"dependencies": { "dependencies": {
"graphql": "16.8.1", "graphql": "16.9.0",
"luxon": "3.4.4" "luxon": "3.4.4"
}, },
"devDependencies": { "devDependencies": {
"@babel/core": "7.24.4", "@babel/core": "7.24.9",
"@babel/eslint-parser": "7.24.1", "@babel/eslint-parser": "7.24.8",
"@babel/preset-env": "7.24.4", "@babel/preset-env": "7.24.8",
"@babel/preset-react": "7.24.1", "@babel/preset-react": "7.24.7",
"@wordpress/eslint-plugin": "17.12.0", "@wordpress/eslint-plugin": "20.0.0",
"ava": "6.1.2", "ava": "6.1.3",
"babel-loader": "9.1.3", "babel-loader": "9.1.3",
"browser-env": "3.3.0", "browser-env": "3.3.0",
"c8": "9.1.0", "c8": "10.1.2",
"copy-webpack-plugin": "12.0.2", "copy-webpack-plugin": "12.0.2",
"eslint": "8.57.0", "eslint": "8.57.0",
"eslint-plugin-ava": "14.0.0", "eslint-plugin-ava": "14.0.0",
"eslint-plugin-jsx": "0.1.0", "eslint-plugin-jsx": "0.1.0",
"eslint-plugin-react": "7.34.1", "eslint-plugin-react": "7.34.4",
"esm": "3.2.25", "esm": "3.2.25",
"gulp": "4.0.2", "gulp": "5.0.0",
"gulp-replace": "1.1.4", "gulp-replace": "1.1.4",
"husky": "9.0.11", "husky": "9.1.1",
"lint-staged": "15.2.2", "lint-staged": "15.2.7",
"prettier": "3.2.5", "prettier": "3.3.3",
"rimraf": "5.0.5", "rimraf": "5.0.9",
"webpack": "5.91.0", "webpack": "5.93.0",
"webpack-cli": "5.1.4" "webpack-cli": "5.1.4"
}, },
"ava": { "ava": {
@ -61,7 +61,7 @@
"niceName": "Connector for Mobilizon", "niceName": "Connector for Mobilizon",
"phpMinimumVersion": 7.4, "phpMinimumVersion": 7.4,
"wordpressMinimumVersion": 5.6, "wordpressMinimumVersion": 5.6,
"wordpressTestedUpToVersion": "6.5" "wordpressTestedUpToVersion": "6.6"
}, },
"lint-staged": { "lint-staged": {
"source/**/*.js": "eslint", "source/**/*.js": "eslint",

View File

@ -6,6 +6,15 @@
#### Fixed #### Fixed
#### Security #### Security
### [1.1.0]
#### Added
- Add some spacing between event items
#### Changed
- Update dependencies
- Confirm compatibility with WordPress 6.6
#### Fixed
- Fix undefined variable $classNamePrefix for both error views
### [1.0.0] ### [1.0.0]
#### Added #### Added
- Display name of group when it cannot be found - Display name of group when it cannot be found

View File

@ -39,6 +39,7 @@ class EventsListBlock {
$url = Settings::getUrl(); $url = Settings::getUrl();
$eventsCount = $block_attributes['eventsCount']; $eventsCount = $block_attributes['eventsCount'];
$groupName = isset($block_attributes['groupName']) ? $block_attributes['groupName'] : ''; $groupName = isset($block_attributes['groupName']) ? $block_attributes['groupName'] : '';
$classNamePrefix = NAME;
ob_start(); ob_start();
try { try {
@ -48,7 +49,6 @@ class EventsListBlock {
$events = GraphQlClient::get_upcoming_events($url, (int) $eventsCount); $events = GraphQlClient::get_upcoming_events($url, (int) $eventsCount);
} }
$classNamePrefix = NAME;
$locale = get_locale(); $locale = get_locale();
$isShortOffsetNameShown = Settings::isShortOffsetNameShown(); $isShortOffsetNameShown = Settings::isShortOffsetNameShown();
$timeZone = wp_timezone_string(); $timeZone = wp_timezone_string();

View File

@ -22,6 +22,7 @@ class EventsListShortcut {
$url = Settings::getUrl(); $url = Settings::getUrl();
$eventsCount = $atts_with_overriden_defaults['events-count']; $eventsCount = $atts_with_overriden_defaults['events-count'];
$groupName = $atts_with_overriden_defaults['group-name']; $groupName = $atts_with_overriden_defaults['group-name'];
$classNamePrefix = NAME;
ob_start(); ob_start();
try { try {
@ -31,7 +32,6 @@ class EventsListShortcut {
$events = GraphQlClient::get_upcoming_events($url, (int) $eventsCount); $events = GraphQlClient::get_upcoming_events($url, (int) $eventsCount);
} }
$classNamePrefix = NAME;
$locale = get_locale(); $locale = get_locale();
$isShortOffsetNameShown = Settings::isShortOffsetNameShown(); $isShortOffsetNameShown = Settings::isShortOffsetNameShown();
$timeZone = wp_timezone_string(); $timeZone = wp_timezone_string();

View File

@ -23,6 +23,7 @@ class EventsListWidget extends \WP_Widget {
$url = Settings::getUrl(); $url = Settings::getUrl();
$eventsCount = $options['eventsCount']; $eventsCount = $options['eventsCount'];
$groupName = isset($options['groupName']) ? $options['groupName'] : ''; $groupName = isset($options['groupName']) ? $options['groupName'] : '';
$classNamePrefix = NAME;
try { try {
if ($groupName) { if ($groupName) {
@ -31,7 +32,6 @@ class EventsListWidget extends \WP_Widget {
$events = GraphQlClient::get_upcoming_events($url, (int) $eventsCount); $events = GraphQlClient::get_upcoming_events($url, (int) $eventsCount);
} }
$classNamePrefix = NAME;
$locale = get_locale(); $locale = get_locale();
$isShortOffsetNameShown = Settings::isShortOffsetNameShown(); $isShortOffsetNameShown = Settings::isShortOffsetNameShown();
$timeZone = wp_timezone_string(); $timeZone = wp_timezone_string();

View File

@ -23,6 +23,8 @@ Features
- Set the URL of the Mobilizon instance in the settings - Set the URL of the Mobilizon instance in the settings
- Toggle adding named offset in brackets after the time in the settings - Toggle adding named offset in brackets after the time in the settings
This plugin requests the events via Mobilizon's GraphQL API.
The source code is available on [Github](https://github.com/dwaxweiler/connector-mobilizon). The source code is available on [Github](https://github.com/dwaxweiler/connector-mobilizon).
## Installation ## Installation
@ -41,6 +43,15 @@ You have to use their username, e.g. `@nosliensvivants`, and append the name of
## Changelog ## Changelog
### [1.1.0]
#### Added
- Add some spacing between event items
#### Changed
- Update dependencies
- Confirm compatibility with WordPress 6.6
#### Fixed
- Fix undefined variable $classNamePrefix for both error views
### [1.0.0] ### [1.0.0]
#### Added #### Added
- Display name of group when it cannot be found - Display name of group when it cannot be found

View File

@ -9,7 +9,7 @@ if (!defined('ABSPATH')) {
<div class="<?php echo esc_attr($classNamePrefix); ?>_events-list"> <div class="<?php echo esc_attr($classNamePrefix); ?>_events-list">
<ul style="list-style-type: none; padding-left: 0;"> <ul style="list-style-type: none; padding-left: 0;">
<?php foreach($events as $event) { ?> <?php foreach($events as $event) { ?>
<li> <li style="margin-top: 10px;">
<a href="<?php echo esc_attr($event['url']); ?>"><?php echo esc_html_e($event['title']); ?></a> <a href="<?php echo esc_attr($event['url']); ?>"><?php echo esc_html_e($event['title']); ?></a>
<br> <br>
<?php echo esc_html_e(Formatter::format_date($locale, $timeZone, $event['beginsOn'], $event['endsOn'], $isShortOffsetNameShown)); ?> <?php echo esc_html_e(Formatter::format_date($locale, $timeZone, $event['beginsOn'], $event['endsOn'], $isShortOffsetNameShown)); ?>