1+
2+ // overridden to fix https://github.com/ColdTrick/widget_manager/issues/62
3+ elgg . provide ( "elgg.widget_manager" ) ;
4+
5+ // add a custom case-insensitive Contains function for widget filter (jQuery > 1.3)
6+ jQuery . expr [ ':' ] . Contains = function ( a , i , m ) {
7+ return jQuery ( a ) . text ( ) . toUpperCase ( ) . indexOf ( m [ 3 ] . toUpperCase ( ) ) >= 0 ;
8+ } ;
9+
10+ elgg . widget_manager . widgets_search = function ( q ) {
11+ if ( q === "" ) {
12+ $ ( "#widget_manager_widgets_select .widget_manager_widgets_lightbox_wrapper" ) . show ( ) ;
13+ } else {
14+ $ ( "#widget_manager_widgets_select .widget_manager_widgets_lightbox_wrapper" ) . hide ( ) ;
15+ $ ( "#widget_manager_widgets_select .widget_manager_widgets_lightbox_wrapper:Contains('" + q + "')" ) . show ( ) ;
16+ }
17+ } ;
18+
19+ elgg . widget_manager . widget_add_init = function ( ) {
20+ $ ( document ) . ajaxSuccess ( function ( e , xhr , settings ) {
21+ if ( settings . url == elgg . normalize_url ( '/action/widgets/add' ) ) {
22+ // move new widget to a new position (after fixed widgets) if needed
23+ if ( $ ( this ) . find ( '.elgg-widgets > .elgg-state-fixed' ) . size ( ) > 0 ) {
24+ $widget = $ ( this ) . find ( '.elgg-module-widget:first' ) ;
25+ $widget . insertAfter ( $ ( this ) . find ( '.elgg-state-fixed:last' ) ) ;
26+
27+ // first item is the recently moved widget, because fixed widgets are not part of the sortable
28+ var index = $ ( this ) . find ( '.elgg-module-widget' ) . index ( $widget ) ;
29+ var guidString = $widget . attr ( 'id' ) ;
30+ guidString = guidString . substr ( guidString . indexOf ( 'elgg-widget-' ) + "elgg-widget-" . length ) ;
31+
32+ elgg . action ( 'widgets/move' , {
33+ data : {
34+ widget_guid : guidString ,
35+ column : 1 ,
36+ position : index
37+ }
38+ } ) ;
39+ }
40+ }
41+ } ) ;
42+ } ;
43+
44+ elgg . register_hook_handler ( 'init' , 'system' , elgg . widget_manager . widget_add_init ) ;
0 commit comments