denny/ShinyCMS

View on GitHub
root/admin/users/edit_user.tt

Summary

Maintainability
Test Coverage
[%- IF user.id;
        meta.title = 'Edit User';
    ELSE;
        meta.title = 'Add User';
    END;
-%]

<script type="text/javascript">
function changeSrc() {
    document.getElementById('user_profile_pic').src="[% c.uri_for( '/static/images/1x1.gif' ) %]";
}
</script>

<form id="edit_user" method="post" enctype="multipart/form-data" action="[% c.uri_for( '/admin/users/save' ) %]">
    <p>
        <label for="username">
            Username
        </label>
        [%- IF user.id %]
        <br><input type="text" class="textlong" id="username" name="username" size="50" maxlength="50" value="[% user.username %]" disabled="disabled">
        <span class="small">
            &nbsp;<a class="action" href="[% c.uri_for( '/user', user.username ) %]">View profile</a>
        </span>
        [%- ELSE %]
        <br><input type="text" class="textlong" id="username" name="username" size="50" maxlength="50">
        [%- END %]
    </p>
    [%- UNLESS user.id %]
    <p>
        <label for="password">
            Password
        </label>
        <br><input type="password" class="textlong" id="password" name="password" size="50" maxlength="200">
    </p>
    [%- END %]
    <p>
        <label for="email">
            Real Email (private - must be a valid email address)
        </label>
        <br><input type="text" class="textlong" id="email" name="email" value="[% user.email | html %]" size="50" maxlength="200">
    </p>
    <p>
        <label for="display_email">
            Display email (public - can be spam-trapped or left blank)
        </label>
        <br><input type="text" class="textlong" id="display_email" name="display_email" value="[% user.display_email | html %]" size="50" maxlength="200">
    </p>
    <p>
        <label for="profile_pic">
            Profile picture
        </label>
        <br><input type="file" id="profile_pic" name="profile_pic" onChange="javascript:changeSrc()">
    </p>
    <p>
        <img id="user_profile_pic"
            [%- IF user.profile_pic -%]
            src="[% c.uri_for( '/static/cms-uploads/user-profile-pics', user.username, user.profile_pic ) %]"
            class="outlined"
            alt="Picture of [% user.display_name || user.username | html %]">
            [%- ELSE -%]
            src="[% c.uri_for( '/static', 'images', '1x1.gif' ) %]" alt="">
            [%- END %]
    </p>
    <p>
        <label for="display_name">
            Display name (displayed on user's posts and comments)
        </label>
        <br><input type="text" class="textshort" id="display_name" name="display_name" value="[% user.display_name | html %]" size="50">
    </p>
    <p>
        <label for="website">
            Website (displayed on user's profile)
        </label>
        <br><input type="text" class="textlong" id="website" name="website" value="[% user.website | url %]" size="200">
    </p>
    <p>
        <label for="location">
            Location (displayed on user's profile)
        </label>
        <br><input type="text" class="textshort" id="location" name="location" value="[% user.location | html %]" size="100">
    </p>
    <p>
        <label for="postcode">
            Postcode (creates Google Maps link on user's profile)
        </label>
        <br><input type="text" class="textshort" id="postcode" name="postcode" value="[% user.postcode | html %]" size="10">
    </p>
    <p>
        <label for="bio">
            Bio (displayed on user's profile)
        </label>
        <br><textarea columns="80" rows="5" name="bio">[% user.bio | html %]</textarea>
    </p>
    <p>
        <label for="firstname">
            First name
        </label>
        <br><input type="text" class="textshort" id="firstname" name="firstname" value="[% user.firstname | html %]" size="50">
    </p>
    <p>
        <label for="firstname">
            Surname
        </label>
        <br><input type="text" class="textshort" id="surname" name="surname" value="[% user.surname | html %]" size="50">
    </p>
    <p>
        <label for="allow_comments">Allow profile comments (disabling this will delete any existing comments)</label>
        <br><input type="checkbox" id="allow_comments" name="allow_comments" [% 'checked="checked"' IF user.discussion OR ( comments_default_on AND NOT user.id ) %]>
    </p>
    <p>
        <label for="active">
            Active (uncheck to disable user account)
        </label>
        <br><input type="checkbox" name="active" value="1"[% IF user.active == 1 %]checked="checked"[% END %]>
    </p>
    <p>
        <span class="label">Roles</span>
        [%- FOREACH role IN roles %]
        <br><label for="role_[% role.id %]"><input id="role_[% role.id %]" name="role_[% role.id %]" type="checkbox"[% IF user.has_role(role.role) %] checked="checked"[% END %]> [% role.role | html %]</label>
        [%- END %]
    </p>
    <p>
        <div style="float: left; width: 150px;">
            <span class="label">Access Group</span>
        </div>
        <div style="float: left; width: 200px;">
            <span class="label">Access Expiry Date and Time</span>
        </div>
        <div style="clear: both;"></div>
        [%- FOREACH group IN access_groups %]
        <div style="float: left; width: 150px;">
            <label for="group_[% group.id %]">[% group.access | html %][% IF user.access_expires(group.access) AND user.access_expires(group.access) != 'never' AND user.access_expires(group.access) < now %] <span style="color: #dd0000;">(expired)</span>[% END %]</label>
        </div>
        <div style="float: left; width: 400px;">
            [%- expires = user.access_expires(group.access) %]
            [%- IF expires == 'never' OR NOT expires %]
            <input id="group_[% group.id %]" name="date_group_[% group.id %]" type="text" value="[% expires %]" class="textveryshort">
            <input id="group_[% group.id %]" name="time_group_[% group.id %]" type="text" value="" class="textveryshort">
            [%- ELSE %]
            <input id="group_[% group.id %]" name="date_group_[% group.id %]" type="text" value="[% expires.ymd %]" class="textveryshort">
            <input id="group_[% group.id %]" name="time_group_[% group.id %]" type="text" value="[% expires.time %]" class="textveryshort">
            [%- END %]
        </div>
        [%- END %]
        <div style="clear: both;"></div>
    </p>
    <p>
        <label for="admin_notes">
            Admin notes
        </label>
        <br><textarea name="admin_notes">[% user.admin_notes | html %]</textarea>
    </p>
    <p>
        <input name="user_id" type="hidden" value="[% user.id %]">
        <input name="submit"  type="submit" value="Save">
        <input name="reset"   type="reset"  value="Reset">
        [%- IF user.id %]
        <input name="delete"  type="submit" value="Delete" onclick="javascript:return confirm('Are you sure you want to delete this user?')">
        [%- END %]
    </p>
</form>