This is an automated email from the ASF dual-hosted git repository.

smarru pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/airavata-custos-portal.git

commit 2f24b41c8c8b19afb223af127c75ce017a3ac536
Author: Shivam Rastogi <shivam_r...@yahoo.com>
AuthorDate: Thu Apr 2 16:59:01 2020 -0400

    Add submit methd using post to 'request new tenant' form
---
 custos_portal/custos_portal/apps/workspace/apps.py |   2 +-
 .../custos_portal/apps/workspace/views.py          |  10 +-
 .../apps/workspace/RequestNewTenantContainer.vue   | 115 ++++++++++++---------
 3 files changed, 77 insertions(+), 50 deletions(-)

diff --git a/custos_portal/custos_portal/apps/workspace/apps.py 
b/custos_portal/custos_portal/apps/workspace/apps.py
index 3b433d0..49c1045 100644
--- a/custos_portal/custos_portal/apps/workspace/apps.py
+++ b/custos_portal/custos_portal/apps/workspace/apps.py
@@ -27,4 +27,4 @@ class WorkspaceConfig(CustosAppConfig):
     ]
 
     def app_enabled(self, request):
-        return True
\ No newline at end of file
+        return True
diff --git a/custos_portal/custos_portal/apps/workspace/views.py 
b/custos_portal/custos_portal/apps/workspace/views.py
index 6766cb5..a9d477a 100644
--- a/custos_portal/custos_portal/apps/workspace/views.py
+++ b/custos_portal/custos_portal/apps/workspace/views.py
@@ -1,7 +1,14 @@
+import logging
 from django.shortcuts import render
+from django.views.decorators.csrf import csrf_exempt
 
+logger = logging.getLogger(__name__)
 
+
+@csrf_exempt
 def request_new_tenant(request):
+    if request.method == 'POST':
+        logger.debug("Form is posted")
     request.active_nav_item = 'request-new-tenant'
 
     return render(request, 'workspace/request_new_tenant.html', {
@@ -19,8 +26,7 @@ def list_new_tenant_requests(request):
 
 
 def view_tenant_request(request, tenant_request_id):
-
     return render(request, 'workspace/view_tenant_request.html', {
         'bundle_name': 'view-request',
         'tenant_request_id': tenant_request_id
-    })
\ No newline at end of file
+    })
diff --git 
a/custos_portal/custos_portal/static/common/js/apps/workspace/RequestNewTenantContainer.vue
 
b/custos_portal/custos_portal/static/common/js/apps/workspace/RequestNewTenantContainer.vue
index 4c68b44..07ecd03 100755
--- 
a/custos_portal/custos_portal/static/common/js/apps/workspace/RequestNewTenantContainer.vue
+++ 
b/custos_portal/custos_portal/static/common/js/apps/workspace/RequestNewTenantContainer.vue
@@ -6,17 +6,18 @@
             </div>
         </div>
         <div>
-            <b-form @submit="onSubmit">
+            <b-form @submit="onSubmit" method="post">
                 <b-form-group
                         id="fieldset-1"
                         description=""
                         label="Client Name"
-                        label-for="input-1"
+                        label-for="client-name"
                         :invalid-feedback="invalidFeedback"
                         :valid-feedback="validFeedback"
                 >
                     <b-form-input
-                            id="input-1"
+                            id="client-name"
+                            name="client-name"
                             v-model="form.client_name"
                             :state="!$v.form.client_name.$invalid"
                             trim>
@@ -26,14 +27,16 @@
                         id="fieldset-1"
                         description=""
                         label="Requester Email"
-                        label-for="input-1"
+                        label-for="requester-email"
                         :invalid-feedback="invalidFeedback"
                         :valid-feedback="validFeedback"
                 >
                     <b-form-input
-                            id="input-1"
+                            id="requester-email"
+                            name="requester-email"
                             v-model="form.requester_email"
                             :state="!$v.form.requester_email.$invalid"
+                            type="email"
                             trim>
                     </b-form-input>
                 </b-form-group>
@@ -42,12 +45,13 @@
                         id="fieldset-1"
                         description=""
                         label="Admin Username"
-                        label-for="input-1"
+                        label-for="admin-username"
                         :invalid-feedback="invalidFeedback"
                         :valid-feedback="validFeedback"
                 >
                     <b-form-input
-                            id="input-1"
+                            id="admin-username"
+                            name="admin-username"
                             v-model="form.admin_username"
                             :state="!$v.form.admin_username.$invalid"
                             trim>
@@ -59,12 +63,13 @@
                                 id="fieldset-1"
                                 description=""
                                 label="Admin First Name"
-                                label-for="input-1"
+                                label-for="admin-first-name"
                                 :invalid-feedback="invalidFeedback"
                                 :valid-feedback="validFeedback"
                         >
                             <b-form-input
-                                    id="input-1"
+                                    id="admin-first-name"
+                                    name="admin-first-name"
                                     v-model="form.admin_first_name"
                                     :state="!$v.form.admin_first_name.$invalid"
                                     trim>
@@ -76,12 +81,13 @@
                                 id="fieldset-1"
                                 description=""
                                 label="Admin Last Name"
-                                label-for="input-1"
+                                label-for="admin-last-name"
                                 :invalid-feedback="invalidFeedback"
                                 :valid-feedback="validFeedback"
                         >
                             <b-form-input
-                                    id="input-1"
+                                    id="admin-last-name"
+                                    name="admin-last-name"
                                     v-model="form.admin_last_name"
                                     :state="!$v.form.admin_last_name.$invalid"
                                     trim>
@@ -94,13 +100,15 @@
                         id="fieldset-1"
                         description=""
                         label="Admin Email"
-                        label-for="input-1"
+                        label-for="admin-email"
                         :invalid-feedback="invalidFeedback"
                         :valid-feedback="validFeedback"
                 >
                     <b-form-input
-                            id="input-1"
+                            id="admin-email"
+                            name="admin-email"
                             v-model="form.admin_email"
+                            type="email"
                             :state="!$v.form.admin_email.$invalid"
                             trim>
                     </b-form-input>
@@ -110,18 +118,19 @@
                         id="fieldset-1"
                         description=""
                         label="Admin Password"
-                        label-for="input-1"
+                        label-for="admin-password"
                         :invalid-feedback="invalidFeedback"
                         :valid-feedback="validFeedback"
                 >
                     <b-input type="password"
-                             id="text-password"
+                             id="admin-password"
+                             name="admin-password"
                              aria-describedby="password-help-block"
                              v-model="form.admin_password"
                              :state="!$v.form.admin_password.$invalid"
                              trim></b-input>
                     <b-form-text id="password-help-block">
-                        Your password must be 8-20 characters long, and must 
contain letters and numbers, and must
+                        Your password must be at least 8 characters long, and 
must contain letters and numbers, and must
                         at least one special character.
                     </b-form-text>
                 </b-form-group>
@@ -133,14 +142,16 @@
                                 id="fieldset-1"
                                 description=""
                                 label="Primary contact"
-                                label-for="input-1"
+                                label-for="primary-contact"
                                 :invalid-feedback="invalidFeedback"
                                 :valid-feedback="validFeedback"
                         >
                             <b-form-input
-                                    id="input-1"
+                                    id="primary-contact"
+                                    name="primary-contact"
                                     v-model="form.primary_contact"
                                     :state="!$v.form.primary_contact.$invalid"
+                                    type="tel"
                                     trim>
                             </b-form-input>
                         </b-form-group>
@@ -150,12 +161,13 @@
                                 id="fieldset-1"
                                 description=""
                                 label="Secondary Contact"
-                                label-for="input-1"
+                                label-for="secondary-contact"
                                 :invalid-feedback="invalidFeedback"
                                 :valid-feedback="validFeedback"
                         >
                             <b-form-input
-                                    id="input-1"
+                                    id="secondary-contact"
+                                    name="secondary-contact"
                                     v-model="form.secondary_contact"
                                     
:state="!$v.form.secondary_contact.$invalid"
                                     trim>
@@ -170,15 +182,17 @@
                                     id="fieldset-1"
                                     description=""
                                     label="Redirect URI"
-                                    label-for="input-1"
+                                    label-for="redirect-uri"
                                     :invalid-feedback="invalidFeedback"
                                     :valid-feedback="validFeedback"
                             >
                                 <b-input-group>
                                     <b-form-input
-                                            id="input-1"
+                                            id="redirect-uri"
+                                            name='redirect-uri'
                                             v-model="form.redirect_uris[index]"
                                             
:state="!$v.form.redirect_uris.$each[index].$invalid"
+                                            type="url"
                                             trim>
                                     </b-form-input>
                                     <b-input-group-append>
@@ -193,24 +207,25 @@
                 </div>
                 <b-form-group label="Scope:">
                     <b-form-checkbox-group
-                            id="checkbox-group-1"
+                            id="scope"
                             v-model="form.scope"
                             :options="scopeOptions"
-                            name="flavour-1"
+                            name="scope"
                     ></b-form-checkbox-group>
                 </b-form-group>
                 <b-form-group
                         id="fieldset-1"
                         description=""
                         label="Domain"
-                        label-for="input-1"
+                        label-for="domain"
                         :invalid-feedback="invalidFeedback"
                         :valid-feedback="validFeedback"
                 >
                     <b-form-input
-                            id="input-1"
+                            id="domain"
                             v-model="form.domain"
                             :state="!$v.form.domain.$invalid"
+                            placeholder="idp.htrc.indiana.edu"
                             trim>
                     </b-form-input>
                 </b-form-group>
@@ -218,12 +233,12 @@
                         id="fieldset-1"
                         description=""
                         label="Client URI"
-                        label-for="input-1"
+                        label-for="client-uri"
                         :invalid-feedback="invalidFeedback"
                         :valid-feedback="validFeedback"
                 >
                     <b-form-input
-                            id="input-1"
+                            id="client-uri"
                             v-model="form.client_uri"
                             :state="!$v.form.client_uri.$invalid"
                             trim>
@@ -233,14 +248,15 @@
                         id="fieldset-1"
                         description=""
                         label="Logo URI"
-                        label-for="input-1"
+                        label-for="logo-uri"
                         :invalid-feedback="invalidFeedback"
                         :valid-feedback="validFeedback"
                 >
                     <b-form-input
-                            id="input-1"
+                            id="logo-uri"
                             v-model="form.logo_uri"
                             :state="!$v.form.logo_uri.$invalid"
+                            type="url"
                             trim>
                     </b-form-input>
                 </b-form-group>
@@ -249,14 +265,14 @@
                         id="fieldset-1"
                         description="(At least 15 characters long) Provide 
description of the new tenant and any other comments here."
                         label="Comment"
-                        label-for="input-1"
+                        label-for="comment"
                         :invalid-feedback="invalidFeedback"
                         :valid-feedback="validFeedback"
                 >
                     <b-form-textarea
+                            id="comment"
                             rows="3"
                             textarea
-                            id="input-1"
                             v-model="form.comment"
                             :state="!$v.form.comment.$invalid"
                             trim>
@@ -264,21 +280,13 @@
                 </b-form-group>
                 <b-form-group label="Application Type">
                     <b-form-radio-group
-                            id="radio-group-1"
+                            id="application-type"
                             v-model="form.application_type"
                             :options="application_typeOptions"
-                            name="radio-options"
+                            name="application-type"
                     ></b-form-radio-group>
                 </b-form-group>
-
-
-                <b-button   v-b-modal.modal-1 type="submit" 
variant="primary">Submit</b-button>
-                <div>
-                    <b-modal id="modal-1" title="Client Id and Secret">
-                        <p class="my-4">Client Id: 
custos-cs8jycc8cu66jnc2tsu3-10000002</p>
-                        <p class="my-4">Secret: 
sYh5JIunQQ3aNsG53vC1ZZKrCT8MJmRKzbRmwfla</p>
-                    </b-modal>
-                </div>
+                <b-button  v-b-modal.modal-1 :disabled="isSubmitDisabled" 
type="submit" variant="primary">Submit</b-button>
 
             </b-form>
         </div>
@@ -298,6 +306,9 @@
             },
             validFeedback() {
                 return ''
+            },
+            isSubmitDisabled() {
+                return this.$v.form.$invalid;
             }
         },
         data() {
@@ -317,7 +328,7 @@
                     domain: "",
                     client_uri: "",
                     logo_uri: "",
-                    application_type: "web",
+                    application_type: "",
                     comment: ""
                 },
                 scopeOptions: [
@@ -353,7 +364,13 @@
                 primary_contact: {required},
                 secondary_contact: {},
                 scope: {required},
-                domain: {url},
+                domain: {
+                    required,
+                    validDomain(domain) {
+                    return (
+                        
/^((?!-))(xn--)?[a-z0-9][a-z0-9-_]{0,61}[a-z0-9]{0,}\.?((xn--)?([a-z0-9\-.]{1,61}|[a-z0-9-]{1,30})\.?[a-z]{2,})$/.test(domain)
+                    )
+                    }},
                 client_uri: {required},
                 logo_uri: {url},
                 application_type: {required},
@@ -367,12 +384,16 @@
         },
         methods: {
             onSubmit(event) {
-                event.preventDefault();
-                console.log(this.$v.form.client_name)
+                if(this.$v.form.invalid){
+                    console.log("Please fix the errors");
+                    event.preventDefault();
+                    event.preventDefault();
+                }
             },
             addRedirectUri: function () {
                 this.form.redirect_uris.push("");
             },
+            // TODO check whether 1 redirect URI is there
             deleteRedirectUri: function (index) {
                 console.log(index);
                 this.form.redirect_uris.splice(index, 1);

Reply via email to