JAVASCRIPT   51
cq doxtohtml
Guest on 13th August 2022 12:28:26 AM


  1. //================================================================================  
  2. // cq_doxtohtml.js
  3. // 03-12-2019
  4. //================================================================================  
  5.  
  6. //================================================================================  
  7. // Start docx to html fileToShow
  8. //================================================================================  
  9.  
  10. var docxToHTMLCount=0;
  11.  
  12. // ========================================
  13. //  start function convertDocxToHTML
  14. // ========================================
  15.  
  16.  
  17. function convertDocxToHTML(options) {
  18.  
  19. //alert('convertDocxToHTML');
  20.  
  21.  
  22.   $('#menu_loader').css({
  23.     'display':'inline-block',
  24.   });
  25.  
  26.   //$(".todaysmenulink").children().attr("disabled","disabled");// poop kind of works
  27.  
  28.  
  29. docxToHTMLCount++;
  30. //alert('docxToHTMLCount: ' + docxToHTMLCount);
  31.  
  32.   //send the arguments as an object literal
  33.   var defaults = {
  34.     //docxFileLoc: "uploads/menus/Menu_150_2018-02-22.docx",
  35.     //elementId: "output",
  36.     //htmlHolderLoc: "views/ajax/menus",
  37.     //htmlBucket: "Menu_150_2018-02-22.html",
  38.   },
  39.   o = $.extend(defaults, options )
  40.  
  41.   //alert(o.docxFileLoc + " " + o.elementId + " " + o.htmlHolderLoc + " " + o.htmlBucket)
  42.  
  43.  
  44. $(function() {
  45.  
  46.  
  47.  
  48.   var docxFileLoc = o.docxFileLoc;
  49.   var elementId = o.elementId;
  50.   var htmlHolderLoc = o.htmlHolderLoc;
  51.   var htmlBucket = o.htmlBucket;
  52.   var dataModalId = o.dataModalId;
  53.  
  54.   //var docxFileLoc = "uploads/menus/Menu_Park_2018-02-22.docx";
  55.  
  56.   var myarrayBuffer;
  57.   var oReq = new XMLHttpRequest();
  58.  
  59.   oReq.open("GET", docxFileLoc, true);
  60.   oReq.responseType = "arraybuffer";
  61.  
  62.   oReq.onload = function(oEvent) {
  63.     var myarrayBuffer = oReq.response;
  64.     mammoth.convertToHtml({arrayBuffer: myarrayBuffer})
  65.     .then(displayResult)
  66.     .done();
  67.   };
  68.   oReq.send();
  69.  
  70.  
  71.   function displayResult(result) {
  72.  
  73.  
  74.     var elementId = o.elementId;
  75.     //alert('elementId: ' + elementId);
  76.     //alert(result.value);
  77.  
  78.     //error message from mammoth docx converter
  79.     //var messageHtml = result.messages.map(function(message) {
  80.     //    return '<li class="' + message.type + '">' + escapeHtml(message.message) + "</li>";
  81.     //}).join("");
  82.     //alert(messageHtml);
  83.     //document.getElementById("messages").innerHTML = "<ul>" + messageHtml + "</ul>";
  84.  
  85.  
  86.     if (typeof elementId !== 'undefined' && elementId !="") {  
  87.       //document.getElementById(elementId).innerHTML = "<center>" + result.value + "</center>";
  88.       //document.getElementById(elementId).innerHTML = "<center>" + result.value + "</center>";
  89.  
  90.       var elementIdPound = '#' + elementId;
  91.       //alert('elementIdPound: ' + elementIdPound);
  92.  
  93.       var dataModalIdPound = '#' + dataModalId;  
  94.       //alert('dataModalIdPound ' + dataModalIdPound);
  95.  
  96.       var resultValue = result.value;
  97.  
  98.       //resultValue = decodeURIComponent(escape(resultValue));
  99.       //resultValue = unescape(encodeURIComponent(resultValue));
  100.       //alert('resultValue: ' + resultValue);
  101.  
  102.       //$(dataModalIdPound).scrollTop(10);
  103.       //$(elementIdPound).scrollTop(10);
  104.  
  105.  
  106.       var windowInnerHeight = window.innerHeight;
  107.       var windowHeight = $(window).height();
  108.       var windowHeightPx = windowHeight + 'px';
  109.  
  110.  
  111.  
  112.      // $(dataModalIdPound + ' .modal-dialog').css({
  113.      //   'height': '',
  114.      // }); // reset dialog each time
  115.  
  116.  
  117.  
  118.       $(dataModalIdPound)
  119.         .find(elementIdPound)
  120.         //.addClass('modal-scrollfix') // found in modal.css
  121.         .html('loading...')
  122.         //.load(null,resultValue, function() {
  123.         .html(resultValue).promise().done(function(){
  124.  
  125.  
  126.       //alert('done!');
  127.       $('#menu_loader').css({
  128.         'display':'none',
  129.       });
  130.  
  131.  
  132.           //var heightSetting = $(dataModalIdPound + " .modal-dialog").height();
  133.           //var marginSetting = parseInt($(dataModalIdPound + " .modal-dialog").css("margin-top"));
  134.  
  135.           var outerHeightModal = $(dataModalIdPound + " .modal-dialog").outerHeight();
  136.           var distTopModal = $(dataModalIdPound + " .modal-dialog").offset().top;
  137.  
  138.           var totalModalHeight = outerHeightModal + distTopModal;
  139.  
  140.           var windowInnerHeightPlus = windowInnerHeight + 1;
  141.           var newDialogHeightPx = windowInnerHeightPlus + 'px';
  142.  
  143.           if (totalModalHeight < windowInnerHeight) {
  144. /*
  145.             $(dataModalIdPound + ' .modal-dialog').parents().css({
  146.               'position': 'fixed',
  147.             });
  148. */
  149.            $(dataModalIdPound + ' .modal-dialog').css({
  150.               'position': 'fixed',
  151.               //'overflow-y': 'visible',
  152.               '-webkit-overflow-scrolling': 'touch',
  153.               'height': newDialogHeightPx,// option...ensures scroll doesnt lose focus
  154.             });
  155.  
  156.           //alert('modal heigh smaller than window');
  157.  
  158.           } else {
  159. /*
  160.            $(dataModalIdPound + ' .modal-dialog').parents().css({
  161.               'position': '',
  162.             });
  163. */
  164.  
  165.             $(dataModalIdPound + ' .modal-dialog').css({
  166.               'position': '',
  167.               'min-width': '1px',
  168.               //'overflow-y': 'scroll',
  169.               //'overflow-y': 'auto',
  170.             });
  171.  
  172.  
  173.  if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) {
  174.    $(dataModalIdPound + ' .modal-dialog').css({
  175.      'overflow-y': 'scroll',
  176.    });
  177.  
  178.     //alert('mobile');
  179.  
  180.  } // if mobile detected
  181.  
  182.  
  183.            //$(dataModalIdPound + ' .modal-dialog')
  184.              //.css("overflow-x","visible")
  185.              //.css("overflow-y","scroll")
  186.              //.css("min-width", "1px")
  187.              //.css("min-height", "1px");
  188.  
  189.           }// end else
  190.  
  191.           //$(dataModalIdPound).modal('toggle')
  192.           //$(dataModalIdPound).modal('hide');
  193.           //$(dataModalIdPound).modal('show');
  194.           //$(dataModalIdPound).data('bs.modal').handleUpdate();
  195.           //$(dataModalIdPound).modal( 'refresh' );
  196.  
  197.  
  198.  
  199.         });
  200.  
  201.  
  202.  
  203. //$(dataModalIdPound).on('shown.bs.modal', function (e) {
  204. //  alert('Modal is successfully shown!');
  205. //});
  206. //
  207. //
  208. //var modalOptions = {
  209. //  'backdrop' : 'static',
  210. //  'keyboard' : 'true',
  211. //  'show' : 'true',
  212. //  'focus' : 'true',
  213. //}
  214. //
  215. //$(dataModalIdPound).modal(modalOptions);
  216. //
  217. //stopPropagation();
  218.  
  219.  
  220.     } // end if typeof elementId
  221.  
  222.     holdHtml(result.value);
  223.     return result.value;
  224.  
  225.   }
  226.  
  227.   function escapeHtml(value) {
  228.     return value
  229.     .replace(/&/g, '&amp;')
  230.     .replace(/"/g, '&quot;')
  231.     .replace(/</g, '&lt;')
  232.     .replace(/>/g, '&gt;');
  233.   }
  234.  
  235.   // start function holdHtml
  236.  
  237.  
  238. //========== End convert to html
  239.  
  240.   function holdHtml(htmlToHold) {
  241.    //alert(result.value);
  242.     //alert('htmlToHold:' + htmlToHold + ' elementId:' + elementId + ' htmlHolderLoc:' + htmlHolderLoc + 'docxFileLoc:' + docxFileLoc);
  243.  
  244.      $.ajax({
  245.        type: 'POST',
  246.        url: 'js/cq-holdHTML.cgi',
  247.        data: { 
  248.          'htmlToHold': htmlToHold,
  249.          'elementId': elementId,
  250.          'htmlHolderLoc': htmlHolderLoc,
  251.          'htmlBucket': htmlBucket,
  252.        },
  253.        success: function(res) {
  254.          //alert("This Script Returns" + res.result);
  255.  
  256.        },
  257.        error: function() {
  258.          //alert("did not work");
  259.        }
  260.      });
  261.  
  262.   }  // end function holdHtml
  263.  
  264. }) // $(function()
  265. } // end function convertDocxToHTML
  266.  
  267. // ========================================
  268. //  end function convertDocxToHTML
  269. // ========================================
  270.  
  271.  
  272.  
  273.  
  274.  
  275. //================================================================================  
  276. // End docx to html
  277. //================================================================================

Raw Paste

Login or Register to edit or fork this paste. It's free.