GWSharingController

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

Constructor

new GWSharingController()

See
  • ActivitiesController GW sharing configuration endpoints
  • Authorization Authorization entity with GW sharing settings
  • ToggleSwitch UI component integration patterns

Methods

submit()

Submit Form Automatically

Triggers immediate form submission when GW sharing toggle switches are changed, providing instant persistence of user preferences.

Automatic Submission:

  • Called by toggle switch change events
  • Submits form using standard browser mechanisms
  • Preserves all form data and validation
  • Maintains CSRF protection and security measures

User Experience: Eliminates need for manual save actions by automatically persisting toggle changes when users interact with switches, providing immediate feedback and seamless preference management.

Form Integration: Uses browser-native form submission to maintain compatibility with existing server-side validation, error handling, and security measures without additional AJAX complexity.