diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..3b66410 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "git.ignoreLimitWarning": true +} \ No newline at end of file diff --git a/app.json b/app.json index 6d23a83..f2f3bcc 100644 --- a/app.json +++ b/app.json @@ -3,7 +3,7 @@ "name": "מהפכה של שמחה", "description": "אפליקציה לעידוד התנדבויות בבתי חולים", "slug": "StartachHapRev", - "version": "1.0.0", + "version": "1.0.1", "icon": "./src/images/haprevLogo.png", "sdkVersion": "25.0.0", "privacy": "public", diff --git a/src/views/adminActivities/CreateActivityView.js b/src/views/adminActivities/CreateActivityView.js index d2143ed..6d854a2 100644 --- a/src/views/adminActivities/CreateActivityView.js +++ b/src/views/adminActivities/CreateActivityView.js @@ -1,7 +1,8 @@ import React, { Component } from 'react'; -import {View, Text, TextInput, KeyboardAvoidingView, Keyboard, TouchableOpacity, Modal, TouchableWithoutFeedback} from "react-native"; +import {View, Text, TextInput, KeyboardAvoidingView, Keyboard, TouchableOpacity, Modal, TouchableWithoutFeedback, Switch, ActivityIndicator} from "react-native"; import DateTimePicker from 'react-native-modal-datetime-picker'; import {CreateActivityStyle as styles } from './styles'; +import {sendNotificationToAllUsers} from '../notification/NotificationService'; class CreateActivityView extends Component { constructor(props) { @@ -18,6 +19,8 @@ class CreateActivityView extends Component { isButtonDisabled: true, modalVisible:false, success:false, + notificationToAll:true, + loading:false, }; } _showDateTimePicker = () => { @@ -47,6 +50,19 @@ class CreateActivityView extends Component { res = await this.props.onNewActivityHandler(this.state.fullDate,this.state.fullTime,this.state.activityName,this.state.fullFormatDate) if(res === 'ok') this.setState({success : true}); + //send notification to all users + if(this.state.notificationToAll){ + const { hospital, first, last } = this.props; + let activity = { + hospital: hospital, + coordinatorName: first +' '+ last, + nameActivity: this.state.activityName, + time: this.state.fullDate, + } + this.setState({loading:true}) + await sendNotificationToAllUsers(activity) + this.setState({loading:false}) + } this.setState({modalVisible : true}); } else{ @@ -100,12 +116,28 @@ class CreateActivityView extends Component { : this.alertDate } + + לשלוח התראות על האירוע לכל המשתמשים? + this.setState({notificationToAll:!this.state.notificationToAll})} + value={this.state.notificationToAll} + /> + + { + !this.state.loading ? אישור + : + + } diff --git a/src/views/notification/NotificationService.js b/src/views/notification/NotificationService.js index 523d54d..118c237 100644 --- a/src/views/notification/NotificationService.js +++ b/src/views/notification/NotificationService.js @@ -57,4 +57,18 @@ export const getUserTokenNotification = async(userId) =>{ }) .catch(error => {console.log('Error ' + error);}) return userToken +} + +export const sendNotificationToAllUsers = async(activity) =>{ + let titleMsg = 'פעילות חדשה ב' +hospital + ' ב' +time; + let contentMsg = 'הפעילות ' + nameActivity + ' עם הרכז ' + coordinatorName + ' מוזמנים להרשם!'; + firebase.database().ref('users').once('value' , + snapshot => { + var users = snapshot.val() + var usersList = Object.keys(users).map((u,k) => {return users[u].settings && users[u].settings.token!=='' && users[u].settings.token}) + .filter(x=> x&&x) + usersList.forEach(userToken=>{ + sendPushNotification(userToken,titleMsg,contentMsg) + }) + }) } \ No newline at end of file