From 0a5e4ddd0ca1b01b21af777b9e63788b2b792431 Mon Sep 17 00:00:00 2001 From: Rodrigo Nascimento Date: Wed, 12 Aug 2015 13:01:37 -0300 Subject: [PATCH 01/31] Return usernames of room in method canAccessRoom --- server/methods/canAccessRoom.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/methods/canAccessRoom.coffee b/server/methods/canAccessRoom.coffee index d1a099294e7..49acd6381e8 100644 --- a/server/methods/canAccessRoom.coffee +++ b/server/methods/canAccessRoom.coffee @@ -21,6 +21,6 @@ Meteor.methods if canAccess isnt true return false else - return _.pick room, ['_id', 't', 'name'] + return _.pick room, ['_id', 't', 'name', 'usernames'] else throw new Meteor.Error 'invalid-room', '[methods] canAccessRoom -> Room ID is invalid' From bc70049471f286375fcd0820ea47f8b60a58fbbb Mon Sep 17 00:00:00 2001 From: Rodrigo Nascimento Date: Wed, 12 Aug 2015 13:02:07 -0300 Subject: [PATCH 02/31] Improve notifications at all --- .../rocketchat-lib/server/sendMessage.coffee | 38 ++++++++++--------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/packages/rocketchat-lib/server/sendMessage.coffee b/packages/rocketchat-lib/server/sendMessage.coffee index e3a8edd6756..cf3ff68c097 100644 --- a/packages/rocketchat-lib/server/sendMessage.coffee +++ b/packages/rocketchat-lib/server/sendMessage.coffee @@ -3,8 +3,6 @@ RocketChat.sendMessage = (user, message, room) -> if not user or not message or not room._id return false - console.log '[functions] RocketChat.sendMessage -> '.green, 'arguments:', arguments - unless message.ts? message.ts = new Date() @@ -78,8 +76,10 @@ RocketChat.sendMessage = (user, message, room) -> if userOfMention? Push.send from: 'push' - title: userOfMention.username - text: "#{userOfMention.username}: #{message.msg}" + title: "@#{user.username}" + text: message.msg + apn: + text: "@#{user.username}:\n#{message.msg}" badge: 1 sound: 'chime' payload: @@ -136,20 +136,22 @@ RocketChat.sendMessage = (user, message, room) -> query._id = $in: mentionIds - usersOfMention = Meteor.users.find(query, {fields: {username: 1}}).fetch() - if usersOfMention.length > 0 - for userOfMention in usersOfMention - Push.send - from: 'push' - title: userOfMention.username - text: message.msg - badge: 1 - sound: 'chime' - payload: - rid: message.rid - sender: message.u - query: - userId: userOfMention._id + usersOfMention = Meteor.users.find(query, {fields: {_id: 1}}).fetch() + usersOfMentionIds = _.pluck(usersOfMention, '_id'); + if usersOfMentionIds.length > 0 + Push.send + from: 'push' + title: "##{room.name}" + text: message.msg + apn: + text: "##{room.name}:\n#{message.msg}" + badge: 1 + sound: 'chime' + payload: + rid: message.rid + sender: message.u + query: + userId: $in: usersOfMentionIds ### Update all other subscriptions to alert their owners but witout incrementing From f728e195bd3a27ad5ef81441bd4bac24897566fc Mon Sep 17 00:00:00 2001 From: Rodrigo Nascimento Date: Fri, 14 Aug 2015 18:01:34 -0300 Subject: [PATCH 03/31] Try to improve logs of errors in android app --- client/views/login/services.coffee | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/views/login/services.coffee b/client/views/login/services.coffee index 7406bfce46a..f22577c92d4 100644 --- a/client/views/login/services.coffee +++ b/client/views/login/services.coffee @@ -42,7 +42,7 @@ Template.loginServices.events serviceIcon.removeClass 'hidden' if error - console.log error + console.log JSON.stringify(error), error.message toastr.error error.message return @@ -61,7 +61,7 @@ Template.loginServices.events return if error - console.log error + console.log JSON.stringify(error), error.message toastr.error error.message return FlowRouter.go 'index' From 3c3f454c597e955c3200d9816e8d0f7dea22513c Mon Sep 17 00:00:00 2001 From: Rodrigo Nascimento Date: Fri, 14 Aug 2015 18:02:33 -0300 Subject: [PATCH 04/31] Update version of mobile to 0.1.3 --- mobile-config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mobile-config.js b/mobile-config.js index af52bdf3514..e8fc755e303 100644 --- a/mobile-config.js +++ b/mobile-config.js @@ -2,7 +2,7 @@ // the entire section is optional. App.info({ id: 'com.konecty.rocket.chat', - version: '0.0.2', + version: '0.1.3', name: 'Rocket.Chat', description: 'Rocket.Chat', author: 'Rocket.Chat Development Group', From 6d17363395f91613e4000745c638ea5a302bdd3a Mon Sep 17 00:00:00 2001 From: Rodrigo Nascimento Date: Fri, 14 Aug 2015 18:06:23 -0300 Subject: [PATCH 05/31] Fix stupid error --- packages/rocketchat-external/app/client/views/room.coffee | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/rocketchat-external/app/client/views/room.coffee b/packages/rocketchat-external/app/client/views/room.coffee index 5dd404c9b42..7a0b6fbecb8 100644 --- a/packages/rocketchat-external/app/client/views/room.coffee +++ b/packages/rocketchat-external/app/client/views/room.coffee @@ -11,8 +11,8 @@ Template.room.events Template.instance().chatMessages.keydown(@_id, event, Template.instance()) Template.room.onCreated -> - this.subscribe 'visitorRoom'visitorId.get() - console.log 'visitor ->',visitorId.get() + this.subscribe 'visitorRoom', visitorId.get() + console.log 'visitor ->', visitorId.get() Template.room.onRendered -> From c2d83f31013e11c9b49b31dfa6a1fb26b8b73c69 Mon Sep 17 00:00:00 2001 From: Rodrigo Nascimento Date: Fri, 14 Aug 2015 18:18:42 -0300 Subject: [PATCH 06/31] Update travis config to add disabled packages --- .travis.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 79c27a1a335..f51f1ee5888 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,4 +7,6 @@ before_install: - "curl https://install.meteor.com | /bin/sh" script: - - meteor build --server rocket.chat ./ \ No newline at end of file + - meteor add rocketchat:external + - meteor add rocketchat:hubot + - meteor build --server demo.rocket.chat ./ \ No newline at end of file From 40b69666cd7f6f32ffa1124a734e39807e1ab0c1 Mon Sep 17 00:00:00 2001 From: Rodrigo Nascimento Date: Fri, 14 Aug 2015 18:27:45 -0300 Subject: [PATCH 07/31] Improve log error --- client/lib/cordova/facebook-login.coffee | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/lib/cordova/facebook-login.coffee b/client/lib/cordova/facebook-login.coffee index af22e8a5ac1..4d4bbacc118 100644 --- a/client/lib/cordova/facebook-login.coffee +++ b/client/lib/cordova/facebook-login.coffee @@ -16,12 +16,12 @@ Meteor.loginWithFacebookCordova = (options, callback) -> facebookConnectPlugin.getLoginStatus (response) -> if response.status isnt "connected" facebookConnectPlugin.login ["public_profile", "email"], fbLoginSuccess, (error) -> - console.log("" + error) + console.log(JSON.stringidy(error), error) else fbLoginSuccess(response) , (error) -> - console.log("" + error) + console.log(JSON.stringidy(error), error) else Facebook.requestCredential(options, credentialRequestCompleteCallback) \ No newline at end of file From 2f53b48b0f54999e395adcf8283f26a87d5ac708 Mon Sep 17 00:00:00 2001 From: Rodrigo Nascimento Date: Fri, 14 Aug 2015 18:34:22 -0300 Subject: [PATCH 08/31] Fix typo --- client/lib/cordova/facebook-login.coffee | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/lib/cordova/facebook-login.coffee b/client/lib/cordova/facebook-login.coffee index 4d4bbacc118..d385017f54c 100644 --- a/client/lib/cordova/facebook-login.coffee +++ b/client/lib/cordova/facebook-login.coffee @@ -16,12 +16,12 @@ Meteor.loginWithFacebookCordova = (options, callback) -> facebookConnectPlugin.getLoginStatus (response) -> if response.status isnt "connected" facebookConnectPlugin.login ["public_profile", "email"], fbLoginSuccess, (error) -> - console.log(JSON.stringidy(error), error) + console.log(JSON.stringify(error), error) else fbLoginSuccess(response) , (error) -> - console.log(JSON.stringidy(error), error) + console.log(JSON.stringify(error), error) else Facebook.requestCredential(options, credentialRequestCompleteCallback) \ No newline at end of file From 34d2708abbc23a93c2862d8cd0f1f0cb6ddc14ae Mon Sep 17 00:00:00 2001 From: Rodrigo Nascimento Date: Fri, 14 Aug 2015 19:08:56 -0300 Subject: [PATCH 09/31] Identify error --- client/lib/cordova/facebook-login.coffee | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/lib/cordova/facebook-login.coffee b/client/lib/cordova/facebook-login.coffee index d385017f54c..9cf8a096374 100644 --- a/client/lib/cordova/facebook-login.coffee +++ b/client/lib/cordova/facebook-login.coffee @@ -16,12 +16,12 @@ Meteor.loginWithFacebookCordova = (options, callback) -> facebookConnectPlugin.getLoginStatus (response) -> if response.status isnt "connected" facebookConnectPlugin.login ["public_profile", "email"], fbLoginSuccess, (error) -> - console.log(JSON.stringify(error), error) + console.log('login', JSON.stringify(error), error) else fbLoginSuccess(response) , (error) -> - console.log(JSON.stringify(error), error) + console.log('getLoginStatus', JSON.stringify(error), error) else Facebook.requestCredential(options, credentialRequestCompleteCallback) \ No newline at end of file From c04fab524bbb2ea54ded30e38a9a34a8302d8af9 Mon Sep 17 00:00:00 2001 From: Reid Wakida Date: Fri, 14 Aug 2015 17:46:52 -1000 Subject: [PATCH 10/31] Replaces gender specific translation with non-gender translation. Grammatical gender change from 6329d071180bccf86586c5627cb8bc06bf231c39 references 'gender' message field. If field doesn't exist, then username is not replaced. Replaced gender specific translation with non-gender specific call, and removed gender option. Gender specific messages don't seem to be implemented. The 6329d071180bccf86586c5627cb8bc06bf231c39 commit hardcoded "male" value in other places that used gender specific translation. --- client/views/app/message.coffee | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/views/app/message.coffee b/client/views/app/message.coffee index 63b4333bfe0..fb3bad116fa 100644 --- a/client/views/app/message.coffee +++ b/client/views/app/message.coffee @@ -19,9 +19,9 @@ Template.message.helpers when 'r' then t('Room_name_changed', { room_name: this.msg, user_by: this.u.username }) when 'au' then t('User_added_by', { user_added: this.msg, user_by: this.u.username }) when 'ru' then t('User_removed_by', { user_removed: this.msg, user_by: this.u.username }) - when 'ul' then tr('User_left', { context: this.u.gender }, { user_left: this.u.username }) + when 'ul' then t('User_left', { user_left: this.u.username }) when 'nu' then t('User_added', { user_added: this.u.username }) - when 'uj' then tr('User_joined_channel', { context: this.u.gender }, { user: this.u.username }) + when 'uj' then t('User_joined_channel', { user: this.u.username }) when 'wm' then t('Welcome', { user: this.u.username }) when 'rtc' then RocketChat.callbacks.run 'renderRtcMessage', this else From 78bc305f8b803c827dc38648284e49f8c8027ee1 Mon Sep 17 00:00:00 2001 From: Rodrigo Nascimento Date: Sat, 15 Aug 2015 15:39:52 -0300 Subject: [PATCH 11/31] Exec callback on error in facebook login --- client/lib/cordova/facebook-login.coffee | 2 ++ 1 file changed, 2 insertions(+) diff --git a/client/lib/cordova/facebook-login.coffee b/client/lib/cordova/facebook-login.coffee index 9cf8a096374..5b7b7b771a7 100644 --- a/client/lib/cordova/facebook-login.coffee +++ b/client/lib/cordova/facebook-login.coffee @@ -17,11 +17,13 @@ Meteor.loginWithFacebookCordova = (options, callback) -> if response.status isnt "connected" facebookConnectPlugin.login ["public_profile", "email"], fbLoginSuccess, (error) -> console.log('login', JSON.stringify(error), error) + callback(error) else fbLoginSuccess(response) , (error) -> console.log('getLoginStatus', JSON.stringify(error), error) + callback(error) else Facebook.requestCredential(options, credentialRequestCompleteCallback) \ No newline at end of file From cd0b6f3f6dbf7be56347fd1935e1da10454cf928 Mon Sep 17 00:00:00 2001 From: Rodrigo Nascimento Date: Sat, 15 Aug 2015 15:43:34 -0300 Subject: [PATCH 12/31] Update raix:push to 2.6.13-rc.1 --- .meteor/packages | 2 +- .meteor/versions | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.meteor/packages b/.meteor/packages index c029bd1040c..d96e79316f8 100644 --- a/.meteor/packages +++ b/.meteor/packages @@ -70,7 +70,6 @@ pauli:accounts-linkedin percolate:migrations percolatestudio:synced-cron raix:handlebar-helpers -raix:push raix:ui-dropped-event tap:i18n tmeasday:crypto-md5 @@ -80,3 +79,4 @@ underscorestring:underscore.string yasaricli:slugify yasinuslu:blaze-meta rocketchat:colors +raix:push@2.6.13-rc.1 diff --git a/.meteor/versions b/.meteor/versions index a63b50c1dd4..21a0e79ba71 100644 --- a/.meteor/versions +++ b/.meteor/versions @@ -103,7 +103,7 @@ qnub:emojione@0.0.3 raix:eventemitter@0.1.3 raix:eventstate@0.0.2 raix:handlebar-helpers@0.2.4 -raix:push@2.6.12 +raix:push@2.6.13-rc.1 raix:ui-dropped-event@0.0.7 random@1.0.3 reactive-dict@1.1.0 From 20374194446ca13b0c175a9cd9bab77dd4a22e3a Mon Sep 17 00:00:00 2001 From: Rodrigo Nascimento Date: Sat, 15 Aug 2015 18:39:28 -0300 Subject: [PATCH 13/31] Allow drag view to show menu in mobile --- client/stylesheets/base.less | 8 +++++- client/views/main.coffee | 54 ++++++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+), 1 deletion(-) diff --git a/client/stylesheets/base.less b/client/stylesheets/base.less index 61053996031..1ff817161dd 100644 --- a/client/stylesheets/base.less +++ b/client/stylesheets/base.less @@ -3251,12 +3251,18 @@ a.github-fork { } .side-nav { top: 0; - .transform(translateX(-100%)); + // .transform(translateX(-100%)); .transition(transform .3s ease-out); } .main-content { left: 0; .transition(transform .3s ease-out); + z-index: 1000; + background-color: white; + + &.notransition { + .transition(transform .0s); + } } .fixed-title h2 { margin-left: 45px; diff --git a/client/views/main.coffee b/client/views/main.coffee index 35a4b975877..86a54c7446b 100644 --- a/client/views/main.coffee +++ b/client/views/main.coffee @@ -102,6 +102,60 @@ Template.main.events chatContainer = $("#rocket-chat") menu.toggle() + 'touchstart': (e, t) -> + if document.body.clientWidth > 780 + return + + t.touchstartX = undefined + t.touchstartY = undefined + t.movestarted = false + if $(e.currentTarget).closest('.main-content').length > 0 + t.touchstartX = e.originalEvent.touches[0].clientX + t.touchstartY = e.originalEvent.touches[0].clientY + t.mainContent = $('.main-content') + + 'touchmove': (e, t) -> + if t.touchstartX? + touch = e.originalEvent.touches[0] + diffX = t.touchstartX - touch.clientX + diffY = t.touchstartY - touch.clientY + absX = Math.abs(diffX) + absY = Math.abs(diffY) + + if t.movestarted is true or (absX > 20 and absY < 20) + t.movestarted = true + + if menu.isOpen() + t.left = 260 - diffX + else + t.left = -diffX + + if t.left > 260 + t.left = 260 + if t.left < 0 + t.left = 0 + + t.mainContent.addClass('notransition') + t.mainContent.css('transform', 'translate('+t.left+'px)') + + 'touchend': (e, t) -> + t.touchstartX = undefined + + if t.movestarted is true + t.mainContent.removeClass('notransition') + t.mainContent.css('transform', ''); + + if menu.isOpen() + if t.left >= 200 + menu.open() + else + menu.close() + else + if t.left >= 60 + menu.open() + else + menu.close() + Template.main.onRendered -> From f4909ade72ba71fb3ffe68120d5499e427cc92b9 Mon Sep 17 00:00:00 2001 From: Rodrigo Nascimento Date: Sat, 15 Aug 2015 22:46:14 -0300 Subject: [PATCH 14/31] Fix user creation via social services --- server/lib/accounts.coffee | 1 + server/methods/registerUser.coffee | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/server/lib/accounts.coffee b/server/lib/accounts.coffee index 6d1dfc91310..c8d3dcb0f6a 100644 --- a/server/lib/accounts.coffee +++ b/server/lib/accounts.coffee @@ -19,6 +19,7 @@ Accounts.onCreateUser (options, user) -> # console.log 'user ->',JSON.stringify user, null, ' ' user.status = 'offline' + user.active = true serviceName = null diff --git a/server/methods/registerUser.coffee b/server/methods/registerUser.coffee index 4e179eb49af..e7596a3a04b 100644 --- a/server/methods/registerUser.coffee +++ b/server/methods/registerUser.coffee @@ -9,7 +9,6 @@ Meteor.methods Meteor.users.update userId, $set: name: formData.name - active: true if userData.email Accounts.sendVerificationEmail(userId, userData.email); From 36983767f5099a8fa7311aadfec9d616170d7927 Mon Sep 17 00:00:00 2001 From: Rodrigo Nascimento Date: Mon, 17 Aug 2015 14:57:49 -0300 Subject: [PATCH 15/31] Add dialog to preview and confirm file upload --- client/lib/fileUpload.coffee | 43 ++++++++++++++++++++++++++++++++++++ client/stylesheets/base.less | 16 ++++++++++++++ client/views/app/room.coffee | 28 +++++++++-------------- i18n/en.i18n.json | 1 + i18n/pt.i18n.json | 2 ++ 5 files changed, 73 insertions(+), 17 deletions(-) create mode 100644 client/lib/fileUpload.coffee diff --git a/client/lib/fileUpload.coffee b/client/lib/fileUpload.coffee new file mode 100644 index 00000000000..7d4ace699c1 --- /dev/null +++ b/client/lib/fileUpload.coffee @@ -0,0 +1,43 @@ +@fileUpload = (files) -> + files = [].concat files + + consume = -> + file = files.pop() + if not file? + swal.close() + return + + reader = new FileReader() + reader.onload = (event) -> + image = event.target.result + swal + title: t('Upload_file?') + text: """ +
+
+
+
#{file.name}
+ """ + showCancelButton: true + closeOnConfirm: false + closeOnCancel: false + html: true + , (isConfirm) -> + consume() + + if isConfirm isnt true + return + + newFile = new (FS.File)(file.file) + if file.name? + newFile.name(file.name) + newFile.rid = Session.get('openedRoom') + newFile.recId = Random.id() + newFile.userId = Meteor.userId() + Files.insert newFile, (error, fileObj) -> + unless error + toastr.success 'Upload succeeded!' + + reader.readAsDataURL(file.file) + + consume() \ No newline at end of file diff --git a/client/stylesheets/base.less b/client/stylesheets/base.less index 1ff817161dd..8f9b16ef0be 100644 --- a/client/stylesheets/base.less +++ b/client/stylesheets/base.less @@ -75,6 +75,22 @@ blockquote { } } +.upload-preview { + background-color: #f5f5f5; + .upload-preview-file { + height: 200px; + background-size: contain; + background-repeat: no-repeat; + background-position: center center; + } +} + +.upload-preview-title { + background-color: #eee; + padding: 3px; + border-radius: 0 0 5px 5px; +} + .flex-center { display: -webkit-flex; display: flex; diff --git a/client/views/app/room.coffee b/client/views/app/room.coffee index a98bc0dbecb..cd57b47452c 100644 --- a/client/views/app/room.coffee +++ b/client/views/app/room.coffee @@ -349,20 +349,15 @@ Template.room.events return items = e.originalEvent.clipboardData.items + files = [] for item in items if item.kind is 'file' and item.type.indexOf('image/') isnt -1 e.preventDefault() + files.push + file: item.getAsFile() + name: 'Clipboard' - blob = item.getAsFile() - - newFile = new (FS.File)(blob) - newFile.name('Clipboard') - newFile.rid = Session.get('openedRoom') - newFile.recId = Random.id() - newFile.userId = Meteor.userId() - Files.insert newFile, (error, fileObj) -> - unless error - toastr.success 'Upload from clipboard succeeded!' + fileUpload files 'keydown .input-message': (event) -> Template.instance().chatMessages.keydown(@_id, event, Template.instance()) @@ -547,14 +542,13 @@ Template.room.events 'dropped .dropzone-overlay': (e) -> e.currentTarget.parentNode.classList.remove 'over' + files = [] FS?.Utility?.eachFile e, (file) -> - newFile = new (FS.File)(file) - newFile.rid = Session.get('openedRoom') - newFile.recId = Random.id() - newFile.userId = Meteor.userId() - Files.insert newFile, (error, fileObj) -> - unless error - toastr.success 'Upload succeeded!' + files.push + file: file + name: file.name + + fileUpload files 'click .deactivate': -> username = Session.get('showUserInfo') diff --git a/i18n/en.i18n.json b/i18n/en.i18n.json index 12c688b8c92..2a8523939f4 100644 --- a/i18n/en.i18n.json +++ b/i18n/en.i18n.json @@ -184,6 +184,7 @@ "The_field_is_required" : "The field %s is required.", "True" : "True", "Unnamed" : "Unnamed", + "Upload_file?": "Upload file?", "Use_initials_avatar" : "Use your username initials", "use_menu" : "Use the side menu to access your rooms and chats", "Use_service_avatar" : "Use %s avatar", diff --git a/i18n/pt.i18n.json b/i18n/pt.i18n.json index a5aa3e54991..d53575f0f3f 100644 --- a/i18n/pt.i18n.json +++ b/i18n/pt.i18n.json @@ -40,6 +40,7 @@ "Created_at" : "Data criação", "Direct_Messages" : "Mensagens Diretas", "Deleted" : "Deletado!", + "Drop_to_upload_file": "Largue para enviar arquivos", "Duplicate_private_group_name" : "Já existe um Grupo Privado com nome '%s'", "Duplicate_channel_name" : "Já existe um Canal com nome '%s'", "edited" : "editado", @@ -145,6 +146,7 @@ "strike" : "tachado", "Submit" : "Enviar", "The_field_is_required" : "O campo %s é obrigatório.", + "Upload_file?": "Enviar arquivo?", "Use_initials_avatar" : "Usar as iniciais do seu nome de usuário", "use_menu" : "Utilize o menu à esquerda para acessar suas salas", "Use_service_avatar" : "Use o avatar de %s", From 92ceb3705c0552d9cc0fa821d42253713df7daee Mon Sep 17 00:00:00 2001 From: Rodrigo Nascimento Date: Mon, 17 Aug 2015 15:02:12 -0300 Subject: [PATCH 16/31] Fix i18n --- client/lib/fileUpload.coffee | 2 +- i18n/en.i18n.json | 2 +- i18n/pt.i18n.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/client/lib/fileUpload.coffee b/client/lib/fileUpload.coffee index 7d4ace699c1..4d131b2c594 100644 --- a/client/lib/fileUpload.coffee +++ b/client/lib/fileUpload.coffee @@ -11,7 +11,7 @@ reader.onload = (event) -> image = event.target.result swal - title: t('Upload_file?') + title: t('Upload_file_question') text: """
diff --git a/i18n/en.i18n.json b/i18n/en.i18n.json index 2a8523939f4..61948beb86a 100644 --- a/i18n/en.i18n.json +++ b/i18n/en.i18n.json @@ -184,7 +184,7 @@ "The_field_is_required" : "The field %s is required.", "True" : "True", "Unnamed" : "Unnamed", - "Upload_file?": "Upload file?", + "Upload_file_question": "Upload file?", "Use_initials_avatar" : "Use your username initials", "use_menu" : "Use the side menu to access your rooms and chats", "Use_service_avatar" : "Use %s avatar", diff --git a/i18n/pt.i18n.json b/i18n/pt.i18n.json index d53575f0f3f..7e53addf88c 100644 --- a/i18n/pt.i18n.json +++ b/i18n/pt.i18n.json @@ -146,7 +146,7 @@ "strike" : "tachado", "Submit" : "Enviar", "The_field_is_required" : "O campo %s é obrigatório.", - "Upload_file?": "Enviar arquivo?", + "Upload_file_question": "Enviar arquivo?", "Use_initials_avatar" : "Usar as iniciais do seu nome de usuário", "use_menu" : "Utilize o menu à esquerda para acessar suas salas", "Use_service_avatar" : "Use o avatar de %s", From 7808855e7eb8c7f4f136ec58992079901406f2e1 Mon Sep 17 00:00:00 2001 From: Gabriel Engel Date: Mon, 17 Aug 2015 15:10:37 -0300 Subject: [PATCH 17/31] Made the home page customisable --- client/views/app/home.coffee | 4 ++ client/views/app/home.html | 47 +------------------ .../settings/server/startup.coffee | 4 ++ 3 files changed, 10 insertions(+), 45 deletions(-) diff --git a/client/views/app/home.coffee b/client/views/app/home.coffee index afe04111c4d..a37f833eab5 100644 --- a/client/views/app/home.coffee +++ b/client/views/app/home.coffee @@ -1,4 +1,8 @@ Template.home.helpers + title: -> + return RocketChat.settings.get 'Layout_Home_Title' + body: -> + return RocketChat.settings.get 'Layout_Home_Body' arrowPosition: -> return 'left' unless Session.equals('flexOpened', true) flexOpened: -> diff --git a/client/views/app/home.html b/client/views/app/home.html index 2bbfc80e50b..6c6ea154b62 100644 --- a/client/views/app/home.html +++ b/client/views/app/home.html @@ -3,54 +3,11 @@
{{> burger}}

- {{_ "Welcome_to_the"}} Rocket.Chat + {{title}}

- -
-

{{_ "Have_your_own_chat"}}

-

← {{_ "use_menu"}}.

-
- {{ > social withParagraph }} -
-

{{_ "Get_to_know_the_team" }}

-
    -
  • - -
  • -
  • - -
  • -
  • - -
  • -
  • - -
  • -
  • - -
  • -
  • - -
  • -
-
+ {{body}}
- diff --git a/packages/rocketchat-lib/settings/server/startup.coffee b/packages/rocketchat-lib/settings/server/startup.coffee index a9f4c9b4176..64e0899eb67 100644 --- a/packages/rocketchat-lib/settings/server/startup.coffee +++ b/packages/rocketchat-lib/settings/server/startup.coffee @@ -41,3 +41,7 @@ Meteor.startup -> RocketChat.settings.add 'Push_apn_dev_cert', '', { type: 'string', multiline: true, group: 'Push' } RocketChat.settings.add 'Push_gcm_api_key', '', { type: 'string', group: 'Push' } RocketChat.settings.add 'Push_gcm_project_number', '', { type: 'string', group: 'Push', public: true } + + RocketChat.settings.addGroup 'Layout' + RocketChat.settings.add 'Layout_Home_Title', 'Home', { type: 'string', group: 'Layout', public: true } + RocketChat.settings.add 'Layout_Home_Body', 'Welcome to Rocket.Chat
Go to APP SETTINGS -> Layout to customize this intro.', { type: 'string', multiline: true, group: 'Layout', public: true } From 55aae4a5b0706c8df9870986d32e28e462706be6 Mon Sep 17 00:00:00 2001 From: Gabriel Engel Date: Mon, 17 Aug 2015 15:16:41 -0300 Subject: [PATCH 18/31] don't parse tags --- client/views/app/home.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/views/app/home.html b/client/views/app/home.html index 6c6ea154b62..2983174eb66 100644 --- a/client/views/app/home.html +++ b/client/views/app/home.html @@ -7,7 +7,7 @@
- {{body}} + {{{body}}}
From e33d01369275afc954d0d0459bd153807df13624 Mon Sep 17 00:00:00 2001 From: Gabriel Engel Date: Mon, 17 Aug 2015 15:31:58 -0300 Subject: [PATCH 19/31] remove old code --- client/stylesheets/base.less | 4 ++-- client/views/app/home.coffee | 13 ------------- 2 files changed, 2 insertions(+), 15 deletions(-) diff --git a/client/stylesheets/base.less b/client/stylesheets/base.less index 8f9b16ef0be..aebfcfff21e 100644 --- a/client/stylesheets/base.less +++ b/client/stylesheets/base.less @@ -657,8 +657,8 @@ label.required:after { cursor: pointer; margin-left: 7px; position: absolute; - top: 4px; - left: 5px; + top: 5px; + left: 0px; .transition(transform .2s ease-out .1s); i { display: block; diff --git a/client/views/app/home.coffee b/client/views/app/home.coffee index a37f833eab5..f3068684352 100644 --- a/client/views/app/home.coffee +++ b/client/views/app/home.coffee @@ -3,16 +3,3 @@ Template.home.helpers return RocketChat.settings.get 'Layout_Home_Title' body: -> return RocketChat.settings.get 'Layout_Home_Body' - arrowPosition: -> - return 'left' unless Session.equals('flexOpened', true) - flexOpened: -> - return 'opened' if Session.equals('flexOpened', true) - withParagraph: -> - return { - withParagraph: true - } - -Template.home.events - "click .flex-tab .more": (event) -> - Session.set('flexOpened', !Session.get('flexOpened')) - From 68e31997005566982b3db1a180483eddef556869 Mon Sep 17 00:00:00 2001 From: Rodrigo Nascimento Date: Mon, 17 Aug 2015 16:01:56 -0300 Subject: [PATCH 20/31] Improve regex of mentions and channel links. Fixes #476 --- packages/rocketchat-mentions/client.coffee | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/rocketchat-mentions/client.coffee b/packages/rocketchat-mentions/client.coffee index 74097c073b5..0e9a9cd8afd 100644 --- a/packages/rocketchat-mentions/client.coffee +++ b/packages/rocketchat-mentions/client.coffee @@ -15,7 +15,7 @@ class MentionsClient if mentions.length isnt 0 mentions = _.unique mentions mentions = mentions.join('|') - msg = msg.replace new RegExp("(?:^|\\s)(@(#{mentions}))(?:\\s|$)", 'g'), (match, mention, username) -> + msg = msg.replace new RegExp("(?:^|\\s|\\n)(@(#{mentions}))(?:[^A-Za-z0-9-_.])", 'g'), (match, mention, username) -> if username is 'all' return match.replace mention, "#{mention}" @@ -32,7 +32,7 @@ class MentionsClient if channels.length isnt 0 channels = _.unique channels channels = channels.join('|') - msg = msg.replace new RegExp("(?:^|\\s)(#(#{channels}))(?:\\s|$)", 'g'), (match, mention, channel) -> + msg = msg.replace new RegExp("(?:^|\\s|\\n)(#(#{channels}))(?:[^A-Za-z0-9-_.])", 'g'), (match, mention, channel) -> return match.replace mention, "#{mention}" From 2362623c74b7ba146930882fffda93166b142e39 Mon Sep 17 00:00:00 2001 From: Rodrigo Nascimento Date: Mon, 17 Aug 2015 16:09:46 -0300 Subject: [PATCH 21/31] Insert colon after mention if there are no spaces before --- client/views/app/messagePopup.coffee | 2 +- client/views/app/messagePopupConfig.coffee | 14 +++++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/client/views/app/messagePopup.coffee b/client/views/app/messagePopup.coffee index be543f423b7..a9a12d6eb42 100644 --- a/client/views/app/messagePopup.coffee +++ b/client/views/app/messagePopup.coffee @@ -118,7 +118,7 @@ Template.messagePopup.onCreated -> firstPartValue = value.substr 0, caret lastPartValue = value.substr caret - firstPartValue = firstPartValue.replace(template.selectorRegex, template.prefix + this.getValue(template.value.curValue, template.data.collection) + template.suffix) + firstPartValue = firstPartValue.replace(template.selectorRegex, template.prefix + this.getValue(template.value.curValue, template.data.collection, firstPartValue) + template.suffix) template.input.value = firstPartValue + lastPartValue diff --git a/client/views/app/messagePopupConfig.coffee b/client/views/app/messagePopupConfig.coffee index bb0713c7488..d9663b1642b 100644 --- a/client/views/app/messagePopupConfig.coffee +++ b/client/views/app/messagePopupConfig.coffee @@ -21,11 +21,19 @@ Template.messagePopupConfig.helpers items.unshift all return items - getValue: (_id, collection) -> + getValue: (_id, collection, firstPartValue) -> if _id is '@all' - return 'all' + if firstPartValue.indexOf(' ') > -1 + return 'all' + + return 'all:' + + username = collection.findOne(_id)?.username + + if firstPartValue.indexOf(' ') > -1 + return username - return collection.findOne(_id)?.username + return username + ':' return config From 8f9839a0b4f72e3df096734b1617768d917e5036 Mon Sep 17 00:00:00 2001 From: Rodrigo Nascimento Date: Mon, 17 Aug 2015 16:51:47 -0300 Subject: [PATCH 22/31] Allow upload image from mobile --- client/stylesheets/base.less | 41 ++++++++++++++++++++++++++++++++++++ client/views/app/room.coffee | 15 +++++++++++++ client/views/app/room.html | 6 +++++- 3 files changed, 61 insertions(+), 1 deletion(-) diff --git a/client/stylesheets/base.less b/client/stylesheets/base.less index aebfcfff21e..5fb329779a5 100644 --- a/client/stylesheets/base.less +++ b/client/stylesheets/base.less @@ -1952,6 +1952,30 @@ a.github-fork { .message-form { > div { position: relative; + display: flex; + > .file { + display: none; + width: 44px; + font-size: 22px; + padding: 6px 0; + text-align: center; + border: 1px solid #E7E7E7; + border-radius: 5px 0 0 5px; + border-right: none; + cursor: pointer; + color: #888; + + input { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + overflow: hidden; + width: 44px; + opacity: 0; + } + } } textarea { display: block; @@ -3387,3 +3411,20 @@ a.github-fork { border-width: 0 0 1px 0; } } + +.touch { + .footer { + padding-left: 10px; + padding-right: 10px; + } + .message-form { + .file { + display: block !important; + } + + textarea { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + } + } +} \ No newline at end of file diff --git a/client/views/app/room.coffee b/client/views/app/room.coffee index cd57b47452c..5c5b69e5ed3 100644 --- a/client/views/app/room.coffee +++ b/client/views/app/room.coffee @@ -550,6 +550,21 @@ Template.room.events fileUpload files + 'change .message-form input[type=file]': (event, template) -> + e = event.originalEvent or event + files = e.target.files + if not files or files.length is 0 + files = e.dataTransfer?.files or [] + + filesToUpload = [] + for file in files + filesToUpload.push + file: file + name: file.name + + fileUpload filesToUpload + + 'click .deactivate': -> username = Session.get('showUserInfo') user = Meteor.users.findOne { username: String(username) } diff --git a/client/views/app/room.html b/client/views/app/room.html index 39dc7c8bb1d..27b282cf062 100644 --- a/client/views/app/room.html +++ b/client/views/app/room.html @@ -45,7 +45,11 @@