UNPKG

json-object-editor

Version:

JOE the Json Object Editor | Platform Edition

346 lines (300 loc) 19.1 kB
<!DOCTYPE html> <html id="modern"> <head> <meta charset="utf-8" > <meta name="theme-color" content="#eeeeee" > <meta name='viewport' content='initial-scale=1.0, user-scalable=no' > <title> ${this.webconfig.name} > ${APPNAME} </title> <script src="/JsonObjectEditor/js/libs/adapter-latest.js"></script> <link rel="shortcut icon" href="/JsonObjectEditor/favicon.ico" type="image/x-icon"> <link rel="icon" href="/JsonObjectEditor/favicon.ico" type="image/x-icon"> <link rel="icon" sizes="192x192" href="/JsonObjectEditor/img/ico/android-icon-192x192.png"> <link rel="apple-touch-icon" sizes="144x144" href="/JsonObjectEditor/img/ico/android-icon-144x144.png" /> <meta name="joe-notes" content="template.html template" > <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="mobile-web-app-capable" content="yes"> <link rel="stylesheet" href="${JOEPATH}js/plugins/c3/c3.min.css"/> <link rel="stylesheet" href="${JOEPATH}capp/capp.css"/> <link href="/JsonObjectEditor/css/joe.css" rel="stylesheet" type="text/css"/> <!--manifest.json--> <link rel="manifest" href="/manifest.json"> <!--this.settings.joe_icons--> ${this.settings.joe_icons} <!--<script src="${JOEPATH}_joeinclude.js"></script>--> <script type="text/javascript" src="/JsonObjectEditor/js/libs/jquery-1.11.3.min.js"></script> <script type="text/javascript" src="/JsonObjectEditor/js/libs/jquery-ui.min.js"></script> <script type="text/javascript" src="/JsonObjectEditor/js/libs/jquery.ui.touch-punch.min.js"></script> <script type="text/javascript" src="/JsonObjectEditor/js/libs/moment.min.js"></script> <script type="text/javascript" src="/JsonObjectEditor/js/libs/hammer.min.208.js"></script> <script type="text/javascript" src="/JsonObjectEditor/js/libs/craydent-1.9.2.min.js"></script> <!--<script src="/socket.io/socket.io.js"></script>--> <script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.2.0/socket.io.js"></script> <script> var __jsc = {}; __jsc.PORT = ${this.webconfig.PORT}; __jsc.port = ${this.webconfig.port}; __jsc.socketPort = ${this.webconfig.socketPort}; __jsc.sitesPort = ${this.webconfig.sitesPort}; __jsc.httpsPort = ${this.webconfig.httpsPort}; __jsc.hostname = ('${this.webconfig.hostname}' != 'localhost')?'${this.webconfig.hostname}':location.hostname; __jsc.memory = { heapTotal:${this.STATS.memory.current.heapTotal}, free:${this.STATS.memory.freemem}, total:${this.STATS.memory.totalmem} }; __jsc.startDate = '${STARTDATE}'; var __jsu = {}; __jsu.name = '${this.USER.name}'; __jsu.schemas = '${this.USER.schemas}'.split(','); __jsu.items = ('${this.USER.items}' && '${this.USER.items}'.split(','))||[]; __jsu.role = '${this.USER.role}'; var s = 'script'; // var fs = '<'+s+' src="//'+location.hostname+($l.protocol == "https:" ? '${this.webconfig.httpsPort}' : ':${this.webconfig.socketPort}')+'/socket.io/socket.io.js"></'+s+'>'; // document.write(fs); //document.write('<'+s+' src="http://'+location.hostname+':${this.webconfig.socketPort}/socket.io/socket.io.js"></'+s+'>'); var JACmode = $GET('JAC')||false; </script> <!--<script id="ieScript"> window.navigatorIsIE = false; if(window.navigator.userAgent.indexOf('Trident') != -1 || window.navigator.userAgent.indexOf('MSIE') != -1){ navigatorIsIE = true; } if(navigatorIsIE){ document.write('<script type="text/javascript" src="/JsonObjectEditor/js/joe_es5.js"></script><script type="text/javascript" src="${JOEPATH}es5-build/capp/capp.js"></script>'); }else{ document.write('<script type="text/javascript" src="/JsonObjectEditor/js/joe.js"></script>'+ '<script type="text/javascript" src="${JOEPATH}/capp/capp.js"></script>'); } alert(window.navigatorIsIE); </script>--> <script type="text/javascript" src="/JsonObjectEditor/js/joe.js"></script> <script type="text/javascript" src="/JsonObjectEditor/js/plugins/tinymce.min.js"></script> <script type="text/javascript" src="/JsonObjectEditor/js/ace/ace.js"></script> <script src="${JOEPATH}js/plugins/c3/c3.min.js"></script> <script src="${JOEPATH}js/plugins/c3/d3.v3.min.js"></script> <script src="${JOEPATH}capp/capp.js"></script> <style> iframe.site-view { width: 250%; height: 300px; display: block; transform: scale(0.4); transform-origin: 0 0; margin: 0; padding: 0; border: none; } body{ background:#0099aa; } </style> ${this.settings.dashboard_head} <style id="user-styles"> ${this.USER.styles} </style> </head> <body> <capp-wrapper class="left-panel"> <capp-body> <capp-panel class="capp-bg-dark" id="joePanelMenu"> <!--<capp-button class="capp-panel-toggle"> <capp-button-icon><-></capp-button-icon> <capp-button-label>expand / contract</capp-button-label> </capp-button>--> <capp-button id="dashboardbtn" onclick="_joe.closeButtonAction();" class="selected"> <capp-button-icon title="Dashboard"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="-20 -20 360 360"><g data-name="paper square"><path d="M20 60V260H300V60.1ZM36.2 234.9a10 10 0 1 1 10-10A10 10 0 0 1 36.2 234.9Zm0-33.5a10 10 0 1 1 10-10A10 10 0 0 1 36.2 201.4Zm0-33.5a10 10 0 1 1 10-10A10 10 0 0 1 36.2 167.9Zm0-33.5a10 10 0 1 1 10-10A10 10 0 0 1 36.2 134.4Zm0-33.5a10 10 0 1 1 10-10A10 10 0 0 1 36.2 100.9ZM295 255H54V81l241 0.1Z"/></g><path d="M239.5 207.6a9.9 9.9 0 0 0 19.8 0A89.1 89.1 0 0 0 243.7 157c-4.3 4.9-8.9 10.2-13.6 15.5A69.4 69.4 0 0 1 239.5 207.6Z"/><path d="M169.7 117.9A89.8 89.8 0 0 0 80 207.6a9.9 9.9 0 0 0 19.8 0 69.8 69.8 0 0 1 108.7-58l17.9-11.4A89.3 89.3 0 0 0 169.7 117.9Z"/><path d="M260 126.4S163.6 187.1 156.6 193a16.5 16.5 0 0 0 21.5 25.1C185 212.2 260 126.4 260 126.4Z"/><circle cx="169.2" cy="156.9" r="8.9"/><circle cx="132.8" cy="172" r="8.9"/><circle cx="117.8" cy="208.3" r="8.9"/><circle cx="220.6" cy="208.3" r="8.9"/></svg> <svg-label>dashboard</svg-label></capp-button-icon> <capp-button-label>Dashboard</capp-button-label> </capp-button> <!--<capp-button id="searchbtn" onclick="_joe.quickFind();"> <capp-button-icon title="QuickFind (alt+f)"><svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="-8 -8 80 80"> <title>search</title><g id="Search"><polygon points="10.84 46.25 23.81 34.47 29.5 40.76 16.54 52.54 10.84 46.25 10.84 46.25"/><path d="M38.17,12a14.45,14.45,0,1,1-13.65,9.72A14.42,14.42,0,0,1,38.17,12m0,3.92a10.55,10.55,0,1,0,3.44.58h0a10.49,10.49,0,0,0-3.44-.58Z"/></g></svg><svg-label>search</svg-label></capp-button-icon> <capp-button-label>QuickFind</capp-button-label> </capp-button>--> <capp-button onclick="_joe.quickAdd(false);"> <capp-button-icon title="QuickCreate (alt+n)"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="-5 -5 50 50"><title>plus</title> <g id="Layer_2" data-name="Layer 2"><polygon class="cls-1" points="28 22.33 22.45 22.33 22.45 28 17.62 28 17.62 22.33 12 22.33 12 17.5 17.62 17.5 17.62 12 22.45 12 22.45 17.5 28 17.5 28 22.33"/></g></svg> <svg-label>add</svg-label> </capp-button-icon> <capp-button-label>QuickAdd</capp-button-label> </capp-button> </capp-panel> <capp-view id="joeHolder"></capp-view> <capp-dashboard style="margin-left:50px;"> </capp-dashboard> </capp-body> <capp-header class="capp-retro" ondblclick="openFullscreen()"> <capp-header-bonus ></capp-header-bonus> <capp-joe-icon onclick="capp.special.joeicon();" ondblclick="$('capp-panel').toggleClass('capp-bg-light').toggleClass('capp-bg-dark');"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="-18 -10 148 148"><g><path d="M28.47,66.15v9.76q0,5.09.43,5.92a2.73,2.73,0,0,0,1.86,1.47A16,16,0,0,0,35,83.7l1.68,0q.55,0,.94,0,4.27,0,4.27,2.74,0,3.17-4.51,3.88a84.32,84.32,0,0,1-11.13.51q-6.78,0-9.6-2.63T13.82,79.2V66.93a10.3,10.3,0,0,0-.88-5,5.71,5.71,0,0,0-3.55-2.21A3.53,3.53,0,0,1,6.73,56a3.49,3.49,0,0,1,2.66-3.72A5.89,5.89,0,0,0,12.94,50a10.18,10.18,0,0,0,.88-5V32.76q0-6.27,2.82-8.9t9.6-2.62a73.16,73.16,0,0,1,11.83.63,5.29,5.29,0,0,1,2.8,1.35,3.24,3.24,0,0,1,1,2.37q0,2.74-4.27,2.74h-.94l-1.76,0q-3.64,0-5,.78a3.09,3.09,0,0,0-1.37,2.7q0,.63,0,4.31v9.72q-.08,7.09-3.8,9.44a.71.71,0,0,0-.31.59q0,.55,1.33,1.65a7.23,7.23,0,0,1,2.08,3.35A17.35,17.35,0,0,1,28.47,66.15Z"/><path class="cls-1" d="M56.14,35.43a9.17,9.17,0,0,1,9.13,9.13,9,9,0,0,1-2.78,6.78,9.38,9.38,0,0,1-12.93,0,9,9,0,0,1-2.78-6.78,8.47,8.47,0,0,1,2.35-6.07A9.16,9.16,0,0,1,56.14,35.43Zm0,22.65a9.17,9.17,0,0,1,9.13,9.13A9,9,0,0,1,62.48,74a9.38,9.38,0,0,1-12.93,0,9,9,0,0,1-2.78-6.78,8.48,8.48,0,0,1,2.35-6.07A9.16,9.16,0,0,1,56.14,58.08Z"/><path class="cls-1" d="M83.53,45.81V36.09q0-5.09-.43-5.92a2.73,2.73,0,0,0-1.86-1.47A16,16,0,0,0,77,28.3l-1.69,0H74.4q-4.27,0-4.27-2.74,0-3.17,4.51-3.84a84.9,84.9,0,0,1,11.13-.51q6.78,0,9.6,2.63t2.82,8.9v12.3a10.18,10.18,0,0,0,.88,5,5.89,5.89,0,0,0,3.55,2.23A3.49,3.49,0,0,1,105.27,56a3.5,3.5,0,0,1-1.84,3.37,11.14,11.14,0,0,1-1.92.67,4.49,4.49,0,0,0-2.82,2.63,12.74,12.74,0,0,0-.51,4.27V79.2q0,6.31-2.82,8.93t-9.6,2.63a72.82,72.82,0,0,1-11.83-.63,5.29,5.29,0,0,1-2.8-1.35,3.28,3.28,0,0,1-1-2.41q0-2.74,4.27-2.74.51,0,2.7.08a12.45,12.45,0,0,0,5-.78,2.3,2.3,0,0,0,1.2-1.59,38.42,38.42,0,0,0,.22-5.43V66.15a15.81,15.81,0,0,1,.84-5.74,8.53,8.53,0,0,1,3-3.66.71.71,0,0,0,.31-.59q0-.55-1.33-1.65a7.22,7.22,0,0,1-2.08-3.35A17.5,17.5,0,0,1,83.53,45.81Z"/></g></svg> </capp-joe-icon> <!--<capp-app-title><joe-subtext>${this.webconfig.name}</joe-subtext>${APPNAME}</capp-app-title>--> <!--<capp-button onclick="_joe.quickAdd(false);"> <capp-button-icon title="QuickCreate (alt+n)"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="-5 -5 50 50"><title>plus</title> <g id="Layer_2" data-name="Layer 2"><polygon class="cls-1" points="28 22.33 22.45 22.33 22.45 28 17.62 28 17.62 22.33 12 22.33 12 17.5 17.62 17.5 17.62 12 22.45 12 22.45 17.5 28 17.5 28 22.33"/></g></svg> <svg-label>add</svg-label> </capp-button-icon> <capp-button-label>QuickAdd</capp-button-label> </capp-button>--> <capp-menu id="cappUserMenu" class='fright'><capp-menu-label id="cappUser">User</capp-menu-label> <capp-menu-panel class="right-side"> <capp-menu-option onclick="goJoe(_joe.search(_joe.User._id)[0],{schema:'user'});">my profile</capp-menu-option> <capp-menu-option onclick="__logout();">logout</capp-menu-option> <capp-menu-option onclick="_joe.Error.show()">view errors</capp-menu-option> <capp-menu-option id="window_size"></capp-menu-option> <capp-menu-option onclick="openFullscreen();">fullscreen</capp-menu-option> </capp-menu-panel> </capp-menu> <capp-menu id="cappJACMenu" class='fright' style="display:none;"><capp-menu-label id="cappJAC"><svg xmlns="http://www.w3.org/2000/svg" viewBox="-16 -16 144 144" style="width: 50px;height: 45px; margin: 0 -10px;"><defs></defs><title>JAC</title><g style=""><path d="M28,66.15v9.76q0,5.09.43,5.92a2.73,2.73,0,0,0,1.86,1.47,16,16,0,0,0,4.21.41l1.68,0q.55,0,.94,0,4.27,0,4.27,2.74,0,3.17-4.51,3.88a84.32,84.32,0,0,1-11.13.51q-6.78,0-9.6-2.63T13.32,79.2V66.93a10.3,10.3,0,0,0-.88-5,5.71,5.71,0,0,0-3.55-2.21A3.53,3.53,0,0,1,6.23,56a3.49,3.49,0,0,1,2.66-3.72A5.89,5.89,0,0,0,12.44,50a10.18,10.18,0,0,0,.88-5V32.76q0-6.27,2.82-8.9t9.6-2.62a73.16,73.16,0,0,1,11.83.63,5.29,5.29,0,0,1,2.8,1.35,3.24,3.24,0,0,1,1,2.37q0,2.74-4.27,2.74h-.94l-1.76,0q-3.64,0-5,.78A3.09,3.09,0,0,0,28,31.78q0,.63,0,4.31v9.72q-.08,7.09-3.8,9.44a.71.71,0,0,0-.31.59q0,.55,1.33,1.65a7.23,7.23,0,0,1,2.08,3.35A17.35,17.35,0,0,1,28,66.15Z"></path><path d="M83,45.81V36.09q0-5.09-.43-5.92a2.73,2.73,0,0,0-1.86-1.47,16,16,0,0,0-4.21-.41l-1.69,0H73.9q-4.27,0-4.27-2.74,0-3.17,4.51-3.84a84.9,84.9,0,0,1,11.13-.51q6.78,0,9.6,2.63t2.82,8.9v12.3a10.18,10.18,0,0,0,.88,5,5.89,5.89,0,0,0,3.55,2.23A3.49,3.49,0,0,1,104.77,56a3.5,3.5,0,0,1-1.84,3.37A11.14,11.14,0,0,1,101,60a4.49,4.49,0,0,0-2.82,2.63,12.74,12.74,0,0,0-.51,4.27V79.2q0,6.31-2.82,8.93t-9.6,2.63a72.82,72.82,0,0,1-11.83-.63,5.29,5.29,0,0,1-2.8-1.35,3.28,3.28,0,0,1-1-2.41q0-2.74,4.27-2.74.51,0,2.7.08a12.45,12.45,0,0,0,5-.78,2.3,2.3,0,0,0,1.2-1.59A38.42,38.42,0,0,0,83,75.91V66.15a15.81,15.81,0,0,1,.84-5.74,8.53,8.53,0,0,1,3-3.66.71.71,0,0,0,.31-.59q0-.55-1.33-1.65a7.22,7.22,0,0,1-2.08-3.35A17.5,17.5,0,0,1,83,45.81Z"></path><path d="M56.12,30.43a9.17,9.17,0,0,1,9.13,9.13,9,9,0,0,1-2.78,6.78,9.38,9.38,0,0,1-12.93,0,9,9,0,0,1-2.78-6.78,8.47,8.47,0,0,1,2.35-6.07A9.16,9.16,0,0,1,56.12,30.43Z"></path><path d="M56.12,63.08a9.17,9.17,0,0,1,9.13,9.13A9,9,0,0,1,62.47,79a9.38,9.38,0,0,1-12.93,0,9,9,0,0,1-2.78-6.78,8.48,8.48,0,0,1,2.35-6.07A9.16,9.16,0,0,1,56.12,63.08Z"></path><path d="M81.57,56.12a9.17,9.17,0,0,1-9.13,9.13,9,9,0,0,1-6.78-2.78,9.38,9.38,0,0,1,0-12.93,9,9,0,0,1,6.78-2.78,8.47,8.47,0,0,1,6.07,2.35A9.16,9.16,0,0,1,81.57,56.12Z"></path><path d="M48.92,56.12a9.17,9.17,0,0,1-9.13,9.13A9,9,0,0,1,33,62.47a9.38,9.38,0,0,1,0-12.93,9,9,0,0,1,6.78-2.78,8.48,8.48,0,0,1,6.07,2.35A9.16,9.16,0,0,1,48.92,56.12Z"></path></g></svg></capp-menu-label> <capp-menu-panel class="right-side"> <capp-menu-option onclick="window.close(); if(confirm('go back to JAC')){window.open('mobile/close');}">back to JAC</capp-menu-option> <capp-menu-option onclick="location.reload()">refresh</capp-menu-option> </capp-menu-panel> </capp-menu> <capp-button id="searchbtn" class="fright" onclick="_joe.quickFind();"> <capp-button-icon title="QuickFind (alt+f)"><svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="-8 -8 80 80"> <title>search</title><g id="Search"><polygon points="10.84 46.25 23.81 34.47 29.5 40.76 16.54 52.54 10.84 46.25 10.84 46.25"/><path d="M38.17,12a14.45,14.45,0,1,1-13.65,9.72A14.42,14.42,0,0,1,38.17,12m0,3.92a10.55,10.55,0,1,0,3.44.58h0a10.49,10.49,0,0,0-3.44-.58Z"/></g></svg><svg-label>search</svg-label></capp-button-icon> <capp-button-label>QuickFind</capp-button-label> </capp-button> <!--<capp-button class='fright' onclick="alert(JSON.stringify(_joe.User,'','\n'));" id="cappUser">User</capp-button>--> </capp-header> <capp-popup id="confirm"> <capp-popup-close onclick="capp.Popup.toggle('confirm');"> X </capp-popup-close> <capp-title>Title</capp-title> <capp-content>Content</capp-content> </capp-popup> </capp-wrapper> <script> function openFullscreen() { var elem = document.documentElement; if (elem.requestFullscreen) { elem.requestFullscreen(); } else if (elem.webkitRequestFullscreen) { /* Safari */ elem.webkitRequestFullscreen(); } else if (elem.msRequestFullscreen) { /* IE11 */ elem.msRequestFullscreen(); } } if($c.isMobile()){ $('#window_size').html(window.innerWidth +' x '+ window.innerHeight); } else{ $('#window_size').remove();} var __collectionNames = $.unique("${ALL_COLLECTIONS}".split(',').sort()); var __appCollections = "${COLLECTIONS}".split(','); var __defaultSchemas = "${DEFAULT_SCHEMAS}".split(','); var __pluginNames = $.unique("${PLUGINS}".split(',').sort()); var APPINFO = ${APPINFO}; unstringifyFunctions(APPINFO); $c.DEBUG_MODE = location.hostname == "localhost"; var capp_items=[ ]; if(typeof APPINFO.dashboard == "function"){ APPINFO.dashboard = APPINFO.dashboard(); } $.fn.isInViewport = function() { var elementTop = $(this).offset().top; var elementBottom = elementTop + $(this).outerHeight(); var viewportTop = $(window).scrollTop(); var viewportBottom = viewportTop + $(window).height(); return elementBottom > viewportTop && elementTop < viewportBottom; }; var sl = false, goog = false; var socketUrl = '/'; if(__jsc.port != __jsc.socketPort){ socketUrl = `http://${location.hostname}:${__jsc.socketPort}/`; } var JOE = new JsonObjectEditor({ localStorage:false,//$GET('local') || !$c.isMobile(), container:'#joeHolder', useHashlink:true, useBackButton:true, socket:socketUrl, onServerLoadComplete:function(){ if(APPINFO && APPINFO.onServerLoadComplete){ var c = new Benchmarker(); APPINFO.onServerLoadComplete(); logit('ledgers updated in '+c.stop()+' secs'); } capp.Reload.all(); //_joe.Google && _joe.Google.authorize(); if(!$c.isMobile()){ capp.special.joeicon(true); } }, onServerUpdate:function(){ capp.Reload.all(); }, documentTitle:function(a,b){ if(_joe.current.object ||_joe.current.list){ return _joe.current.title; } return APPINFO.title; }, onPanelHide:function(joestate){ if(!_joe.current.schema){ $('capp-button.selected').removeClass('selected'); $('capp-button#dashboardbtn').addClass('selected'); if(!$c.isMobile()){ capp.special.joeicon(true); } } }, onPanelShow:function(joestate,details){ var container = $('capp-body > capp-panel'),scrollTo; /*logit(joestate);*/ capp.special.joeicon(false); if(joestate.schema){ var selector = '#'+joestate.schema+'SchemaBtn'; $('capp-button.selected').removeClass('selected'); $(selector).addClass('selected').parents('capp-menu').addClass('expanded'); scrollTo = $(selector); }else if(joestate.title == "Search Results"){ $('capp-button.selected').removeClass('selected'); $('capp-button#searchbtn').addClass('selected'); //scrollTo = $('capp-button#searchbtn'); } if(scrollTo && scrollTo[0] && !scrollTo.isInViewport()){ container.scrollTop( scrollTo.offset().top - container.offset().top + container.scrollTop() ); } if(details.time){ $('#showCounter').remove(); var warningcount = (details.warnings||[]).length; $('#cappUserMenu capp-menu-panel').append('<capp-menu-option id="showCounter" onclick="showJOEWarnings()">'+details.time+'s ['+warningcount+']</capp-menu-option>'); } } }); var capp = new CraydentApp(true,capp_items.concat(APPINFO.dashboard)); JOE.init(); //capp.init(); var capp_apps = '${USERAPPS}'.split(',') || []; var caobj = ${USERAPPSOBJ}; var all_apps = '${APPS}'.split(',') || []; capp.Menu.addFromApps(caobj,'<joe-subtext>${this.webconfig.name}</joe-subtext>${APPNAME}'); //capp.Button.add('Docs',null,'window.open(\'/JsonObjectEditor/docs.html\')','capp-header'); JOE.SERVER.User.get(); JOE.SERVER.loadSchemas('${COLLECTIONS}'); JOE.SERVER.loadDatasets('${COLLECTIONS}'); function __logout(){ $COOKIE('_j_user',null,{delete:true,path:'/'}); $COOKIE('_j_token',null,{delete:true,path:'/'}); $.ajax({ url:location.href.replace(location.hostname,'logout:password@'+location.hostname), error:function(){alert('logged out'); location.reload();}, }) } function checkGoogleAuth(){ _joe.Data.setting && _joe.Google && _joe.Google.authorize(); } if(JACmode){ $('#cappJACMenu').show(); } </script> <script src="${JOEPATH}js/joe-ai.js"></script> <!-- <script src="https://apis.google.com/js/client.js?onload=checkGoogleAuth"></script> --> </body> </html>