/**
* 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.
*/
import("dispatch.{Dispatcher,DirMatcher,forward}");
import("fastJSON");
import("funhtml.*");
import('etherpad.globals.*');
import("etherpad.store.eepnet_trial");
import("etherpad.store.eepnet_checkout");
import("etherpad.sessions.getSession");
import("etherpad.utils.*");
import("etherpad.control.store.eepnet_checkout_control");
import("etherpad.control.pro.admin.team_billing_control");
jimport("java.lang.System.out.println");
//----------------------------------------------------------------
function onStartup() {}
function onRequest() {
var disp = new Dispatcher();
disp.addLocations([
[DirMatcher('/ep/store/eepnet-checkout/'), forward(eepnet_checkout_control)],
]);
return disp.dispatch();
}
//----------------------------------------------------------------
function render_main() {
response.redirect("/ep/about/pricing");
}
//----------------------------------------------------------------
// Flow goes through these 4 pages in order:
//----------------------------------------------------------------
function render_eepnet_eval_signup_get() {
renderFramed("store/eepnet_eval_signup.ejs", {
trialDays: eepnet_trial.getTrialDays(),
oldData: (getSession().pricingContactData || {}),
sfIndustryList: eepnet_trial.getSalesforceIndustryList()
});
delete getSession().errorMsg;
}
// function render_eepnet_eval_signup_post() {
// response.setContentType("text/plain; charset=utf-8");
// var data = {};
// var fields = ['firstName', 'lastName', 'email', 'orgName',
// 'jobTitle', 'phone', 'estUsers', 'industry'];
//
// if (!getSession().pricingContactData) {
// getSession().pricingContactData = {};
// }
//
// function _redirectErr(msg) {
// response.write(fastJSON.stringify({error: msg}));
// response.stop();
// }
//
// fields.forEach(function(f) {
// getSession().pricingContactData[f] = request.params[f];
// });
//
// fields.forEach(function(f) {
// data[f] = request.params[f];
// if (!(data[f] && (data[f].length > 0))) {
// _redirectErr("All fields are required.");
// }
// });
//
// // validate email
// if (!isValidEmail(data.email)) {
// _redirectErr("That email address doesn't look valid.");
// }
//
// // check that email not already registered.
// if (eepnet_trial.hasEmailAlreadyDownloaded(data.email)) {
// _redirectErr("That email has already downloaded a free trial."+
// ' Recover a lost license key here.');
// }
//
// // Looks good! Create and email license key...
// eepnet_trial.createAndMailNewLicense(data);
// getSession().message = "A license key has been sent to "+data.email;
//
// // Generate web2lead info and return it
// var web2leadData = eepnet_trial.getWeb2LeadData(data, request.clientAddr, getSession().initialReferer);
// response.write(fastJSON.stringify(web2leadData));
// }
//
// function render_salesforce_web2lead_ok() {
// renderFramedHtml([
// ''
// ].join('\n'));
// }
//
// function render_eepnet_eval_download() {
// // NOTE: keep this URL around for historical reasons?
// response.redirect("/ep/store/eepnet-download");
// }
//
// function render_eepnet_download() {
// renderFramed("store/eepnet_download.ejs", {
// message: (getSession().message || null),
// versionString: (PNE_RELEASE_VERSION+" ("+PNE_RELEASE_DATE +")")
// });
// delete getSession().message;
// }
//
// function render_eepnet_download_zip() {
// response.redirect("/static/zip/pne-release/etherpad-pne-"+PNE_RELEASE_VERSION+".zip");
// }
//
// function render_eepnet_download_nextsteps() {
// renderFramed("store/eepnet_eval_nextsteps.ejs");
// }
//----------------------------------------------------------------
// recover a lost license
//----------------------------------------------------------------
function render_eepnet_recover_license_get() {
var d = DIV({className: "fpcontent"});
d.push(P("Recover your lost license key."));
if (getSession().message) {
d.push(DIV({id: "resultmsg",
style: "border: 1px solid #333; padding: 0 1em; background: #efe; margin: 1em 0;"}, getSession().message));
delete getSession().message;
}
if (getSession().error) {
d.push(DIV({id: "errormsg",
style: "border: 1px solid red; padding: 0 1em; background: #fee; margin: 1em 0;"}, getSession().error));
delete getSession().error;
}
d.push(FORM({style: "border: 1px solid #222; padding: 2em; background: #eee;",
action: request.path, method: "post"},
LABEL({htmlFor: "email"},
"Your email address:"),
INPUT({type: "text", name: "email", id: "email"}),
INPUT({type: "submit", id: "submit", value: "Submit"})));
renderFramedHtml(d);
}
function render_eepnet_recover_license_post() {
var email = request.params.email;
if (!eepnet_trial.hasEmailAlreadyDownloaded(email) && !eepnet_trialhasEmailAlreadyPurchased(email)) {
getSession().error = P("License not found for email: \"", email, "\".");
response.redirect(request.path);
}
if (eepnet_checkout.hasEmailAlreadyPurchased(email)) {
eepnet_checkout.mailLostLicense(email);
} else if (eepnet_trial.hasEmailAlreadyDownloaded(email)) {
eepnet_trial.mailLostLicense(email);
}
getSession().message = P("Your license information has been sent to ", email, ".");
response.redirect(request.path);
}
//----------------------------------------------------------------
function render_eepnet_purchase_get() {
renderFramed("store/eepnet_purchase.ejs", {});
}
//--------------------------------------------------------------------------------
// csc-help page
//--------------------------------------------------------------------------------
function render_csc_help_get() {
response.write(renderTemplateAsString("store/csc-help.ejs"));
}
//--------------------------------------------------------------------------------
// paypal notifications for pro
//--------------------------------------------------------------------------------
function render_paypalnotify() {
team_billing_control.handlePaypalNotify();
}