diff options
author | B. Stack <bgstack15@gmail.com> | 2022-04-28 14:17:08 -0400 |
---|---|---|
committer | B. Stack <bgstack15@gmail.com> | 2022-04-28 14:17:08 -0400 |
commit | 362d567f71b9a7e096cecfbd41c79317ecbd1697 (patch) | |
tree | 1b2da51758c600f0e7c03c60becedd453e42c6aa | |
parent | Update for Radicale 3.1.6 (diff) | |
download | radicaleinfcloud-362d567f71b9a7e096cecfbd41c79317ecbd1697.tar.gz radicaleinfcloud-362d567f71b9a7e096cecfbd41c79317ecbd1697.tar.bz2 radicaleinfcloud-362d567f71b9a7e096cecfbd41c79317ecbd1697.zip |
Add Download button, and stub import button
References include:
https://javascript.info/file
https://stackoverflow.com/questions/44555950/custom-download-name-with-javascript-or-jquery/44556846#44556846
https://stackoverflow.com/a/16137606
-rw-r--r-- | radicale_infcloud/web/forms.js | 48 | ||||
-rw-r--r-- | radicale_infcloud/web/index.html | 2 |
2 files changed, 50 insertions, 0 deletions
diff --git a/radicale_infcloud/web/forms.js b/radicale_infcloud/web/forms.js index 0e4c816..c733b6d 100644 --- a/radicale_infcloud/web/forms.js +++ b/radicale_infcloud/web/forms.js @@ -31,6 +31,35 @@ function updateTodoFormDimensions(setHeight) } } +function dragOverHandler(event) { + //if (window.console) { + // console.log("dragOverHandler",event); + //} + event.preventDefault(); + event.stopPropagation(); +} + +/* Incomplete import process. The function logs to console but does not use the vcard contents. */ +function dropHandler(event) { + if (event) { + event.preventDefault(); + event.stopPropagation(); + if (window.console) { + console.log("dropHandler",event); + } + if(event.dataTransfer && event.dataTransfer && event.dataTransfer.files.length > 0) { + if(window.console){console.log("files",event.dataTransfer.files);} + for (let f of event.dataTransfer.files) { + if(window.console){console.log("file:",f)}; + let reader = new FileReader(); + reader.readAsText(f); + reader.onload = function(){if(window.console){console.log(reader.result)}}; + reader.onerror = function(){if(window.console){console.log(reader.error)}}; + } + } + } +} + function updateEventFormDimensions(setHeight) { $('#CAEvent').css('width',''); @@ -51,6 +80,7 @@ function setFormPosition(jsEvent, confirmRepeat) dist_y; $('#event_details_template').css('max-height',''); + document.getElementById('uploadButton').addEventListener("drop", dropHandler(event)); if(jsEvent) { @@ -2316,6 +2346,7 @@ function showEventForm(date, allDay, calEvent, jsEvent, mod, repeatOne, confirmR if(mod=='show') { $('#saveButton').hide(); + $('#uploadButton').hide(); $('#resetButton').hide(); $('#deleteButton').hide(); if($('#ResourceCalDAVList').find('[data-id="'+calEvent.res_id+'"]').hasClass("resourceCalDAV_item_ro")) @@ -2622,6 +2653,22 @@ function bindEventForm() }); }); + $('#downloadButton').click(function(e){ + if($('#uid').val()!='') { + var dlname = $('#name').val(); + var dlhref = $('#uid').val().replace(/(:\/\/)\w*@/,"$1"); + function downloadIt(){ + if (dlname && dlname != '' && dlhref && dlhref != '') { + var link = document.createElement('a'); + link.download = dlname; + link.href = dlhref; + link.dispatchEvent(new MouseEvent("click")); + } + } + downloadIt(); + } + }); + $('#resetButton').click(function(){ $('#event_details_template').find('img[data-type=invalidSmall]').css('display','none'); var uid=$('#uid').val(); @@ -2828,6 +2875,7 @@ function startEditModeEvent() $('#saveButton').show(); $('#resetButton').show(); $('#deleteButton').show(); + $('#uploadButton').show(); $('#show').val(''); $('#eventDetailsTable :input[disabled]').prop('disabled', false); $('#eventDetailsTable :input[type="text"]').prop('readonly', false); diff --git a/radicale_infcloud/web/index.html b/radicale_infcloud/web/index.html index a62ccb8..6a2deb5 100644 --- a/radicale_infcloud/web/index.html +++ b/radicale_infcloud/web/index.html @@ -631,6 +631,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. <input id="editOptionsButton" type="button" value="edit repeat" data-type="editOptions" /> <input id="resetButton" type="button" value="Reset" data-type="reset" /> <input id="closeButton" type="button" value="Cancel" data-type="cancel" /> + <input id="downloadButton" type="button" value="Download" data-type="download"/> + <input id="uploadButton" type="button" value="Import" data-type="upload" ondrop="dropHandler(event)" ondragover="dragOverHandler(event);"/> <input id="deleteButton" type="button" value="Delete" data-type="delete" onclick="updateEventFormDimensions(true);$('#CAEvent .saveLoader').show();deleteEvent();" /> </td> </tr> |