Un-break session for users behind load-balanced proxies, e.g. AOL

sess_match_ip: "Whether to match the user's IP address when reading
the session data. Note that some ISPs dynamically changes the IP,
so if you want a non-expiring session you will likely set this to FALSE."

which was the default in CodeIgniter.

<http://codeigniter.com/user_guide/libraries/sessions.html>

The internet says that AOL is known to be affected.
With sess_match_ip = TRUE, the admin interface
could be completely unusable on affected networks.

Forcing all users to use a proxy is common on slower links.
I noticed it on our BT dialup.  I would not be at all surprised
to see it on cell-phone or satellite connections.

Signed-off-by: Alan Jenkins <alan.christopher.jenkins@gmail.com>
modal login: disabling allow_register should not hide password reset

This is now consistent with the main users/login.php
modal login: fix "forgot password" link
Separate module config/events.php files making it easier to manage event callbacks.
Added the ability to call functions (helper files) without having to call from a class.

Signed-off-by: Steve Wicks <swicks@devicesoftware.com>
Fix viewport defaults for mobile responsive layout to work.
Line 270: Retrieve full path of folder in $full_folder
Line 272: chmod() $folder instead of the full path $full_folder

Changed line 272 to chmod() $full_folder as it was giving errors.
Assets library outputs duplicates
modulebuilder: fix clicking on legend to toggle fieldset contents
modulebuilder: fix switching from "existing table" to "create new"

Remember to re-show #field_numbers
(the number of "additional table fields").
modulebuilder: fix form-saving to preserve radio buttons

When saving form states, radio buttons need special handling
(like checkboxes already have, but a bit different).

This preserves the "Input Limitations" radio buttons
(Validation Rules -> "toggle more rules"), which would otherwise
be forgotten.

Also avoids the need to set the "Create New Table" etc. radio button
from PHP.  And removes a bug where "Create New Table" would be unchecked
when clicking on the "0 Additional table fields" link.

(Disclaimer: my code works fine here, but it's not completely general.
 It won't restore a group of radio buttons to an all-unchecked state).
modulebuilder: associate dangling labels with groups of checkboxes

Fix two groups of controls without a labels properly associated.
(Discovered by inspection, aided by WAVE toolbar from WebAIM).

Replacing the label with <legend> (and the enclosing div with <fieldset>)
would be best for screen-readers (nested fieldsets are perfectly legal).
However bootstrap's CSS doesn't support that usage.

Fall back to WAI-ARIA.  Tested with Orca Screen Reader.  Both e.g.
"Removable?" and "Yes" are read, but only after disabling CSS -
reported as Orca bug <https://bugzilla.gnome.org/show_bug.cgi?id=680249>.

The behaviour is not well-specified.  The only bright side is
that there's been at least two large test suites which rely on the same
behaviour as we do here.
modulebuilder: fix keyboard accessibility

1) "Toggle advanced options" is faded, and fades in when hovered.
   It should also fade in when focused using the keyboard.

2) "toggle more rules" was a clickable span.  It would probably look
   ugly if underlined, but that's no excuse for not marking it up
   properly as a link (which can then be focused using the keyboard).

3) Validation radio/checkbox labels (and controls) were also faded.
   The labels need to fade in when the *corresponding control*
   is focused.
modulebuilder: cleanup /create/ urls

Remove vestigal "/index/" segment.
Remove vestigal attempt to read "field_total" from POST data
(it's not there anyway).

What's left is nothing more than a normal CodeIgniter parameter.
modulebuilder: cleanup delete uri handling

Use a normal CodeIgniter parameter.

Spaces and dashes in $module_name were already replaced
(when the link is generated, in the index view).

Don't use empty() to test for empty strings;
it returns TRUE for the string '0'.
modulebuilder: associate final dangling label with group of radiobuttons

I missed this one the first time round.

(We're still using role="group"; we can't use role="radiogroup" because
it's not compatible with HTML radio button labels.  Despite being marked
as a SHOULD for all groups of radio buttons...).
adding insert_batch
Turned profiler off for Permission Matrix update method
Properly turned off profiler in permissions matrix update method
Added label && tooltip to be passed to form inputs in the data array
Merge pull request #520 from sourcejedi/sess_match_ip_FALSE

Un-break session for users behind load-balanced proxies, e.g. AOL