first commit

This commit is contained in:
salam committed 2026-10-06 19:40:28 +02:00
commit e81864e683
2984 files changed
+267797

No files matched your search

@@ -0,0 +1,11 @@
# Apache < 2.3
<IfModule !mod_authz_core.c>
Order allow,deny
Deny from all
Satisfy All
</IfModule>
# Apache >= 2.3
<IfModule mod_authz_core.c>
Require all denied
</IfModule>
@@ -0,0 +1,695 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<xliff version="1.0">
<file source-language="en" datatype="plaintext" original="messages" date="2013-04-13T15:49:07Z" product-name="femanager">
<header/>
<body>
<trans-unit id="tx_femanager_domain_model_user">
<source>User</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.username">
<source>Username</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.password">
<source>Password</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.password_repeat">
<source>Repeat Password</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.usergroup">
<source>Usergroup</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.name">
<source>Full Name</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.firstName">
<source>Firstname</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.middleName">
<source>Middlename</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.lastName">
<source>Lastname</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.dateOfBirth">
<source>Birthdate</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.dateOfBirth.hint">
<source>Please type your birthdate as MM/DD/YYYY</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.dateOfBirth.placeholder">
<source>MM/DD/YYYY</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.dateFormat">
<source>m/d/Y</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.gender">
<source>Gender</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.gender.item0">
<source>Male</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.gender.item1">
<source>Female</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.gender.item2">
<source>Diverse</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.address">
<source>Address</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.telephone">
<source>Telephone</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.fax">
<source>Fax</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.email">
<source>Email</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.title">
<source>Title</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.zip">
<source>ZIP</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.city">
<source>City</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.country">
<source>Country</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.state">
<source>State</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.www">
<source>Website</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.company">
<source>Company</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.image">
<source>Image</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.captcha">
<source>Captcha</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.terms">
<source>I accept the terms and conditions</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.termslinktext">
<source>Click here for terms and conditions</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.lastlogin">
<source>Last login</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.inactivesince">
<source>Inactive since</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.crdate">
<source>Creation Time</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log">
<source>User Log</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.title">
<source>Title</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.crdate">
<source>Time</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.state">
<source>State</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.state.100">
<source>Registration</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.state.101">
<source>New Registration</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.state.102">
<source>Registration confirmed by user</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.state.103">
<source>Registration confirmed by admin</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.state.104">
<source>Registration refused by user</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.state.105">
<source>Registration refused by admin</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.state.106">
<source>Profile creation request</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.state.200">
<source>Update</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.state.201">
<source>Profile updated</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.state.202">
<source>Profile update confirmed by admin</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.state.203">
<source>Profile update refused by admin</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.state.204">
<source>Profile update request</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.state.205">
<source>Profile update security failure</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.state.206">
<source>Image deleted</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.state.207">
<source>Attempted to spoof profile</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.state.300">
<source>Delete</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.state.301">
<source>Profile deleted</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.state.400">
<source>Invitation</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.state.401">
<source>Profile created and user invited</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.state.402">
<source>Profile deleted by user</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.state.403">
<source>Wrong hash</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.state.404">
<source>You tried to open a restricted page</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.state.405">
<source>Password changed and profile activated</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.user">
<source>User</source>
</trans-unit>
<trans-unit id="error_no_typoscript">
<source>No TypoScript found. Did you already include the static Template?</source>
</trans-unit>
<trans-unit id="error_no_typoscript_be">
<source>No TypoScript found. Did you already setup module.tx_femanager.settings.configPID in your PageTS?</source>
</trans-unit>
<trans-unit id="error_no_storagepid">
<source>No Storage PID was set. Please set the storage PID via TypoScript or in the plugin settings.</source>
</trans-unit>
<trans-unit id="error_not_authorized">
<source>You are not authorized for this action</source>
</trans-unit>
<trans-unit id="validationError">
<source>Error</source>
</trans-unit>
<trans-unit id="validationErrorRequiredModel">
<source>Username and password must be filled</source>
</trans-unit>
<trans-unit id="validationErrorWrongDateFormat">
<source>Given date format is wrong</source>
</trans-unit>
<trans-unit id="validationErrorRequired">
<source>Field %s is required</source>
</trans-unit>
<trans-unit id="validationErrorEmail">
<source>Field %s is not a valid email address</source>
</trans-unit>
<trans-unit id="validationErrorMin">
<source>Please add more characters to field %s</source>
</trans-unit>
<trans-unit id="validationErrorMax">
<source>Please add less characters to field %s</source>
</trans-unit>
<trans-unit id="validationErrorInt">
<source>Only numbers are allowed in field %s</source>
</trans-unit>
<trans-unit id="validationErrorLetters">
<source>Only letters are allowed in field %s</source>
</trans-unit>
<trans-unit id="validationErrorUniquePage">
<source>Value of field %s is already in use</source>
</trans-unit>
<trans-unit id="validationErrorUniqueDb">
<source>Value of field %s is already in use</source>
</trans-unit>
<trans-unit id="validationErrorMustInclude">
<source>Try another value for field %s</source>
</trans-unit>
<trans-unit id="validationErrorMustNotInclude">
<source>Not allowed signs in field %s</source>
</trans-unit>
<trans-unit id="validationErrorInList">
<source>This value is not allowed in field %s</source>
</trans-unit>
<trans-unit id="validationErrorSameAs">
<source>Please check your value</source>
</trans-unit>
<trans-unit id="validationErrorPasswordRepeat">
<source>Both passwords do not fit</source>
</trans-unit>
<trans-unit id="validationErrorDate">
<source>Date has the wrong format</source>
</trans-unit>
<trans-unit id="validationErrorCaptcha">
<source>Wrong Captcha code</source>
</trans-unit>
<trans-unit id="validationErrorGeneral">
<source>Field could not be validated</source>
</trans-unit>
<trans-unit id="emailCreateAdminConfirmationSubject">
<source>Please confirm a new registration</source>
</trans-unit>
<trans-unit id="emailCreateAdminConfirmationSalutation">
<source>Dear Admin,</source>
</trans-unit>
<trans-unit id="emailCreateAdminConfirmationUserProperties">
<source>User properties:</source>
</trans-unit>
<trans-unit id="emailCreateAdminConfirmationText1">
<source>Please confirm registration of %s by clicking the following link:</source>
</trans-unit>
<trans-unit id="emailCreateAdminConfirmationLinkConfirm">
<source>Confirm registration</source>
</trans-unit>
<trans-unit id="emailCreateAdminConfirmationText2">
<source>If you want to delete the registration, click this link:</source>
</trans-unit>
<trans-unit id="emailCreateAdminConfirmationLinkConfirmRefused">
<source>Delete profile</source>
</trans-unit>
<trans-unit id="emailCreateAdminConfirmationText3">
<source>If you want to delete the registration, without sending an email to the user, click this link:</source>
</trans-unit>
<trans-unit id="emailCreateAdminConfirmationLinkConfirmRefusedSilent">
<source>Silently delete profile</source>
</trans-unit>
<trans-unit id="emailCreateUserConfirmationSubject">
<source>Please confirm your profile creation request</source>
</trans-unit>
<trans-unit id="emailCreateUserConfirmationSalutation">
<source>Dear</source>
</trans-unit>
<trans-unit id="emailCreateUserConfirmationText1">
<source>Please confirm your profile registration on our server by clicking the following link:</source>
</trans-unit>
<trans-unit id="emailCreateUserConfirmationLinkConfirm">
<source>Confirm profile</source>
</trans-unit>
<trans-unit id="emailCreateUserConfirmationText2">
<source>If you don't want to be registered on our system, click this link:</source>
</trans-unit>
<trans-unit id="emailCreateUserConfirmationLinkConfirmRefused">
<source>Delete profile</source>
</trans-unit>
<trans-unit id="emailCreateUserConfirmationSignature">
<source>Your website team.</source>
</trans-unit>
<trans-unit id="emailCreateUserNotifySubject">
<source>Your registration was confirmed</source>
</trans-unit>
<trans-unit id="emailCreateUserNotifySalutation">
<source>Dear</source>
</trans-unit>
<trans-unit id="emailCreateUserNotifyText1">
<source>Your profile was confirmed and successfully created.</source>
</trans-unit>
<trans-unit id="emailCreateUserNotifySignature">
<source>Your website team.</source>
</trans-unit>
<trans-unit id="emailCreateUserNotifyRefusedSubject">
<source>Dear</source>
</trans-unit>
<trans-unit id="emailCreateUserNotifyRefusedSalutation">
<source>Dear</source>
</trans-unit>
<trans-unit id="emailCreateUserNotifyRefusedText1">
<source>Thank you for your profile request. We're sorry to tell you, that we had to refuse your request.</source>
</trans-unit>
<trans-unit id="emailCreateUserNotifyRefusedSignature">
<source>Your website team.</source>
</trans-unit>
<trans-unit id="emailCreateNotifySubject">
<source>New profile registration</source>
</trans-unit>
<trans-unit id="emailCreateNotifySalutation">
<source>Dear Admin,</source>
</trans-unit>
<trans-unit id="emailCreateNotifyText1">
<source>Profile creation - User %s</source>
</trans-unit>
<trans-unit id="emailCreateNotifyText2">
<source>Profile creation - User %s set a new password and profile was enabled</source>
</trans-unit>
<trans-unit id="emailCreateNotifyUserProperties">
<source>Profile properties:</source>
</trans-unit>
<trans-unit id="emailUpdateNotifySubject">
<source>Profile update</source>
</trans-unit>
<trans-unit id="emailUpdateNotifySalutation">
<source>Dear Admin,</source>
</trans-unit>
<trans-unit id="emailUpdateNotifyText1">
<source>Profile change by user %s</source>
</trans-unit>
<trans-unit id="emailUpdateNotifyField">
<source>Fieldname</source>
</trans-unit>
<trans-unit id="emailUpdateNotifyOld">
<source>Old value</source>
</trans-unit>
<trans-unit id="emailUpdateNotifyNew">
<source>New value</source>
</trans-unit>
<trans-unit id="emailUpdateRequestSubject">
<source>New profile change request</source>
</trans-unit>
<trans-unit id="emailUpdateRequestSalutation">
<source>Dear Admin,</source>
</trans-unit>
<trans-unit id="emailUpdateRequestText1">
<source>Profile change request from %s</source>
</trans-unit>
<trans-unit id="emailUpdateRequestText2">
<source>All changes:</source>
</trans-unit>
<trans-unit id="emailUpdateRequestField">
<source>Fieldname</source>
</trans-unit>
<trans-unit id="emailUpdateRequestOld">
<source>Old value</source>
</trans-unit>
<trans-unit id="emailUpdateRequestNew">
<source>New value</source>
</trans-unit>
<trans-unit id="emailUpdateRequestLinkConfirm">
<source>Confirm changes</source>
</trans-unit>
<trans-unit id="emailUpdateRequestLinkRefuse">
<source>Refuse changes and notify user</source>
</trans-unit>
<trans-unit id="emailUpdateRequestLinkSiltentRefuse">
<source>Refuse changes and do not notify user</source>
</trans-unit>
<trans-unit id="emailUpdateRequestRefusedSubject">
<source>Your update request was refused</source>
</trans-unit>
<trans-unit id="emailUpdateRequestRefusedSalutation">
<source>Dear</source>
</trans-unit>
<trans-unit id="emailUpdateRequestRefusedText1">
<source>Thank you for your update request. We're sorry to tell you, that we had to refuse your request.</source>
</trans-unit>
<trans-unit id="emailUpdateRequestRefusedText2">
<source>Please contact %s for further information.</source>
</trans-unit>
<trans-unit id="emailUpdateRequestRefusedSignature">
<source>Your website team.</source>
</trans-unit>
<trans-unit id="emailInvitationSubject">
<source>Confirm your profile</source>
</trans-unit>
<trans-unit id="emailInvitationSalutation">
<source>Dear</source>
</trans-unit>
<trans-unit id="emailInvitationText1">
<source>Your new profile was just created.</source>
</trans-unit>
<trans-unit id="emailInvitationText2">
<source>Please confirm your profile registration on our server by clicking the following link. After that, you can define a password.</source>
</trans-unit>
<trans-unit id="emailInvitationLinkConfirm">
<source>Confirm Profile</source>
</trans-unit>
<trans-unit id="emailInvitationText3">
<source>If you don't want to be registered on our system, click this link.</source>
</trans-unit>
<trans-unit id="emailInvitationLinkConfirmRefused">
<source>Delete Profile</source>
</trans-unit>
<trans-unit id="emailInvitationSignature">
<source>Your website team.</source>
</trans-unit>
<trans-unit id="emailInvitationAdminNotifiyStep1Subject">
<source>User was invited</source>
</trans-unit>
<trans-unit id="emailInvitationAdminNotifiySubject">
<source>User invitation - Profile finally created</source>
</trans-unit>
<trans-unit id="emailInvitationUserRefusedAdminNotifiyStep1Subject">
<source>User refused invitation</source>
</trans-unit>
<trans-unit id="emailInvitationUserRefusedAdminNotifiySalutation">
<source>Dear Admin,</source>
</trans-unit>
<trans-unit id="emailInvitationUserRefusedAdminNotifiyText1">
<source>Profile invitation of %s</source>
</trans-unit>
<trans-unit id="emailInvitationUserRefusedAdminNotifiyText2">
<source>Profile invitation - User %s refused to set a new password. The profile was deleted.</source>
</trans-unit>
<trans-unit id="emailInvitationUserRefusedAdminNotifiyUserProperties">
<source>Profile properties:</source>
</trans-unit>
<trans-unit id="noRecordsFound">
<source>No records found.</source>
</trans-unit>
<trans-unit id="noRecordsFoundClearFilter">
<source>Clean filter.</source>
</trans-unit>
<trans-unit id="noRecordsFoundGoToPage0">
<source>Show all users from all pages (for administrators only).</source>
</trans-unit>
<trans-unit id="noRecordFoundShow">
<source>No FE_User given or not logged in</source>
</trans-unit>
<trans-unit id="notLoggedIn">
<source>Please log in before</source>
</trans-unit>
<trans-unit id="submitNew">
<source>Create Profile Now</source>
</trans-unit>
<trans-unit id="submitResend">
<source>Resend now</source>
</trans-unit>
<trans-unit id="passwordRepeat">
<source>Repeat Password</source>
</trans-unit>
<trans-unit id="titleCreateProfile">
<source>Create a new user-profile</source>
</trans-unit>
<trans-unit id="resendConfirmationMailTitle">
<source>Resend confirmation mail</source>
</trans-unit>
<trans-unit id="resendConfirmationMailFieldsetLegend">
<source>Please enter your email address</source>
</trans-unit>
<trans-unit id="submitEdit">
<source>Update Profile</source>
</trans-unit>
<trans-unit id="create">
<source>Profile successfully created</source>
</trans-unit>
<trans-unit id="createAndInvited">
<source>Profile successfully created and user informed</source>
</trans-unit>
<trans-unit id="createAndInvitedFinished">
<source>Profile successfully changed and enabled</source>
</trans-unit>
<trans-unit id="createRequestWaitingForUserConfirm">
<source>Thank you for your request. Please check your mail account to confirm the profile.</source>
</trans-unit>
<trans-unit id="createRequestWaitingForAdminConfirm">
<source>Thank you for your confirmation. Your profile will be available as soon as the admin confirms your request.</source>
</trans-unit>
<trans-unit id="resendConfirmationMailSend">
<source>An Email was send to your account. Please check your inbox.</source>
</trans-unit>
<trans-unit id="resendConfirmationMailFail">
<source>We received no valid mail.</source>
</trans-unit>
<trans-unit id="ratelimiter_too_many_attempts">
<source>Too many attempts from this IP address. Try again later.</source>
</trans-unit>
<trans-unit id="createFailedProfile">
<source>Profile creation failed</source>
</trans-unit>
<trans-unit id="userAlreadyConfirmed">
<source>Profile is already confirmed</source>
</trans-unit>
<trans-unit id="missingUserInDatabase">
<source>No Profile found in database. Maybe it was deleted before.</source>
</trans-unit>
<trans-unit id="createProfileDeleted">
<source>Profile successfully deleted</source>
</trans-unit>
<trans-unit id="titleUpdateProfile">
<source>Update your user-profile</source>
</trans-unit>
<trans-unit id="confirmUserConfirmation">
<source>Please confirm the creation of your account.</source>
</trans-unit>
<trans-unit id="confirmUserConfirmationRefused">
<source>Please confirm the deletion of your account.</source>
</trans-unit>
<trans-unit id="confirmAdminConfirmation">
<source>Please confirm the creation of this account.</source>
</trans-unit>
<trans-unit id="confirmAdminConfirmationRefused">
<source>Please confirm the deletion of this account.</source>
</trans-unit>
<trans-unit id="confirmAdminConfirmationRefusedSilent">
<source>Please confirm the silent deletion of this account.</source>
</trans-unit>
<trans-unit id="update">
<source>Profile successfully changed</source>
</trans-unit>
<trans-unit id="noChanges">
<source>No changes detected, nothing to update</source>
</trans-unit>
<trans-unit id="updateRequest">
<source>Your change request was transmitted to the administrator. After a confirmation, your profile will be up-to-date.</source>
</trans-unit>
<trans-unit id="login">
<source>You're successfully logged in now</source>
</trans-unit>
<trans-unit id="deleteProfile">
<source>Delete Profile</source>
</trans-unit>
<trans-unit id="updateProfile">
<source>Profile successfully updated</source>
</trans-unit>
<trans-unit id="updateFailedProfile">
<source>Profile update failed</source>
</trans-unit>
<trans-unit id="field_image_fineuploader">
<source>Please enable fineUploader plugin</source>
</trans-unit>
<trans-unit id="field_image_drag">
<source>Drag file</source>
</trans-unit>
<trans-unit id="field_image_drag_processing">
<source>Drag in progress ...</source>
</trans-unit>
<trans-unit id="field_image_upload">
<source>Upload</source>
</trans-unit>
<trans-unit id="empty">
<source>empty</source>
</trans-unit>
<trans-unit id="pleaseChoose">
<source>Please choose ...</source>
</trans-unit>
<trans-unit id="pleaseChooseCountry">
<source>Please choose a country ...</source>
</trans-unit>
<trans-unit id="FilterLabel">
<source>Search</source>
</trans-unit>
<trans-unit id="FilterPlaceholder">
<source>Search ...</source>
</trans-unit>
<trans-unit id="FilterSubmit">
<source>Filter now</source>
</trans-unit>
<trans-unit id="UserDeleteConfirmation">
<source>Are you sure to delete your profile?</source>
</trans-unit>
<trans-unit id="titleInvitationProfile">
<source>Invite a new user</source>
</trans-unit>
<trans-unit id="titleInvitationSetPassword">
<source>Please set a new password</source>
</trans-unit>
<trans-unit id="BackendListUserDelete">
<source>Delete</source>
</trans-unit>
<trans-unit id="BackendListUserDeleteConfirmation">
<source>Are you sure to delete this User?</source>
</trans-unit>
<trans-unit id="BackendListUserEdit">
<source>Edit</source>
</trans-unit>
<trans-unit id="BackendListUserLogout">
<source>Logout</source>
</trans-unit>
<trans-unit id="BackendListUserStatusOffline">
<source>Offline</source>
</trans-unit>
<trans-unit id="BackendListUserStatusOnline">
<source>Online</source>
</trans-unit>
<trans-unit id="BackendListUserVisibilityHide">
<source>Disable</source>
</trans-unit>
<trans-unit id="BackendListUserVisibilityHidden">
<source>Hidden</source>
</trans-unit>
<trans-unit id="BackendListUserVisibilityUnhide">
<source>Enable</source>
</trans-unit>
<trans-unit id="BackendListFilterLabel">
<source>Search</source>
</trans-unit>
<trans-unit id="BackendListLoginAs">
<source>Login as</source>
</trans-unit>
<trans-unit id="BackendConfirmationNoteTitle">
<source>Possible action:</source>
</trans-unit>
<trans-unit id="BackendConfirmationNoteText">
<source>%s approval(s) available</source>
</trans-unit>
<trans-unit id="BackendConfirmationNoteText">
<source>%s missing user confirmation(s) available</source>
</trans-unit>
<trans-unit id="BackendConfirmationColumnAction">
<source>Actions</source>
</trans-unit>
<trans-unit id="BackendMissingConfigPID">
<source>The config PID is missing!</source>
</trans-unit>
<trans-unit id="BackendConfirmationColumnUid">
<source>UID</source>
</trans-unit>
<trans-unit id="BackendConfirmationFlashMessageConfirmed">
<source>%s was successfully approved</source>
</trans-unit>
<trans-unit id="BackendConfirmationFlashMessageFailed">
<source>The user confirmation failed, please check your system log or check your config</source>
</trans-unit>
<trans-unit id="BackendConfirmationFlashMessageRefused">
<source>%s was refused</source>
</trans-unit>
<trans-unit id="BackendConfirmationResendUserConfirmationRequest">
<source>resend user confirmation e-mail</source>
</trans-unit>
<trans-unit id="BackendConfirmationFlashMessageReSend">
<source>%s confirmation mail was resend</source>
</trans-unit>
<trans-unit id="resendConfirmationDialogueMessage">
<source>Your userprofile is not confirmed yet.</source>
</trans-unit>
<trans-unit id="resendConfirmationDialogueLink">
<source>Resend confirmation email?</source>
</trans-unit>
<trans-unit id="createStatus">
<source>User registration</source>
</trans-unit>
<trans-unit id="js.loading_states">
<source>Loading states ...</source>
</trans-unit>
</body>
</file>
</xliff>
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<xliff version="1.0">
<file source-language="en" datatype="plaintext" original="messages" date="2013-04-13T15:49:07Z" product-name="femanager">
<header/>
<body>
<trans-unit id="username.description">
<source>username</source>
</trans-unit>
</body>
</file>
</xliff>
@@ -0,0 +1,352 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<xliff version="1.0">
<file source-language="en" datatype="plaintext" original="messages" date="2013-04-13T15:49:07Z" product-name="femanager">
<header/>
<body>
<trans-unit id="tx_femanager_domain_model_user">
<source>User</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.username">
<source>Username</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.password">
<source>Password</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.usergroup">
<source>Usergroup</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.name">
<source>Name</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.firstName">
<source>Firstname</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.middleName">
<source>Middlename</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.lastName">
<source>Lastname</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.dateOfBirth">
<source>Birthdate</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.gender">
<source>Gender</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.gender.item0">
<source>male</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.gender.item1">
<source>female</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.gender.item2">
<source>diverse</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.address">
<source>Address</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.telephone">
<source>Telephone</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.fax">
<source>Fax</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.email">
<source>Email</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.title">
<source>Title</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.zip">
<source>ZIP</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.city">
<source>City</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.country">
<source>Country</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.state">
<source>State</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.www">
<source>Website</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.company">
<source>Company</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.image">
<source>Image</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.lastlogin">
<source>Last login</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.captcha">
<source>Captcha</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.state">
<source>State</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_user.terms">
<source>Terms and conditions</source>
</trans-unit>
<trans-unit id="fe_users.crdate">
<source>Creation Time</source>
</trans-unit>
<trans-unit id="fe_users.tstamp">
<source>Last profile change at</source>
</trans-unit>
<trans-unit id="fe_users.registrationconfirmedbyuser">
<source>Registration confirmed by user</source>
</trans-unit>
<trans-unit id="fe_users.registrationconfirmedbyadmin">
<source>Registration confirmed by admin</source>
</trans-unit>
<trans-unit id="fe_users.tab">
<source>Registration</source>
</trans-unit>
<trans-unit id="fe_users.log">
<source>FE_user Log</source>
</trans-unit>
<trans-unit id="fe_users.terms">
<source>User accepted terms and conditions</source>
</trans-unit>
<trans-unit id="fe_users.terms_version">
<source>Accepted version of terms and conditions</source>
</trans-unit>
<trans-unit id="fe_users.terms_date_of_acceptance">
<source>Accepted datetime of terms and conditions</source>
</trans-unit>
<trans-unit id="fe_users.changerequest">
<source>Change Request</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log">
<source>User Log</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.title">
<source>Title</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.crdate">
<source>Time</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.state">
<source>State</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.state.100">
<source>Registration</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.state.101">
<source>New Registration</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.state.102">
<source>Registration confirmed by user</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.state.103">
<source>Registration confirmed by admin</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.state.104">
<source>Registration refused by user</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.state.105">
<source>Registration refused by admin</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.state.106">
<source>Profile creation request</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.state.200">
<source>Update</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.state.201">
<source>Profile updated</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.state.202">
<source>Profile update confirmed by admin</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.state.203">
<source>Profile update refused by admin</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.state.204">
<source>Profile update request</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.state.205">
<source>Profile update security failure</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.state.206">
<source>Image deleted</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.state.207">
<source>Attempted to spoof profile</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.state.300">
<source>Delete</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.state.301">
<source>Profile deleted</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.state.400">
<source>Invitation</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.state.401">
<source>Profile created and User invited</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.state.402">
<source>Profile deleted from User</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.state.403">
<source>Wrong Hash</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.state.404">
<source>You tried to open a restricted page</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.state.405">
<source>Password changed and Profile activated</source>
</trans-unit>
<trans-unit id="tx_femanager_domain_model_log.user">
<source>User</source>
</trans-unit>
<trans-unit id="flexform.main.title">
<source>Main Settings</source>
</trans-unit>
<trans-unit id="flexform.main.view">
<source>Choose View</source>
</trans-unit>
<trans-unit id="flexform.main.view.0">
<source>Registration</source>
</trans-unit>
<trans-unit id="flexform.main.view.1">
<source>Edit</source>
</trans-unit>
<trans-unit id="flexform.main.view.2">
<source>List</source>
</trans-unit>
<trans-unit id="flexform.main.view.3">
<source>Detail</source>
</trans-unit>
<trans-unit id="flexform.main.view.4">
<source>Invitation</source>
</trans-unit>
<trans-unit id="flexform.main.view.5">
<source>Resend confirmation mail</source>
</trans-unit>
<trans-unit id="flexform.new.title">
<source>Registration</source>
</trans-unit>
<trans-unit id="flexform.new.fields">
<source>Select Fields for New-Form (empty = all fields)</source>
</trans-unit>
<trans-unit id="flexform.new.overrideUserGroup">
<source>Select Usergroups for new Users</source>
</trans-unit>
<trans-unit id="flexform.new.confirmByUser">
<source>Registration must be confirmed from sender</source>
</trans-unit>
<trans-unit id="flexform.new.showTermsAndConditions">
<source>User must accept terms and conditions</source>
</trans-unit>
<trans-unit id="flexform.new.confirmByAdmin">
<source>Registration must be confirmed from an admin (add one or more emails)</source>
</trans-unit>
<trans-unit id="flexform.new.notifyAdmin">
<source>Notify admin on registration (add one or more emails)</source>
</trans-unit>
<trans-unit id="flexform.edit.title">
<source>Edit</source>
</trans-unit>
<trans-unit id="flexform.edit.fields">
<source>Select Fields for Edit-Form (empty = all fields)</source>
</trans-unit>
<trans-unit id="flexform.edit.showDeleteLink">
<source>Show Delete Button in Edit Form</source>
</trans-unit>
<trans-unit id="flexform.edit.confirmByAdmin">
<source>Profile update must be confirmed from an admin (add one or more emails)</source>
</trans-unit>
<trans-unit id="flexform.edit.notifyAdmin">
<source>Notify admin on Profile update (add one or more emails)</source>
</trans-unit>
<trans-unit id="flexform.list.title">
<source>Listview</source>
</trans-unit>
<trans-unit id="flexform.list.filter">
<source>Show Searchfield</source>
</trans-unit>
<trans-unit id="flexform.list.limit">
<source>Limit</source>
</trans-unit>
<trans-unit id="flexform.list.orderby">
<source>Order by</source>
</trans-unit>
<trans-unit id="flexform.list.orderby.0">
<source>Lastname</source>
</trans-unit>
<trans-unit id="flexform.list.orderby.1">
<source>Firstname</source>
</trans-unit>
<trans-unit id="flexform.list.orderby.2">
<source>Company</source>
</trans-unit>
<trans-unit id="flexform.list.orderby.3">
<source>Username</source>
</trans-unit>
<trans-unit id="flexform.list.sorting">
<source>Sorting</source>
</trans-unit>
<trans-unit id="flexform.list.sorting.0">
<source>Ascending</source>
</trans-unit>
<trans-unit id="flexform.list.sorting.1">
<source>Descending</source>
</trans-unit>
<trans-unit id="flexform.list.usergroup">
<source>Show from usergroup (empty = show all)</source>
</trans-unit>
<trans-unit id="flexform.show.title">
<source>Detailview</source>
</trans-unit>
<trans-unit id="flexform.show.user">
<source>User to show</source>
</trans-unit>
<trans-unit id="flexform.show.user.1">
<source>[Logged in FE User]</source>
</trans-unit>
<trans-unit id="flexform.invitation.title">
<source>Invitation</source>
</trans-unit>
<trans-unit id="flexform.invitation.allowedUserGroups">
<source>Restrict "Add Invitation" to one or more Usergroups (empty = No Restriction)</source>
</trans-unit>
<trans-unit id="flexform.invitation.fields">
<source>Select Fields for invitation-Form (empty = all fields)</source>
</trans-unit>
<trans-unit id="flexform.invitation.overrideUserGroup">
<source>Select Usergroups for new Users</source>
</trans-unit>
<trans-unit id="flexform.invitation.confirmByAdmin">
<source>Registration must be confirmed from an admin (add one or more emails)</source>
</trans-unit>
<trans-unit id="flexform.invitation.notifyAdminStep1">
<source>Notify admin on step 1 (add one or more emails)</source>
</trans-unit>
<trans-unit id="flexform.invitation.notifyAdmin">
<source>Notify admin if user sets a password (add one or more emails)</source>
</trans-unit>
<trans-unit id="flexform.misc.title">
<source>Additional Settings</source>
</trans-unit>
<trans-unit id="flexform.misc.termsUrl">
<source>Page with terms and conditions</source>
</trans-unit>
<trans-unit id="pleaseChoose">
<source>Please choose...</source>
</trans-unit>
<trans-unit id="pleaseChooseCountry">
<source>Please choose a country...</source>
</trans-unit>
<trans-unit id="noZonesForThisCountry">
<source>No zones available for the chosen country</source>
</trans-unit>
</body>
</file>
</xliff>
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<xliff version="1.0">
<file source-language="en" datatype="plaintext" original="messages" date="2013-04-13T15:49:07Z" product-name="femanager">
<header/>
<body>
<trans-unit id="mlang_tabs_tab">
<source>Frontend Users</source>
</trans-unit>
<trans-unit id="mlang_labels_tabdescr">
<source>FE Manager allows you to see a list of Frontend Users and filter them. Show Users from a usergroup or from a searchword or simply show users which are online</source>
</trans-unit>
<trans-unit id="mlang_labels_tablabel">
<source>FE Manager</source>
</trans-unit>
</body>
</file>
</xliff>
@@ -0,0 +1,53 @@
{namespace femanager=In2code\Femanager\ViewHelpers}
<f:be.container
includeCssFiles="{0: '{f:uri.resource(path:\'Css/Backend.min.css\')}'}"
includeRequireJsModules="{0: 'TYPO3/CMS/Femanager/Backend.min'}"
pageTitle="femanager">
<div class="module">
<div class="module-docheader">
<div class="typo3-docheader-functions">
<div class="module-docheader-bar module-docheader-bar-navigation">
<div class="module-docheader-bar-column-left">
<f:if condition="{femanager:be.isConfirmationModuleActivated()}">
<div class="btn-group btn-group-xs" role="group">
<f:link.action action="list" class="btn btn-default{femanager:Be.GetClassNameOnAction(actionName:'list')}">
<f:translate key="BackendSelectionList">List</f:translate>
</f:link.action>
<f:link.action action="confirmation" class="btn btn-default{femanager:Be.GetClassNameOnAction(actionName:'confirmation')}">
<f:translate key="BackendSelectionList">Admin Confirmation</f:translate>
</f:link.action>
<f:if condition="{femanager:be.IsResendUserConfirmationRequestActivated()}">
<f:link.action action="listOpenUserConfirmations" class="btn btn-default{femanager:Be.GetClassNameOnAction(actionName:'listOpenUserConfirmations')}">
<f:translate key="BackendSelectionList">Open User Confirmtions</f:translate>
</f:link.action>
</f:if>
</div>
</f:if>
</div>
<div class="module-docheader-bar-column-right">
<f:be.pagePath />
</div>
</div>
</div>
<div class="module-docheader-bar module-docheader-bar-buttons">
<div class="module-docheader-bar-column-left">
&nbsp;
</div>
<div class="module-docheader-bar-column-right">
<f:be.buttons.shortcut />
</div>
</div>
</div>
<div class="module-body femanager-backend">
<f:flashMessages as="flashMessages">
<div class="alert alert-warning">
<f:for each="{flashMessages}" as="flashMessage">
<div class="message-body">{flashMessage.message}</div>
</f:for>
</div>
</f:flashMessages>
<f:render section="main" />
</div>
</div>
</f:be.container>
@@ -0,0 +1 @@
<f:render section="main" />
@@ -0,0 +1,5 @@
<div class="tx-femanager" data-labels="{jsLabels}">
<f:render section="main" />
<f:render partial="Misc/AdditionalFields" arguments="{_all}" />
</div>
@@ -0,0 +1 @@
<f:render section="main" />
@@ -0,0 +1,18 @@
{namespace femanager=In2code\Femanager\ViewHelpers}
<f:form action="{action}">
<div class="form-group">
<label for="searchword">
<f:translate key="BackendListFilterLabel" />
</label>
<f:form.textfield
name="filter[searchword]"
id="searchword"
class="form-control"
value="{femanager:Misc.Request(parameter:'tx_femanager_web_femanagerm1|filter|searchword')}" />
</div>
<div class="form-group">
<f:form.submit
class="btn btn-primary"
value="{f:translate(key:'BackendListFilterLabel')}" />
</div>
</f:form>
@@ -0,0 +1,16 @@
{namespace femanager=In2code\Femanager\ViewHelpers}
<div class="femanager_fieldset femanager_address form-group">
<label for="femanager_field_address" class="col-sm-2 control-label">
<f:translate key="tx_femanager_domain_model_user.address" />
<f:if condition="{femanager:Validation.IsRequiredField(fieldName:'address')}">
<span>*</span>
</f:if>
</label>
<div class="col-sm-10">
<f:form.textarea
id="femanager_field_address"
property="address"
class="form-control"
additionalAttributes="{femanager:Validation.FormValidationData(additionalAttributes: {autocomplete: 'street-address'}, settings: settings, fieldName: 'address')}" />
</div>
</div>
@@ -0,0 +1,33 @@
{namespace femanager=In2code\Femanager\ViewHelpers}
<f:if condition="{femanager:Misc.CaptchaEnabled(settings: settings)}">
<f:then>
<f:render partial="Fields/CaptchaField" arguments="{_all}" />
</f:then>
<f:else>
<f:render section="error" arguments="{_all}" />
</f:else>
</f:if>
<f:section name="error">
<div class="femanager_fieldset femanager_captcha form-group">
<label class="col-sm-2 control-label">
<f:translate key="tx_femanager_domain_model_user.captcha" default="Captcha" />
<span>*</span>
</label>
<div class="col-sm-10">
<ul>
<li>
Please install extension <strong>sr_freecap</strong>
</li>
<li>
And enable it with
<strong>plugin.tx_femanager.settings.new.validation.captcha.captcha = 1</strong> or
<strong>plugin.tx_femanager.settings.edit.validation.captcha.captcha = 1</strong>
in TypoScript
</li>
</ul>
</div>
</div>
</f:section>
@@ -0,0 +1,18 @@
{namespace femanager=In2code\Femanager\ViewHelpers}
{namespace freeCap=SJBR\SrFreecap\ViewHelpers}
<div class="femanager_fieldset femanager_captcha form-group">
<label for="femanager_field_captcha" class="col-sm-2 control-label">
<f:translate key="tx_femanager_domain_model_user.captcha" default="Captcha" />
<span>*</span>
</label>
<div class="col-sm-10">
<f:form.textfield
id="femanager_field_captcha"
name="captcha"
class="form-control"
additionalAttributes="{femanager:Validation.FormValidationData(additionalAttributes: {autocomplete: 'off'}, settings: settings, fieldName: 'captcha')}"
title="{freeCap:translate(key:'notice')} {freeCap:translate(key:'explain')}" />
<freeCap:image />
<freeCap:audio />
</div>
</div>
@@ -0,0 +1,16 @@
{namespace femanager=In2code\Femanager\ViewHelpers}
<div class="femanager_fieldset femanager_city form-group">
<label for="femanager_field_city" class="col-sm-2 control-label">
<f:translate key="tx_femanager_domain_model_user.city" />
<f:if condition="{femanager:Validation.IsRequiredField(fieldName:'city')}">
<span>*</span>
</f:if>
</label>
<div class="col-sm-10">
<femanager:form.textfield
id="femanager_field_city"
property="city"
class="form-control"
additionalAttributes="{femanager:Validation.FormValidationData(additionalAttributes: {autocomplete: 'address-level2'}, settings: settings, fieldName: 'city')}" />
</div>
</div>
@@ -0,0 +1,16 @@
{namespace femanager=In2code\Femanager\ViewHelpers}
<div class="femanager_fieldset femanager_company form-group">
<label for="femanager_field_company" class="col-sm-2 control-label">
<f:translate key="tx_femanager_domain_model_user.company" />
<f:if condition="{femanager:Validation.IsRequiredField(fieldName:'company')}">
<span>*</span>
</f:if>
</label>
<div class="col-sm-10">
<femanager:form.textfield
id="femanager_field_company"
property="company"
class="form-control"
additionalAttributes="{femanager:Validation.FormValidationData(additionalAttributes: {autocomplete: 'organization'}, settings: settings, fieldName: 'company')}" />
</div>
</div>
@@ -0,0 +1,67 @@
{namespace femanager=In2code\Femanager\ViewHelpers}
<div class="femanager_fieldset femanager_country form-group">
<label for="femanager_field_country" class="col-sm-2 control-label">
<f:translate key="tx_femanager_domain_model_user.country"/>
<f:if condition="{femanager:Validation.IsRequiredField(fieldName:'country')}">
<span>*</span>
</f:if>
</label>
<div class="col-sm-10">
<f:if condition="{useStaticInfoTables}">
<f:then>
<f:render section="static_info_tables" arguments="{_all}"/>
</f:then>
<f:else>
<f:render section="internal" arguments="{_all}"/>
</f:else>
</f:if>
</div>
</div>
<f:section name="internal">
<femanager:form.select
id="femanager_field_country"
property="country"
options="{femanager:Form.GetCountries()}"
defaultOption="{f:translate(key:'pleaseChoose')}"
class="form-control"
additionalAttributes="{femanager:Validation.FormValidationData(settings: settings, fieldName: 'country')}"/>
</f:section>
<f:section name="static_info_tables">
<femanager:form.select
id="femanager_field_country"
property="country"
defaultOption="{f:translate(key:'pleaseChoose')}"
class="form-control"
additionalAttributes="{femanager:Validation.FormValidationData(settings: settings, fieldName: 'country')}">
<f:for each="{femanager:Form.GetCountriesFromStaticInfoTables()}" as="countryName" key="countryCode">
<f:if condition="{countryCode} == '---'">
<f:then>
<f:form.select.option additionalAttributes="{disabled: 1}">{countryName}</f:form.select.option>
</f:then>
<f:else>
<f:form.select.option value="{countryCode}">{countryName}</f:form.select.option>
</f:else>
</f:if>
</f:for>
</femanager:form.select>
<f:comment><![CDATA[
// Example how to add a countryselection from static_info_tables (and _de, _fr, etc...)
// Just install static_info_tables, clear cache and use (default values -
key:'isoCodeA3',value:'officialNameLocal',sortbyField:'isoCodeA3',sorting:'asc')
// {femanager:Form.GetCountriesFromStaticInfoTables()}
//
// some more examples (if you want to configure key and value or sorting)
// {femanager:Form.GetCountriesFromStaticInfoTables(key:'isoCodeA2',value:'shortNameDe')}
//
{femanager:Form.GetCountriesFromStaticInfoTables(key:'isoCodeA2',value:'shortNameFr',sortbyField:'shortNameFr')}
//
{femanager:Form.GetCountriesFromStaticInfoTables(key:'isoCodeA3',value:'isoCodeA3',sortbyField:'isoCodeA3',sorting:'asc')}
// to fill the options
]]>
</f:comment>
</f:section>
@@ -0,0 +1,19 @@
{namespace femanager=In2code\Femanager\ViewHelpers}
<div class="femanager_fieldset femanager_dateOfBirth form-group">
<label for="femanager_field_dateOfBirth" class="col-sm-2 control-label">
<f:translate key="tx_femanager_domain_model_user.dateOfBirth" />
<f:if condition="{femanager:Validation.IsRequiredField(fieldName:'dateOfBirth')}">
<span>*</span>
</f:if>
</label>
<div class="col-sm-10">
<femanager:form.textfield
id="femanager_field_dateOfBirth"
property="dateOfBirth"
class="form-control"
placeholder="{f:translate(key:'tx_femanager_domain_model_user.dateOfBirth.placeholder')}"
title="{f:translate(key:'tx_femanager_domain_model_user.dateOfBirth.hint')}"
value="{user.dateOfBirth -> f:format.date(format:'{f:translate(key:\'tx_femanager_domain_model_user.dateFormat\')}')}"
additionalAttributes="{femanager:Validation.FormValidationData(additionalAttributes: {autocomplete: 'bday'}, settings: settings, fieldName: 'dateOfBirth')}" />
</div>
</div>
@@ -0,0 +1,17 @@
{namespace femanager=In2code\Femanager\ViewHelpers}
<div class="femanager_fieldset femanager_email form-group">
<label for="femanager_field_email" class="col-sm-2 control-label">
<f:translate key="tx_femanager_domain_model_user.email" />
<f:if condition="{femanager:Validation.IsRequiredField(fieldName:'email')}">
<span>*</span>
</f:if>
</label>
<div class="col-sm-10">
<femanager:form.textfield
id="femanager_field_email"
property="email"
class="form-control"
type="email"
additionalAttributes="{femanager:Validation.FormValidationData(additionalAttributes: {autocomplete: 'email'}, settings: settings, fieldName: 'email')}" />
</div>
</div>
@@ -0,0 +1,17 @@
{namespace femanager=In2code\Femanager\ViewHelpers}
<div class="femanager_fieldset femanager_fax form-group">
<label for="femanager_field_fax" class="col-sm-2 control-label">
<f:translate key="tx_femanager_domain_model_user.fax" />
<f:if condition="{femanager:Validation.IsRequiredField(fieldName:'fax')}">
<span>*</span>
</f:if>
</label>
<div class="col-sm-10">
<femanager:form.textfield
id="femanager_field_fax"
property="fax"
class="form-control"
type="tel"
additionalAttributes="{femanager:Validation.FormValidationData(settings: settings, fieldName: 'fax')}" />
</div>
</div>
@@ -0,0 +1,16 @@
{namespace femanager=In2code\Femanager\ViewHelpers}
<div class="femanager_fieldset femanager_firstname form-group">
<label for="femanager_field_firstName" class="col-sm-2 control-label">
<f:translate key="tx_femanager_domain_model_user.firstName" />
<f:if condition="{femanager:Validation.IsRequiredField(fieldName:'firstName')}">
<span>*</span>
</f:if>
</label>
<div class="col-sm-10">
<femanager:form.textfield
id="femanager_field_firstName"
property="firstName"
class="form-control"
additionalAttributes="{femanager:Validation.FormValidationData(additionalAttributes: {autocomplete: 'given-name'}, settings: settings, fieldName: 'firstName')}" />
</div>
</div>
@@ -0,0 +1,44 @@
{namespace femanager=In2code\Femanager\ViewHelpers}
<div class="femanager_fieldset femanager_gender form-group">
<label class="col-sm-2 control-label">
<f:translate key="tx_femanager_domain_model_user.gender" />
<f:if condition="{femanager:Validation.IsRequiredField(fieldName:'gender')}">
<span>*</span>
</f:if>
</label>
<div class="col-sm-10">
<div class="radio">
<label>
<f:form.radio
id="femanager_field_gender1"
property="gender"
value="1"
checked="{user.gender} == 1"
additionalAttributes="{femanager:Validation.FormValidationData(settings: settings, fieldName: 'gender')}" />
<f:translate key="tx_femanager_domain_model_user.gender.item1" />
</label>
</div>
<div class="radio">
<label>
<f:form.radio
id="femanager_field_gender0"
property="gender"
value="0"
checked="{user.gender} == 0"
additionalAttributes="{femanager:Validation.FormValidationData(settings: settings, fieldName: 'gender')}" />
<f:translate key="tx_femanager_domain_model_user.gender.item0" />
</label>
</div>
<div class="radio">
<label>
<f:form.radio
id="femanager_field_gender2"
property="gender"
value="2"
checked="{user.gender} == 2"
additionalAttributes="{femanager:Validation.FormValidationData(settings: settings, fieldName: 'gender')}" />
<f:translate key="tx_femanager_domain_model_user.gender.item2" />
</label>
</div>
</div>
</div>
@@ -0,0 +1,29 @@
{namespace femanager=In2code\Femanager\ViewHelpers}
<div class="femanager_fieldset femanager_image form-group">
<label for="femanager_field_image" class="col-sm-2 control-label">
<f:translate key="tx_femanager_domain_model_user.image" />
<f:if condition="{femanager:Validation.IsRequiredField(fieldName:'image')}">
<span>*</span>
</f:if>
</label>
<div class="col-sm-10">
<f:if condition="{user.image}">
<f:else>
<f:form.upload
id="femanager_field_image"
property="image.0"
class="custom-file-input" />
</f:else>
<f:then>
<div><f:image image="{user.firstImage}" maxWidth="800"/></div>
<f:form.hidden property="image.0" value="{user.firstImage}" />
<f:link.action
class="btn btn-danger"
action="imageDelete"
controller="User"
arguments="{user:user}">Delete image</f:link.action>
</f:then>
</f:if>
</div>
</div>
@@ -0,0 +1,16 @@
{namespace femanager=In2code\Femanager\ViewHelpers}
<div class="femanager_fieldset femanager_lastname form-group">
<label for="femanager_field_lastName" class="col-sm-2 control-label">
<f:translate key="tx_femanager_domain_model_user.lastName" />
<f:if condition="{femanager:Validation.IsRequiredField(fieldName:'lastName')}">
<span>*</span>
</f:if>
</label>
<div class="col-sm-10">
<femanager:form.textfield
id="femanager_field_lastName"
property="lastName"
class="form-control"
additionalAttributes="{femanager:Validation.FormValidationData(additionalAttributes: {autocomplete: 'family-name'}, settings: settings, fieldName: 'lastName')}" />
</div>
</div>
@@ -0,0 +1,16 @@
{namespace femanager=In2code\Femanager\ViewHelpers}
<div class="femanager_fieldset femanager_middlename form-group">
<label for="femanager_field_middleName" class="col-sm-2 control-label">
<f:translate key="tx_femanager_domain_model_user.middleName" />
<f:if condition="{femanager:Validation.IsRequiredField(fieldName:'middleName')}">
<span>*</span>
</f:if>
</label>
<div class="col-sm-10">
<femanager:form.textfield
id="femanager_field_middleName"
property="middleName"
class="form-control"
additionalAttributes="{femanager:Validation.FormValidationData(additionalAttributes: {autocomplete: 'additional-name'}, settings: settings, fieldName: 'middleName')}" />
</div>
</div>
@@ -0,0 +1,16 @@
{namespace femanager=In2code\Femanager\ViewHelpers}
<div class="femanager_fieldset femanager_name form-group">
<label for="femanager_field_name" class="col-sm-2 control-label">
<f:translate key="tx_femanager_domain_model_user.name" />
<f:if condition="{femanager:Validation.IsRequiredField(fieldName:'name')}">
<span>*</span>
</f:if>
</label>
<div class="col-sm-10">
<femanager:form.textfield
id="femanager_field_name"
property="name"
class="form-control"
additionalAttributes="{femanager:Validation.FormValidationData(additionalAttributes: {autocomplete: 'name'}, settings: settings, fieldName: 'name')}" />
</div>
</div>
@@ -0,0 +1,36 @@
{namespace femanager=In2code\Femanager\ViewHelpers}
<div class="femanager_fieldset femanager_password form-group">
<label for="femanager_field_password" class="col-sm-2 control-label">
<f:translate key="tx_femanager_domain_model_user.password" />
<f:if condition="{femanager:Validation.IsRequiredField(fieldName:'password')}">
<span>*</span>
</f:if>
</label>
<div class="col-sm-10">
<f:form.password
id="femanager_field_password"
property="password"
class="form-control"
value=""
autocomplete="new-password"
additionalAttributes="{femanager:Validation.FormValidationData(settings: settings, fieldName: 'password')}" />
</div>
</div>
<div class="femanager_fieldset femanager_password_repeat form-group">
<label for="femanager_field_password_repeat" class="col-sm-2 control-label">
<f:translate key="passwordRepeat" />
<f:if condition="{femanager:Validation.IsRequiredField(fieldName:'password')}">
<span>*</span>
</f:if>
</label>
<div class="col-sm-10">
<f:form.password
id="femanager_field_password_repeat"
name="password_repeat"
class="form-control"
value=""
autocomplete="new-password"
additionalAttributes="{femanager:Validation.FormValidationData(settings: settings, fieldName: 'password_repeat')}" />
</div>
</div>
@@ -0,0 +1,19 @@
{namespace femanager=In2code\Femanager\ViewHelpers}
<div class="femanager_fieldset femanager_state form-group">
<label for="femanager_field_state" class="col-sm-2 control-label">
<f:translate key="tx_femanager_domain_model_user.state"/>
<f:if condition="{femanager:Validation.IsRequiredField(fieldName:'state')}">
<span>*</span>
</f:if>
</label>
<div class="col-sm-10">
<femanager:form.select
id="femanager_field_state"
property="state"
defaultOption="{f:translate(key:'pleaseChooseCountry')}"
class="form-control"
additionalAttributes="{femanager:Validation.FormValidationData(settings: settings, fieldName: 'state')}"
data="{trigger-fields: 'femanager_field_country', data-endpoint: 'getStatesForCountry', arguments-country: 'femanager_field_country'}"/>
</div>
</div>
@@ -0,0 +1,8 @@
<div class="femanager_fieldset femanager_submit form-group">
<div class="col-sm-10 col-sm-offset-2">
<f:form.submit
value="{f:translate(key:'submitNew')}"
id="femanager_field_submit"
class="btn btn-primary btn-large" />
</div>
</div>
@@ -0,0 +1,8 @@
<div class="femanager_fieldset femanager_submit form-group">
<div class="col-sm-10 col-sm-offset-2">
<f:form.submit
value="{f:translate(key:'submitEdit')}"
id="femanager_field_submit"
class="btn btn-primary btn-large" />
</div>
</div>
@@ -0,0 +1,17 @@
{namespace femanager=In2code\Femanager\ViewHelpers}
<div class="femanager_fieldset femanager_telephone form-group">
<label for="femanager_field_telephone" class="col-sm-2 control-label">
<f:translate key="tx_femanager_domain_model_user.telephone" />
<f:if condition="{femanager:Validation.IsRequiredField(fieldName:'telephone')}">
<span>*</span>
</f:if>
</label>
<div class="col-sm-10">
<femanager:form.textfield
id="femanager_field_telephone"
property="telephone"
class="form-control"
type="tel"
additionalAttributes="{femanager:Validation.FormValidationData(additionalAttributes: {autocomplete: 'tel'}, settings: settings, fieldName: 'telephone')}" />
</div>
</div>
@@ -0,0 +1,24 @@
{namespace femanager=In2code\Femanager\ViewHelpers}
<div class="femanager_fieldset femanager_terms form-group">
<div class="col-sm-offset-2 col-sm-10">
<div class="checkbox">
<label class="checkbox">
<f:form.checkbox
id="femanager_field_terms"
property="terms"
value="Terms and conditions"
checked="false"
additionalAttributes="{femanager:Validation.FormValidationData(settings: settings, fieldName: 'terms')}" />
<f:translate key="tx_femanager_domain_model_user.terms" />
<f:if condition="{femanager:Validation.IsRequiredField(fieldName:'terms')}">
<span>*</span>
</f:if>
<f:if condition="{settings.misc.termsUrl}">
<f:then>
(<f:link.page pageUid="{settings.misc.termsUrl}" target="_blank"><f:translate key="tx_femanager_domain_model_user.termslinktext" /></f:link.page>)
</f:then>
</f:if>
</label>
</div>
</div>
</div>
@@ -0,0 +1,16 @@
{namespace femanager=In2code\Femanager\ViewHelpers}
<div class="femanager_fieldset femanager_title form-group">
<label for="femanager_field_title" class="col-sm-2 control-label">
<f:translate key="tx_femanager_domain_model_user.title" />
<f:if condition="{femanager:Validation.IsRequiredField(fieldName:'title')}">
<span>*</span>
</f:if>
</label>
<div class="col-sm-10">
<femanager:form.textfield
id="femanager_field_title"
property="title"
class="form-control"
additionalAttributes="{femanager:Validation.FormValidationData(additionalAttributes: {autocomplete: 'organization-title'}, settings: settings, fieldName: 'title')}" />
</div>
</div>
@@ -0,0 +1,61 @@
{namespace femanager=In2code\Femanager\ViewHelpers}
<f:render section="default" arguments="{_all}" />
<f:section name="default">
<div class="femanager_fieldset femanager_usergroup form-group">
<label for="femanager_field_usergroup" class="col-sm-2 control-label">
<f:translate key="tx_femanager_domain_model_user.usergroup" />
<f:if condition="{femanager:Validation.IsRequiredField(fieldName:'usergroup')}">
<span>*</span>
</f:if>
</label>
<div class="col-sm-10">
<femanager:form.select
id="femanager_field_usergroup"
name="user[usergroup][0]"
options="{allUserGroups}"
optionValueField="uid"
optionLabelField="title"
sortByOptionLabel="1"
defaultOption="{f:translate(key:'pleaseChoose')}"
class="form-control"
value="{femanager:Misc.GetFirst(objectStorage:user.usergroup)}"
additionalAttributes="{femanager:Validation.FormValidationData(settings: settings, fieldName: 'usergroup')}" />
</div>
</div>
</f:section>
<f:section name="multiselect">
<f:comment><![CDATA[
/////////////////////////////////////////
// Example how to add a multiselect field
/////////////////////////////////////////
<div class="femanager_fieldset femanager_usergroup form-group">
<label for="femanager_field_usergroup" class="col-sm-2 control-label">
<f:translate key="tx_femanager_domain_model_user.usergroup" />
<f:if condition="{femanager:Validation.IsRequiredField(fieldName:'usergroup')}">
<span>*</span>
</f:if>
</label>
<div class="col-sm-10">
<femanager:form.select
id="femanager_field_usergroup"
property="usergroup"
multiple="multiple"
options="{allUserGroups}"
optionValueField="uid"
optionLabelField="title"
sortByOptionLabel="1"
class="form-control"
value="{femanager:Misc.GetFirst(objectStorage:user.usergroup)}"
additionalAttributes="{femanager:Validation.FormValidationData(settings: settings, fieldName: 'usergroup')}" />
</div>
</div>
]]></f:comment>
</f:section>
@@ -0,0 +1,16 @@
{namespace femanager=In2code\Femanager\ViewHelpers}
<div class="femanager_fieldset femanager_username form-group">
<label for="femanager_field_username" class="col-sm-2 control-label">
<f:translate key="tx_femanager_domain_model_user.username" />
<f:if condition="{femanager:Validation.IsRequiredField(fieldName:'username')}">
<span>*</span>
</f:if>
</label>
<div class="col-sm-10">
<femanager:form.textfield
id="femanager_field_username"
property="username"
class="form-control"
additionalAttributes="{femanager:Validation.FormValidationData(additionalAttributes: {autocomplete: 'username'}, settings: settings, fieldName: 'username')}" />
</div>
</div>
@@ -0,0 +1,17 @@
{namespace femanager=In2code\Femanager\ViewHelpers}
<div class="femanager_fieldset femanager_www form-group">
<label for="femanager_field_www" class="col-sm-2 control-label">
<f:translate key="tx_femanager_domain_model_user.www" />
<f:if condition="{femanager:Validation.IsRequiredField(fieldName:'www')}">
<span>*</span>
</f:if>
</label>
<div class="col-sm-10">
<femanager:form.textfield
id="femanager_field_www"
property="www"
class="form-control"
type="url"
additionalAttributes="{femanager:Validation.FormValidationData(additionalAttributes: {autocomplete: 'url'}, settings: settings, fieldName: 'www')}" />
</div>
</div>
@@ -0,0 +1,16 @@
{namespace femanager=In2code\Femanager\ViewHelpers}
<div class="femanager_fieldset femanager_zip form-group">
<label for="femanager_field_zip" class="col-sm-2 control-label">
<f:translate key="tx_femanager_domain_model_user.zip" />
<f:if condition="{femanager:Validation.IsRequiredField(fieldName:'zip')}">
<span>*</span>
</f:if>
</label>
<div class="col-sm-10">
<femanager:form.textfield
id="femanager_field_zip"
property="zip"
class="form-control"
additionalAttributes="{femanager:Validation.FormValidationData(additionalAttributes: {autocomplete: 'postal-code'}, settings: settings, fieldName: 'zip')}" />
</div>
</div>
@@ -0,0 +1,165 @@
<table border="1" cellpadding="2" cellspacing="2">
<f:if condition="{user.username}">
<tr>
<th scope="row"><f:translate key="tx_femanager_domain_model_user.username" /></th>
<td>
{user.username}
</td>
</tr>
</f:if>
<f:if condition="{user.email}">
<tr>
<th scope="row"><f:translate key="tx_femanager_domain_model_user.email" /></th>
<td>
{user.email}
</td>
</tr>
</f:if>
<f:if condition="{user.www}">
<tr>
<th scope="row"><f:translate key="tx_femanager_domain_model_user.www" /></th>
<td>
{user.www}
</td>
</tr>
</f:if>
<f:if condition="{user.title}">
<tr>
<th scope="row"><f:translate key="tx_femanager_domain_model_user.title" /></th>
<td>
{user.title}
</td>
</tr>
</f:if>
<f:if condition="{user.firstName}">
<tr>
<th scope="row"><f:translate key="tx_femanager_domain_model_user.firstName" /></th>
<td>
{user.firstName}
</td>
</tr>
</f:if>
<f:if condition="{user.middleName}">
<tr>
<th scope="row"><f:translate key="tx_femanager_domain_model_user.middleName" /></th>
<td>
{user.middleName}
</td>
</tr>
</f:if>
<f:if condition="{user.lastName}">
<tr>
<th scope="row"><f:translate key="tx_femanager_domain_model_user.lastName" /></th>
<td>
{user.lastName}
</td>
</tr>
</f:if>
<f:if condition="{user.name}">
<tr>
<th scope="row"><f:translate key="tx_femanager_domain_model_user.name" /></th>
<td>
{user.name}
</td>
</tr>
</f:if>
<f:if condition="{user.company}">
<tr>
<th scope="row"><f:translate key="tx_femanager_domain_model_user.company" /></th>
<td>
{user.company}
</td>
</tr>
</f:if>
<f:if condition="{user.gender}">
<tr>
<th scope="row"><f:translate key="tx_femanager_domain_model_user.gender" /></th>
<td>
<f:translate key="tx_femanager_domain_model_user.gender.item{user.gender}" />
</td>
</tr>
</f:if>
<f:if condition="{user.dateOfBirth}">
<tr>
<th scope="row"><f:translate key="tx_femanager_domain_model_user.dateOfBirth" /></th>
<td>
<f:format.date format="{f:translate(key:'tx_femanager_domain_model_user.dateFormat')}">{user.dateOfBirth}</f:format.date>
</td>
</tr>
</f:if>
<f:if condition="{user.telephone}">
<tr>
<th scope="row"><f:translate key="tx_femanager_domain_model_user.telephone" /></th>
<td>
{user.telephone}
</td>
</tr>
</f:if>
<f:if condition="{user.fax}">
<tr>
<th scope="row"><f:translate key="tx_femanager_domain_model_user.fax" /></th>
<td>
{user.fax}
</td>
</tr>
</f:if>
<f:if condition="{user.address}">
<tr>
<th scope="row"><f:translate key="tx_femanager_domain_model_user.address" /></th>
<td>
{user.address}
</td>
</tr>
</f:if>
<f:if condition="{user.zip}">
<tr>
<th scope="row"><f:translate key="tx_femanager_domain_model_user.zip" /></th>
<td>
{user.zip}
</td>
</tr>
</f:if>
<f:if condition="{user.city}">
<tr>
<th scope="row"><f:translate key="tx_femanager_domain_model_user.city" /></th>
<td>
{user.city}
</td>
</tr>
</f:if>
<f:if condition="{user.country}">
<tr>
<th scope="row"><f:translate key="tx_femanager_domain_model_user.country" /></th>
<td>
{user.country}
</td>
</tr>
</f:if>
<f:if condition="{user.state}">
<tr>
<th scope="row"><f:translate key="tx_femanager_domain_model_user.state" /></th>
<td>
<!-- // TODO: Check me if i was displayed -->
{user.state}
</td>
</tr>
</f:if>
<f:if condition="{user.image}">
<tr>
<th scope="row"><f:translate key="tx_femanager_domain_model_user.image" /></th>
<td>
<f:if condition="{embedImages.0}">
<img src="{embedImages.0}" alt="Error in User Image">
</f:if>
</td>
</tr>
</f:if>
<f:if condition="{user.usergroup}">
<tr>
<th scope="row"><f:translate key="tx_femanager_domain_model_user.usergroup" /></th>
<td>
<f:for each="{user.usergroup}" as="usergroup" iteration="i">{usergroup.title}<f:if condition="{i.isLast}"><f:else>, </f:else></f:if></f:for>
</td>
</tr>
</f:if>
</table>
@@ -0,0 +1,27 @@
<div class="hidden" style="display: none;">
<f:comment>
Current sys_language_uid to set the fe language for ajax calls
</f:comment>
<input type="hidden" id="femanagerLanguage" value="{languageUid}" />
<f:comment>
Storage pid for ajax calls (know where to search in db)
</f:comment>
<input type="hidden" id="femanagerStoragePid" value="{storagePid}" />
<f:comment>
Current pid for ajax calls (to enable TypoScript)
</f:comment>
<input type="hidden" id="femanagerPid" value="{Pid}" />
<f:comment>
Container for javascript validation messages above the fields
</f:comment>
<div class="femanager_validation_container">
<div class="alert bg-danger">
<button type="button" class="close" data-dismiss="alert">&#x00D7;</button>
<h4><f:translate key="validationError" extensionName="Femanager" /></h4>
###messages###
</div>
</div>
</div>
@@ -0,0 +1,14 @@
<f:if condition="{settings.edit.showDeleteLink}">
<div class="femanager_fieldset control-group">
<div class="controls">
<f:link.action
action="delete"
arguments="{user:user, token:token}"
class="btn btn-warning btn-large"
additionalAttributes="{data-confirm:'{f:translate(key:\'UserDeleteConfirmation\')}'}">
<i class="icon-trash icon-white"></i>
<f:translate key="deleteProfile" />
</f:link.action>
</div>
</div>
</f:if>
@@ -0,0 +1,11 @@
<f:flashMessages as="flashMessages">
<div class="femanager_status">
<div class="femanager_flashmessages">
<f:for each="{flashMessages}" as="flashMessage">
<div class="typo3-message message-{flashMessage.severity}">
<div class="message-body">{flashMessage.message}</div>
</div>
</f:for>
</div>
</div>
</f:flashMessages>
@@ -0,0 +1,44 @@
<f:comment>
PHP Validation Errormessages
</f:comment>
{namespace femanager=In2code\Femanager\ViewHelpers}
<f:form.validationResults for="{object}">
<f:if condition="{validationResults.flattenedErrors}">
<ul class="femanager_error">
<f:for each="{validationResults.flattenedErrors}" key="propertyPath" as="errors">
<f:for each="{errors}" as="error">
<li>
<f:if condition="{error.code} == 1221560718">
<f:then>
<f:comment>
If any required field in model was empty (normally username or password)
</f:comment>
<f:translate key="validationErrorRequiredModel" />
</f:then>
<f:else>
<f:if condition="{error.code} == 1307719788">
<f:then>
<f:comment>
If given date format failed
</f:comment>
<f:translate key="validationErrorWrongDateFormat" />
</f:then>
<f:else>
<f:comment>
If a validator check (see TypoScript) failed
</f:comment>
<f:translate key="tx_femanager_domain_model_user.{error.arguments.field}" />:
<f:format.printf arguments="{0: '{fieldname -> f:translate(key:\'tx_femanager_domain_model_user.{error.arguments.field}\')}'}">
<f:translate key="{error.message}">{error.message}</f:translate>
</f:format.printf>
</f:else>
</f:if>
</f:else>
</f:if>
</li>
</f:for>
</f:for>
</ul>
</f:if>
</f:form.validationResults>
@@ -0,0 +1,40 @@
<f:if condition="{paginator.numberOfPages} > 1">
<nav aria-label="pagebrowser">
<ul class="f3-widget-paginator pagination">
<f:if condition="{pagination.previousPageNumber} && {pagination.previousPageNumber} >= {pagination.firstPageNumber}">
<li class="previous">
<a href="{femanager:pagination.uri(arguments:'{currentPage:pagination.previousPageNumber}',name:name)}" title="previous" class="page-link">
&lt;
</a>
</li>
</f:if>
<f:if condition="{pagination.hasLessPages}">
<li class="page-item">…</li>
</f:if>
<f:for each="{pagination.allPageNumbers}" as="page">
<f:if condition="{page} == {paginator.currentPageNumber}">
<f:then>
<li class="page-item current active">
<span class="page-link">{page}</span>
</li>
</f:then>
<f:else>
<li class="page-item">
<a href="{femanager:pagination.uri(arguments:'{currentPage:page}',name:name)}" class="page-link">{page}</a>
</li>
</f:else>
</f:if>
</f:for>
<f:if condition="{pagination.hasMorePages}">
<li class="page-item">…</li>
</f:if>
<f:if condition="{pagination.nextPageNumber} && {pagination.nextPageNumber} <= {pagination.lastPageNumber}">
<li class="next">
<a href="{femanager:pagination.uri(arguments:'{currentPage:pagination.nextPageNumber}',name:name)}" title="next" class="page-link">
&gt;
</a>
</li>
</f:if>
</ul>
</nav>
</f:if>
@@ -0,0 +1,14 @@
<f:form.validationResults>
<f:if condition="{validationResults.flattenedErrors} && {settings.showResendUserConfirmationRequestView} > 0">
<f:for each="{validationResults.flattenedErrors.user}" as="error">
<f:if condition="{error.arguments.field} =='username' && {error.message}=='validationErrorUniqueDb'">
<ul class="femanager_note">
<li>
<f:translate key="resendConfirmationDialogueMessage"/>&nbsp;
<f:link.action action="resendConfirmationDialogue" pageUid="{settings.showResendUserConfirmationRequestView}"> <f:translate key="resendConfirmationDialogueLink"/> </f:link.action>
</li>
</ul>
</f:if>
</f:for>
</f:if>
</f:form.validationResults>
@@ -0,0 +1,9 @@
<f:comment>
JavaScript Validation Errormessages
</f:comment>
<f:for each="{messages}" as="message">
<f:format.printf arguments="{0: '{fieldname -> f:translate(key:\'tx_femanager_domain_model_user.{fieldname}\')}'}">
<f:translate key="{message}">{message}</f:translate>
</f:format.printf>
<br />
</f:for>
@@ -0,0 +1,25 @@
{namespace femanager=In2code\Femanager\ViewHelpers}
<f:if condition="{settings.list.filterActivate}">
<div class="femanager_list_searchform">
<f:form name="filter" class="form-horizontal" object="{filter}">
<div class="femanager_fieldset femanager_city control-group">
<label for="searchword" class="control-label">
<f:translate key="FilterLabel" />
</label>
<div class="controls">
<femanager:form.textfield
id="searchword"
property="searchword"
placeholder="{f:translate(key:'FilterPlaceholder')}"
class="input-block-level" />
</div>
</div>
<div class="femanager_fieldset femanager_submit control-group">
<div class="controls">
<f:form.submit value="{f:translate(key:'FilterSubmit')}" class="btn btn-primary" />
</div>
</div>
</f:form>
</div>
</f:if>
@@ -0,0 +1,12 @@
<div xmlns="http://www.w3.org/1999/xhtml" lang="en" xmlns:f="http://typo3.org/ns/fluid/ViewHelpers" >
<f:layout name="Default" />
User / ConfirmUpdateRequest
Available variables:
{user}
<f:section name="main">
<f:render partial="Misc/FlashMessages" arguments="{_all}" />
<f:render partial="Misc/FormErrors" arguments="{object:User}" />
</f:section>
</div>
@@ -0,0 +1,90 @@
{namespace femanager=In2code\Femanager\ViewHelpers}
<div xmlns="http://www.w3.org/1999/xhtml" lang="en" xmlns:f="http://typo3.org/ns/fluid/ViewHelpers" >
<f:layout name="Default" />
User / Edit
Available variables:
{user}
{allUserGroups}
<f:section name="main">
<f:render partial="Misc/FlashMessages" arguments="{_all}" />
<f:render partial="Misc/FormErrors" arguments="{object:User}" />
<div class="femanager_edit">
<f:if condition="{user}">
<f:then>
<f:form
name="user"
object="{user}"
action="update"
enctype="multipart/form-data"
additionalAttributes="{data-femanager-plugin:data.uid,spellcheck:'false'}"
class="form-horizontal {f:if(condition:'{settings.edit.validation._enable.client}',then:'feManagerValidation',else:'')}">
<fieldset>
<legend>
<f:translate key="titleUpdateProfile" />
</legend>
<f:form.hidden name="token" value="{token}" />
<f:if condition="{settings.edit.fields}">
<f:then>
<f:comment>
If some fields are selected in the flexform
</f:comment>
<f:for each="{femanager:misc.explode(string:'{settings.edit.fields}')}" as="field">
<f:render partial="Fields/{femanager:misc.upper(string:'{field}')}" arguments="{_all}" />
</f:for>
<f:render partial="Fields/SubmitUpdate" arguments="{_all}" />
</f:then>
<f:else>
<f:comment>
If no fields are selected in the flexform => show all
</f:comment>
<f:render partial="Fields/Username" arguments="{_all}" />
<f:render partial="Fields/Password" arguments="{_all}" />
<f:render partial="Fields/Title" arguments="{_all}" />
<f:render partial="Fields/Name" arguments="{_all}" />
<f:render partial="Fields/FirstName" arguments="{_all}" />
<f:render partial="Fields/MiddleName" arguments="{_all}" />
<f:render partial="Fields/LastName" arguments="{_all}" />
<f:render partial="Fields/Gender" arguments="{_all}" />
<f:render partial="Fields/DateOfBirth" arguments="{_all}" />
<f:render partial="Fields/Company" arguments="{_all}" />
<f:render partial="Fields/Www" arguments="{_all}" />
<f:render partial="Fields/Email" arguments="{_all}" />
<f:render partial="Fields/Telephone" arguments="{_all}" />
<f:render partial="Fields/Fax" arguments="{_all}" />
<f:render partial="Fields/Address" arguments="{_all}" />
<f:render partial="Fields/Zip" arguments="{_all}" />
<f:render partial="Fields/City" arguments="{_all}" />
<f:render partial="Fields/Country" arguments="{_all}" />
<f:render partial="Fields/Image" arguments="{_all}" />
<f:render partial="Fields/Usergroup" arguments="{_all}" />
<f:if condition="{femanager:Misc.CaptchaEnabled(settings:'{settings}')}">
<f:render partial="Fields/Captcha" arguments="{_all}" />
</f:if>
<f:render partial="Fields/SubmitUpdate" arguments="{_all}" />
</f:else>
</f:if>
</fieldset>
<f:render partial="Misc/DeleteLink" arguments="{_all}" />
</f:form>
</f:then>
<f:else>
<div class="femanager_note">
<f:translate key="notLoggedIn" />
</div>
</f:else>
</f:if>
</div>
</f:section>
</div>
@@ -0,0 +1,43 @@
<f:layout name="Email" />
Email / CreateAdminConfirmation
This mail will be send to the admin, to confirm the new profile.
It's only activated, if there is min. one email in the flexform setting for admin confirmation.
Available variables:
{user} User Object
{hash} Hash to ensure authentication of link
<f:section name="main">
<p><f:translate key="emailCreateAdminConfirmationSalutation" /></p>
<p><f:translate key="emailCreateAdminConfirmationUserProperties" /></p>
<f:render partial="Mail/UserProperties" arguments="{_all}" />
<p>
<f:format.printf arguments="{0:user.username}">
<f:translate key="emailCreateAdminConfirmationText1" />
</f:format.printf>
<br>
<f:link.action action="confirmCreateRequest" controller="New" absolute="1" arguments="{user:user, hash:hash, adminHash:adminHash, status:'adminConfirmation'}">
<f:translate key="emailCreateAdminConfirmationLinkConfirm" />
</f:link.action>
</p>
<p>
<f:translate key="emailCreateAdminConfirmationText2" />
<br>
<f:link.action action="confirmCreateRequest" controller="New" absolute="1" arguments="{user:user, hash:hash, adminHash:adminHash, status:'adminConfirmationRefused'}">
<f:translate key="emailCreateAdminConfirmationLinkConfirmRefused" />
</f:link.action>
</p>
<p>
<f:translate key="emailCreateAdminConfirmationText3" />
<br>
<f:link.action action="confirmCreateRequest" controller="New" absolute="1" arguments="{user:user, hash:hash, adminHash:adminHash, status:'adminConfirmationRefusedSilent'}">
<f:translate key="emailCreateAdminConfirmationLinkConfirmRefusedSilent" />
</f:link.action>
</p>
</f:section>
@@ -0,0 +1,39 @@
<f:layout name="Email" />
Email / CreateNotify
This mail will be send to the admin, to inform him about a profile creation.
It's only activated, if there is min. one email in the flexform setting.
Available variables:
{user} User Object
{settings} Array with Flexform and TypoScript settings
<f:section name="main">
<p><f:translate key="emailCreateNotifySalutation" /></p>
<p>
<f:format.printf arguments="{0:user.username}">
<f:translate key="emailCreateNotifyText1" />
</f:format.printf>
</p>
<p><f:translate key="emailCreateNotifyUserProperties" /></p>
<f:render partial="Mail/UserProperties" arguments="{_all}" />
<p>
<f:translate key="emailCreateAdminConfirmationText2" />
<br>
<f:link.action action="confirmCreateRequest" controller="New" absolute="1" arguments="{user:user, hash:hash, status:'adminConfirmationRefused'}">
<f:translate key="emailCreateAdminConfirmationLinkConfirmRefused" />
</f:link.action>
</p>
<p>
<f:translate key="emailCreateAdminConfirmationText3" />
<br>
<f:link.action action="confirmCreateRequest" controller="New" absolute="1" arguments="{user:user, hash:hash, status:'adminConfirmationRefusedSilent'}">
<f:translate key="emailCreateAdminConfirmationLinkConfirmRefusedSilent" />
</f:link.action>
</p>
</f:section>
@@ -0,0 +1,32 @@
<f:layout name="Email" />
Email / CreateUserConfirmation
This mail will be send to the user, to confirm his new profile.
It's only activated, if the user-confirm-checkbox in the flexform setting was checked.
Available variables:
{user} User Object
{hash} Hash to ensure authentication of link
<f:section name="main">
<p><f:translate key="emailCreateUserConfirmationSalutation" /> {user.username},</p>
<p>
<f:translate key="emailCreateUserConfirmationText1" />
<br>
<f:link.action action="confirmCreateRequest" controller="New" absolute="1" arguments="{user:user, hash:hash, status:'userConfirmation'}">
<f:translate key="emailCreateUserConfirmationLinkConfirm" />
</f:link.action>
</p>
<p>
<f:translate key="emailCreateUserConfirmationText2" />
<br>
<f:link.action action="confirmCreateRequest" controller="New" absolute="1" arguments="{user:user, hash:hash, status:'userConfirmationRefused'}">
<f:translate key="emailCreateUserConfirmationLinkConfirmRefused" />
</f:link.action>
</p>
<p><f:translate key="emailCreateUserConfirmationSignature" /></p>
</f:section>
@@ -0,0 +1,17 @@
<f:layout name="Email" />
Email / CreateUserNotify
This mail will be send to the user, to inform him about his new profile.
It's always activated, even if the admin confirmation and/or the double-opt-in is activated.
Available variables:
{user} User Object
<f:section name="main">
<p><f:translate key="emailCreateUserNotifySalutation" /> {user.username},</p>
<p><f:translate key="emailCreateUserNotifyText1" /></p>
<p><f:translate key="emailCreateUserNotifySignature" /></p>
</f:section>
@@ -0,0 +1,17 @@
<f:layout name="Email" />
Email / CreateUserNotifyRefused
This mail will be send to the user, to inform him, that his registration was refused from the admin.
It's only activated, if the admin clicked the refused-profile link.
Available variables:
{user} User Object
<f:section name="main">
<p><f:translate key="emailCreateUserNotifyRefusedSalutation" /> {user.username},</p>
<p><f:translate key="emailCreateUserNotifyRefusedText1" /></p>
<p><f:translate key="emailCreateUserNotifyRefusedSignature" /></p>
</f:section>
@@ -0,0 +1,34 @@
<f:layout name="Email" />
Email / Invitation
This mail will be send to the user, to confirm his new profile and set a password.
It's everytime activated.
Available variables:
{user} User Object
{hash} Hash to ensure authentication of link
<f:section name="main">
<p><f:translate key="emailInvitationSalutation" /> {user.username},</p>
<p><f:translate key="emailInvitationText1" /></p>
<p>
<f:translate key="emailInvitationText2" />
<br>
<f:link.action action="edit" controller="Invitation" absolute="1" arguments="{user:user, hash:hash}">
<f:translate key="emailInvitationLinkConfirm" />
</f:link.action>
</p>
<p>
<f:translate key="emailInvitationText3" />
<br>
<f:link.action action="delete" controller="Invitation" absolute="1" arguments="{user:user, hash:hash}">
<f:translate key="emailInvitationLinkConfirmRefused" />
</f:link.action>
</p>
<p><f:translate key="emailCreateUserConfirmationSignature" /></p>
</f:section>
@@ -0,0 +1,23 @@
<f:layout name="Email" />
Email / InvitationNotify
This mail will be send to the admin, to inform him about a profile creation.
It's only activated, if there is min. one email in the flexform setting.
Available variables:
{user} User Object
{settings} Array with Flexform and TypoScript settings
<f:section name="main">
<p><f:translate key="emailCreateNotifySalutation" /></p>
<p>
<f:format.printf arguments="{0:user.username}">
<f:translate key="emailCreateNotifyText2" />
</f:format.printf>
</p>
<p><f:translate key="emailCreateNotifyUserProperties" /></p>
<f:render partial="Mail/UserProperties" arguments="{_all}" />
</f:section>
@@ -0,0 +1,23 @@
<f:layout name="Email" />
Email / InvitationNotify
This mail will be send to the admin, to inform him about a profile creation.
It's only activated, if there is min. one email in the flexform setting.
Available variables:
{user} User Object
{settings} Array with Flexform and TypoScript settings
<f:section name="main">
<p><f:translate key="emailCreateNotifySalutation" /></p>
<p>
<f:format.printf arguments="{0:user.username}">
<f:translate key="emailCreateNotifyText1" />
</f:format.printf>
</p>
<p><f:translate key="emailCreateNotifyUserProperties" /></p>
<f:render partial="Mail/UserProperties" arguments="{_all}" />
</f:section>
@@ -0,0 +1,23 @@
<f:layout name="Email" />
Email / InvitationRefused
This mail will be send to the admin when the user refused the profile creation.
It's only activated, if there is min. one email in the flexform setting (Notify admin on step 1).
Available variables:
{user} User Object
{settings} Array with Flexform and TypoScript settings
<f:section name="main">
<p><f:translate key="emailInvitationUserRefusedAdminNotifiySalutation" /></p>
<p>
<f:format.printf arguments="{0:user.username}">
<f:translate key="emailInvitationUserRefusedAdminNotifiyText2" />
</f:format.printf>
</p>
<p><f:translate key="emailInvitationUserRefusedAdminNotifiyUserProperties" /></p>
<f:render partial="Mail/UserProperties" arguments="{_all}" />
</f:section>
@@ -0,0 +1,93 @@
<f:layout name="Email" />
Email / UpdateNotify
This mail will be send to the admin, to inform him about a profile update.
It's only activated, if there is min. one email in the flexform setting.
Available variables:
{user} User Object
{changes} User Changes
{settings} Array with Flexform and TypoScript settings
<f:section name="main">
<p><f:translate key="emailUpdateNotifySalutation" /></p>
<p>
<f:format.printf arguments="{0:user.username}">
<f:translate key="emailUpdateNotifyText1" />
</f:format.printf>
</p>
<table border="1" cellpadding="2" cellspacing="2">
<thead>
<tr>
<th scope="col"><b><f:translate key="emailUpdateNotifyField" /></b></th>
<th scope="col"><b><f:translate key="emailUpdateNotifyOld" /></b></th>
<th scope="col"><b><f:translate key="emailUpdateNotifyNew" /></b></th>
</tr>
</thead>
<tbody>
<f:for each="{changes}" as="change" key="property">
<tr>
<th scope="row"><f:translate key="tx_femanager_domain_model_user.{property}" /></th>
<td>
<f:if condition="{0:property} == {0:'password'}">
<f:else>
<f:if condition="{change.old}">
<f:then>
<f:if condition="{0:property} == {0:'gender'}">
<f:then>
<f:translate key="tx_femanager_domain_model_user.gender.item{change.old}" />
</f:then>
<f:else>
<f:if condition="{0:property} == {0:'dateOfBirth'}">
<f:then>
<f:format.date format="{f:translate(key:'tx_femanager_domain_model_user.dateFormat')}">{change.old}</f:format.date>
</f:then>
<f:else>
{change.old}
</f:else>
</f:if>
</f:else>
</f:if>
</f:then>
<f:else>
[<f:translate key="empty" />]
</f:else>
</f:if>
</f:else>
<f:then>
******
</f:then>
</f:if>
</td>
<td>
<f:if condition="{0:property} == {0:'password'}">
<f:else>
<f:if condition="{0:property} == {0:'gender'}">
<f:then>
<f:translate key="tx_femanager_domain_model_user.gender.item{change.new}" />
</f:then>
<f:else>
<f:if condition="{0:property} == {0:'dateOfBirth'}">
<f:then>
<f:format.date format="{f:translate(key:'tx_femanager_domain_model_user.dateFormat')}">{change.new}</f:format.date>
</f:then>
<f:else>
{change.new}
</f:else>
</f:if>
</f:else>
</f:if>
</f:else>
<f:then>
******
</f:then>
</f:if>
</td>
</tr>
</f:for>
</tbody>
</table>
</f:section>
@@ -0,0 +1,113 @@
<f:layout name="Email" />
Email / UpdateRequest
This mail will be send to the admin, to get a confirmation about a profile update.
It's only activated, if there is min. one email in the flexform setting.
Available variables:
{user} User Object
{changes} Array with Changes
{hash} Hash to ensure authentication of link
<f:section name="main">
<p><f:translate key="emailUpdateRequestSalutation" /></p>
<p>
<f:format.printf arguments="{0:user.username}">
<f:translate key="emailUpdateRequestText1" />
</f:format.printf>
</p>
<p><f:translate key="emailUpdateRequestText2" /></p>
<table border="1" cellpadding="2" cellspacing="2">
<thead>
<tr>
<th scope="col"><b><f:translate key="emailUpdateRequestField" /></b></th>
<th scope="col"><b><f:translate key="emailUpdateRequestOld" /></b></th>
<th scope="col"><b><f:translate key="emailUpdateRequestNew" /></b></th>
</tr>
</thead>
<tbody>
<f:for each="{changes}" as="change" key="property">
<tr>
<th scope="row"><f:translate key="tx_femanager_domain_model_user.{property}" /></th>
<td>
<f:if condition="{0:property} == {0:'password'}">
<f:else>
<f:if condition="{change.old}">
<f:then>
<f:if condition="{0:property} == {0:'gender'}">
<f:then>
<f:translate key="tx_femanager_domain_model_user.gender.item{change.old}" />
</f:then>
<f:else>
<f:if condition="{0:property} == {0:'dateOfBirth'}">
<f:then>
<f:format.date format="{f:translate(key:'tx_femanager_domain_model_user.dateFormat')}">{change.old}</f:format.date>
</f:then>
<f:else>
{change.old}
</f:else>
</f:if>
</f:else>
</f:if>
</f:then>
<f:else>
[<f:translate key="empty" />]
</f:else>
</f:if>
</f:else>
<f:then>
******
</f:then>
</f:if>
</td>
<td>
<f:if condition="{0:property} == {0:'password'}">
<f:else>
<f:if condition="{0:property} == {0:'gender'}">
<f:then>
<f:translate key="tx_femanager_domain_model_user.gender.item{change.new}" />
</f:then>
<f:else>
<f:if condition="{0:property} == {0:'dateOfBirth'}">
<f:then>
<f:format.date format="{f:translate(key:'tx_femanager_domain_model_user.dateFormat')}">{change.new}</f:format.date>
</f:then>
<f:else>
{change.new}
</f:else>
</f:if>
</f:else>
</f:if>
</f:else>
<f:then>
******
</f:then>
</f:if>
</td>
</tr>
</f:for>
</tbody>
</table>
<ul>
<li>
<f:link.action action="confirmUpdateRequest" controller="Edit" absolute="1" arguments="{user:user, hash:hash}">
<f:translate key="emailUpdateRequestLinkConfirm" />
</f:link.action>
</li>
<li>
<f:link.action action="confirmUpdateRequest" controller="Edit" absolute="1" arguments="{user:user, hash:hash, status:'refuse'}">
<f:translate key="emailUpdateRequestLinkRefuse" />
</f:link.action>
</li>
<li>
<f:link.action action="confirmUpdateRequest" controller="Edit" absolute="1" arguments="{user:user, hash:hash, status:'silentRefuse'}">
<f:translate key="emailUpdateRequestLinkSiltentRefuse" />
</f:link.action>
</li>
</ul>
</f:section>
@@ -0,0 +1,24 @@
<f:layout name="Email" />
Email / UpdateRequestRefused
This mail will be send to the user, to inform him about a declined profile update from the admin.
It's only activated, if the admin clicks the related link in his UpdateRequest Email.
Available variables:
{user} User Object
<f:section name="main">
<p><f:translate key="emailUpdateRequestRefusedSalutation" /> {user.username},</p>
<p><f:translate key="emailUpdateRequestRefusedText1" /></p>
<p>
<f:format.printf arguments="{0:settings.edit.email.updateRequestRefused.sender.email.value}">
<f:translate key="emailUpdateRequestRefusedText2" />
</f:format.printf>
</p>
<p><f:translate key="emailUpdateRequestRefusedSignature" /></p>
</f:section>
@@ -0,0 +1,36 @@
{namespace femanager=In2code\Femanager\ViewHelpers}
<f:layout name="Default"/>
Invitation / Edit
Available variables:
{user}
{hash}
<f:section name="main">
<f:render partial="Misc/FlashMessages" arguments="{_all}"/>
<f:render partial="Misc/FormErrors" arguments="{object:User}"/>
<div class="femanager_invitation_edit">
<f:if condition="{user}">
<f:form
name="user"
object="{user}"
action="update"
additionalAttributes="{data-femanager-plugin:data.uid,spellcheck:'false'}"
class="form-horizontal {f:if(condition:'{settings.invitation.validation._enable.client}',then:'feManagerValidation',else:'')}">
<f:form.hidden name="hash" value="{hash}"/>
<fieldset>
<legend>
<f:translate key="titleInvitationSetPassword"/>
</legend>
<f:render partial="Fields/Password" arguments="{_all}"/>
<f:render partial="Fields/SubmitUpdate" arguments="{_all}"/>
</fieldset>
</f:form>
</f:if>
</div>
</f:section>
@@ -0,0 +1,75 @@
{namespace femanager=In2code\Femanager\ViewHelpers}
<f:layout name="Default" />
Invitation / New
This view is for the invitation feature:
Let a third person create a new user account
Available variables:
{user}
{allUserGroups}
<f:section name="main">
<f:render partial="Misc/FlashMessages" arguments="{_all}" />
<f:render partial="Misc/FormErrors" arguments="{object:User}" />
<div class="femanager_invitation_new">
<f:form
name="user"
object="{user}"
action="create"
additionalAttributes="{data-femanager-plugin:data.uid,spellcheck:'false'}"
class="form-horizontal {f:if(condition:'{settings.invitation.validation._enable.client}',then:'feManagerValidation',else:'')}">
<fieldset>
<legend>
<f:translate key="titleInvitationProfile" />
</legend>
<f:if condition="{settings.invitation.fields}">
<f:then>
<f:comment>
If some fields are selected in the flexform
</f:comment>
<f:render partial="Fields/Email" arguments="{_all}" />
<f:for each="{femanager:misc.explode(string:'{settings.invitation.fields}')}" as="field">
<f:render partial="Fields/{femanager:misc.upper(string:'{field}')}" arguments="{_all}" />
</f:for>
<f:render partial="Fields/SubmitCreate" arguments="{_all}" />
</f:then>
<f:else>
<f:comment>
If no fields are selected in the flexform => show all
</f:comment>
<f:render partial="Fields/Email" arguments="{_all}" />
<f:render partial="Fields/Username" arguments="{_all}" />
<f:render partial="Fields/Title" arguments="{_all}" />
<f:render partial="Fields/Name" arguments="{_all}" />
<f:render partial="Fields/FirstName" arguments="{_all}" />
<f:render partial="Fields/MiddleName" arguments="{_all}" />
<f:render partial="Fields/LastName" arguments="{_all}" />
<f:render partial="Fields/Gender" arguments="{_all}" />
<f:render partial="Fields/DateOfBirth" arguments="{_all}" />
<f:render partial="Fields/Www" arguments="{_all}" />
<f:render partial="Fields/Telephone" arguments="{_all}" />
<f:render partial="Fields/Fax" arguments="{_all}" />
<f:render partial="Fields/Address" arguments="{_all}" />
<f:render partial="Fields/Zip" arguments="{_all}" />
<f:render partial="Fields/City" arguments="{_all}" />
<f:render partial="Fields/Country" arguments="{_all}" />
<f:render partial="Fields/Image" arguments="{_all}" />
<f:render partial="Fields/Usergroup" arguments="{_all}" />
<f:if condition="{femanager:Misc.CaptchaEnabled(settings:'{settings}')}">
<f:render partial="Fields/Captcha" arguments="{_all}" />
</f:if>
<f:render partial="Fields/SubmitCreate" arguments="{_all}" />
</f:else>
</f:if>
</fieldset>
</f:form>
</div>
</f:section>
@@ -0,0 +1,9 @@
<f:layout name="Default" />
Invitation / Status
This view is only showed if an message should be shown to the user
E.g. If the user is not allowed to do something
<f:section name="main">
<f:render partial="Misc/FlashMessages" arguments="{_all}" />
</f:section>
@@ -0,0 +1,137 @@
<f:layout name="Default" />
User / Status
<f:section name="main">
<h3><f:translate key="createStatus">User registration</f:translate></h3>
<f:render partial="Misc/FlashMessages" arguments="{_all}" />
<f:switch expression="{status}">
<f:case value="confirmUser">
<f:form
name="user"
action="confirmCreateRequest"
enctype="multipart/form-data"
additionalAttributes="{data-femanager-plugin:data.uid}"
class="form-horizontal">
<fieldset>
<legend>
<f:translate key="confirmUserConfirmation" />
</legend>
<f:form.hidden name="user" value="{user.uid}" />
<f:form.hidden name="hash" value="{hash}" />
<f:form.hidden name="status" value="confirmedByUser" />
</fieldset>
<div class="femanager_fieldset femanager_submit form-group">
<div class="col-sm-10 col-sm-offset-2">
<f:form.submit
value="{f:translate(key:'submitNew')}"
id="femanager_field_submit"
class="btn btn-primary btn-large" />
</div>
</div>
</f:form>
</f:case>
<f:case value="confirmDeletion">
<f:form
name="user"
action="confirmCreateRequest"
enctype="multipart/form-data"
additionalAttributes="{data-femanager-plugin:data.uid}"
class="form-horizontal">
<fieldset>
<legend>
<f:translate key="confirmUserConfirmationRefused" />
</legend>
<f:form.hidden name="user" value="{user.uid}" />
<f:form.hidden name="hash" value="{hash}" />
<f:form.hidden name="status" value="confirmDeletion" />
</fieldset>
<div class="femanager_fieldset femanager_submit form-group">
<div class="col-sm-10 col-sm-offset-2">
<f:form.submit
value="{f:translate(key:'UserDeleteConfirmation')}"
id="femanager_field_submit"
class="btn btn-primary btn-large" />
</div>
</div>
</f:form>
</f:case>
<f:case value="confirmAdmin">
<f:form
name="user"
action="confirmCreateRequest"
enctype="multipart/form-data"
additionalAttributes="{data-femanager-plugin:data.uid}"
class="form-horizontal">
<fieldset>
<legend>
<f:translate key="confirmAdminConfirmation" />
</legend>
<f:form.hidden name="user" value="{user.uid}" />
<f:form.hidden name="hash" value="{hash}" />
<f:form.hidden name="status" value="confirmedByAdmin" />
</fieldset>
<div class="femanager_fieldset femanager_submit form-group">
<div class="col-sm-10 col-sm-offset-2">
<p><f:translate key="LLL:EXT:femanager/Resources/Private/Language/locallang.xlf:emailCreateAdminConfirmationUserProperties" /></p>
<f:render partial="Mail/UserProperties" arguments="{_all}" />
<br>
<f:form.submit
value="{f:translate(key:'submitNew')}"
id="femanager_field_submit"
class="btn btn-primary btn-large" />
</div>
</div>
</f:form>
</f:case>
<f:case value="confirmAdminRefused">
<f:form
name="user"
action="confirmCreateRequest"
enctype="multipart/form-data"
additionalAttributes="{data-femanager-plugin:data.uid}"
class="form-horizontal">
<fieldset>
<legend>
<f:if condition="{silent}">
<f:then>
<f:translate key="confirmAdminConfirmationRefusedSilent" />
</f:then>
<f:else>
<f:translate key="confirmAdminConfirmationRefused" />
</f:else>
</f:if>
</legend>
<f:form.hidden name="user" value="{user.uid}" />
<f:form.hidden name="hash" value="{hash}" />
<f:if condition="{silent}">
<f:then>
<f:form.hidden name="status" value="confirmedByAdminRefusedSilent" />
</f:then>
<f:else>
<f:form.hidden name="status" value="confirmedByAdminRefused" />
</f:else>
</f:if>
</fieldset>
<div class="femanager_fieldset femanager_submit form-group">
<div class="col-sm-10 col-sm-offset-2">
<p><f:translate key="LLL:EXT:femanager/Resources/Private/Language/locallang.xlf:emailCreateAdminConfirmationUserProperties" /></p>
<f:render partial="Mail/UserProperties" arguments="{_all}" />
<br>
<f:form.submit
value="{f:translate(key:'deleteProfile')}"
id="femanager_field_submit"
class="btn btn-primary btn-large" />
</div>
</div>
</f:form>
</f:case>
</f:switch>
</f:section>
@@ -0,0 +1,8 @@
<f:layout name="Default" />
User / Status
<f:section name="main">
<h3><f:translate key="createStatus">User registration</f:translate></h3>
<f:render partial="Misc/FlashMessages" arguments="{_all}" />
</f:section>
@@ -0,0 +1,73 @@
{namespace femanager=In2code\Femanager\ViewHelpers}
<f:layout name="Default" />
User / New
Available variables:
{user}
{allUserGroups}
<f:section name="main">
<f:render partial="Misc/FlashMessages" arguments="{_all}" />
<f:render partial="Misc/FormErrors" arguments="{object:User}" />
<f:render partial="Misc/ResendConfirmation" arguments="{_all}" />
<div class="femanager_new">
<f:form
name="user"
object="{user}"
action="create"
enctype="multipart/form-data"
additionalAttributes="{data-femanager-plugin:data.uid,spellcheck:'false'}"
class="form-horizontal {f:if(condition:'{settings.new.validation._enable.client}',then:'feManagerValidation',else:'')}">
<fieldset>
<legend>
<f:translate key="titleCreateProfile" />
</legend>
<f:if condition="{settings.new.fields}">
<f:then>
<f:comment>
If some fields are selected in the flexform
</f:comment>
<f:for each="{femanager:misc.explode(string:'{settings.new.fields}')}" as="field">
<f:render partial="Fields/{femanager:misc.upper(string:'{field}')}" arguments="{_all}" />
</f:for>
<f:render partial="Fields/SubmitCreate" arguments="{_all}" />
</f:then>
<f:else>
<f:comment>
If no fields are selected in the flexform => show all
</f:comment>
<f:render partial="Fields/Username" arguments="{_all}" />
<f:render partial="Fields/Password" arguments="{_all}" />
<f:render partial="Fields/Title" arguments="{_all}" />
<f:render partial="Fields/Name" arguments="{_all}" />
<f:render partial="Fields/FirstName" arguments="{_all}" />
<f:render partial="Fields/MiddleName" arguments="{_all}" />
<f:render partial="Fields/LastName" arguments="{_all}" />
<f:render partial="Fields/Gender" arguments="{_all}" />
<f:render partial="Fields/DateOfBirth" arguments="{_all}" />
<f:render partial="Fields/Company" arguments="{_all}" />
<f:render partial="Fields/Www" arguments="{_all}" />
<f:render partial="Fields/Email" arguments="{_all}" />
<f:render partial="Fields/Telephone" arguments="{_all}" />
<f:render partial="Fields/Fax" arguments="{_all}" />
<f:render partial="Fields/Address" arguments="{_all}" />
<f:render partial="Fields/Zip" arguments="{_all}" />
<f:render partial="Fields/City" arguments="{_all}" />
<f:render partial="Fields/Country" arguments="{_all}" />
<f:render partial="Fields/Image" arguments="{_all}" />
<f:render partial="Fields/Usergroup" arguments="{_all}" />
<f:render partial="Fields/Terms" arguments="{_all}" />
<f:if condition="{femanager:Misc.CaptchaEnabled(settings:'{settings}')}">
<f:render partial="Fields/Captcha" arguments="{_all}" />
</f:if>
<f:render partial="Fields/SubmitCreate" arguments="{_all}"/>
</f:else>
</f:if>
</fieldset>
</f:form>
</div>
</f:section>
@@ -0,0 +1,36 @@
<f:layout name="Default"/>
User / Status
<f:section name="main">
<f:render partial="Misc/FlashMessages" arguments="{_all}"/>
<f:render partial="Misc/FormErrors" arguments="{object:User}"/>
<div class="femanager_new">
<h3>
<f:translate key="resendConfirmationMailTitle">Resend confirmation mail</f:translate>
</h3>
<f:form
name="user"
object="{user}"
action="resendConfirmationMail"
enctype="multipart/form-data"
additionalAttributes="{spellcheck:'false'}"
class="form-horizontal {f:if(condition:'{settings.new.validation._enable.client}',then:'feManagerValidation',else:'')}">
<fieldset>
<legend>
<f:translate key="resendConfirmationMailFieldsetLegend"/>
</legend>
<f:render partial="Fields/Email" arguments="{_all}"/>
<div class="femanager_fieldset femanager_submit form-group">
<div class="col-sm-10 col-sm-offset-2">
<f:form.submit
value="{f:translate(key:'submitResend')}"
id="femanager_field_submit"
class="btn btn-primary btn-large" />
</div>
</div>
</fieldset>
</f:form>
</div>
</f:section>
@@ -0,0 +1,7 @@
<f:layout name="Clean" />
User / FileDelete
<f:section name="main">
{"success": true}
</f:section>
@@ -0,0 +1,5 @@
<f:layout name="Clean" />
User / FileUpload
<f:section name="main"></f:section>
@@ -0,0 +1,122 @@
{namespace femanager=In2code\Femanager\ViewHelpers}
<f:layout name="Default" />
User / List
This Template is responsible for the femanager list view
<f:section name="main">
<div class="femanager_list">
<f:render partial="Misc/FlashMessages" arguments="{_all}" />
<f:render partial="User/Searchform" arguments="{_all}" />
<f:if condition="{users}">
<f:then>
<ul class="media-list">
<f:for each="{users}" as="user">
<li class="media list-group-item">
<f:for each="{user.image}" as="image">
<f:link.action action="show" arguments="{user:user}" class="pull-left">
<f:image image="{image}" width="80c" height="80c" class="media-object" />
</f:link.action>
</f:for>
<div class="media-body">
<h4 class="media-heading">
<f:link.action action="show" arguments="{user:user}">
{user.username}
</f:link.action>
</h4>
{user.firstName} {user.lastName}
<f:if condition="{user.email}"><f:link.email email="{user.email}">{user.email}</f:link.email></f:if>
</div>
</li>
</f:for>
</ul>
</f:then>
<f:else>
<div class="femanager_note">
<f:translate key="noRecordsFound" />
</div>
</f:else>
</f:if>
</div>
</f:section>
<f:section name="main_old">
<div class="femanager_list">
<f:render partial="Misc/FlashMessages" arguments="{_all}" />
<f:if condition="{users}">
<f:then>
<ul>
<f:for each="{users}" as="user">
<li>
<ul>
<li>
<f:translate key="tx_femanager_domain_model_user.username" />:
<f:link.action action="show" arguments="{user:user}">{user.username}</f:link.action>
</li>
<li>
<f:translate key="tx_femanager_domain_model_user.usergroup" />:
<f:for each="{user.usergroup}" as="usergroup" iteration="i">{usergroup.title}<f:if condition="{i.isLast}"><f:else>, </f:else></f:if></f:for>
</li>
<li>
<f:translate key="tx_femanager_domain_model_user.firstName" />:
{user.firstName}
</li>
<li>
<f:translate key="tx_femanager_domain_model_user.username" />:
{user.lastName}
</li>
<li>
<f:translate key="tx_femanager_domain_model_user.gender" />:
<f:translate key="tx_femanager_domain_model_user.gender.item{user.gender}" />
</li>
<li>
<f:translate key="tx_femanager_domain_model_user.dateOfBirth" />:
<f:format.date format="{f:translate(key:'tx_femanager_domain_model_user.dateFormat')}">{user.dateOfBirth}</f:format.date>
</li>
<li>
<f:translate key="tx_femanager_domain_model_user.address" />:
{user.address}
</li>
<li>
<f:translate key="tx_femanager_domain_model_user.zip" />:
{user.zip}
</li>
<li>
<f:translate key="tx_femanager_domain_model_user.city" />:
{user.city}
</li>
<li>
<f:translate key="tx_femanager_domain_model_user.country" />:
{user.country}
</li>
<li>
<f:translate key="tx_femanager_domain_model_user.state" />:
<!-- // TODO: Check me if i was displayed -->
{user.country}
</li>
</ul>
</li>
</f:for>
</ul>
</f:then>
<f:else>
<div class="femanager_note">
<f:translate key="noRecordsFound" />
</div>
</f:else>
</f:if>
</div>
</f:section>
@@ -0,0 +1,97 @@
{namespace femanager=In2code\Femanager\ViewHelpers}
<f:layout name="Default" />
User / Show
<f:section name="main">
<div class="femanager_show">
<f:render partial="Misc/FlashMessages" arguments="{_all}" />
<f:if condition="{user}">
<f:then>
<ul>
<f:if condition="{user.username}">
<li>
<f:translate key="tx_femanager_domain_model_user.username" />:
<f:link.action action="show" arguments="{user:user}">{user.username}</f:link.action>
</li>
</f:if>
<f:if condition="{user.usergroup}">
<li>
<f:translate key="tx_femanager_domain_model_user.usergroup" />:
<f:for each="{user.usergroup}" as="usergroup" iteration="i">{usergroup.title}<f:if condition="{i.isLast}"><f:else>, </f:else></f:if></f:for>
</li>
</f:if>
<f:if condition="{user.firstName}">
<li>
<f:translate key="tx_femanager_domain_model_user.firstName" />:
{user.firstName}
</li>
</f:if>
<f:if condition="{user.lastName}">
<li>
<f:translate key="tx_femanager_domain_model_user.lastName" />:
{user.lastName}
</li>
</f:if>
<f:if condition="{user.email}">
<li>
<f:translate key="tx_femanager_domain_model_user.email" />:
<f:link.email email="{user.email}" />
</li>
</f:if>
<li>
<f:translate key="tx_femanager_domain_model_user.gender" />:
<f:translate key="tx_femanager_domain_model_user.gender.item{user.gender}" />
</li>
<f:if condition="{user.dateOfBirth}">
<li>
<f:translate key="tx_femanager_domain_model_user.dateOfBirth" />:
<f:format.date format="{f:translate(key:'tx_femanager_domain_model_user.dateFormat')}">{user.dateOfBirth}</f:format.date>
</li>
</f:if>
<f:if condition="{user.address}">
<li>
<f:translate key="tx_femanager_domain_model_user.address" />:
{user.address}
</li>
</f:if>
<f:if condition="{user.zip}">
<li>
<f:translate key="tx_femanager_domain_model_user.zip" />:
{user.zip}
</li>
</f:if>
<f:if condition="{user.city}">
<li>
<f:translate key="tx_femanager_domain_model_user.city" />:
{user.city}
</li>
</f:if>
<f:if condition="{user.country}">
<li>
<f:translate key="tx_femanager_domain_model_user.country" />:
{user.country}
</li>
</f:if>
<f:if condition="{user.state}">
<li>
<f:translate key="tx_femanager_domain_model_user.state" />:
<!-- // TODO: Check me if i was displayed -->
{user.state}
</li>
</f:if>
</ul>
<f:for each="{user.image}" as="image">
<f:image image="{image}" width="250" />
</f:for>
</f:then>
<f:else>
<div class="femanager_note">
<f:translate key="noRecordFoundShow" />
</div>
</f:else>
</f:if>
</div>
</f:section>
@@ -0,0 +1,23 @@
{namespace femanager=In2code\Femanager\ViewHelpers}
<f:layout name="Clean" />
User / Validate
Available variables:
{isValid} Boolean value if validation was correct or not
{messages} Errormessage from Validator
{validation} Validation String from HTML (like "required, email, min(10)")
{value} Value from field
{fieldname} Fieldname (like "username")
{user} User Object (only filled when used with edit action)
<f:section name="main">
<f:if condition="{isValid}">
<f:then>
<femanager:Misc.JsonEncode array="{validate: 1}" />
</f:then>
<f:else>
<femanager:Misc.JsonEncode array="{validate: 0, message: '{f:render(partial:\'Misc/ValidationMessages\',arguments:\'{_all}\')}'}" />
</f:else>
</f:if>
</f:section>
@@ -0,0 +1,119 @@
{namespace femanager=In2code\Femanager\ViewHelpers}
{namespace core=TYPO3\CMS\Core\ViewHelpers}
<f:layout name="Backend" />
UserBackend / List
<f:section name="main">
<div class="femanager_list">
<f:render partial="Misc/FlashMessages" arguments="{_all}" />
<f:render partial="Backend/Searchform" arguments="{_all}" />
<f:if condition="{users}">
<f:then>
<div class="alert alert-info">
<strong><f:translate key="BackendConfirmationNoteTitle">Action:</f:translate></strong>
<f:translate key="BackendConfirmationNoteText" arguments="{0:'{f:count(subject:users)}'}"><f:count subject="{users}" /> approval(s)</f:translate>
</div>
<femanager:pagination.paginate objects="{users}" as="usersPage" itemsPerPage="100">
<table cellspacing="0" cellpadding="0" border="0" class="table table-striped table-hover">
<tbody>
<tr class="c-headLine">
<td nowrap="nowrap">
<f:translate key="BackendConfirmationColumnAction">Actions</f:translate>
</td>
<td nowrap="nowrap">
<f:translate key="BackendConfirmationColumnUid">UID</f:translate>
</td>
<td nowrap="nowrap">
<f:translate key="tx_femanager_domain_model_user.crdate" />
</td>
<td nowrap="nowrap">
<f:translate key="tx_femanager_domain_model_user.username" />
</td>
<td nowrap="nowrap">
<f:translate key="tx_femanager_domain_model_user.country" />
</td>
<td nowrap="nowrap">
<f:translate key="tx_femanager_domain_model_user.state" />
<!-- // TODO: Check me if i was displayed -->
</td>
<td nowrap="nowrap">
<f:translate key="tx_femanager_domain_model_user.email" />
</td>
<td nowrap="nowrap">
<f:translate key="tx_femanager_domain_model_user.name" />
</td>
</tr>
<f:for each="{usersPage.paginator.paginatedItems}" as="user">
<tr class="db_list_normal firstcol femanager_list_line">
<td nowrap="nowrap">
<f:link.action action="confirmUser" arguments="{userIdentifier:user.uid}">
<core:icon identifier="actions-check" />
</f:link.action>
<f:link.action action="refuseUser" arguments="{userIdentifier:user.uid}">
<core:icon identifier="actions-close" />
</f:link.action>
</td>
<td nowrap="nowrap">
{user.uid}
</td>
<td nowrap="nowrap">
<f:format.date format="d.m.Y H:i">{user.crdate}</f:format.date>
</td>
<td nowrap="nowrap">
{user.username}
</td>
<td nowrap="nowrap">
{user.country}
</td>
<td nowrap="nowrap">
{user.state}
</td>
<td nowrap="nowrap">
<f:if condition="{user.email}">
<f:link.email email="{user.email}">{user.email}</f:link.email>
</f:if>
</td>
<td nowrap="nowrap">
{user.lastName}<f:if condition="{user.lastName}">,</f:if> {user.firstName}
</td>
</tr>
</f:for>
</tbody>
</table>
<f:alias map="{pagination:usersPage.pagination, paginator:usersPage.paginator, name:usersPage.name}">
<f:render partial="Misc/Pagination" arguments="{_all}" />
</f:alias>
</femanager:pagination.paginate>
</f:then>
<f:else>
<div class="femanager_note">
<f:translate key="noRecordsFound" />
<br />
<f:if condition="{femanager:Misc.Request(parameter:'tx_femanager_web_femanagerm1|filter|searchword')}">
<f:then>
<f:link.action>
<f:translate key="noRecordsFoundClearFilter">Clean filter.</f:translate>
</f:link.action>
</f:then>
<f:else>
<f:if condition="{femanager:Condition.IsBackendAdministratorAuthentication()}">
<f:link.action action="confirmation" class="underline" additionalParams="{id:0}">
<f:translate key="noRecordsFoundGoToPage0">Show all users from all pages (for admins only).</f:translate>
</f:link.action>
</f:if>
</f:else>
</f:if>
</div>
</f:else>
</f:if>
</div>
</f:section>
@@ -0,0 +1,235 @@
{namespace femanager=In2code\Femanager\ViewHelpers}
{namespace core=TYPO3\CMS\Core\ViewHelpers}
<f:layout name="Backend" />
UserBackend / List
<f:section name="main">
<div class="femanager_list">
<f:render partial="Misc/FlashMessages" arguments="{_all}" />
<f:render partial="Backend/Searchform" />
<f:if condition="{users}">
<f:then>
<femanager:pagination.paginate objects="{users}" as="usersPage" itemsPerPage="100">
<table cellspacing="0" cellpadding="0" border="0" class="table table-striped table-hover">
<tbody>
<tr class="t3-row-header">
<td nowrap="nowrap" class="col-icon">&nbsp;</td>
<td nowrap="nowrap" colspan="10">
<span class="c-table">
<f:translate key="tx_femanager_domain_model_user" />
</span>
(<f:count subject="{users}" />)
</td>
<td nowrap="nowrap" class="col-icon">&nbsp;</td>
</tr>
<tr class="c-headLine">
<td nowrap="nowrap" class="col-icon">
<a title="Create New User" href="{femanager:Misc.BackendNewLink(tableName:'fe_users')}">
<core:icon identifier="actions-document-new" />
</a>
</td>
<td nowrap="nowrap" class="col-icon">
Online
</td>
<td nowrap="nowrap" class="col-title">
<f:translate key="tx_femanager_domain_model_user.username" />
</td>
<td nowrap="nowrap">
<f:translate key="tx_femanager_domain_model_user.email" />
</td>
<td nowrap="nowrap">
<f:translate key="tx_femanager_domain_model_user.name" />
</td>
<td nowrap="nowrap">
<f:translate key="tx_femanager_domain_model_user.usergroup" />
</td>
<td nowrap="nowrap">
<f:translate key="tx_femanager_domain_model_user.crdate" />
</td>
<td nowrap="nowrap">
<f:translate key="tx_femanager_domain_model_user.lastlogin" />
</td>
<td nowrap="nowrap">
<f:translate key="tx_femanager_domain_model_user.inactivesince">
Inactive since
</f:translate>
</td>
<td nowrap="nowrap">
UID
</td>
<td nowrap="nowrap">
PID
</td>
<td nowrap="nowrap" class="col-icon"></td>
</tr>
<f:for each="{usersPage.paginator.paginatedItems}" as="user">
<tr class="db_list_normal firstcol femanager_list_line">
<td nowrap="nowrap" class="col-icon">
<span title="id={user.uid}"
class="tx-feusermanager-icon-status-user-frontend"
style="{f:if(condition:'{user.disable}', then:'display:none', else:'')}">
<core:icon identifier="status-user-frontend" />
</span>
<span title="id={user.uid} - {f:translate(key:'BackendListUserVisibilityHidden')}"
class="tx-feusermanager-icon-status-user-frontend-disabled"
style="{f:if(condition:'{user.disable}', then:'', else:'display:none')}">
<core:icon identifier="status-user-frontend" state="disabled" />
</span>
</td>
<td nowrap="nowrap" class="col-icon">
<span title="{f:translate(key:'BackendListUserStatusOnline')}"
class="tx-feusermanager-icon-status-status-permission-granted"
style="{f:if(condition:'{user.online}', then:'', else:'display:none')}">
<core:icon identifier="status-status-permission-granted" />
</span>
<span title="{f:translate(key:'BackendListUserStatusOffline')}"
class="tx-feusermanager-icon-status-status-permission-denied"
style="{f:if(condition:'{user.online}', then:'display:none', else:'')}">
<core:icon identifier="status-status-permission-denied" />
</span>
</td>
<td nowrap="nowrap" class="col-title">
{user.username}
</td>
<td nowrap="nowrap">
{user.email}
</td>
<td nowrap="nowrap">
{user.lastName}<f:if condition="{user.lastName}">,</f:if> {user.firstName}
</td>
<td nowrap="nowrap">
<f:for each="{user.usergroup}" as="usergroup" iteration="i">
<f:if condition="{i.isFirst}">
<f:else>
<br />
</f:else>
</f:if>
{usergroup.title}
</f:for>
</td>
<td nowrap="nowrap">
<f:format.date format="d.m.Y H:i">{user.crdate}</f:format.date>
</td>
<td nowrap="nowrap">
<f:format.date format="d.m.Y H:i">{user.lastlogin}</f:format.date>
</td>
<td nowrap="nowrap">
<f:format.date format="d.m.Y H:i">{user.inactiveSince}</f:format.date>
</td>
<td nowrap="nowrap">
{user.uid}
</td>
<td nowrap="nowrap">
{user.pid}
</td>
<td nowrap="nowrap">
<f:comment>
Edit Icon
</f:comment>
<a title="{f:translate(key:'BackendListUserEdit')}" href="{femanager:Misc.BackendEditLink(tableName:'fe_users',identifier:user.uid)}">
<core:icon identifier="actions-document-open" />
</a>
<f:comment>
Delete Icon
</f:comment>
<span class="deleteUser cursorpointer" title="{f:translate(key:'BackendListUserDelete')}">
<core:icon identifier="actions-edit-delete" />
</span>
<f:comment>
Enable/Disable Icon
</f:comment>
<span title="{f:translate(key: 'BackendListUserVisibilityUnhide')}"
class="unhideUser cursorpointer tx-feusermanager-icon-actions-edit-unhide"
style="{f:if(condition:'{user.disable} == 1', then:'', else:'display:none')}">
<core:icon identifier="actions-edit-unhide" />
</span>
<span title="{f:translate(key: 'BackendListUserVisibilityHide')}"
class="hideUser cursorpointer tx-feusermanager-icon-actions-edit-hide"
style="{f:if(condition:'{user.disable} == 1', then:'display:none', else:'')}">
<core:icon identifier="actions-edit-hide" />
</span>
<f:if condition="{loginAsEnabled}">
<f:comment>
Login as Icon
</f:comment>
<span title="{f:translate(key:'BackendListLoginAs')}"
class="tx-feusermanager-icon-actions-system-backend-user-switch"
style="{f:if(condition:'{user.online} == 1', then:'display:none', else:'{f:if(condition:\'{user.disable}\', then:\'display:none\', else:\'\')}')}">
<a href="/?type=1548943013&tx_femanager_pi1[user]={user.uid}" title="{f:translate(key: 'BackendListLoginAs')}" target="_blank">
<core:icon identifier="actions-system-backend-user-switch" />
</a>
</span>
<span title="{f:translate(key:'BackendListLoginAs')}"
class="tx-feusermanager-icon-actions-system-backend-user-switch-disabled"
style="{f:if(condition:'{user.online} == 1', then:'', else:'{f:if(condition:\'{user.disable}\', then:\'\', else:\'display:none\')}')}">
<core:icon identifier="actions-system-backend-user-switch" state="disabled" />
</span>
</f:if>
<f:comment>
Logout Icon
</f:comment>
<span title="{f:translate(key:'BackendListUserLogout')}"
class="tx-feusermanager-icon-apps-pagetree-drag-place-denied"
style="{f:if(condition:'{user.online}', then:'', else:'display:none')}">
<f:link.action action="userLogout" arguments="{user:user}" class="logoutUser" title="{f:translate(key:'BackendListUserLogout')}">
<core:icon identifier="apps-pagetree-drag-place-denied" />
</f:link.action>
</span>
<span title="{f:translate(key:'BackendListUserLogout')}"
class="tx-feusermanager-icon-apps-pagetree-drag-place-denied-disabled"
style="{f:if(condition:'{user.online}', then:'display:none', else:'')}">
<core:icon identifier="apps-pagetree-drag-place-denied" state="disabled" />
</span>
<input type="hidden" class="container_uid" name="container_uid" value="{user.uid}" />
<input type="hidden" class="container_module_uri" name="container_module_uri" value="{moduleUri}" />
<input type="hidden" class="container_table" name="container_table" value="fe_users" />
<input type="hidden" class="container_label_delete_confirmation" name="container_label_delete_confirmation" value="{f:translate(key:'BackendListUserDeleteConfirmation')}" />
</td>
</tr>
</f:for>
</tbody>
</table>
<f:alias map="{pagination:usersPage.pagination, paginator:usersPage.paginator, name:usersPage.name}">
<f:render partial="Misc/Pagination" arguments="{_all}" />
</f:alias>
</femanager:pagination.paginate>
</f:then>
<f:else>
<div class="femanager_note">
<f:translate key="noRecordsFound" />
<br />
<f:if condition="{femanager:Misc.Request(parameter:'tx_femanager_web_femanagerm1|filter|searchword')}">
<f:then>
<f:link.action>
<f:translate key="noRecordsFoundClearFilter">Clean filter.</f:translate>
</f:link.action>
</f:then>
<f:else>
<f:if condition="{femanager:Condition.IsBackendAdministratorAuthentication()}">
<f:link.action class="underline" additionalParams="{id:0}">
<f:translate key="noRecordsFoundGoToPage0">Show all users from all pages (for admins only).</f:translate>
</f:link.action>
</f:if>
</f:else>
</f:if>
</div>
</f:else>
</f:if>
</div>
</f:section>
@@ -0,0 +1,117 @@
{namespace femanager=In2code\Femanager\ViewHelpers}
{namespace core=TYPO3\CMS\Core\ViewHelpers}
<f:layout name="Backend" />
UserBackend / List
<f:section name="main">
<div class="femanager_list">
<f:render partial="Misc/FlashMessages" arguments="{_all}" />
<f:render partial="Backend/Searchform" arguments="{_all}" />
<f:if condition="{users}">
<f:then>
<div class="alert alert-info">
<strong><f:translate key="BackendConfirmationNoteTitle">Action:</f:translate></strong>
<f:translate key="BackendConfirmationNoteText" arguments="{0:'{f:count(subject:users)}'}"><f:count subject="{users}" /> open confirmation(s)</f:translate>
</div>
<femanager:pagination.paginate objects="{users}" as="usersPage" itemsPerPage="100">
<table cellspacing="0" cellpadding="0" border="0" class="table table-striped table-hover">
<tbody>
<tr class="c-headLine">
<td nowrap="nowrap">
<f:translate key="BackendConfirmationColumnAction">Actions</f:translate>
</td>
<td nowrap="nowrap">
<f:translate key="BackendConfirmationColumnUid">UID</f:translate>
</td>
<td nowrap="nowrap">
<f:translate key="tx_femanager_domain_model_user.crdate" />
</td>
<td nowrap="nowrap">
<f:translate key="tx_femanager_domain_model_user.username" />
</td>
<td nowrap="nowrap">
<f:translate key="tx_femanager_domain_model_user.country" />
</td>
<td nowrap="nowrap">
<f:translate key="tx_femanager_domain_model_user.state" />
<!-- // TODO: Check me if i was displayed -->
</td>
<td nowrap="nowrap">
<f:translate key="tx_femanager_domain_model_user.email" />
</td>
<td nowrap="nowrap">
<f:translate key="tx_femanager_domain_model_user.name" />
</td>
</tr>
<f:for each="{usersPage.paginator.paginatedItems}" as="user">
<tr class="db_list_normal firstcol femanager_list_line">
<td nowrap="nowrap">
<f:link.action action="resendUserConfirmationRequest" arguments="{userIdentifier:user.uid}" title="resend user confirmation email">
<core:icon identifier="actions-window-open" />
</f:link.action>
<f:link.action action="refuseUser" arguments="{userIdentifier:user.uid}" title="decline user">
<core:icon identifier="actions-close" />
</f:link.action>
</td>
<td nowrap="nowrap">
{user.uid}
</td>
<td nowrap="nowrap">
<f:format.date format="d.m.Y H:i">{user.crdate}</f:format.date>
</td>
<td nowrap="nowrap">
{user.username}
</td>
<td nowrap="nowrap">
{user.country}
</td>
<td nowrap="nowrap">
<f:if condition="{user.email}">
<f:link.email email="{user.email}">{user.email}</f:link.email>
</f:if>
</td>
<td nowrap="nowrap">
{user.lastName}<f:if condition="{user.lastName}">,</f:if> {user.firstName}
</td>
</tr>
</f:for>
</tbody>
</table>
<f:alias map="{pagination:usersPage.pagination, paginator:usersPage.paginator, name:usersPage.name}">
<f:render partial="Misc/Pagination" arguments="{_all}" />
</f:alias>
</femanager:pagination.paginate>
</f:then>
<f:else>
<div class="femanager_note">
<f:translate key="noRecordsFound" />
<br />
<f:if condition="{femanager:Misc.Request(parameter:'tx_femanager_web_femanagerm1|filter|searchword')}">
<f:then>
<f:link.action>
<f:translate key="noRecordsFoundClearFilter">Clean filter.</f:translate>
</f:link.action>
</f:then>
<f:else>
<f:if condition="{femanager:Condition.IsBackendAdministratorAuthentication()}">
<f:link.action action="confirmation" class="underline" additionalParams="{id:0}">
<f:translate key="noRecordsFoundGoToPage0">Show all users from all pages (for admins only).</f:translate>
</f:link.action>
</f:if>
</f:else>
</f:if>
</div>
</f:else>
</f:if>
</div>
</f:section>
@@ -0,0 +1 @@
.tx-femanager .qq-uploader{position:relative;width:100%}.tx-femanager .qq-upload-button-focus{outline:1px dotted #000000}.tx-femanager .qq-upload-drop-area,.tx-femanager .qq-upload-extra-drop-area{position:absolute;top:0;left:0;width:100%;height:100%;min-height:30px;z-index:2;background:#FF9797;text-align:center}.tx-femanager .qq-upload-drop-area span{display:block;position:absolute;top:50%;width:100%;margin-top:-8px;font-size:16px}.tx-femanager .qq-upload-extra-drop-area{position:relative;margin-top:50px;font-size:16px;padding-top:30px;height:20px;min-height:40px}.tx-femanager .qq-upload-drop-area-active{background:#FF7171}.tx-femanager .qq-upload-list{margin:0;padding:0;list-style:none}.tx-femanager .qq-upload-list .alert{text-align:center;margin-top:10px}.tx-femanager .qq-upload-list li{margin:0;padding:9px;line-height:15px;font-size:16px}.tx-femanager .qq-upload-file,.tx-femanager .qq-upload-spinner,.tx-femanager .qq-upload-size,.tx-femanager .qq-upload-cancel,.tx-femanager .qq-upload-retry,.tx-femanager .qq-upload-failed-text,.tx-femanager .qq-upload-finished,.tx-femanager .qq-upload-delete{margin-right:12px}.tx-femanager .qq-upload-delete{font:0/0 a !important;text-shadow:none;color:transparent !important;display:inline-block !important;margin-top:3px}.tx-femanager .qq-upload-spinner{display:inline-block;width:15px;height:15px;vertical-align:text-bottom}.tx-femanager .qq-drop-processing{display:none}.tx-femanager .qq-drop-processing-spinner{display:inline-block;width:24px;height:24px;vertical-align:text-bottom}.tx-femanager .qq-upload-finished{display:none;width:15px;height:15px;vertical-align:text-bottom}.tx-femanager .qq-upload-retry,.tx-femanager .qq-upload-delete{display:none;color:#000000}.tx-femanager .qq-upload-cancel,.tx-femanager .qq-upload-delete{color:#000000}.tx-femanager .qq-upload-retryable .qq-upload-retry{display:inline}.tx-femanager .qq-upload-size,.tx-femanager .qq-upload-cancel,.tx-femanager .qq-upload-retry,.tx-femanager .qq-upload-delete{font-size:12px;font-weight:normal}.tx-femanager .qq-upload-failed-text{display:none;font-style:italic;font-weight:bold}.tx-femanager .qq-upload-failed-icon{display:none;width:15px;height:15px;vertical-align:text-bottom}.tx-femanager .qq-upload-fail .qq-upload-failed-text{display:inline}.tx-femanager .qq-upload-retrying .qq-upload-failed-text{display:inline;color:#D60000}.tx-femanager .qq-upload-list li.qq-upload-success{background-color:#5DA30C;color:#FFFFFF}.tx-femanager .qq-upload-list li.qq-upload-fail{background-color:#D60000;color:#FFFFFF}.tx-femanager .qq-progress-bar{background:-moz-linear-gradient(top, #1e5799 0%, #2989d8 50%, #207cca 51%, #7db9e8 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #1e5799), color-stop(50%, #2989d8), color-stop(51%, #207cca), color-stop(100%, #7db9e8));background:-webkit-linear-gradient(top, #1e5799 0%, #2989d8 50%, #207cca 51%, #7db9e8 100%);background:-o-linear-gradient(top, #1e5799 0%, #2989d8 50%, #207cca 51%, #7db9e8 100%);background:-ms-linear-gradient(top, #1e5799 0%, #2989d8 50%, #207cca 51%, #7db9e8 100%);background:linear-gradient(to bottom, #1e5799 0%, #2989d8 50%, #207cca 51%, #7db9e8 100%);width:0%;height:15px;border-radius:6px;margin-bottom:3px;display:none;margin-top:10px}.tx-femanager .fileupload_image{max-width:200px;margin-top:20px}
@@ -0,0 +1 @@
.femanager_list a.underline{text-decoration:underline}.femanager_list .cursorpointer{cursor:pointer}.femanager_list .f3-widget-paginator li{display:inline-block;padding:2px}.femanager_list .f3-widget-paginator li.current{font-weight:bold}
@@ -0,0 +1 @@
.femanager_flashmessages>div{background-position:10px 12px;background-repeat:no-repeat;margin-bottom:4px;padding:12px 12px 12px 36px}.femanager_flashmessages>.message-2{background-color:#F6D3CF;border:1px solid #D66C68;color:#AA0225}.femanager_flashmessages>.message-1{background-color:#FBF6DE;border:1px solid #B1905C;color:#9E7D4A}.femanager_flashmessages>.message-0{background-color:#CDEACA;border:1px solid #58B548;color:#3B7826}.femanager_flashmessages>.message--1{background-color:#EAF7FF;border:1px solid #C5DBE6;color:#4C73A1}.femanager_flashmessages>.message--2{background-color:#F6F7FA;border:1px solid #C2CBCF;color:#444}.femanager_note{background-position:10px 12px;background-repeat:no-repeat;margin-bottom:4px;padding:12px 12px 12px 36px;background-color:#F6F7FA;border:1px solid #C2CBCF;color:#444;list-style-type:none;margin-left:0}.femanager_error{background-position:10px 12px;background-repeat:no-repeat;margin-bottom:4px;padding:12px 12px 12px 36px;background-color:#F6D3CF;border:1px solid #D66C68;color:#AA0225;list-style-type:none;margin-left:0}
@@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<path fill="#C83C3C" d="M0 0h64v64H0z"/>
<path fill="#FFF"
d="M46.6 41.2c-2.815-.768-4.974-1.825-6.976-2.678-.042.543-.243 1.113-.782 1.664-1.62 1.726-4.1 3.814-6.808 3.814-2.72 0-5.288-2.115-6.88-3.817-.558-.573-.743-1.177-.762-1.738-2.007.896-4.17 1.885-6.993 2.655 0 0-3.1 1.9-3.4 8.9h36c-.2-7.1-3.4-8.8-3.4-8.8z"/>
<path fill="#FFF"
d="M40 20.5c0-3.6-3.2-6.5-7-6.5h-2c-3.6 0-7 2.9-7 6.5v5c0 2.11 1.628 4.713 3.5 6.553-.1 5.4-1.7 5.947-.9 6.747 2.5 2.7 8.1 2.9 10.8 0 .797-.797-.59-1.3-.896-6.747 1.83-1.838 3.438-4.463 3.496-6.553v-5z"/>
</svg>

After

Width:  |  Height:  |  Size: 621 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 360 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 233 B

@@ -0,0 +1 @@
define(["jquery"],function(e){e(document).ready(function(e){e(".hideUser, .unhideUser").click(function(){var s=e(this),t=s.siblings(".container_module_uri").val(),i=s.siblings(".container_uid").val(),n=s.siblings(".container_table").val();if(s.hasClass("hideUser")){s.closest("tr").find(".tx-feusermanager-icon-status-user-frontend").hide(),s.closest("tr").find(".tx-feusermanager-icon-status-user-frontend-disabled").show(),s.closest("tr").find(".tx-feusermanager-icon-actions-edit-hide").hide(),s.closest("tr").find(".tx-feusermanager-icon-actions-edit-unhide").show(),s.closest("tr").find(".tx-feusermanager-icon-actions-system-backend-user-switch").hide(),s.closest("tr").find(".tx-feusermanager-icon-actions-system-backend-user-switch-disabled").show();var a=1}else{s.closest("tr").find(".tx-feusermanager-icon-status-user-frontend").show(),s.closest("tr").find(".tx-feusermanager-icon-status-user-frontend-disabled").hide(),s.closest("tr").find(".tx-feusermanager-icon-actions-edit-hide").show(),s.closest("tr").find(".tx-feusermanager-icon-actions-edit-unhide").hide(),s.closest("tr").find(".tx-feusermanager-icon-actions-system-backend-user-switch").show(),s.closest("tr").find(".tx-feusermanager-icon-actions-system-backend-user-switch-disabled").hide();var a=0}url=t+"&data["+n+"]["+i+"][disable]="+a,e.ajax({url:url})}),e(".deleteUser").click(function(){var s=e(this),t=s.siblings(".container_module_uri").val(),i=s.siblings(".container_uid").val(),n=s.siblings(".container_table").val(),a=s.siblings(".container_label_delete_confirmation").val();if(confirm(a)){s.closest("tr").fadeOut("fast");var r=t+"&cmd["+n+"]["+i+"][delete]=1";e.ajax({url:r})}}),e(".logoutUser").click(function(s){s.preventDefault();var t=e(this);t.closest("tr").find(".tx-feusermanager-icon-status-status-permission-granted").hide(),t.closest("tr").find(".tx-feusermanager-icon-status-status-permission-denied").show(),t.closest("tr").find(".tx-feusermanager-icon-actions-system-backend-user-switch-disabled").hide(),t.closest("tr").find(".tx-feusermanager-icon-actions-system-backend-user-switch").show(),t.closest("tr").find(".tx-feusermanager-icon-apps-pagetree-drag-place-denied").hide(),t.closest("tr").find(".tx-feusermanager-icon-apps-pagetree-drag-place-denied-disabled").show();var i=t.prop("href");e.ajax({url:i})})})});
@@ -0,0 +1 @@
jQuery.fn.femanagerData=function(e){function a(a){requestCallback=new d({numRequest:a.find("*[data-validation]").length,element:a}),a.find("*[data-validation]").each(function(){t(e(this),!0)})}function t(a,t){var o=a.closest("form"),c=o.find("div:first").find('input[name="tx_femanager_pi1[user][__identity]"]').val(),d=o.find("div:first").find('input[name="tx_femanager_pi1[__referrer][@action]"]').val(),p=Femanager.getBaseUrl()+"?id="+e("#femanagerPid").val()+"&type=1548935210",m=s(a),g=a.val();"checkbox"==a.prop("type")&&0==a.prop("checked")&&(g="");var v="";if(l(m,"sameAs")){var h=l(m,"sameAs"),_=f(h),b=e('input[name="tx_femanager_pi1[user]['+_+']"]');v=b.val(),"checkbox"==b.prop("type")&&0==b.prop("checked")&&(v="")}e.ajax({url:p,data:{"tx_femanager_pi1[validation]":a.attr("data-validation"),"tx_femanager_pi1[value]":g,"tx_femanager_pi1[field]":r(a),"tx_femanager_pi1[user]":void 0!==c?c:"","tx_femanager_pi1[additionalValue]":v?v:"","tx_femanager_pi1[plugin]":o.data("femanager-plugin"),"tx_femanager_pi1[referrerAction]":d,storagePid:e("#femanagerStoragePid").val(),L:e("#femanagerLanguage").val(),id:e("#femanagerPid").val()},type:"POST",cache:!1,success:function(e){if(t&&requestCallback.addCallbackToQueue(!0),e)try{e.validate?i(a):n(a,e.message)}catch(r){a.before(data)}},error:function(){u()}})}function r(e){var a="",t=e.prop("name").split("[");return a=void 0!==t[2]?t[2].replace("]",""):t[1].replace("]","")}function n(a,t){i(a);var r=e(".femanager_validation_container").html().replace("###messages###",t);a.before(r),a.closest(".form-group").addClass("has-error"),a.addClass("error")}function i(e){e.closest(".form-group").removeClass("has-error"),e.siblings(".alert").remove(),e.removeClass("error")}function o(a){0==a.find(".error").length?(submitFormAllowed=!0,a.submit()):e("html,body").animate({scrollTop:a.find(".error:first").offset().top})}function l(e,a){for(var t=0;t<e.length;t++)if(e[t].indexOf(a)!==-1)return e[t];return""}function s(e){return e.attr("data-validation").split(",")}function f(e){var a="";if(e.indexOf("(")!==-1){var t=e.split("(");a=t[1].substr(0,t[1].length-1)}return a}function u(){"object"==typeof console&&console.log("Error: The called url is not available - if you use TYPO3 in a subfolder, please use config.baseURL in TypoScript")}var c=e(this),d=function(){var a,t,r;return function(n){n||(n={}),a=n.numRequest||0,t=n.requestsCompleted||0,c=n.element||0,r=[];var i=function(){e("body").css("cursor","default"),o(c);for(var a=0;a<r.length;a++)r[a]()};n.singleCallback&&r.push(n.singleCallback),this.addCallbackToQueue=function(e,n){e&&t++,n&&r.push(n),t==a&&i()},this.requestComplete=function(e){e&&t++,t==a&&i()},this.setCallback=function(e){r.push(callBack)}}}();e("*[data-validation]").blur(function(){t(e(this),!1)}),c.submit(function(t){e("body").css("cursor","wait"),submitFormAllowed||(t.preventDefault(),a(e(this)))})};
@@ -0,0 +1 @@
function createUploader(e){if(0!=e("#femanager_field_fine-uploader").length){var a={imageNames:{},getImageNames:function(){return e.map(this.imageNames,function(e){return e}).join(",")},addImageName:function(a,t){this.imageNames[a]=t,e("#femanager_field_image").val(this.getImageNames())},deleteImageName:function(a){delete this.imageNames[a],e("#femanager_field_image").val(this.getImageNames())}};new qq.FineUploader({element:document.getElementById("femanager_field_fine-uploader"),request:{endpoint:Femanager.getBaseUrl()+"index.php?eID=femanagerFileUpload&id="+e("#femanagerPid").val(),customHeaders:{Accept:"application/json"}},multiple:!0,template:e(".image_container_template:first").html(),fileTemplate:'<li><div class="qq-progress-bar"></div><span class="qq-upload-spinner"></span><span class="qq-upload-finished"></span><span class="qq-upload-file"></span><span class="qq-upload-size"></span><a class="qq-upload-cancel" href="#">{cancelButtonText}</a><a class="qq-upload-retry" href="#">{retryButtonText}</a><a class="qq-upload-delete icon-trash" href="#">{deleteButtonText}</a><span class="qq-upload-status-text">{statusText}</span></li>',deleteFile:{enabled:!0,forceConfirm:!0,endpoint:Femanager.getBaseUrl()+"index.php?eID=femanagerFileDelete&id="+e("#femanagerPid").val()},classes:{success:"alert alert-success",fail:"alert alert-error"},validation:{allowedExtensions:getValueFromField("#uploadFileExtension","jpeg, jpg, gif, png, bmp","array"),sizeLimit:getValueFromField("#uploadSize",25e6,"int"),itemLimit:getValueFromField("#uploadAmount",1,"int")},callbacks:{onComplete:function(t,n,i){if(i.success){var l=e("<img />").addClass("fileupload_image").prop("src",e("#uploadFolder").val()+"/"+i.uploadName).prop("alt",i.uploadName);l.appendTo(this.getItemByFileId(t)),a.addImageName(t,i.uploadName)}},onDeleteComplete:function(e,t,n){a.deleteImageName(e)}}});return a}}function getValueFromField(e,a,t){var n=a;return $(e).length&&(n=$(e).val()),void 0!==t&&("int"===t?n=parseInt(n):"array"===t&&(n=n.toString(),n=n.replace(/[\s,]+/g,","),n=n.split(","))),n}jQuery(document).ready(function(e){function a(e){e+="";var a=e.charAt(0).toLowerCase();return a+e.substr(1)}var t;t=null!=document.querySelector(".tx-femanager[data-labels]")?JSON.parse(document.querySelector(".tx-femanager[data-labels]").dataset.labels):[],e(".feManagerValidation").femanagerValidation(e);var n=createUploader(e);e("#femanager_field_image").length>0&&e.each(e("#femanager_field_image").val().split(","),function(e,a){a.trim().length>0&&n.addImageName(a,a)}),e("#femanager_field_preview-image").find(".qq-upload-delete").click(function(a){a.preventDefault();var t=e(a.target).parent();n.deleteImageName(t.find(".qq-upload-file").text()),t.fadeOut("",function(){e(this).remove()})}),e("*[data-confirm]").click(function(a){var t=e(this).attr("data-confirm");confirm(t)||a.preventDefault()}),document.querySelectorAll("[data-data-endpoint]").forEach(function(n){var i=function(i){var l=n.dataset.dataEndpoint,o={"tx_femanager_pi1[action]":l,"tx_femanager_pi1[controller]":"Data"};arguments=JSON.parse(JSON.stringify(n.dataset));for(var r in arguments)if(arguments.hasOwnProperty(r)&&r.match("arguments")){var s=document.getElementById(arguments[r]);if(s){var d=a(r.substr(9));o["tx_femanager_pi1["+d+"]"]=s.value}}var p=Femanager.getBaseUrl()+"index.php?id="+e("#femanagerPid").val()+"&type=1594138042",m=n.dataset.selectedValue;e.ajax({url:p,data:o,type:"POST",cache:!1,beforeSend:function(){n.disabled=1,n.options.length=0,n.options[0]=new Option(t.loading_states)},success:function(e){n.disabled=1,n.options.length=0,""===m||e.hasOwnProperty(m)||(n.options[n.options.length]=new Option(t.please_choose));for(var a in e)if(e.hasOwnProperty(a)){var i=a===m;n.options[n.options.length]=new Option(e[a],a,i,i),n.disabled=0}},error:function(){console.log("Error: The called url is not available - if you use TYPO3 in a subfolder, please use config.baseURL in TypoScript")}})},l=n.dataset.triggerFields;void 0!==l?l.split(",").forEach(function(e){var a=document.getElementById(e);void 0!==a&&a.addEventListener("change",i)}):n.addEventListener("change",i),i()})}),window.Femanager={},window.Femanager.getBaseUrl=function(){var e;if(jQuery("base").length>0)e=jQuery("base").prop("href");else if(window.location.hostname.indexOf("localhost")!==-1)e="";else{var a="";window.location.port.length>0&&(a=":"+window.location.port),e="https:"!==window.location.protocol?"http://"+window.location.hostname+a+"/":"https://"+window.location.hostname+a+"/"}return e};
@@ -0,0 +1 @@
jQuery.fn.femanagerValidation=function(e){function a(a){c=new g({numRequest:a.find("*[data-validation]").length,element:a}),a.find("*[data-validation]").each(function(){n(e(this),!0)})}function n(a,n){if(a.prop("disabled"))return void(n&&c.addCallbackToQueue(!0));var o=a.closest("form"),d=o.find("div:first").find('input[name="tx_femanager_pi1[user][__identity]"]').val(),p=o.find("div:first").find('input[name="tx_femanager_pi1[__referrer][@action]"]').val(),g=Femanager.getBaseUrl()+"?id="+e("#femanagerPid").val()+"&type=1548935210",m=s(a),v=a.val();"checkbox"==a.prop("type")&&0==a.prop("checked")&&(v="");var h="";if(l(m,"sameAs")){var _=l(m,"sameAs"),b=f(_),x=e('input[name="tx_femanager_pi1[user]['+b+']"]');h=x.val(),"checkbox"==x.prop("type")&&0==x.prop("checked")&&(h="")}e.ajax({url:g,data:{"tx_femanager_pi1[validation]":a.attr("data-validation"),"tx_femanager_pi1[value]":v,"tx_femanager_pi1[field]":r(a),"tx_femanager_pi1[user]":void 0!==d?d:"","tx_femanager_pi1[additionalValue]":h?h:"","tx_femanager_pi1[plugin]":o.data("femanager-plugin"),"tx_femanager_pi1[referrerAction]":p,storagePid:e("#femanagerStoragePid").val(),L:e("#femanagerLanguage").val(),id:e("#femanagerPid").val()},type:"POST",cache:!1,success:function(e){if(n&&c.addCallbackToQueue(!0),e)try{e.validate?i(a):t(a,e.message)}catch(r){a.before(data)}},error:function(){u()}})}function r(e){var a="",n=e.prop("name").split("[");return a=void 0!==n[2]?n[2].replace("]",""):n[1].replace("]","")}function t(a,n){i(a);var r=e(".femanager_validation_container").html().replace("###messages###",n);a.before(r),a.closest(".form-group").addClass("has-error"),a.addClass("error")}function i(e){e.closest(".form-group").removeClass("has-error"),e.siblings(".alert").remove(),e.removeClass("error")}function o(e){if(0==e.find(".error").length)p=!0,e.trigger("submit");else{const a=e.find(".error:first")[0];if(!a)return;a.scrollIntoView({behavior:"smooth"})}}function l(e,a){for(var n=0;n<e.length;n++)if(e[n].indexOf(a)!==-1)return e[n];return""}function s(e){return e.attr("data-validation").split(",")}function f(e){var a="";if(e.indexOf("(")!==-1){var n=e.split("(");a=n[1].substr(0,n[1].length-1)}return a}function u(){"object"==typeof console&&console.log("Error: The called url is not available - if you use TYPO3 in a subfolder, please use config.baseURL in TypoScript")}var c,d=e(this),p=!1;0==d.find("*[data-validation]").length&&(p=!0);var g=function(){var a,n,r;return function(t){t||(t={}),a=t.numRequest||0,n=t.requestsCompleted||0,d=t.element||0,r=[];var i=function(){e("body").css("cursor","default"),o(d);for(var a=0;a<r.length;a++)r[a]()};t.singleCallback&&r.push(t.singleCallback),this.addCallbackToQueue=function(e,t){e&&n++,t&&r.push(t),n==a&&i()},this.requestComplete=function(e){e&&n++,n==a&&i()},this.setCallback=function(e){r.push(callBack)}}}();e("*[data-validation]").on("blur",function(){n(e(this),!1)}),d.on("submit",function(n){e("body").css("cursor","wait"),p||(n.preventDefault(),a(e(this)))})};
@@ -0,0 +1,6 @@
/*!
* Bootstrap v3.3.7 (http://getbootstrap.com)
* Copyright 2011-2016 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\Line truncated
/*# sourceMappingURL=bootstrap.min.css.map */
@@ -0,0 +1,7 @@
/*!
* Bootstrap v3.3.7 (http://getbootstrap.com)
* Copyright 2011-2016 Twitter, Inc.
* Licensed under the MIT license
*/
if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>3)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){if(a(b.target).is(this))return b.handleObj.handler.apply(this,arguments)}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.7",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a("#"===f?[]:f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.7",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c).prop(c,!0)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c).prop(c,!1))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target).closest(".btn");b.call(d,"toggle"),a(c.target).is('input[type="radio"], input[type="checkbox"]')||(c.preventDefault(),d.is("input,button")?d.trigger("focus"):d.find("input:visible,button:visible").first().trigger("focus"))}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:tLine truncated
this.activeTarget=b,this.clear();var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")},b.prototype.clear=function(){a(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION="3.3.7",c.TRANSITION_DURATION=150,c.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a"),f=a.Event("hide.bs.tab",{relatedTarget:b[0]}),g=a.Event("show.bs.tab",{relatedTarget:e[0]});if(e.trigger(f),b.trigger(g),!g.isDefaultPrevented()&&!f.isDefaultPrevented()){var h=a(d);this.activate(b.closest("li"),c),this.activate(h,h.parent(),function(){e.trigger({type:"hidden.bs.tab",relatedTarget:b[0]}),b.trigger({type:"shown.bs.tab",relatedTarget:e[0]})})}}},c.prototype.activate=function(b,d,e){function f(){g.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.7",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return e<c&&"top";if("bottom"==this.affixed)return null!=c?!(e+this.unpin<=f.top)&&"bottom":!(e+g<=a-d)&&"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&e<=c?"top":null!=d&&i+j>=a-d&&"bottom"},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery);