Skip to content

Commit 2973c0e

Browse files
committed
Got the basics of the anonymous settings hooked up. Still need to clean things up.
1 parent f861dd1 commit 2973c0e

17 files changed

+75
-75
lines changed
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
<?php return array('dependencies' => array('react', 'react-dom', 'wp-api-fetch', 'wp-components', 'wp-data', 'wp-dom-ready', 'wp-element', 'wp-i18n'), 'version' => 'bc9467498faa1288e1bc');
1+
<?php return array('dependencies' => array('react', 'react-dom', 'wp-api-fetch', 'wp-components', 'wp-data', 'wp-dom-ready', 'wp-element', 'wp-i18n'), 'version' => '5aeb2dc869f0cb9e38a1');

build/blocks/events-list/events-list.js

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
<?php return array('dependencies' => array('lodash', 'react', 'react-dom', 'wp-api-fetch', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-core-data', 'wp-data', 'wp-element', 'wp-i18n'), 'version' => 'b2d05544be63ed4332a4');
1+
<?php return array('dependencies' => array('lodash', 'react', 'react-dom', 'wp-api-fetch', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-core-data', 'wp-data', 'wp-element', 'wp-i18n'), 'version' => '6cf2e1c97c8609ffc48b');

build/blocks/events-list/index.js

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

build/blocks/rsvp/index.asset.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
<?php return array('dependencies' => array('react', 'react-dom', 'wp-api-fetch', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-data', 'wp-element', 'wp-i18n'), 'version' => 'a555ba54c11cb43b61d3');
1+
<?php return array('dependencies' => array('react', 'react-dom', 'wp-api-fetch', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-data', 'wp-element', 'wp-i18n'), 'version' => 'f6a9504f57ebd1308ea6');

build/blocks/rsvp/index.js

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

build/blocks/rsvp/rsvp.asset.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
<?php return array('dependencies' => array('react', 'react-dom', 'wp-api-fetch', 'wp-components', 'wp-data', 'wp-dom-ready', 'wp-element', 'wp-i18n'), 'version' => '67ba55eaced5201051b6');
1+
<?php return array('dependencies' => array('react', 'react-dom', 'wp-api-fetch', 'wp-components', 'wp-data', 'wp-dom-ready', 'wp-element', 'wp-i18n'), 'version' => '51c799342898259a8366');

build/blocks/rsvp/rsvp.js

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

build/panels.asset.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
<?php return array('dependencies' => array('moment', 'react', 'wp-api-fetch', 'wp-components', 'wp-data', 'wp-date', 'wp-edit-post', 'wp-element', 'wp-i18n', 'wp-plugins'), 'version' => 'e094c9df94a4c46c4916');
1+
<?php return array('dependencies' => array('moment', 'react', 'wp-api-fetch', 'wp-components', 'wp-data', 'wp-date', 'wp-edit-post', 'wp-element', 'wp-i18n', 'wp-plugins'), 'version' => '591755b330a494b563fd');

build/panels.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

includes/core/classes/class-assets.php

+21-20
Original file line numberDiff line numberDiff line change
@@ -271,29 +271,30 @@ protected function localize( int $post_id ): array {
271271
$settings = Settings::get_instance();
272272

273273
return array(
274-
'responses' => ( $event->rsvp ) ? $event->rsvp->responses() : array(),
275-
'current_user' => ( $event->rsvp && $event->rsvp->get( get_current_user_id() ) )
274+
'responses' => ( $event->rsvp ) ? $event->rsvp->responses() : array(),
275+
'current_user' => ( $event->rsvp && $event->rsvp->get( get_current_user_id() ) )
276276
? $event->rsvp->get( get_current_user_id() )
277277
: '', // Cleanup needed.
278-
'is_user_logged_in' => is_user_logged_in(),
279-
'default_timezone' => sanitize_text_field( wp_timezone_string() ),
280-
'event_announced' => ( get_post_meta( $post_id, 'gp-event-announce', true ) ) ? 1 : 0,
281-
'event_datetime' => $event->get_datetime(),
282-
'event_rest_api' => home_url( 'wp-json/gatherpress/v1/event' ),
283-
'has_event_past' => $event->has_event_past(),
284-
'is_admin' => is_admin(),
285-
'nonce' => wp_create_nonce( 'wp_rest' ),
286-
'post_id' => $post_id,
287-
'settings' => array(
288-
'date_format' => $settings->get_value( 'general', 'formatting', 'date_format' ),
289-
'time_format' => $settings->get_value( 'general', 'formatting', 'time_format' ),
290-
'show_timezone' => ( 1 === (int) $settings->get_value( 'general', 'formatting', 'show_timezone' ) ),
291-
'anonymous_rsvp' => ( 1 === (int) $settings->get_value( 'general', 'general', 'anonymous_rsvp' ) ),
278+
'is_user_logged_in' => is_user_logged_in(),
279+
'default_timezone' => sanitize_text_field( wp_timezone_string() ),
280+
'event_announced' => ( get_post_meta( $post_id, 'gp-event-announce', true ) ) ? 1 : 0,
281+
'event_datetime' => $event->get_datetime(),
282+
'event_rest_api' => home_url( 'wp-json/gatherpress/v1/event' ),
283+
'event_allow_anonymous_rsvp' => ( get_post_meta( $post_id, 'allow_anonymous_rsvp', true ) ) ? 1 : 0,
284+
'has_event_past' => $event->has_event_past(),
285+
'is_admin' => is_admin(),
286+
'nonce' => wp_create_nonce( 'wp_rest' ),
287+
'post_id' => $post_id,
288+
'settings' => array(
289+
'date_format' => $settings->get_value( 'general', 'formatting', 'date_format' ),
290+
'time_format' => $settings->get_value( 'general', 'formatting', 'time_format' ),
291+
'show_timezone' => ( 1 === (int) $settings->get_value( 'general', 'formatting', 'show_timezone' ) ),
292+
'allow_anonymous_rsvp' => ( 1 === (int) $settings->get_value( 'general', 'general', 'allow_anonymous_rsvp' ) ),
292293
),
293-
'login_url' => $this->get_login_url( $post_id ),
294-
'registration_url' => $this->get_registration_url( $post_id ),
295-
'timezone_choices' => Utility::timezone_choices(),
296-
'unregister_blocks' => $this->unregister_blocks(),
294+
'login_url' => $this->get_login_url( $post_id ),
295+
'registration_url' => $this->get_registration_url( $post_id ),
296+
'timezone_choices' => Utility::timezone_choices(),
297+
'unregister_blocks' => $this->unregister_blocks(),
297298
);
298299
}
299300

includes/core/classes/class-event.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ public static function get_post_meta_registration_args(): array {
184184
'single' => true,
185185
'type' => 'string',
186186
),
187-
'anonymous_rsvp' => array(
187+
'allow_anonymous_rsvp' => array(
188188
'auth_callback' => function() {
189189
return current_user_can( 'edit_posts' );
190190
},

includes/core/classes/class-rsvp.php

-6
Original file line numberDiff line numberDiff line change
@@ -118,12 +118,6 @@ public function get( int $user_id ): array {
118118
// @todo Consider implementing caching for improved performance in the future.
119119
$data = $wpdb->get_row( $wpdb->prepare( 'SELECT id, timestamp, status, guests, anonymous FROM ' . esc_sql( $table ) . ' WHERE post_id = %d AND user_id = %d', $event_id, $user_id ), ARRAY_A ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
120120

121-
// @todo needing to force types here. Need to look into this.
122-
$data['id'] = (int) $data['id'];
123-
$data['guests'] = (int) $data['guests'];
124-
$data['anonymous'] = (int) $data['anonymous'];
125-
126-
127121
return array_merge( $default, (array) $data );
128122
}
129123

includes/core/classes/settings/class-general.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ protected function get_sections(): array {
113113
),
114114
),
115115
),
116-
'anonymous_rsvp' => array(
116+
'allow_anonymous_rsvp' => array(
117117
'labels' => array(
118118
'name' => __( 'Anonymous RSVPs', 'gatherpress' ),
119119
),

src/components/AnonymousRsvp.js

+10-12
Original file line numberDiff line numberDiff line change
@@ -12,29 +12,27 @@ import { useDispatch, useSelect } from '@wordpress/data';
1212
import { getFromGlobal } from '../helpers/globals';
1313

1414
const AnonymousRsvp = () => {
15-
const { editPost, unlockPostSaving } = useDispatch('core/editor');
16-
let defaultAnonymousRsvp = useSelect(
17-
(select) =>
18-
select('core/editor').getEditedPostAttribute('meta')
19-
.anonymous_rsvp
20-
);
21-
console.log(defaultAnonymousRsvp);
22-
23-
if ('undefined' === typeof defaultAnonymousRsvp) {
24-
defaultAnonymousRsvp = getFromGlobal('settings.anonymous_rsvp');
15+
if (!getFromGlobal('settings.allow_anonymous_rsvp')) {
16+
return <></>;
2517
}
2618

19+
const { editPost, unlockPostSaving } = useDispatch('core/editor');
20+
const defaultAnonymousRsvp = useSelect((select) => {
21+
return select('core/editor').getEditedPostAttribute('meta')
22+
.allow_anonymous_rsvp;
23+
}, []);
24+
2725
const [anonymousRsvp, setAnonymousRsvp] = useState(defaultAnonymousRsvp);
2826

2927
const updateAnonymousRsvp = (value) => {
30-
const meta = { anonymous_rsvp: value };
28+
const meta = { allow_anonymous_rsvp: Number(value) };
3129

3230
setAnonymousRsvp(value);
3331
editPost({ meta });
3432
unlockPostSaving();
3533
};
3634

37-
return(
35+
return (
3836
<CheckboxControl
3937
label={__('Allow anonymous RSVPs', 'gatherpress')}
4038
checked={anonymousRsvp}

src/components/Rsvp.js

+27-21
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import apiFetch from '@wordpress/api-fetch';
1818
import { Broadcaster } from '../helpers/broadcasting';
1919
import RsvpStatusResponse from './RsvpStatusResponse';
2020
import { getFromGlobal } from '../helpers/globals';
21+
import { useSelect } from '@wordpress/data';
2122

2223
/**
2324
* Rsvp component for GatherPress.
@@ -38,7 +39,7 @@ import { getFromGlobal } from '../helpers/globals';
3839
*/
3940
const Rsvp = ({ eventId, currentUser = '', type }) => {
4041
const [rsvpStatus, setRsvpStatus] = useState(currentUser.status);
41-
const [rsvpAnonymous, setRsvpAnonymous] = useState(currentUser.anonymous);
42+
const [rsvpAnonymous, setRsvpAnonymous] = useState(Number(currentUser.anonymous));
4243
const [rsvpGuests, setRsvpGuests] = useState(currentUser.guests);
4344
const [selectorHidden, setSelectorHidden] = useState('hidden');
4445
const [selectorExpanded, setSelectorExpanded] = useState('false');
@@ -244,26 +245,31 @@ const Rsvp = ({ eventId, currentUser = '', type }) => {
244245
)
245246
)}
246247
</div>
247-
<div className="gp-modal__anonymous">
248-
<input
249-
id="gp-anonymous"
250-
type="checkbox"
251-
onChange={(e) => {
252-
setRsvpAnonymous(Number(e.target.checked));
253-
onAnchorClick(
254-
e,
255-
rsvpStatus,
256-
rsvpAnonymous,
257-
rsvpGuests,
258-
false
259-
);
260-
}}
261-
checked={rsvpAnonymous}
262-
/>
263-
<label htmlFor="gp-anonymous">
264-
{__('List me as anonymous.', 'gatherpress')}
265-
</label>
266-
</div>
248+
{1 === getFromGlobal('event_allow_anonymous_rsvp') ?
249+
<div className="gp-modal__anonymous">
250+
<input
251+
id="gp-anonymous"
252+
type="checkbox"
253+
onChange={(e) => {
254+
const value = Number(e.target.checked);
255+
setRsvpAnonymous(value);
256+
onAnchorClick(
257+
e,
258+
rsvpStatus,
259+
value,
260+
rsvpGuests,
261+
false
262+
);
263+
}}
264+
checked={rsvpAnonymous}
265+
/>
266+
<label htmlFor="gp-anonymous">
267+
{__('List me as anonymous.', 'gatherpress')}
268+
</label>
269+
</div>
270+
:
271+
<></>
272+
}
267273
{/*@todo Guests feature coming in later version of GatherPress*/}
268274
{/* <label htmlFor="gp-guests">*/}
269275
{/* {__('Number of guests?', 'gatherpress')}*/}

src/panels/event-settings/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import DateTimeRangePanel from './datetime-range';
1919
import NotifyMembersPanel from './notify-members';
2020
import OnlineEventLinkPanel from './online-link';
2121
import VenueSelectorPanel from './venue-selector';
22+
import { getFromGlobal } from '../../helpers/globals';
2223

2324
/**
2425
* A settings panel for event-specific settings in the block editor.

0 commit comments

Comments
 (0)