Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Jérome Perrin
gitlab-ce
Commits
fa325ce9
Commit
fa325ce9
authored
Oct 09, 2012
by
Dmitriy Zaporozhets
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #1597 from riyad/add-completion-for-all-emoji
Improve completion of emoji and team members
parents
a54a9018
37e579ce
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
60 additions
and
10 deletions
+60
-10
app/helpers/notes_helper.rb
app/helpers/notes_helper.rb
+6
-0
app/views/notes/_common_form.html.haml
app/views/notes/_common_form.html.haml
+43
-9
app/views/notes/_per_line_form.html.haml
app/views/notes/_per_line_form.html.haml
+1
-1
spec/helpers/notes_helper_spec.rb
spec/helpers/notes_helper_spec.rb
+10
-0
No files found.
app/helpers/notes_helper.rb
View file @
fa325ce9
...
...
@@ -14,4 +14,10 @@ module NotesHelper
"vote downvote"
end
end
def
emoji_for_completion
# should be an array of strings
# so to_s can be called, because it is sufficient and to_json is too slow
Emoji
::
NAMES
end
end
app/views/notes/_common_form.html.haml
View file @
fa325ce9
...
...
@@ -8,7 +8,7 @@
=
f
.
hidden_field
:noteable_id
=
f
.
hidden_field
:noteable_type
=
f
.
text_area
:note
,
size:
255
,
class:
'note-text'
=
f
.
text_area
:note
,
size:
255
,
class:
'note-text
gfm-input
'
#preview-note
.preview_note.hide
.hint
.right
Comments are parsed with
#{
link_to
"GitLab Flavored Markdown"
,
help_markdown_path
,
target:
'_blank'
}
.
...
...
@@ -39,12 +39,46 @@
:javascript
$
(
function
(){
var
names
=
#{
@project
.
users
.
pluck
(
:name
)
}
,
emoji
=
[
'
+1
'
,
'
-1
'
];
var
emoji
=
$
.
map
(
emoji
,
function
(
value
,
i
)
{
return
{
key
:
value
+
'
:
'
,
name
:
value
}});
$
(
'
#note_note, .per_line_form .line-note-text
'
).
atWho
(
'
@
'
,
{
data
:
names
}).
atWho
(
'
:
'
,
{
data
:
emoji
,
tpl
:
"
<li data-value='${key}'>${name}
#{
escape_javascript
image_tag
(
'
emoji
/
$
{
name
}.
png
', :size => '
20
x20
'
)
}
</li>
"
});
// init auto-completion of team members
var
membersUrl
=
"
#{
root_url
}
/api/v2/projects/
#{
@project
.
code
}
/members
"
;
var
membersParams
=
{
private_token
:
"
#{
current_user
.
authentication_token
}
"
,
page
:
1
,
};
var
membersData
=
[];
$
(
'
.gfm-input
'
).
atWho
(
'
@
'
,
function
(
query
,
callback
)
{
(
function
getMoreMembers
()
{
$
.
getJSON
(
membersUrl
,
membersParams
).
success
(
function
(
members
)
{
// pick the data we need
var
newMembersData
=
$
.
map
(
members
,
function
(
member
)
{
return
member
.
name
});
// add the new page of data to the rest
$
.
merge
(
membersData
,
newMembersData
);
// show the pop-up with a copy of the current data
callback
(
membersData
.
slice
(
0
));
// are we past the last page?
if
(
newMembersData
.
length
==
0
)
{
// set static data and stop callbacks
$
(
'
.gfm-input
'
).
atWho
(
'
@
'
,
{
data
:
membersData
,
callback
:
null
});
}
else
{
// get next page
getMoreMembers
();
}
});
// next request will get the next page
membersParams
.
page
+=
1
;
})();
});
// init auto-completion of emoji
var
emoji
=
#{
emoji_for_completion
}
;
// convert the list so that the items have the right format for completion
emoji
=
$
.
map
(
emoji
,
function
(
value
)
{
return
{
key
:
value
+
'
:
'
,
name
:
value
}});
$
(
'
.gfm-input
'
).
atWho
(
'
:
'
,
{
data
:
emoji
,
tpl
:
"
<li data-value='${key}'>${name}
#{
escape_javascript
image_tag
(
'
emoji
/
$
{
name
}.
png
', :size => '
20
x20
'
)
}
</li>
"
});
});
app/views/notes/_per_line_form.html.haml
View file @
fa325ce9
...
...
@@ -13,7 +13,7 @@
=
f
.
hidden_field
:noteable_id
=
f
.
hidden_field
:noteable_type
=
f
.
hidden_field
:line_code
=
f
.
text_area
:note
,
size:
255
,
class:
'line-note-text'
=
f
.
text_area
:note
,
size:
255
,
class:
'line-note-text
gfm-input
'
.note_actions
.buttons
=
f
.
submit
'Add note'
,
class:
"btn save-btn submit_note submit_inline_note"
,
id:
"submit_note"
...
...
spec/helpers/notes_helper_spec.rb
0 → 100644
View file @
fa325ce9
require
'spec_helper'
describe
NotesHelper
do
describe
"#emoji_for_completion"
do
it
"should be an Array of Strings"
do
emoji_for_completion
.
should
be_a
(
Array
)
emoji_for_completion
.
each
{
|
emoji
|
emoji
.
should
be_a
(
String
)
}
end
end
end
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment