We welcome pull requests! Follow these steps to contribute:
1. Find an [issue](https://github.com/ramboxapp/community-edition/issues) that needs assistance.
1. Find an [issue](https://github.com/saenzramiro/rambox/issues) that needs assistance.
1. Let us know you are working on it by posting a comment on the issue.
1. Follow the [Contribution Guidelines](#contribution-guidelines) to start working on the issue.
@ -65,15 +65,15 @@ If your versions are lower than the prerequisite versions, you should update.
#### Forking rambox
1. Go to the top level rambox repository: <https://github.com/ramboxapp/community-edition>
1. Go to the top level rambox repository: <https://github.com/saenzramiro/rambox>
1. Click the "Fork" Button in the upper right hand corner of the interface ([More Details Here](https://help.github.com/articles/fork-a-repo/))
1. After the repository (repo) has been forked, you will be taken to your copy of the rambox repo at <https://github.com/yourUsername/community-edition>
1. After the repository (repo) has been forked, you will be taken to your copy of the rambox repo at <https://github.com/yourUsername/rambox>
#### Cloning Your Fork
1. Open a Terminal / Command Line / Bash Shell in your projects directory (_i.e.: `/yourprojectdirectory/`_)
The services are stored inside the file `./app/store/ServicesList.js`. Add your service to the *BOTTOM* of the array.
The logo it's referencing is located in `./resources/icons/`.
To see these changes you'll need to stop your `npm start` and `sencha app watch`, and then rerun those.
### Creating a Pull Request
@ -157,15 +170,15 @@ You will make changes to copies of thefiles which make up rambox in a personal f
#### Important: ALWAYS EDIT ON A BRANCH
Take away only one thing from this document: Never, **EVER** make edits to the `master` branch.
Take away only one thing from this document: Never, **EVER** make edits to the `staging` branch.
ALWAYS make a new branch BEFORE you edit files.
This is critical, because your copy of `master` will be forever sullied and the only way to fix it is a difficult hard-reset and force-push process, or deleting your fork and re-forking.
This is critical, because if your PR is not accepted, your copy of staging will be forever sullied and the only way to fix it is to delete your fork and re-fork.
### Common Steps
1. Once the edits have been committed, you will be prompted to create a pull request on your fork's GitHub Page.
1. By default, all pull requests should be against the rambox main repo, `master` branch.
- **Make sure that your Base Fork is set to ramboxapp/community-edition when raising a Pull Request.**
1. By default, all pull requests should be against the rambox main repo, `staging` branch.
- **Make sure that your Base Fork is set to saenzramiro/rambox when raising a Pull Request.**
1. Submit a pull request.
1. The title (also called the subject) of your PR should be descriptive of your changes and succinctly indicates what is being fixed.
- **Do not add the issue number in the PR title or commit message.**
The Community Edition of Rambox is no longer maintained. We highly recommend that you update to the new version of Rambox, which has a FREE plan with all the features you already use and much more!
Visit: https://rambox.app/download
Thank you so much for all the users who contribute to this project all these years.
[Read our blog post to know more about our new Rambox.](https://rambox.medium.com/hello-2022-hello-new-rambox-4bdef5d6c3b8)
---
<divalign="center">
<h1>
<br/>
@ -37,7 +26,7 @@ Thank you so much for all the users who contribute to this project all these yea
,msg:'Please, check your internet connection. If you use a Proxy, please go to Preferences to configure it. Rambox will try to re-connect in 10 seconds'
// Add shortcuts to switch services using CTRL + Number
Mousetrap.bind(platform==='darwin'?["command+1","command+2","command+3","command+4","command+5","command+6","command+7","command+8","command+9"]:["ctrl+1","ctrl+2","ctrl+3","ctrl+4","ctrl+5","ctrl+6","ctrl+7","ctrl+8","ctrl+9"],function(e,combo){// GROUPS
console.info('New version is available',json.version);
Ext.cq1('app-main').addDocked({
xtype:'toolbar'
,dock:'top'
,ui:'newversion'
,items:[
'->'
,{
xtype:'label'
,html:'<b>'+locale['app.update[0]']+'</b> ('+json.version+')'+(process.platform==='win32'?' is downloading in the background and you will be notified when it is ready to be installed.':'')
,note:'To enable desktop notifications, you have to go to Settings inside Gmail. <a href="https://support.google.com/mail/answer/1075549?ref_topic=3394466" target="_blank">Read more...</a>'
},
{
id:'inbox'
,logo:'inbox.png'
,name:'Inbox'
,description:locale['services[10]']
,url:'https://inbox.google.com/?cid=imp'
,type:'email'
,manual_notifications:true
,js_unread:'function checkUnread() {if(getComputedStyle(document.getElementsByClassName("sM")[0])["font-weight"] == "bold"){updateBadge(document.getElementsByClassName("ss").length)}} function updateBadge(a){a>=1?rambox.setUnreadCount(a):rambox.clearUnreadCount()};setInterval(checkUnread,3e3);'
,note:'Please be sure to sign out of Hangouts inside Inbox, as it causes problems. <a href="https://github.com/saenzramiro/rambox/wiki/Inbox" target="_blank">Read more...</a>'
},
{
id:'chatwork'
,logo:'chatwork.png'
,name:'ChatWork'
,description:locale['services[11]']
,url:'https://www.chatwork.com/login.php'
,type:'messaging'
,note:'To enable desktop notifications, you have to go to Options inside ChatWork.'
},
{
id:'groupme'
,logo:'groupme.png'
,name:'GroupMe'
,description:locale['services[12]']
,url:'https://web.groupme.com/signin'
,type:'messaging'
,note:'To enable desktop notifications, you have to go to Options inside GroupMe. To count unread messages, be sure to be in Chats.'
,note:'Please insert the cloud region you want to use. Can be "com", "de", etc.'
},
{
id:'yahoo'
,logo:'yahoo.png'
,name:'Yahoo! Mail'
,description:locale['services[19]']
,url:'https://mail.yahoo.com/'
,type:'email'
,note:'To enable desktop notifications, you have to go to Options inside Yahoo! Mail.'
},
{
id:'protonmail'
,logo:'protonmail.png'
,name:'ProtonMail'
,description:locale['services[20]']
,url:'https://mail.protonmail.com/inbox'
,type:'email'
},
{
id:'protonmailch'
,logo:'protonmail.png'
,name:'ProtonMail CH'
,description:locale['services[20]']
,url:'https://app.protonmail.ch/inbox'
,type:'email'
,note:'Read <a href="https://protonmail.com/support/knowledge-base/what-is-the-difference-between-protonmail-com-and-protonmail-ch/" target="_blank">HERE</a> to see the differences between protonmail.com and protonmail.ch.'
},
{
id:'protonmailonion'
,logo:'protonmail.png'
,name:'ProtonMail Onion'
,description:locale['services[20]']
,url:'https://protonirockerxow.onion/inbox'
,type:'email'
,note:'Read <a href="https://protonmail.com/tor" target="_blank">HERE</a> to see the differences between protonmail.com and protonmail hidden service (over TOR).'
,description:'Ryver is a team communication tool that organizes team collaboration, chats, files, and even emails into a single location, for any size team, for FREE.'
,description:'iCloud makes sure you always have the latest versions of your most important things — documents, photos, notes, contacts, and more — on all your devices. It can even help you locate a missing iPhone, iPad, iPod touch or Mac.'
,description:'Amium turns any file into a real-time activity feed and conversation. So you can work better, together.'
,url:'https://___.amium.com/'
,type:'messaging'
},
{
id:'hootsuite'
,logo:'hootsuite.png'
,name:'Hootsuite'
,description:'Enhance your social media management with Hootsuite, the leading social media dashboard. Manage multiple networks and profiles and measure your campaign results.'
,url:'https://hootsuite.com/dashboard'
,type:'messaging'
},
{
id:'zimbra'
,logo:'zimbra.png'
,name:'Zimbra'
,description:'Over 500 million people rely on Zimbra and enjoy enterprise-class open source email collaboration at the lowest TCO in the industry. Discover the benefits!'
,description:'Pushbullet connects your devices, making them feel like one.'
,url:'https://www.pushbullet.com/'
,type:'messaging'
},
{
id:'riot'
,logo:'riot.png'
,name:'Riot'
,description:'Riot is a simple and elegant collaboration environment that gathers all of your different conversations and app integrations into one single app.'
,description:'Socialcast is the premier enterprise social networking platform that connects people to the knowledge, ideas and resources they need to work more effectively.'
,url:'https://___.socialcast.com/'
,type:'messaging'
},
{
id:'fleep'
,logo:'fleep.png'
,name:'Fleep'
,description:'Fleep enables communication within and across organizations - be it your team chats, project communication or 1:1 conversations.'
,description:'Cisco Webex Teams is for group chat, video calling, and sharing documents with your team. It’s all backed by Cisco security and reliability.'
,url:'https://teams.webex.com/'
,type:'messaging'
},
{
id:'drift'
,logo:'drift.png'
,name:'Drift'
,description:'Drift is a messaging app that makes it easy for businesses to talk to their website visitors and customers in real-time, from anywhere.'
,url:'https://app.drift.com/'
,type:'messaging'
},
{
id:'typetalk'
,logo:'typetalk.png'
,name:'Typetalk'
,description:'Typetalk brings fun and ease to team discussions through instant messaging on desktop and mobile devices.'
,url:'https://typetalk.in/signin'
,type:'messaging'
},
{
id:'openmailbox'
,logo:'openmailbox.png'
,name:'Openmailbox'
,description:'Free mail hosting. Respect your rights and your privacy.'
,url:'https://app.openmailbox.org/webmail/'
,type:'email'
},
{
id:'flock'
,logo:'flock.png'
,name:'Flock'
,description:'Flock is a free enterprise tool for business communication. Packed with tons of productivity features, Flock drives efficiency and boosts speed of execution.'
js_unread:'(function() { let originalTitle = document.title; function checkUnread() { let count = null; let notificationElement = document.querySelector(\'[data-update="unread_conversations"]\'); if (notificationElement && notificationElement.style.display !== \'none\') { count = parseInt(notificationElement.textContent.trim(), 10); } updateBadge(count); } function updateBadge(count) { if (count && count >= 1) { rambox.setUnreadCount(count); } else { rambox.clearUnreadCount(); } } setInterval(checkUnread, 3000); checkUnread(); })();',
},
{
id:'threema',
logo:'threema.png',
name:'Threema',
description:'Seriously secure messaging',
url:'https://web.threema.ch/',
type:'messaging',
js_unread:'(function () { let unreadCount = 0; function checkUnread() { let newUnread = 0; try { let webClientService = angular.element(document.documentElement).injector().get(\'WebClientService\'); let conversations = webClientService.conversations.conversations; conversations.forEach(function(conversation) { newUnread += conversation.unreadCount; }); } catch (e) { } if (newUnread !== unreadCount) { unreadCount = newUnread; updateBadge(unreadCount); } } function updateBadge(count) { if (count && count >= 1) { rambox.setUnreadCount(count); } else { rambox.clearUnreadCount(); } } setInterval(checkUnread, 3000); checkUnread(); })();',
},
{
id:'workplace'
,logo:'workplace.png'
,name:'Workplace'
,description:'Connect everyone in your company and turn ideas into action. Through group discussion, a personalised News Feed, and voice and video calling, work together and get more done. Workplace is an ad-free space, separate from your personal Facebook account.'
,url:'https://___.facebook.com/'
,type:'messaging'
},
{
id:'teams'
,logo:'teams.png'
,name:'Teams'
,description:'Microsoft Teams is the chat-based workspace in Office 365 that integrates all the people, content, and tools your team needs to be more engaged and effective.'
,url:'https://teams.microsoft.com'
,type:'messaging'
},
{
id:'kezmo'
,logo:'kezmo.png'
,name:'Kezmo'
,description:'Kezmo is an enterprise chat and collaboration tool to help teams get things done. It’s an email alternative for secure team communication.'
,description:'Manage your professional identity. Build and engage with your professional network. Access knowledge, insights and opportunities.'
,url:'https://www.linkedin.com/messaging'
,type:'messaging'
},
{
id:'zyptonite'
,logo:'zyptonite.png'
,name:'Zyptonite'
,description:'Zyptonite is the ultimate cyber secure communication tool for enterprise customers designed to address the need to securely communicate via voice, video, and chat, and transfer files and information across a global mobile workforce.'
,description:'Secure, reliable email hosting for businesses, families and professionals. Premium email with no ads, excellent spam protection and rapid personal support.'
,description:'Mastodon is a free, open-source social network server. A decentralized solution to commercial platforms, it avoids the risks of a single company monopolizing your communication. Anyone can run Mastodon and participate in the social network seamlessly.'
,url:'https://mastodon.social/auth/sign_in'
,type:'messaging'
,custom_domain:true
,note:'<a href="https://instances.mastodon.xyz/" target="_blank">List of instances</a>'
},
{
id:'teamworkchat'
,logo:'teamworkchat.png'
,name:'Teamwork Chat'
,description:'Say goodbye to email. Take your online collaboration to the next level with Teamwork Chat and keep all team discussions in one place. Chat to your team in a fun and informal way with Teamwork Chat.'
,description:'Schedule your Tweets with love. Save time and manage your social media strategy easily.'
,url:'https://clocktweets.com/dashboard/'
,type:'messaging'
},
{
id:'intercom'
,logo:'intercom.png'
,name:'Intercom'
,description:'Intercom makes it easy to communicate with your customers personally, at scale. Designed to feel like the messaging apps you use every day, Intercom lets you talk to consumers almost anywhere: inside your app, on your website, across social media and via email.'
,description:'Google Allo is a smart messaging app that helps you say more and do more. Express yourself better with stickers, doodles, and HUGE emojis & text. Allo also brings you the Google Assistant.'
,description:'Kune is a web tool, based on Apache Wave, for creating environments of constant inter-communication, collective intelligence, knowledge and shared work.'
,url:'https://kune.cc'
,type:'messaging'
},
{
id:'googlevoice'
,logo:'googlevoice.png'
,name:'Google Voice'
,description:'A free phone number for life. Stay in touch from any screen. Use your free number to text, call, and check voicemail all from one app. Plus, Google Voice works on all of your devices so you can connect and communicate how you want.'
,description:'Text on your computer with Messages for web.'
,url:'https://messages.android.com/'
,type:'messaging'
,js_unread:'function checkUnread(){var t = document.querySelectorAll(".tpEAA.yrs5ff").length;if(t>=1){rambox.setUnreadCount(t)}else{rambox.clearUnreadCount()}}setInterval(checkUnread,3000);'
},
{
id:'tawktochat'
,logo:'tawkto.png'
,name:'Tawk.to Chat'
,description:'A chat platform built for monitor and chat with visitors on your website.'
,url:'https://dashboard.tawk.to/'
,type:'messaging'
},
{
id:'sococo'
,logo:'sococo.png'
,name:'Sococo'
,description:'Sococo is an online workplace that adds the magic of co-location back into the day to day life of distributed Agile teams.'
setTimeout(()=>Ext.getCmp(me.id+'statusbar').setStatus({text:'<i class="fa fa-warning fa-fw" aria-hidden="true"></i> The service failed at loading, Error: '+v}),1000);
'<i class="fa fa-exclamation-triangle" aria-hidden="true"></i> <b>This version of Rambox is no longer supported.</b> We highly recommend that you update to the new version of Rambox which has a free plan with all the features you already use and much more!'
// optionally render this information also in rambox window
try{
const{available}=awaitdisk.check(appPath);
if(available<1073741824){// 1 GB
constoptions={
type:'warning',
buttons:['OK, quit'],
defaultId:0,
title:`Running out of disk space! - Rambox shutting down`,
detail:`You've got just ${formatBytes(available)} space left.\n\nRambox has been frozen to prevent settings corruption.\n\nOnce you quit this dialog, Rambox will shutdown.\n\n1 GB of avalable disk space is required.\nFree up space on partition where Rambox is installed then start the app again.\n\nRambox path: \n${appPath}`,
message:`Running out of disk space! - Rambox shutting down`,
alert('Please, check your internet connection and restart Rambox. If you use a Proxy, please go to Preferences to configure it.', 'No Internet Connection');
}
}
}
</script>
<!-- The line below must be kept intact for Sencha Cmd to build your application -->
"setup:osx":"npm run sencha:clean && npm run sencha:compile && npm run clean:osx && npm run pack:osx && npm run build:osx && npm run build:osx64 && npm run build:osxarm64",
"setup:osx":"npm run sencha:clean && npm run sencha:compile && npm run clean:osx && npm run pack:osx && npm run build:osx",
"setup:win":"npm run sencha:clean && npm run sencha:compile && npm run clean:win && npm run pack:win && npm run build:win",
"all:win":"npm run sencha:clean && npm run sencha:compile && npm run clean:win && npm run pack:win && npm run zip:win32 && npm run zip:win64 && npm run build:win",
"all:linux":"npm run sencha:clean && npm run sencha:compile && npm run build:linux",