mirror of
				https://github.com/pierre42100/ComunicWeb
				synced 2025-11-03 19:54:14 +00:00 
			
		
		
		
	Send a request to the server to create the group
This commit is contained in:
		
							
								
								
									
										25
									
								
								assets/css/pages/groups/pages/create.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								assets/css/pages/groups/pages/create.css
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
				
			|||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Create groups page main stylesheet
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @author Pierre HUBERT
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.create-group-page {
 | 
				
			||||||
 | 
						max-width: 450px;
 | 
				
			||||||
 | 
						margin: auto;
 | 
				
			||||||
 | 
						padding-top: 60px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.create-group-page form {
 | 
				
			||||||
 | 
						border: 1px #162935 solid;
 | 
				
			||||||
 | 
						padding: 15px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.create-group-page form h3 {
 | 
				
			||||||
 | 
						text-align: center;
 | 
				
			||||||
 | 
						margin-top: 0px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.create-group-page .submit-button-container {
 | 
				
			||||||
 | 
						text-align: center;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -993,7 +993,21 @@ var ComunicWeb = {
 | 
				
			|||||||
				//TODO : implement
 | 
									//TODO : implement
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		}
 | 
							},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							/**
 | 
				
			||||||
 | 
							 * Groups component
 | 
				
			||||||
 | 
							 */
 | 
				
			||||||
 | 
							groups: {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								/**
 | 
				
			||||||
 | 
								 * API interface
 | 
				
			||||||
 | 
								 */
 | 
				
			||||||
 | 
								interface: {
 | 
				
			||||||
 | 
									//TODO : implement
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1189,7 +1203,14 @@ var ComunicWeb = {
 | 
				
			|||||||
				 */
 | 
									 */
 | 
				
			||||||
				main: {
 | 
									main: {
 | 
				
			||||||
					//TODO : implement
 | 
										//TODO : implement
 | 
				
			||||||
				}
 | 
									},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									/**
 | 
				
			||||||
 | 
									 * Create a group page
 | 
				
			||||||
 | 
									 */
 | 
				
			||||||
 | 
									create: {
 | 
				
			||||||
 | 
										//TODO : implement
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										25
									
								
								assets/js/components/groups/interface.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								assets/js/components/groups/interface.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
				
			|||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Groups API interface
 | 
				
			||||||
 | 
					 * 
 | 
				
			||||||
 | 
					 * @author Pierre HUBERT
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ComunicWeb.components.groups.interface = {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Create a group
 | 
				
			||||||
 | 
					     * 
 | 
				
			||||||
 | 
					     * @param {String} name The name of the group to create
 | 
				
			||||||
 | 
					     * @param {Function} callback
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    create: function(name, callback){
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //Perform a request over the API
 | 
				
			||||||
 | 
					        var apiURI = "groups/create";
 | 
				
			||||||
 | 
					        var params = {
 | 
				
			||||||
 | 
					            name: name
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					        ComunicWeb.common.api.makeAPIrequest(apiURI, params, true, callback);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
@@ -6,7 +6,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
ComunicWeb.pages.groups.main = {
 | 
					ComunicWeb.pages.groups.main = {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
						/**
 | 
				
			||||||
	 * Open settings page
 | 
						 * Open settings page
 | 
				
			||||||
	 * 
 | 
						 * 
 | 
				
			||||||
	 * @param {object} args Optionnal arguments
 | 
						 * @param {object} args Optionnal arguments
 | 
				
			||||||
@@ -14,29 +14,34 @@ ComunicWeb.pages.groups.main = {
 | 
				
			|||||||
	 */
 | 
						 */
 | 
				
			||||||
	open: function(args, target){
 | 
						open: function(args, target){
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        //Determine which page / group should be opened
 | 
							//Determine which page / group should be opened
 | 
				
			||||||
        if(!args.subfolder)
 | 
							if(!args.subfolder)
 | 
				
			||||||
            var page = "main";
 | 
								var page = "main";
 | 
				
			||||||
        
 | 
							
 | 
				
			||||||
        else {
 | 
							else {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            //Extract the name of the page from the URL
 | 
								//Extract the name of the page from the URL
 | 
				
			||||||
            if(!args.subfolder.includes("/"))
 | 
								if(!args.subfolder.includes("/"))
 | 
				
			||||||
                var page = args.subfolder;
 | 
									var page = args.subfolder;
 | 
				
			||||||
            else {
 | 
								else {
 | 
				
			||||||
                var page = args.subfolder.split("/")[0];
 | 
									var page = args.subfolder.split("/")[0];
 | 
				
			||||||
            }
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        }
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        //Check if the main page has to be opened
 | 
							//Check if the main page has to be opened
 | 
				
			||||||
        if(page == "main"){
 | 
							if(page == "main" && signed_in()){
 | 
				
			||||||
            ComunicWeb.pages.groups.pages.main.open(target);
 | 
								ComunicWeb.pages.groups.pages.main.open(target);
 | 
				
			||||||
        }
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        //Else the page was not found
 | 
							//Check if the page to create a group has to be opened
 | 
				
			||||||
        else
 | 
							else if (page == "create" && signed_in()){
 | 
				
			||||||
            ComunicWeb.common.error.pageNotFound(args, target);
 | 
								ComunicWeb.pages.groups.pages.create.open(target);
 | 
				
			||||||
    }
 | 
							}
 | 
				
			||||||
    
 | 
					
 | 
				
			||||||
 | 
							//Else the page was not found
 | 
				
			||||||
 | 
							else
 | 
				
			||||||
 | 
								ComunicWeb.common.error.pageNotFound(args, target);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
							
								
								
									
										89
									
								
								assets/js/pages/groups/pages/create.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										89
									
								
								assets/js/pages/groups/pages/create.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,89 @@
 | 
				
			|||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Create a group page
 | 
				
			||||||
 | 
					 * 
 | 
				
			||||||
 | 
					 * @author Pierre HUBERT
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ComunicWeb.pages.groups.pages.create = {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Open the page
 | 
				
			||||||
 | 
						 * 
 | 
				
			||||||
 | 
						 * @param {HTMLElement} target The target of the page
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						open: function(target){
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							//Update page title
 | 
				
			||||||
 | 
							document.title = "Create a group";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							//Create page container
 | 
				
			||||||
 | 
							var pageContainer = createElem2({
 | 
				
			||||||
 | 
								appendTo: target,
 | 
				
			||||||
 | 
								type: "div",
 | 
				
			||||||
 | 
								class: "create-group-page"
 | 
				
			||||||
 | 
							});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							//Form container
 | 
				
			||||||
 | 
							var formContainer = createElem2({
 | 
				
			||||||
 | 
								appendTo: pageContainer,
 | 
				
			||||||
 | 
								type: "form",
 | 
				
			||||||
 | 
							});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							//Form title
 | 
				
			||||||
 | 
							createElem2({
 | 
				
			||||||
 | 
								appendTo: formContainer,
 | 
				
			||||||
 | 
								type: "h3",
 | 
				
			||||||
 | 
								innerHTML: "Create a group"
 | 
				
			||||||
 | 
							})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							//Group name input
 | 
				
			||||||
 | 
							var nameInput = createFormGroup({
 | 
				
			||||||
 | 
								target: formContainer,
 | 
				
			||||||
 | 
								label: "Group name",
 | 
				
			||||||
 | 
								placeholder: "The name of the group",
 | 
				
			||||||
 | 
								type: "text"
 | 
				
			||||||
 | 
							});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							//Add submit button
 | 
				
			||||||
 | 
							var submitContainer = createElem2({
 | 
				
			||||||
 | 
								appendTo: formContainer,
 | 
				
			||||||
 | 
								type: "div",
 | 
				
			||||||
 | 
								class: "submit-button-container"
 | 
				
			||||||
 | 
							});
 | 
				
			||||||
 | 
							createElem2({
 | 
				
			||||||
 | 
								appendTo: submitContainer,
 | 
				
			||||||
 | 
								type: "input",
 | 
				
			||||||
 | 
								elemType: "submit",
 | 
				
			||||||
 | 
								class: "btn btn-primary",
 | 
				
			||||||
 | 
								value: "Create"
 | 
				
			||||||
 | 
							});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							//Handle form submit
 | 
				
			||||||
 | 
							formContainer.onsubmit = function(){
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								//Check user inputs
 | 
				
			||||||
 | 
								if(!ComunicWeb.common.formChecker.checkInput(nameInput, true)){
 | 
				
			||||||
 | 
									notify("Please specify the name of the group!", "danger");
 | 
				
			||||||
 | 
									return false;	
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								//Perform a request on the server to create the group
 | 
				
			||||||
 | 
								ComunicWeb.components.groups.interface.create(nameInput.value, function(res){
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									//Check for errors
 | 
				
			||||||
 | 
									if(res.error){
 | 
				
			||||||
 | 
										return notify("An error occured while trying to create the group!", "danger");
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									//Redirect to the group page
 | 
				
			||||||
 | 
									openPage("groups/" + res.id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								//Prevent default behavior
 | 
				
			||||||
 | 
								return false;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
@@ -219,6 +219,7 @@ class Dev {
 | 
				
			|||||||
			//Groups page
 | 
								//Groups page
 | 
				
			||||||
				//Groups pages
 | 
									//Groups pages
 | 
				
			||||||
				"css/pages/groups/pages/main.css",
 | 
									"css/pages/groups/pages/main.css",
 | 
				
			||||||
 | 
									"css/pages/groups/pages/create.css",
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			//Settings page
 | 
								//Settings page
 | 
				
			||||||
				//Sections sections
 | 
									//Sections sections
 | 
				
			||||||
@@ -378,6 +379,9 @@ class Dev {
 | 
				
			|||||||
			"js/components/notifications/ui.js",
 | 
								"js/components/notifications/ui.js",
 | 
				
			||||||
			"js/components/notifications/utils.js",
 | 
								"js/components/notifications/utils.js",
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								//Groups component
 | 
				
			||||||
 | 
								"js/components/groups/interface.js",
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		//User scripts
 | 
							//User scripts
 | 
				
			||||||
		"js/user/loginTokens.js",
 | 
							"js/user/loginTokens.js",
 | 
				
			||||||
		"js/user/userLogin.js",
 | 
							"js/user/userLogin.js",
 | 
				
			||||||
@@ -411,7 +415,10 @@ class Dev {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
			//Groups page
 | 
								//Groups page
 | 
				
			||||||
			"js/pages/groups/main.js",
 | 
								"js/pages/groups/main.js",
 | 
				
			||||||
			"js/pages/groups/pages/main.js",
 | 
					
 | 
				
			||||||
 | 
									//Groups sub pages
 | 
				
			||||||
 | 
									"js/pages/groups/pages/main.js",
 | 
				
			||||||
 | 
									"js/pages/groups/pages/create.js",
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			//User settings page
 | 
								//User settings page
 | 
				
			||||||
			"js/pages/settings/main.js",
 | 
								"js/pages/settings/main.js",
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user