aboutsummaryrefslogblamecommitdiffstats
path: root/etherpad/src/etherpad/control/aboutcontrol.js
blob: 9d771428645c497563619db788ce5bf206cd3fac (plain) (tree)







































































































































































































                                                                                                              
                                                   


                                    
                                                                            

























































                                                                                              
/**
 * 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("email.sendEmail");
import("funhtml.*", "stringutils.*");
import("netutils");
import("execution");

import("etherpad.utils.*");
import("etherpad.log");
import("etherpad.globals.*");
import("etherpad.quotas");
import("etherpad.sessions.getSession");
import("etherpad.store.eepnet_trial");
import("etherpad.store.checkout");
import("etherpad.store.eepnet_checkout");

jimport("java.lang.System.out.println");

//----------------------------------------------------------------

function render_product() {
  if (request.params.from) { response.redirect(request.path); }
  renderFramed("about/product_body.ejs");
}

function render_faq() {
  renderFramed("about/faq_body.ejs", {
    LI: LI,
    H2: H2,
    A: A,
    html: html
  });
}

function render_pne_faq() {
  renderFramed("about/pne-faq.ejs");
}

function render_company() {
  renderFramed("about/company_body.ejs");
}

function render_contact() {
  renderFramed("about/contact_body.ejs");
}

function render_privacy() {
  renderFramed("about/privacy_body.ejs");
}

function render_tos() {
  renderFramed("about/tos_body.ejs");
}

function render_testimonials() {
  renderFramed("about/testimonials.ejs");
}

function render_appjet() {
  response.redirect("/ep/blog/posts/etherpad-and-appjet");
//  renderFramed("about/appjet_body.ejs");
}

function render_screencast() {
  if (request.params.from) { response.redirect(request.path); }
  var screencastUrl;
//  if (isProduction()) {
    screencastUrl = encodeURIComponent("http://etherpad.s3.amazonaws.com/epscreencast800x600.flv");
//  } else {
//    screencastUrl = encodeURIComponent("/static/flv/epscreencast800x600.flv");
//  }
  renderFramed("about/screencast_body.ejs", {screencastUrl: screencastUrl});
}

function render_forums() {
  renderFramed("about/forums_body.ejs");
}

function render_blog() {
  renderFramed("about/blog_body.ejs");
}

function render_really_real_time() {
  renderFramed("about/simultaneously.ejs");
}
  
function render_simultaneously() {
  renderFramed("about/simultaneously.ejs");
}

//----------------------------------------------------------------
// pricing
//----------------------------------------------------------------

function render_pricing() {
  renderFramed("about/pricing.ejs", {
    trialDays: eepnet_trial.getTrialDays(),
    costPerUser: checkout.dollars(eepnet_checkout.COST_PER_USER)
  });
}

function render_pricing_free() {
  renderFramed("about/pricing_free.ejs", {
    maxUsersPerPad: quotas.getMaxSimultaneousPadEditors()
  });
}

function render_pricing_eepnet() {
  renderFramed("about/pricing_eepnet.ejs", {
    trialDays: eepnet_trial.getTrialDays(),
    costPerUser: checkout.dollars(eepnet_checkout.COST_PER_USER)
  });
}

function render_pricing_pro() {
  renderFramed("about/pricing_pro.ejs", {});
}

function render_eepnet_pricing_contact_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 err(m) {
    response.write(m);
    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))) {
       err("All fields are required.");
    }
  });
  
  if (!isValidEmail(data.email)) {
    err("Error: Invalid Email");
  }

  // log this data to a file
  fields.ip = request.clientAddr;
  fields.sessionReferer = getSession().initialReferer;
  log.custom("eepnet_pricing_inquiry", fields);

  // submit web2lead
  var ref = getSession().initialReferer;
  var googleQuery = extractGoogleQuery(ref);
  var wlparams = {
    oid: "00D80000000b7ey",
    first_name: data.firstName,
    last_name: data.lastName,
    email: data.email,
    company: data.orgName,
    title: data.jobTitle,
    phone: data.phone,
    '00N80000003FYtG': data.estUsers,
    '00N80000003FYto': ref,
    '00N80000003FYuI': googleQuery,
    lead_source: 'EEPNET Pricing Inquiry',
    industry: data.industry,
    retURL: 'http://'+request.host+'/ep/store/salesforce-web2lead-ok'
  };

  var result = netutils.urlPost(
    "http://www.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8",
    wlparams, {});

  // now send an email sales notification
  var hostname = ipToHostname(request.clientAddr) || "unknown";
  var subject = 'EEPNET Pricing Inquiry: '+data.email+' / '+hostname;
  var body = [
    "", "This is an automated email.", "",
    data.firstName+" "+data.lastName+" ("+data.orgName+") has inquired about EEPNET pricing.",
    "",
    "This record has automatically been added to SalesForce.  See the salesforce lead page for more details.",
    "", "Session Referer: "+ref, ""
  ].join("\n");
  var toAddr = 'sales@pad.spline.inf.fu-berlin.de';
  if (isTestEmail(data.email)) {
    toAddr = 'blackhole@appjet.com';
  }
  sendEmail(toAddr, 'sales@pad.spline.inf.fu-berlin.de', subject, {}, body);

  // all done!
  response.write("OK");
}

function render_pricing_interest_signup() {
  response.setContentType('text/plain; charset=utf-8');

  var email = request.params.email;
  var interestedNet = request.params.interested_net;
  var interestedHosted = request.params.interested_hosted;

  if (!isValidEmail(email)) {
    response.write("Error: Invalid Email");
    response.stop();
  }

  log.custom("pricing_interest", 
    {email: email, 
     net: interestedNet,
     hosted: interestedHosted});

  response.write('OK');
}

function render_pricing_eepnet_users() {
  renderFramed('about/pricing_eepnet_users.ejs', {});
}

function render_pricing_eepnet_support() {
  renderFramed('about/pricing_eepnet_support.ejs', {});
}


//------------------------------------------------------------
// survey

function render_survey() {
  var id = request.params.id;
  log.custom("pro-user-survey", { surveyProAccountId: (id || "unknown") });
  response.redirect("http://www.surveymonkey.com/s.aspx?sm=yT3ALP0pb_2fP_2bHtcfzvpkXQ_3d_3d");
}


//------------------------------------------------------------

import("etherpad.billing.billing");

function render_testbillingnotify() {
  var ret = billing.handlePaypalNotification();
  if (ret.status == 'completion') {
    // do something with purchase ret.purchaseInfo
  } else if (ret.status != 'redundant') {
    java.lang.System.out.println("Whoa error: "+ret.toSource());
  }
  response.write("ok");
}