Version history
===============

21.0 (2023-11-30):

- changed: updated for Elgg 5.1

20.0.3 (2023-10-18):

- fixed: make sure multiselect is also loaded if requested via ajax

20.0.2 (2023-08-17):

- fixed: ckeditor issue with detecting correct width in flex layout

20.0.1 (2023-07-26):

- fixed: buttons have a discernible text

20.0 (2023-06-02):

- changed: conflict with Elgg < 5.0
- changed: updated for Elgg 5

19.0 (2022-08-24):

- changed: updated for Elgg 4.3

18.0.1 (2022-07-12):

- several small chores/fixes

18.0 (2022-06-01):

- changed: updated for Elgg 4.2
- fixed: allow cropper on group profile icon

17.0.1 (2022-03-11):

- several small chores/fixes

17.0 (2022-02-16):

- changed: increased minimal Elgg version to 4.1
- changed: profile field types are now registered via a hook
- fixed: correctly check for route name

16.0.1 (2021-10-27):

- several small chores/fixes

16.0 (2021-09-27):

- added: avatar upload on register now uses icon cropper
- changed: register action middleware added using a hook
- changed: updated for Elgg 4

15.0.2 (2020-02-18):

- fixed: register action validation middleware
- fixed: no longer need to register fields as tag fields in search

15.0.1 (2019-11-26):

- fixed: correctly download backup of profile fields
- fixed: correctly show extra fields on admin add form

15.0 (2019-08-22):

- changed: minimal Elgg requirement increased to Elgg 3.1
- changed: moved hook and event registrations to elgg-plugin
- fixed: no longer use the linkedin widget in field output
- removed: no longer provide the input/output tel views

14.0.2 (2019-04-17):

- several small chores/fixes

14.0.1 (2019-03-27):

- several small chores/fixes

14.0 (2019-03-27):

- added: class on simple access control field
- added: feature to hide a profile field from user/group profile
- added: german translation
- added: profile fields can now show as tabs
- changed: group is passed through categorized profile fields function
- changed: moved actions registration to elgg-plugin
- changed: moved plugin initialisation to bootstrap class
- changed: register action validation now uses middleware
- changed: replaced custom delete actions with generic entity/delete
- changed: replaced object functions getTitle with getDisplayName
- changed: site join river item now is created on user create event
- changed: split profile rendering into subviews
- changed: updated useradd form with core defaults
- changed: updates for Elgg 3.0
- fixed: allow multiselect fields to be empty/removed
- fixed: allow unsetting a multiselect value
- fixed: also export field placeholder data
- fixed: do not hide select so required checks show indicator with field
- fixed: multiselect can be correctly used multiple times on the same page
- fixed: provide group type/subtype for icon input
- removed: changing account is now a core feature
- removed: download action of inactive users
- removed: export of user/group profile data
- removed: live validation of register form
- removed: login history statistics is provided by system_log
- removed: no longer show profile fields in an accordeon
- removed: register widget moved to widget_pack plugin
- removed: support setting a limit on group name/description
- removed: unused event for pm_file profile field uploads
- Revert "fixed: do not hide select so required checks show indicator with field"

13.0.1 (2017-11-01):

- fixed: multiselect not looking good if ajax loaded

13.0 (2017-10-04):

- changed: updated to use composer version of jquery multiselect v2.0.1
- fixed: incorrect registration of translations in multilingual sites
- fixed: tag input on register form needs to be converted to array
- removed: profile_manager_add_profile_icon is no longer available

12.0 (2017-02-27):

- added: avatar can be counted towards profile completeness
- added: input/tel is now an available input type
- changed: updated minimal Elgg requirements to 2.3
- fixed: load correct field config adding group profile fields
- fixed: use newer api functions to check for uploaded profile icons

11.0 (2016-09-01):

- added: profile types now have a plural label available to configure
- added: you can now configure a different label for profile field input
- changed: increased the elgg requirement to v2.1
- fixed: hide profile type default on profile edit if hidden on register
- fixed: issue with ckeditor modal dialogs opening in colorbox popups
- fixed: remove blacklisted chars from autogenerated usernames

10.2 (2016-06-16):

- changed: input/multiselect now reuses input/select view
- changed: moved admin menu items registration to menu hook
- changed: multiselect will show 'x selected' when more than 1 selected
- changed: only require lightbox js and css in the views that need it
- fixed: missing translations for some action error messages
- fixed: multiselect selected text is now translatable
- removed: non-editable fields will no longer show on profile edit form
- removed: unused function profile_manager_generate_username_from_email
- removed: unused function profile_manager_get_max_order

10.1 (2016-05-26):

- added: multiselect js is now available as an AMD
- added: multiselect supports required attribute
- changed: multiselect dropdown now has a font awesome icon triangle
- changed: updated the multiselect library to v1.14
- fixed: check ignore access when checking for admin only fields
- fixed: added pointer cursor to multiselect dropdown
- fixed: allow multiselect to be inited multiple times via AJAX

10.0 (2016-04-13):

- added: spanish translation
- changed: username_change js check now is the same as on register form
- fixed: correctly set/unset disabled state when changing field type
- fixed: listen to correct events to create site join river items

10.0-beta (2015-12-18):

- added: support for Elgg 2.0
- changed: moved event functions to classes
- changed: moved hooks to class functions
- changed: namespaced the profile manager object classes
- changed: refactored profile field toggle options
- changed: renamed js and css views
- changed: replaced usage of custom icon with fontawesome alternative
- changed: tooltip hints now use an output view and AMD load its js
- changed: a lot of code styling and refactoring
- removed: dropped the user summary feature
- removed: no longer support calendar input type

9.2 (2015-12-15):

- changed: label of a field now gets added to all translations
- changed: refactored register form fields code for better readability
- changed: the config 'profile' now contains an ordered list of fields
- changed: updated dutch language
- changed: use new Elgg 1.11 function to check if translation key exists
- fixed: check for arrays passed as values during validation
- fixed: correctly set profile type on registration form if only admins can change it
- fixed: prevent flickering of categories shown based on profile type
- fixed: replaced deprecated jquery live function with on
- fixed: username generation should check for hidden users
- fixed: added missing actions tokens in profile field action links

9.1 (2015-07-08):

- added: the option to generate username based on email during registration
- added: composer support
- added: added social input fields for Twitter, Facebook and LinkedIn
- fixed: avoid use of deprecated Elgg add_to_river() function
- fixed: correctly show categories when admin changed profile type
- fixed: profile edit js function called before lib is loaded
- fixed: set correct class for categories when using profile types
- fixed: group profile edit isn't sticky
- fixed: php type hint warning
- changed: improved layout of profile field actions
- changed: some admin css cleanup
- removed: removed the restoreForm css

9.0.1 (2015-01-27):

- fixed: js error on register form in walled garden

9.0 (2015-01-26):

- fixed: compatibility with Elgg 1.10.x

8.0.1 (2015-01-26):

- changed: moved part of the javascript to AMD loaded module
- fixed: do not forward on avatar fail, but correctly return to register
- fixed: replace deprecated function usage of getEntitiesFromRelationship

8.0 (2014-11-17):

- added: #54 placeholder option on field definition
- added: extra class added to simple access control for extra css/js control
- added: last action as exportable value
- added: config setting to make avatar upload on register available but not mandatory
- changed: profile description field is no longer special. It now acts as a normal field
- changed: backup is saved in pretty JSON (if supported)
- changed: updated multiselect library
- changed: replaced some language strings with core alternatives
- changed: moved the "edit name" input forom the edit profile form to a seperate view
- changed: csv export improvements
- changed: moved various views to best practice location
- changed: various changes for Elgg 1.9
- changed: code is now conform Elgg coding standards
- changed: improved location of terms checkbox on register form and moved to its own view #46
- fixed: #51 admin-only and not editable tag fields saved as text
- fixed: #32 input validation now trims the data before validation
- fixed: #48 group profile field edit form updated with similar features as user profile field
- fixed: custom group field titles not added to the translations
- fixed: correct usage of elgg_view_icon
- fixed: store access level for custom profile type metadata field
- removed: no longer support deprecated datepicker fields (use date fields now)

7.7 (2014-02-20):

- added: plugin setting to limit number of times a group name and description can be changed
- added: option to export user group membership when exporting users
- added: location field added to the group profile field types
- changed: CSV export delimiters changed to semi colon #11
- fixed: use ElggBatch for export to mitigate OOM errors #17
- fixed: live validation not working in walled garden #37
- fixed: profile type not correctly selected on ajax loaded register form
- fixed: ajax loaded register form breaks when using multiselect in register form #36
- fixed: ajax loaded register form does not support live validation
- fixed: multiselect not validated on submit of register form #35

7.6.1 (2013-08-28):

- fixed: about me field uses custom field name as label
- fixed: auto suggested usernames no longer contains invalid characters
- fixed: input multiselect correctly encodes options
- fixed: incorrect listing of categories on admin configuration page if more than 10 are created

7.6 (2013-05-06):

- added: admin option to show hints on default account fields on register form
- fixed: live validation of account details not working in walled garden mode
- fixed: categorized profile fields can not be reset to general category
- fixed: only show categorie titles/tabs if there are visible fields on profile edit form
- fixed: some php notices

7.5.2 (2013-04-05):

- changed: better use of system cache for profile entities
- changed: use core metadata caching instead of own version
- changed: autoprepend http on url profile fields if missing
- changed: query cache is disabled during profile export to prevent OOM issues
- fixed: sticky register form values not cleared after registration
- fixed: show correct tabs when switching profile types

7.5.1 (2013-03-11):

- added: backup of completeness count setting
- changed: removed metadata caching in favor of elgg metadata caching

7.5 (2013-01-30):

- added: live form validation (username, email, password) on registration form
- added: a few new exportable profile fields
- changed: now using config('iconsizes') for thumbnail generation
- fixed: some inline css en js (moved to global)
- fixed: group profile fields export not working
- fixed: some WCAG related issues 
- fixed: general terms acceptance is not enforced in registration action 

7.4.1 (2012-10-30):

- fixed: trigger some object saves to prevent memcache issues
- fixed: selected value issue with multiselect
- fixed: multiselect values not saved correctly when using IE7
- fixed: issue with profile types description on registration form (thanks limdauto)

7.4 (2012-07-30):

- added: support for date fields (with core date input/output views)
- added: listing of inactive users (with last login before date x)
- added: download list of inactive user to csv
- added: option to hide the 'default' profile type option on registration (default visible)
- added: optional river event on site join (default enabled)
- added: remember me code part of user system category
- added: registration form widget (experimental)
- added: user login history page 
- changed: multiselect now uses different/better js library
- changed: moved some code around so plugin settings are only check when needed (reduces query amount)
- fixed: field type names now use core language keys
- fixed: output as tags now only converts to array if needed
- fixed: some incompatibility issues with Subsite Manager
- fixed: some php notices
- fixed: correct check on lowercase metadataname existence
- fixed: memcache not updated on toggleOption action
- fixed: multiselect can not handle array passed in value
- fixed: some small issues related to user summary control

7.3 (2012-03-15):

- added: user summary control
- added: rating field type
- added: option to allow users to change their username
- changed: info icons replaced with elgg default info icon
- changed: version requirement to 1.8.1 to support info icon

7.2 (2012-03-02):

- added: hash detection on edit profile page to select correct tab
- added: tabs on admin pages for easier navigation
- fixed: multiselect drop down not showing on non visible tab content on edit profile
- fixed: group edit form not showing previously saved tag field values
- fixed: some styling on the registration form
- fixed: profile type visibility not listening to plugin setting
- changed: classes are compatible with a possible future performance gain available in Elgg 1.8 (not yet part of core at the moment)
- changed: some styling on the add field forms

7.1 (2012-02-20):

- changed: cleanup deprecated Profile Manager code (Members Search and NoIndex)
- changed: more code is now using the latest Elgg 1.8 functions
- changed: moved version history to CHANGES.txt
- fixed: default category should not be shown if there is only the default category on edit profile
- fixed: incorrect check for unique metadatanames
- fixed: configuration backup did not export blank_available option
- fixed: multiselect not working correctly (updated to latest version)

7.0 (2011-12-1):

- added: plugin setting for positioning of "About me" (above or below profile fields; default below)
- changed: updated dutch translation
- fixed: support for new page_handler requirements Elgg 1.8.1 

7.0 beta (2011-09-26):

- added: support for 1.8 (multiple changes)
- added: multilingual support for field hints ("profile:hint:<fieldname>")
- changed: admin profile fields add forms now open in a lightbox
- changed: layout of admin pages
- removed: !! IMPORTANT !! temporarily disabled the use of the Profile Manager member search
- removed: !! IMPORTANT !! temporarily removed the 'file' field type 
- removed: admin profile type stats page 
- removed: widget index_login (obsolete) 
- removed: full profile link and page
- removed: river cleanup function for avatar crop (obsolete)
- removed: river cleanup function for profile updates (obsolete)
- removed: login by email pam handler (and core action) (obsolete)
- removed: request new password by email (hope to see it end up in core trac #3843)
- removed: register by email only functionality (probably temporarily)
- removed: marking a user (at the admin user add form) as validated (obsolete)
	
6.2 (2011-08-11):

- changed: major performance gains
	
6.1.2 (2011-07-15):

- changed: profile_manager_get_categorized_fields() always fire hook ('categorized_profile_fields', 'profile_manager') to get extra fields
- changed: profile_manager_get_categorized_group_fields() always fire hook ('categorized_group_fields', 'profile_manager') to get extra fields
- changed: action/new compares existing based on CONFIG->profile instead of dbfields (saves a query)
- changed: handling of register event
- fixed: some small coding errors
- fixed: edit profile form to be more site aware

6.1.1:

- fixed: several depricated notices for elgg_extend_view in start.php

6.1 (2011-05-20):

- added: admin option to select the default profile type for register page
- added: admin option to show profile type on a users profile page (default on) 
- changed: more efficient loading of profile field labels in translation
- changed: styling of profile type selection on registration page
- fixed: no spacing between left and right column on register form
- fixed: only show tabcontainer on register form if tabs are configured
- removed: compatibility with accordion on profile for Elgg version < 1.7
	
6.0 (2011-05-06):

- added: js validation of mandatory registration fields (account + custom profile fields)
- added: option to login (and register) with email address, fallback to username
- added: request password by email address (if login by email is set)
- added: support for index_login widget of Widget Manager
- added: river cleanup on profile icon update (only one river item)
- added: river cleanup on profile update (only one river item per 12 hours)
- added: terms url (if configured a terms agree checkbox appears on the registration form)
- added: free text to be displayed on the registration form
- added: support for tabbed categories on register form (determined by edit profile display type == tabbed)
- changed: layout of registration page 
- changed: moved functions, events, hooks and run_once code to lib files
- changed: improved stickyness of registration form
- fixed: register form fields now depend on selected profile type
	
5.9.3 (2011-05-03):

- changed: update datepicker js to 4.0.5
- changed: pm_datepicker no longer stores as timestamp but in UTC/GMT/Zulu time to circumvent timezone issue's
- changed: member search limited to current site only (when using multisite setups)
- fixed: php warning invalid arguments foreach in input/multiselect
- fixed: multiselect can now also handle options_values
	
5.9.2 (2011-04-14):

- changed: layout of admin settings
- fixed: major bug in registration form fields not being created with default access (database fix included)
- fixed: prevent sql injection by sanitising inputs in member search
- fixed: invisible group access on group profile edit is not showing the correct values
	
5.9.1 (2011-03-01):

- changed: moved admin profile fields to categorized_profile_fields hook
- fixed: categorized_profile_fields hook only triggered when viewing profile
- fixed: getTitle() error on categories in profile details
	
5.9 (2011-02-15):

- added: hooks to extend categorized user/group profile items
- fixed: group "show as tags" fields and multiselect are now searchable
- fixed (in Elgg Core): Elgg 1.7.7 now enables correct use of multiselect fields for groups (Elgg Trac Ticket #2609)
- removed: output/url view (no longer needed) (Elgg Trac Ticket #2840) 
	
5.8.1 (2010-12-22):

- fixed: error when editing admin profile and the system category is enabled
	
5.8 (2010-12-10):

- added: optional system category (admin only) on userdetails and full profile
- added: files field type
- added: hover over pm_datepickerfield shows timestamp
	
5.7 (2010-11-17):

- added: admin created users are now default validated, if not validated they will be disabled
- added: german language file (thanks to http://community.elgg.org/pg/profile/Tombone)
- fixed: inconsistent translation keys for profile types
- fixed: every page refresh profile plugin settings are updated
- fixed: admin created users are not shown in the unvalidated users list (Elgg 1.7.4)
	
5.6 (2010-10-25):

- added: option on profile field configuration to add a blank option to pulldowns or radio field types
- added: runonce to reset owner ship of Profile Manager configuration to prevent loss of configuration when removing admins
- changed: moved some root plugin files to pages folder
- changed: most of the code rewritten to use elgg_get / elgg_list functions
- changed: renamed label for type of profile field to "Field Type"
- changed: import from custom now makes fields default editable
- changed: output of export csv in UTF-8
- changed: removed all action_gatekeeper functions from actions (handled by action handler since 1.7)
- changed: admin only member search query is by default hidden (css) to prevent confusion
- changed: no EMPTY option on radio and pulldown field types
- changed: positioning of registration fields now runs by register/extend view
- removed: action profile/edit; no need for to replace this one now as it can handle array's now
- fixed: newly created profile fields have the site as owner instead of the current user or 0; this prevents loosing configuration when admin is deleted
- fixed: hidden groups option in elgg 1.7 not available when profile manager is active 
- fixed: add user as admin wraps users under left side bar
- fixed: <? instead of <?php generating token errors on profile and group edit form
- fixed: about me not displaying in Elgg 1.7
- fixed: sorting options not in translation file
- fixed: creation of tags fields (or show as tags) on register are not recognized as such
- fixed: issues when importing custom and default fields
- fixed: text of profile field disappearing when dragging in configuration
- fixed: non available field type options are not disabled when editing a field
- fixed: can not clear label or hint field
- fixed: strange characters allowed in profile type and category name field
- fixed: can't edit profile types and categories with single quotes in name or label
- fixed: data on registration form not always retained when error in other parts of registration form
- fixed: issue with date -1 day
- fixed: conflict with other datepickers
- fixed: upload of profile icon now works

5.5:

- added: ability to preload members search form with (POST or GET) input variables (not available for date fields)
- added: own url output view, because elgg default doesn't auto add http://
- added: target _blank to all url output views on profile details and full_profile
- added: ajax/loader to members search
- changed: on the search page multiselect fields and all fields marked with show as tags are searchable (Elgg 1.7)
- changed: initialise_attributes of ProfileManagerCustomField & ProfileManagerCustomProfileField to make it more efficient
- changed: profile type now saved with correct access level (Elgg 1.7 default was PRIVATE)
- changed: search is not an action anymore
- fixed: profile page not displaying after edit (caused by datepicker)
- fixed: reset not working in Elgg 1.7 (due to use of delete_entities function)
- fixed: restore not working in Elgg 1.7 (due to use of delete_entities function)
- fixed: accordion not working in Elgg 1.7 (include of accordion js only when version < 1.7)  
- fixed: multi select not saving in Elgg 1.7 (related to trac #2016)
- fixed: multi select not created correctly on register and admin user form
	
5.4:

- added: hooks to extend membersearch sql string
- fixed: custom_profile_type visible on profile details for admins when nothing else has values
- fixed: unable to remove categorie -> profile type relations  
- fixed: tabs not working correctly when changing profile type on profile edit
	
5.3:

- added: extra classes and a * to register form mandatory fields
- fixed: updating of profile type and category not possible
- fixed: applied nasty fix to hide configuration from search results
- fixed: members search result profile icons not showing pulldown
- fixed: members search not filtering on profile type in Elgg > 1.6.x
- fixed: members search fields not listening to admin_only 
	
5.2:

- added: hint text on profile fields to show on edit/register forms
- added: empty value to pulldown and radio options to empty a field (or keep blank)
- added: new admin add user form with the option to notify user and directly add extra profile information
- changed: plugin now works with classes
- fixed: multiselect not working in safari/chrome
- fixed: switching profile field (with edit) doesn't empty form. Problem when last field doesn't contain a label	
- fixed: description not keeping data on edit group form
- fixed: layout bug in css on search form
- fixed: having no custom profile fields except admin only makes the admin only visible on the profile ($CONFIG->profile need to not contain these fields)
- fixed: profile fields used filled on the register form (and admin form) now listens to default access level
- (maybe) fixed: on some browsers group fields configuration not showing (not reproducable)
	
5.1:

- added: members search form based on profile fields (admin configurable)
- added: simple/advanced search toggle options on user profile field configuration
- fixed: token mismatch on group edit when using 1.6.x or higher (not tested)
- fixed: after bounce on register it showed bounced values
- fixed: datepicker fields sometimes a day off, fix provided by westor (http://community.elgg.org/pg/profile/westor)
- fixed: groupprofile view replaced to show correct field labels

5.0.1 (2009-12-28):

- fixed: profile type description change on selection change not working on register
- fixed: bouncing on register form not working for profile type and multiselect

5.0 (2009-12-23):

- added: backup / restore of custom profile fields configuration (no categories and profile types)
- added: basic export of profile metadata to a csv
- added: admin option to show a tabbed edit profile view
- added: option to add profile type to members tabbed view
- added: pulldown, radio and multiselect field types for groups
- added: admin only option to custom group profile fields
- added: simple admin stats to show different profile type count
- added: profile fields now editable
- added: profile type selection on register
- changed: renamed plugin to Profile Manager
- changed: secured all actions with tokens and action gatekeepers (for Elgg 1.7)
- fixed: forgotten translation of unavailable options
- fixed: admin only not saved when adding new fields

4.1 BETA:

- added: experimental support to extend field types
- added: description field on profile type
- removed: pulldown, radio and multiselect field types for groups (because they don't work at the moment)
- fixed: some missing translations
- fixed: bug with longtext showing twice on userdetails
- fixed: bug when profile types where deleted but still attached to a profile (getSubtype on non-object)
- fixed: css issue with sortable categories

4.0 BETA:

- added: profile types 
- added: categories
- added: admin only profile fields (makes Admin Profile Fields plugin obsolete http://community.elgg.org/pg/plugins/FxNion/read/304257/admin-profile-fields)
- added: full profile view (link can be disabled in admin settings)
- added: admin tooltip to clarify functionality
- changed: display of profile fields (plain categorized or with accordion)
- changed: a lot of code
- fixed: display of customfields icon in IE on admin pages 
	
3.0:

- added: custom group fields
- added: separate admin menu box for replacing profile/group fields
- added: admin option to completely hide the non-editable profile fields from the edit profile form
- added: warning in admin settings if plugin is ordered incorrectly
- added: more reserved custom field names
- changed: split admin profile fields page into views
- changed: edit profile details => added security tokens
- changed: adding custom field with 'description' name now is possible
- changed: display of custom fields
- changed: a lot of code
- fixed: noneditable fields fix for 1.6

2.3:

- added: admin option for simplified access control
- added: admin option for enforcing a profile icon on register form
- added: regexp check on name field of a new profile field (a-zA-Z0-9_)
- fixed: added maximum height to the multiple-select pulldown (control in css)

2.2:

- added: datepicker can be internationalised
- added: multiselect pulldown field based on http://code.google.com/p/dropdown-check-list/
- added: dutch translation
- changed: datepicker uses strftime instead of date php function in output so it listen to the server locale	

2.1:

- added: input/securitytoken view on profile edit form to comply to 1.6.x standards
- fixed: show as tags also on edit profile and register
- fixed: datepicker handling existing (non unix timestamp) data
- fixed: loading of css of datepicker not working in IE
- fixed: reference to coldtrick.com in datepicker 

2.0:

- added: option to output field (on profile) always as tags
- added: datepicker (saves selected date as unix timestamp), can replace default elgg calendar view
- added: option for disallowing editing of profile field (eg only ask on register or data maintained in external system)

1.0:

- initial release
