sky.js/sky.types.reference.js

63 lines
1.5 KiB
JavaScript

(function(SKY){
var referenceSelectorDefaultOptions = {
id: null,
referencedType: null,
}
var referenceDefaultOptions = {
url: null,
referencedType: null,
lookup: function(pattern){ return []; },
render: function(o){ return o; },
parse: function(src){ return src; },
id: function(o){ return o; },
}
class SKYReferenceSelector extends SKY.prototypes.SKYSelector {
constructor(options){
super();
this.options = Object.assign({}, referenceSelectorDefaultOptions);
Object.assign(this.options,options);
var html = $('<input type="text">');
html
.attr(id,this.options.id);
this.html( html );
}
}
SKY.prototypes.SKYReferenceSelector = SKYReferenceSelector;
class SKYReferencingType extends SKY.prototypes.SKYType {
constructor(name,options){
super(name);
this.options = Object.assign({}, referenceDefaultOptions);
Object.assign(this.options, options);
}
editor(){
return new SKY.prototypes.SKYEditor();
}
selector(){
return null;
}
render(value){ return this.options.render(value); }
parse(src){ return this.options.parse(src); }
lookup(pattern){ return this.options.lookup(pattern); }
}
SKY.prototypes.SKYReferencingType = SKYReferencingType;
}(SKY));