remoting_provider.rb

Path: lib/merb-extjs-direct/mixins/remoting_provider.rb
Last Update: Thu Dec 22 16:10:58 +0000 2016

Meb::ExtJS::Direct::RemotingProvider @mixin This is a mixin which provides support Merb support for ExtJS‘s Ext.Direct mechanism in Ext3.x <h3>Defining and registering the Ext.Direct api</h3> <code> <script>

  var api : {
      url: 'my_controller/rpc',
      type: 'remoting',
      actions: []
  };

  Ext.onReady(function() {
      // Add some actions from ArtistPart
      api.actions.push({
          ArtistPart : [
              {"name" : "create"},
              {"name" : "destroy"}
          ];
      });
      .
      .
      .
      // add some more actions from AlbumPart
      api.actions.push({
          AlbumPart : [
              {"name" : "create"},
              {"name" : "destroy"}
          ];
      });

      // register api with Ext.Direct
      Ext.Direct.addProvider(api);

      // Executing Ext.Direct actions.  (very much like using irb console)
      ArtistPart.destroy(1);
      AlbumCreate.create({name : "Joe Puke and the Chunky Bits"});

  });

</script> </code>

<h3>Configuring your Merb Ext.Direct controller</h3> <code> class MyController

    include Merb::Ext::Direct::RemotingProvider   # <-- include this mixin.

end </code>

<p>By including RemotingProvider mixin, your controller will have added to it a single action called "rpc" with which you can send all you Ext.Direct actions to. Take note of the url specified in the first step.</p>

<h3>Merb-parts</h3> Ext.Direct is implemented in Merb by taking advantage of "Parts". The nice thing about parts is that they have both a view (for rendering you Ext controls and api along with a controller for executing your api actions.

The Merb RemotingProvider mixin takes advantage of the merb-parts gem.

Ext.Direct router @usage include Ext::Direct::RemotingProvider @author Chris Scott @TODO before_actions

[Validate]