diff --git a/apps/common/main/lib/component/ListView.js b/apps/common/main/lib/component/ListView.js index e1a565af6..080d6e15f 100644 --- a/apps/common/main/lib/component/ListView.js +++ b/apps/common/main/lib/component/ListView.js @@ -67,11 +67,15 @@ define([ this.trigger('items:reset', this); }, - onAddItem: function(record, store, opts) { - var view = new Common.UI.DataViewItem({ + createNewItem: function(record) { + return new Common.UI.DataViewItem({ template: this.itemTemplate, model: record }); + }, + + onAddItem: function(record, store, opts) { + var view = this.createNewItem(record); if (!this.innerEl) this.innerEl = $(this.el).find('.inner'); diff --git a/apps/spreadsheeteditor/main/app/view/SortDialog.js b/apps/spreadsheeteditor/main/app/view/SortDialog.js index f3d67c442..8a9199929 100644 --- a/apps/spreadsheeteditor/main/app/view/SortDialog.js +++ b/apps/spreadsheeteditor/main/app/view/SortDialog.js @@ -49,7 +49,29 @@ define([ 'text!spreadsheeteditor/main/app/template/SortDialog.template', SSE.Views = SSE.Views || {}; + var _CustomItem = Common.UI.DataViewItem.extend({ + initialize : function(options) { + Common.UI.BaseView.prototype.initialize.call(this, options); + + var me = this; + + me.template = me.options.template || me.template; + + me.listenTo(me.model, 'change:sort', function() { + me.render(); + me.trigger('change', me, me.model); + }); + me.listenTo(me.model, 'change:selected', function() { + var el = me.$el || $(me.el); + el.toggleClass('selected', me.model.get('selected') && me.model.get('allowSelected')); + me.onSelectChange(); + }); + me.listenTo(me.model, 'remove', me.remove); + } + }); + SSE.Views.SortDialog = Common.Views.AdvancedSettingsWindow.extend(_.extend({ + options: { alias: 'SortDialog', contentWidth: 500, @@ -94,9 +116,10 @@ define([ 'text!spreadsheeteditor/main/app/template/SortDialog.template', el: $('#sort-dialog-list', this.$window), store: new Common.UI.DataViewStore(), emptyText: '', + enableKeyEvents: false, template: _.template(['
'].join('')), itemTemplate: _.template([ - '
', + '
', '
', '
', '<% if (sort==Asc.c_oAscSortOptions.ByColorFill || sort==Asc.c_oAscSortOptions.ByColorFont) { %>', @@ -108,6 +131,12 @@ define([ 'text!spreadsheeteditor/main/app/template/SortDialog.template', '
' ].join('')) }); + this.sortList.createNewItem = function(record) { + return new _CustomItem({ + template: this.itemTemplate, + model: record + }); + }; this.sortList.on('item:select', _.bind(this.onSelectLevel, this)) .on('item:keydown', _.bind(this.onKeyDown, this)); @@ -170,8 +199,9 @@ define([ 'text!spreadsheeteditor/main/app/template/SortDialog.template', // get name from props this.column_data = []; - var values = props.asc_getSortList(); - for (var i=0; i