3 window._w.newsletters = {
11 onTemplateReady : function( template, event, eventData )
13 _w.newsletters.ti = _t[template];
15 _w.newsletters.initGrids();
18 if (null == App.API.taskContract('gridSystemNewsletter'))
21 'gridSystemNewsletter', 'Newsletter', 'Newsletter.Grid', null,
22 {}, _w.newsletters.loadNewsletterGrid, _w.taskContractError
27 _w.newsletters.loadNewsletterGrid( null, {}, {} );
31 onTemplatePublished : function( template, event, eventData )
33 $(".gridNewsletterFilter").keypress(function (evt) {
34 var charCode = evt.charCode || evt.keyCode;
35 if (charCode == 13) { //Enter key's keycode
36 $('#btnNewsletterSearch').click();
40 _w.newsletters.ti = _t[template];
43 $('#btnNewsletterAdd').click(function() {
44 window.location.hash = '/newsletterview?id=0';
46 $('#btnNewsletterClearSearch').click(_w.newsletters.clearNewsletterGridContext);
47 $('#btnNewsletterSearch').click(_w.newsletters.searchNewsletterGrid);
51 initGrids : function()
54 _w.newsletters.ti.hydrate({
56 'gridNewsletterTitle': 'Manage newsletters',
57 'gridNewsletterColumnHeaders': {
58 constructor: 'GridColumnHeader',
61 id: 'gridNewsletterColumn_Subject',
64 id: 'gridNewsletterOrder_SubjectAsc',
65 bind: $.proxy(_w.newsletters.orderNewsletterGrid, this, 'newsletter.subject', 'ASC')
68 id: 'gridNewsletterOrder_SubjectDesc',
69 bind: $.proxy(_w.newsletters.orderNewsletterGrid, this, 'newsletter.subject', 'DESC')
73 id: 'gridNewsletterColumn_Created',
76 id: 'gridNewsletterOrder_CreatedAsc',
77 bind: $.proxy(_w.newsletters.orderNewsletterGrid, this, 'newsletter.created', 'ASC')
80 id: 'gridNewsletterOrder_CreatedDesc',
81 bind: $.proxy(_w.newsletters.orderNewsletterGrid, this, 'newsletter.created', 'DESC')
85 id: 'gridNewsletterColumn_SentTo',
88 id: 'gridNewsletterOrder_SentToAsc',
89 bind: $.proxy(_w.newsletters.orderNewsletterGrid, this, 'newsletter.sentTo', 'ASC')
92 id: 'gridNewsletterOrder_SentToDesc',
93 bind: $.proxy(_w.newsletters.orderNewsletterGrid, this, 'newsletter.sentTo', 'DESC')
97 id: 'gridNewsletterColumn_Status',
100 id: 'gridNewsletterOrder_StatusAsc',
101 bind: $.proxy(_w.newsletters.orderNewsletterGrid, this, 'newsletter.jobState', 'ASC')
104 id: 'gridNewsletterOrder_StatusDesc',
105 bind: $.proxy(_w.newsletters.orderNewsletterGrid, this, 'newsletter.jobState', 'DESC')
110 'gridNewsletterColumnFilters': {
111 constructor: 'GridColumnFilter',
114 id: 'gridNewsletterFilter_Subject',
115 context: 'gridNewsletterFilter'
118 id: 'gridNewsletterFilter_Created',
119 context: 'gridNewsletterFilter'
122 id: 'gridNewsletterFilter_SentTo',
123 context: 'gridNewsletterFilter'
126 id: 'gridNewsletterFilter_Status',
127 context: 'gridNewsletterFilter'
131 'gridNewsletterRowRepeater': {},
132 'gridNewsletterPager': {}
137 loadNewsletterGrid : function( contract, data, options )
140 'gridSystemNewsletter', data, options,
141 _w.newsletters._onNewsletterGridDataReceived, _w.taskExecError
145 pageNewsletterGrid : function( page )
147 _w.newsletters.loadNewsletterGrid( {}, {"Grid":{"Page":page}} );
150 clearNewsletterGridContext : function()
152 $('.gridNewsletterContext').val('');
153 $('.gridNewsletterFilter').val('');
154 _w.newsletters.searchNewsletterGrid();
157 searchNewsletterGrid : function()
163 filter = _w.filterIfnotEmpty(filter, 'gridNewsletterFilter_Subject', 'newsletter.subject');
164 filter = _w.filterIfnotEmpty(filter, 'gridNewsletterFilter_Created', 'newsletter.created');
165 filter = _w.filterIfnotEmpty(filter, 'gridNewsletterFilter_Status', 'newsletter.jobState');
166 filter = _w.filterIfnotEmpty(filter, 'gridNewsletterFilter_SentTo', 'newsletter.sentTo');
167 var request = {"Grid":{
169 "Filter": filter.filters
171 _w.newsletters.loadNewsletterGrid( null, request, {} );
174 _onNewsletterGridDataReceived : function( response )
176 _w.newsletters.ti.hydrateParam('gridNewsletterRowRepeater', {});
177 _w.populateFilters(response.Data.Meta.Filters, {
178 'newsletter.subject' : 'gridNewsletterFilter_Subject',
179 'newsletter.created' : 'gridNewsletterFilter_Created',
180 'newsletter.jobState' : 'gridNewsletterFilter_Status',
181 'newsletter.sentTo' : 'gridNewsletterFilter_SentTo'
184 for (var i = 0; i < response.Data.DataSet.length; i++)
186 var row = response.Data.DataSet[i];
188 url: 'newsletterview',
193 'Subject' : row.subject,
194 'Created' : row.created,
195 'SentTo' : row.sentTo,
196 'Status' : row.jobState
200 _w.newsletters.ti.hydrateParam('gridNewsletterRowRepeater', {
201 constructor : 'GridDataRow',
204 response.Data.Meta.itemName = 'newsletterPager';
205 response.Data.Meta.bind = _w.newsletters.pageNewsletterGrid;
206 _w.newsletters.ti.hydrateParam('gridNewsletterPager', {
207 constructor : 'GridPager',
208 items : [response.Data.Meta]
212 orderNewsletterGrid : function(field, direction)
215 order[field] = direction;
216 _w.newsletters.loadNewsletterGrid( {}, {"Grid":{"Page": 1, "OrderBy": order}} );