import Felgo 3.0
import QtQuick 2.5
App {
id: app
Page {
id: editAdmins
signal adminOnOff (real id)
signal amendAdminEmailAdd (string email)
signal amendAdminEmailRemove (var array)
property var newArr: [{"firstname":"Claire","surname":"Williams","subGroup":"Reception","admin":1,"email":"claire@claire.com","roles":{"Assistant":1,"Reception":1,"Stylist":1,"Technical":1}},{"firstname":"Edward","surname":"Lawrence","subGroup":"Reception","admin":1,"email":"edward.lawrence1991@gmail.com","roles":{"Assistant":1,"Reception":1,"Stylist":1,"Technical":1}},{"firstname":"Katie","surname":"Prescott","subGroup":"Stylist","admin":0,"email":"katie@katie.com"},{"firstname":"Lisa","surname":"Duong","subGroup":"Stylist","admin":1,"email":"lisaduong@hotmail.co.uk","roles":{"Assistant":1,"Reception":0,"Stylist":0,"Technical":0}}]
property var userRoles: ({})
JsonListModel {
id: jsonModel
source: editAdmins.newArr
keyField: "firstname " + " surname"
fields: ["firstname", "surname", "subGroup", "admin", "email", "roles"]
}
SortFilterProxyModel {
id: sortedModel
Component.onCompleted: sourceModel = jsonModel
proxyRoles: ExpressionRole {
name: "role"
expression: {
for(var x in model.roles){
if(model.roles[x] === 1){
x
}
}
}
}
sorters: [
ExpressionSorter {
id: expressionSorter
expression: {
modelLeft.role < modelRight.role
}
},
StringSorter {
id: typeSorter
roleName: "firstname"
ascendingOrder: true
}
]
}
AppListView {
id:view
z:1
model: sortedModel
anchors.fill: parent
section.property: "role"
section.delegate: SimpleSection { }
delegate: SimpleRow {
id: container
visible: {
if(model.roles === undefined) {
visible = false
}
}
text: model.firstname
detailText: model.surname
}
}
}
} // App