Skip to content

Instantly share code, notes, and snippets.

@lahmatiy
lahmatiy / basis_net_rpc_callback_patch.js
Created June 29, 2013 15:32
This patch bring back basis.net.rpc.callback which was droped in 0.9.4
basis.require('basis.data');
basis.require('basis.net.rpc');
basis.net.rpc.extend({
callback: {
setProcessing: function(){
this.setState(basis.data.STATE.PROCESSING);
},
setUndefined: function(){
this.setState(basis.data.STATE.UNDEFINED);
@lahmatiy
lahmatiy / basis_data_DataObject_restore.js
Created June 30, 2013 15:20
Patch to restore basis.data.DataObject alias for basis.data.Object (dropped in 0.9.4)
basis.require('basis.data');
basis.data.DataObject = basis.data.Object;
@lahmatiy
lahmatiy / basis.data.Value#updateCount.js
Last active December 19, 2015 04:09
Patch to restore basis.data.Value#updateCount (dropped in 0.9.4)
basis.require('basis.data');
(function(){
var emit_change_ = basis.data.Value.prototype.emit_change;
basis.data.Value.extend({
updateCount: 0,
emit_change: function(){
this.updateCount += 1;
emit_change_.apply(this, arguments);
}
@lahmatiy
lahmatiy / basis.data.Value#set_forceEvent.js
Last active December 19, 2015 04:18
Path to restore forceEvent argument and boolean result for basis.data.Value#set (dropped in 0.9.4)
basis.require('basis.data');
(function(){
var set_ = basis.data.Value.prototype.set;
basis.data.Value.prototype.set = function(value, forceEvent){
var valueBeforeSet = this.value;
set_.call(this, value);
@lahmatiy
lahmatiy / basis.data.property.AbstractProperty_restore.js
Created June 30, 2013 18:06
Path to restore basis.data.property.AbstractProperty (dropped in 0.9.4)
basis.require('basis.data');
basis.require('basis.data.property');
basis.namespace('basis.data.property').extend({
AbstractProperty: basis.data.Value
});
@lahmatiy
lahmatiy / basis.net.Transport_requestHeaders_patch.js
Last active December 19, 2015 06:29
Returns extra request headers for basis.net.Transport that sending prior to 0.9.5
basis.require('basis.net');
basis.net.AjaxTransport.prototype.requestHeaders['X-Requested-With'] = 'XMLHttpRequest';
basis.net.AjaxTransport.prototype.requestHeaders['X-Powered-By'] = 'basis.js';
@lahmatiy
lahmatiy / knowhow_indexFieldOnEntityNestedDatasets.js
Last active December 19, 2015 09:19
HOWTO: Do you know that you can easily create dataset index fields for nested datasets for Entity?
basis.require('basis.entity');
basis.require('basis.data.index');
// create type with single field, that used for EntitySet
var Item = basis.entity.createType('SomeType', {
value: Number
});
// main Entity type
var DemoType = basis.entity.createType('DemoType', {
var ids = String(
this.req.param('id') ||
this.req.param('ids')
).match(/(\d+)/g);
@lahmatiy
lahmatiy / patch.js
Created July 9, 2013 23:51
Path for field resolving in basis.data.value.BindValue#addLink and basis.data.value.BindValue#removeLink (resolving was dropped in 0.9.5)
basis.require('basis.data.value');
basis.require('basis.dom');
var DOM = basis.dom;
var BindValue = basis.data.value.BindValue;
var DOM_INSERT_HANDLER = function(value){
DOM.insert(DOM.clear(this), value);
};
@lahmatiy
lahmatiy / AbstractDataset#compute.js
Created July 27, 2013 14:51
AbstractDataset#compute
basis.require('basis.event');
basis.require('basis.data');
var datasetComputeFunctions = {};
basis.data.AbstractDataset.extend({
/**
* @param {string|Array.<string>=} events