Skip to content

Instantly share code, notes, and snippets.

@mogsdad
Last active February 12, 2018 22:39
Show Gist options
  • Save mogsdad/3a25a4ee1981cba21566 to your computer and use it in GitHub Desktop.
Save mogsdad/3a25a4ee1981cba21566 to your computer and use it in GitHub Desktop.
Example showing use of Logger passthrough in client-side JavaScript. See https://mogsdad.wordpress.com/?p=193.
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
/**
* On document load, assign click handlers to button(s), add
* elements that should start hidden (avoids "flashing"), and
* start polling for document selections.
*/
$(function() {
// assign click handler(s)
$('#submit-button').click(function() {
Logger.log("submit-button clicked");
$('#submit-button').attr('disabled',true);
Logger.log(JSON.stringify($('#input-form').serializeArray()));
// ...and then do something useful
});
// Get static server-side info
google.script.run
.withSuccessHandler(
function(value) {
Logger.log("Received initial info "+JSON.stringify(value));
$('#submit-button').attr('disabled',false);
})
.withFailureHandler(buttonBarErr)
.getInitialInfo();
// Add elements that should start hidden
});
/**
* Display an error message below buttonBar.
*/
function buttonBarErr(msg, element) {
var caughtErrors = [
"ScriptError: We're sorry, a server error occurred. Please wait a bit and try again.",
"NetworkError: Connection failure due to HTTP",
"ScriptError: Service error"
];
var reportError = true;
// Don't report any of our caughtErrors
for (var i=caughtErrors.length-1; i>=0 && reportError; i--) {
var t = String(msg).indexOf(caughtErrors[i]);
reportError = (String(msg).indexOf(caughtErrors[i]) === -1);
}
if (reportError) {
showError(msg, $('#button-bar'));
element.disabled = false;
}
}
</script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment