hummingbird-me/kitsu-web

View on GitHub
app/templates/components/library-entry/rating-button.hbs

Summary

Maintainability
Test Coverage
{{! Rating Popup }}
{{#if showTooltip}}
  <div>
    {{#ember-tether
      class="rating-tether"
      target=(concat ".rating-button-" guid)
      attachment=(or attachment "bottom middle")
      targetAttachment=(or targetAttachment "top middle")
      targetOffset="-15% 0"
      constraints=(array (hash
        to="scrollParent"
        attachment="together"
      ))
    }}
      <div class="rating-hover-wrapper {{session.account.ratingSystem}}">
        {{#if (or (not session.hasUser) (eq session.account.ratingSystem "simple"))}} {{! Simple }}
          {{library-entry/simple-rating onClick=(action "ratingSelected")}}
        {{else if (eq session.account.ratingSystem "regular")}} {{! Regular }}
          {{library-entry/regular-rating rating=rating onClick=(action "ratingSelected")}}
        {{else}} {{! Advanced }}
          {{library-entry/advanced-rating rating=rating onClick=(action "ratingSelected")}}
        {{/if}}
      </div>
    {{/ember-tether}}
  </div>
{{/if}}

{{! Dropdown/Button }}
{{#if showDropdown}}
  {{#basic-dropdown horizontalPosition="right" as |dd|}}
    <div class={{concat "btn-group dropdown rating-button-dropdown rating-button-" guid}} data-ebd-id="{{dd.uniqueId}}-trigger">
      {{#if simpleDropdown}}
        <span {{action dd.actions.toggle}}>
          {{yield}}
        </span>
      {{else}}
        <button class="btn btn-secondary" disabled={{disabled}} {{action "toggleTether"}}>
          {{! Simple State }}
          {{#if session.account.isSimpleRating}}
            <span class="rating-simple">
              {{library-entry/readonly-rating rating=rating width="24" height="24" tagName=""}}
            </span>
          {{! Regular/Advanced State }}
          {{else}}
            <span class="rating-advanced">
              {{library-entry/readonly-rating rating=rating tagName=""}}
            </span>
          {{/if}}
        </button>
        {{#unless disabled}}
          <button class="btn btn-secondary dropdown-toggle dropdown-toggle-split" onclick={{dd.actions.toggle}}>
            {{! Dropdown Caret }}
          </button>
        {{/unless}}
      {{/if}}
    </div>

    {{#dd.content class="rating-button-dropdown-menu"}}
      <ul class="list-unstyled">
        <li class="dropdown-item" {{action (queue
          (action dd.actions.toggle)
          (action "toggleTether"))}}>
          {{t "library-entry.state.change-rating"}}
        </li>
        <li class="dropdown-divider"></li>
        <li class="dropdown-item" {{action (queue
          (action dd.actions.toggle)
          (action "ratingSelected" null))}}>
          {{t "library-entry.state.remove-rating"}}
        </li>
      </ul>
    {{/dd.content}}
  {{/basic-dropdown}}
{{else}}
  <span class="{{class}} rating-button rating-button-{{guid}}" {{action "toggleTether"}}>
    {{yield}}
  </span>
{{/if}}