author | ymh <ymh.work@gmail.com> |
Mon, 06 Feb 2017 15:22:39 +0100 | |
changeset 500 | 4f507ba2bb4c |
parent 492 | acecbffac2c4 |
permissions | -rw-r--r-- |
134
c06d08c8a1b8
add bnf resolver in common addon + applications
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
1 |
import Ember from 'ember'; |
c06d08c8a1b8
add bnf resolver in common addon + applications
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
2 |
import * as constants from 'corpus-common-addon/utils/constants'; |
c06d08c8a1b8
add bnf resolver in common addon + applications
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
3 |
import layout from '../templates/components/doc-language'; |
c06d08c8a1b8
add bnf resolver in common addon + applications
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
4 |
|
c06d08c8a1b8
add bnf resolver in common addon + applications
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
5 |
export default Ember.Component.extend({ |
429
4a0fc5c5f420
put language node names in doc-language component
ymh <ymh.work@gmail.com>
parents:
394
diff
changeset
|
6 |
layout: layout, |
4a0fc5c5f420
put language node names in doc-language component
ymh <ymh.work@gmail.com>
parents:
394
diff
changeset
|
7 |
tagName: 'span', |
492
acecbffac2c4
on notice display add external link to subject, locations, and languages, correct #0025938
ymh <ymh.work@gmail.com>
parents:
429
diff
changeset
|
8 |
displayUrlLink: false, |
429
4a0fc5c5f420
put language node names in doc-language component
ymh <ymh.work@gmail.com>
parents:
394
diff
changeset
|
9 |
|
4a0fc5c5f420
put language node names in doc-language component
ymh <ymh.work@gmail.com>
parents:
394
diff
changeset
|
10 |
lexvoResolver: Ember.inject.service(), |
134
c06d08c8a1b8
add bnf resolver in common addon + applications
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
11 |
|
429
4a0fc5c5f420
put language node names in doc-language component
ymh <ymh.work@gmail.com>
parents:
394
diff
changeset
|
12 |
_resolveLexvoIds: Ember.on('init', Ember.observer('url', function () { |
4a0fc5c5f420
put language node names in doc-language component
ymh <ymh.work@gmail.com>
parents:
394
diff
changeset
|
13 |
this.get('lexvoResolver').getName(this.get('url')).then(function (str) { |
4a0fc5c5f420
put language node names in doc-language component
ymh <ymh.work@gmail.com>
parents:
394
diff
changeset
|
14 |
if (!(this.get('isDestroyed') || this.get('isDestroying'))) { |
4a0fc5c5f420
put language node names in doc-language component
ymh <ymh.work@gmail.com>
parents:
394
diff
changeset
|
15 |
this.set('resolvedName', str); |
4a0fc5c5f420
put language node names in doc-language component
ymh <ymh.work@gmail.com>
parents:
394
diff
changeset
|
16 |
} |
4a0fc5c5f420
put language node names in doc-language component
ymh <ymh.work@gmail.com>
parents:
394
diff
changeset
|
17 |
}.bind(this)); |
4a0fc5c5f420
put language node names in doc-language component
ymh <ymh.work@gmail.com>
parents:
394
diff
changeset
|
18 |
})), |
134
c06d08c8a1b8
add bnf resolver in common addon + applications
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
19 |
|
429
4a0fc5c5f420
put language node names in doc-language component
ymh <ymh.work@gmail.com>
parents:
394
diff
changeset
|
20 |
code: Ember.computed('url', function () { |
4a0fc5c5f420
put language node names in doc-language component
ymh <ymh.work@gmail.com>
parents:
394
diff
changeset
|
21 |
const rawLanguage = this.get('url'); |
4a0fc5c5f420
put language node names in doc-language component
ymh <ymh.work@gmail.com>
parents:
394
diff
changeset
|
22 |
|
4a0fc5c5f420
put language node names in doc-language component
ymh <ymh.work@gmail.com>
parents:
394
diff
changeset
|
23 |
if (this.get('isLanguageNode')) { |
4a0fc5c5f420
put language node names in doc-language component
ymh <ymh.work@gmail.com>
parents:
394
diff
changeset
|
24 |
return constants.LANGUAGES_NODES[rawLanguage]; |
4a0fc5c5f420
put language node names in doc-language component
ymh <ymh.work@gmail.com>
parents:
394
diff
changeset
|
25 |
} |
134
c06d08c8a1b8
add bnf resolver in common addon + applications
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
26 |
|
429
4a0fc5c5f420
put language node names in doc-language component
ymh <ymh.work@gmail.com>
parents:
394
diff
changeset
|
27 |
if (rawLanguage && rawLanguage.startsWith(constants.LEXVO_BASE_URL)) { |
4a0fc5c5f420
put language node names in doc-language component
ymh <ymh.work@gmail.com>
parents:
394
diff
changeset
|
28 |
return rawLanguage.substr(constants.LEXVO_BASE_URL.length); |
4a0fc5c5f420
put language node names in doc-language component
ymh <ymh.work@gmail.com>
parents:
394
diff
changeset
|
29 |
} |
4a0fc5c5f420
put language node names in doc-language component
ymh <ymh.work@gmail.com>
parents:
394
diff
changeset
|
30 |
|
4a0fc5c5f420
put language node names in doc-language component
ymh <ymh.work@gmail.com>
parents:
394
diff
changeset
|
31 |
return rawLanguage; |
4a0fc5c5f420
put language node names in doc-language component
ymh <ymh.work@gmail.com>
parents:
394
diff
changeset
|
32 |
}), |
4a0fc5c5f420
put language node names in doc-language component
ymh <ymh.work@gmail.com>
parents:
394
diff
changeset
|
33 |
isLanguageLink: Ember.computed.match('url', /^http\:\/\//), |
4a0fc5c5f420
put language node names in doc-language component
ymh <ymh.work@gmail.com>
parents:
394
diff
changeset
|
34 |
isLanguageNode: Ember.computed('url', function () { |
4a0fc5c5f420
put language node names in doc-language component
ymh <ymh.work@gmail.com>
parents:
394
diff
changeset
|
35 |
return this.get('url') in constants.LANGUAGES_NODES; |
4a0fc5c5f420
put language node names in doc-language component
ymh <ymh.work@gmail.com>
parents:
394
diff
changeset
|
36 |
}) |
134
c06d08c8a1b8
add bnf resolver in common addon + applications
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
37 |
|
c06d08c8a1b8
add bnf resolver in common addon + applications
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
38 |
}); |