diff --git a/JSONCreator_iOS/JSONCreator/JSON/Samples/AccountSecurity.json b/JSONCreator_iOS/JSONCreator/JSON/Samples/AccountSecurity.json new file mode 100644 index 0000000..19f0e0e --- /dev/null +++ b/JSONCreator_iOS/JSONCreator/JSON/Samples/AccountSecurity.json @@ -0,0 +1,194 @@ +{ + "ResponseInfo": { + "locale": "EN", + "server": "10-74-170-83.ebiz.verizon.com-mf_prepayss01", + "code": "00000", + "hideNotificationLogo": false, + "message": "0", + "buildNumber": "6698", + "type": "Success", + "requestId": "dbb1ee17-69fe-464e-8a82-9563b83422ab", + "topAlertTime": 0 + }, + "Page": { + "navigationBar": { + "moleculeName": "navigationBar", + "title": "Account security" + }, + "pageType": "tbd", + "cache": false, + "screenHeading": "Account security", + "template": "stack", + "header": { + "moleculeName": "header", + "molecule": { + "moleculeName": "headlineBody", + "headline": { + "moleculeName": "label", + "text": "Next up, let's secure this account." + }, + "body": { + "moleculeName": "label", + "attributes": [ + { + "topPadding": 30, + "length": 19, + "action": { + "actionType": "openPage", + "analyticsData": { + "vzdl.page.pageLinkName": "/mf/Manage Profile|Email Verify", + "vzdl.page.linkName": "Verify" + }, + "pageType": "whyWeAskingAEMPR" + }, + "location": 113, + "type": "action" + } + ], + "text": "We'll use this PIN and security question for verification and help accessing the account. Make sure the PIN meets these requirements." + } + } + }, + "stack": { + "moleculeName": "stack", + "molecules": [ + { + "moleculeName": "stackItem", + "horizontalAlignment": "leading", + "molecule": { + "moleculeName": "digitTextField", + "editable": true, + "title": "Account security PIN", + "digits": 4, + "fieldKey": "securityPIN" + } + }, + { + "moleculeName": "stackItem", + "horizontalAlignment": "leading", + "molecule": { + "moleculeName": "digitTextField", + "editable": true, + "title": "Confirm account security PIN", + "type": "secure", + "digits": 4, + "fieldKey": "confirmSecurityPIN" + } + }, + { + "moleculeName": "stackItem", + "molecule": { + "moleculeName": "dropDown", + "fieldKey": "securityQuestion", + "title": "Security question", + "options": [ + "What was the first live concert you attended?", + "Where did you and your spouse first meet?", + "What was your favorite place to visit as a child?", + "What was the first name of your first roommate?", + "What is the name of a memorable place?", + "What is the first name of your best friend?", + "What was your favorite restaurant in college?" + ], + "selectedIndex": 0 + } + }, + { + "moleculeName": "stackItem", + "molecule": { + "moleculeName": "textField", + "title": "Security answer", + "type": "text", + "fieldKey": "securityAnswer" + } + }, + { + "moleculeName": "stackItem", + "molecule": { + "moleculeName": "label", + "text": "Be sure to remember these details. They'll be needed to access the account later." + } + } + ] + }, + "footer": { + "moleculeName": "footer", + "molecule": { + "moleculeName": "twoButtonView", + "primaryButton": { + "groupName": "default", + "moleculeName": "button", + "title": "Next", + "action": { + "analyticsData": { + "vzdl.page.linkName": "Legal Disclosure" + }, + "fieldKey": "next", + "actionType": "openPage", + "extraParameters": { + "from": "none" + }, + "presentationStyle": "push", + "pageType": "legalDisclosurePR" + } + } + } + }, + "formRules": [ + { + "groupName": "default", + "rules": [ + { + "regex": "^(?!.*0123|.*1234|.*2345|.*3456|.*4567|.*5678|.*6789|.*3210|.*4321|.*5432|.*6543|.*7654|.*8765|.*9876|.*0000|.*1111|.*2222|.*3333|.*4444|.*5555|.*6666|.*7777|.*8888|.*9999).*$", + "type": "regex", + "fields": [ + "securityPIN" + ], + "errorMessage": { + "securityPIN": "Your PIN can't have numbers in order or repeating." + } + }, + { + "type": "equals", + "fields": [ + "securityPIN", + "confirmSecurityPIN" + ], + "errorMessage": { + "confirmSecurityPIN": "Your account PIN entries don't match. Try again." + } + }, + { + "type": "regex", + "regex": "^[A-Za-z0-9 ]{3,10}$", + "fields": [ + "securityAnswer" + ], + "errorMessage": { + "securityAnswer": "Your security answer can only letters, numbers, spaces, and periods." + } + }, + { + "type": "regex", + "regex": "^.{3,10}$", + "fields": [ + "securityAnswer" + ], + "errorMessage": { + "securityAnswer": "Your answer must be between 3-10 characters." + } + }, + { + "type": "allRequired", + "ruleId": "requiredRule", + "fields": [ + "securityPIN", + "confirmSecurityPIN", + "securityAnswer" + ] + } + ] + } + ] + } + } diff --git a/JSONCreator_iOS/JSONCreator/JSON/Samples/DigitalFieldValidation.json b/JSONCreator_iOS/JSONCreator/JSON/Samples/DigitalFieldValidation.json new file mode 100644 index 0000000..4720b28 --- /dev/null +++ b/JSONCreator_iOS/JSONCreator/JSON/Samples/DigitalFieldValidation.json @@ -0,0 +1,133 @@ +{ + "ResponseInfo": { + "locale": "EN", + "server": "10-74-170-83.ebiz.verizon.com-mf_prepayss01", + "code": "00000", + "hideNotificationLogo": false, + "message": "0", + "buildNumber": "6698", + "type": "Success", + "requestId": "dbb1ee17-69fe-464e-8a82-9563b83422ab", + "topAlertTime": 0 + }, + "Page": { + "navigationBar": { + "moleculeName": "navigationBar", + "title": "Account security" + }, + "pageType": "tbd", + "cache": false, + "screenHeading": "Account security", + "template": "stack", + "stack": { + "moleculeName": "stack", + "molecules": [ + { + "moleculeName": "stackItem", + "horizontalAlignment": "leading", + "molecule": { + "moleculeName": "digitTextField", + "editable": true, + "title": "Account security PIN", + "digits": 4, + "fieldKey": "securityPIN" + } + }, + { + "moleculeName": "stackItem", + "horizontalAlignment": "leading", + "molecule": { + "moleculeName": "digitTextField", + "editable": true, + "title": "Confirm account security PIN", + "type": "text", + "digits": 4, + "fieldKey": "confirmSecurityPIN" + } + }, + { + "moleculeName": "stackItem", + "molecule": { + "moleculeName": "textField", + "fieldKey": "preferredFirstName", + "type": "text", + "text": "", + "errorMessage": "Please enter a valid first name.", + "title": "Preferred First Name", + "feedback": "This will replace greeting name if you have one.", + "required": false + } + } + ] + }, + "footer": { + "moleculeName": "footer", + "molecule": { + "moleculeName": "twoButtonView", + "primaryButton": { + "groupName": "default", + "moleculeName": "button", + "title": "Next", + "action": { + "analyticsData": { + "vzdl.page.linkName": "Legal Disclosure" + }, + "fieldKey": "next", + "actionType": "openPage", + "extraParameters": { + "from": "none" + }, + "presentationStyle": "push", + "pageType": "legalDisclosurePR" + } + } + } + }, + "formRules": [ + { + "groupName": "default", + "rules": [ + { + "regex": "^[0-6]{0,4}$", + "type": "regex", + "fields": [ + "securityPIN" + ], + "errorMessage": { + "securityPIN": "Your PIN can't have numbers in order or repeating." + } + }, + { + "type": "equals", + "fields": [ + "securityPIN", + "confirmSecurityPIN" + ], + "errorMessage": { + "confirmSecurityPIN": "Your account PIN entries don't match. Try again." + } + }, + { + "regex": "^[0-9a-zA-Z@\\.\\-\\’_?]{0,25}$", + "ruleId": "anyAlphaNumeric", + "errorMessage": { + "preferredFirstName": "Only use for First Name" + }, + "type": "regex", + "fields": [ + "preferredFirstName" + ] + }, + { + "type": "allRequired", + "ruleId": "requiredRule", + "fields": [ + "securityPIN", + "confirmSecurityPIN" + ] + } + ] + } + ] + } + } diff --git a/JSONCreator_iOS/JSONCreator/JSON/Samples/HMP.json b/JSONCreator_iOS/JSONCreator/JSON/Samples/HMP.json new file mode 100644 index 0000000..ad04bb7 --- /dev/null +++ b/JSONCreator_iOS/JSONCreator/JSON/Samples/HMP.json @@ -0,0 +1,196 @@ +{ + "ResponseInfo" : { + "locale" : "EN", + "server" : "loghost-mf_postpayss01", + "userMessage" : "0", + "code" : "00000", + "appSessionExtended" : true, + "message" : "0", + "mdn" : "7165723410", + "buildNumber" : "61", + "type" : "Success", + "requestId" : "12321a81-a48b-4023-94d9-7bd42af6d65a", + "topAlertTime" : 0 + }, + "Page" : { + "pageStatNames" : [ + "\/mf\/retail\/appt\/flow", + "\/mf\/retail\/appt\/reasons" + ], + "template" : "list", + "footer" : { + "moleculeName" : "footer", + "molecule" : { + "moleculeName" : "twoButtonView", + "primaryButton" : { + "groupName" : "default", + "moleculeName" : "button", + "title" : "Continue", + "action" : { + "analyticsData" : { + "vzdl.page.linkName" : "Continue" + }, + "extraParameters" : { + "destPageType" : "rtlApptsStoreLocator", + "FromStoreDetails" : "N" + }, + "actionType" : "openPage", + "title" : "Confirm", + "presentationStyle" : "push", + "pageType" : "launchApp" + } + } + } + }, + "molecules" : [ + { + "dropDown" : { + "moleculeName" : "dropDown", + "action" : { + "actionType" : "noop" + }, + "placeholder" : "Select a reason for visit", + "title" : "What can we help you with?", + "fieldKey" : "reason", + "type" : "text", + "options" : [ + "Account Support", + "Shop", + "Device Setup\/Troubleshooting", + "Other" + ] + }, + "line" : { + "moleculeName" : "line", + "type" : "none" + }, + "moleculeName" : "dropDownListItem", + "molecules" : [ + [ + { + "line" : { + "moleculeName" : "line", + "type" : "none" + }, + "topPadding" : 0, + "moleculeName" : "listItem", + "molecule" : { + "title" : "Relating to", + "fieldKey" : "subReason", + "moleculeName" : "dropDown", + "options" : [ + "Autopay question or issue", + "Billing issue", + "Misleading promise or information inquiry", + "Disconnect line", + "Payment arrangements", + "Promised promotion or offer", + "Other" + ], + "type" : "text", + "action" : { + "actionType" : "noop" + } + } + } + ], + [ + + ], + [ + + ], + [ + + ] + ] + } + ], + "cache" : false, + "header" : { + "moleculeName" : "header", + "molecule" : { + "moleculeName" : "headlineBody", + "headline" : { + "moleculeName" : "label", + "text" : "Make an appointment to see a representative." + }, + "body" : { + "moleculeName" : "label", + "text" : "We currently have limited staffing. For your safety and the safety of our employees, we are only scheduling appointments to provide one-on-one support for account maintenance or device troubleshooting.", + "fontStyle" : "BoldBodySmall" + } + } + }, + "tab" : [ + { + "appContext" : "mobileFirstSS", + "title" : "Schedule", + "actionType" : "openPage", + "moleculeName" : "label", + "presentationStyle" : "root", + "pageType" : "rtlReasonAndSubReasons" + }, + { + "appContext" : "mobileFirstSS", + "title" : "My Appointments", + "actionType" : "openPage", + "moleculeName" : "label", + "presentationStyle" : "root", + "pageType" : "rtlViewAllScheduledAppts" + } + ], + "pageType" : "rtlReasonAndSubReasons", + "suppressPostLaunchRequests" : false, + "formRules" : [ + { + "groupName": "default", + "rules": [ + { + "type": "allRequired", + "ruleId": "allRequired", + "fields": [ + "reason", + "subReason" + ] + } + ], + "effects": [ + { + "type": "dynamicRuleFormFieldEffect", + "fieldKey": "subReason", + "activatedRuleIds": ["allRequired"], + "rules": [ + { + "type": "regex", + "regex": "^Account Support$", + "fields": [ + "reason" + ] + } + ] + }, + { + "type": "enableFormFieldEffect", + "fieldKey": "subReason", + "rules": [ + { + "type": "regex", + "regex": "^Account Support$", + "fields": [ + "reason" + ] + } + ] + } + ] + } + ], + "navigationBar" : { + "moleculeName" : "navigationBar", + "title" : "Make Appointment" + }, + "tabBarHidden" : true, + "isAtomicTabs" : true + } +}