{% extends 'base.html' %}
{% load common_tags %}
{% load users_tags %}
{% load static %}
{% load i18n %}

{% block custom_head_css_js %}
    <link href="{% static "css/plugins/select2/select2.min.css" %}" rel="stylesheet">
    <script src="{% static "js/plugins/select2/select2.full.min.js" %}"></script>
{% endblock %}
{% block content %}
    <div class="wrapper wrapper-content animated fadeInRight">
        <div class="row">
            <div class="col-sm-12">
                <div class="ibox float-e-margins">
                    <div class="panel-options">
                        <ul class="nav nav-tabs">
                            <li class="active"><a href="" class="text-center"><i class="fa fa-laptop"></i> {% trans 'User detail' %} </a>
                            </li>
                            <li><a href="" class="text-center"><i class="fa fa-bar-chart-o"></i> {% trans 'User assets' %}</a></li>
                            <li><a href="" class="text-center"><i class="fa fa-bar-chart-o"></i> {% trans 'User log' %}</a></li>
                        </ul>
                    </div>
                    <div class="tab-content">
                        <div class="col-sm-7" style="padding-left: 0px;">
                            <div class="ibox float-e-margins">
                                <div class="ibox-title">
                                    <span class="label"><b>{{ user_object.name }}</b></span>
                                    <div class="ibox-tools">
                                        <a class="collapse-link">
                                            <i class="fa fa-chevron-up"></i>
                                        </a>
                                        <a class="dropdown-toggle" data-toggle="dropdown" href="#">
                                            <i class="fa fa-wrench"></i>
                                        </a>
                                        <ul class="dropdown-menu dropdown-user">
                                            <li><a href="#"></a>
                                            </li>
                                            <li><a href="#"></a>
                                            </li>
                                        </ul>
                                        <a class="close-link">
                                            <i class="fa fa-times"></i>
                                        </a>
                                    </div>
                                </div>
                                <div class="ibox-content">
                                    <table class="table">
                                        <tbody>
                                        <tr class="no-borders-tr">
                                            <td colspan="2">
                                                <img src="{{ user_object | user_avatar_url }}" class="img-circle" width="64" height="64">
                                            </td>
                                        </tr>
                                        <tr>
                                            <td width="20%">{% trans 'Name' %}:</td>
                                            <td><b>{{ user_object.name }}</b></td>
                                        </tr>
                                        <tr>
                                            <td>{% trans 'Username' %}:</td>
                                            <td><b>{{ user_object.username }}</b></td>
                                        </tr>
                                        <tr>
                                            <td>{% trans 'Email' %}:</td>
                                            <td><b>{{ user_object.email }}</b></td>
                                        </tr>
                                        {% if user_object.phone %}
                                            <tr>
                                                <td>{% trans 'Phone' %}:</td>
                                                <td><b>{{ user_object.phone }}</b></td>
                                            </tr>
                                        {% endif %}
                                        {% if user_object.wechat %}
                                            <tr>
                                                <td>{% trans 'Wechat' %}:</td>
                                                <td><b>{{ user_object.wechat }}</b></td>
                                            </tr>
                                        {% endif %}
                                        <tr>
                                            <td>{% trans 'Role' %}:</td>
                                            <td><b>{{ user_object.get_role_display }}</b></td>
                                        </tr>
                                        <tr>
                                            <td>{% trans 'Date expired' %}:</td>
                                            <td><b>{{ user_object.date_expired|date:"Y-m-j H:i:s" }}</b></td>
                                        </tr>
                                        <tr>
                                            <td>{% trans 'Created by' %}:</td>
                                            <td><b>{{ user_object.created_by }}</b></td>
                                        </tr>
                                        <tr>
                                            <td>{% trans 'Date joined' %}:</td>
                                            <td><b>{{ user_object.date_joined|date:"Y-m-j H:i:s" }}</b></td>
                                        </tr>
                                        <tr>
                                            <td>{% trans 'Last login' %}:</td>
                                            <td><b>{{ user_object.last_login|date:"Y-m-j H:i:s" }}</b></td>
                                        </tr>
                                        <tr>
                                            <td>{% trans 'Comment' %}:</td>
                                            <td><b>{{ user_object.comment }}</b></td>
                                        </tr>
                                        </tbody>
                                    </table>
                                </div>
                            </div>
                        </div>
                        <div class="col-sm-5" style="padding-left: 0;padding-right: 0">
                            <div class="panel panel-primary">
                                <div class="panel-heading">
                                    <i class="fa fa-info-circle"></i> {% trans 'Quick update' %}
                                </div>
                                <div class="panel-body">
                                    <table class="table">
                                        <tbody>
                                        <tr class="no-borders-tr">
                                            <td width="50%">Active:</td>
                                            <td><span style="float: right">
                                                <div class="switch">
                                                    <div class="onoffswitch">
                                                        <input type="checkbox" {% if user_object.is_active %} checked {% endif %}  class="onoffswitch-checkbox" id="is_active">
                                                        <label class="onoffswitch-label" for="is_active">
                                                            <span class="onoffswitch-inner"></span>
                                                            <span class="onoffswitch-switch"></span>
                                                        </label>
                                                    </div>
                                                </div>
                                            </span></td>
                                        </tr>
                                        <tr>
                                            <td>二次验证:</td>
                                            <td><span style="float: right">
                                                <div class="switch">
                                                    <div class="onoffswitch">
                                                        <input type="checkbox" class="onoffswitch-checkbox" {% if user_object.enable_otp %} checked {% endif %}
                                                               id="enable_otp">
                                                        <label class="onoffswitch-label" for="enable_otp">
                                                            <span class="onoffswitch-inner"></span>
                                                            <span class="onoffswitch-switch"></span>
                                                        </label>
                                                    </div>
                                                </div>
                                            </span></td>
                                        </tr>
                                        <tr>
                                            <td>{% trans 'Reset password' %}:</td>
                                            <td>
                                                <span style="float: right">
                                                    <button type="button" class="btn btn-primary btn-xs" style="width: 54px">{% trans 'Reset' %}</button>
                                                </span>
                                            </td>
                                        </tr>
                                        <tr>
                                            <td>{% trans 'Reset ssh key' %}:</td>
                                            <td>
                                                <span style="float: right">
                                                    <button type="button" class="btn btn-primary btn-xs" style="width: 54px;">{% trans 'Reset' %}</button>
                                                </span>
                                            </td>
                                        </tr>
                                        </tbody>
                                    </table>
                                </div>
                            </div>

                            <div class="panel panel-info">
                                <div class="panel-heading">
                                    <i class="fa fa-info-circle"></i> {% trans 'User group' %}
                                </div>
                                <div class="panel-body">
                                    <table class="table group_edit">
                                        <tbody>
                                        <form>
                                            <tr>
                                                <td colspan="2" class="no-borders">
                                                    <select data-placeholder="{% trans 'Join user groups' %}" id="slct_groups" class="select2" style="width: 100%" multiple="" tabindex="4">
                                                        {% for group in groups %}
                                                        <option value="{{ group.id }}" id="opt_{{ group.id }}">{{ group.name }}</option>
                                                        {% endfor %}
                                                    </select>
                                                </td>
                                            </tr>
                                            <tr>
                                                <td colspan="2" class="no-borders">
                                                    <button type="button" class="btn btn-info btn-small" id="btn_add_user_group">{% trans 'Join' %}</button>
                                                </td>
                                            </tr>
                                        </form>

                                        {% for group in user_object.groups.all %}
                                        <tr>
                                          <td ><b class="bdg_user_group" data-gid={{ group.id }}>{{ group.name }}</b></td>
                                          <td>
                                              <button class="btn btn-danger btn-xs btn_delete_user_group" type="button" style="float: right;"><i class="fa fa-minus"></i></button>
                                          </td>
                                        </tr>
                                        {% endfor %}
                                        </tbody>
                                    </table>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    </div>

{% endblock %}
{% block custom_foot_js %}
<script>
jumpserver.selected_groups = new Object();
function updateUserGroups(user_groups) {
  var the_url = "{% url 'users:user-group-edit-api' pk=user_object.id%}";
  var body = {
    id: {{ user_object.id }},
    groups: Object.assign([], user_groups)
  };
  var success = function(data) {
    // remove all the selected groups from select > option and rendered ul element;
    $('.select2-selection__rendered').empty();
    $('#slct_groups').val('');
    $.map(jumpserver.selected_groups, function(group_name, index){
      $('#opt_' + index).remove();
      // change tr html of user groups.
      $('.group_edit tbody').append(
        '<tr>' +
          '<td><b class="bdg_user_group" data-gid="' + index + '">' + group_name + '</b></td>' +
          '<td><button class="btn btn-danger btn-sm btn_delete_user_group" type="button" style="float: right;"><i class="fa fa-minus"></i></button></td>' +
        '</tr>'
      )
    });
    // clear jumpserver.selected_groups
    jumpserver.selected_groups = {};
    toastr.success('{% trans "Update success!" %}')
  }
  APIUpdateAttr({ url: the_url, body: JSON.stringify(body), success: success, method: 'PUT'});

}
$(document).ready(function () {
  $('.select2').select2()
  .on('select2:select', function(evt, params) {
    var data = evt.params.data;
    jumpserver.selected_groups[data.id] = data.text;
  }).on('select2:unselect', function(evt) {
    var data = evt.params.data;
    delete jumpserver.selected_groups[data.id]
  })
});
$(document).on('click', '#is_active', function(){
  var the_url = "{% url 'users:user-patch-api' pk=user_object.id %}";
  var checked = !$(this).prop('checked');
  var body = {'is_active': checked };
  var success = function(data) {
    toastr.success('{% trans "Update success!" %}')
  }
  APIUpdateAttr({ url: the_url, body: body, success: success});
}).on('click', '#enable_otp', function(){
  var the_url = "{% url 'users:user-patch-api' pk=user_object.id %}";
  var checked = !$(this).prop('checked');
  var body = {'enable_otp': checked };
  var success = function(data) {
    toastr.success('{% trans "Update success!" %}')
  }
  APIUpdateAttr({ url: the_url, body: body, success: success});
}).on('click', '#btn_add_user_group', function(){
  if (Object.keys(jumpserver.selected_groups).length === 0) {
    return false;
  }
  var user_groups = $('.bdg_user_group').map(function(){
    return $(this).data('gid');
  }).get();
  $.map(jumpserver.selected_groups, function(value, index){
    user_groups.push(parseInt(index));
    $('#opt_' + index).remove();
  });
  updateUserGroups(user_groups)
}).on('click', '.btn_delete_user_group', function(){
  var $this = $(this);
  var $tr = $this.closest('tr');
  var $badge = $tr.find('.bdg_user_group');
  var gid = $badge.data('gid');
  var group_name = $badge.html() || $badge.text();
  $('#slct_groups').append(
    '<option value="' + gid + '" id="opt_' + gid + '">' + group_name + '</option>'
  );
  $tr.remove();
  var user_groups = $('.bdg_user_group').map(function(){
    return $(this).data('gid');
  }).get();
  updateUserGroups(user_groups)
})
</script>
{% endblock %}
