5656
5757    <!--  Thread Sorting Controls --> 
5858    <div  class =" thread-sort" a  href =" " @click.prevent =" setSortField()" a > by
59-       <select  v-model =" sortVal " name =" select-thread-sort" class =" select-clean" @change =" setSortField()" 
59+       <select  v-model =" sortField " name =" select-thread-sort" class =" select-clean" @change =" setSortField()" 
6060        <option  v-for =" item in sortItems" :key =" item.value" :value =" item.value" option >
6161      </select >
6262    </div >
@@ -253,31 +253,31 @@ export default {
253253    const  watchBoard  =  () =>  console .log (' watchBoard()'  
254254
255255    const  setSortField  =  newField  =>  { 
256-       //  Get/Set current  sort field 
257-       if  (! newField) { newField  =   v . sortVal  }  
258-       else  {  v . sortVal   =  newField }  
256+       //  Get/Set new  sort field 
257+       if  (newField) v . sortField   =  newField  
258+       else  newField  =   v . sortField  
259259      //  Convert desc query param to boolean 
260260      let  desc =  $route .query .desc  ===  ' false' ?  false  :  true  
261261      //  Sort Field hasn't changed just toggle desc 
262-       if  (newField ===  $route .query .field  ||  (! $route .query .desc  &&  desc)) { desc =  ! desc } 
262+       const  defaultField  =  newField ===  ' updated_at' &&  ! $route .query .field  
263+       if  (defaultField ||  newField ===  $route .query .field ) desc =  ! desc 
264+       else  desc =  true  //  Sort field changed, default to desc true 
263265      //  Update router to have new query params, watch on query params will update data 
264-       $router .replace ({ name:  $route .name , params:  $route .params , query:  { desc:  desc, field:  newField }}) 
266+       let  query =  { field:  newField } 
267+       if  (! desc) query .desc  =  false   //  only display desc in query string when false 
268+       if  (newField ===  ' updated_at' delete  query .field  //  do not display default field in qs 
269+       const  params  =  { ... $route .params , saveScrollPos:  true  } //  save scroll pos when sorting table 
270+       $router .replace ({ name:  $route .name , params:  params, query:  query }) 
265271    } 
266272
267273    const  getSortClass  =  field  =>  { 
268-       let  sortClass 
274+       let  sortClass  =   ' fa  '  
269275      const  desc  =  v .threadData .data .desc  
270276      const  curField  =  v .threadData .data .field  
271-       if  (field ===  ' updated_at' &&  ! curField &&  ! desc) { 
272-         sortClass =  ' fa fa-sort-down'  
273-       } 
274-       else  if  (curField ===  field &&  desc) { 
275-         sortClass =  ' fa fa-sort-down'  
276-       } 
277-       else  if  (curField ===  field &&  ! desc) { 
278-         sortClass =  ' fa fa-sort-up'  
279-       } 
280-       else  { sortClass =  ' fa fa-sort'  
277+       const  defaultField  =  field ===  ' updated_at' &&  ! curField 
278+       if  ((defaultField ||  curField ===  field) &&  desc) sortClass +=  ' fa-sort-down'  
279+       else  if  ((defaultField ||  curField ===  field) &&  ! desc) sortClass +=  ' fa-sort-up'  
280+       else  sortClass +=  ' fa-sort'  
281281      return  sortClass 
282282    } 
283283
@@ -300,7 +300,7 @@ export default {
300300      prefs:  preferences .data , 
301301      loggedIn:  auth .loggedIn , 
302302      showSetModerators:  true , 
303-       sortVal :  $route .params .field  ?  $route .params .field  :  ' updated_at'  
303+       sortField :  $route .params .field  ?  $route .params .field  :  ' updated_at'  
304304      sortItems:  [ 
305305        { 
306306          value:  ' updated_at'  
@@ -322,14 +322,13 @@ export default {
322322    }) 
323323
324324    /*  Watched Data */  
325-     watch (() =>  $route .query , () =>  v .threadData .mutate (fetchThreads )) //  Update boards  on login  
325+     watch (() =>  $route .query , () =>  v .threadData .mutate (processThreads )) //  Update on query change  
326326
327327    /*  Computed Data */  
328328    const  canCreate  =  computed (() =>  { return  true  }) 
329329    const  canSetModerator  =  computed (() =>  { return  true  }) 
330330
331331    return  { ... toRefs (v), canCreate, canSetModerator, loadEditor, watchBoard, setSortField, getSortClass, humanDate, decode, truncate } 
332- 
333332  } 
334333} 
335334script >
0 commit comments