datacite/bracco

View on GitHub
app/components/doi-title.js

Summary

Maintainability
C
1 day
Test Coverage
import Component from '@ember/component';
import ISO6391 from 'iso-639-1';
import { computed } from '@ember/object';
import LanguageComputedMixin from '../mixins/language-computed';

const titleTypes = ['AlternativeTitle', 'Subtitle', 'TranslatedTitle', 'Other'];
const languageList = ISO6391.getAllNames();

export default Component.extend(LanguageComputedMixin, {
  titleTypes,
  languageList,
  languages: languageList,

  actions: {
    updateTitle(value) {
      this.fragment.set('title', value);
    },
    deleteTitle() {
      this.model.get('titles').removeObject(this.fragment);
    },
    selectTitleType(titleType) {
      this.fragment.set('titleType', titleType);
    },
    searchLanguage(query) {
      let languages = languageList.filter(function (language) {
        return language.toLowerCase().startsWith(query.toLowerCase());
      });
      this.set('languages', languages);
    },
    selectLanguage(language) {
      if (language) {
        this.fragment.set('lang', ISO6391.getCode(language));
      } else {
        this.fragment.set('lang', null);
      }
      this.set('languages', languageList);
    }
  }
});