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   6669 Views

Avatar
CodeGuerrilla

7 January 2010 at 2:13pm Community Member, 105 Posts

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

7 January 2010 at 2:32pm 4085 Posts

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

7 January 2010 at 3:22pm Community Member, 105 Posts

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

11 January 2010 at 2:30pm (Last edited: 13 January 2010 5:03pm), Community Member, 105 Posts

Any luck finding the JS hack UncleCheese?

Edit: Anyone?????

Avatar
CodeGuerrilla

29 January 2010 at 5:44pm (Last edited: 2 February 2010 9:02pm), Community Member, 105 Posts

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

21 March 2010 at 11:23am (Last edited: 21 March 2010 11:25am), Community Member, 98 Posts

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

12 April 2011 at 9:10am Community Member, 9 Posts

Thanks!

That worked perfectly.

Avatar
Shadlan

14 December 2011 at 7:41am Community Member, 2 Posts

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();
});