From ac80fe25afac017156f78136610452f93644f75e Mon Sep 17 00:00:00 2001 From: Tom Ladendorf Date: Wed, 21 Sep 2016 17:17:12 +0200 Subject: [PATCH 01/15] outline for terms --- src/js/app/challenge-details/index.html | 12 ++++++++++++ .../js/controllers/challenge-details-controller.js | 4 ++++ .../js/services/challenge-details-services.js | 13 +++++++++++++ 3 files changed, 29 insertions(+) diff --git a/src/js/app/challenge-details/index.html b/src/js/app/challenge-details/index.html index 9060667a..795d442b 100644 --- a/src/js/app/challenge-details/index.html +++ b/src/js/app/challenge-details/index.html @@ -785,6 +785,18 @@

How to Format Your Submission:

+
  • +
    +

    Challenge Terms:

    + +
    +
  • Source Files:

    diff --git a/src/js/app/challenge-details/js/controllers/challenge-details-controller.js b/src/js/app/challenge-details/js/controllers/challenge-details-controller.js index 7c46fbce..e4e8ab19 100644 --- a/src/js/app/challenge-details/js/controllers/challenge-details-controller.js +++ b/src/js/app/challenge-details/js/controllers/challenge-details-controller.js @@ -80,6 +80,7 @@ vm.checkpointPassedScreeningSubmitterPercentage = 0; vm.checkpointPassedScreeningSubmissionPercentage = 0; vm.phaseProgram = null; + vm.termsList = []; $interval(function () { if (vm.challenge && vm.challenge.currentPhaseRemainingTime) { @@ -161,6 +162,9 @@ * @param ChallengeService */ function initChallengeDetail(handle, vm, ChallengeService) { + ChallengeService.getChallengeTerms(challengeId).then(function(termsList) { + vm.termsList = termsList; + }); ChallengeService .getChallenge(challengeId) .then(function (challenge) { diff --git a/src/js/app/challenge-details/js/services/challenge-details-services.js b/src/js/app/challenge-details/js/services/challenge-details-services.js index d943a5dc..a3541f14 100644 --- a/src/js/app/challenge-details/js/services/challenge-details-services.js +++ b/src/js/app/challenge-details/js/services/challenge-details-services.js @@ -100,6 +100,19 @@ return defer.promise; }; + service.getChallengeTerms = function(id) { + var defer = $q.defer(); + + service + .one('terms', id) + .getList('', {noauth: true}).then(function(data) { + data = data[0].terms; + defer.resolve(data); + }); + + return defer.promise; + } + service.getPeerReviewResults = function(id) { var defer = $q.defer(); From d35faf4e98d4b691257892841f4f9e2a8ebf9a4b Mon Sep 17 00:00:00 2001 From: Tom Ladendorf Date: Thu, 22 Sep 2016 17:27:22 +0200 Subject: [PATCH 02/15] Remove auth requirement to show terms --- src/js/terms.js | 180 +++++++++++++++++++++++------------------------- 1 file changed, 88 insertions(+), 92 deletions(-) diff --git a/src/js/terms.js b/src/js/terms.js index 0033d69c..9a33835d 100644 --- a/src/js/terms.js +++ b/src/js/terms.js @@ -27,103 +27,99 @@ appChallengeTerms = { }, initDetail: function (tcjwt) { - if (app.isLoggedIn()) { - app.setLoading(); - $.ajax({ - type: "GET", - url: tcconfig.apiURL + "/terms/detail/" + termsOfUseID, - dataType: 'json', - headers: { - 'Authorization': 'Bearer ' + tcjwt.replace(/["]/g, "") - }, - success: function(data) { - $(".formContent").addClass("pageContent"); - if (data.title) { - $(".formContent .terms").show(); - $(".formContent .warning").hide(); - $(".overviewPageTitle").text(data["title"]); - //Bugfix I-116354 - $('#agreement-section').removeClass('hide'); - - if (data.agreeabilityType === 'Non-electronically-agreeable') { - $('#agreement-section').addClass('hide'); - $('.loading').hide(); - $(".termsText").html(data.text); - } else if (data["agreeabilityType"] !== "Electronically-agreeable" && typeof data["docusignTemplateId"] !== "undefined") { - //if DocuSign, get URL from docuSign API and output iframe - $('.agree-label').hide(); - $('#termSubmit').text('Go Back'); - $('.agreement').removeClass('notAgreed'); - var finalDest = escape(tcconfig.mainURL + "/challenge-details/terms/" + challengeId + "?challenge-type=" + challengeType + "&cb=" + Math.random()); - $.ajax({ - url: tcconfig.apiURL + '/terms/docusign/viewURL', - type: 'POST', - data: { - templateId: data["docusignTemplateId"], - returnUrl: tcconfig.mainURL + "/iframe-break/?dest=" + finalDest - }, - cache: false, - beforeSend: function(bxhr) { - bxhr.setRequestHeader('Authorization', 'Bearer ' + tcjwt.replace(/["]/g, "")); - }, - complete: function(docuData) { - $('.loading').hide(); - //output iframe when AJAX data returns - var responseObj = docuData.responseJSON; - if (typeof responseObj["recipientViewUrl"] !== "undefined") { - $(".termsText").html(''); - } else { - //url not in data result, error - $(".formContent .terms").hide(); - $(".formContent .warning").text(responseObj["description"]); - $(".formContent .warning").show(); - } - }, - error: function(jqXHR, textStatus, errorThrown) { - // Handle errors here - $(".termsText").html('Sorry, your request could not be completed at this time.'); + app.setLoading(); + $.ajax({ + type: "GET", + url: tcconfig.apiURL + "/terms/detail/" + termsOfUseID + '?noauth=true', + dataType: 'json', + headers: { + 'Authorization': 'Bearer ' + tcjwt.replace(/["]/g, "") + }, + success: function(data) { + $(".formContent").addClass("pageContent"); + if (data.title) { + $(".formContent .terms").show(); + $(".formContent .warning").hide(); + $(".overviewPageTitle").text(data["title"]); + //Bugfix I-116354 + $('#agreement-section').removeClass('hide'); + + if (data.agreeabilityType === 'Non-electronically-agreeable') { + $('#agreement-section').addClass('hide'); + $('.loading').hide(); + $(".termsText").html(data.text); + } else if (data["agreeabilityType"] !== "Electronically-agreeable" && typeof data["docusignTemplateId"] !== "undefined") { + //if DocuSign, get URL from docuSign API and output iframe + $('.agree-label').hide(); + $('#termSubmit').text('Go Back'); + $('.agreement').removeClass('notAgreed'); + var finalDest = escape(tcconfig.mainURL + "/challenge-details/terms/" + challengeId + "?challenge-type=" + challengeType + "&cb=" + Math.random()); + $.ajax({ + url: tcconfig.apiURL + '/terms/docusign/viewURL', + type: 'POST', + data: { + templateId: data["docusignTemplateId"], + returnUrl: tcconfig.mainURL + "/iframe-break/?dest=" + finalDest + }, + cache: false, + beforeSend: function(bxhr) { + bxhr.setRequestHeader('Authorization', 'Bearer ' + tcjwt.replace(/["]/g, "")); + }, + complete: function(docuData) { + $('.loading').hide(); + //output iframe when AJAX data returns + var responseObj = docuData.responseJSON; + if (typeof responseObj["recipientViewUrl"] !== "undefined") { + $(".termsText").html(''); + } else { + //url not in data result, error + $(".formContent .terms").hide(); + $(".formContent .warning").text(responseObj["description"]); + $(".formContent .warning").show(); } - }); - } else { - $('.loading').hide(); - //if not docuSign, output normal terms text - $(".termsText").html(data["text"]); - } + }, + error: function(jqXHR, textStatus, errorThrown) { + // Handle errors here + $(".termsText").html('Sorry, your request could not be completed at this time.'); + } + }); } else { $('.loading').hide(); - $(".formContent .terms").hide(); - $(".formContent .warning").text(data["error"]["details"]); - $(".formContent .warning").show(); + //if not docuSign, output normal terms text + $(".termsText").html(data["text"]); } - $('#agree').change(function () { - if ($(this).prop('checked')) { - $(this).closest('section.agreement').removeClass('notAgreed'); - } else { - $(this).closest('section.agreement').addClass('notAgreed'); - } - }); - $("#termSubmit").click(function () { - if ($(this).parents(".notAgreed").length === 0) { - app.setLoading(); - $.ajax({ - type: "POST", - url: tcconfig.apiURL + "/terms/" + termsOfUseID + "/agree", - dataType: 'json', - headers: { - 'Authorization': 'Bearer ' + tcjwt.replace(/["]/g, "") - }, - success: function(data) { - window.location = tcconfig.mainURL + "/challenge-details/terms/" + challengeId + "?challenge-type=" + challengeType; - $('.loading').hide(); - } - }); - } - }); + } else { + $('.loading').hide(); + $(".formContent .terms").hide(); + $(".formContent .warning").text(data["error"]["details"]); + $(".formContent .warning").show(); } - }); - } else { - $('.actionLogin').click(); - } + $('#agree').change(function () { + if ($(this).prop('checked')) { + $(this).closest('section.agreement').removeClass('notAgreed'); + } else { + $(this).closest('section.agreement').addClass('notAgreed'); + } + }); + $("#termSubmit").click(function () { + if ($(this).parents(".notAgreed").length === 0) { + app.setLoading(); + $.ajax({ + type: "POST", + url: tcconfig.apiURL + "/terms/" + termsOfUseID + "/agree", + dataType: 'json', + headers: { + 'Authorization': 'Bearer ' + tcjwt.replace(/["]/g, "") + }, + success: function(data) { + window.location = tcconfig.mainURL + "/challenge-details/terms/" + challengeId + "?challenge-type=" + challengeType; + $('.loading').hide(); + } + }); + } + }); + } + }); }, initList: function (tcjwt) { From 65e29e2f45e7f28558c5a06dce0003a565fc6b30 Mon Sep 17 00:00:00 2001 From: Tom Ladendorf Date: Thu, 22 Sep 2016 17:30:34 +0200 Subject: [PATCH 03/15] hide submit form when user isn't logged in --- src/js/terms.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/js/terms.js b/src/js/terms.js index 9a33835d..0f6fef9c 100644 --- a/src/js/terms.js +++ b/src/js/terms.js @@ -120,6 +120,9 @@ appChallengeTerms = { }); } }); + if (!app.isLoggedIn()) { + $('#submitForm').hide(); + } }, initList: function (tcjwt) { From 228ffee7e0f51115c7aa87df8537486cc1c518d4 Mon Sep 17 00:00:00 2001 From: Tom Ladendorf Date: Thu, 22 Sep 2016 17:36:29 +0200 Subject: [PATCH 04/15] exclude auth header when not logged in --- src/js/terms.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/js/terms.js b/src/js/terms.js index 0f6fef9c..df829cb4 100644 --- a/src/js/terms.js +++ b/src/js/terms.js @@ -30,11 +30,11 @@ appChallengeTerms = { app.setLoading(); $.ajax({ type: "GET", - url: tcconfig.apiURL + "/terms/detail/" + termsOfUseID + '?noauth=true', + url: tcconfig.apiURL + "/terms/detail/" + termsOfUseID + (app.isLoggedIn() ? '' : '?noauth=true'), dataType: 'json', - headers: { + headers: app.isLoggedIn() ? { 'Authorization': 'Bearer ' + tcjwt.replace(/["]/g, "") - }, + } : {}, success: function(data) { $(".formContent").addClass("pageContent"); if (data.title) { From fc818f8f3e3b813614c333abd18b5de489d310bb Mon Sep 17 00:00:00 2001 From: Tom Ladendorf Date: Thu, 22 Sep 2016 17:46:47 +0200 Subject: [PATCH 05/15] Fixed loading terms list --- .../challenge-details/js/services/challenge-details-services.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/app/challenge-details/js/services/challenge-details-services.js b/src/js/app/challenge-details/js/services/challenge-details-services.js index a3541f14..c73f9510 100644 --- a/src/js/app/challenge-details/js/services/challenge-details-services.js +++ b/src/js/app/challenge-details/js/services/challenge-details-services.js @@ -105,7 +105,7 @@ service .one('terms', id) - .getList('', {noauth: true}).then(function(data) { + .getList('', {noauth: true, role: 'Submitter'}).then(function(data) { data = data[0].terms; defer.resolve(data); }); From 417d02583814d6a71477b6da9100e3ac315ccf02 Mon Sep 17 00:00:00 2001 From: Tom Ladendorf Date: Thu, 22 Sep 2016 17:54:39 +0200 Subject: [PATCH 06/15] weird type logic --- src/js/app/challenge-details/index.html | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/js/app/challenge-details/index.html b/src/js/app/challenge-details/index.html index 795d442b..5c4070e6 100644 --- a/src/js/app/challenge-details/index.html +++ b/src/js/app/challenge-details/index.html @@ -728,6 +728,19 @@

    Challenge Links:

  • +
  • +
    +

    Challenge Terms:

    + +
    +
  • +
  • -
  • +
  • Challenge Terms:

      From 352fc09f525feaeb1a51ff0ed818e19bbe2acb6b Mon Sep 17 00:00:00 2001 From: Tom Ladendorf Date: Thu, 22 Sep 2016 18:22:02 +0200 Subject: [PATCH 07/15] Fixed typo --- src/js/app/challenge-details/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/app/challenge-details/index.html b/src/js/app/challenge-details/index.html index 5c4070e6..1dd2b6cb 100644 --- a/src/js/app/challenge-details/index.html +++ b/src/js/app/challenge-details/index.html @@ -728,7 +728,7 @@

      Challenge Links:

  • -
  • +
  • Challenge Terms:

      From 3899a4a5ff45b9de31366c1f6c1029df0b98157b Mon Sep 17 00:00:00 2001 From: Tom Ladendorf Date: Thu, 22 Sep 2016 18:23:34 +0200 Subject: [PATCH 08/15] adding css --- src/js/app/challenge-details/index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/js/app/challenge-details/index.html b/src/js/app/challenge-details/index.html index 1dd2b6cb..475b6268 100644 --- a/src/js/app/challenge-details/index.html +++ b/src/js/app/challenge-details/index.html @@ -729,7 +729,7 @@

      Challenge Links:

    • -
      +

      Challenge Terms:

      • @@ -799,7 +799,7 @@

        How to Format Your Submission:

    • -
      +

      Challenge Terms:

      • From 26d0b3b282171b5f926e1a6211c843f4fb4d13fb Mon Sep 17 00:00:00 2001 From: Tom Ladendorf Date: Thu, 22 Sep 2016 18:30:51 +0200 Subject: [PATCH 09/15] test smth out --- src/js/app/challenge-details/index.html | 4 ++-- src/js/terms.js | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/js/app/challenge-details/index.html b/src/js/app/challenge-details/index.html index 475b6268..e84b32f6 100644 --- a/src/js/app/challenge-details/index.html +++ b/src/js/app/challenge-details/index.html @@ -733,7 +733,7 @@

        Challenge Links:

        Challenge Terms:

        • - + {{terms.title}}
        • @@ -803,7 +803,7 @@

          How to Format Your Submission:

          Challenge Terms:

          • - + {{terms.title}}
          • diff --git a/src/js/terms.js b/src/js/terms.js index df829cb4..274739a4 100644 --- a/src/js/terms.js +++ b/src/js/terms.js @@ -49,6 +49,7 @@ appChallengeTerms = { $('.loading').hide(); $(".termsText").html(data.text); } else if (data["agreeabilityType"] !== "Electronically-agreeable" && typeof data["docusignTemplateId"] !== "undefined") { + window.location.href = 'login?next=' + window.location.href; //if DocuSign, get URL from docuSign API and output iframe $('.agree-label').hide(); $('#termSubmit').text('Go Back'); From 758ff38cad68a275de84dce63d9cf01de3615229 Mon Sep 17 00:00:00 2001 From: Tom Ladendorf Date: Thu, 22 Sep 2016 18:33:08 +0200 Subject: [PATCH 10/15] fix conditional --- src/js/terms.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/js/terms.js b/src/js/terms.js index 274739a4..b761a285 100644 --- a/src/js/terms.js +++ b/src/js/terms.js @@ -49,7 +49,9 @@ appChallengeTerms = { $('.loading').hide(); $(".termsText").html(data.text); } else if (data["agreeabilityType"] !== "Electronically-agreeable" && typeof data["docusignTemplateId"] !== "undefined") { - window.location.href = 'login?next=' + window.location.href; + if (!app.isLoggedIn()) { + window.location.href = 'login?next=' + window.location.href; + } //if DocuSign, get URL from docuSign API and output iframe $('.agree-label').hide(); $('#termSubmit').text('Go Back'); From 46ae4dddbee39e8afdfd600353adfdfedf5e249b Mon Sep 17 00:00:00 2001 From: Tom Ladendorf Date: Thu, 22 Sep 2016 18:39:55 +0200 Subject: [PATCH 11/15] log statement --- src/js/terms.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/js/terms.js b/src/js/terms.js index b761a285..b946424a 100644 --- a/src/js/terms.js +++ b/src/js/terms.js @@ -50,6 +50,7 @@ appChallengeTerms = { $(".termsText").html(data.text); } else if (data["agreeabilityType"] !== "Electronically-agreeable" && typeof data["docusignTemplateId"] !== "undefined") { if (!app.isLoggedIn()) { + console.log('REDIRECT AWAY FROM DOCUSIGN'); window.location.href = 'login?next=' + window.location.href; } //if DocuSign, get URL from docuSign API and output iframe From e41a4b6858e5368db219c06433fed148661f176d Mon Sep 17 00:00:00 2001 From: Tom Ladendorf Date: Fri, 23 Sep 2016 16:02:12 +0200 Subject: [PATCH 12/15] fix url --- src/js/app/challenge-details/index.html | 4 ++-- src/js/terms.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/js/app/challenge-details/index.html b/src/js/app/challenge-details/index.html index e84b32f6..a65abbb3 100644 --- a/src/js/app/challenge-details/index.html +++ b/src/js/app/challenge-details/index.html @@ -733,7 +733,7 @@

            Challenge Links:

            Challenge Terms:

            • - + {{terms.title}}
            • @@ -803,7 +803,7 @@

              How to Format Your Submission:

              Challenge Terms:

              • - + {{terms.title}}
              • diff --git a/src/js/terms.js b/src/js/terms.js index b946424a..c9297a66 100644 --- a/src/js/terms.js +++ b/src/js/terms.js @@ -51,7 +51,7 @@ appChallengeTerms = { } else if (data["agreeabilityType"] !== "Electronically-agreeable" && typeof data["docusignTemplateId"] !== "undefined") { if (!app.isLoggedIn()) { console.log('REDIRECT AWAY FROM DOCUSIGN'); - window.location.href = 'login?next=' + window.location.href; + window.location.href = '/login?next=' + window.location.href; } //if DocuSign, get URL from docuSign API and output iframe $('.agree-label').hide(); From ae9c38689aab7601111a14a49c045c6c28d9adae Mon Sep 17 00:00:00 2001 From: Tom Ladendorf Date: Fri, 23 Sep 2016 16:02:56 +0200 Subject: [PATCH 13/15] remove log statement --- src/js/terms.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/js/terms.js b/src/js/terms.js index c9297a66..fae1e09e 100644 --- a/src/js/terms.js +++ b/src/js/terms.js @@ -50,7 +50,6 @@ appChallengeTerms = { $(".termsText").html(data.text); } else if (data["agreeabilityType"] !== "Electronically-agreeable" && typeof data["docusignTemplateId"] !== "undefined") { if (!app.isLoggedIn()) { - console.log('REDIRECT AWAY FROM DOCUSIGN'); window.location.href = '/login?next=' + window.location.href; } //if DocuSign, get URL from docuSign API and output iframe From c67cb1517234de35e7789ea6d2051f58e0867a0f Mon Sep 17 00:00:00 2001 From: Tom Ladendorf Date: Fri, 23 Sep 2016 16:10:05 +0200 Subject: [PATCH 14/15] Open link in separate window --- src/js/app/challenge-details/index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/js/app/challenge-details/index.html b/src/js/app/challenge-details/index.html index a65abbb3..ea695773 100644 --- a/src/js/app/challenge-details/index.html +++ b/src/js/app/challenge-details/index.html @@ -733,7 +733,7 @@

                Challenge Links:

                Challenge Terms:

                • - + {{terms.title}}
                • @@ -803,7 +803,7 @@

                  How to Format Your Submission:

                  Challenge Terms:

                  • - + {{terms.title}}
                  • From 67fe5cffcfa675482a16a4816a548551ec342da3 Mon Sep 17 00:00:00 2001 From: Tom Ladendorf Date: Fri, 23 Sep 2016 16:18:14 +0200 Subject: [PATCH 15/15] fix style and order --- src/js/app/challenge-details/index.html | 44 ++++++++++++++----------- 1 file changed, 24 insertions(+), 20 deletions(-) diff --git a/src/js/app/challenge-details/index.html b/src/js/app/challenge-details/index.html index ea695773..d2819ef2 100644 --- a/src/js/app/challenge-details/index.html +++ b/src/js/app/challenge-details/index.html @@ -729,15 +729,17 @@

                    Challenge Links:

                  • -
                    +

                    Challenge Terms:

                    - +
                  • @@ -798,18 +800,6 @@

                    How to Format Your Submission:

    • -
    • -
      -

      Challenge Terms:

      - -
      -
    • Source Files:

      @@ -836,6 +826,20 @@

      Submission Limit:

  • +
  • +
    +

    Challenge Terms:

    + +
    +
  • Share: