@@ -213,18 +213,27 @@ function CContactsView()
213213 }
214214 } , this ) ;
215215
216- this . sortBy = ko . observable ( Enums . ContactSortField . Name ) ; // Email: 2, Frequency: 3, Name: 1
217- this . sortOrder = ko . observable ( Enums . SortOrder . Asc ) ; // Asc: 0, Desc: 1
216+ this . bSortEnabled = Settings . ContactsSortBy && Settings . ContactsSortBy . Allow
217+ && Settings . ContactsSortBy . DisplayOptions && Settings . ContactsSortBy . DisplayOptions . length > 0 ;
218+
219+ // Had to set it here because in Setting.init not all Enums are defined
220+ Settings . ContactsSortBy . DefaultSortBy = Enums . ContactSortField [ Settings . ContactsSortBy . DefaultSortBy ] ;
221+ Settings . ContactsSortBy . DefaultSortOrder = Enums . SortOrder [ Settings . ContactsSortBy . DefaultSortOrder ] ;
222+
223+ this . sortBy = ko . observable ( Settings . ContactsSortBy . DefaultSortBy ) ;
224+ this . sortOrder = ko . observable ( Settings . ContactsSortBy . DefaultSortOrder ) ;
218225
219226 this . aSortList = [ ] ;
220- _ . each ( Enums . ContactSortField , function ( iValue , sName , oItem ) {
221- this . aSortList . push ( {
222- sText : TextUtils . i18n ( '%MODULENAME%/SORT_OPTION_' + sName . toUpperCase ( ) ) ,
223- sSortBy : iValue ,
224- // sortOrder: ko.observable(Enums.SortOrder.Asc),
225- // selected: ko.observable(sName === this.sSortBy)
226- } ) ;
227- } . bind ( this ) ) ;
227+ if ( this . bSortEnabled ) {
228+ _ . each ( Enums . ContactSortField , function ( iValue , sName ) {
229+ if ( Settings . ContactsSortBy . DisplayOptions . indexOf ( sName ) >= 0 ) {
230+ this . aSortList . push ( {
231+ sText : TextUtils . i18n ( '%MODULENAME%/SORT_OPTION_' + sName . toUpperCase ( ) ) ,
232+ sSortBy : iValue
233+ } ) ;
234+ }
235+ } . bind ( this ) ) ;
236+ }
228237
229238 this . isSearchFocused = ko . observable ( false ) ;
230239 this . searchInput = ko . observable ( '' ) ;
@@ -414,7 +423,7 @@ CContactsView.prototype.executeSort = function (sValue)
414423 if ( sCurrentSort === sValue ) {
415424 this . sortOrder ( this . sortOrder ( ) === Enums . SortOrder . Asc ? Enums . SortOrder . Desc : Enums . SortOrder . Asc ) ; // Asc: 0, Desc: 1
416425 } else {
417- this . sortOrder ( Enums . SortOrder . Asc ) ;
426+ this . sortOrder ( Enums . SortOrder [ Settings . ContactsSortBy . DefaultSortOrder ] ) ;
418427 }
419428
420429 this . requestContactList ( ) ;
@@ -1095,7 +1104,6 @@ CContactsView.prototype.requestContactList = function ()
10951104 Ajax . send ( 'GetContacts' , {
10961105 'Offset' : ( this . currentPage ( ) - 1 ) * Settings . ContactsPerPage ,
10971106 'Limit' : Settings . ContactsPerPage ,
1098- // 'SortField': Enums.ContactSortField.Name,
10991107 'SortField' : this . sortBy ( ) ,
11001108 'SortOrder' : this . sortOrder ( ) ,
11011109 'Search' : this . search ( ) ,
0 commit comments