WordPress.org

GlotPress

Changeset 710


Ignore:
Timestamp:
10/30/12 23:24:47 (5 years ago)
Author:
nbachiyski
Message:

Add per-profile settings.

Adds /profile where you can set number of items per page, default sort
by, and default sort order.

Props joostdevalk, fixes #14.

Location:
trunk
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/css/style.css

    r682 r710  
    590590    font-size: 0.85em; 
    591591} 
     592table.form-table th { 
     593    text-align: left; 
     594    vertical-align: text-top; 
     595} 
     596table.form-table th, table.form-table td { 
     597    padding: 10px 0 0 0; 
     598} 
  • trunk/gp-includes/meta.php

    r569 r710  
    1818function gp_update_meta( $object_id = 0, $meta_key, $meta_value, $type, $global = false ) { 
    1919    global $gpdb; 
     20 
    2021    if ( !is_numeric( $object_id ) || empty( $object_id ) && !$global ) { 
    2122        return false; 
  • trunk/gp-includes/router.php

    r659 r710  
    4545            'post:/login' => array('GP_Route_Login', 'login_post'), 
    4646            'get:/logout' => array('GP_Route_Login', 'logout'), 
     47             
     48            'get:/profile' => array('GP_Route_Profile', 'profile_get'), 
     49            'post:/profile' => array('GP_Route_Profile', 'profile_post'), 
    4750 
    4851            "get:/$project/import-originals" => array('GP_Route_Project', 'import_originals_get'), 
  • trunk/gp-includes/routes/translation.php

    r681 r710  
    6868            add_filter( 'gp_pagination', create_function( '$html', 'return "";' ) ); 
    6969        } 
     70 
     71        $per_page = GP::$user->current()->get_meta('per_page'); 
     72        if ( 0 == $per_page ) 
     73            $per_page = GP::$translation->per_page; 
     74        else 
     75            GP::$translation->per_page = $per_page; 
     76 
    7077        $translations = GP::$translation->for_translation( $project, $translation_set, $page, $filters, $sort ); 
    7178        $total_translations_count = GP::$translation->found_rows; 
    72         $per_page = GP::$translation->per_page; 
     79         
    7380        $can_edit = GP::$user->logged_in(); 
    7481        $can_write = $this->can( 'write', 'project', $project->id ); 
  • trunk/gp-includes/thing.php

    r704 r710  
    385385        if ( 'no-limit' == $per_page || 'no-limit' == $page ) return ''; 
    386386        $page = intval( $page )? intval( $page ) : 1; 
    387         return sprintf( "LIMIT %d OFFSET %d", $this->per_page, ($page-1)*$this->per_page ); 
     387        return sprintf( "LIMIT %d OFFSET %d", $per_page, ($page-1)*$per_page ); 
    388388    } 
    389389 
  • trunk/gp-includes/things/translation.php

    r639 r710  
    7373            'random' => 'o.priority DESC, RAND()', 'translation_date_added' => 't.date_added %s', 'original_date_added' => 'o.date_added %s', 
    7474            'references' => 'o.references' ); 
    75         $sort_by = gp_array_get( $sort_bys, gp_array_get( $sort, 'by' ), 'o.priority %1$s, o.date_added %1$s' ); 
     75 
     76        $default_sort = GP::$user->current()->get_meta('default_sort'); 
     77        if ( ! is_array($default_sort) ) { 
     78            $default_sort = array( 
     79                'by' => 'priority', 
     80                'how' => 'desc' 
     81            ); 
     82        }  
     83         
     84        $sort_by = gp_array_get( $sort_bys, gp_array_get( $sort, 'by' ),  gp_array_get( $sort_bys, $default_sort['by'] ) ); 
    7685        $sort_hows = array('asc' => 'ASC', 'desc' => 'DESC', ); 
    77         $sort_how = gp_array_get( $sort_hows, gp_array_get( $sort, 'how' ), 'DESC' ); 
     86        $sort_how = gp_array_get( $sort_hows, gp_array_get( $sort, 'how' ), gp_array_get( $sort_hows, $default_sort['how'] ) ); 
    7887 
    7988        $where = array(); 
     
    139148            $where = 'AND '.$where; 
    140149        } 
    141  
     150         
    142151        $join_where = implode( ' AND ', $join_where ); 
    143152        if ( $join_where ) { 
     
    146155 
    147156        $sql_sort = sprintf( $sort_by, $sort_how ); 
    148         $limit = $this->sql_limit_for_paging( $page ); 
     157 
     158        $limit = $this->sql_limit_for_paging( $page, $this->per_page ); 
     159         
    149160        $sql_for_translations = " 
    150161            SELECT SQL_CALC_FOUND_ROWS t.*, o.*, t.id as id, o.id as original_id, t.status as translation_status, o.status as original_status, t.date_added as translation_added, o.date_added as original_added 
  • trunk/gp-includes/things/user.php

    r509 r710  
    118118        } 
    119119 
    120         $key = gp_sanitize_meta_key( $key ); 
    121120        if ( !isset( $user->$key ) ) { 
    122121            return; 
  • trunk/gp-templates/header.php

    r682 r710  
    2424                $user = GP::$user->current(); 
    2525                 
    26                 printf( __('Hi, %s.'), $user->user_login ); 
     26                printf( __('Hi, %s.'), '<a href="'.gp_url( '/profile' ).'">'.$user->user_login.'</a>' ); 
    2727                ?> 
    2828                <a href="<?php echo gp_url('/logout')?>"><?php _e('Log out'); ?></a> 
  • trunk/gp-templates/translations.php

    r685 r710  
    9595        <dt><?php _e('By:'); ?></dt> 
    9696        <dd> 
    97         <?php echo gp_radio_buttons('sort[by]', 
     97        <?php  
     98        $default_sort = GP::$user->current()->get_meta('default_sort'); 
     99        if ( ! is_array($default_sort) ) { 
     100            $default_sort = array( 
     101                'by' => 'priority', 
     102                'how' => 'desc' 
     103            ); 
     104        }  
     105         
     106        echo gp_radio_buttons('sort[by]', 
    98107            array( 
    99108                'original_date_added' => __('Date added (original)'), 
     
    104113                'references' => __('Filename in source'), 
    105114                'random' => __('Random'), 
    106             ), gp_array_get( $sort, 'by', 'priority' ) ); 
     115            ), gp_array_get( $sort, 'by', $default_sort['by'] ) ); 
    107116        ?> 
    108117        </dd> 
    109         <dt><?php _e('How:'); ?></dt> 
     118        <dt><?php _e('Order:'); ?></dt> 
    110119        <dd> 
    111120        <?php echo gp_radio_buttons('sort[how]', 
     
    113122                'asc' => __('Ascending'), 
    114123                'desc' => __('Descending'), 
    115             ), gp_array_get( $sort, 'how', 'desc' ) ); 
     124            ), gp_array_get( $sort, 'how', $default_sort['how'] ) ); 
    116125        ?> 
    117126        </dd> 
Note: See TracChangeset for help on using the changeset viewer.