From 2f1a26b6069d6d75729a971be20d45f0fc5fefcc Mon Sep 17 00:00:00 2001 From: Reinier Zwitserloot Date: Sun, 11 Mar 2018 16:57:22 +0100 Subject: [PATCH] [website] added supporters infrastructure. --- build.xml | 6 + buildScripts/ivy.xml | 4 +- buildScripts/supporters.ant.xml | 4 +- website/extra/htaccess | 6 + website/resources/W8BEN_lombok.pdf | Bin 0 -> 60743 bytes website/resources/css/custom.css | 71 ++++++++++- website/resources/js/order-license.js | 139 +++++++++++++++++++++- website/resources/js/supporters.js | 13 +- website/templates/_scaffold.html | 15 ++- website/templates/contributing.html | 5 + website/templates/main.html | 16 +-- website/templates/order-license-info.html | 25 ++-- website/templates/order-license.html | 118 ++++++++++++++---- 13 files changed, 357 insertions(+), 65 deletions(-) create mode 100644 website/resources/W8BEN_lombok.pdf diff --git a/build.xml b/build.xml index 629db4a6..645114a7 100644 --- a/build.xml +++ b/build.xml @@ -898,6 +898,12 @@ You can also create your own by writing a 'testenvironment.properties' file. The + + + + + + diff --git a/buildScripts/ivy.xml b/buildScripts/ivy.xml index cf62377e..a27c909e 100644 --- a/buildScripts/ivy.xml +++ b/buildScripts/ivy.xml @@ -58,8 +58,8 @@ - - + + diff --git a/buildScripts/supporters.ant.xml b/buildScripts/supporters.ant.xml index d19e0bb6..d1d3fedc 100644 --- a/buildScripts/supporters.ant.xml +++ b/buildScripts/supporters.ant.xml @@ -39,11 +39,11 @@ containing the status of lombok's supporters. - + - + diff --git a/website/extra/htaccess b/website/extra/htaccess index ea53d49c..db3393af 100644 --- a/website/extra/htaccess +++ b/website/extra/htaccess @@ -24,6 +24,12 @@ RewriteRule ^disable-checked-exceptions$ /disable-checked-exceptions.html [L,END RewriteRule ^disable-checked-exceptions(\.html)?$ /disable-checked-exceptions [NC,R=301] RewriteRule ^contributing$ /contributing.html [L,END] RewriteRule ^contributing(\.html)?$ /contributing [NC,R=301] +RewriteRule ^supporters$ /supporters.html [L,END] +RewriteRule ^supporters(.html)?$ /supporters [NC,R=301] +RewriteRule ^order-license-info$ /order-license-info.html [L,END] +RewriteRule ^order-?license-?info(.html)?$ /order-license-info [NC,R=301] +RewriteRule ^order-license$ /order-license.html [L,END] +RewriteRule ^order-?license(.html)?$ /order-license [NC,R=301] <#list setupPages as pg> RewriteRule ^setup/${pg?no_esc}$ /setup/${pg?no_esc}.html [L,END] diff --git a/website/resources/W8BEN_lombok.pdf b/website/resources/W8BEN_lombok.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b87bded84c822793d680f9ebafcaf0023c3f01c7 GIT binary patch literal 60743 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 GF#QjYT3n(4 literal 0 HcmV?d00001 diff --git a/website/resources/css/custom.css b/website/resources/css/custom.css index e5bb720e..674d341c 100644 --- a/website/resources/css/custom.css +++ b/website/resources/css/custom.css @@ -7,6 +7,68 @@ margin-bottom: 40px; } +.buttonLike { + cursor: pointer; + background: -webkit-linear-gradient(top, #FFFEF7, #CFCEC7); + background: -moz-linear-gradient(top, #FFFEF7, #CFCEC7); + background: -o-linear-gradient(#FFFEF7, #CFCEC7); + background: -ms-linear-gradient(#FFFEF7, #CFCEC7); + background: linear-gradient(top, #FFFEF7, #CFCEC7); + line-height: 1; + padding: 3px 10px; + border: 1px solid black; + position: relative; + overflow: visible; + color: black; + margin: 2px; + border-radius: 5px; + display: inline-block; + text-align: center; +} + +.orderButton { + width: 280px; +} + +.formErr { + color: #FF7777; +} + +.order-license #deleteCompanyLogo { + margin-top: 12px; +} + +.formSubmitFail { + color: #FF6666; + font-size: 1.2em; + font-style: italic; +} + +.order-license .btn-primary { + float: left; + margin-right: 20px; + background: -webkit-linear-gradient(#1725e0, #0923df 6%, #0b21ce); + background: -o-linear-gradient(#1725e0, #0923df 6%, #0b21ce); + background: -webkit-gradient(linear, left top, left bottom, from(#1725e0), color-stop(6%, #0923df), to(#0b21ce)); + background: linear-gradient(#1725e0, #0923df 6%, #0b21ce); + background-repeat: no-repeat; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff1725e0', endColorstr='#ff0b21ce', GradientType=0); + -webkit-filter: none; + filter: none; + border: 1px solid #091bac; +} + +#onlyYearlyWarning { + font-size: 0.8em; + padding-left: 16px; +} + +.deemphasize { + color: #AAAAAA; + font-size: 0.8em; + font-style: italic; +} + .supporterBar .introText { margin-top: 16px; } @@ -24,6 +86,10 @@ display: inline-block; } +.supporters .supportItem { + margin: 6px 10px; +} + .supporterBar { width: 100%; margin-left: auto; @@ -53,11 +119,6 @@ height: 16px; } -.legalese { - font-style: italic; - font-size: 0.8em; -} - #companyLogo { margin-right: 8px; } diff --git a/website/resources/js/order-license.js b/website/resources/js/order-license.js index 82627f2b..4a3edca0 100644 --- a/website/resources/js/order-license.js +++ b/website/resources/js/order-license.js @@ -1,21 +1,140 @@ "use strict"; (function() { + if (!String.prototype.trim) { + String.prototype.trim = function () { + return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''); + }; + } + var imgDataUrl = null; + + function updateLocationInfo() { + var locationType = $("input:radio[name='locationType']:checked").val(); + $("#locationType_usa").toggle(locationType === "usa"); + $("#locationType_eu").toggle(locationType === "eu"); + $("#locationType_other").toggle(locationType === "other"); + $("#paymentMethod_iban").toggle(locationType === "eu"); + if ($("#paymentMethod_iban input").is(":checked") && locationType !== "eu") $("#paymentMethod_payoneer input").prop("checked", true); + if ($("#paymentMethod_intl input").is(":checked") && locationType === "eu") $("#paymentMethod_iban input").prop("checked", true); + $("#paymentMethod_intl").toggle(locationType !== "eu"); + } + + function updatePriceIndication() { + $("#onlyYearlyWarning").hide(); + var x = getPriceIndication(); + if (x === "") { + $("#costIndicator").text("").hide(); + } else { + $("#costIndicator").text(x).show(); + } + } + + function getPriceIndication() { + try { + var seats = parseInt($("#seats").val()); + if (isNaN(seats)) return ""; + var licenseType = $("input:radio[name='licenseType']:checked").val(); + var costPer; + if (licenseType === "enterprise") costPer = 5; + else if (licenseType === "professional") costPer = 2; + else return ""; + var periodRaw = $("input:radio[name='paymentType']:checked").val(); + if (periodRaw === "monthly") { + if (costPer*seats < 50) { + $("#onlyYearlyWarning").show(); + return "Your license will cost €" + (costPer*seats*12) + ",- per year."; + } + return "Your license will cost €" + (costPer*seats) + ",- per month."; + } + return "Your license will cost €" + (costPer*seats*12) + ",- per year."; + } catch (e) { + return ""; + } + } + + function showError(elemName) { + var elem = $("#" + elemName + "Err"); + elem.fadeIn(); + $("#" + elemName).on("change keyup", function() { + elem.hide(); + }); + } + function applyLicense() { - $("#submit").on("click", function(evt) { + var submitButton = $("#submit"); + var spinner = $("").attr("src", "/img/spinner.gif").attr("alt", "submitting").css("float", "left").css("margin-right", "20px"); + + submitButton.on("click", function(evt) { evt.preventDefault(); var onSuccess = function() { - alert("Form submitted!"); + $("#orderHelp").hide(); + var okMsg = $("
").addClass("formSubmitOk").html("Thank you for ordering a Project Lombok license! We'll send your bill via email. If you have any further questions please contact us at orders@projectlombok.org."); + spinner.replaceWith(okMsg); }; var onFailure = function() { - alert("Whoops"); + $("#orderHelp").hide(); + var errMsg = $("
").addClass("formSubmitFail").html("Our order form appears to be broken. Could you do us a favour and contact us at orders@projectlombok.org? Thank you!"); + spinner.replaceWith(errMsg); }; var data = {}; - data.name = $("#name").val(); + data.name = $("#companyName").val(); + data.email = $("#email").val(); + data.licenseType = $("input:radio[name='licenseType']:checked").val(); + data.seats = parseInt($("#seats").val()); + data.paymentType = $("input:radio[name='paymentType']:checked").val(); + data.mentionMe = $("#mentionMe").prop("checked"); + data.companyUrl = $("#companyUrl").val(); + data.locationType = $("input:radio[name='locationType']:checked").val(); + data.euVat = $("#euVat").val(); + data.paymentMethod = $("input:radio[name='paymentMethod']:checked").val(); + + var formFail = false; + + if (!data.paymentMethod) { + showError("paymentMethod"); + formFail = true; + } + + if (!data.euVat && data.locationType === 'eu') { + $("#euVat").focus(); + showError("euVat"); + formFail = true; + } + + if (!data.locationType) { + showError("locationType"); + formFail = true; + } + + if (!data.seats || isNaN(data.seats)) { + $("#seats").focus(); + showError("seats"); + formFail = true; + } + + if (!data.paymentType) { + showError("paymentType"); + formFail = true; + } + + if (data.email.indexOf('@') === -1) { + $("#email").focus(); + showError("email"); + formFail = true; + } + + if (data.name.trim().length < 1) { + $("#companyName").focus(); + showError("companyName"); + formFail = true; + } + + if (formFail) return; + var rnd = generateRandom(); var err = processImageUpload(); if (err) { @@ -24,6 +143,9 @@ return; } if (imgDataUrl) data.logo = imgDataUrl; + + submitButton.replaceWith(spinner); + $.ajax({ url: "/license-submit/" + rnd, method: "PUT", @@ -31,7 +153,7 @@ data: JSON.stringify(data), processData: false, success: onSuccess, - failure: onFailure + error: onFailure }); }); @@ -58,6 +180,13 @@ $("#deleteCompanyLogo").show(); } }); + + $("#seats,.paymentType,.licenseType").on("change keyup", function() { + updatePriceIndication(); + }); + $(".locationType").on("change", function() { + updateLocationInfo(); + }); } function generateRandom() { diff --git a/website/resources/js/supporters.js b/website/resources/js/supporters.js index 5ec1b057..5f21c79c 100644 --- a/website/resources/js/supporters.js +++ b/website/resources/js/supporters.js @@ -3,7 +3,7 @@ (function($) { var supporters = {}; var weights = {}; - var types = ["patron", "professional", "enterprise"]; + var types = ["enterprise", "professional", "patron"]; function shuffle(array) { var i = 0, j = 0, temp = null; @@ -49,7 +49,7 @@ var d = $("
").addClass("supportItem").addClass(this.type); var a = d; if (this.url) { - a = $("").attr("href", this.url).attr("rel", "noopener"); + a = $("").attr("href", this.url).attr("rel", "noopener").attr("target", "_blank"); d.append(a); } var n = $("").text(this.name); @@ -69,8 +69,13 @@ var ht = Math.round(h / f); i.width = wt; i.height = ht; + var ji = $(i); if (!showName) a.empty(); - a.prepend(i); + ji.css("width", wt + "px"); + ji.css("height", ht + "px"); + ji.attr("alt", n); + ji.attr("title", n); + a.prepend(ji); }; i.src = 'files/' + this.logo; } @@ -129,6 +134,8 @@ var s = $(".supporterBar"); s.find(".introText").show(); s.append($("
").addClass("sbCnt")); + var sf = s.find(".supporterFooter").show(); + s.append(sf); s = s.find(".sbCnt"); var now = new Date(); var list = []; diff --git a/website/templates/_scaffold.html b/website/templates/_scaffold.html index c461423f..767f28e5 100644 --- a/website/templates/_scaffold.html +++ b/website/templates/_scaffold.html @@ -92,14 +92,17 @@ ga('send', 'pageview');
  • Experimental
  • -
  • - - Discuss/Help - +
  • - - Contribute + + Order / Donate
  • <@main.h2 title="Upcoming presentations" />

    - Roel and Reinier will be talking about (near) future java features; a preview of what Java10 and Java11 will probably look like, across germany:

    + Roel and Reinier will be talking about (near) future java features:
    JavaLand March 14th 2018, 12:00, room: Schauspielhaus. +

    See you there! (We'll have stickers!)

    +
    diff --git a/website/templates/order-license-info.html b/website/templates/order-license-info.html index b465eaf0..a58ef913 100644 --- a/website/templates/order-license-info.html +++ b/website/templates/order-license-info.html @@ -9,15 +9,22 @@

    Lombok is open source. We offer three licenses for using lombok. The standard license is free. Here you can order a professional or enterprise license.

    - As part of being a professional or enterprise licensee, we normally offer to put your name, a logo, and possibly a link on our ‘supporters and licensees’ page. From time to time we’ll put a supporter or licensee on our front page. You may of course opt out of this offer. We may, at our discretion, opt not to list you. If we elect not to do so, you will be notified at the email address you fill in on our form, and you are as always free to cancel your license at any time. -

    - The license fee is based on the number of developers that work for you or your company using Project Lombok, per month. The fee is charged in advance. You may choose to pay either monthly or yearly (for sufficiently small licensees, only a yearly option is available). -

    - Project Lombok is provided by the copyright holders and contributors “as is” and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed, even for professional and enterprise license holders. In no event shall the copyright holder or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage. -

    - Instead of a professional or enterprise license, if you’d like to support the efforts of Project Lombok, you can also support us via Patreon. -

    - Order a professional or enterprise license now. + Order a professional or enterprise license
    + For individuals: Become a patreon +

    +
    +

    Benefits of becoming a licensee

    +
    +

    + Lombok is and will remain a free, open source product. However, we ask you to consider becoming a licensee. Licensees will be listed on the projectlombok.org website, we'll send you some stickers, and an official license. You'll be supporting the development of Project Lombok. +

    +
    +

    Small print

    +
    +

    + As part of being a professional or enterprise licensee, we will put your name, a logo, and possibly a link on our ‘supporters and licensees’ page. We'll also put (at random) some supporters and licensees on our front page. You may of course opt out of this offer. We may, at our discretion, opt not to list you. If we elect not to do so, you will be notified at the email address you fill in on our form, and you are as always free to cancel your license at any time. +

    + Project Lombok is provided by the copyright holders and contributors “as is” and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed, even for professional and enterprise license holders. In no event shall the copyright holder or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage.

    diff --git a/website/templates/order-license.html b/website/templates/order-license.html index 4d52d93a..91693c0a 100644 --- a/website/templates/order-license.html +++ b/website/templates/order-license.html @@ -1,7 +1,7 @@ <#import "/_scaffold.html" as main> <@main.scaffold load=["/js/order-license.js"]> - -
    -Form fields: - -* EU / US / Elders -* Naam bedrijf -* Do you want to be mentioned? -* Link to logo -* Link to website -* Professional of enterprise -* # of developers -* Email of contact.sta -* In EU: VAT Number -* In EU: How would you like to pay? IBAN or Payoneer -* In US: How would you like to pay? International wire transfer, or Payoneer (default = payoneer). -* Elders: We’ll get back to you.. -