Giter Site home page Giter Site logo

netzke-basepack's Introduction

Netzke is a framework that greatly facilitates creation of complex Sencha Ext JS + Ruby-on-Rails applications by leveraging a modular, object-oriented approach.

Gem Version

Rationale

Sencha Ext JS is a powerful front-end framework, which is used for crafting web-apps that give the end user experience similar to that of a desktop application. It has an extensive set of widgets ('components'), and leverages a modular approach to its fullest: a developer can extend components (using Ext JS's own class system), nest components with the help of many powerful layouts, dynamically create and destroy them, etc. The architecture of Ext JS is well thought out and complete.

However, with Ext JS being server-agnostic, it is not always a trivial task for a developer to bind Ext JS components to the server-side data and application business logic, especially in complex applications. Netzke as the solution that allows you to extend the modular approach to the server side.

Netzke Core takes the burden of implementing the following key aspects of the framework:

  • Client-side (JavaScript) class generation
  • Client-server communication
  • Extendibility of components (with the help of inheritance and mixins)
  • Unlimited nesting (composition)
  • Dynamic component loading
  • Client-side class caching

...and more.

All this extremely facilitates building fast, low-traffic, robust, and highly maintainable applications. As a result, your code scales much better in the sense of complexity, compared to using conventional MVC, where developers are pretty much limited with the programming techniques that they can apply.

HelloWorld component

Here's a mini-tutorial on building a simple Netzke component that illustrates client-server communication in Netzke.

Ext JS files are not distributed with Netzke, so, make sure that they are located in (or sym-linked as) YOUR_APP/public/extjs.

In YOUR_APP/components/hello_world.rb:

class HelloWorld < Netzke::Base
  # Configure client class
  client_class do |c|
    c.title = "Hello World component"
  end

  # Actions are used by Ext JS to share functionality and state b/w buttons and menu items
  # The handler for this action should be called netzkeOnPingServer by default
  action :ping_server

  # Self-configure with a bottom toolbar
  def configure(c)
    super
    c.bbar = [:ping_server] # embed the action into bottom toolbar as a button
  end

  # Endpoint callable from client class
  endpoint :greet_the_world do
    # call client class' method showGreeting
    client.show_greeting("Hello World!")
  end
end

In YOUR_APP/components/hello_world/client/hello_world.js put the client class (JavaScript) methods:

{
  // handler for the ping_server action
  netzkeOnPingServer: function(){
    // calling greet_the_world endpoint
    this.server.greetTheWorld();
  },

  // called by the server as the result of executing the endpoint
  showGreeting: function(greeting){
    this.update("Server says: " + greeting);
  }
}

To embed the component in Rails view:

Use load_netzke in the layout to include Ext JS and Netzke scripts and stylesheets:

<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="Content-type" content="text/html; charset=utf-8">
  <%= csrf_meta_tag %>
  <%= load_netzke %>
</head>
<body>
  <%= yield %>
</body>
</html>

Embed the component in the Rails view:

<%= netzke :hello_world %>

To learn about Netzke architecture in detail, refer to the Netzke Core README.

Netzke gems

The netzke Ruby gem is a meta-gem that has the following framework parts as dependencies:

  • Netzke Core - the "bare bones" of the framework. Its README is a must-read for understanding the framework.
  • Netzke Basepack - a few feature-packed pre-built components.
  • Netzke Testing - a set of helpers that simplify development and testing of Netzke components.

Documentation

Netzke components consist of server side (Ruby) and client side (JavaScript) code, each having an API that you will want to use in your app. Documentation for the server-side (Ruby) classes is auto-generated (with YARD) and hosted by RubyDoc.info. Documentation for client-side classes is generated manually with yuidoc using scripts provided in this gem; it is hosted here.

Generating documentation for client-side code

Symlink Netzke gems (such as netzke-basepack and netzke-core) into the doc/client directory, then run

rake client_doc:generate

The combined docs for all symlinked gems will be generated in doc/client/build.

Useful links

  • Project website - place to start
  • Demo - demo showing off components from Basepack (browse through demo components and see their source code)
  • Twitter - bite-sized announcements about Netzke

FAQ

Will I need to write JavaScript while using Netzke?

It depends. For developing new components or extending existing ones (e.g. from Basepack) you'll most probably need to apply your Sencha Ext JS knowledge (and Netzke isn't supposed to limit you here in any way). However, the idea is that you write JavaScript code only once. After the component is created, use it as if it were a part of some Ruby library. A comparison with Ruby gems that use C extensions is also appropriate here: as some Ruby gems incapsulate C code for you, the same way Netzke components incapsulate JavaScript.

Why did you choose for Ext JS as front end?

In the current scene, Ext JS is the only library I know of that has the architecture consistent, flexible, and complete enough to allow for complex "enterprise level" web applications.

When will there be more components available?

I'm creating new components according to my own practical needs. As soon as get something generic, I might add that to netzke-basepack or to a dedicated gem. However, the key idea of Netzke is that it facilitates creating new components which are extremely easy to share, so that anybody could contribute.


Copyright (c) 2009-2017 Good Bit Labs, released under the same license as Ext JS

netzke-basepack's People

Contributors

0rca avatar davide avatar delwyn avatar denispeplin avatar egtorresx avatar elser avatar fcn avatar firemind avatar fkschmidt avatar gertthiel avatar jhaagmans avatar mindreframer avatar moffff avatar mudphone avatar novozhenets avatar paulsd avatar paulsponagl avatar phgrey avatar pididi avatar scho avatar scottmills avatar skeller1 avatar spieker avatar thepry avatar tomg65 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

netzke-basepack's Issues

:belongs_to relationships

According to the recent description of the 0.6 release on the blog:

"By default, when Netzke detects a foreign key among the columns to be displayed in a grid or a form, it turns that column/field into a combobox column/field, and, as its options, lists the records by the first valid association attribute from the following list: name, title, and label. If association records do not respond to any of these methods, Netzke will fall back to the association’s primary key."

However, when I don't have one of the association attributes listed (name, title, label), I get a blank field (no dropdown) instead of the primary keys.

get_data_endpoint

I'm trying redefine the endpoint get_data of boss tables(according netzke-demo)
in boss_and_clerk.rb and append to parametrs conditions generated by cancan (https://github.com/ryanb/cancan/wiki/Fetching-Records)
am i at right way of doing it?

def bosses_and_clerks__bosses__get_data_endpoint(params)
   param = params.first || {}
   param.merge(current_ability.query(:read, Boss).conditions)
   super(param)
end

simple_app this.mainPanel is null

Hello.
when i try use simple_app in extjs4 branch i got an javascript error

this.mainPanel is null
(regarding firebug this.mainPanel.removeAll(); method in

''' processHistory: function(token){
if (token){
this.mainPanel.removeAll();
this.loadNetzkeComponent({name: token, container: this.mainPanel});
} else {
this.mainPanel.removeAll();
}
},

am i doing something wrong or is it a bug?

https://gist.github.com/1131795

Grid: Sorting fails if a scope uses joins

Sorting in the grid works if one it's very own model is queried.

I integrated the LiveSearchGrid from the community pack into my app. One of my live searchable grids queries three models like this:

# This scope is used by the LiveSearchGrid component
#
scope :live_search_grid, lambda { |live_search|
        joins( :manager, :customer ).
          where {
            ( customer.name.like "%#{live_search}%" ) |
            (  manager.name.like "%#{live_search}%" ) |
            ( projects.name.like "%#{live_search}%" )
          }
      }

FYI: where {} is valid Squeel syntax and the scope code has been tested.

If I order the records in the grid by name the database is offended by ORDER BY name asc which it rejects with a

ActiveRecord::StatementInvalid (ActiveRecord::JDBCError: ERROR: column reference "name" is ambiguous

error message.

I tried to patch Netzke::Basepack::DataAdapters::ActiveRecordAdapter#get_records but without success.

Dependency on acts_as_list not defined?

Appearently BP depends on acts_as_list now. However, acts_as_list doesn't get into my bundle.
Is it possible to define the dependency, so that acts_as_list gets installed on bundle install?

Edit in form doesn't care about strong_default_attrs

Hi Sergei,

I started with netzke endpoint testing, using RSpec (I will create a blog post about that later) and I found a security issue within Netzke::Basepack. The edit in form window doesn't care about the strong_default_attrs config. Within my test case I am not able to create a record with other values then set in strong_default_attrs but after creation I am able to change these values to others then defined in the strong_default_attrs config.

Greetings from Berlin,
Paul

Problem when use set_result for return value back from endpoint.

I have create an endpoint for create new Client.

At first I have create Client and use transaction (see code below).

It's work normally.

      # Before add set_result
      js_method :on_new_contact, <<-JS
        function() {
          var form = this.items.first().getForm();
          if (form.isValid()) {
            this.newContact(form.getFieldValues());
            this.closeRes = 'create_user';
            this.close();
          }
        }
      JS

      endpoint :new_contact do |params|
        data_hash = params.to_hash

        Client.transaction do
          new_client = Client.new

          data_hash.each do |field, value|
            new_client.__send__("#{field}=", value)
          end

          if new_client.save!
            flash :notice => "Client #{new_client.full_name} has been created"
          else
            flash :error => new_user.errors.full_messages.to_sentence
          end # if
        end # transaction

        {:netzkeFeedback => @flash}
      end # endpoint

And after I have add set result for return new Client id from endpoint.

It's save Client to my database for three times.

      # After add set_result

      js_method :on_new_contact, <<-JS
        function() {
          var form = this.items.first().getForm();
          if (form.isValid()) {
            this.newContact(form.getFieldValues(), function(value){
                alert(form);
                alert(value);
            }, this);
            this.closeRes = 'create_user';
            this.close();
          }
        }
      JS

      endpoint :new_contact do |params|
        data_hash = params.to_hash

        Client.transaction do
          new_client = Client.new

          data_hash.each do |field, value|
            new_client.__send__("#{field}=", value)
          end

          if new_client.save!
            flash :notice => "Client #{new_client.full_name} has been created"
          else
            flash :error => new_user.errors.full_messages.to_sentence
          end # if
        end # transaction

        {:netzkeFeedback => @flash, :set_result => new_client.id}
      end # endpoint

I already try to find what the problem came from.

And I found it happen when I use set_result with transaction. But still don't know what is cause of problem.

If I remove transaction OR set_result code out. It will work normally.

Thanks for the answer :)

PS. I'm sorry, If my English skill bad for you.

Gridpanels with 2 columns of same association type are busted

I have a model C with two associations/belongs_to of model T. i.e. C has two columns (fld1 and fld2) which hold ids of T.

When C is displayed in a Gridpanel with columns :fld1__name and :fld2__name, I get SQL exceptions when trying to sort using fld2 by clicking on the column header. I get similar errors with filtering.

I can provider further details or sample code if this report is not clear.

Undefined method javascripts trying to load netzke-core

When adding both netzke-core and netzke-basepack to my rails project it breaks when netzke-basepack tries to load netzke-core because it can't find the javascripts method, probably because it was changed to ext_javascripts.

Cannot create or update foreign key fields

When displaying a Grid I can create and update records inline or via a form, however, only those fields which are not foreign keys will retain a value. When I uses an older version of netzke (0.7) there are no issues and the foreign relation is created/updated without a problem.

To make sure it wasn't anything else in my app I created a barebones rails app:
https://github.com/jnand/netzke-test.git

Books belongs_to Author, and when I display the component BookGrid I have the create/update issues mentioned.

Many thanks.

Deprecation warning on branch multi-orm

Rails 3.2.1, Ruby 1.9.3

Gemfile

gem 'netzke-core', :git => 'git://github.com/nomadcoder/netzke-core.git', :branch => "rails-upgrade"
gem 'netzke-basepack', :git => 'git://github.com/nomadcoder/netzke-basepack.git', :branch => "multi-orm"
gem 'netzke-communitypack', :git => 'git://github.com/nomadcoder/netzke-communitypack.git'

I use the branch "multi-orm" because I use mongoid and mongodb for storage.

DEPRECATION WARNING: ActiveSupport::Memoizable is deprecated and will be removed in future releases, simply use Ruby memoization pattern instead. (called from extend at /.rvm/gems/ruby-1.9.3-p194@test/bundler/gems/netzke-basepack-02d4d2137000/lib/ne
tzke/basepack/grid_panel/columns.rb:6)
DEPRECATION WARNING: ActiveSupport::Memoizable is deprecated and will be removed in future releases,simply use Ruby memoization pattern instead. (called from extend at /.rvm/gems/ruby-1.9.3-p194@test/bundler/gems/netzke-basepack-02d4d2137000/lib/ne
tzke/basepack/grid_panel.rb:151)

Solved same deprecation warning at netzke-core, rails-upgrade branch!
https://github.com/nomadcoder/netzke-core/commit/14395fbe89493e5e25f4aa7c3a6138ef97ac2c71

Grid: Implement infinite scrolling

The grid is flawed from a UX perspective: If the grid has only limited screen estate I have to scroll using the vertical scrollbar and then use the paginator to see every record. If the grid has plenty screen real estate I maybe see a few records and a lot of white space below which could display more records instead of forcing me to resort to the paginator to see more records.

Infinite scrolling resolves this most elegantly. See the Ext JS sample. There is only one element to browse through the record: the vertical scrollbar and it now traditional mouse wheel shortcut.

Grid panel delete doesn't report destroy failure

I'm using ActivRecord and I have a before_destroy check which prevents a row's deletion. The GridPanel still reports the row(s) deleted even though they're not actually removed. The delete_data endpoint in GridPanel never checks for failure to destroy.

Actions that change window.location: Can't use path helpers

Hi,

I came across the following problem:
Given a component with some buttons that are used to navigate through the app:

action :sign_out, :text => 'Logout'
js_method :on_sign_out, <<-JS.l
  function() {
    window.location = '/users/sign_out';
  }
JS

This works perfectly, but it would be nice to use path helpers:

"window.location = '#{destroy_user_session};"

So does anyone know how to include the path helpers into the Netzke::Base? Couln't that be the default behaviour?

Need help on Google Map.

I would like to implement Google Map with netzke. How to integrate ?

Simple try:-
class GoogleMaps < Netzke::Communitypack::GoogleMapPanel
def configuration super.merge() end

end

Got this:-
ActionView::Template::Error (undefined method `new' for nil:NilClass):

How to include to project?
Thank You very very much.

Feature: sorting_scope for virtual attributes in grid

It would be a god idea if you can define a sorting scope for virtual attributes

Example:
netzke_attribute :complete_name, :label=>'Name', :sorting_scope => :sort_by_complete_name
def complete_name
firstname + ' ' + name
end

scope :sort_by_complete_name, lambda { |direction|
order("firstname #{direction}, name #{direction}")
}

or something like that

Null integer fields are displayed as 0 in the GridPanel

The default numberfield attr_type for GridPanel integer columns displays NULL data as 0. Furthermore, it's not possible to add rows with NULL values for such fields. As a workaround, I'm using :numbercolumn as the attr_type.

Grid: Icons are missing

The actions show and work correctly, but the icons are missing. with_icons evaluates true

data object in combobox

It would be great to have a third value in the combobox which contains meta data for each item in a combobox. This can be used to show a notification or calculate some special values if the user selects a special entry from the combobox.

i.e.
[
[1, "Activated", NULL],
[1, "Deactivated", { warning:true, message:"Deactivating the account results in deletion of all E-Mails of this account."}]
]

No reaction of change width param in config for "add/edit in form"

My view:

= netzke  :articles, \
            :class_name => "Basepack::GridPanel", \
            :model => "Article", \
            :title => "Articles", \
            :bbar => [:apply.action, :del.action, :add_in_form.action, :edit_in_form.action], \
            :tbar => [{ \
              :menu => [:add_in_form.action, :edit_in_form.action, :apply.action, :del.action], \
              :text => "Articles", \
              :icon => "/images/icons/application_form.png" \
            }], \
            :columns => [ \
                        {:name => :title, :width => 200 }, \
                        {:name => :created_at, :editable => false, :read_only => true, :width => 120, :align => "center"} \
                        ], \
            :edit_form_config => {:width => 600, :height => 500, \
                                  :items => [:title, :excerpt, {:name => :text, :xtype => :htmleditor}]}, \
            :add_form_config => {:width => 600, :height => 500, \
                                 :items => [:title, :excerpt, {:name => :text, :xtype => :htmleditor}]}

Caching of dynamic js/css

Is self.include_js, self.include_css cached?
If not, it could be a real perf-killer if it loaded everytime from disk.
It could hit the disk multiple times per request in large component graphs.

polymorphic associations

Polymorphic associations don't seem to work properly in column definitions. That is, if a model is defined:
class Asset < ActiveRecord::Base
belongs_to :attachable, :polymorphic => true
end
then
:columns => [:id, :attachable,...]
won't work at all, and if you put in something like
:columns => [:id, :attachable_id, :attachable_type,...]
it doesn't throw an error, but editing/creating doesn't really work in that you can't select anything, only type in the id and type by hand.

Similarly, when you try to display, for example,
:columns => [:id, :attachable__name,...]
it won't work, but
:columns => [:id, "attachable.name",...]
will.

test app unable to find selenium profile

$ cucumber features
Feature: Accordion panel
In order to value
As a role
I want feature

@javascript
Scenario: Lazy loading of a component into a panel when the latter gets expanded # features/accordion_panel.feature:7
Given I am on the SimpleAccordion test page # features/step_definitions/web_steps.rb:19
unable to find profile named: "selenium" (Selenium::WebDriver::Error::WebDriverError)
./features/step_definitions/web_steps.rb:20:in /^(?:|I )am on (.+)$/' features/accordion_panel.feature:8:inGiven I am on the SimpleAccordion test page'
When I expand "Panel Two" # features/step_definitions/accordion_steps.rb:1
Then I should see "Original HTML" # features/step_definitions/web_steps.rb:107
When I press "Update html" # features/step_definitions/web_steps.rb:27
Then I should see "Update for Panel Two" # features/step_definitions/web_steps.rb:107

Rails 3 Branch

Hi

<%= netzke :users, :class_name => "GridPanel", :model => "User" %> raise the following error: uninitialized constant Netzke::GridPanel

It think it should be calling Netzke::Component::GridPanel

It works if you use:
<%= netzke :users, :class_name => "Component::GridPanel", :model => "User" %>

Or if you change http://github.com/skozlov/netzke-core/blob/rails3/lib/netzke/component/base.rb line 84
From
component_class = "Netzke::#{config[:class_name]}".constantize
To
component_class = "Netzke::Component::#{config[:class_name]}".constantize

Great plugin!!!

Thanks

Test app missing netzke-persistence

engeens-MacBook:rails_app engeen$ bundle exec cucumber features
The path /Users/engeen/.rvm/gems/ruby-1.9.2-p0/gems/netzke-basepack-0.6.4/test/rails_app/vendor/gems/netzke-persistence does not exist.

belongs_to associations don't work out-of-the box

Whenever i try, the combobox of the parent model doesn't appear in the column. Just the integer field. Or if I declare the model__name attribute in the component i've got a combobox where data can not be saved.

... class Contractors < Netzke::Basepack::Grid
  def configure(c)
    super
    c.model = "Contractor"
    c.title =  I18n.t 'pm.contractors.contractors' 
    c.columns = [
      {name: :name, header: I18n.t("activerecord.attributes.contractor.name")}, 
      {name: :contractor_type__name}
    ]
  end
end

FormPanel ignores config[:record] when update is performed

I'm about to create a form, in which a user can edit his profile. So I created a FormPanel with the following option:

:record => Netzke::Core.current_user

This works great, but I found out, that when an update is preformed, this option will be ignored, due to this (See: https://github.com/skozlov/netzke-basepack/blob/master/lib/netzke/basepack/form_panel/services.rb#L105 ):

@record ||= data_adapter.find_record hsh.delete(data_class.primary_key.to_s)

and the fact, that the record method (which sets @record from the config) was never called before.
So if a user sends a request with an id, different from the own id, it will update another users profile.

I could fix this issue by calling record explicitly in the create_or_update_record method:

def create_or_update_record(hsh)
  record
  super
end

So is this some kind of 'bug' or is this component not meant to be to protect users from updating other objects, than the on in :record?

I also had to overwrite the netzke_load endpoint, in order to prevent users from loading other profiles.

If someone has an idea, how to fix this properly and could point me into directions, I could try to fix it and send a pull request.

JS error when loading record with association column in FormPanel

I have a FormPanel configured like this:

{
    :class_name => 'Netzke::Basepack::FormPanel',
    :model => 'Invoice',
    :record_id => config[:invoice].id,
    :items => [{
        :name => :customer__name,
        :xtype => 'label'
    }, :note]
}

The Invoice model has a reference "customer". If the customer isn't set, there is no problem, but if its set, I get the JS error:

Uncaught TypeError: Object [object Object] has no method 'setValue'

Any idea how to solve this problem?

Edit: JS Backtrace:

Uncaught TypeError: Object [object Object] has no method 'setValue'
Ext.extend.Netzke.chainApply.setFormValues:504
Ext.extend.Netzke.chainApply.afterRender:387
Ext.extend.renderext-all-debug.js:10802
Ext.layout.BorderLayout.Ext.extend.onLayoutext-all-debug.js:13768
Ext.layout.ContainerLayout.Ext.extend.layoutext-all-debug.js:13162
Ext.layout.ContainerLayout.Ext.extend.runLayoutext-all-debug.js:13271
Ext.layout.ContainerLayout.Ext.extend.onResizeext-all-debug.js:13265
EXTUTIL.Event.fireext-all-debug.js:310
EXTUTIL.Observable.fireEventext-all-debug.js:54
Ext.Panel.Ext.extend.onBodyResizeext-all-debug.js:17670
Ext.Panel.Ext.extend.onResizeext-all-debug.js:17661
Ext.BoxComponent.Ext.extend.setSizeext-all-debug.js:12164
Ext.layout.BorderLayout.Region.applyLayoutext-all-debug.js:14158
Ext.layout.BorderLayout.Ext.extend.onLayoutext-all-debug.js:13847
Ext.layout.ContainerLayout.Ext.extend.layoutext-all-debug.js:13162
Ext.layout.ContainerLayout.Ext.extend.runLayoutext-all-debug.js:13271
Ext.layout.ContainerLayout.Ext.extend.onResizeext-all-debug.js:13265
EXTUTIL.Event.fireext-all-debug.js:310
EXTUTIL.Observable.fireEventext-all-debug.js:54
Ext.Panel.Ext.extend.onBodyResizeext-all-debug.js:17670
Ext.Panel.Ext.extend.syncHeightext-all-debug.js:17373
Ext.Panel.Ext.extend.initEventsext-all-debug.js:17447
Ext.Panel.Ext.extend.afterRenderext-all-debug.js:17419
Ext.extend.renderext-all-debug.js:10802
Ext.layout.ContainerLayout.Ext.extend.renderItemext-all-debug.js:13191
Ext.layout.ContainerLayout.Ext.extend.renderAllext-all-debug.js:13182
Ext.layout.ContainerLayout.Ext.extend.onLayoutext-all-debug.js:13168
Ext.layout.FitLayout.Ext.extend.onLayoutext-all-debug.js:13383
Ext.layout.ContainerLayout.Ext.extend.layoutext-all-debug.js:13162
Ext.Container.Ext.extend.doLayoutext-all-debug.js:12969
Ext.override.instantiateChildext.js:269
Ext.apply.instantiateAndRenderComponentext.js:609
Ext.apply.componentDeliveredext.js:593
Netzke.componentMixin.Ext.applyIf.bulkExecuteext.js:196
(anonymous function)ext.js:191
Ext.apply.eachext-base-debug.js:458
Netzke.componentMixin.Ext.applyIf.bulkExecuteext.js:191
Ext.eachext.js:445
Ext.direct.RemotingProvider.Ext.extend.doCallbackext-all-debug.js:26745
Netzke.classes.NetzkeRemotingProvider.Ext.extend.onDataext.js:359
Ext.extend.handleResponseext-all-debug.js:4064
handleTransactionResponseext-base-debug.js:1864
checkResponseext-base-debug.js:1912
(anonymous function)ext-base-debug.js:902

:scope option of column doesn't used in [add | edit]_in_form

If a scope for a combo box is defined in a grid panel column, the option didn't get passed to the add_in_form or edit_in_form window. To prevent this issue, you have to define these columns separately in default_fields_for_form.

The sope option should passed to the form_panel by default to prevent security issues like showing entries of another user.

Flash error messages only show first error

Hi Sergei

The flash error messages are only showing the first error message - this is the case in my app as well as the app at demo.netzke.org. I will have a look tomorrow and see if I can find the bug.

Cheers

i18n production

Hello
i have a strange issue in production mode
i get an error : translation missing: ru.....
if i run console in production and I18n.t :subjects
all is fine... but in browser in netzke components it shows like it missing
i've also tried to place this i18n strings in other controllers and they display fine

currently if i change config.cache_classes = false in production all translation start working...
http://xmages.net/storage/10/1/0/7/d/upload/8a0d5252.png

Window component boundary

Please add boundary for moving Window component so that it will go outside the container/browser window.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.