Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
04/01/16 16:34:14 (9 years ago)
Author:
jlodewyc
Message:

#2582 User delete, subscriptions. Groups add, delete, edit, add members

Location:
branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/User
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/User/Groups.cshtml

    r13740 r13742  
    11@using HeuristicLab.Clients.Hive.WebJobManager.ViewModels.User;
    2 
     2@using HeuristicLab.Clients.Access;
     3@model UserViewModel
    34
    45<div>
     
    1112            <a asp-controller="User"
    1213               asp-action="Index">
    13                 Users
     14                <i class="fa fa-user"></i> Users
    1415            </a>
    1516        </li>
     
    1819            <a asp-controller="User"
    1920               asp-action="Groups">
    20                 Groups
     21                <i class="fa fa-group"></i> Groups
    2122            </a>
    2223        </li>
     
    2526            <a asp-controller="User"
    2627               asp-action="Roles">
    27                 Roles
     28                <i class="fa fa-sitemap"></i> Roles
    2829            </a>
    2930        </li>
     
    3132    <div class="row"
    3233         style="text-align:center">
    33         Model.message
     34        @Model.message
    3435    </div>
    3536    <div class="row"
    3637         style="padding:10px; margin-right:0px!important">
    37        
     38        <div class="col-sm-4">
     39            <div class="btn-group-vertical btn-block">
     40                <a class="btn btn-info btn-lg btn-block disabled"
     41                   style="box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
     42                            text-shadow:2px 2px black;">
     43                    <i class="fa fa-group"></i> @Model.ugroups.Count Group@(Model.ugroups.Count != 1 ? "s" : "")
     44                </a>
     45                <a class="btn btn-success btn-block
     46                       @(Model.SelectedGroup.Id == Guid.Empty ? "active" : "")
     47                       "
     48                   asp-controller="User"
     49                   asp-action="SelectGroup"
     50                   asp-route-id="@Guid.Empty"
     51                   onclick="showGroup()"
     52                   style="box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
     53                            text-shadow:2px 2px black;">
     54                    <i class="fa fa-plus-circle"></i> Add new group
     55                </a>
     56                @foreach (var group in Model.ugroups)
     57                {
     58                    <a class="btn  btn-default @( group.Id == Model.SelectedGroup.Id ? "active" : "" )"
     59                       style="box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);"
     60                       asp-controller="User"
     61                       asp-action="SelectGroup"
     62                       asp-route-id="@group.Id"
     63                       onclick="showGroup()">
     64                        @group.Name
     65                    </a>
     66                }
     67            </div>
     68        </div>
     69        <p style="display:none"
     70           id="saver"
     71           class="text-center">
     72            <br /><br /><br /><br /><br /><br /><br />
     73            <i class="fa fa-save fa-spin fa-5x" id="spinner">
     74            </i>
     75        </p>
     76        <p style="display:none"
     77           id="group"
     78           class="text-center">
     79            <br /><br /><br /><br /><br /><br /><br />
     80            <i class="fa fa-group fa-spin fa-5x" id="spinner">
     81            </i>
     82        </p>
     83        <p style="display:none"
     84           id="deleter"
     85           class="text-center">
     86            <br /><br /><br /><br /><br /><br /><br />
     87            <i class="fa fa-trash-o fa-spin fa-5x" id="spinner">
     88            </i>
     89        </p>
     90
     91        <div class="col-sm-8"
     92             id="content"
     93             style="padding:5px; padding-left:10px;">
     94            @if (Model.SelectedGroup != null)
     95            {
     96                <div class="panel panel-default"
     97                     style="border-width:2px!important;padding:17px;
     98                        box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);">
     99                    <div class="row">
     100                        <h2 style="padding-left:20px">
     101                            @if (Model.SelectedGroup.Id != Guid.Empty)
     102                            {
     103                                <i class="fa fa-group"></i> @Model.SelectedGroup.Name
     104                            }
     105                            else
     106                            {
     107                                <i class='fa fa-plus-circle'></i> @("Add new group")
     108
     109                            }
     110                        </h2>
     111                        <form class="form-horizontal"
     112                              method="post"
     113                              asp-action="saveGroup"
     114                              asp-controller="User" enctype="multipart/form-data">
     115                            <div class="form-group">
     116                                <label for="inpgroupname"
     117                                       class="col-sm-3 control-label">
     118                                    Group name
     119                                </label>
     120                                <div class="col-sm-8">
     121                                    <input type="text"
     122                                           class="form-control"
     123                                           id="inpgroupname"
     124                                           name="inpgroupname"
     125                                           placeholder="Group name"
     126                                           onkeydown="triggerSave()"
     127                                           value="@Model.SelectedGroup.Name">
     128                                </div>
     129                            </div>
     130
     131                            <div class="form-group">
     132                                <label class="col-sm-3 control-label">
     133                                    Group id
     134                                </label>
     135                                <label class="col-sm-8 control-label" style="text-align:left">
     136                                    @Model.SelectedGroup.Id
     137                                </label>
     138                                <input type="text"
     139                                       style="display:none"
     140                                       id="u"
     141                                       name="u"
     142                                       value="@Model.SelectedGroup.Id" />
     143                            </div>
     144                            @if (Model.SelectedGroup.Id != Guid.Empty)
     145                            {
     146                                <div style="padding-left:20px">
     147                                    <h3>@Model.SelectedGroupMembers.Count Member@(Model.SelectedGroupMembers.Count != 1 ? "s" : "")</h3>
     148                                    @foreach (var member in Model.SelectedGroupMembers)
     149                                    {
     150                                        <p>
     151                                            <a class="btn btn-danger"
     152                                               asp-controller="User"
     153                                               asp-action="deleteMember"
     154                                               asp-route-g="@Model.SelectedGroup.Id"
     155                                               asp-route-m="@member.Id"
     156                                               onclick="showDeleter()">
     157                                                <i class="fa fa-trash-o"></i>
     158                                            </a>
     159                                            @if (member is User)
     160                                            {
     161                                                var umember = (User)member;
     162                                                <i class="fa fa-user"></i> @(umember.UserName + "(" + umember.FullName + ")")
     163
     164
     165                                            }
     166                                            else if (member is UserGroup)
     167                                            {
     168                                                var gmember = (UserGroup)member;
     169                                                <i class="fa fa-group"></i> @(gmember.Name)
     170
     171                                            }
     172
     173                                        </p>
     174                                    }
     175                                    @if (Model.SelectedGroupMembers.Count == 0)
     176                                    {
     177                                        <p>This group currently has no members</p>
     178
     179                                    }
     180                                </div>
     181                            }
     182                            <div class="row" style="margin-left:10px;margin-right:10px;margin-top:-10px">
     183                                <a class="btn btn-primary"
     184                                   data-toggle="collapse"
     185                                   href="#addmembers"
     186                                   aria-expanded="false"
     187                                   aria-controls="addmembers"
     188                                   style="margin:10px; box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
     189                            text-shadow:2px 2px black;">
     190                                    Add members
     191                                </a>
     192                                <div class="collapse"
     193                                     id="addmembers">
     194                                    <div class="panel panel-primary col-sm-6" style="padding:0px">
     195                                        <div class="panel-heading">
     196                                            <p>
     197                                                <i class="fa fa-user"></i> Users
     198                                                <button class="btn btn-sm btn-default"
     199                                                        type="button"
     200                                                        onclick="selectAll('userstoadd'); triggerSave()">Select all</button>
     201                                                <button class="btn btn-sm btn-default"
     202                                                         type="button"
     203                                                        onclick="deselectAll('userstoadd'); triggerSave()">Deselect all</button>
     204                                            </p>
     205                                        </div>
     206                                        <div class="panel-body">
     207                                            @foreach (var user in Model.users)
     208                                            {
     209                                                <div class="checkbox">
     210                                                    <label>
     211                                                        <input type="checkbox"
     212                                                               name="userstoadd"
     213                                                               @(Model.SelectedGroupMembers.Contains(user) ? "checked disabled" : "")
     214                                                               value="@user.Id"
     215                                                               onclick="triggerSave()">
     216                                                        @user.UserName (@user.FullName)
     217                                                    </label>
     218                                                </div>
     219
     220                                            }
     221                                        </div>
     222                                    </div>
     223                                    <div class="panel panel-primary col-sm-6" style="padding:0px">
     224                                        <div class="panel-heading">
     225                                            <p><i class="fa fa-group"></i> Groups
     226                                           
     227                                                <button class="btn btn-sm btn-default"
     228                                                        type="button"
     229                                                        onclick="selectAll('groupstoadd'); triggerSave()">
     230                                                    Select all
     231                                                </button>
     232                                                <button class="btn btn-sm btn-default"
     233                                                        type="button"
     234                                                        onclick="deselectAll('groupstoadd'); triggerSave()">
     235                                                    Deselect all
     236                                                </button>
     237                                            </p>
     238                                        </div>
     239                                        <div class="panel-body">
     240                                            @foreach (var group in Model.ugroups)
     241                                            {
     242                                                <div class="checkbox">
     243                                                    <label>
     244                                                        <input type="checkbox"
     245                                                               name="groupstoadd"
     246                                                               @(Model.SelectedGroupMembers.Contains(group) ? "checked disabled" : "")
     247                                                               value="@group.Id"
     248                                                               onclick="triggerSave()">
     249                                                        @group.Name
     250                                                    </label>
     251                                                </div>
     252
     253                                            }
     254                                        </div>
     255                                    </div>
     256                                </div>
     257                            </div>
     258                            @if (Model.SelectedGroup.Id == Guid.Empty)
     259                            {//New goup
     260                                <div class="form-group">
     261                                    <div class="col-sm-offset-3 col-sm-9">
     262                                        <button type="submit"
     263                                                id="inpsaver"
     264                                                disabled
     265                                                class="btn btn-default"
     266                                                onclick="showSaver()">
     267                                            <i class="fa fa-plus-circle"></i> Add group
     268                                        </button>
     269                                    </div>
     270                                </div>
     271
     272
     273                            }
     274                            else
     275                            {//Changing an existing group
     276
     277                                <div class="form-group">
     278                                    <div class="col-sm-offset-3 col-sm-3">
     279                                        <button type="submit"
     280                                                id="inpsaver"
     281                                                disabled
     282                                                class="btn btn-default"
     283                                                onclick="showSaver()">
     284                                            <i class="fa fa-save"></i> Save changes
     285                                        </button>
     286                                    </div>
     287                                    <div class="col-sm-5">
     288                                        <a class="btn btn-danger pull-right"
     289                                           asp-controller="User"
     290                                           asp-action="deleteGroup"
     291                                           asp-route-id="@Model.SelectedGroup.Id"
     292                                           onclick="showDeleter()">
     293                                            <i class="fa fa-trash-o"></i> Delete group
     294                                        </a>
     295                                    </div>
     296                                </div>
     297
     298
     299
     300                            }
     301                            <script type="text/javascript">
     302                                function triggerSave() {
     303                                    if ($("#inpgroupname").val() != "") {
     304                                        document.getElementById("inpsaver").className = "btn btn-lg btn-success";
     305                                        document.getElementById("inpsaver").disabled = false;
     306                                    }
     307                                    else {
     308                                        document.getElementById("inpsaver").className = "btn btn-default";
     309                                        document.getElementById("inpsaver").disabled = true;
     310
     311                                    }
     312
     313                                }
     314                            </script>
     315                        </form>
     316
     317                    </div>
     318                </div>
     319
     320            }
     321        </div>
    38322    </div>
     323    <script type="text/javascript">
     324        function showSaver() {
     325            document.getElementById("content").style.display = "none";
     326            document.getElementById("saver").style.display = "";
     327
     328        }
     329        function showGroup() {
     330            document.getElementById("content").style.display = "none";
     331            document.getElementById("group").style.display = "";
     332
     333        }
     334        function showDeleter() {
     335            document.getElementById("content").style.display = "none";
     336            document.getElementById("deleter").style.display = "";
     337        }
     338        function selectAll(name) {
     339            checkboxes = document.getElementsByName(name);
     340            for(var i=0, n=checkboxes.length;i<n;i++) {
     341                checkboxes[i].checked = true;
     342            }
     343        }
     344        function deselectAll(name) {
     345            checkboxes = document.getElementsByName(name);
     346            for (var i = 0, n = checkboxes.length; i < n; i++) {
     347                if(checkboxes[i].disabled == false)
     348                checkboxes[i].checked = false;
     349            }
     350        }
     351    </script>
    39352</div>
  • branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/User/Index.cshtml

    r13741 r13742  
    1111            <a asp-controller="User"
    1212               asp-action="Index">
    13                 Users
     13                <i class="fa fa-user"></i> Users
    1414            </a>
    1515        </li>
     
    1818            <a asp-controller="User"
    1919               asp-action="Groups">
    20                 Groups
     20                <i class="fa fa-group"></i> Groups
    2121            </a>
    2222        </li>
     
    2525            <a asp-controller="User"
    2626               asp-action="Roles">
    27                 Roles
     27                <i class="fa fa-sitemap"></i> Roles
    2828            </a>
    2929        </li>
     
    5151                       style="box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
    5252                            text-shadow:2px 2px black;">
    53                         <i class="fa fa-users"></i> Users
     53                        <i class="fa fa-user"></i> @Model.users.Count User@(Model.users.Count != 1 ? "s" : "")
    5454                    </a>
    5555                    <a class="btn btn-success btn-block
     
    110110                                @if (Model.SelectedUser.Id != Guid.Empty)
    111111                                {
    112                                     @Model.SelectedUser.UserName;
     112                                    <i class="fa fa-user "></i> @Model.SelectedUser.UserName;
    113113                                }
    114114                                else
    115115                                {
    116                                    @("Add new user")
     116                                    <i class="fa fa-user-plus "></i> @("Add new user")
    117117
    118118                                }
    119119                            </h2>
    120120                            <form class="form-horizontal"
    121                                    method="post"
     121                                  method="post"
    122122                                  asp-action="saveUser"
    123123                                  asp-controller="User" enctype="multipart/form-data">
    124                                 <div class="form-group">
     124                                <div class="form-group" style="@(Model.SelectedUser.Id == Guid.Empty ? "" : "display:none")">
    125125                                    <label for="inpusername"
    126126                                           class="col-sm-3 control-label">
     
    133133                                               name="inpusername"
    134134                                               placeholder="Username"
    135                                                onchange="triggerSave()"
     135                                               onkeydown="triggerSave()"
    136136                                               value="@Model.SelectedUser.UserName">
    137137                                    </div>
     
    148148                                               name="inpfullname"
    149149                                               placeholder="Full name"
    150                                                onchange="triggerSave()"
     150                                               onkeydown="triggerSave()"
    151151                                               value="@Model.SelectedUser.FullName">
    152152                                    </div>
     
    163163                                               name="inpemail"
    164164                                               placeholder="Email"
    165                                                onchange="triggerSave()"
     165                                               onkeydown="triggerSave()"
    166166                                               value="@Model.SelectedUser.Email">
    167167                                    </div>
     
    203203                                                    id="inpsaver"
    204204                                                    disabled
    205                                                     class="btn btn-lg btn-default">
    206                                                 Add user
     205                                                    class="btn btn-default"
     206                                                    onclick="showSaver()">
     207                                                <i class="fa fa-plus-square-o"></i> Add user
    207208                                            </button>
    208209                                        </div>
     
    215216                                    <div class="form-group">
    216217                                        <label class="col-sm-3 control-label">
    217                                             Last activity
     218                                            Password
    218219                                        </label>
    219                                         <div id="inppassreset">
     220                                        <div id="inppassreset" class="col-sm-8">
    220221                                            <button type="button"
    221222                                                    onclick="resetPass('@(Model.SelectedUser.Id)')"
    222                                                     class="btn btn-lg btn-default">
    223                                                 Reset password
     223                                                    class="btn btn-default">
     224                                                <i class="fa fa-unlock"></i> Reset password
    224225                                            </button>
    225226                                        </div>
    226227                                    </div>
     228
    227229                                    <div class="form-group">
    228                                         <div class="col-sm-offset-3 col-sm-9">
     230                                        <label class="col-sm-3 control-label">
     231                                            Member of
     232                                        </label>
     233                                        <div class="col-sm-8">
     234                                            @if (Model.SelectedUserSubscriptions.Count > 0)
     235                                            {
     236                                                @foreach (var g in Model.SelectedUserSubscriptions)
     237                                                {
     238                                                    <p><i class="fa fa-group"></i> @g.Name</p>
     239                                                }
     240                                            }
     241                                            else
     242                                            {
     243                                                <p>Not a member of any groups</p>
     244                                            }
     245                                        </div>
     246                                    </div>
     247                                    <div class="form-group">
     248                                        <div class="col-sm-offset-3 col-sm-3">
    229249                                            <button type="submit"
    230250                                                    id="inpsaver"
    231251                                                    disabled
    232                                                     class="btn btn-lg btn-default">
    233                                                 Save changes
     252                                                    class="btn btn-default"
     253                                                    onclick="showSaver()">
     254                                                <i class="fa fa-save"></i> Save changes
    234255                                            </button>
    235256                                        </div>
    236                                     </div>
     257                                        <div class="col-sm-5">
     258                                            <a class="btn btn-danger pull-right"
     259                                               asp-controller="User"
     260                                               asp-action="deleteUser"
     261                                               asp-route-id="@Model.SelectedUser.Id"
     262                                               onclick="showDeleter()">
     263                                                <i class="fa fa-trash-o"></i> Delete user
     264                                            </a>
     265                                        </div>
     266                                    </div>
     267
    237268
    238269
     
    240271                                <script type="text/javascript">
    241272                                    function triggerSave() {
    242                                         if ($("#inpusername").val() != "" &&
    243                                             $("#inpfullname").val() != "" &&
     273                                        if ($("#inpfullname").val() != "" &&
    244274                                            $("#inpemail").val() != "") {
    245275                                            document.getElementById("inpsaver").className = "btn btn-lg btn-success";
     
    247277                                        }
    248278                                        else {
    249                                             document.getElementById("inpsaver").className = "btn btn-lg btn-default";
     279                                            document.getElementById("inpsaver").className = "btn btn-default";
    250280                                            document.getElementById("inpsaver").disabled = true;
    251281
Note: See TracChangeset for help on using the changeset viewer.