Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
edx-platform
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
edx-platform
Commits
7c647e5e
Commit
7c647e5e
authored
Jun 21, 2016
by
Diana Huang
Committed by
GitHub
Jun 21, 2016
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #12767 from edx/diana/topic-truncation
Change topic name truncation.
parents
037e27b2
d75e6335
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
9 additions
and
50 deletions
+9
-50
common/static/coffee/spec/discussion/view/discussion_topic_menu_view_spec.js
+2
-23
common/static/coffee/src/discussion/views/discussion_topic_menu_view.js
+7
-27
No files found.
common/static/coffee/spec/discussion/view/discussion_topic_menu_view_spec.js
View file @
7c647e5e
...
...
@@ -9,7 +9,7 @@
},
options
);
this
.
view
=
new
DiscussionTopicMenuView
(
options
);
this
.
view
.
render
().
appendTo
(
'#fixture-element'
);
this
.
defaultTextWidth
=
this
.
view
.
getNameWidth
(
this
.
completeText
)
;
this
.
defaultTextWidth
=
this
.
completeText
.
length
;
};
this
.
openMenu
=
function
()
{
...
...
@@ -67,31 +67,10 @@
expect
(
this
.
completeText
).
toEqual
(
dropdownText
);
});
it
(
'completely show just sub-category'
,
function
()
{
var
dropdownText
;
this
.
createTopicView
();
this
.
view
.
maxNameWidth
=
this
.
defaultTextWidth
-
10
;
this
.
view
.
$el
.
find
(
'a.topic-title'
).
first
().
click
();
dropdownText
=
this
.
view
.
$el
.
find
(
'.js-selected-topic'
).
text
();
expect
(
dropdownText
.
indexOf
(
'…'
)).
toEqual
(
0
);
expect
(
dropdownText
).
toContain
(
this
.
selectedOptionText
);
});
it
(
'partially show sub-category'
,
function
()
{
this
.
createTopicView
();
var
parentWidth
=
this
.
view
.
getNameWidth
(
this
.
parentCategoryText
),
dropdownText
;
this
.
view
.
maxNameWidth
=
this
.
defaultTextWidth
-
parentWidth
;
this
.
view
.
$el
.
find
(
'a.topic-title'
).
first
().
click
();
dropdownText
=
this
.
view
.
$el
.
find
(
'.js-selected-topic'
).
text
();
expect
(
dropdownText
.
indexOf
(
'…'
)).
toEqual
(
0
);
expect
(
dropdownText
.
lastIndexOf
(
'…'
)).
toBeGreaterThan
(
0
);
});
it
(
'broken span doesn
\'
t occur'
,
function
()
{
var
dropdownText
;
this
.
createTopicView
();
this
.
view
.
maxNameWidth
=
this
.
view
.
getNameWidth
(
this
.
selectedOptionText
)
+
100
;
this
.
view
.
maxNameWidth
=
this
.
selectedOptionText
.
length
+
100
;
this
.
view
.
$el
.
find
(
'a.topic-title'
).
first
().
click
();
dropdownText
=
this
.
view
.
$el
.
find
(
'.js-selected-topic'
).
text
();
expect
(
dropdownText
.
indexOf
(
'/ span>'
)).
toEqual
(
-
1
);
...
...
common/static/coffee/src/discussion/views/discussion_topic_menu_view.js
View file @
7c647e5e
...
...
@@ -16,7 +16,7 @@
initialize
:
function
(
options
)
{
this
.
course_settings
=
options
.
course_settings
;
this
.
currentTopicId
=
options
.
topicId
;
this
.
maxNameWidth
=
100
;
this
.
maxNameWidth
=
26
;
_
.
bindAll
(
this
,
'toggleTopicDropdown'
,
'handleTopicEvent'
,
'hideTopicDropdown'
,
'ignoreClick'
);
...
...
@@ -88,9 +88,6 @@
this
.
dropdownButton
.
addClass
(
'dropped'
);
this
.
topicMenu
.
show
();
$
(
document
.
body
).
on
(
'click.topicMenu'
,
this
.
hideTopicDropdown
);
// Set here because 1) the window might get resized and things could
// change and 2) can't set in initialize because the button is hidden
this
.
maxNameWidth
=
this
.
dropdownButton
.
width
()
-
40
;
return
this
;
},
...
...
@@ -147,28 +144,11 @@
},
// @TODO move into utils.coffee
getNameWidth
:
function
(
name
)
{
var
test
=
$
(
'<div>'
),
width
;
test
.
css
({
'font-size'
:
this
.
dropdownButton
.
css
(
'font-size'
),
'opacity'
:
0
,
'position'
:
'absolute'
,
'left'
:
-
1000
,
'top'
:
-
1000
}).
html
(
name
).
appendTo
(
document
.
body
);
width
=
test
.
width
();
test
.
remove
();
return
width
;
},
// @TODO move into utils.coffee
fitName
:
function
(
name
)
{
var
ellipsisText
=
gettext
(
'…'
),
partialName
,
path
,
rawName
;
if
(
this
.
getNameWidth
(
name
)
<
this
.
maxNameWidth
)
{
if
(
name
.
length
<
this
.
maxNameWidth
)
{
return
name
;
}
else
{
path
=
_
.
map
(
name
.
split
(
'/'
),
function
(
item
){
...
...
@@ -176,15 +156,15 @@
});
while
(
path
.
length
>
1
)
{
path
.
shift
();
partialName
=
ellipsisText
+
'
/ '
+
path
.
join
(
' /
'
);
if
(
this
.
getNameWidth
(
partialName
)
<
this
.
maxNameWidth
)
{
return
partialName
;
partialName
=
ellipsisText
+
'
/'
+
path
.
join
(
'/
'
);
if
(
partialName
.
length
>
this
.
maxNameWidth
)
{
return
partialName
;
}
}
rawName
=
path
[
0
];
name
=
ellipsisText
+
' / '
+
rawName
;
while
(
this
.
getNameWidth
(
name
)
>
this
.
maxNameWidth
)
{
rawName
=
rawName
.
slice
(
0
,
-
1
);
while
(
name
.
length
>
this
.
maxNameWidth
)
{
rawName
=
rawName
.
slice
(
0
,
this
.
maxNameWidth
);
name
=
ellipsisText
+
' / '
+
rawName
+
' '
+
ellipsisText
;
}
}
...
...
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