Class Test
by nevkatz
JavaScript
class template_slide {
constructor({title,nid}) {
this.title = title;
this.nid = nid;
}
check(o,prop, fieldname='value') {
if (Array.isArray(o[prop] && o[prop].length == 0)) {
return '';
}
return o[prop].und ? o[prop].und[0][fieldname] : o[prop];
}
}
let extract = (x) => {
return Array.isArray(x) ? x[0] : x;
}
class template_sc_slide extends template_slide {
constructor(arg) {
let o = extract(arg);
super(o);
let fieldnames = ['check_participation_form',
'text_slide_subtitle'];
for (let fieldname of fieldnames) {
this[fieldname] = this.check(o, 'field_'+fieldname);
}
this.readable_name = this.check(o, 'field_readable_slide_name');
}
}
let o = {
title: 'Nevin',
nid: '88',
field_readable_slide_name:{
und:[
{value:'Readable name!'}
]
},
field_text_slide_subtitle:'Subtitle',
field_check_participation_form:{
und:[
{value:'Yes ma\'am!'}
]
}
}
let arr = [o];
let instance = new template_sc_slide(arr);
Object.keys(instance).forEach(function(prop){
let val = instance[prop];
console.log(prop + ': ' + val);
});