• 
      

    Make the expiration controls on the API tokens config page nicer.

    Review Request #12670 — Created Oct. 5, 2022 and submitted

    Information

    Review Board
    release-5.0.x

    Reviewers

    This change offers several improvements to the expiration controls on the
    API tokens config page:
    - Users can edit the expiration of expired tokens.
    - Users can set the specific time of the expiration.
    - Users can set the expiration to a past date/time.

    With this, the API tokens config page offers the same flexibility for editing
    expiration dates as the API.

    This change also resets the expired_notification_sent flag in a token's
    extra_data field whenever a token's expiration is updated, so that users can
    get notified again if they set a new expiration date on already expired tokens.

    • Ran JS unit tests.
    • Ran ./reviewboard/webapi/tests/test_api_token.py
    • Manually tested the expiration controls with various combinations of
      starting states, ending states, and with the other controls on the page.
    Summary ID
    Improve expiration date and time controls on the API tokens config page.
    2856e1c74e0a25cd93dc0069a30a72d7da6123a9

    Description From Last Updated

    Can you update the description to talk about the changes to the browser compatibility list?

    chipx86chipx86

    Let's put an Oxford Comma after description and change that to "expiration date and time".

    chipx86chipx86

    For chaining, the preferred format would be: this._$datePicker = $(dedent` ... `) .prepend(this.options.descriptorText); Though if we're looking to build this …

    chipx86chipx86

    We probably don't need to worry about changes here. This is important for transpiling code, but the usage of datetime-local …

    chipx86chipx86

    I think what Christian meant was: this._$datePicker = $( '<span class="rb-c-date-inline-editor__picker">' ) We also don't need the closing </span> here.

    daviddavid

    No need for dedent here, since there's only one line. You can simply have a string on the next line.

    chipx86chipx86

    This will be 5.0.2 now.

    chipx86chipx86

    Same here.

    daviddavid

    No need for dedent here.

    chipx86chipx86

    For repeat index lookups, let's assign to a variable. Helps group together related assertions, and reduces visual noise.

    chipx86chipx86
    chipx86
    1. 
        
    2. Show all issues

      Can you update the description to talk about the changes to the browser compatibility list?

    3. Show all issues

      Let's put an Oxford Comma after description and change that to "expiration date and time".

    4. reviewboard/static/rb/js/ui/views/inlineEditorView.es6.js (Diff revision 1)
       
       
       
       
       
       
      Show all issues

      For chaining, the preferred format would be:

      this._$datePicker =
          $(dedent`
              ...
          `)
          .prepend(this.options.descriptorText);
      

      Though if we're looking to build this and put something in it at the same time, we should probably just use a template, or build the DOM elements incrementally (since we have to find the input, we might as well do the latter).

    5. 
        
    maubin
    david
    1. Ship It!
    2. 
        
    maubin
    maubin
    david
    1. Ship It!
    2. 
        
    chipx86
    1. Looks really good! These changes are small.

    2. .browserslistrc (Diff revision 4)
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
      Show all issues

      We probably don't need to worry about changes here. This is important for transpiling code, but the usage of datetime-local doesn't really impact that. It's true that datetime-local may not work on older browsers, but that's probably okay. People who need to be on older browsers that need to edit this can put in a date manually, if needed.

    3. Show all issues

      No need for dedent here, since there's only one line. You can simply have a string on the next line.

    4. Show all issues

      This will be 5.0.2 now.

    5. Show all issues

      No need for dedent here.

    6. Show all issues

      For repeat index lookups, let's assign to a variable. Helps group together related assertions, and reduces visual noise.

    7. 
        
    maubin
    david
    1. 
        
    2. Show all issues

      I think what Christian meant was:

      this._$datePicker = $(
          '<span class="rb-c-date-inline-editor__picker">'
      )
      

      We also don't need the closing </span> here.

    3. Show all issues

      Same here.

    4. 
        
    maubin
    chipx86
    1. Ship It!
    2. 
        
    maubin
    Review request changed
    Status:
    Completed
    Change Summary:
    Pushed to release-5.0.x (bab0401)