Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Education Info Constructor
- function EducationInfo() {
- this.educationLevel = ko.observable();
- this.schoolName = ko.observable();
- this.completed = ko.observable();
- this.startDate = ko.observable();
- this.endDate = ko.observable();
- };
- function LangTesting() {
- this.langTest1 = ko.observable(false);
- this.langTest2 = ko.observable(false);
- this.langTest3 = ko.observable(false);
- };
- function WorkTesting() {
- this.jobOffer = ko.observable(false);
- this.collegeOfTrades = ko.observable();
- this.canadaApprenticeProcess = ko.observable();
- this.choice1 = ko.observable();
- this.choice2 = ko.observable();
- this.choice3 = ko.observable();
- this.choice4 = ko.observable();
- };
- //Work Info Constructor
- function WorkInfo() {
- this.workTitle = ko.observable();
- this.workName = ko.observable();
- this.typeOfWork = ko.observableArray([]);
- this.yearsExp = ko.observable();
- this.countryOfEmployment = ko.observable();
- this.jobOffer = ko.observable();
- };
- //User Constructor
- function User() {
- this.firstName = ko.observable();
- this.lastName = ko.observable();
- this.email = ko.observable();
- this.skype = ko.observable();
- this.birthday = ko.observable();
- this.preferredLanguage = ko.observable();
- this.tradeInterest = ko.observable();
- this.consentRegistration = ko.observable();
- this.approvedImmigrate = ko.observable();
- this.originCountry = ko.observable();
- this.immigrateOntario = ko.observable();
- this.livingOutsideCanada = ko.observable();
- this.tradesKnowledge = ko.observable();
- this.referal = ko.observable();
- this.username = ko.observable();
- this.password = ko.observable();
- this.uciNumber = ko.observable();
- this.gender = ko.observable();
- this.immigrationStatus = ko.observable();
- this.consentResearch = ko.observable();
- this.driversLicense = ko.observable();
- this.englishTesting = ko.observable(new LangTesting());
- this.frenchTesting = ko.observable(new LangTesting());
- this.workTesting = ko.observable(new WorkTesting());
- this.id = ko.observable();
- this.guid = ko.observable();
- this.workHistory = ko.observableArray([]);
- this.educationHistory = ko.observableArray([]);
- this.step = 1;
- this.displayStep1 = ko.observable(true);
- this.displayStep2 = ko.observable(false);
- this.displayStep3 = ko.observable(false);
- this.displayStep4 = ko.observable(false);
- this.displayStep5 = ko.observable(false);
- this.displayStep6 = ko.observable(false);
- };
- //Main Knockout View Model
- var AppViewModel = function () {
- var self = this;
- //Push original objects to history arrays
- self.user = ko.observable(new User());
- self.save = function () {
- console.log(ko.toJSON(self));
- };
- self.addEducationHistory = function () {
- self.user().educationHistory.push(new EducationInfo());
- };
- self.addWorkHistory = function () {
- self.user().workHistory.push(new WorkInfo());
- };
- self.checkDate = function (date) {
- var reg =
- /^(0[1-9]|1[0-2])\/(0[1-9]|1\d|2\d|3[01])\/(19|20)\d{2}$/g;
- if (reg.test(date)) {
- return true;
- } else {
- return false;
- }
- }
- self.checkStep1 = function () {
- if (self.user().consentRegistration() !== true || self.user().tradeInterest() == 'Select a trade') {
- alert('Error');
- return false;
- } else {
- alert('Success!');
- self.user().displayStep1(false);
- self.user().displayStep2(true);
- }
- }
- self.checkStep2 = function () {
- if (self.user().approvedImmigrate() !== 'true' || self.user().immigrateOntario() !== 'true' || self.user().livingOutsideCanada() !== 'true' || String(self.user().originCountry()) === 'Other') {
- alert('Error');
- return false;
- } else {
- alert('Success!');
- self.user().displayStep2(false);
- self.user().displayStep3(true);
- }
- }
- self.checkStep3 = function () {
- if (self.user().tradesKnowledge() == undefined || self.user().referal() == 'Select an answer') {
- alert("Error")
- return false;
- } else {
- alert('Success!');
- self.user().displayStep3(false);
- self.user().displayStep4(true);
- }
- }
- self.checkStep4 = function () {
- if (self.user().username() == undefined || self.user().password() == undefined || self.user().firstName() == undefined || self.user().lastName() == undefined || self.user().uciNumber() == undefined || self.user().gender() == undefined || self.user().email() == undefined || self.user().preferredLanguage() == undefined || self.user().immigrationStatus() == undefined || self.user().consentResearch() == undefined) {
- alert("Error")
- return false;
- } else if (self.checkDate(self.user().birthday()) == false) {
- alert("Error")
- return false;
- } else {
- alert('Success!');
- self.user().displayStep4(false);
- self.user().displayStep5(true);
- }
- }
- self.checkStep5 = function () {
- //RegEx for Start/Finished dates in the Education section (must fit MM/DD/YYYY format)
- var allEducationDates = document.querySelectorAll('.educationDates1');
- $.each(allEducationDates, function (index, value) {
- var currentVal = $(this).val();
- if (self.checkDate(currentVal)) {
- alert('Success!');
- self.user().displayStep5(false);
- self.user().displayStep6(true);
- } else {
- alert('Error');
- return false;
- }
- });
- }
- self.checkStep6 = function () {
- }
- self.addEducationHistory();
- self.addWorkHistory();
- };
- ko.applyBindings(new AppViewModel());
- //Check all education level inputs
- //If it's value is not 'Select an education level' make start/end dates required
Add Comment
Please, Sign In to add comment