source: MDService2/trunk/MDService2/WebContent/scripts/mdservice_helpers.js @ 1077

Last change on this file since 1077 was 1077, checked in by gaba, 13 years ago

trac 87

File size: 6.0 KB
Line 
1
2
3function handleUIBlock (elems) 
4{
5       
6//      $('#left-menu').addClass('ui-accordion ui-widget ui-helper-reset ui-accordion-icons'); 
7        $(elems).addClass('ui-helper-reset ui-corner-all');
8        $(elems).children('.header').addClass('ui-widget-header ui-state-default ui-corner-top');
9        $(elems).children('.content').addClass('ui-widget-content ui-corner-bottom');
10/*      $(elems).children('.header').click(function() {
11                $(this).next().toggle('fast');
12                return false;
13        }).next().hide();
14        */
15        $(elems).children('.header').append('<span class="cmd cmd-collapse cmd_down" > </span>');
16        $(elems).find('.cmd-collapse').click(function(event) {
17                        $(this).closest('.header').next().toggle('fast');
18                        $(this).toggleClass('cmd_down cmd_up');
19                        return false;
20                });
21       
22        $(elems).each(function(i) {
23                if ($(this).hasClass('init-show'))  {           
24                        $(this).children('.content').show();
25                        $(this).find('.cmd-collapse').toggleClass('cmd_down cmd_up');           
26                }
27                if ($(this).parent().hasClass('cmds-ui-closable'))  {           
28                        $(this).children('.header').append('<span class="cmd cmd_close" > </span>');
29                        $(this).find('.cmd_close').click(function(event) {
30                                        $(this).closest('.header').parent().parent('.cmds-ui-closable').remove();       
31                                });
32                } 
33        });
34}
35
36
37function addPaging (elem) 
38{
39       
40        var header = $(elem).children('.header');
41        var content = $(elem).children('.content');
42       
43        var pagingSize = 10;
44        var startItem = $(header).attr('start-item');
45        var countItems = $(header).attr('max-value'); //$(content).find('tr').size;
46        var maximumItems = $(header).attr('maximum-items');
47       
48        if (maximumItems < countItems) {
49                maximumItems = countItems;
50        } 
51
52        var paging = '<span class="label" >from:</span><span><input type="text" class="value start-item paging-input">' +
53        '</input></span>' +
54        '<span class="label" >max:</span><span><input type="text" class="value maximum-items paging-input" ></input></span>' +
55  '<span class="cmd cmd_reload" />' +
56        '<span class="cmd cmd_prev">'+
57        //'<xsl:choose>' +
58        //      '<xsl:when test="$startItem = '1'">' +
59        //              '<xsl:attribute name="disabled">disabled</xsl:attribute>' +
60        //      '</xsl:when>' +
61        //'</xsl:choose>' +
62        '</span>' +
63        '<span class="cmd cmd_next">' + 
64        //'<xsl:choose>' +
65        //      '<xsl:when test="$maximumItems &gt; numberOfRecords or $maximumItems = numberOfRecords">' +
66        //              '<xsl:attribute name="disabled">disabled</xsl:attribute>' +
67        //      '</xsl:when>' +
68        //      '</xsl:choose>' +
69        '</span>';
70       
71        $(header).append(paging);
72        $(header).find('.start-item').attr("value",startItem);
73        $(header).find('.maximum-items').attr("value",maximumItems);
74       
75        $(header).find('.cmd_reload').click(function(){
76                reloadPage($(this).closest('.cmds-ui-block'));
77                return false;
78        });
79       
80        $(header).find('.cmd_next').click(function(){
81                pageNext(this, 1);
82                return false;
83        });
84        $(header).find('.cmd_prev').click(function(){
85                pageNext(this, -1);
86                return false;
87        });     
88
89}
90
91function pageNext (cmd, pages) 
92{
93        //TODO
94        var numItems = $(cmd).closest('.header').attr('max-value'); //$(cmd).closest('.cmds-ui-block').children('.content').find('tr').length;
95        var startItem = $(cmd).closest('.header').attr('start-item');
96        var maximumItems = $(cmd).closest('.header').attr('maximum-items');
97       
98        var page_record_count = 10;
99        var start = 0;
100        var num = 0;
101        //var max_value = $('#' + qid ).find('.result-header').attr("max_value");
102
103        if (maximumItems > page_record_count) {
104                maximumItems = page_record_count;
105        }
106        if ((numItems >= maximumItems) && (pages > 0) ){
107                start = parseInt(startItem) + pages * page_record_count ;
108        } 
109        if ((pages < 0) && ((parseInt(startItem) + pages * parseInt(page_record_count) + parseInt(page_record_count) - 1) >= 1)) {
110                start = parseInt(startItem) + pages * parseInt(page_record_count);
111        }
112       
113        if (start > 0){
114                num = maximumItems;
115               
116                if (num > 0){
117                        $(cmd).closest('.header').find('.start-item').attr('value',start);
118                        $(cmd).closest('.header').find('.maximum-items').attr('value',num);
119                       
120                        reloadPage($(cmd).closest('.cmds-ui-block'));
121                }
122        }
123
124        /*
125        if (parseInt(startItem) + pages * page_record_count >= 1){
126                start = parseInt(startItem) + pages * page_record_count ;
127        } else  {
128                if (parseInt(startItem) + pages * page_record_count + page_record_count - 1 >= 1){
129                        start = 1 ;
130                }
131        }
132       
133        if (start > 0){
134                if (start + page_record_count - 1 <= numItems) {
135                        num = page_record_count;
136                } else if (start <= numItems){
137                        num = numItems - start;
138                }
139       
140                if (num > 0){
141                        $(cmd).closest('.header').find('.start-item').attr('value',start);
142                        $(cmd).closest('.header').find('.maximum-items').attr('value',num);
143                       
144                        reloadPage($(cmd).closest('.cmds-ui-block'));
145                }
146        }
147        */
148}
149
150function reloadPage (detail) {
151       
152        var uri;
153       
154        if ($(detail).parent().get(0).localName == "body") {
155                uri = document.URL;
156        } else {
157                uri = $(detail).parents('.number').children('a').attr('href');
158        }
159
160       
161        var startItem;
162        var maximumItems;
163       
164        //from paging attributes
165        startItem = $(detail).find('.header').find('.start-item').val();
166        maximumItems = $(detail).find('.header').find('.maximum-items').val();
167       
168
169        // create the uri params
170       
171        if (uri.indexOf("startItem=") > 0){
172                 temp = uri.substring(uri.indexOf("startItem="));
173                 len = temp.split("&")[0].length;
174                 uri = uri.replace(uri.substr(uri.indexOf("&startItem="),len+1),'');
175        }
176       
177        if (uri.indexOf("maximumItems=") > 0){
178                 temp = uri.substring(uri.indexOf("maximumItems="));
179                 len = temp.split("&")[0].length;
180                 uri = uri.replace(uri.substr(uri.indexOf("&maximumItems="),len+1),'');
181        } 
182       
183        uri = uri + "&startItem=" + startItem + "&maximumItems=" + maximumItems;
184
185        if ($(detail).parent().get(0).localName == "body") {
186                location.href = uri;
187//              window.open(uri);
188        } else {       
189                //remove old content
190                $(detail).children().remove();
191               
192                //load new content
193                $(detail).load(uri, function(event) {
194                        handleUIBlock($(this).children('.cmds-ui-block'));
195                        addPaging($(this).children('.cmds-ui-block'));
196                });
197        }
198}
199
200
201if(typeof String.prototype.trim !== 'function') {   String.prototype.trim = function() {     return this.replace(/^\s+|\s+$/g, '');    } }
Note: See TracBrowser for help on using the repository browser.