(function( $ ){ $(document).ready(function($){ var modal = $('#ModalAddPublicKey'); modal.modal({show:false}); $('#form-add-public-key .input-daterange').datepicker({ startDate: "today", todayBtn: "linked", clearBtn: true, todayHighlight: true, orientation: "bottom right", autoclose: true }); // public key form var form = $('#form-add-public-key'); var validator = form.validate({ rules: { "kid" : { required: true, free_text : true, maxlength:255, minlength: 5 }, "valid_from": { required: true, dateUS:true }, "valid_to": { required: true , dateUS:true }, "pem_content" : { required: true, pem_public_key : true }, "alg" : {required: true} } }); $('#usage').change(function(){ var usage = $(this).val(); var alg_select = $('#alg'); alg_select.empty(); var result = []; if(usage === 'sig') { result = oauth2_supported_algorithms.sig_algorihtms.rsa; } else { result = oauth2_supported_algorithms.key_management_algorihtms; } $.each(result, function(index, item) { var key = item === 'none' ? '' : item; alg_select.append($("").val(key).text(item)); }); }); $('#usage').trigger('change'); $("body").on('click',".add-public-key",function(event){ modal.modal('show'); validator.resetForm(); $('#active').prop('checked', true); event.preventDefault(); return false; }); $("body").on('click',".delete-public-key",function(event){ var public_key_id = $(this).attr('data-public-key-id'); swal({ title: "Are you sure?", text: "Deleting this public key is a non reversible operation!", type: "warning", showCancelButton: true, confirmButtonColor: "#DD6B55", confirmButtonText: "Yes, Delete it!", closeOnConfirm: true }).thern( function(result){ if(!result) return; $.ajax( { type: "DELETE", url: dataClientUrls.delete_public_key.replace('@public_key_id', public_key_id), contentType: "application/json; charset=utf-8", dataType: "json", timeout: 60000, success: function (data, textStatus, jqXHR) { $('#tr_'+public_key_id).fadeOut(300, function() { $(this).remove(); if($('#body-public-keys').children('tr').length) $('.public-keys-empty-message').hide(); else $('.public-keys-empty-message').show(); }); }, error: function (jqXHR, textStatus, errorThrown) { ajaxError(jqXHR, textStatus, errorThrown); } } ); }); event.preventDefault(); return false; }); $("body").on('click',".save-public-key",function(event){ if(form.valid()) { var public_key_data = form.serializeForm(); public_key_data.type = 'RSA'; $.ajax( { type: "POST", url: dataClientUrls.add_public_key, data: JSON.stringify(public_key_data), contentType: "application/json; charset=utf-8", dataType: "json", timeout: 60000, success: function (data, textStatus, jqXHR) { modal.modal('hide'); form.cleanForm(); $('.public-keys-empty-message').hide(); loadPublicKeys(); }, error: function (jqXHR, textStatus, errorThrown) { ajaxError(jqXHR, textStatus, errorThrown); } } ); } event.preventDefault(); return false; }); $("body").on('click',".public-key-status",function(event){ var status_badge = $(this); var public_key_id = status_badge.attr('data-public-key-id'); var public_key_data = { id : public_key_id }; public_key_data.active = status_badge.hasClass('public-key-active') ? false : true; $.ajax( { type: "PUT", url: dataClientUrls.update_public_key.replace('@public_key_id', public_key_id), contentType: "application/json; charset=utf-8", data: JSON.stringify(public_key_data), dataType: "json", timeout: 60000, success: function (data, textStatus, jqXHR) { loadPublicKeys(); }, error: function (jqXHR, textStatus, errorThrown) { ajaxError(jqXHR, textStatus, errorThrown); } } ); event.preventDefault(); return false; }); }); function loadPublicKeys(){ $.ajax({ type: "GET", url: dataClientUrls.get_public_keys+'?offset=1&limit=4294967296', dataType: "json", timeout:60000, success: function (data,textStatus,jqXHR) { //load data... var public_keys = data.page; if(public_keys.length > 0){ var template = $('
' + '
'+
'