netzke-core 0.2.10 → 0.2.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +3 -0
- data/README.mdown +2 -0
- data/javascripts/core.js +34 -16
- data/lib/netzke/base_extras/js_builder.rb +5 -4
- data/netzke-core.gemspec +2 -2
- metadata +2 -2
data/CHANGELOG
CHANGED
data/README.mdown
CHANGED
@@ -8,6 +8,8 @@ See the introduction to the Netzke framework at http://github.com/skozlov/netzke
|
|
8
8
|
|
9
9
|
The tutorials: http://blog.writelesscode.com
|
10
10
|
|
11
|
+
Live-demo: http://netzke-demo.writelesscode.com
|
12
|
+
|
11
13
|
Also see the netzke-basepack project: http://github.com/skozlov/netzke-basepack/tree/master
|
12
14
|
|
13
15
|
Copyright (c) 2008-2009 Sergei Kozlov, released under LGPL 3.0
|
data/javascripts/core.js
CHANGED
@@ -3,29 +3,26 @@ This file gets loaded along with the rest of Ext library at the initial load
|
|
3
3
|
*/
|
4
4
|
|
5
5
|
Ext.BLANK_IMAGE_URL = "/extjs/resources/images/default/s.gif";
|
6
|
-
Ext.namespace('Ext.netzke');
|
6
|
+
Ext.namespace('Ext.netzke'); // namespace for extensions that depend on Ext
|
7
|
+
Ext.namespace('Netzke'); // namespace for extensions that do not depend on Ext
|
7
8
|
Ext.netzke.cache = {};
|
8
9
|
|
9
10
|
Ext.QuickTips.init(); // seems obligatory in Ext v2.2.1, otherwise Ext.Component#destroy() stops working properly
|
10
11
|
|
11
12
|
// to comply with Rails' forgery protection
|
12
13
|
Ext.Ajax.extraParams = {
|
13
|
-
|
14
|
+
authenticity_token : Ext.authenticityToken
|
14
15
|
};
|
15
16
|
|
16
17
|
// helper method to do multiple Ext.apply's
|
17
|
-
Ext.chainApply = function(objectArray){
|
18
|
+
Ext.netzke.chainApply = function(objectArray){
|
18
19
|
var res = {};
|
19
20
|
Ext.each(objectArray, function(obj){Ext.apply(res, obj)});
|
20
21
|
return res;
|
21
22
|
};
|
22
23
|
|
23
24
|
// Type detection functions
|
24
|
-
function
|
25
|
-
return (o != null && typeof o == "object" && o.constructor.toString() == Array.toString());
|
26
|
-
}
|
27
|
-
|
28
|
-
function isObject(o) {
|
25
|
+
Netzke.isObject = function(o) {
|
29
26
|
return (o != null && typeof o == "object" && o.constructor.toString() == Object.toString());
|
30
27
|
}
|
31
28
|
|
@@ -143,10 +140,10 @@ Ext.widgetMixIn = {
|
|
143
140
|
// if there's no action with this name, maybe it's a separator or something
|
144
141
|
res.push(o);
|
145
142
|
}
|
146
|
-
} else if (isObject(o)) {
|
143
|
+
} else if (Netzke.isObject(o)) {
|
147
144
|
// look inside the objects...
|
148
145
|
for (var key in o) {
|
149
|
-
if (isArray(o[key])) {
|
146
|
+
if (Ext.isArray(o[key])) {
|
150
147
|
// ... and recursively process inner arrays found
|
151
148
|
o[key] = replaceStringsWithActions(o[key], scope);
|
152
149
|
}
|
@@ -224,8 +221,8 @@ Ext.widgetMixIn = {
|
|
224
221
|
if (!!this.hostMenu) {
|
225
222
|
this.hostMenu(menu, owner);
|
226
223
|
} else {
|
227
|
-
if (this.
|
228
|
-
this.
|
224
|
+
if (this.ownerWidget) {
|
225
|
+
this.ownerWidget.addMenu(menu, owner);
|
229
226
|
}
|
230
227
|
}
|
231
228
|
},
|
@@ -238,8 +235,8 @@ Ext.widgetMixIn = {
|
|
238
235
|
if (!!this.unhostMenu) {
|
239
236
|
this.unhostMenu(owner);
|
240
237
|
} else {
|
241
|
-
if (this.
|
242
|
-
this.
|
238
|
+
if (this.ownerWidget) {
|
239
|
+
this.ownerWidget.cleanUpMenu(owner);
|
243
240
|
}
|
244
241
|
}
|
245
242
|
},
|
@@ -247,7 +244,27 @@ Ext.widgetMixIn = {
|
|
247
244
|
onWidgetLoad:Ext.emptyFn // gets overridden
|
248
245
|
};
|
249
246
|
|
250
|
-
//
|
247
|
+
// Netzke extensions for Ext.Container
|
248
|
+
Ext.override(Ext.Container, {
|
249
|
+
/**
|
250
|
+
Get Netzke widget that this Ext.Container is part of.
|
251
|
+
It searches up the Ext.Container hierarchy until it finds a Container that has isNetzke property set to true
|
252
|
+
(or until it reaches the top).
|
253
|
+
*/
|
254
|
+
getOwnerWidget : function(){
|
255
|
+
if (this.initialConfig.isNetzke) {
|
256
|
+
return this;
|
257
|
+
} else {
|
258
|
+
if (this.ownerCt){
|
259
|
+
return this.ownerCt.getOwnerWidget()
|
260
|
+
} else {
|
261
|
+
return null
|
262
|
+
}
|
263
|
+
}
|
264
|
+
}
|
265
|
+
});
|
266
|
+
|
267
|
+
// Make Panel with layout 'fit' capable of dynamic widgets loading
|
251
268
|
Ext.override(Ext.Panel, {
|
252
269
|
getWidget: function(){
|
253
270
|
return this.items.get(0);
|
@@ -292,11 +309,12 @@ Ext.override(Ext.Panel, {
|
|
292
309
|
eval(responseObj.js);
|
293
310
|
}
|
294
311
|
|
295
|
-
responseObj.config.
|
312
|
+
responseObj.config.ownerWidget = this.getOwnerWidget();
|
296
313
|
var instance = new Ext.netzke.cache[responseObj.config.widgetClassName](responseObj.config)
|
297
314
|
|
298
315
|
this.add(instance);
|
299
316
|
this.doLayout();
|
317
|
+
|
300
318
|
} else {
|
301
319
|
// we didn't get normal response - desplay the flash with eventual errors
|
302
320
|
this.ownerCt.feedback(responseObj.flash);
|
@@ -1,9 +1,9 @@
|
|
1
1
|
module Netzke
|
2
2
|
module BaseExtras
|
3
3
|
#
|
4
|
-
# Module which provides JS-class generation functionality for the widgets ("client-side"). This code is executed only once per widget class, and the results are cached at the server
|
5
|
-
# Included into Netzke::Base class
|
6
|
-
# Most of the methods below are meant to be overwritten
|
4
|
+
# Module which provides JS-class generation functionality for the widgets ("client-side"). This code is executed only once per widget class, and the results are cached at the server.
|
5
|
+
# Included into Netzke::Base class.
|
6
|
+
# Most of the methods below are meant to be overwritten.
|
7
7
|
#
|
8
8
|
module JsBuilder
|
9
9
|
def self.included(base)
|
@@ -127,7 +127,8 @@ module Netzke
|
|
127
127
|
# :items => js_items,
|
128
128
|
:height => 400,
|
129
129
|
:width => 800,
|
130
|
-
:border => false
|
130
|
+
:border => false,
|
131
|
+
:is_netzke => true # to distinguish a Netzke widget from regular Ext components
|
131
132
|
}
|
132
133
|
end
|
133
134
|
|
data/netzke-core.gemspec
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{netzke-core}
|
5
|
-
s.version = "0.2.
|
5
|
+
s.version = "0.2.11"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Sergei Kozlov"]
|
9
|
-
s.date = %q{2009-
|
9
|
+
s.date = %q{2009-04-17}
|
10
10
|
s.description = %q{Build ExtJS/Rails widgets with minimum effort}
|
11
11
|
s.email = %q{sergei@writelesscode.com}
|
12
12
|
s.extra_rdoc_files = ["CHANGELOG", "lib/app/controllers/netzke_controller.rb", "lib/app/models/netzke_layout.rb", "lib/app/models/netzke_preference.rb", "lib/netzke/action_view_ext.rb", "lib/netzke/base.rb", "lib/netzke/base_extras/interface.rb", "lib/netzke/base_extras/js_builder.rb", "lib/netzke/controller_extensions.rb", "lib/netzke/core_ext.rb", "lib/netzke/feedback_ghost.rb", "lib/netzke/routing.rb", "lib/netzke-core.rb", "lib/vendor/facets/hash/recursive_merge.rb", "LICENSE", "README.mdown", "tasks/netzke_core_tasks.rake", "TODO"]
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: netzke-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sergei Kozlov
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-04-17 00:00:00 -04:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|