Wasn't all that in the readme?

On Nov 29, 2009, at 9:51 AM, Jeff Casimir wrote:

> Arthur,
>
> Thanks for the tip on drag_order, it sounded great.  It took me quite
> a bit of trial and error to get it working.  It makes me realize that
> the combination of radiant versions, rails versions, and extension
> versions can really be a pain in the ass.
>
> Just an opinion, it would seem that moving/reordering pages is a
> pretty core function of a CMS.  It would be sensible to me to roll
> this drag_order extension into the 0.9 core gem.
>
> Anyway, here is the story of my struggle through getting drag_order
> working: -----------------
>
> - Downloaded the latest TAR from GitHub, extracted
> - Ran rake radiant:extensions:drag_order:migrate -- failed.
> - Ran rake radiant:extensions:drag_order:update -- failed.
> - Ran rake radiant:extensions:drag_order:update -t -- failed, but see
> that the problem is the "require 'application'" on line two of
> drag_order_extension.rb.  Change it to "application_controller"
> - Ran rake radiant:extensions:drag_order:update -t -- passed
> - Ran rake radiant:extensions:drag_order:migrate -t -- failed, error
> from DB that "Pages" table already has a position field (from the
> REORDER extension). Edit the migration to comment out the column
> creation lines, re-run, passed.
> - Restart the server
> - Here's what I see on the admin index page:
> http://img.skitch.com/20091129-x54ie7nrq27r1g8n8kk6piqp6g.jpg
>
> Working with extensions always makes me feel like a freaking  
> noobie, ugh!
>
> I looked in vendor/extensions/drag_order/app/views/admin/page/ and
> everything is there.  Though I wondered why "page" and not "pages" --
> renamed the folder to "pages", restarted, and those error messages are
> gone.  Here's what I see:
>
> http://img.skitch.com/20091129-pkk3m9n5iqsphw7i9253rsyhw1.jpg
>
> Sweet! Try it and --- uhhh --- nothing happens.  Look at the HTML
> source and find this:
>
> <td class='drag_order'><img alt="Drag this icon to move the page"
> src="/images/admin/drag_order.png?1259505171" /></td>
>
> Looks reasonable, but there must be some Javascript missing.  Look at
> the header area and see prototype, string, effects, tabcontrol,
> ruledtable, admin, sitemap, and lowpro javascripts.  Nothing about
> drag_order, hmmm.  Look in the file system and I see drag_order.js
> under public/javascripts/admin/, so the file is in the right place
> just not being included in the header.
>
> I really don't understand how plugins get loaded and such, but I see
> the include statements in /app/views/admin/pages/_header.html.haml.
> Clearly this file isn't getting picked up for some reason.  As a first
> hack, I copy the two include lines to the _header.html.haml of the
> REORDER extension, since that one seems to be getting loaded.  Copy
> the includes, restart, reload, and it looks good!  I can drag the
> handle around and see the purple indicator.
>
> Drop a file, then boom: Application error from the URL
> "http://chavez.casimircreative.com/admin/pages/75/move_to/106/1";.
> Ugh.  Check out the log and this is what I see:
>
> Processing ApplicationController#move_to (for 76.106.40.99 at
> 2009-11-29 15:12:57) [GET]
>   Parameters: {"rel"=>"106", "action"=>"move_to", "id"=>"75",
> "controller"=>"admin/page", "pos"=>"1"}
> NameError (uninitialized constant Admin::PageController):
>   /opt/ruby-enterprise/lib/ruby/gems/1.8/gems/passenger-2.2.4/lib/ 
> phusion_passenger/rack/request_handler.rb:91:in
> `process_request'
>
> I already know there's something about Page versus Pages, so this
> isn't shocking.  First I look in drag_order_extension.rb and find the
> "activate" and "deactivate" methods that must be responsible for
> telling Radiant about the extension's views, modules, and such.  I
> should come back here to figure out why the _header wasn't being
> picked up.  Moving on...
>
> I search in drag_order/lib/drag_order for any files containing the
> text "PageController" (from the error message).  The only appears in
> "page_controller_extensions.rb", so I rename the file itself to
> "pages_controller_extensions.rb" and, inside the file, rename the
> module to DragOrder::PagesControllerExtensions.
>
> Reload and boom: uninitialized constant
> DragOrder::PageControllerExtensions error from the Radiant extension
> loader.  Sounds reasonable.  Looking at the initializer code radiant
> is calling that activate method that I saw in the
> drag_order_extension.rb file, so I'll go look at that.
>
> The lines that caught my eye before looked like
> "(Admin::PageController rescue Admin::PagesController)" which seemed
> unnecessary if my instance is using pages.  So I do some simplifying
> and renaming to end up with this:
>
> def activate
>   admin.page.index.add :sitemap_head, "drag_order_header"
>   admin.page.index.add :node, "drag_order"
>   admin.page.index.add :top, "header"
>   Page.send :include, DragOrder::PageExtensions
>   Admin::PagesController.send :helper, DragOrder::PageHelper
>   Admin::PagesController.send :include,  
> DragOrder::PagesControllerExtensions
>   StandardTags.send :include, DragOrder::TagExtensions
> end
>
> I compare that to the activate method of the working REORDER extension
> and see that the top three lines are basically identical.  I wonder
> why the partials aren't getting picked up.  Maybe this whole method
> isn't getting executed??  Restart the server and see what happens...
>
> It loads.  Try to do a drag & drop, and:
>
> Processing ApplicationController#move_to (for 76.106.40.99 at
> 2009-11-29 15:38:14) [GET]
>   Parameters: {"rel"=>"106", "action"=>"move_to", "id"=>"75",
> "controller"=>"admin/page", "pos"=>"1"}
> NameError (uninitialized constant Admin::PageController):
>
> Maybe it's a routing problem?  I reopen drag_order_extension.rb and
> look at the "define_routes" method.  I change this line:
>
> map.with_options :controller => "admin/page" do |page|
>
> to this:
>
> map.with_options :controller => "admin/pages" do |page|
>
> Restart the server, drag and drop...HOLY CRAP IT WORKED!
>
> I at once love and hate the extension system.
>
> - Jeff
>
> On Sun, Nov 29, 2009 at 12:04 AM, Nate <[email protected]> wrote:
>> Arthur Gunn wrote:
>>> Hey Jeff,
>>>
>>> No insights into copy_move functionality, you could of course  
>>> checkout
>>> a previous version, but I wonder why not use:
>>>      http://github.com/bright4/radiant-drag-order
>>>
>>> Ajax copy, move and reorder all in one.
>>>
>>
>> Awesome find. I thought Sean's reorder extension had withered and  
>> died.
>> Nice to see that it was revived and updated.
>>
>>
>> ~Nate
>> _______________________________________________
>> Radiant mailing list
>> Post:   [email protected]
>> Search: http://radiantcms.org/mailing-list/search/
>> Site:   http://lists.radiantcms.org/mailman/listinfo/radiant
>>
> _______________________________________________
> Radiant mailing list
> Post:   [email protected]
> Search: http://radiantcms.org/mailing-list/search/
> Site:   http://lists.radiantcms.org/mailman/listinfo/radiant

_______________________________________________
Radiant mailing list
Post:   [email protected]
Search: http://radiantcms.org/mailing-list/search/
Site:   http://lists.radiantcms.org/mailman/listinfo/radiant

Reply via email to