.assets-colum-title {
font-weight: bold;
}
-
+ .assets-dialog-box {
+ display: grid;
+ grid-gap: 5px 5px;
+ grid-template-columns: 8rem auto;
+ }
+ .assets-facility-descr {
+ width: 30em !important;
+ }
+ .assets-facility-input-prompt {
+ padding: 5px 0 0 5px;
+ }
+ .assetsFacilityInputMsg {
+ color: red;
+ }
</style>
<div class="glm-admin-table">
<div class="glm-admin-table-inner">
- <a href="#add">Add a Facility</a>
+ <a id="glm-assets-add-facility-button" class="button">Add a Facility</a>
{if $haveFacilities}
- <div class="assets-admin-content">
+ <div id="assets-facilities-container" class="assets-admin-content">
{foreach $facilities as $facility}
- <div style="grid-column: 1 / span 7;" class="facility-name">(Facility Name)</div>
-
- <div style="grid-column: 2 / span 6;"><a href="#edit">Edit</a> <a href="#edit">Delete</a></div>
-
- <div style="grid-column: 2 / span 3;" class="assets-colum-title">Asset Type</div>
- <div class="assets-colum-title">Name</div>
- <div class="assets-colum-title">Number</div>
- <div class="assets-colum-title">Quantity</div>
+ <div style="grid-column: 1 / span 7;" class="facility_{$facility.id} facility-name">{$facility.name}</div>
+
+ {* First indent here *}
+
+ <div style="grid-column: 2 / span 6;" class="facility_{$facility.id}"><a href="#edit">Edit</a> <a href="#edit">Delete</a></div>
+
+ <div style="grid-column: 2 / span 3;" class="assets-colum-title">Asset Type</div>
+ <div class="assets-colum-title">Name</div>
+ <div class="assets-colum-title">Number</div>
+ <div class="assets-colum-title">Quantity</div>
{foreach $facility.assets as $asset}
- <div style="grid-column: 2 / span 3;" >Room</div>
- <div>Ballroom</div>
- <div>101</div>
- <div>1</div>
-
- <div style="grid-column: 3 / span 5;"><a href="#edit">Edit</a> <a href="#edit">Delete</a></div>
+ <div style="grid-column: 2 / span 3;" >Room</div>
+ <div>Ballroom</div>
+ <div>101</div>
+ <div>1</div>
+
+ {* Second indent here *}
- <div style="grid-column: 3 / span 2;" class="assets-colum-title">Start</div>
- <div class="assets-colum-title">End</div>
- <div class="assets-colum-title">Account</div>
- <div class="assets-colum-title">Quantity</div>
+ <div style="grid-column: 3 / span 5;"><a href="#edit">Edit</a> <a href="#edit">Delete</a></div>
+
+ <div style="grid-column: 3 / span 2;" class="assets-colum-title">Start</div>
+ <div class="assets-colum-title">End</div>
+ <div class="assets-colum-title">Account</div>
+ <div class="assets-colum-title">Quantity</div>
{foreach $asset.assignments as $assignment}
- <div style="grid-column: 3 / span 2" >1/1/2018 07:00 AM</div>
- <div>1/1/2018 05:00 PM</div>
- <div>Gaslight Media</div>
- <div>1</div>
+
+ <div style="grid-column: 3 / span 2" >1/1/2018 07:00 AM</div>
+ <div>1/1/2018 05:00 PM</div>
+ <div>Gaslight Media</div>
+ <div>1</div>
+
+ {* Third indent here *}
+ <div style="grid-column: 4 / span 4;"><a href="#edit">Edit</a> <a href="#edit">Delete</a></div>
+
+ {/foreach} {* assignments *}
- <div style="grid-column: 4 / span 4;"><a href="#edit">Edit</a> <a href="#edit">Delete</a></div>
- {/foreach}
+ {/foreach} {* assets *}
+
+ {/foreach} {* facilities *}
- {/foreach}
- {/foreach}
-{else}
- <div>No Facilities Listed</div>
-{/if}
+{else} {* if haveFacilities *}
+
+ <div id="glm-assets-no-facilities">No Facilities Listed</div>
+
+{/if} {* if haveFacilities *}
+ </div> {* assets-admin-content *}
+
+ </div> {* glm-admin-table-inner *}
+ </div> {* glm-admin-table *}
+ {* New Facility Dialog Box *}
+ <div id="assetsFacilityDialog" class="glm-dialog-box" title="Enter a New Facility">
+ <form id="assetsFacilityForm" enctype="multipart/form-data">
+ <input type="hidden" name="glm_action" value="assetManagement">
+ <div class="assets-dialog-box">
+
+ <div class="glm-required assets-facility-input-prompt">Name:</div>
+ <div><input type="text" name="name" class="glm-form-text-intput glm-form-text-input-medium" value="" required><span id="assetsFacilityInputMsg_name" class="assetsFacilityInputMsg"></span></div>
+
+ <div class="assets-facility-input-prompt">Description:</div>
+ <div><textarea name="descr" class="glm-form-textarea assets-facility-descr" required></textarea></div>
+
+ <div class="assets-facility-input-prompt">Address:</div>
+ <div><input type="text" name="address" class="glm-form-text-intput glm-form-text-input-medium" value="" required></div>
+
+ <div class="assets-facility-input-prompt">City:</div>
+ <div>
+ <select name="city" required>
+ <option value=""></option>
+ {foreach $cities as $city}
+ <option value="{$city.id}">{$city.name}</option>
+ {/foreach}
+ </select>
+ </div>
+
+ <div class="assets-facility-input-prompt">State:</div>
+ <div>
+ <select name="state" required>
+ <option value=""></option>
+ {foreach from=$states item="stateName" key="stateKey"}
+ <option value="{$stateKey}">{$stateName}</option>
+ {/foreach}
+ </select>
+ </div>
+
+ <div class="assets-facility-input-prompt">ZIP / Postal Code:</div>
+ <div><input type="text" name="zip" class="glm-form-text-intput glm-form-text-input-veryshort" value="" required></div>
+
+ <div class="assets-facility-input-prompt">Country:</div>
+ <div>
+ <select name="country" required>
+ <option value=""></option>
+ {foreach from=$countries item="countryName" key="countryKey"}
+ <option value="{$countryKey}">{$countryName}</option>
+ {/foreach}
+ </select>
+ </div>
+
+ <!-- LAT / LON can go here if needed -->
+
+ <div class="assets-facility-input-prompt">Phone:</div>
+ <div><input type="text" name="phone" class="glm-form-text-intput" value="" required></div>
+
+ <div class="assets-facility-input-prompt">URL:</div>
+ <div><input type="text" name="url" class="glm-form-text-intput glm-form-text-input-medium" value="" placeholder="http://somefacilityname.com" required></div>
+
+ <div class="assets-facility-input-prompt">E-Mail Address:</div>
+ <div><input type="text" name="email" class="glm-form-text-intput glm-form-text-input-medium" value="" required></div>
+
+ <div class="assets-facility-input-prompt">Facility Map:</div>
+ <div>
+ <p>
+ Facility map file must be a standard image file such as JPG, PNG, or GIF and
+ of adequate size and resolution. Images larger than 1200 pixels wide may be
+ too large for the page.
+ </p>
+ <a href="image url here" target="facilityMap">(image url here) </a><br>
+ <input type="checkbox" name="logo_delete"> Delete Image<br>
+ <b>New image:</b> <input id="assetFacilityMap" type="file" name="facility_map_new">
+ </div>
+
+ <div> </div><div> </div>
+
+ <div><span class="glm-required">*</span> Required</div>
+ <div>
+ <a id="assetsFacilitySubmit" class="button button-primary">Add New Facility</a>
+ <a id="assetsFacilityCancel" class="button button-primary">Cancel</a>
+ </div>
+
+ </div> {* assetsFacilityDialog *}
+
+
+ </form>
+ </div>
+ <div id="assetsFailityTemplate" class="glm-hidden">
+ <div style="grid-column: 1 / span 7;" class="facility-name facility_{* facility_id *}">{* facility_name *}</div>
+ <div style="grid-column: 2 / span 6;" class="facility_{* facility_id *}"><a href="#edit" data-id="{* facility_id *}">Edit</a> <a href="#edit" data-id="{* facility_id *}">Delete</a></div>
+ </div>
-<!--
- <table class="wp-list-table striped glm-admin-table-single">
- <thead>
- <tr>
- <th class="glm-file-library-table-left">Original Name</th>
- <th class="glm-file-library-table-left">Stored File Name</th>
- <th class="glm-file-library-table-left">Title</th>
- <th class="glm-file-library-table-left">Last Access</th>
- </tr>
- </thead>
- <tbody id="AfterNewFiles">
- <tr class="glm-NewFileHidden glm-fileLibraryItemHidden" style="background-color: #fff;"><td colspan="4"> </td></tr>
- <tr class="glm-NewFileHidden glm-fileLibraryItemHidden" style="background-color: #fff;"><th colspan="4" style="color: gray;"> Previous Uploads</th></tr>
- </tbody>
- {if $haveFiles}
- {assign var="i" value="0"}
- {foreach $files as $f}
- <tbody id="fileContainer_{$f.id}">
- <tr id="filenameLine_{$f.id}" class="glm-file-line glm-edit-form glm-file-{$f.id}{if $i++ is odd by 1} {/if}" data-file="{$f.id}">
- <td class="glm-file-library-table-left">
- {$f.name}
- </td>
- <td class="glm-file-library-table-left">
- {$f.file_name}
- </td>
- <td id="fileTitle_{$f.id}" class="glm-file-library-table-left">
- {$f.title}
- </td>
- <td class="glm-file-library-table-left">
- {$f.last_access_time.datetime}
- </td>
- </tr>
- <tr id="fileLinks_{$f.id}" class="glm-hidden glm-file-links"">
- <td colspan="5" style="padding: .8rem; background-color: #fff;>
- <span class="file-edit-link">
- <a href="" class="glm-file-library-copy" data-file="{$f.id}" data-link="{$f.link_url}">Copy File URL</a> |
- </span>
- <span class="file-edit-link">
- <a class="glm-edit" href="#" data-file="{$f.id}">Edit File</a> |
- </span>
- <span>
- <a class="file-download-link" data-file="{$f.id}" href="{$ajaxUrl}?action=glm_members_admin_ajax&glm_action=fileLibraryDownload&fileId={$f.id}">Download File</a> |
- </span>
- <span>
- <a class="delete-file" href="#" data-file="{$f.id}">Delete File</a>
- </span>
- <span id="FileCopied_{$f.id}" class="glm-notice" style="display: none;"> File URL copied to your clipboard.</span>
- <span id="FileDeleted_{$f.id}" class="glm-notice" style="display: none;"> File Deleted!</span>
- </td>
- </tr>
- <tr class="glm-edit-form glm-edit-form-{$f.id}{if $f@iteration is div by 2} alternate{/if}" style="display:none; background-color: #fff;">
- <td colspan="5" style="border: 1px #ccc solid;">
- <div class="glm-row" style="margin-bottom: 0px !important; margin-top: .5rem;">
- <div class="glm-columns glm-small-6">
- <label>File Title: </label><br>
- <input id="InputTitle_{$f.id}" class="glm-form-text-input-medium" type="text" name="title" value="{$f.title}"><br>
- </div>
- <div class="glm-columns glm-small-5">
- <label>Description: </label><br>
- <textarea id="InputDescr_{$f.id}" class="glm-form-text-input-medium" name="descr">{$f.descr}</textarea>
- </div>
- </div>
- <div class="glm-row">
- <div class="glm-columns glm-small-7">
- <button class="glm-cancel button button-secondary" data-file="{$f.id}">Cancel</button>
- <button class="glm-update button button-secondary" data-file="{$f.id}">Update</button>
- </div>
- </div>
- </td>
- </tr>
- </tbody>
- {/foreach}
- {else}
- <tr class="alternate"><td colspan="4">(no files listed)</td></tr>
- {/if}
- </tbody>
- </table>
-
- -->
- </div>
- </div>
-</div>
jQuery(document).ready(function($){
- // Copy an element to the clipboard
- function copyToClipboard(text) {
- var $temp = $("<input>");
- $("body").append($temp);
- $temp.val(text).select();
- document.execCommand("copy");
- $temp.remove();
+ // Facility dialog box
+ $('#assetsFacilityDialog').dialog({
+ autoOpen: false,
+ width: 600,
+ minWidth: 300,
+ dialogClass: 'glm-dialog-no-close'
+ });
+
+ // Add a facility
+ $('#glm-assets-add-facility-button').on('click', function() {
+ $('#assetsFacilityDialog').dialog('open');
+ $('#assetsFacilityForm')[0].reset();
+ })
+
+ // Hide "No facilities"
+ function hideNoFacilities() {
+ $('#glm-assets-no-facilities').hide();
}
+
+ // Cancel facility dialog box
+ $('#assetsFacilityCancel').on('click', function() {
+ $('#assetsFacilityDialog').dialog('close');
+ })
+
+ // Save facility data
+ $('#assetsFacilitySubmit').on('click', function(e){
+
+// var facilityData = $('#assetsFacilityForm').serializeArray();
+ var facilityData = new FormData();
+ facilityData.append('option', 'addNewFacility');
+ facilityData.append('facility_map_new', $('#assetFacilityMap')[0].files[0]);
+ var formFields = $('#assetsFacilityForm').serializeArray();
+ for (var i = 0; i < formFields.length; i++) {
+ facilityData.append(formFields[i].name, formFields[i].value);
+ }
+
+ $.ajax({
+ context: this,
+ type: 'POST',
+ url: '{$ajaxUrl}?action=glm_members_admin_ajax',
+ data : facilityData,
+ processData: false,
+ contentType: false,
+ }).done(function(msg){
+alert(msg);
+ // Get response message
+ var response = JSON.parse(msg);
+
+ // Clear any submission error messages
+ $('.assetsFacilityInputMsg').html('');
+
+ // If there was a submission problem
+ if (!response.status) {
+
+ // For each input field
+ for (var key in response.fieldFail) {
+
+ // If this field was a problem
+ if (response.fieldFail[key]) {
- $('body').on('click', '.glm-file-library-copy', function(e) {
+ // Put a highlighted message under this field.
+ $('#assetsFacilityInput_' + key).addClass('assets-facility-input-fail');
+ $('#assetsFacilityInputMsg_' + key).html('<br>' + response.fieldFail[key]);
+
+ }
+ }
+ alert('Facility not saved. Please check the indicated fields.');
+ } else {
+ $('#assetsFacilityDialog').dialog('close');
+ hideNoFacilities();
+ var facilityTemplate = templateParse($('#assetsFailityTemplate').html(), 'facility_', response.fieldStore);
+ $('#assets-facilities-container').prepend(facilityTemplate);
+
+
+ }
+
+ function templateParse(template, prefix, data) {
+alert(data.name);
+ for (var key in data) {
+alert(data[key]);
+ template = template.replace('{* ' + prefix + key + ' *}', data[key]);
+ }
+ return template;
+ }
+
+ }).fail(function(){
+ alert('Unable to store this facility at this time. Please try again.');
+ });
+
+/*
e.preventDefault();
- copyToClipboard($(this).attr('data-link'));
- var fileId = $(this).attr('data-file');
- lastFileTouched(fileId);
- flashNotice($('#FileCopied_' + fileId));
- return false;
+ var fileId = $(this).data('file');
+
+ // Get possible custom field data
+ var fileFormData = $('#glm-file-form-' + fileId).serialize();
+ console.log(fileFormData);
+
+ var fileTitle = $('#InputTitle_' + fileId).val().trim();
+ var fileDescr = $('#InputDescr_' + fileId).val().trim();
+
+ $.ajax({
+ context: this,
+ type: 'POST',
+ url: '{$ajaxUrl}?action=glm_members_admin_ajax',
+ dataType: 'text',
+ data: {
+ glm_action: 'fileLibraryUpdate',
+ fileId: fileId,
+ title: fileTitle,
+ descr: fileDescr
+ }
+ }).done(function(){
+ $('.glm-edit-form-' + $(this).data('file')).hide();
+ $('.glm-file-' + $(this).data('file')).show();
+ $('#fileTitle_' + fileId).text(fileTitle);
+ clearFileLinks();
+ }).fail(function(msg){
+ alert('Unable to update file: ' + msg);
+ });
+*/
});
+
+/*
+
+
$('.glm-edit').live('click', function(e){
e.preventDefault();
fileLinksEditSelected();
$('.glm-file-' + $(this).data('file')).show();
});
- $('.file-download-link').live('click', function(e) {
- var fileId = $(this).data('file');
- lastFileTouched(fileId);
- });
-
// File Line Hover Action
var fileEditFlag = false;
var fileHoverId = false;
$('.glm-file-line').removeClass('last-file-touched');
$('#filenameLine_' + fileId).addClass('last-file-touched file-been-touched');
}
+*/
+
+ function flashNotice(notice) {
+ notice.fadeOut(500).fadeIn(500).fadeOut(500).fadeIn(500).fadeOut(500).fadeIn(500).fadeOut(500).fadeIn(500).fadeOut(500).fadeIn(500).fadeOut(500);
+ }
});
</script>