/** * Copyright 2009 Google Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS-IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var padimpexp = (function() { ///// import var currentImportTimer = null; var hidePanelCall = null; function addImportFrames() { $("#impexp-import .importframe").remove(); $('#impexp-import').append( $('')); } function fileInputUpdated() { $('#importformfilediv').addClass('importformenabled'); $('#importsubmitinput').removeAttr('disabled'); $('#importmessagefail').fadeOut("fast"); $('#importarrow').show(); $('#importarrow').animate({paddingLeft:"0px"}, 500) .animate({paddingLeft:"10px"}, 150, 'swing') .animate({paddingLeft:"0px"}, 150, 'swing') .animate({paddingLeft:"10px"}, 150, 'swing') .animate({paddingLeft:"0px"}, 150, 'swing') .animate({paddingLeft:"10px"}, 150, 'swing') .animate({paddingLeft:"0px"}, 150, 'swing'); } function fileInputSubmit() { $('#importmessagefail').fadeOut("fast"); var ret = window.confirm( "Importing a file will overwrite the current text of the pad."+ " Are you sure you want to proceed?"); if (ret) { hidePanelCall = paddocbar.hideLaterIfNoOtherInteraction(); currentImportTimer = window.setTimeout(function() { if (! currentImportTimer) { return; } currentImportTimer = null; importFailed("Request timed out."); }, 25000); // time out after some number of seconds $('#importsubmitinput').attr({disabled: true}).val("Importing..."); window.setTimeout(function() { $('#importfileinput').attr({disabled: true}); }, 0); $('#importarrow').stop(true, true).hide(); $('#importstatusball').show(); } return ret; } function importFailed(msg) { importErrorMessage(msg); importDone(); addImportFrames(); } function importDone() { $('#importsubmitinput').removeAttr('disabled').val("Import Now"); window.setTimeout(function() { $('#importfileinput').removeAttr('disabled'); }, 0); $('#importstatusball').hide(); importClearTimeout(); } function importClearTimeout() { if (currentImportTimer) { window.clearTimeout(currentImportTimer); currentImportTimer = null; } } function importErrorMessage(msg) { function showError(fade) { $('#importmessagefail').html( 'Import failed: '+ (msg || 'Please try a different file.'))[(fade?"fadeIn":"show")](); } if ($('#importexport .importmessage').is(':visible')) { $('#importmessagesuccess').fadeOut("fast"); $('#importmessagefail').fadeOut("fast", function() { showError(true); }); } else { showError(); } } function importSuccessful(token) { $.ajax({ type: 'post', url: '/ep/pad/impexp/import2', data: {token: token, padId: pad.getPadId()}, success: importApplicationSuccessful, error: importApplicationFailed, timeout: 25000 }); addImportFrames(); } function importApplicationFailed(xhr, textStatus, errorThrown) { importErrorMessage("Error during conversion."); importDone(); } function importApplicationSuccessful(data, textStatus) { if (data.substr(0, 2) == "ok") { if ($('#importexport .importmessage').is(':visible')) { $('#importexport .importmessage').hide(); } $('#importmessagesuccess').html( 'Import successful!').show(); $('#importformfilediv').hide(); window.setTimeout(function() { $('#importmessagesuccess').fadeOut("slow", function() { $('#importformfilediv').show(); }); if (hidePanelCall) { hidePanelCall(); } }, 3000); } else if (data.substr(0, 4) == "fail") { importErrorMessage( "Couldn't update pad contents. This can happen if your web browser has \"cookies\" disabled."); } else if (data.substr(0, 4) == "msg:") { importErrorMessage(data.substr(4)); } importDone(); } ///// export function cantExport() { var type = $(this); if (type.hasClass("exporthrefpdf")) { type = "PDF"; } else if (type.hasClass("exporthrefdoc")) { type = "Microsoft Word"; } else if (type.hasClass("exporthrefodt")) { type = "OpenDocument"; } else { type = "this file"; } alert("Exporting as "+type+" format is disabled. Please contact your"+ " system administrator for details."); return false; } ///// var self = { init: function() { $("#impexp-close").click(function() {paddocbar.setShownPanel(null);}); addImportFrames(); $("#importfileinput").change(fileInputUpdated); $('#importform').submit(fileInputSubmit); $('.disabledexport').click(cantExport); }, handleFrameCall: function(callName, argsArray) { if (callName == 'importFailed') { importFailed(argsArray[0]); } else if (callName == 'importSuccessful') { importSuccessful(argsArray[0]); } }, disable: function() { $("#impexp-disabled-clickcatcher").show(); $("#impexp-import").css('opacity', 0.5); $("#impexp-export").css('opacity', 0.5); }, enable: function() { $("#impexp-disabled-clickcatcher").hide(); $("#impexp-import").css('opacity', 1); $("#impexp-export").css('opacity', 1); } }; return self; }());