-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathaddUser.js
More file actions
110 lines (104 loc) · 3.8 KB
/
addUser.js
File metadata and controls
110 lines (104 loc) · 3.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
class AddUser {
constructor() {
this.basicUserInfo = ['First Name', 'Last Name', 'Mobile phone', 'Email'];
this.additionalUserInfo = [
'add home phone', 'company', 'add address', 'add birthday', 'add social profile', 'add field'
];
};
fieldsBasicAddUserInfo() {
let open = '<div class="main-info-holder">';
let addPhoto = `
<div class="edit-foto">
<button class="add-foto-btn"><span class="glyphicon glyphicon-plus-sign" aria-hidden="true"></span>
<span>add foto</span></button>
</div>
`;
let editBasicField = this.basicUserInfo.reduce((start, elem) => {
let addClass = elem.replace(/\s/g, '_');
start +=`
<div class="edit-field add-btn">
<span class="glyphicon glyphicon-plus-sign" aria-hidden="true"></span>
<input type="text" class="glyphicon-plus-sign ${addClass}" placeholder="${elem}"/>
</div>
`;
return start;
},'');
let resEditBasicField = addPhoto + open + `${editBasicField}</div>`;
return resEditBasicField;
};
fieldAdditionalAddUserInfo() {
let open = `
<div class="scroll-holder">
<div class="edit-info">
`;
let editAdditionalField = this.additionalUserInfo.reduce((start, elem) => {
/* let addClass = elem.replace(/\s/g, '_');*/
start += `
<div class="edit-field add-btn">
<span class="glyphicon glyphicon-plus-sign" aria-hidden="true"></span>
<input type="text" class="glyphicon-plus-sign" placeholder="${elem}"/>
</div>
`;
return start;
}, '');
let buttonDelContacts = `
<div class="edit-field">
<button href="#" class="delete-contact">delete contact</button>
</div>
`;
let resEditAdditionalField = open + `${editAdditionalField}${buttonDelContacts}</div>`;
return resEditAdditionalField;
};
addEvents() {
let delEnteredData = document.querySelector('button.delete-contact');
delEnteredData.addEventListener('click', function() {
let input = document.querySelectorAll('input[placeholder]');
[...input].forEach(elem => {
elem.value = '';
})
});
let addUser = document.querySelector('button.done-btn');
addUser.addEventListener('click', function() {
let input = document.querySelectorAll('input[placeholder]');
let objUser = [...input].reduce((done, elem) => {
if(elem.className === 'glyphicon-plus-sign Email') {
done.email = elem.value;
} else if(elem.className === 'glyphicon-plus-sign First_Name') {
done.fullName = `${elem.value} `;
} else if(elem.className === 'glyphicon-plus-sign Last_Name') {
done.fullName += elem.value;
} else if(elem.className === 'glyphicon-plus-sign Mobile_phone') {
done.phone = elem.value;
} else {
let key = elem.placeholder.replace(/\s/g, '_');
done[key] = elem.value;
};
return done;
}, {});
fetch(API_URL, {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(objUser)
});
});
}
renderAddUser() {
let captionAddUser = document.querySelector('.container.top-radius');
captionAddUser.innerHTML = `
<nav class="user-top-line">
<a href="user.html">Cancel</a>
<button class = "done-btn">Done</button>
</nav>
`;
let mainContainer = document.querySelector('main .container');
mainContainer.innerHTML = `
<div class="edit-main-info">
${this.fieldsBasicAddUserInfo()}
</div>
${this.fieldAdditionalAddUserInfo()}
`;
this.addEvents();
};
};