controller move Class from base to controller
bzr revid: al@openerp.com-20110715141600-4tr536v7vfrv9tkk
This commit is contained in:
parent
b0e6f97abd
commit
2decff7b21
|
@ -23,6 +23,7 @@
|
||||||
<script type="text/javascript" src="/base/static/lib/datejs/date-en-US.js"></script>
|
<script type="text/javascript" src="/base/static/lib/datejs/date-en-US.js"></script>
|
||||||
<script type="text/javascript" src="/base/static/lib/json/json2.js"></script>
|
<script type="text/javascript" src="/base/static/lib/json/json2.js"></script>
|
||||||
<script type="text/javascript" src="/base/static/src/js/base.js"></script>
|
<script type="text/javascript" src="/base/static/src/js/base.js"></script>
|
||||||
|
<script type="text/javascript" src="/base/static/src/js/controller.js"></script>
|
||||||
<script type="text/javascript" src="/base/static/src/js/dates.js"></script>
|
<script type="text/javascript" src="/base/static/src/js/dates.js"></script>
|
||||||
<script type="text/javascript" src="/base/static/src/js/chrome.js"></script>
|
<script type="text/javascript" src="/base/static/src/js/chrome.js"></script>
|
||||||
<script type="text/javascript" src="/base/static/src/js/data.js"></script>
|
<script type="text/javascript" src="/base/static/src/js/data.js"></script>
|
||||||
|
|
|
@ -1,69 +1,3 @@
|
||||||
/*---------------------------------------------------------
|
|
||||||
* John Resig Class, to be moved to openerp.base.Class
|
|
||||||
*---------------------------------------------------------*/
|
|
||||||
|
|
||||||
(function() {
|
|
||||||
var initializing = false, fnTest = /xyz/.test(function(){xyz;}) ? /\b_super\b/ : /.*/;
|
|
||||||
// The base Class implementation (does nothing)
|
|
||||||
this.Class = function(){};
|
|
||||||
|
|
||||||
// Create a new Class that inherits from this class
|
|
||||||
Class.extend = function(prop) {
|
|
||||||
var _super = this.prototype;
|
|
||||||
|
|
||||||
// Instantiate a base class (but only create the instance,
|
|
||||||
// don't run the init constructor)
|
|
||||||
initializing = true;
|
|
||||||
var prototype = new this();
|
|
||||||
initializing = false;
|
|
||||||
|
|
||||||
// Copy the properties over onto the new prototype
|
|
||||||
for (var name in prop) {
|
|
||||||
// Check if we're overwriting an existing function
|
|
||||||
prototype[name] = typeof prop[name] == "function" &&
|
|
||||||
typeof _super[name] == "function" && fnTest.test(prop[name]) ?
|
|
||||||
(function(name, fn){
|
|
||||||
return function() {
|
|
||||||
var tmp = this._super;
|
|
||||||
|
|
||||||
// Add a new ._super() method that is the same method
|
|
||||||
// but on the super-class
|
|
||||||
this._super = _super[name];
|
|
||||||
|
|
||||||
// The method only need to be bound temporarily, so we
|
|
||||||
// remove it when we're done executing
|
|
||||||
var ret = fn.apply(this, arguments);
|
|
||||||
this._super = tmp;
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
};
|
|
||||||
})(name, prop[name]) :
|
|
||||||
prop[name];
|
|
||||||
}
|
|
||||||
|
|
||||||
// The dummy class constructor
|
|
||||||
function Class() {
|
|
||||||
// All construction is actually done in the init method
|
|
||||||
if ( !initializing && this.init ) {
|
|
||||||
var ret = this.init.apply(this, arguments);
|
|
||||||
if (ret) { return ret; }
|
|
||||||
}
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Populate our constructed prototype object
|
|
||||||
Class.prototype = prototype;
|
|
||||||
|
|
||||||
// Enforce the constructor to be what we expect
|
|
||||||
Class.constructor = Class;
|
|
||||||
|
|
||||||
// And make this class extendable
|
|
||||||
Class.extend = arguments.callee;
|
|
||||||
|
|
||||||
return Class;
|
|
||||||
};
|
|
||||||
})();
|
|
||||||
|
|
||||||
//---------------------------------------------------------
|
//---------------------------------------------------------
|
||||||
// OpenERP initialisation and black magic about the pool
|
// OpenERP initialisation and black magic about the pool
|
||||||
//---------------------------------------------------------
|
//---------------------------------------------------------
|
||||||
|
@ -125,6 +59,7 @@
|
||||||
|
|
||||||
/** @namespace */
|
/** @namespace */
|
||||||
openerp.base = function(instance) {
|
openerp.base = function(instance) {
|
||||||
|
openerp.base.controller(instance);
|
||||||
openerp.base.dates(instance);
|
openerp.base.dates(instance);
|
||||||
openerp.base.chrome(instance);
|
openerp.base.chrome(instance);
|
||||||
openerp.base.data(instance);
|
openerp.base.data(instance);
|
||||||
|
|
|
@ -58,7 +58,7 @@ openerp.base.callback = function(obj, method) {
|
||||||
*
|
*
|
||||||
* @class
|
* @class
|
||||||
*/
|
*/
|
||||||
openerp.base.NotFound = Class.extend( /** @lends openerp.base.NotFound# */ {
|
openerp.base.NotFound = openerp.base.Class.extend( /** @lends openerp.base.NotFound# */ {
|
||||||
});
|
});
|
||||||
openerp.base.KeyNotFound = openerp.base.NotFound.extend( /** @lends openerp.base.KeyNotFound# */ {
|
openerp.base.KeyNotFound = openerp.base.NotFound.extend( /** @lends openerp.base.KeyNotFound# */ {
|
||||||
/**
|
/**
|
||||||
|
@ -91,7 +91,7 @@ openerp.base.ObjectNotFound = openerp.base.NotFound.extend( /** @lends openerp.b
|
||||||
return "Could not find any object of path " + this.path;
|
return "Could not find any object of path " + this.path;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
openerp.base.Registry = Class.extend( /** @lends openerp.base.Registry# */ {
|
openerp.base.Registry = openerp.base.Class.extend( /** @lends openerp.base.Registry# */ {
|
||||||
/**
|
/**
|
||||||
* Stores a mapping of arbitrary key (strings) to object paths (as strings
|
* Stores a mapping of arbitrary key (strings) to object paths (as strings
|
||||||
* as well).
|
* as well).
|
||||||
|
@ -185,7 +185,7 @@ openerp.base.Registry = Class.extend( /** @lends openerp.base.Registry# */ {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
openerp.base.BasicController = Class.extend( /** @lends openerp.base.BasicController# */{
|
openerp.base.BasicController = openerp.base.Class.extend( /** @lends openerp.base.BasicController# */{
|
||||||
/**
|
/**
|
||||||
* rpc operations, event binding and callback calling should be done in
|
* rpc operations, event binding and callback calling should be done in
|
||||||
* start() instead of init so that event can be hooked in between.
|
* start() instead of init so that event can be hooked in between.
|
||||||
|
|
|
@ -0,0 +1,78 @@
|
||||||
|
/*---------------------------------------------------------
|
||||||
|
* OpenERP controller framework
|
||||||
|
*--------------------------------------------------------*/
|
||||||
|
|
||||||
|
openerp.base.controller = function(instance) {
|
||||||
|
/**
|
||||||
|
* John Resig Class with factory improvement
|
||||||
|
*/
|
||||||
|
(function() {
|
||||||
|
var initializing = false, fnTest = /xyz/.test(function(){xyz;}) ? /\b_super\b/ : /.*/;
|
||||||
|
// The base Class implementation (does nothing)
|
||||||
|
this.Class = function(){};
|
||||||
|
|
||||||
|
// Create a new Class that inherits from this class
|
||||||
|
Class.extend = function(prop) {
|
||||||
|
var _super = this.prototype;
|
||||||
|
|
||||||
|
// Instantiate a base class (but only create the instance,
|
||||||
|
// don't run the init constructor)
|
||||||
|
initializing = true;
|
||||||
|
var prototype = new this();
|
||||||
|
initializing = false;
|
||||||
|
|
||||||
|
// Copy the properties over onto the new prototype
|
||||||
|
for (var name in prop) {
|
||||||
|
// Check if we're overwriting an existing function
|
||||||
|
prototype[name] = typeof prop[name] == "function" &&
|
||||||
|
typeof _super[name] == "function" && fnTest.test(prop[name]) ?
|
||||||
|
(function(name, fn){
|
||||||
|
return function() {
|
||||||
|
var tmp = this._super;
|
||||||
|
|
||||||
|
// Add a new ._super() method that is the same method
|
||||||
|
// but on the super-class
|
||||||
|
this._super = _super[name];
|
||||||
|
|
||||||
|
// The method only need to be bound temporarily, so we
|
||||||
|
// remove it when we're done executing
|
||||||
|
var ret = fn.apply(this, arguments);
|
||||||
|
this._super = tmp;
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
};
|
||||||
|
})(name, prop[name]) :
|
||||||
|
prop[name];
|
||||||
|
}
|
||||||
|
|
||||||
|
// The dummy class constructor
|
||||||
|
function Class() {
|
||||||
|
// All construction is actually done in the init method
|
||||||
|
if ( !initializing && this.init ) {
|
||||||
|
var ret = this.init.apply(this, arguments);
|
||||||
|
if (ret) { return ret; }
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Populate our constructed prototype object
|
||||||
|
Class.prototype = prototype;
|
||||||
|
|
||||||
|
// Enforce the constructor to be what we expect
|
||||||
|
Class.constructor = Class;
|
||||||
|
|
||||||
|
// And make this class extendable
|
||||||
|
Class.extend = arguments.callee;
|
||||||
|
|
||||||
|
return Class;
|
||||||
|
};
|
||||||
|
})(instance.base);
|
||||||
|
|
||||||
|
// todo change john resig class to keep window clean
|
||||||
|
instance.base.Class = window.Class
|
||||||
|
|
||||||
|
// Controller will move here
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
// vim:et fdc=0 fdl=0 foldnestmax=3 fdm=syntax:
|
|
@ -606,7 +606,7 @@ openerp.base.ListView = openerp.base.View.extend( /** @lends openerp.base.ListVi
|
||||||
}
|
}
|
||||||
// TODO: implement reorder (drag and drop rows)
|
// TODO: implement reorder (drag and drop rows)
|
||||||
});
|
});
|
||||||
openerp.base.ListView.List = Class.extend( /** @lends openerp.base.ListView.List# */{
|
openerp.base.ListView.List = openerp.base.Class.extend( /** @lends openerp.base.ListView.List# */{
|
||||||
/**
|
/**
|
||||||
* List display for the ListView, handles basic DOM events and transforms
|
* List display for the ListView, handles basic DOM events and transforms
|
||||||
* them in the relevant higher-level events, to which the list view (or
|
* them in the relevant higher-level events, to which the list view (or
|
||||||
|
@ -842,7 +842,7 @@ openerp.base.ListView.List = Class.extend( /** @lends openerp.base.ListView.List
|
||||||
}
|
}
|
||||||
// drag and drop
|
// drag and drop
|
||||||
});
|
});
|
||||||
openerp.base.ListView.Groups = Class.extend( /** @lends openerp.base.ListView.Groups# */{
|
openerp.base.ListView.Groups = openerp.base.Class.extend( /** @lends openerp.base.ListView.Groups# */{
|
||||||
passtrough_events: 'action deleted row_link',
|
passtrough_events: 'action deleted row_link',
|
||||||
/**
|
/**
|
||||||
* Grouped display for the ListView. Handles basic DOM events and interacts
|
* Grouped display for the ListView. Handles basic DOM events and interacts
|
||||||
|
|
|
@ -301,7 +301,7 @@ openerp.base.search.fields = new openerp.base.Registry({
|
||||||
'many2one': 'openerp.base.search.ManyToOneField',
|
'many2one': 'openerp.base.search.ManyToOneField',
|
||||||
'many2many': 'openerp.base.search.ManyToManyField'
|
'many2many': 'openerp.base.search.ManyToManyField'
|
||||||
});
|
});
|
||||||
openerp.base.search.Invalid = Class.extend(
|
openerp.base.search.Invalid = openerp.base.Class.extend(
|
||||||
/** @lends openerp.base.search.Invalid# */{
|
/** @lends openerp.base.search.Invalid# */{
|
||||||
/**
|
/**
|
||||||
* Exception thrown by search widgets when they hold invalid values,
|
* Exception thrown by search widgets when they hold invalid values,
|
||||||
|
|
Loading…
Reference in New Issue