GW Sharing Stimulus Controller
Purpose: Provides automated form submission functionality for GW (Group Warrant) sharing toggle switches in Activities plugin authorization management interfaces.
Core Responsibilities:
- Automatic Form Submission - Immediate form submission on toggle change
- Toggle Switch Integration - Seamless switch state management
- User Experience Optimization - Instant feedback for setting changes
- Authorization Configuration - GW sharing preference management
Architecture: This Stimulus controller extends the base Controller to provide automatic form submission when GW sharing toggle switches are changed, ensuring immediate persistence of user preferences without manual form submission.
Controller Configuration:
<div data-controller="gw_sharing">
<form data-gw_sharing-target="form" method="post" action="/activities/update-gw-sharing">
<input type="checkbox" data-action="change->gw_sharing#submit">
<!-- Other form fields -->
</form>
</div>
GW Sharing Context: GW (Group Warrant) sharing allows authorization configurations to be shared across organizational groups, affecting authorization workflows and approval processes within the Activities plugin.
User Experience Features:
- Instant Persistence: Changes saved immediately on toggle
- No Manual Submission: Eliminates need for separate save button
- Seamless Integration: Works with existing form infrastructure
- Consistent Behavior: Standardized across GW sharing interfaces
Toggle Switch Integration:
- Responds to switch state changes immediately
- Preserves existing form data during submission
- Maintains form validation and security measures
- Supports multiple toggle switches per form
Security Considerations:
- Maintains CSRF token protection through form submission
- Preserves server-side validation workflows
- Respects authorization and permission checking
- Uses standard HTTP methods for security compliance
Performance Features:
- Minimal JavaScript footprint for efficiency
- Direct form submission without AJAX overhead
- Browser-native form handling for reliability
- No additional network requests beyond form submission
Error Handling:
- Browser-native form validation integration
- Server-side error handling through standard form responses
- Graceful degradation if JavaScript disabled
- Form state preservation on submission errors
Integration Points:
- Activities Authorization Forms - GW sharing configuration
- Toggle Switch Components - Automatic submission trigger
- Authorization Workflows - Group warrant sharing settings
- Form Infrastructure - Standard form submission handling
Usage Examples:
<!-- GW sharing toggle with automatic submission -->
<div data-controller="gw_sharing">
<form data-gw_sharing-target="form" method="post">
<label class="form-check">
<input type="checkbox" class="form-check-input"
data-action="change->gw_sharing#submit"
name="gw_sharing_enabled">
Enable GW Sharing
</label>
</form>
</div>
Accessibility Features:
- Preserves keyboard navigation functionality
- Maintains screen reader compatibility
- Supports assistive technology integration
- Follows WCAG guidelines for form interactions
Browser Compatibility:
- Uses standard DOM APIs for broad compatibility
- No modern JavaScript features requiring polyfills
- Graceful degradation in older browsers
- Progressive enhancement approach
Troubleshooting:
- Verify form target configuration is correct
- Check form action URL and method settings
- Validate toggle switch event binding
- Monitor network requests for form submission