netzke-basepack 1.0.0.0.pre3 → 1.0.0.0
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +14 -16
- data/LICENSE +1 -1
- data/README.md +1 -1
- data/javascripts/grid/event_handlers.js +5 -11
- data/lib/netzke/basepack/attributes.rb +2 -2
- data/lib/netzke/basepack/data_adapters/active_record_adapter.rb +16 -6
- data/lib/netzke/basepack/version.rb +1 -1
- data/lib/netzke/grid/base.rb +13 -3
- data/lib/netzke/grid/endpoints.rb +1 -1
- metadata +5 -5
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: e7b071b17635f26304174a2ce41906a80151f5dd
         | 
| 4 | 
            +
              data.tar.gz: 87a442885af7cdbbba3bf8c8758c687f8cf58d66
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: a9fcdb725adaec959082a2f9b9cc638dbbd424c329f13ff2086dfdd4a710d46f359544aa9f2831f9000a2246612f3c6a80c2e53993b0156a61439f1f154ef243
         | 
| 7 | 
            +
              data.tar.gz: 0ccc9d5f7a241e02a00de6048e0c2dc74ebb0c30fab519bc27a3ead1769d60fe6239646418ca12757ba608c858dfab709824ce7ec5b99b21d67d4106640a8019
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -1,12 +1,14 @@ | |
| 1 | 
            -
             | 
| 1 | 
            +
            # v1.0.0.0 - 2016-01-04
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            ## Components changed/renamed
         | 
| 2 4 |  | 
| 3 5 | 
             
            *   Base classes of main componens have been renamed from `Netzke::Basepack::{Grid|Form|Tree|Window|Viewport}` to `Netzke::{Grid|Form|Tree|Window|Viewport}::Base`.
         | 
| 4 6 |  | 
| 5 | 
            -
            *   `Netzke::Basepack:: | 
| 7 | 
            +
            *   `Netzke::Basepack::TabPanel` and `Netzke::Basepack::Accordion` have been removed. The only purpose for them was dynamic loading of child components, which didn't prove that useful.
         | 
| 6 8 |  | 
| 7 | 
            -
             | 
| 9 | 
            +
            ## Form, Grid, Tree
         | 
| 8 10 |  | 
| 9 | 
            -
             | 
| 11 | 
            +
            ### Breaking changes
         | 
| 10 12 |  | 
| 11 13 | 
             
            *   `strong_default_attrs` config option has been renamed to `strong_values`.
         | 
| 12 14 |  | 
| @@ -14,15 +16,15 @@ | |
| 14 16 |  | 
| 15 17 | 
             
            *   The new `attribute` DSL method and the accompanying `attribute_overrides` config option allow reconfiguring the way specific model attributes are presented by both the grid and the form. The `column` DSL method has been left for configuring what's specific for a column. For details, see [Netzke::Basepack::Attributes](http://www.rubydoc.info/github/netzke/netzke-basepack/Netzke/Basepack/Attributes).
         | 
| 16 18 |  | 
| 17 | 
            -
             | 
| 19 | 
            +
            ## Form
         | 
| 18 20 |  | 
| 19 | 
            -
             | 
| 21 | 
            +
            ### Breaking changes
         | 
| 20 22 |  | 
| 21 23 | 
             
            *   The `netzkeSubmit` and `netzkeLoad` endpoints have been renamed to `submit` and `load` respectively; keep this in mind if you override them in your app.
         | 
| 22 24 |  | 
| 23 | 
            -
             | 
| 25 | 
            +
            ## Grid
         | 
| 24 26 |  | 
| 25 | 
            -
             | 
| 27 | 
            +
            ### Breaking changes
         | 
| 26 28 |  | 
| 27 29 | 
             
            *   Column/field label for association no longer includes association method name by default. For example, for
         | 
| 28 30 | 
             
                `author__name` attribute it'll now be "Author", not "Author  name".
         | 
| @@ -44,15 +46,15 @@ | |
| 44 46 |  | 
| 45 47 | 
             
            *   The endpoints dropped their prefix `server`; additionally, `serverDelete` has become `destroy`; keep this in mind if you override endpoints in your app.
         | 
| 46 48 |  | 
| 47 | 
            -
            *   All scope-related configs (including those of the columns) now only accept a Proc  | 
| 49 | 
            +
            *   All scope-related configs (including those of the columns) now only accept a Proc or a Hash.
         | 
| 48 50 |  | 
| 49 | 
            -
            *   Class-level configuration is gone (its sole purpose was to allow reducing the amount of generated JS code - not worth it).
         | 
| 51 | 
            +
            *   Class-level component configuration is gone (its sole purpose was to allow reducing the amount of generated JS code - not worth it).
         | 
| 50 52 |  | 
| 51 53 | 
             
            *   `enable_edit_in_form`, `enable_edit_inline`, `enable_pagination` options are gone.
         | 
| 52 54 |  | 
| 53 55 | 
             
            *   `enable_extended_search` option is gone.
         | 
| 54 56 |  | 
| 55 | 
            -
             | 
| 57 | 
            +
            ### New and improved
         | 
| 56 58 |  | 
| 57 59 | 
             
            *   By default, Grid now uses form to add/edit records. Set `edit_inline` to true to use inline editing when possible (implicitly sets `paging` to `true`).
         | 
| 58 60 |  | 
| @@ -62,15 +64,11 @@ | |
| 62 64 |  | 
| 63 65 | 
             
            *   Buttons previously disabled due to permissions are now not added to the bottom bar alltogether.
         | 
| 64 66 |  | 
| 65 | 
            -
            #### Added
         | 
| 66 | 
            -
             | 
| 67 67 | 
             
            *   Override new `configure_form` method to specify extra configuration to the forms
         | 
| 68 68 |  | 
| 69 69 | 
             
            *   Warn the user at an attempt to change the page when there are unapplied changes; disable the warning by setting `disable_dirty_page_warning` to `true`.
         | 
| 70 70 |  | 
| 71 | 
            -
            *   Proper support for decimal datatype
         | 
| 72 | 
            -
             | 
| 73 | 
            -
            #### Bugfixes
         | 
| 71 | 
            +
            *   Proper support for decimal datatype was added
         | 
| 74 72 |  | 
| 75 73 | 
             
            *   Multiediting of reconds now works properly with boolean fields (a tristate selector was implemented).
         | 
| 76 74 |  | 
    
        data/LICENSE
    CHANGED
    
    
    
        data/README.md
    CHANGED
    
    | @@ -103,4 +103,4 @@ If you feel particularily generous, you can donate a couple of bucks weekly at [ | |
| 103 103 | 
             
            * [Twitter](http://twitter.com/netzke) - latest news about the framework
         | 
| 104 104 |  | 
| 105 105 | 
             
            ---
         | 
| 106 | 
            -
            Copyright (c) 2009- | 
| 106 | 
            +
            Copyright (c) 2009-2016 [Good Bit Labs](http://goodbitlabs.com/), released under the same license as [Ext JS](https://www.sencha.com/legal/#Sencha_Ext_JS)
         | 
| @@ -92,16 +92,6 @@ Ext.define("Netzke.Grid.EventHandlers", { | |
| 92 92 | 
             
                }
         | 
| 93 93 | 
             
              },
         | 
| 94 94 |  | 
| 95 | 
            -
              // Not a very clean approach to clean-up. The problem is that this way the advanced search functionality stops being really pluggable. With Ext JS 4 find the way to make it truely so.
         | 
| 96 | 
            -
              netzkeOnDestroy: function(){
         | 
| 97 | 
            -
                this.callParent();
         | 
| 98 | 
            -
             | 
| 99 | 
            -
                // Destroy the search window (here's the problem: we are not supposed to know it exists)
         | 
| 100 | 
            -
                if (this.searchWindow) {
         | 
| 101 | 
            -
                  this.searchWindow.destroy();
         | 
| 102 | 
            -
                }
         | 
| 103 | 
            -
              },
         | 
| 104 | 
            -
             | 
| 105 95 | 
             
              netzkeOnAddInForm: function(){
         | 
| 106 96 | 
             
                this.netzkeLoadComponent("add_window", {
         | 
| 107 97 | 
             
                  callback: function(w) {
         | 
| @@ -167,6 +157,10 @@ Ext.define("Netzke.Grid.EventHandlers", { | |
| 167 157 | 
             
                  }});
         | 
| 168 158 | 
             
              },
         | 
| 169 159 |  | 
| 160 | 
            +
              /**
         | 
| 161 | 
            +
               * Reloads store
         | 
| 162 | 
            +
               * @method netzkeReloadStore
         | 
| 163 | 
            +
               */
         | 
| 170 164 | 
             
              netzkeReloadStore: function(){
         | 
| 171 165 | 
             
                var store = this.getStore();
         | 
| 172 166 |  | 
| @@ -177,7 +171,7 @@ Ext.define("Netzke.Grid.EventHandlers", { | |
| 177 171 | 
             
              },
         | 
| 178 172 |  | 
| 179 173 | 
             
              /**
         | 
| 180 | 
            -
               *  | 
| 174 | 
            +
               * Processes selectionchange event to enable/disable actions.
         | 
| 181 175 | 
             
               * @method netzkeSetActionEvents
         | 
| 182 176 | 
             
               * @private
         | 
| 183 177 | 
             
               */
         | 
| @@ -70,13 +70,13 @@ module Netzke | |
| 70 70 | 
             
                #
         | 
| 71 71 | 
             
                # [scope]
         | 
| 72 72 | 
             
                #
         | 
| 73 | 
            -
                #    | 
| 73 | 
            +
                #   A Proc or a Hash used to scope out one-to-many association options. Same syntax applies as for scoping out records in the grid.
         | 
| 74 74 | 
             
                #
         | 
| 75 75 | 
             
                # [filter_association_with]
         | 
| 76 76 | 
             
                #
         | 
| 77 77 | 
             
                #   A Proc object that receives the relation and the value to filter by. Example:
         | 
| 78 78 | 
             
                #
         | 
| 79 | 
            -
                #      | 
| 79 | 
            +
                #     attribute :author__name do |c|
         | 
| 80 80 | 
             
                #       c.filter_association_with = lambda {|rel, value| rel.where("first_name like ? or last_name like ?", "%#{value}%", "%#{value}%" ) }
         | 
| 81 81 | 
             
                #     end
         | 
| 82 82 | 
             
                #
         | 
| @@ -89,7 +89,8 @@ module Netzke::Basepack::DataAdapters | |
| 89 89 | 
             
                    # Options for an asssociation attribute
         | 
| 90 90 |  | 
| 91 91 | 
             
                    relation = assoc.klass.all
         | 
| 92 | 
            -
             | 
| 92 | 
            +
             | 
| 93 | 
            +
                    relation = extend_relation_with_scope(relation, attr[:scope])
         | 
| 93 94 |  | 
| 94 95 | 
             
                    if attr[:filter_association_with]
         | 
| 95 96 | 
             
                      relation = attr[:filter_association_with].call(relation, query).to_a
         | 
| @@ -316,11 +317,7 @@ module Netzke::Basepack::DataAdapters | |
| 316 317 | 
             
                    relation = relation.where(predicates_for_and_conditions(and_query))
         | 
| 317 318 | 
             
                  end
         | 
| 318 319 |  | 
| 319 | 
            -
                   | 
| 320 | 
            -
                    relation = params[:scope].call(relation)
         | 
| 321 | 
            -
                  else
         | 
| 322 | 
            -
                    raise ArgumentError, "Expected scope to be a Proc, got #{params[:scope].class}" unless params[:scope].nil?
         | 
| 323 | 
            -
                  end
         | 
| 320 | 
            +
                  relation = extend_relation_with_scope(relation, params[:scope])
         | 
| 324 321 |  | 
| 325 322 | 
             
                  @relation = relation
         | 
| 326 323 | 
             
                end
         | 
| @@ -443,6 +440,19 @@ module Netzke::Basepack::DataAdapters | |
| 443 440 |  | 
| 444 441 | 
             
                private
         | 
| 445 442 |  | 
| 443 | 
            +
                def extend_relation_with_scope(relation, scope)
         | 
| 444 | 
            +
                  case scope
         | 
| 445 | 
            +
                  when Proc
         | 
| 446 | 
            +
                    scope.call(relation)
         | 
| 447 | 
            +
                  when Hash
         | 
| 448 | 
            +
                    relation.where(scope)
         | 
| 449 | 
            +
                  when NilClass
         | 
| 450 | 
            +
                    relation
         | 
| 451 | 
            +
                  else
         | 
| 452 | 
            +
                    raise ArgumentError, "Expected scope to be a Proc or a Hash, got #{scope.class}"
         | 
| 453 | 
            +
                  end
         | 
| 454 | 
            +
                end
         | 
| 455 | 
            +
             | 
| 446 456 | 
             
                def logger
         | 
| 447 457 | 
             
                  Netzke::Base.logger
         | 
| 448 458 | 
             
                end
         | 
    
        data/lib/netzke/grid/base.rb
    CHANGED
    
    | @@ -79,17 +79,27 @@ module Netzke | |
| 79 79 | 
             
                #
         | 
| 80 80 | 
             
                # [scope]
         | 
| 81 81 | 
             
                #
         | 
| 82 | 
            -
                #   A Proc  | 
| 83 | 
            -
                #   modified relation. For example:
         | 
| 82 | 
            +
                #   A Proc or a Hash used to scope out grid data. The Proc will receive the current relation as a parameter and must
         | 
| 83 | 
            +
                #   return the modified relation. For example:
         | 
| 84 84 | 
             
                #
         | 
| 85 85 | 
             
                #      class Books < Netzke::Basepack::Grid
         | 
| 86 86 | 
             
                #        def configure(c)
         | 
| 87 | 
            -
                #          c.model = "Book"
         | 
| 88 87 | 
             
                #          super
         | 
| 88 | 
            +
                #          c.model = Book
         | 
| 89 89 | 
             
                #          c.scope = lambda {|r| r.where(author_id: 1) }
         | 
| 90 90 | 
             
                #        end
         | 
| 91 91 | 
             
                #      end
         | 
| 92 92 | 
             
                #
         | 
| 93 | 
            +
                #   Hash is being accepted for conivience, it will be directly passed to `where`. So the above can be rewritten as:
         | 
| 94 | 
            +
                #
         | 
| 95 | 
            +
                #      class Books < Netzke::Basepack::Grid
         | 
| 96 | 
            +
                #        def configure(c)
         | 
| 97 | 
            +
                #          super
         | 
| 98 | 
            +
                #          c.model = Book
         | 
| 99 | 
            +
                #          c.scope = {author_id: 1}
         | 
| 100 | 
            +
                #        end
         | 
| 101 | 
            +
                #      end
         | 
| 102 | 
            +
                #
         | 
| 93 103 | 
             
                # [strong_values]
         | 
| 94 104 | 
             
                #
         | 
| 95 105 | 
             
                #   A hash of attributes to be merged atop of every created/updated record, e.g. +role_id: 1+
         | 
| @@ -84,7 +84,7 @@ module Netzke | |
| 84 84 |  | 
| 85 85 | 
             
                  # Attempts a given operation on the data. Checks permissions first.
         | 
| 86 86 | 
             
                  # @param [Symbol] Operation: :create, :read, :update, or :delete
         | 
| 87 | 
            -
                  # @param [Array] Workload of operation data
         | 
| 87 | 
            +
                  # @param [Array|Hash] Workload of operation data
         | 
| 88 88 | 
             
                  # @param [Netzke::Core::EndpointResponse] Object collecting response to the client
         | 
| 89 89 | 
             
                  def attempt_operation(op, data, client)
         | 
| 90 90 | 
             
                    if allowed_to?(op)
         | 
    
        metadata
    CHANGED
    
    | @@ -1,18 +1,18 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: netzke-basepack
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1.0.0.0 | 
| 4 | 
            +
              version: 1.0.0.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Max Gorin
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2016-01- | 
| 11 | 
            +
            date: 2016-01-04 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies: []
         | 
| 13 | 
            -
            description: A set of feature-rich extendible Netzke components (such as  | 
| 14 | 
            -
               | 
| 15 | 
            -
               | 
| 13 | 
            +
            description: A set of feature-rich extendible Netzke components (such as Grid, Tree,
         | 
| 14 | 
            +
              Form, Window) and component extensions which can be used as building blocks for
         | 
| 15 | 
            +
              your apps
         | 
| 16 16 | 
             
            email: max@goodbitlabs.com
         | 
| 17 17 | 
             
            executables: []
         | 
| 18 18 | 
             
            extensions: []
         |