handling missing setting values
- default value given to panelDisplyLocation if missing instead of showing an error msg - sending an error msg when user tries to use the plugin if settings are missing - send a warn msg in the console on server start and when using the plugin if settings are missing
This commit is contained in:
		
							parent
							
								
									941ede5daf
								
							
						
					
					
						commit
						0bccbc5ce1
					
				
					 3 changed files with 44 additions and 16 deletions
				
			
		
							
								
								
									
										3
									
								
								ep.json
									
										
									
									
									
								
							
							
						
						
									
										3
									
								
								ep.json
									
										
									
									
									
								
							|  | @ -15,7 +15,8 @@ | |||
|         "postAceInit":"ep_email_notifications/static/js/ep_email:postAceInit", | ||||
|         "handleClientMessage_emailSubscriptionSuccess":"ep_email_notifications/static/js/ep_email", | ||||
|         "handleClientMessage_emailUnsubscriptionSuccess":"ep_email_notifications/static/js/ep_email", | ||||
|         "handleClientMessage_emailNotificationGetUserInfo":"ep_email_notifications/static/js/ep_email" | ||||
|         "handleClientMessage_emailNotificationGetUserInfo":"ep_email_notifications/static/js/ep_email", | ||||
|         "handleClientMessage_emailNotificationMissingParams":"ep_email_notifications/static/js/ep_email" | ||||
|       } | ||||
|     } | ||||
|   ] | ||||
|  |  | |||
|  | @ -6,11 +6,14 @@ randomString = require('../../src/static/js/pad_utils').randomString; | |||
| settings = require('../../src/node/utils/Settings'); | ||||
| 
 | ||||
| var pluginSettings = settings.ep_email_notifications; | ||||
| var areParamsOk = (pluginSettings)?true:false; | ||||
| var fromName = (pluginSettings && pluginSettings.fromName)?pluginSettings.fromName:"Etherpad"; | ||||
| var fromEmail = (pluginSettings && pluginSettings.fromEmail)?pluginSettings.fromEmail:"pad@etherpad.org"; | ||||
| var urlToPads = (pluginSettings && pluginSettings.urlToPads)?pluginSettings.urlToPads:"http://beta.etherpad.org/p/"; | ||||
| var emailServer = (pluginSettings && pluginSettings.emailServer)?pluginSettings.emailServer:{host:"127.0.0.1"}; | ||||
| 
 | ||||
| if (areParamsOk == false) console.warn("Settings for ep_email_notifications plugin are missing in settings.json file"); | ||||
| 
 | ||||
| // Connect to the email server -- This might not be the ideal place to connect but it stops us having lots of connections 
 | ||||
| var server  = email.server.connect(emailServer); | ||||
| 
 | ||||
|  | @ -18,7 +21,15 @@ var server  = email.server.connect(emailServer); | |||
| exports.handleMessage = function(hook_name, context, callback){ | ||||
|   if (context.message && context.message.data){ | ||||
|     if (context.message.data.type == 'USERINFO_UPDATE' ) { // if it's a request to update an authors email
 | ||||
|       if (context.message.data.userInfo){ | ||||
|       if (areParamsOk == false) { | ||||
|         context.client.json.send({ type: "COLLABROOM", | ||||
|           data:{ | ||||
|             type: "emailNotificationMissingParams", | ||||
|             payload: true | ||||
|           } | ||||
|         }); | ||||
|         console.warn("Settings for ep_email_notifications plugin are missing in settings.json file"); | ||||
|       } else if (context.message.data.userInfo){ | ||||
|         if(context.message.data.userInfo.email){ // it contains email
 | ||||
|           console.debug(context.message); | ||||
| 
 | ||||
|  |  | |||
|  | @ -6,21 +6,12 @@ if(typeof exports == 'undefined'){ | |||
| } | ||||
| 
 | ||||
| exports.postAceInit = function(hook, context){ | ||||
|   // Test if settings are good before continuing
 | ||||
|   // If panelDisplayLocation setting is missing, set default value
 | ||||
|   if (typeof clientVars.panelDisplayLocation != "object") { | ||||
|     $.gritter.add({ | ||||
|       // (string | mandatory) the heading of the notification
 | ||||
|       title: window._('ep_email_notifications.titleGritterError'), | ||||
|       // (string | mandatory) the text inside the notification
 | ||||
|       text: window._('ep_email_notifications.msgParamsMissing'), | ||||
|       // (bool | optional) if you want it to fade out on its own or just sit there
 | ||||
|       sticky: true | ||||
|     }); | ||||
| 
 | ||||
|     // Hide the notification menu in mysettings
 | ||||
|     $('#options-emailNotifications').parent().hide(); | ||||
| 
 | ||||
|     return false; | ||||
|     clientVars.panelDisplayLocation = { | ||||
|        mysettings: true,  // In the "mysettings" menu
 | ||||
|        popup: true | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   // If plugin settings set panel form in mysettings menu
 | ||||
|  | @ -118,6 +109,31 @@ exports.handleClientMessage_emailNotificationGetUserInfo = function (hook, conte | |||
|   } | ||||
| } | ||||
| 
 | ||||
| exports.handleClientMessage_emailNotificationMissingParams = function (hook, context) { // Settings are missing in settings.json file
 | ||||
|   if (context.payload == true) { | ||||
|     $.gritter.add({ | ||||
|       // (string | mandatory) the heading of the notification
 | ||||
|       title: window._('ep_email_notifications.titleGritterError'), | ||||
|       // (string | mandatory) the text inside the notification
 | ||||
|       text: window._('ep_email_notifications.msgParamsMissing'), | ||||
|       // (bool | optional) if you want it to fade out on its own or just sit there
 | ||||
|       sticky: true | ||||
|     }); | ||||
| 
 | ||||
|     // Hide the notification menu in mysettings
 | ||||
|     if (clientVars.panelDisplayLocation.mysettings == true && $('.ep_email_settings').is(":visible")) { | ||||
|       $('.ep_email_settings').slideToggle(); | ||||
|       $('#options-emailNotifications').prop('checked', false); | ||||
|       $('#options-emailNotifications').parent().hide(); | ||||
|     } | ||||
| 
 | ||||
|     // Hide the popup if it is visible
 | ||||
|     if (clientVars.panelDisplayLocation.popup == true && $('#ep_email_form_popup').is(":visible")) { | ||||
|       $('#ep_email_form_popup').parent().parent().parent().hide(); | ||||
|     } | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * Initialize the popup panel form for subscription | ||||
|  */ | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 quenenni
						quenenni