Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
converse.js
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
nexedi
converse.js
Commits
2e07ec9f
Commit
2e07ec9f
authored
Aug 29, 2017
by
Weblate
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
da2502ca
c9913bf6
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
91 additions
and
64 deletions
+91
-64
CHANGES.md
CHANGES.md
+5
-2
spec/chatroom.js
spec/chatroom.js
+7
-12
src/converse-chatview.js
src/converse-chatview.js
+3
-2
src/converse-controlbox.js
src/converse-controlbox.js
+17
-5
src/converse-core.js
src/converse-core.js
+1
-0
src/converse-inverse.js
src/converse-inverse.js
+4
-4
src/converse-minimize.js
src/converse-minimize.js
+53
-25
src/converse-muc.js
src/converse-muc.js
+0
-13
src/converse-vcard.js
src/converse-vcard.js
+1
-1
No files found.
CHANGES.md
View file @
2e07ec9f
...
...
@@ -4,8 +4,11 @@
### Bugfixes
-
Various IE11 fixes.
-
Translations written as template literals
[
aren't parsed properly by xgettext
](
https://savannah.gnu.org/bugs/?50920
)
.
-
Fix regarding ChatRoomView.getDefaultNickName() and muc_nickname_from_jid
-
#907 Unnecessary login validation error when
`default_domain`
or
`locked_domain`
are set.
-
#908 Login form for inVerse is only 200px when
`allow_registration`
is set to
`false`
.
-
#909 Translations written as template literals
[
aren't parsed properly by xgettext
](
https://savannah.gnu.org/bugs/?50920
)
.
-
#911 Use
`getDefaultNickName`
consistently to allow better overrides via plugins.
-
#912
`maximize`
method in
`converse-minimize`
fails if the
`controlbox`
is not there.
## 3.2.0 (2017-08-09)
...
...
spec/chatroom.js
View file @
2e07ec9f
...
...
@@ -1643,9 +1643,11 @@
mock
.
initConverseWithPromises
(
null
,
[
'
rosterGroupsFetched
'
],
{},
function
(
done
,
_converse
)
{
test_utils
.
openChatRoom
(
_converse
,
'
lounge
'
,
'
localhost
'
,
'
dummy
'
);
var
view
=
_converse
.
chatboxviews
.
get
(
'
lounge@localhost
'
),
trimmed_chatboxes
=
_converse
.
minimized_chats
;
spyOn
(
view
,
'
minimize
'
).
and
.
callThrough
();
spyOn
(
view
,
'
maximize
'
).
and
.
callThrough
();
spyOn
(
_converse
,
'
emit
'
);
...
...
@@ -1659,18 +1661,11 @@
expect
(
view
.
minimize
).
toHaveBeenCalled
();
var
trimmedview
=
trimmed_chatboxes
.
get
(
view
.
model
.
get
(
'
id
'
));
trimmedview
.
$
(
"
a.restore-chat
"
).
click
();
test_utils
.
waitUntil
(
function
()
{
return
view
.
$el
.
is
(
'
:visible
'
);
},
300
)
.
then
(
function
()
{
expect
(
view
.
maximize
).
toHaveBeenCalled
();
expect
(
_converse
.
emit
).
toHaveBeenCalledWith
(
'
chatBoxMaximized
'
,
jasmine
.
any
(
Object
));
expect
(
view
.
$el
.
is
(
'
:visible
'
)).
toBeTruthy
();
expect
(
view
.
model
.
get
(
'
minimized
'
)).
toBeFalsy
();
expect
(
_converse
.
emit
.
calls
.
count
(),
3
);
done
();
});
expect
(
view
.
maximize
).
toHaveBeenCalled
();
expect
(
_converse
.
emit
).
toHaveBeenCalledWith
(
'
chatBoxMaximized
'
,
jasmine
.
any
(
Object
));
expect
(
view
.
model
.
get
(
'
minimized
'
)).
toBeFalsy
();
expect
(
_converse
.
emit
.
calls
.
count
(),
3
);
done
();
}));
it
(
"
can be closed again by clicking a DOM element with class 'close-chatbox-button'
"
,
...
...
src/converse-chatview.js
View file @
2e07ec9f
...
...
@@ -305,8 +305,9 @@
},
insertIntoDOM
()
{
/* This method gets overridden in src/converse-controlbox.js if
* the controlbox plugin is active.
/* This method gets overridden in src/converse-controlbox.js
* as well as src/converse-muc.js (if those plugins are
* enabled).
*/
const
container
=
document
.
querySelector
(
'
#conversejs
'
);
if
(
this
.
el
.
parentNode
!==
container
)
{
...
...
src/converse-controlbox.js
View file @
2e07ec9f
...
...
@@ -159,8 +159,12 @@
ChatBoxView
:
{
insertIntoDOM
()
{
const
{
_converse
}
=
this
.
__super__
;
this
.
$el
.
insertAfter
(
_converse
.
chatboxviews
.
get
(
"
controlbox
"
).
$el
);
const
view
=
this
.
__super__
.
_converse
.
chatboxviews
.
get
(
"
controlbox
"
);
if
(
view
)
{
view
.
el
.
insertAdjacentElement
(
'
afterend
'
,
this
.
el
)
}
else
{
this
.
__super__
.
insertIntoDOM
.
apply
(
this
,
arguments
);
}
return
this
;
}
}
...
...
@@ -204,8 +208,10 @@
},
initialize
()
{
_converse
.
controlboxtoggle
=
new
_converse
.
ControlBoxToggle
();
this
.
$el
.
insertAfter
(
_converse
.
controlboxtoggle
.
$el
);
if
(
_
.
isUndefined
(
_converse
.
controlboxtoggle
))
{
_converse
.
controlboxtoggle
=
new
_converse
.
ControlBoxToggle
();
this
.
$el
.
insertAfter
(
_converse
.
controlboxtoggle
.
$el
);
}
this
.
model
.
on
(
'
change:connected
'
,
this
.
onConnected
,
this
);
this
.
model
.
on
(
'
destroy
'
,
this
.
hide
,
this
);
this
.
model
.
on
(
'
hide
'
,
this
.
hide
,
this
);
...
...
@@ -405,6 +411,8 @@
},
authenticate
(
ev
)
{
/* Authenticate the user based on a form submission event.
*/
if
(
ev
&&
ev
.
preventDefault
)
{
ev
.
preventDefault
();
}
const
$form
=
$
(
ev
.
target
);
if
(
_converse
.
authentication
===
_converse
.
ANONYMOUS
)
{
...
...
@@ -418,10 +426,14 @@
let
jid
=
$jid_input
.
val
(),
errors
=
false
;
if
(
!
jid
||
_
.
filter
(
jid
.
split
(
'
@
'
)).
length
<
2
)
{
if
(
!
jid
||
(
!
_converse
.
locked_domain
&&
!
_converse
.
default_domain
&&
_
.
filter
(
jid
.
split
(
'
@
'
)).
length
<
2
))
{
errors
=
true
;
$jid_input
.
addClass
(
'
error
'
);
}
if
(
!
password
&&
_converse
.
authentication
!==
_converse
.
EXTERNAL
)
{
errors
=
true
;
$pw_input
.
addClass
(
'
error
'
);
...
...
src/converse-core.js
View file @
2e07ec9f
...
...
@@ -188,6 +188,7 @@
// Looks like _converse.initialized was called again without logging
// out or disconnecting in the previous session.
// This happens in tests. We therefore first clean up.
delete
_converse
.
controlboxtoggle
;
_converse
.
connection
.
reset
();
_converse
.
off
();
_converse
.
stopListening
();
...
...
src/converse-inverse.js
View file @
2e07ec9f
...
...
@@ -65,16 +65,16 @@
renderRegistrationPanel
()
{
this
.
__super__
.
renderRegistrationPanel
.
apply
(
this
,
arguments
);
const
el
=
document
.
getElementById
(
'
converse-register
'
);
el
.
parentNode
.
insertBefore
(
createBrandHeadingElement
(),
el
);
if
(
this
.
__super__
.
_converse
.
allow_registration
)
{
const
el
=
document
.
getElementById
(
'
converse-register
'
);
el
.
parentNode
.
insertBefore
(
createBrandHeadingElement
(),
el
);
}
return
this
;
},
renderLoginPanel
()
{
this
.
__super__
.
renderLoginPanel
.
apply
(
this
,
arguments
);
this
.
el
.
classList
.
add
(
"
fullscreen
"
);
const
el
=
document
.
getElementById
(
'
converse-login
'
);
el
.
parentNode
.
insertBefore
(
createBrandHeadingElement
(),
el
);
return
this
;
...
...
src/converse-minimize.js
View file @
2e07ec9f
...
...
@@ -13,9 +13,7 @@
"
tpl!toggle_chats
"
,
"
tpl!trimmed_chat
"
,
"
tpl!chats_panel
"
,
"
converse-chatview
"
,
"
converse-controlbox
"
,
"
converse-muc
"
"
converse-chatview
"
],
factory
);
}(
this
,
function
(
$
,
...
...
@@ -30,6 +28,20 @@
const
{
_
,
utils
,
Backbone
,
Promise
,
Strophe
,
b64_sha1
,
moment
}
=
converse
.
env
;
converse
.
plugins
.
add
(
'
converse-minimize
'
,
{
/* Optional dependencies are other plugins which might be
* overridden or relied upon, and therefore need to be loaded before
* this plugin. They are called "optional" because they might not be
* available, in which case any overrides applicable to them will be
* ignored.
*
* It's possible however to make optional dependencies non-optional.
* If the setting "strict_plugin_dependencies" is set to true,
* an error will be raised if the plugin is not found.
*
* NB: These plugins need to have already been loaded via require.js.
*/
optional_dependencies
:
[
"
converse-controlbox
"
,
"
converse-muc
"
],
overrides
:
{
// Overrides mentioned here will be picked up by converse.js's
// plugin architecture they will replace existing methods on the
...
...
@@ -127,12 +139,13 @@
maximize
()
{
// Restores a minimized chat box
const
{
_converse
}
=
this
.
__super__
;
this
.
$el
.
insertAfter
(
_converse
.
chatboxviews
.
get
(
"
controlbox
"
).
$el
);
this
.
insertIntoDOM
();
if
(
!
this
.
model
.
isScrolledUp
())
{
this
.
model
.
clearUnreadMsgCounter
();
}
this
.
show
();
_converse
.
emit
(
'
chatBoxMaximized
'
,
this
);
this
.
__super__
.
_converse
.
emit
(
'
chatBoxMaximized
'
,
this
);
return
this
;
},
...
...
@@ -177,11 +190,12 @@
const
html
=
this
.
__super__
.
generateHeadingHTML
.
apply
(
this
,
arguments
);
const
div
=
document
.
createElement
(
'
div
'
);
div
.
innerHTML
=
html
;
const
el
=
tpl_chatbox_minimize
(
{
info_minimize
:
__
(
'
Minimize this chat box
'
)}
);
const
button
=
div
.
querySelector
(
'
.close-chatbox-button
'
);
button
.
insertAdjacentHTML
(
'
afterend
'
,
el
);
button
.
insertAdjacentHTML
(
'
afterend
'
,
tpl_chatbox_minimize
({
'
info_minimize
'
:
__
(
'
Minimize this chat box
'
)
})
);
return
div
.
innerHTML
;
}
},
...
...
@@ -242,7 +256,7 @@
// fullscreen. In this case we don't trim.
return
;
}
_converse
.
api
.
waitUntil
(
'
chatBoxe
sInitialized
'
).
then
(()
=>
{
_converse
.
api
.
waitUntil
(
'
minimizedChat
sInitialized
'
).
then
(()
=>
{
const
$minimized
=
_
.
get
(
_converse
.
minimized_chats
,
'
$el
'
),
minimized_width
=
_
.
includes
(
this
.
model
.
pluck
(
'
minimized
'
),
true
)
?
$minimized
.
outerWidth
(
true
)
:
0
,
new_id
=
newchat
?
newchat
.
model
.
get
(
'
id
'
)
:
null
;
...
...
@@ -369,12 +383,27 @@
initialize
()
{
this
.
render
();
this
.
initToggle
();
this
.
addMultipleChats
(
this
.
model
.
where
({
'
minimized
'
:
true
}));
this
.
model
.
on
(
"
add
"
,
this
.
onChanged
,
this
);
this
.
model
.
on
(
"
destroy
"
,
this
.
removeChat
,
this
);
this
.
model
.
on
(
"
change:minimized
"
,
this
.
onChanged
,
this
);
this
.
model
.
on
(
'
change:num_unread
'
,
this
.
updateUnreadMessagesCounter
,
this
);
},
render
()
{
if
(
!
this
.
el
.
parentElement
)
{
this
.
el
.
innerHTML
=
tpl_chats_panel
();
_converse
.
chatboxviews
.
el
.
appendChild
(
this
.
el
);
}
if
(
this
.
keys
().
length
===
0
)
{
this
.
el
.
classList
.
add
(
'
hidden
'
);
}
else
if
(
this
.
keys
().
length
>
0
&&
!
this
.
$el
.
is
(
'
:visible
'
))
{
this
.
el
.
classList
.
remove
(
'
hidden
'
);
_converse
.
chatboxviews
.
trimChats
();
}
return
this
.
$el
;
},
tearDown
()
{
this
.
model
.
off
(
"
add
"
,
this
.
onChanged
);
this
.
model
.
off
(
"
destroy
"
,
this
.
removeChat
);
...
...
@@ -393,21 +422,6 @@
this
.
toggleview
.
model
.
fetch
();
},
render
()
{
if
(
!
this
.
el
.
parentElement
)
{
this
.
el
.
innerHTML
=
tpl_chats_panel
();
_converse
.
chatboxviews
.
el
.
appendChild
(
this
.
el
);
}
if
(
this
.
keys
().
length
===
0
)
{
this
.
el
.
classList
.
add
(
'
hidden
'
);
_converse
.
chatboxviews
.
trimChats
.
bind
(
_converse
.
chatboxviews
);
}
else
if
(
this
.
keys
().
length
>
0
&&
!
this
.
$el
.
is
(
'
:visible
'
))
{
this
.
el
.
classList
.
remove
(
'
hidden
'
);
_converse
.
chatboxviews
.
trimChats
();
}
return
this
.
$el
;
},
toggle
(
ev
)
{
if
(
ev
&&
ev
.
preventDefault
)
{
ev
.
preventDefault
();
}
this
.
toggleview
.
model
.
save
({
'
collapsed
'
:
!
this
.
toggleview
.
model
.
get
(
'
collapsed
'
)});
...
...
@@ -426,6 +440,20 @@
}
},
addMultipleChats
(
items
)
{
_
.
each
(
items
,
(
item
)
=>
{
const
existing
=
this
.
get
(
item
.
get
(
'
id
'
));
if
(
existing
&&
existing
.
$el
.
parent
().
length
!==
0
)
{
return
;
}
const
view
=
new
_converse
.
MinimizedChatBoxView
({
model
:
item
});
this
.
$
(
'
.minimized-chats-flyout
'
).
append
(
view
.
render
());
this
.
add
(
item
.
get
(
'
id
'
),
view
);
});
this
.
toggleview
.
model
.
set
({
'
num_minimized
'
:
this
.
keys
().
length
});
this
.
render
();
},
addChat
(
item
)
{
const
existing
=
this
.
get
(
item
.
get
(
'
id
'
));
if
(
existing
&&
existing
.
$el
.
parent
().
length
!==
0
)
{
...
...
src/converse-muc.js
View file @
2e07ec9f
...
...
@@ -525,19 +525,6 @@
return
this
;
},
insertIntoDOM
()
{
if
(
document
.
querySelector
(
'
body
'
).
contains
(
this
.
el
))
{
return
;
}
const
view
=
_converse
.
chatboxviews
.
get
(
"
controlbox
"
);
if
(
view
)
{
this
.
$el
.
insertAfter
(
view
.
$el
);
}
else
{
$
(
'
#conversejs
'
).
prepend
(
this
.
$el
);
}
return
this
;
},
generateHeadingHTML
()
{
/* Returns the heading HTML to be rendered.
*/
...
...
src/converse-vcard.js
View file @
2e07ec9f
...
...
@@ -71,7 +71,7 @@
};
_converse
.
onVCardError
=
function
(
jid
,
iq
,
errback
)
{
const
contact
=
_
converse
.
roster
.
get
(
jid
);
const
contact
=
_
.
get
(
_converse
.
roster
,
jid
);
if
(
contact
)
{
contact
.
save
({
'
vcard_updated
'
:
moment
().
format
()
});
}
...
...
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