Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

All other Modules /

Discuss all other Modules here.

Moderators: martimiz, Sean, biapar, Willr, Ingo, swaiba, simon_w

ModelAdmin show all results on first load


Reply


8 Posts   6734 Views

Avatar
CodeGuerrilla

Community Member, 105 Posts

7 January 2010 at 2:13pm

Was wondering if it is possible to show the results of a search (like show everything) when you first click on a ModelAdmin tab instead of having to do a search first?

Avatar
UncleCheese

Forum Moderator, 4096 Posts

7 January 2010 at 2:32pm

Join the club.

It's a huge criticism of ModelAdmin, and personally I can't for the life of me figure out why they built it that way. Somewhere around the forums you'll find a Javascript hack that I use to force a list view by default. If you can't find it let me know and I'll dig it up.

Avatar
CodeGuerrilla

Community Member, 105 Posts

7 January 2010 at 3:22pm

Hey UncleCheese thanks for the response :)

I found the following but still doesn't really provide an answer :

[url]http://www.silverstripe.org/general-questions/show/255859#post255859[/url]

[url]http://www.silverstripe.org/customising-the-cms/show/262049#post262049[/url]

Ingo Mentions

It uses DataObject::$default_sort. You can overload ModelAdmin->getResultsTable() and ModelAdmin->getCustomQuery() for any custom sorting.

And

You can overload the right template by adding a new Layout template called RegionAdmin_right.ss (see ModelAdmin_right.ss for clues on the necessary markup)

But I guess with out subclassing and overloading most of model admin this would be a real pain.

So if you could dig up that JS hack would be greatly appreciated!

Avatar
CodeGuerrilla

Community Member, 105 Posts

11 January 2010 at 2:30pm

Edited: 13/01/2010 5:03pm

Any luck finding the JS hack UncleCheese?

Edit: Anyone?????

Avatar
CodeGuerrilla

Community Member, 105 Posts

29 January 2010 at 5:44pm

Edited: 02/02/2010 9:02pm

Yes hacky but at least it loads some results when you first go to your ModelAdmin tab anyone has a better way please let me know

ProductAdmin.php

class ProductAdmin extends ModelAdmin {

...

function init()
{
   parent::init();
   
   Requirements::javascript('site/javascript/ProductAdmin.js');
}
}

ProductAdmin.js

(function($) {
$(document).ready(function() {
   $('#Form_SearchForm_Product').submit();
})
})(jQuery);

Note: the above form id passed to the jQuery selector will changed based on what you called your extended ModelAdmin class

Avatar
timwjohn

Community Member, 98 Posts

21 March 2010 at 11:23am

Edited: 21/03/2010 11:25am

And to trigger an empty search for each tab when clicked add this to CG's function for each managed model:

   $('a[href$=#Form_Product]').click(function() {
      $('#Form_SearchForm_Product').submit();
   });

Again, replacing Product with your models class name.

The combobox version would just need some tweaking.

Avatar
liece

Community Member, 9 Posts

12 April 2011 at 9:10am

Thanks!

That worked perfectly.

Avatar
Shadlan

Community Member, 2 Posts

14 December 2011 at 7:41am

For those of you that are using a Select instead of tabs, you can also try this JQuery solution:

$('#ModelClassSelector select').change(function () {
$('#SearchForm_holder div.tab:visible form[id^=Form_SearchForm]').submit();
});