- //================================================================================
- // cq_doxtohtml.js
- // 03-12-2019
- //================================================================================
- //================================================================================
- // Start docx to html fileToShow
- //================================================================================
- var docxToHTMLCount=0;
- // ========================================
- // start function convertDocxToHTML
- // ========================================
- function convertDocxToHTML(options) {
- //alert('convertDocxToHTML');
- $('#menu_loader').css({
- 'display':'inline-block',
- });
- //$(".todaysmenulink").children().attr("disabled","disabled");// poop kind of works
- docxToHTMLCount++;
- //alert('docxToHTMLCount: ' + docxToHTMLCount);
- //send the arguments as an object literal
- var defaults = {
- //docxFileLoc: "uploads/menus/Menu_150_2018-02-22.docx",
- //elementId: "output",
- //htmlHolderLoc: "views/ajax/menus",
- //htmlBucket: "Menu_150_2018-02-22.html",
- },
- o = $.extend(defaults, options )
- //alert(o.docxFileLoc + " " + o.elementId + " " + o.htmlHolderLoc + " " + o.htmlBucket)
- $(function() {
- var docxFileLoc = o.docxFileLoc;
- var elementId = o.elementId;
- var htmlHolderLoc = o.htmlHolderLoc;
- var htmlBucket = o.htmlBucket;
- var dataModalId = o.dataModalId;
- //var docxFileLoc = "uploads/menus/Menu_Park_2018-02-22.docx";
- var myarrayBuffer;
- var oReq = new XMLHttpRequest();
- oReq.open("GET", docxFileLoc, true);
- oReq.responseType = "arraybuffer";
- oReq.onload = function(oEvent) {
- var myarrayBuffer = oReq.response;
- mammoth.convertToHtml({arrayBuffer: myarrayBuffer})
- .then(displayResult)
- .done();
- };
- oReq.send();
- function displayResult(result) {
- var elementId = o.elementId;
- //alert('elementId: ' + elementId);
- //alert(result.value);
- //error message from mammoth docx converter
- //var messageHtml = result.messages.map(function(message) {
- // return '<li class="' + message.type + '">' + escapeHtml(message.message) + "</li>";
- //}).join("");
- //alert(messageHtml);
- //document.getElementById("messages").innerHTML = "<ul>" + messageHtml + "</ul>";
- if (typeof elementId !== 'undefined' && elementId !="") {
- //document.getElementById(elementId).innerHTML = "<center>" + result.value + "</center>";
- //document.getElementById(elementId).innerHTML = "<center>" + result.value + "</center>";
- var elementIdPound = '#' + elementId;
- //alert('elementIdPound: ' + elementIdPound);
- var dataModalIdPound = '#' + dataModalId;
- //alert('dataModalIdPound ' + dataModalIdPound);
- var resultValue = result.value;
- //resultValue = decodeURIComponent(escape(resultValue));
- //resultValue = unescape(encodeURIComponent(resultValue));
- //alert('resultValue: ' + resultValue);
- //$(dataModalIdPound).scrollTop(10);
- //$(elementIdPound).scrollTop(10);
- var windowInnerHeight = window.innerHeight;
- var windowHeight = $(window).height();
- var windowHeightPx = windowHeight + 'px';
- // $(dataModalIdPound + ' .modal-dialog').css({
- // 'height': '',
- // }); // reset dialog each time
- $(dataModalIdPound)
- .find(elementIdPound)
- //.addClass('modal-scrollfix') // found in modal.css
- .html('loading...')
- //.load(null,resultValue, function() {
- .html(resultValue).promise().done(function(){
- //alert('done!');
- $('#menu_loader').css({
- 'display':'none',
- });
- //var heightSetting = $(dataModalIdPound + " .modal-dialog").height();
- //var marginSetting = parseInt($(dataModalIdPound + " .modal-dialog").css("margin-top"));
- var outerHeightModal = $(dataModalIdPound + " .modal-dialog").outerHeight();
- var distTopModal = $(dataModalIdPound + " .modal-dialog").offset().top;
- var totalModalHeight = outerHeightModal + distTopModal;
- var windowInnerHeightPlus = windowInnerHeight + 1;
- var newDialogHeightPx = windowInnerHeightPlus + 'px';
- if (totalModalHeight < windowInnerHeight) {
- /*
- $(dataModalIdPound + ' .modal-dialog').parents().css({
- 'position': 'fixed',
- });
- */
- $(dataModalIdPound + ' .modal-dialog').css({
- 'position': 'fixed',
- //'overflow-y': 'visible',
- '-webkit-overflow-scrolling': 'touch',
- 'height': newDialogHeightPx,// option...ensures scroll doesnt lose focus
- });
- //alert('modal heigh smaller than window');
- } else {
- /*
- $(dataModalIdPound + ' .modal-dialog').parents().css({
- 'position': '',
- });
- */
- $(dataModalIdPound + ' .modal-dialog').css({
- 'position': '',
- 'min-width': '1px',
- //'overflow-y': 'scroll',
- //'overflow-y': 'auto',
- });
- if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) {
- $(dataModalIdPound + ' .modal-dialog').css({
- 'overflow-y': 'scroll',
- });
- //alert('mobile');
- } // if mobile detected
- //$(dataModalIdPound + ' .modal-dialog')
- //.css("overflow-x","visible")
- //.css("overflow-y","scroll")
- //.css("min-width", "1px")
- //.css("min-height", "1px");
- }// end else
- //$(dataModalIdPound).modal('toggle')
- //$(dataModalIdPound).modal('hide');
- //$(dataModalIdPound).modal('show');
- //$(dataModalIdPound).data('bs.modal').handleUpdate();
- //$(dataModalIdPound).modal( 'refresh' );
- });
- //$(dataModalIdPound).on('shown.bs.modal', function (e) {
- // alert('Modal is successfully shown!');
- //});
- //
- //
- //var modalOptions = {
- // 'backdrop' : 'static',
- // 'keyboard' : 'true',
- // 'show' : 'true',
- // 'focus' : 'true',
- //}
- //
- //$(dataModalIdPound).modal(modalOptions);
- //
- //stopPropagation();
- } // end if typeof elementId
- holdHtml(result.value);
- return result.value;
- }
- function escapeHtml(value) {
- return value
- .replace(/&/g, '&')
- .replace(/"/g, '"')
- .replace(/</g, '<')
- .replace(/>/g, '>');
- }
- // start function holdHtml
- //========== End convert to html
- function holdHtml(htmlToHold) {
- //alert(result.value);
- //alert('htmlToHold:' + htmlToHold + ' elementId:' + elementId + ' htmlHolderLoc:' + htmlHolderLoc + 'docxFileLoc:' + docxFileLoc);
- $.ajax({
- type: 'POST',
- url: 'js/cq-holdHTML.cgi',
- data: {
- 'htmlToHold': htmlToHold,
- 'elementId': elementId,
- 'htmlHolderLoc': htmlHolderLoc,
- 'htmlBucket': htmlBucket,
- },
- success: function(res) {
- //alert("This Script Returns" + res.result);
- },
- error: function() {
- //alert("did not work");
- }
- });
- } // end function holdHtml
- }) // $(function()
- } // end function convertDocxToHTML
- // ========================================
- // end function convertDocxToHTML
- // ========================================
- //================================================================================
- // End docx to html
- //================================================================================
Raw Paste