-
-
Notifications
You must be signed in to change notification settings - Fork 5.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Emoji Autocomplete #3433
Emoji Autocomplete #3433
Changes from 3 commits
fe4be89
cf877ae
27c89bd
1f77796
859c052
d466f99
96d2f7f
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Large diffs are not rendered by default.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
.tribute-container { | ||
box-shadow: 0px 1px 3px 1px #c7c7c7; | ||
ul { | ||
background: #ffffff; | ||
} | ||
li { | ||
padding: 8px 12px; | ||
border-bottom: 1px solid #dcdcdc; | ||
img { | ||
display: inline-block; | ||
vertical-align: middle; | ||
width: 28px; | ||
height: 28px; | ||
margin-right: 5px; | ||
} | ||
span.fullname { | ||
font-weight: normal; | ||
font-size: 0.8rem; | ||
margin-left: 3px; | ||
} | ||
} | ||
li.highlight, li:hover { | ||
background: #2185D0; | ||
color: #ffffff; | ||
} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,4 @@ | ||
@import "_tribute"; | ||
@import "_emojify"; | ||
@import "_base"; | ||
@import "_markdown"; | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -89,6 +89,37 @@ | |
issuesTribute.attach(document.getElementById('content')) | ||
</script> | ||
{{end}} | ||
<script> | ||
var emojiTribute = new Tribute({ | ||
trigger: ':', | ||
values: function (text, cb) { | ||
var array = emojify.emojiNames; | ||
var data = []; | ||
var counter = 0; | ||
for(var j=0; j<array.length; j++) { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. You can just use There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I guess there should be 6 elements in the data array, which is not always the case in a loop to 5 because of the if condition. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yes, this loop is used to limit the amount of results to a maximum of 6 - but traverses all emojiNames using |
||
if(array[j].indexOf(text) !== -1) { | ||
data.push(array[j]); | ||
counter++; | ||
if(counter > 5) { | ||
break; | ||
} | ||
} | ||
} | ||
cb(data); | ||
}, | ||
lookup: function (item) { | ||
return item; | ||
}, | ||
selectTemplate: function (item) { | ||
if (typeof item === 'undefinied') return null; | ||
return ':' + item.original + ':'; | ||
}, | ||
menuItemTemplate: function (item) { | ||
return '<img class="emoji" src="{{AppSubUrl}}/vendor/plugins/emojify/images/' + item.original + '.png"/>' + item.original; | ||
} | ||
}); | ||
emojiTribute.attach(document.getElementById('content')) | ||
</script> | ||
{{end}} | ||
<script src="{{AppSubUrl}}/vendor/plugins/autolink/autolink.js"></script> | ||
<script src="{{AppSubUrl}}/vendor/plugins/emojify/emojify.min.js"></script> | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there a reason to not put this in
/public/js/index.js
?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@kolaente it can't be put (at least currently) in index.js as it has server-side condition check if this should be included so such refactoring would probably be better done in different PR
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I tried putting it to
/public/js/index.js
, and limited the initialization of tribute to a condition, wether an element with idcontent
is available.But I think it is much cleaner, if the emojiTribute is only initialized when the page requiring it is loaded.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
oh ok I see...