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
02faa555
Commit
02faa555
authored
Mar 08, 2016
by
JC Brand
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Recreate dist files. fixes #443
parent
550f7827
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
169 additions
and
67 deletions
+169
-67
dist/converse-no-dependencies.js
dist/converse-no-dependencies.js
+84
-33
dist/converse.js
dist/converse.js
+84
-33
src/converse-notification.js
src/converse-notification.js
+1
-1
No files found.
dist/converse-no-dependencies.js
View file @
02faa555
...
@@ -3274,6 +3274,9 @@ define("polyfill", function(){});
...
@@ -3274,6 +3274,9 @@ define("polyfill", function(){});
},
attributes
));
},
attributes
));
this
.
on
(
'
destroy
'
,
function
()
{
this
.
removeFromRoster
();
}.
bind
(
this
));
this
.
on
(
'
destroy
'
,
function
()
{
this
.
removeFromRoster
();
}.
bind
(
this
));
this
.
on
(
'
change:chat_status
'
,
function
(
item
)
{
converse
.
emit
(
'
contactStatusChanged
'
,
item
.
attributes
);
});
},
},
subscribe
:
function
(
message
)
{
subscribe
:
function
(
message
)
{
...
@@ -3947,7 +3950,7 @@ define("polyfill", function(){});
...
@@ -3947,7 +3950,7 @@ define("polyfill", function(){});
}.
bind
(
this
),
}.
bind
(
this
),
function
()
{
function
()
{
this
.
clearSpinner
();
this
.
clearSpinner
();
converse
.
log
(
"
Error while trying to fetch archived messages
"
,
"
error
"
);
converse
.
log
(
"
Error
or timeout
while trying to fetch archived messages
"
,
"
error
"
);
}.
bind
(
this
)
}.
bind
(
this
)
);
);
},
},
...
@@ -4505,7 +4508,6 @@ define("polyfill", function(){});
...
@@ -4505,7 +4508,6 @@ define("polyfill", function(){});
this
.
$el
.
find
(
'
div.chat-event
'
).
remove
();
this
.
$el
.
find
(
'
div.chat-event
'
).
remove
();
}
}
}
}
converse
.
emit
(
'
contactStatusChanged
'
,
item
.
attributes
);
},
},
onStatusChanged
:
function
(
item
)
{
onStatusChanged
:
function
(
item
)
{
...
@@ -9128,17 +9130,14 @@ return parser;
...
@@ -9128,17 +9130,14 @@ return parser;
onChatRoomMessage
:
function
(
message
)
{
onChatRoomMessage
:
function
(
message
)
{
var
$message
=
$
(
message
),
var
$message
=
$
(
message
),
archive_id
=
$message
.
find
(
'
result[xmlns="
'
+
Strophe
.
NS
.
MAM
+
'
"]
'
).
attr
(
'
id
'
),
archive_id
=
$message
.
find
(
'
result[xmlns="
'
+
Strophe
.
NS
.
MAM
+
'
"]
'
).
attr
(
'
id
'
),
delayed
=
$message
.
find
(
'
delay
'
).
length
>
0
,
$forwarded
=
$message
.
find
(
'
forwarded
'
),
$forwarded
=
$message
.
find
(
'
forwarded
'
),
$delay
;
$delay
;
if
(
$forwarded
.
length
)
{
if
(
$forwarded
.
length
)
{
$message
=
$forwarded
.
children
(
'
message
'
);
$message
=
$forwarded
.
children
(
'
message
'
);
$delay
=
$forwarded
.
children
(
'
delay
'
);
$delay
=
$forwarded
.
children
(
'
delay
'
);
delayed
=
$delay
.
length
>
0
;
}
}
var
body
=
$message
.
children
(
'
body
'
).
text
(),
var
jid
=
$message
.
attr
(
'
from
'
),
jid
=
$message
.
attr
(
'
from
'
),
msgid
=
$message
.
attr
(
'
id
'
),
msgid
=
$message
.
attr
(
'
id
'
),
resource
=
Strophe
.
getResourceFromJid
(
jid
),
resource
=
Strophe
.
getResourceFromJid
(
jid
),
sender
=
resource
&&
Strophe
.
unescapeNode
(
resource
)
||
''
,
sender
=
resource
&&
Strophe
.
unescapeNode
(
resource
)
||
''
,
...
@@ -9160,9 +9159,6 @@ return parser;
...
@@ -9160,9 +9159,6 @@ return parser;
return
true
;
return
true
;
}
}
this
.
model
.
createMessage
(
$message
,
$delay
,
archive_id
);
this
.
model
.
createMessage
(
$message
,
$delay
,
archive_id
);
if
(
!
delayed
&&
sender
!==
this
.
model
.
get
(
'
nick
'
)
&&
(
new
RegExp
(
"
\\
b
"
+
this
.
model
.
get
(
'
nick
'
)
+
"
\\
b
"
)).
test
(
body
))
{
converse
.
notifyOfNewMessage
();
}
if
(
sender
!==
this
.
model
.
get
(
'
nick
'
))
{
if
(
sender
!==
this
.
model
.
get
(
'
nick
'
))
{
// We only emit an event if it's not our own message
// We only emit an event if it's not our own message
converse
.
emit
(
'
message
'
,
message
);
converse
.
emit
(
'
message
'
,
message
);
...
@@ -10861,11 +10857,33 @@ return parser;
...
@@ -10861,11 +10857,33 @@ return parser;
);
);
};
};
converse
.
shouldNotifyOfNewMessage
=
function
(
$message
)
{
converse
.
shouldNotifyOfGroupMessage
=
function
(
$message
)
{
/* Is this a group message worthy of notification?
*/
var
jid
=
$message
.
attr
(
'
from
'
),
resource
=
Strophe
.
getResourceFromJid
(
jid
),
sender
=
resource
&&
Strophe
.
unescapeNode
(
resource
)
||
''
;
if
(
sender
===
''
||
$message
.
find
(
'
delay
'
).
length
>
0
)
{
return
false
;
}
var
room
=
converse
.
chatboxes
.
get
(
Strophe
.
getBareJidFromJid
(
jid
));
var
body
=
$message
.
children
(
'
body
'
).
text
();
if
(
sender
===
room
.
get
(
'
nick
'
)
||
!
(
new
RegExp
(
"
\\
b
"
+
room
.
get
(
'
nick
'
)
+
"
\\
b
"
)).
test
(
body
))
{
return
false
;
}
return
true
;
};
converse
.
shouldNotifyOfMessage
=
function
(
$message
)
{
/* Is this a message worthy of notification?
*/
var
$forwarded
=
$message
.
find
(
'
forwarded
'
);
var
$forwarded
=
$message
.
find
(
'
forwarded
'
);
if
(
$forwarded
.
length
)
{
if
(
$forwarded
.
length
)
{
return
false
;
return
false
;
}
}
if
(
$message
.
attr
(
'
type
'
)
===
'
groupchat
'
)
{
return
converse
.
shouldNotifyOfGroupMessage
(
$message
);
}
var
is_me
=
Strophe
.
getBareJidFromJid
(
$message
.
attr
(
'
from
'
))
===
converse
.
bare_jid
;
var
is_me
=
Strophe
.
getBareJidFromJid
(
$message
.
attr
(
'
from
'
))
===
converse
.
bare_jid
;
return
!
converse
.
isOnlyChatStateNotification
(
$message
)
&&
!
is_me
;
return
!
converse
.
isOnlyChatStateNotification
(
$message
)
&&
!
is_me
;
};
};
...
@@ -10888,9 +10906,34 @@ return parser;
...
@@ -10888,9 +10906,34 @@ return parser;
}
}
};
};
converse
.
showChatStateNotification
=
function
(
evt
,
contact
)
{
converse
.
areDesktopNotificationsEnabled
=
function
(
ignore_blur
)
{
/* Show an HTML5 notification indicating that a contact changed
var
enabled
=
supports_html5_notification
&&
* their chat state.
converse
.
show_desktop_notifications
&&
Notification
.
permission
===
"
granted
"
;
if
(
ignore_blur
)
{
return
enabled
;
}
else
{
return
enabled
&&
converse
.
windowState
===
'
blur
'
;
}
};
converse
.
showMessageNotification
=
function
(
$message
)
{
/* Shows an HTML5 Notification to indicate that a new chat
* message was received.
*/
var
contact_jid
=
Strophe
.
getBareJidFromJid
(
$message
.
attr
(
'
from
'
));
var
roster_item
=
converse
.
roster
.
get
(
contact_jid
);
var
n
=
new
Notification
(
__
(
___
(
"
%1$s says
"
),
roster_item
.
get
(
'
fullname
'
)),
{
body
:
$message
.
children
(
'
body
'
).
text
(),
lang
:
converse
.
i18n
.
locale_data
.
converse
[
""
].
lang
,
icon
:
converse
.
notification_icon
});
setTimeout
(
n
.
close
.
bind
(
n
),
5000
);
};
converse
.
showChatStateNotification
=
function
(
contact
)
{
/* Creates an HTML5 Notification to inform of a change in a
* contact's chat state.
*/
*/
var
chat_state
=
contact
.
chat_status
,
var
chat_state
=
contact
.
chat_status
,
message
=
null
;
message
=
null
;
...
@@ -10914,40 +10957,48 @@ return parser;
...
@@ -10914,40 +10957,48 @@ return parser;
setTimeout
(
n
.
close
.
bind
(
n
),
5000
);
setTimeout
(
n
.
close
.
bind
(
n
),
5000
);
};
};
converse
.
showMessageNotification
=
function
(
evt
,
$message
)
{
converse
.
showContactRequestNotification
=
function
(
contact
)
{
/* Shows an HTML5 Notification to indicate that a new chat
var
n
=
new
Notification
(
contact
.
fullname
,
{
* message was received.
body
:
__
(
'
wants to be your contact
'
),
*/
if
(
!
supports_html5_notification
||
!
converse
.
show_desktop_notifications
||
converse
.
windowState
!==
'
blur
'
||
Notification
.
permission
!==
"
granted
"
)
{
return
;
}
var
contact_jid
=
Strophe
.
getBareJidFromJid
(
$message
.
attr
(
'
from
'
));
var
roster_item
=
converse
.
roster
.
get
(
contact_jid
);
var
n
=
new
Notification
(
__
(
___
(
"
%1$s says
"
),
roster_item
.
get
(
'
fullname
'
)),
{
body
:
$message
.
children
(
'
body
'
).
text
(),
lang
:
converse
.
i18n
.
locale_data
.
converse
[
""
].
lang
,
lang
:
converse
.
i18n
.
locale_data
.
converse
[
""
].
lang
,
icon
:
converse
.
notification_icon
icon
:
'
logo/conversejs.png
'
});
});
setTimeout
(
n
.
close
.
bind
(
n
),
5000
);
setTimeout
(
n
.
close
.
bind
(
n
),
5000
);
};
};
converse
.
notifyOfNewMessage
=
function
(
message
)
{
converse
.
handleChatStateNotification
=
function
(
evt
,
contact
)
{
/* Event handler for on('contactStatusChanged').
* Will show an HTML5 notification to indicate that the chat
* status has changed.
*/
if
(
converse
.
areDesktopNotificationsEnabled
())
{
converse
.
showChatStateNotification
(
contact
);
}
};
converse
.
handleMessageNotification
=
function
(
evt
,
message
)
{
/* Event handler for the on('message') event. Will call methods
/* Event handler for the on('message') event. Will call methods
* to play sounds and show HTML5 notifications.
* to play sounds and show HTML5 notifications.
*/
*/
var
$message
=
$
(
message
);
var
$message
=
$
(
message
);
if
(
!
converse
.
shouldNotifyOf
New
Message
(
$message
))
{
if
(
!
converse
.
shouldNotifyOfMessage
(
$message
))
{
return
false
;
return
false
;
}
}
converse
.
playSoundNotification
(
$message
);
converse
.
playSoundNotification
(
$message
);
converse
.
showMessageNotification
(
$message
);
if
(
converse
.
areDesktopNotificationsEnabled
())
{
converse
.
showMessageNotification
(
$message
);
}
};
converse
.
handleContactRequestNotification
=
function
(
evt
,
contact
)
{
if
(
converse
.
areDesktopNotificationsEnabled
(
true
))
{
converse
.
showContactRequestNotification
(
contact
);
}
};
};
converse
.
on
(
'
contactStatusChanged
'
,
converse
.
showChatStateNotification
);
converse
.
on
(
'
contactRequest
'
,
converse
.
handleContactRequestNotification
);
converse
.
on
(
'
message
'
,
converse
.
notifyOfNewMessage
);
converse
.
on
(
'
contactStatusChanged
'
,
converse
.
handleChatStateNotification
);
converse
.
on
(
'
message
'
,
converse
.
handleMessageNotification
);
}
}
});
});
}));
}));
...
...
dist/converse.js
View file @
02faa555
...
@@ -29121,6 +29121,9 @@ return Backbone.BrowserStorage;
...
@@ -29121,6 +29121,9 @@ return Backbone.BrowserStorage;
}, attributes));
}, attributes));
this.on('destroy', function () { this.removeFromRoster(); }.bind(this));
this.on('destroy', function () { this.removeFromRoster(); }.bind(this));
this.on('change:chat_status', function (item) {
converse.emit('contactStatusChanged', item.attributes);
});
},
},
subscribe: function (message) {
subscribe: function (message) {
...
@@ -29794,7 +29797,7 @@ return Backbone.BrowserStorage;
...
@@ -29794,7 +29797,7 @@ return Backbone.BrowserStorage;
}.bind(this),
}.bind(this),
function () {
function () {
this.clearSpinner();
this.clearSpinner();
converse.log("Error while trying to fetch archived messages", "error");
converse.log("Error
or timeout
while trying to fetch archived messages", "error");
}.bind(this)
}.bind(this)
);
);
},
},
...
@@ -30352,7 +30355,6 @@ return Backbone.BrowserStorage;
...
@@ -30352,7 +30355,6 @@ return Backbone.BrowserStorage;
this.$el.find('div.chat-event').remove();
this.$el.find('div.chat-event').remove();
}
}
}
}
converse.emit('contactStatusChanged', item.attributes);
},
},
onStatusChanged: function (item) {
onStatusChanged: function (item) {
...
@@ -35077,17 +35079,14 @@ define('text!zh',[],function () { return '{\n "domain": "converse",\n "local
...
@@ -35077,17 +35079,14 @@ define('text!zh',[],function () { return '{\n "domain": "converse",\n "local
onChatRoomMessage: function (message) {
onChatRoomMessage: function (message) {
var $message = $(message),
var $message = $(message),
archive_id = $message.find('result[xmlns="'+Strophe.NS.MAM+'"]').attr('id'),
archive_id = $message.find('result[xmlns="'+Strophe.NS.MAM+'"]').attr('id'),
delayed = $message.find('delay').length > 0,
$forwarded = $message.find('forwarded'),
$forwarded = $message.find('forwarded'),
$delay;
$delay;
if ($forwarded.length) {
if ($forwarded.length) {
$message = $forwarded.children('message');
$message = $forwarded.children('message');
$delay = $forwarded.children('delay');
$delay = $forwarded.children('delay');
delayed = $delay.length > 0;
}
}
var body = $message.children('body').text(),
var jid = $message.attr('from'),
jid = $message.attr('from'),
msgid = $message.attr('id'),
msgid = $message.attr('id'),
resource = Strophe.getResourceFromJid(jid),
resource = Strophe.getResourceFromJid(jid),
sender = resource && Strophe.unescapeNode(resource) || '',
sender = resource && Strophe.unescapeNode(resource) || '',
...
@@ -35109,9 +35108,6 @@ define('text!zh',[],function () { return '{\n "domain": "converse",\n "local
...
@@ -35109,9 +35108,6 @@ define('text!zh',[],function () { return '{\n "domain": "converse",\n "local
return true;
return true;
}
}
this.model.createMessage($message, $delay, archive_id);
this.model.createMessage($message, $delay, archive_id);
if (!delayed && sender !== this.model.get('nick') && (new RegExp("\\b"+this.model.get('nick')+"\\b")).test(body)) {
converse.notifyOfNewMessage();
}
if (sender !== this.model.get('nick')) {
if (sender !== this.model.get('nick')) {
// We only emit an event if it's not our own message
// We only emit an event if it's not our own message
converse.emit('message', message);
converse.emit('message', message);
...
@@ -44507,11 +44503,33 @@ Strophe.addConnectionPlugin('ping', {
...
@@ -44507,11 +44503,33 @@ Strophe.addConnectionPlugin('ping', {
);
);
};
};
converse.shouldNotifyOfNewMessage = function ($message) {
converse.shouldNotifyOfGroupMessage = function ($message) {
/* Is this a group message worthy of notification?
*/
var jid = $message.attr('from'),
resource = Strophe.getResourceFromJid(jid),
sender = resource && Strophe.unescapeNode(resource) || '';
if (sender === '' || $message.find('delay').length > 0) {
return false;
}
var room = converse.chatboxes.get(Strophe.getBareJidFromJid(jid));
var body = $message.children('body').text();
if (sender === room.get('nick') || !(new RegExp("\\b"+room.get('nick')+"\\b")).test(body)) {
return false;
}
return true;
};
converse.shouldNotifyOfMessage = function ($message) {
/* Is this a message worthy of notification?
*/
var $forwarded = $message.find('forwarded');
var $forwarded = $message.find('forwarded');
if ($forwarded.length) {
if ($forwarded.length) {
return false;
return false;
}
}
if ($message.attr('type') === 'groupchat') {
return converse.shouldNotifyOfGroupMessage($message);
}
var is_me = Strophe.getBareJidFromJid($message.attr('from')) === converse.bare_jid;
var is_me = Strophe.getBareJidFromJid($message.attr('from')) === converse.bare_jid;
return !converse.isOnlyChatStateNotification($message) && !is_me;
return !converse.isOnlyChatStateNotification($message) && !is_me;
};
};
...
@@ -44534,9 +44552,34 @@ Strophe.addConnectionPlugin('ping', {
...
@@ -44534,9 +44552,34 @@ Strophe.addConnectionPlugin('ping', {
}
}
};
};
converse.showChatStateNotification = function (evt, contact) {
converse.areDesktopNotificationsEnabled = function (ignore_blur) {
/* Show an HTML5 notification indicating that a contact changed
var enabled = supports_html5_notification &&
* their chat state.
converse.show_desktop_notifications &&
Notification.permission === "granted";
if (ignore_blur) {
return enabled;
} else {
return enabled && converse.windowState === 'blur';
}
};
converse.showMessageNotification = function ($message) {
/* Shows an HTML5 Notification to indicate that a new chat
* message was received.
*/
var contact_jid = Strophe.getBareJidFromJid($message.attr('from'));
var roster_item = converse.roster.get(contact_jid);
var n = new Notification(__(___("%1$s says"), roster_item.get('fullname')), {
body: $message.children('body').text(),
lang: converse.i18n.locale_data.converse[""].lang,
icon: converse.notification_icon
});
setTimeout(n.close.bind(n), 5000);
};
converse.showChatStateNotification = function (contact) {
/* Creates an HTML5 Notification to inform of a change in a
* contact's chat state.
*/
*/
var chat_state = contact.chat_status,
var chat_state = contact.chat_status,
message = null;
message = null;
...
@@ -44560,40 +44603,48 @@ Strophe.addConnectionPlugin('ping', {
...
@@ -44560,40 +44603,48 @@ Strophe.addConnectionPlugin('ping', {
setTimeout(n.close.bind(n), 5000);
setTimeout(n.close.bind(n), 5000);
};
};
converse.showMessageNotification = function (evt, $message) {
converse.showContactRequestNotification = function (contact) {
/* Shows an HTML5 Notification to indicate that a new chat
var n = new Notification(contact.fullname, {
* message was received.
body: __('wants to be your contact'),
*/
if (!supports_html5_notification ||
!converse.show_desktop_notifications ||
converse.windowState !== 'blur' ||
Notification.permission !== "granted") {
return;
}
var contact_jid = Strophe.getBareJidFromJid($message.attr('from'));
var roster_item = converse.roster.get(contact_jid);
var n = new Notification(__(___("%1$s says"), roster_item.get('fullname')), {
body: $message.children('body').text(),
lang: converse.i18n.locale_data.converse[""].lang,
lang: converse.i18n.locale_data.converse[""].lang,
icon:
converse.notification_icon
icon:
'logo/conversejs.png'
});
});
setTimeout(n.close.bind(n), 5000);
setTimeout(n.close.bind(n), 5000);
};
};
converse.notifyOfNewMessage = function (message) {
converse.handleChatStateNotification = function (evt, contact) {
/* Event handler for on('contactStatusChanged').
* Will show an HTML5 notification to indicate that the chat
* status has changed.
*/
if (converse.areDesktopNotificationsEnabled()) {
converse.showChatStateNotification(contact);
}
};
converse.handleMessageNotification = function (evt, message) {
/* Event handler for the on('message') event. Will call methods
/* Event handler for the on('message') event. Will call methods
* to play sounds and show HTML5 notifications.
* to play sounds and show HTML5 notifications.
*/
*/
var $message = $(message);
var $message = $(message);
if (!converse.shouldNotifyOf
New
Message($message)) {
if (!converse.shouldNotifyOfMessage($message)) {
return false;
return false;
}
}
converse.playSoundNotification($message);
converse.playSoundNotification($message);
converse.showMessageNotification($message);
if (converse.areDesktopNotificationsEnabled()) {
converse.showMessageNotification($message);
}
};
converse.handleContactRequestNotification = function (evt, contact) {
if (converse.areDesktopNotificationsEnabled(true)) {
converse.showContactRequestNotification(contact);
}
};
};
converse.on('contactStatusChanged', converse.showChatStateNotification);
converse.on('contactRequest', converse.handleContactRequestNotification);
converse.on('message', converse.notifyOfNewMessage);
converse.on('contactStatusChanged', converse.handleChatStateNotification);
converse.on('message', converse.handleMessageNotification);
}
}
});
});
}));
}));
src/converse-notification.js
View file @
02faa555
...
@@ -158,7 +158,7 @@
...
@@ -158,7 +158,7 @@
converse
.
showContactRequestNotification
=
function
(
contact
)
{
converse
.
showContactRequestNotification
=
function
(
contact
)
{
var
n
=
new
Notification
(
contact
.
fullname
,
{
var
n
=
new
Notification
(
contact
.
fullname
,
{
body
:
__
(
'
is requesting
to be your contact
'
),
body
:
__
(
'
wants
to be your contact
'
),
lang
:
converse
.
i18n
.
locale_data
.
converse
[
""
].
lang
,
lang
:
converse
.
i18n
.
locale_data
.
converse
[
""
].
lang
,
icon
:
'
logo/conversejs.png
'
icon
:
'
logo/conversejs.png
'
});
});
...
...
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