Commit 3eba53c3 authored by webchick's avatar webchick

Issue #1849526 follow-up by Wim Leers: Increase VIE/Create.js to latest upstream versions.

parent 80700425
......@@ -37,21 +37,21 @@
}
}
widget.options.collection.bind('add', function (model) {
widget.options.collection.on('add', function (model) {
model.primaryCollection = widget.options.collection;
widget.options.vie.entities.add(model);
model.collection = widget.options.collection;
});
// Re-check collection constraints
widget.options.collection.bind('add remove reset', widget.checkCollectionConstraints, widget);
widget.options.collection.on('add remove reset', widget.checkCollectionConstraints, widget);
widget._bindCollectionView(widget.options.view);
},
_bindCollectionView: function (view) {
var widget = this;
view.bind('add', function (itemView) {
view.on('add', function (itemView) {
itemView.$el.effect('slide', function () {
widget._makeEditable(itemView);
});
......@@ -207,12 +207,12 @@
jQuery.widget('Midgard.midgardCollectionAddBetween', jQuery.Midgard.midgardCollectionAdd, {
_bindCollectionView: function (view) {
var widget = this;
view.bind('add', function (itemView) {
view.on('add', function (itemView) {
//itemView.el.effect('slide');
widget._makeEditable(itemView);
widget._refreshButtons();
});
view.bind('remove', function () {
view.on('remove', function () {
widget._refreshButtons();
});
},
......@@ -491,6 +491,10 @@
this._trigger('enable', null, this._params());
if (!this.vie.view || !this.vie.view.Collection) {
return;
}
_.each(this.domService.views, function (view) {
if (view instanceof this.vie.view.Collection && this.options.model === view.owner) {
var predicate = view.collection.predicate;
......@@ -797,20 +801,20 @@
// override this function to initialize the property editor widget functions
_initialize: function () {
var self = this;
this.element.bind('focus', function () {
this.element.on('focus', function () {
if (self.options.disabled) {
return;
}
self.options.activated();
});
this.element.bind('blur', function () {
this.element.on('blur', function () {
if (self.options.disabled) {
return;
}
self.options.deactivated();
});
var before = this.element.html();
this.element.bind('keyup paste', function (event) {
this.element.on('keyup paste', function (event) {
if (self.options.disabled) {
return;
}
......@@ -985,18 +989,18 @@
_initialize: function () {
jQuery(this.element).hallo(this.getHalloOptions());
var self = this;
jQuery(this.element).bind('halloactivated', function (event, data) {
jQuery(this.element).on('halloactivated', function (event, data) {
self.options.activated();
});
jQuery(this.element).bind('hallodeactivated', function (event, data) {
jQuery(this.element).on('hallodeactivated', function (event, data) {
self.options.deactivated();
});
jQuery(this.element).bind('hallomodified', function (event, data) {
jQuery(this.element).on('hallomodified', function (event, data) {
self.options.changed(data.content);
data.editable.setUnmodified();
});
jQuery(document).bind('midgardtoolbarstatechange', function(event, data) {
jQuery(document).on('midgardtoolbarstatechange', function(event, data) {
// Switch between Hallo configurations when toolbar state changes
if (data.display === self.options.toolbarState) {
return;
......@@ -1077,12 +1081,12 @@
_initialize: function () {
var self = this;
jQuery(this.element).bind('focus', function (event) {
self.options.activated();
jQuery(this.element).on('focus', function (event) {
self.options.activated();
});
/*
jQuery(this.element).bind('blur', function (event) {
self.options.deactivated();
jQuery(this.element).on('blur', function (event) {
self.options.deactivated();
});
*/
},
......@@ -1151,7 +1155,7 @@
this.vie = this.options.vie;
this.vie.entities.bind('add', function (model) {
this.vie.entities.on('add', function (model) {
// Add the back-end URL used by Backbone.sync
model.url = widget.options.url;
model.toJSON = model.toJSONLD;
......@@ -1185,14 +1189,14 @@
var timeout = window.setInterval(doAutoSave, widget.options.autoSaveInterval);
this.element.bind('startPreventSave', function () {
this.element.on('startPreventSave', function () {
if (timeout) {
window.clearInterval(timeout);
timeout = null;
}
widget.disableAutoSave();
});
this.element.bind('stopPreventSave', function () {
this.element.on('stopPreventSave', function () {
if (!timeout) {
timeout = window.setInterval(doAutoSave, widget.options.autoSaveInterval);
}
......@@ -1214,18 +1218,18 @@
this.restorables = [];
var restorer;
widget.element.bind(widget.options.editableNs + 'changed', function (event, options) {
widget.element.on(widget.options.editableNs + 'changed', function (event, options) {
if (_.indexOf(widget.changedModels, options.instance) === -1) {
widget.changedModels.push(options.instance);
}
widget._saveLocal(options.instance);
});
widget.element.bind(widget.options.editableNs + 'disable', function (event, options) {
widget._restoreLocal(options.instance);
widget.element.on(widget.options.editableNs + 'disable', function (event, options) {
widget.revertChanges(options.instance);
});
widget.element.bind(widget.options.editableNs + 'enable', function (event, options) {
widget.element.on(widget.options.editableNs + 'enable', function (event, options) {
if (!options.instance._originalAttributes) {
options.instance._originalAttributes = _.clone(options.instance.attributes);
}
......@@ -1242,7 +1246,7 @@
});*/
});
widget.element.bind('midgardcreatestatechange', function (event, options) {
widget.element.on('midgardcreatestatechange', function (event, options) {
if (options.state === 'browse' || widget.restorables.length === 0) {
widget.restorables = [];
if (restorer) {
......@@ -1253,7 +1257,7 @@
restorer = widget.checkRestore();
});
widget.element.bind('midgardstorageloaded', function (event, options) {
widget.element.on('midgardstorageloaded', function (event, options) {
if (_.indexOf(widget.changedModels, options.instance) === -1) {
widget.changedModels.push(options.instance);
}
......@@ -1279,7 +1283,7 @@
}
var doRestore = function (event, notification) {
widget.restoreLocal();
widget.restoreLocalAll();
restorer.close();
};
......@@ -1333,7 +1337,7 @@
return restorer;
},
restoreLocal: function () {
restoreLocalAll: function () {
_.each(this.restorables, function (instance) {
this.readLocal(instance);
}, this);
......@@ -1574,7 +1578,7 @@
collection.add(JSON.parse(local));
},
_restoreLocal: function (model) {
revertChanges: function (model) {
var widget = this;
// Remove unsaved collection members
......
......@@ -1169,7 +1169,7 @@ VIE.Util = {
for (var i = 0; i < ancestors.length; i++) {
var supertype = (vie.types.get(ancestors[i]))? vie.types.get(ancestors[i]) :
typeHelper.call(vie, SchemaOrg.types[ancestors[i]].supertypes, ancestors[i], typeProps.call(vie, ancestors[i]));
typeHelper.call(vie, SchemaOrg.types[ancestors[i]].supertypes, ancestors[i], typeProps.call(vie, ancestors[i]), metadataHelper(SchemaOrg.types[ancestors[i]]));
type.inherit(supertype);
}
if (id === "Thing" && !type.isof("owl:Thing")) {
......@@ -1777,7 +1777,12 @@ VIE.prototype.Entity = function(attrs, opts) {
}
}
}, this);
return Backbone.Model.prototype.set.call(this, attrs, options);
var ret = Backbone.Model.prototype.set.call(this, attrs, options);
if (options && options.ignoreChanges) {
this.changed = {};
this._previousAttributes = _.clone(this.attributes);
}
return ret;
},
// **`.unset(attr, opts)` ** removes an attribute from the entity.
......@@ -2815,10 +2820,10 @@ VIE.prototype.Types = function () {
// helps first of all to list all attributes of an entity type, but furthermore fully supports
// inheritance of attributes from the type-class to inherit from.
if (VIE.prototype.Attribute) {
throw new Error("ERROR: VIE.Attribute is already defined. Please check your VIE installation!");
throw new Error("ERROR: VIE.Attribute is already defined. Please check your VIE installation!");
}
if (VIE.prototype.Attributes) {
throw new Error("ERROR: VIE.Attributes is already defined. Please check your VIE installation!");
throw new Error("ERROR: VIE.Attributes is already defined. Please check your VIE installation!");
}
// ### VIE.Attribute(id, range, domain, minCount, maxCount, metadata)
......@@ -3679,4 +3684,36 @@ VIE.prototype.Namespaces.prototype.uri = function (curie) {
// namespaces.isUri(uri); // --> true
// namespaces.isUri(curie); // --> false
VIE.prototype.Namespaces.prototype.isUri = VIE.Util.isUri;
/*global VIE:false Backbone:false _:false */
if (!VIE.prototype.view) {
VIE.prototype.view = {};
}
VIE.prototype.view.Entity = Backbone.View.extend({
initialize: function(options) {
this.service = options.service ? options.service : 'rdfa';
this.vie = options.vie;
// Ensure view gets updated when properties of the Entity change.
_.bindAll(this, 'render', 'renderAbout');
this.model.on('change', this.render);
this.model.on('change:@subject', this.renderAbout);
},
// Rendering a view means writing the properties of the Entity back to
// the element containing our RDFa annotations.
render: function() {
this.vie.save({
element: this.el,
entity: this.model
}).
to(this.service).
execute();
return this;
},
renderAbout: function () {
this.vie.service(this.service).setElementSubject(this.model.getSubjectUri(), this.el);
}
});
})();
\ No newline at end of file
......@@ -1854,7 +1854,7 @@ function system_library_info() {
$libraries['vie.core'] = array(
'title' => 'VIE.js core (excluding services, views and xdr)',
'website' => 'http://viejs.org/',
'version' => '2.0.0-dev',
'version' => '2.1.0alpha2',
'js' => array(
'core/misc/vie/vie-core.js' => array('group' => JS_LIBRARY),
),
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment