mirror of https://github.com/itflow-org/itflow
Touch up share modal
Touching up the share modal. This is in preparation to allow a field for a contact (dropdown) / email address input, so that the shared link can be quickly emailed to a client
This commit is contained in:
parent
9e813be823
commit
69063d8d01
|
|
@ -142,7 +142,7 @@ if ($item_type == "Document") {
|
|||
|
||||
// Logging
|
||||
$name = sanitizeInput($login_row['login_name']);
|
||||
mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Sharing', log_action = 'View', log_description = 'Viewed shared $item_type $name via link', log_client_id = $client_id, log_ip = '$ip', log_user_agent = '$user_agent', company_id = 1");
|
||||
mysqli_query($mysqli, "INSERT INTO logs SET log_type = 'Sharing', log_action = 'View', log_description = 'Viewed shared $item_type $name via link', log_client_id = $client_id, log_ip = '$ip', log_user_agent = '$ua', company_id = 1");
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,49 @@
|
|||
function populateShareModal(client_id, item_type, item_ref_id) {
|
||||
|
||||
// Populate HTML fields
|
||||
document.getElementById("share_client_id").value = client_id;
|
||||
document.getElementById("share_item_type").value = item_type;
|
||||
document.getElementById("share_item_ref_id").value = item_ref_id;
|
||||
|
||||
// (re)Hide the URL/div (incase we're re-generating it)
|
||||
document.getElementById("div_share_link_output").hidden = true;
|
||||
document.getElementById("share_link").value = '';
|
||||
|
||||
// Show form and generate button
|
||||
document.getElementById("div_share_link_form").hidden = false;
|
||||
document.getElementById("div_share_link_generate").hidden = false;
|
||||
}
|
||||
|
||||
function generateShareLink() {
|
||||
let client_id = document.getElementById("share_client_id").value;
|
||||
let item_type = document.getElementById("share_item_type").value;
|
||||
let item_ref_id = document.getElementById("share_item_ref_id").value;
|
||||
let item_note = document.getElementById("share_note").value;
|
||||
let item_views = document.getElementById("share_views").value;
|
||||
let item_expires = document.getElementById("share_expires").value;
|
||||
|
||||
// Check values are provided
|
||||
if (item_views && item_expires && item_note) {
|
||||
// Send a GET request to ajax.php as ajax.php?share_generate_link=true....
|
||||
jQuery.get(
|
||||
"ajax.php",
|
||||
{share_generate_link: 'true', client_id: client_id, type: item_type, id: item_ref_id, note: item_note ,views: item_views, expires: item_expires},
|
||||
function(data) {
|
||||
|
||||
// If we get a response from ajax.php, parse it as JSON
|
||||
const response = JSON.parse(data);
|
||||
|
||||
// Hide the div/form & button used to generate the link
|
||||
document.getElementById("div_share_link_form").hidden = true;
|
||||
document.getElementById("div_share_link_generate").hidden = true;
|
||||
|
||||
// Show the readonly input containing the shared link
|
||||
document.getElementById("div_share_link_output").hidden = false;
|
||||
document.getElementById("share_link").value = response;
|
||||
|
||||
// Copy link to clipboard
|
||||
navigator.clipboard.writeText(response);
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,42 +1,4 @@
|
|||
<script>
|
||||
|
||||
function populateShareModal(client_id, item_type, item_ref_id) {
|
||||
document.getElementById("share_client_id").value = client_id;
|
||||
document.getElementById("share_item_type").value = item_type;
|
||||
document.getElementById("share_item_ref_id").value = item_ref_id;
|
||||
}
|
||||
|
||||
function generateShareLink() {
|
||||
let client_id = document.getElementById("share_client_id").value;
|
||||
let item_type = document.getElementById("share_item_type").value;
|
||||
let item_ref_id = document.getElementById("share_item_ref_id").value;
|
||||
let item_note = document.getElementById("share_note").value;
|
||||
let item_views = document.getElementById("share_views").value;
|
||||
let item_expires = document.getElementById("share_expires").value;
|
||||
|
||||
// Check values are provided
|
||||
if (item_views && item_expires && item_note) {
|
||||
// Send a GET request to ajax.php as ajax.php?share_generate_link=true....
|
||||
jQuery.get(
|
||||
"ajax.php",
|
||||
{share_generate_link: 'true', client_id: client_id, type: item_type, id: item_ref_id, note: item_note ,views: item_views, expires: item_expires},
|
||||
function(data) {
|
||||
|
||||
// If we get a response from ajax.php, parse it as JSON
|
||||
const response = JSON.parse(data);
|
||||
|
||||
document.getElementById("share_link_header").hidden = false;
|
||||
document.getElementById("share_link").hidden = false;
|
||||
document.getElementById("share_link").value = response;
|
||||
|
||||
// Copy link to clipboard
|
||||
navigator.clipboard.writeText(response);
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
<script src="js/share_modal.js"></script>
|
||||
|
||||
<div class="modal" id="shareModal" tabindex="-1">
|
||||
<div class="modal-dialog modal-md">
|
||||
|
|
@ -53,41 +15,47 @@
|
|||
<input type="hidden" name="item_ref_id" id="share_item_ref_id" value="">
|
||||
<div class="modal-body bg-white">
|
||||
|
||||
<label>Views / Expire <strong class="text-danger">*</strong></label>
|
||||
<div class="form-row">
|
||||
<div class="col-4">
|
||||
<div class="input-group mb-3">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text"><i class="fa fa-fw fa-eye"></i></span>
|
||||
<div id="div_share_link_form">
|
||||
|
||||
<label>Views / Expire <strong class="text-danger">*</strong></label>
|
||||
<div class="form-row">
|
||||
<div class="col-4">
|
||||
<div class="input-group mb-3">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text"><i class="fa fa-fw fa-eye"></i></span>
|
||||
</div>
|
||||
<input type="number" class="form-control" name="views" id="share_views" placeholder="Views before link expires" value="1" required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-8">
|
||||
<div class="input-group mb-3">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text"><i class="fa fa-fw fa-calendar"></i></span>
|
||||
</div>
|
||||
<input type="datetime-local" class="form-control" name="expires" id="share_expires" required>
|
||||
</div>
|
||||
<input type="number" class="form-control" name="views" id="share_views" placeholder="Views before link expires" value="1" required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-8">
|
||||
<div class="input-group mb-3">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text"><i class="fa fa-fw fa-calendar"></i></span>
|
||||
</div>
|
||||
<input type="datetime-local" class="form-control" name="expires" id="share_expires" required>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<textarea class="form-control" rows="4" name="note" id="share_note" placeholder="Client visible note (required)" required></textarea>
|
||||
</div>
|
||||
|
||||
<p><i>Note: Logins are shared "as is" and will not update</i></p>
|
||||
|
||||
<hr>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<textarea class="form-control" rows="4" name="note" id="share_note" placeholder="Client visible note (required)" required></textarea>
|
||||
<div id="div_share_link_output" hidden>
|
||||
<h3 id="share_link_header">Share URL</h3>
|
||||
<input type="text" class="form-control" disabled id="share_link" value="">
|
||||
</div>
|
||||
|
||||
<p><i>Note: Logins are shared "as is" and will not update</i></p>
|
||||
|
||||
<hr>
|
||||
|
||||
<h3 id="share_link_header" hidden>Share URL:</h3>
|
||||
<input type="text" class="form-control" disabled id="share_link" hidden value="">
|
||||
|
||||
</div>
|
||||
|
||||
<div class="modal-footer bg-white">
|
||||
<button type="button" class="btn btn-primary text-bold" onclick="event.preventDefault(); generateShareLink()"><i class="fas fa-check mr-2"></i>Generate</button>
|
||||
<button type="button" id="div_share_link_generate" class="btn btn-primary text-bold" onclick="event.preventDefault(); generateShareLink()"><i class="fas fa-check mr-2"></i>Generate</button>
|
||||
<button type="button" class="btn btn-light" data-dismiss="modal"><i class="fa fa-times mr-2"></i>Cancel</button>
|
||||
</div>
|
||||
</form>
|
||||
|
|
|
|||
Loading…
Reference in New Issue