Compare commits
	
		
			312 Commits
		
	
	
		
			v2.5.2
			...
			release/v3
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					fa2b923111 | ||
| 
						 | 
					9b56a5ea87 | ||
| 
						 | 
					2ec6837dce | ||
| 
						 | 
					bd737ef563 | ||
| 
						 | 
					e250bd38f8 | ||
| 
						 | 
					7083da702a | ||
| 
						 | 
					3d01c20339 | ||
| 
						 | 
					3b74649206 | ||
| 
						 | 
					a10f0c992e | ||
| 
						 | 
					32974620c4 | ||
| 
						 | 
					0781e3ad8e | ||
| 
						 | 
					0ce107eea0 | ||
| 
						 | 
					73e3efd92f | ||
| 
						 | 
					69bff8d8fe | ||
| 
						 | 
					22b223f82f | ||
| 
						 | 
					7b0d43c8b8 | ||
| 
						 | 
					7c64fb7a11 | ||
| 
						 | 
					61f8b69f02 | ||
| 
						 | 
					c32fedeb4c | ||
| 
						 | 
					4ba3bed742 | ||
| 
						 | 
					810318b584 | ||
| 
						 | 
					863fda3ef3 | ||
| 
						 | 
					deb7715ea1 | ||
| 
						 | 
					adaebb17e7 | ||
| 
						 | 
					e3f6ab43ff | ||
| 
						 | 
					cf977b7612 | ||
| 
						 | 
					fedb60fc8f | ||
| 
						 | 
					f8ddf88b8c | ||
| 
						 | 
					9e3df09fb2 | ||
| 
						 | 
					301581da63 | ||
| 
						 | 
					88cb945760 | ||
| 
						 | 
					c61d0052a9 | ||
| 
						 | 
					147c3a1153 | ||
| 
						 | 
					2445935627 | ||
| 
						 | 
					e9f1e4d8da | ||
| 
						 | 
					f3a995f68f | ||
| 
						 | 
					a967163d28 | ||
| 
						 | 
					d3514213ca | ||
| 
						 | 
					a55341f406 | ||
| 
						 | 
					1c9a5bfa18 | ||
| 
						 | 
					179900fab0 | ||
| 
						 | 
					9011e30521 | ||
| 
						 | 
					418f4ce576 | ||
| 
						 | 
					9eb65237f9 | ||
| 
						 | 
					89a667569b | ||
| 
						 | 
					b87091a33a | ||
| 
						 | 
					d9a659acbc | ||
| 
						 | 
					ec8347fd7d | ||
| 
						 | 
					b161729c46 | ||
| 
						 | 
					2194a7fc23 | ||
| 
						 | 
					03c6471e97 | ||
| 
						 | 
					be52ed7d44 | ||
| 
						 | 
					3afc9db5d3 | ||
| 
						 | 
					30d882e1c0 | ||
| 
						 | 
					4836279b77 | ||
| 
						 | 
					4a74bfebc4 | ||
| 
						 | 
					653cd758f4 | ||
| 
						 | 
					e65f577202 | ||
| 
						 | 
					3f9478de30 | ||
| 
						 | 
					070a03c73e | ||
| 
						 | 
					244692e766 | ||
| 
						 | 
					a154fffcce | ||
| 
						 | 
					ae0c529fca | ||
| 
						 | 
					edcca87acf | ||
| 
						 | 
					356188a350 | ||
| 
						 | 
					cafb950aa7 | ||
| 
						 | 
					549627a355 | ||
| 
						 | 
					e6307648da | ||
| 
						 | 
					fab4467bfd | ||
| 
						 | 
					37666c5075 | ||
| 
						 | 
					871efc88b5 | ||
| 
						 | 
					db5611233b | ||
| 
						 | 
					caa1fd4d9b | ||
| 
						 | 
					be3f5548f4 | ||
| 
						 | 
					a33740c372 | ||
| 
						 | 
					130d71d5a0 | ||
| 
						 | 
					bcd9c692e6 | ||
| 
						 | 
					5947f3362d | ||
| 
						 | 
					4bbfbb82bc | ||
| 
						 | 
					6f7876d3e7 | ||
| 
						 | 
					d4aff8067e | ||
| 
						 | 
					eaca70d29b | ||
| 
						 | 
					a1889c88d3 | ||
| 
						 | 
					53b3926e29 | ||
| 
						 | 
					745e76db79 | ||
| 
						 | 
					82e153c277 | ||
| 
						 | 
					b080b73b97 | ||
| 
						 | 
					1c05d8df28 | ||
| 
						 | 
					efc80a183b | ||
| 
						 | 
					8a92912035 | ||
| 
						 | 
					b870cf828a | ||
| 
						 | 
					4cb4fe53a5 | ||
| 
						 | 
					f70992e9a1 | ||
| 
						 | 
					eb48d77636 | ||
| 
						 | 
					df1686a2ae | ||
| 
						 | 
					8781c78c15 | ||
| 
						 | 
					ad5b0ce2a0 | ||
| 
						 | 
					039e641046 | ||
| 
						 | 
					f1f62efe6f | ||
| 
						 | 
					b3053f32b2 | ||
| 
						 | 
					09184b0402 | ||
| 
						 | 
					98562fd967 | ||
| 
						 | 
					65e9e64cb4 | ||
| 
						 | 
					573ecbd58d | ||
| 
						 | 
					a801fcca49 | ||
| 
						 | 
					e9d16ee172 | ||
| 
						 | 
					db4dfc93e8 | ||
| 
						 | 
					cf17f03ae0 | ||
| 
						 | 
					64f3ee797e | ||
| 
						 | 
					e287705e88 | ||
| 
						 | 
					9583b2bae0 | ||
| 
						 | 
					2698993a6d | ||
| 
						 | 
					a14b595e8c | ||
| 
						 | 
					d7957b85ae | ||
| 
						 | 
					227a51423d | ||
| 
						 | 
					ea0e7340cc | ||
| 
						 | 
					999680e94b | ||
| 
						 | 
					566dbbb157 | ||
| 
						 | 
					75d995d54e | ||
| 
						 | 
					908faa491b | ||
| 
						 | 
					7a254e343e | ||
| 
						 | 
					016ac336b9 | ||
| 
						 | 
					1cfd3a10ad | ||
| 
						 | 
					1838029d22 | ||
| 
						 | 
					7767043a5a | ||
| 
						 | 
					b1cfa6db19 | ||
| 
						 | 
					623d5a5546 | ||
| 
						 | 
					8c676eb965 | ||
| 
						 | 
					1e4ccce36c | ||
| 
						 | 
					1808206e74 | ||
| 
						 | 
					0fbc2b92aa | ||
| 
						 | 
					42d274e988 | ||
| 
						 | 
					ec64680a66 | ||
| 
						 | 
					d006b89efd | ||
| 
						 | 
					48654c382d | ||
| 
						 | 
					8d23168a87 | ||
| 
						 | 
					e27baaec9d | ||
| 
						 | 
					31a37ae506 | ||
| 
						 | 
					6360f90102 | ||
| 
						 | 
					b829003711 | ||
| 
						 | 
					fae773b25a | ||
| 
						 | 
					0e8df4441d | ||
| 
						 | 
					35e7e26d67 | ||
| 
						 | 
					14c88280f5 | ||
| 
						 | 
					aaab9d3bc5 | ||
| 
						 | 
					02095595c6 | ||
| 
						 | 
					9a80664ce2 | ||
| 
						 | 
					b69e7e4ddf | ||
| 
						 | 
					db642782b0 | ||
| 
						 | 
					33dedbbfa3 | ||
| 
						 | 
					a8f53de511 | ||
| 
						 | 
					3b7dad989f | ||
| 
						 | 
					4d62c5298a | ||
| 
						 | 
					538c6b5233 | ||
| 
						 | 
					969a14802b | ||
| 
						 | 
					5c7f683d16 | ||
| 
						 | 
					c7874e5e40 | ||
| 
						 | 
					628e4fa873 | ||
| 
						 | 
					8e01abbeb6 | ||
| 
						 | 
					89ee99f98d | ||
| 
						 | 
					21452d091f | ||
| 
						 | 
					d21f55b476 | ||
| 
						 | 
					d01453ea1d | ||
| 
						 | 
					09e3327e94 | ||
| 
						 | 
					00deeb9fdd | ||
| 
						 | 
					0aed1ba04f | ||
| 
						 | 
					526947e3a1 | ||
| 
						 | 
					b52308df80 | ||
| 
						 | 
					bdb9e02df0 | ||
| 
						 | 
					6273020127 | ||
| 
						 | 
					4d1a464954 | ||
| 
						 | 
					9711ab6c5f | ||
| 
						 | 
					95963eb0be | ||
| 
						 | 
					0596edb0a1 | ||
| 
						 | 
					7ac82d4ad9 | ||
| 
						 | 
					74a9ad955b | ||
| 
						 | 
					c23cce672c | ||
| 
						 | 
					d39b4b3624 | ||
| 
						 | 
					2c3ebeec09 | ||
| 
						 | 
					86f2ffa61f | ||
| 
						 | 
					017781ff35 | ||
| 
						 | 
					7d72ad0f37 | ||
| 
						 | 
					152033f98a | ||
| 
						 | 
					c21bf5b87d | ||
| 
						 | 
					fa60d40171 | ||
| 
						 | 
					d80d5557c8 | ||
| 
						 | 
					6c7ac8d7f4 | ||
| 
						 | 
					d72867da35 | ||
| 
						 | 
					14347b73f2 | ||
| 
						 | 
					11e2bf4cbb | ||
| 
						 | 
					b2553d35fd | ||
| 
						 | 
					58f8a02557 | ||
| 
						 | 
					34450144ba | ||
| 
						 | 
					f9e08d53af | ||
| 
						 | 
					006e402d9f | ||
| 
						 | 
					8132012534 | ||
| 
						 | 
					3e8f02eea4 | ||
| 
						 | 
					7312980453 | ||
| 
						 | 
					8c20d41d89 | ||
| 
						 | 
					d50d53ac1f | ||
| 
						 | 
					b0d7ab2e81 | ||
| 
						 | 
					91223b7518 | ||
| 
						 | 
					616e4b6e0c | ||
| 
						 | 
					5170ea81e7 | ||
| 
						 | 
					53a8cd8ee4 | ||
| 
						 | 
					2229e8cb7d | ||
| 
						 | 
					9ce1041b0e | ||
| 
						 | 
					187065098b | ||
| 
						 | 
					467bdf0045 | ||
| 
						 | 
					9462b5b461 | ||
| 
						 | 
					da7f29a9e0 | ||
| 
						 | 
					d06bfd91ff | ||
| 
						 | 
					b9bba10697 | ||
| 
						 | 
					4581de92ad | ||
| 
						 | 
					72c520cca7 | ||
| 
						 | 
					835ee2a046 | ||
| 
						 | 
					d03dee8fda | ||
| 
						 | 
					6e89598a51 | ||
| 
						 | 
					0a2aa6f734 | ||
| 
						 | 
					2e7836eec3 | ||
| 
						 | 
					31bdda8bf8 | ||
| 
						 | 
					2fc93fa819 | ||
| 
						 | 
					3c5a939b16 | ||
| 
						 | 
					0f40c4cd49 | ||
| 
						 | 
					7ad184cb48 | ||
| 
						 | 
					41a7d5d0a8 | ||
| 
						 | 
					78c48e004c | ||
| 
						 | 
					7106d61881 | ||
| 
						 | 
					8ead4c4708 | ||
| 
						 | 
					52ca7d3503 | ||
| 
						 | 
					7d504da0a8 | ||
| 
						 | 
					c6dee2252b | ||
| 
						 | 
					680c4a9ec4 | ||
| 
						 | 
					3887d57fa4 | ||
| 
						 | 
					d733daed9d | ||
| 
						 | 
					de8651ab52 | ||
| 
						 | 
					0ce641d10b | ||
| 
						 | 
					316224b424 | ||
| 
						 | 
					cf9bbce284 | ||
| 
						 | 
					6eae6c046e | ||
| 
						 | 
					837a430228 | ||
| 
						 | 
					71431f8fb5 | ||
| 
						 | 
					0c7cd1f299 | ||
| 
						 | 
					674682e919 | ||
| 
						 | 
					a5ca8115af | ||
| 
						 | 
					d4338fce42 | ||
| 
						 | 
					14e8135f81 | ||
| 
						 | 
					e925f07505 | ||
| 
						 | 
					b792b51bd0 | ||
| 
						 | 
					fb64813b2a | ||
| 
						 | 
					b16e0e33ab | ||
| 
						 | 
					818921e4a2 | ||
| 
						 | 
					6c437459ca | ||
| 
						 | 
					b276901874 | ||
| 
						 | 
					85b92f46f5 | ||
| 
						 | 
					237b8b5ede | ||
| 
						 | 
					438d008c34 | ||
| 
						 | 
					53a3de1ebc | ||
| 
						 | 
					2d35747e75 | ||
| 
						 | 
					71feebea6d | ||
| 
						 | 
					c8c75e7a70 | ||
| 
						 | 
					7b2263e9a5 | ||
| 
						 | 
					9cd216bbba | ||
| 
						 | 
					e032ff4485 | ||
| 
						 | 
					fbe9ca5dd9 | ||
| 
						 | 
					4533bb6dd7 | ||
| 
						 | 
					3320c03603 | ||
| 
						 | 
					c3574d96d7 | ||
| 
						 | 
					ebd2419634 | ||
| 
						 | 
					133c256543 | ||
| 
						 | 
					98a2a72f33 | ||
| 
						 | 
					bc12b598ce | ||
| 
						 | 
					a34f679c43 | ||
| 
						 | 
					f008fd082e | ||
| 
						 | 
					d2fd895582 | ||
| 
						 | 
					746a812ae8 | ||
| 
						 | 
					b67c69b88b | ||
| 
						 | 
					f6ee20730a | ||
| 
						 | 
					2829a96c84 | ||
| 
						 | 
					37e1a92a89 | ||
| 
						 | 
					81c4717472 | ||
| 
						 | 
					94aac686c9 | ||
| 
						 | 
					b75848515b | ||
| 
						 | 
					a26cf9a3ff | ||
| 
						 | 
					a7e4f728d2 | ||
| 
						 | 
					921d234972 | ||
| 
						 | 
					6bec9f977f | ||
| 
						 | 
					6eaa9f8af1 | ||
| 
						 | 
					5ef189b445 | ||
| 
						 | 
					9f8283892e | ||
| 
						 | 
					6ba2dc9601 | ||
| 
						 | 
					e23512c860 | ||
| 
						 | 
					32b6fe1625 | ||
| 
						 | 
					8663b6d108 | ||
| 
						 | 
					7794aa4c99 | ||
| 
						 | 
					ba90ea59f4 | ||
| 
						 | 
					aadb4c44a1 | ||
| 
						 | 
					467ad39873 | ||
| 
						 | 
					0a92b2db48 | ||
| 
						 | 
					60a8f1ea61 | ||
| 
						 | 
					1063061b47 | ||
| 
						 | 
					54186575e0 | ||
| 
						 | 
					114005d572 | ||
| 
						 | 
					cde59a5ab1 | ||
| 
						 | 
					e6bb26ce12 | ||
| 
						 | 
					0cde953d58 | ||
| 
						 | 
					ce7a804a70 | ||
| 
						 | 
					67716aedde | ||
| 
						 | 
					54a98cd6e5 | ||
| 
						 | 
					31a901bea9 | ||
| 
						 | 
					f0fdc90226 | ||
| 
						 | 
					e14f892bc6 | 
							
								
								
									
										1
									
								
								.env
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					VITE_UCENTRALSEC_URL="https://ucentral.dpaas.arilia.com:16001"
 | 
				
			||||||
@@ -1,4 +1,10 @@
 | 
				
			|||||||
/src/assets
 | 
					/src/assets
 | 
				
			||||||
/build
 | 
					/build
 | 
				
			||||||
/node_modules
 | 
					/node_modules
 | 
				
			||||||
 | 
					/dist
 | 
				
			||||||
 | 
					/icons
 | 
				
			||||||
 | 
					helm
 | 
				
			||||||
 | 
					docker-entrypoint.d
 | 
				
			||||||
 | 
					.dockerignore
 | 
				
			||||||
 | 
					DockerFile
 | 
				
			||||||
.github
 | 
					.github
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										90
									
								
								.eslintrc
									
									
									
									
									
								
							
							
						
						@@ -1,22 +1,80 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  "extends": ["airbnb", "prettier"],
 | 
					 | 
				
			||||||
  "plugins": ["prettier"],
 | 
					 | 
				
			||||||
  "env": {
 | 
					  "env": {
 | 
				
			||||||
    "browser": true,
 | 
					    "browser": true,
 | 
				
			||||||
      "jest": true
 | 
					    "es2021": true
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					  "parser": "@typescript-eslint/parser",
 | 
				
			||||||
 | 
					  "parserOptions": {
 | 
				
			||||||
 | 
					    "ecmaFeatures": {
 | 
				
			||||||
 | 
					      "jsx": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "ecmaVersion": 12,
 | 
				
			||||||
 | 
					    "sourceType": "module",
 | 
				
			||||||
 | 
					    "allowImportExportEverywhere": false,
 | 
				
			||||||
 | 
					    "codeFrame": false,
 | 
				
			||||||
 | 
					    "project": "./tsconfig.json"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "ignorePatterns": ["build/", "dist/"],
 | 
				
			||||||
 | 
					  "extends": [
 | 
				
			||||||
 | 
					    "plugin:react/recommended",
 | 
				
			||||||
 | 
					    "plugin:@typescript-eslint/eslint-recommended",
 | 
				
			||||||
 | 
					    "plugin:@typescript-eslint/recommended",
 | 
				
			||||||
 | 
					    "airbnb",
 | 
				
			||||||
 | 
					    "airbnb-typescript",
 | 
				
			||||||
 | 
					    "prettier",
 | 
				
			||||||
 | 
					    "plugin:import/errors",
 | 
				
			||||||
 | 
					    "plugin:import/warnings",
 | 
				
			||||||
 | 
					    "plugin:import/typescript"
 | 
				
			||||||
 | 
					  ],
 | 
				
			||||||
 | 
					  "plugins": ["import", "react", "@typescript-eslint", "prettier"],
 | 
				
			||||||
  "rules": {
 | 
					  "rules": {
 | 
				
			||||||
    "max-len": ["error", {"code": 150}],
 | 
					    "import/extensions": [
 | 
				
			||||||
    "prefer-promise-reject-errors": ["off"],
 | 
					      "error",
 | 
				
			||||||
    "react/jsx-filename-extension": ["off"],
 | 
					      "ignorePackages",
 | 
				
			||||||
    "react/prop-types": ["warn"],
 | 
					      {
 | 
				
			||||||
    "no-return-assign": ["off"],
 | 
					        "js": "never",
 | 
				
			||||||
    "react/jsx-props-no-spreading": ["off"],
 | 
					        "jsx": "never",
 | 
				
			||||||
    "react/destructuring-assignment": ["off"],
 | 
					        "ts": "never",
 | 
				
			||||||
 | 
					        "tsx": "never"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					    "@typescript-eslint/naming-convention": [
 | 
				
			||||||
 | 
					      "error",
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        "selector": "function",
 | 
				
			||||||
 | 
					        "format": ["PascalCase", "camelCase"],
 | 
				
			||||||
 | 
					        "leadingUnderscore": "allowSingleOrDouble"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
    "no-restricted-syntax": ["error", "ForInStatement", "LabeledStatement", "WithStatement"],
 | 
					    "no-restricted-syntax": ["error", "ForInStatement", "LabeledStatement", "WithStatement"],
 | 
				
			||||||
    "react/jsx-one-expression-per-line": "off",
 | 
					    "react/function-component-definition": [2, { "namedComponents": "arrow-function" }],
 | 
				
			||||||
    "react/jsx-wrap-multilines": "off",
 | 
					    "import/order": [
 | 
				
			||||||
    "react/jsx-curly-newline": "off"
 | 
					      "error",
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        "alphabetize": {
 | 
				
			||||||
 | 
					          "order": "asc",
 | 
				
			||||||
 | 
					          "caseInsensitive": true
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "newlines-between": "never",
 | 
				
			||||||
 | 
					        "groups": ["builtin", "external", "parent", "sibling", "index"],
 | 
				
			||||||
 | 
					        "pathGroups": [
 | 
				
			||||||
 | 
					          {
 | 
				
			||||||
 | 
					            "pattern": "react",
 | 
				
			||||||
 | 
					            "group": "external",
 | 
				
			||||||
 | 
					            "position": "before"
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					        "pathGroupsExcludedImportTypes": ["builtin"]
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					    "max-len": ["error", { "code": 150 }],
 | 
				
			||||||
 | 
					    "@typescript-eslint/ban-ts-comment": ["off"],
 | 
				
			||||||
 | 
					    "import/prefer-default-export": ["off"],
 | 
				
			||||||
 | 
					    "react/prop-types": ["warn"],
 | 
				
			||||||
 | 
					    "react/require-default-props": "off",
 | 
				
			||||||
 | 
					    "react/jsx-props-no-spreading": ["off"],
 | 
				
			||||||
 | 
					    "react/jsx-curly-newline": "off",
 | 
				
			||||||
 | 
					    "no-underscore-dangle": "off"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "settings": {
 | 
					  "settings": {
 | 
				
			||||||
    "import/resolver": {
 | 
					    "import/resolver": {
 | 
				
			||||||
@@ -24,11 +82,5 @@
 | 
				
			|||||||
        "paths": ["src"]
 | 
					        "paths": ["src"]
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
    "parser": "babel-eslint",
 | 
					 | 
				
			||||||
    "parserOptions": {
 | 
					 | 
				
			||||||
      "sourceType": "module",
 | 
					 | 
				
			||||||
      "allowImportExportEverywhere": false,
 | 
					 | 
				
			||||||
      "codeFrame": false
 | 
					 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										35
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						@@ -12,6 +12,7 @@ on:
 | 
				
			|||||||
  pull_request:
 | 
					  pull_request:
 | 
				
			||||||
    branches:
 | 
					    branches:
 | 
				
			||||||
      - main
 | 
					      - main
 | 
				
			||||||
 | 
					      - 'release/*'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
defaults:
 | 
					defaults:
 | 
				
			||||||
  run:
 | 
					  run:
 | 
				
			||||||
@@ -25,7 +26,7 @@ jobs:
 | 
				
			|||||||
      DOCKER_REGISTRY_USERNAME: ucentral
 | 
					      DOCKER_REGISTRY_USERNAME: ucentral
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
    - name: Checkout actions repo
 | 
					    - name: Checkout actions repo
 | 
				
			||||||
      uses: actions/checkout@v2
 | 
					      uses: actions/checkout@v3
 | 
				
			||||||
      with:
 | 
					      with:
 | 
				
			||||||
        repository: Telecominfraproject/.github
 | 
					        repository: Telecominfraproject/.github
 | 
				
			||||||
        path: github
 | 
					        path: github
 | 
				
			||||||
@@ -37,3 +38,35 @@ jobs:
 | 
				
			|||||||
        registry: tip-tip-wlan-cloud-ucentral.jfrog.io
 | 
					        registry: tip-tip-wlan-cloud-ucentral.jfrog.io
 | 
				
			||||||
        registry_user: ucentral
 | 
					        registry_user: ucentral
 | 
				
			||||||
        registry_password: ${{ secrets.DOCKER_REGISTRY_PASSWORD }}
 | 
					        registry_password: ${{ secrets.DOCKER_REGISTRY_PASSWORD }}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: Notify on failure via Slack
 | 
				
			||||||
 | 
					      if: failure() && github.ref == 'refs/heads/main'
 | 
				
			||||||
 | 
					      uses: rtCamp/action-slack-notify@v2
 | 
				
			||||||
 | 
					      env:
 | 
				
			||||||
 | 
					        SLACK_USERNAME: GitHub Actions failure notifier
 | 
				
			||||||
 | 
					        SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
 | 
				
			||||||
 | 
					        SLACK_COLOR: "${{ job.status }}"
 | 
				
			||||||
 | 
					        SLACK_ICON: https://raw.githubusercontent.com/quintessence/slack-icons/master/images/github-logo-slack-icon.png
 | 
				
			||||||
 | 
					        SLACK_TITLE: Docker build failed for OWGW-UI service
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  trigger-deploy-to-dev:
 | 
				
			||||||
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
 | 
					    if: github.ref == 'refs/heads/main'
 | 
				
			||||||
 | 
					    needs:
 | 
				
			||||||
 | 
					      - docker
 | 
				
			||||||
 | 
					    steps:
 | 
				
			||||||
 | 
					    - name: Checkout actions repo
 | 
				
			||||||
 | 
					      uses: actions/checkout@v3
 | 
				
			||||||
 | 
					      with:
 | 
				
			||||||
 | 
					        repository: Telecominfraproject/.github
 | 
				
			||||||
 | 
					        path: github
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: Trigger deployment of the latest version to dev instance and wait for result
 | 
				
			||||||
 | 
					      uses: ./github/composite-actions/trigger-workflow-and-wait
 | 
				
			||||||
 | 
					      with:
 | 
				
			||||||
 | 
					        owner: Telecominfraproject
 | 
				
			||||||
 | 
					        repo: wlan-testing
 | 
				
			||||||
 | 
					        workflow: ucentralgw-dev-deployment.yaml
 | 
				
			||||||
 | 
					        token: ${{ secrets.WLAN_TESTING_PAT }}
 | 
				
			||||||
 | 
					        ref: master
 | 
				
			||||||
 | 
					        inputs: '{"force_latest": "true"}'
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										9
									
								
								.github/workflows/cleanup.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						@@ -4,6 +4,7 @@ on:
 | 
				
			|||||||
  pull_request:
 | 
					  pull_request:
 | 
				
			||||||
    branches:
 | 
					    branches:
 | 
				
			||||||
      - main
 | 
					      - main
 | 
				
			||||||
 | 
					      - 'release/*'
 | 
				
			||||||
    types: [ closed ]
 | 
					    types: [ closed ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
defaults:
 | 
					defaults:
 | 
				
			||||||
@@ -16,4 +17,10 @@ jobs:
 | 
				
			|||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - run: |
 | 
					      - run: |
 | 
				
			||||||
          export PR_BRANCH_TAG=$(echo ${GITHUB_HEAD_REF#refs/heads/} | tr '/' '-')
 | 
					          export PR_BRANCH_TAG=$(echo ${GITHUB_HEAD_REF#refs/heads/} | tr '/' '-')
 | 
				
			||||||
          curl -uucentral:${{ secrets.DOCKER_REGISTRY_PASSWORD }} -X DELETE "https://tip.jfrog.io/artifactory/tip-wlan-cloud-ucentral/owgw-ui/$PR_BRANCH_TAG"
 | 
					
 | 
				
			||||||
 | 
					          if [[ ! $PR_BRANCH_TAG =~ (main|master|release-*) ]]; then
 | 
				
			||||||
 | 
					            echo "PR branch is $PR_BRANCH_TAG, deleting Docker image"
 | 
				
			||||||
 | 
					            curl -s -uucentral:${{ secrets.DOCKER_REGISTRY_PASSWORD }} -X DELETE "https://tip.jfrog.io/artifactory/tip-wlan-cloud-ucentral/owgw-ui/$PR_BRANCH_TAG"
 | 
				
			||||||
 | 
					          else
 | 
				
			||||||
 | 
					            echo "PR branch is $PR_BRANCH_TAG, not deleting Docker image"
 | 
				
			||||||
 | 
					          fi
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										2
									
								
								.github/workflows/enforce-jira-issue-key.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						@@ -11,7 +11,7 @@ jobs:
 | 
				
			|||||||
    runs-on: ubuntu-latest
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - name: Checkout actions repo
 | 
					      - name: Checkout actions repo
 | 
				
			||||||
        uses: actions/checkout@v2
 | 
					        uses: actions/checkout@v3
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
          repository: Telecominfraproject/.github
 | 
					          repository: Telecominfraproject/.github
 | 
				
			||||||
          path: github
 | 
					          path: github
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										46
									
								
								.github/workflows/release.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,46 @@
 | 
				
			|||||||
 | 
					name: Release chart package
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					on:
 | 
				
			||||||
 | 
					  push:
 | 
				
			||||||
 | 
					    tags:
 | 
				
			||||||
 | 
					      - 'v*'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					defaults:
 | 
				
			||||||
 | 
					  run:
 | 
				
			||||||
 | 
					    shell: bash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					jobs:
 | 
				
			||||||
 | 
					  helm-package:
 | 
				
			||||||
 | 
					    runs-on: ubuntu-20.04
 | 
				
			||||||
 | 
					    env:
 | 
				
			||||||
 | 
					      HELM_REPO_URL: https://tip.jfrog.io/artifactory/tip-wlan-cloud-ucentral-helm/
 | 
				
			||||||
 | 
					      HELM_REPO_USERNAME: ucentral
 | 
				
			||||||
 | 
					    steps:
 | 
				
			||||||
 | 
					      - name: Checkout uCentral assembly chart repo
 | 
				
			||||||
 | 
					        uses: actions/checkout@v3
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          path: wlan-cloud-ucentralgw-ui
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      - name: Build package
 | 
				
			||||||
 | 
					        working-directory: wlan-cloud-ucentralgw-ui/helm
 | 
				
			||||||
 | 
					        run: |
 | 
				
			||||||
 | 
					          helm plugin install https://github.com/aslafy-z/helm-git --version 0.10.0
 | 
				
			||||||
 | 
					          helm repo add bitnami https://charts.bitnami.com/bitnami
 | 
				
			||||||
 | 
					          helm repo update
 | 
				
			||||||
 | 
					          helm dependency update
 | 
				
			||||||
 | 
					          mkdir dist
 | 
				
			||||||
 | 
					          helm package . -d dist
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      - name: Generate GitHub release body
 | 
				
			||||||
 | 
					        working-directory: wlan-cloud-ucentralgw-ui/helm
 | 
				
			||||||
 | 
					        run: |
 | 
				
			||||||
 | 
					          pip3 install yq -q
 | 
				
			||||||
 | 
					          echo "Docker image - tip-tip-wlan-cloud-ucentral.jfrog.io/owgw-ui:$GITHUB_REF_NAME" > release.txt
 | 
				
			||||||
 | 
					          echo "Helm charted may be attached to this release" >> release.txt
 | 
				
			||||||
 | 
					          echo "Deployment artifacts may be found in https://github.com/Telecominfraproject/wlan-cloud-ucentral-deploy/tree/$GITHUB_REF_NAME" >> release.txt
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      - name: Create GitHub release
 | 
				
			||||||
 | 
					        uses: softprops/action-gh-release@v1
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          body_path: wlan-cloud-ucentralgw-ui/helm/release.txt
 | 
				
			||||||
 | 
					          files: wlan-cloud-ucentralgw-ui/helm/dist/*
 | 
				
			||||||
							
								
								
									
										6
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						@@ -1,9 +1,8 @@
 | 
				
			|||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# dependencies
 | 
					# dependencies
 | 
				
			||||||
/node_modules
 | 
					/node_modules
 | 
				
			||||||
/.pnp
 | 
					/.pnp
 | 
				
			||||||
.pnp.js
 | 
					.pnp.js
 | 
				
			||||||
 | 
					/dev-dist
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# testing
 | 
					# testing
 | 
				
			||||||
/coverage
 | 
					/coverage
 | 
				
			||||||
@@ -19,5 +18,4 @@
 | 
				
			|||||||
.env.production.local
 | 
					.env.production.local
 | 
				
			||||||
 | 
					
 | 
				
			||||||
npm-debug.log*
 | 
					npm-debug.log*
 | 
				
			||||||
yarn-debug.log*
 | 
					.vscode/settings.json
 | 
				
			||||||
yarn-error.log*
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,6 @@
 | 
				
			|||||||
/src/assets
 | 
					/src/assets
 | 
				
			||||||
build
 | 
					build
 | 
				
			||||||
 | 
					dist
 | 
				
			||||||
node_modules
 | 
					node_modules
 | 
				
			||||||
.github
 | 
					.github
 | 
				
			||||||
 | 
					/helm
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    "printWidth": 100,
 | 
					  "printWidth": 120,
 | 
				
			||||||
  "trailingComma": "all",
 | 
					  "trailingComma": "all",
 | 
				
			||||||
  "tabWidth": 2,
 | 
					  "tabWidth": 2,
 | 
				
			||||||
  "semi": true,
 | 
					  "semi": true,
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										12
									
								
								Dockerfile
									
									
									
									
									
								
							
							
						
						@@ -1,6 +1,8 @@
 | 
				
			|||||||
FROM node:14-alpine3.11 AS build
 | 
					FROM node:18.7.0-alpine3.15 AS build
 | 
				
			||||||
 | 
					
 | 
				
			||||||
COPY package.json package-lock.json /
 | 
					WORKDIR /app
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					COPY package.json package-lock.json /app/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN npm install
 | 
					RUN npm install
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -8,8 +10,8 @@ COPY . .
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
RUN npm run build
 | 
					RUN npm run build
 | 
				
			||||||
 | 
					
 | 
				
			||||||
FROM nginx:1.20.1-alpine AS runtime
 | 
					FROM nginx:1.22.0-alpine AS runtime
 | 
				
			||||||
 | 
					
 | 
				
			||||||
COPY --from=build /build/ /usr/share/nginx/html/
 | 
					COPY --from=build /app/build/ /usr/share/nginx/html/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
COPY --from=build docker-entrypoint.d/40-generate-config.sh /docker-entrypoint.d/40-generate-config.sh
 | 
					COPY --from=build /app/docker-entrypoint.d/40-generate-config.sh /docker-entrypoint.d/40-generate-config.sh
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										25
									
								
								README.md
									
									
									
									
									
								
							
							
						
						@@ -1,6 +1,7 @@
 | 
				
			|||||||
# uCentralGW UI
 | 
					# uCentralGW UI
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## What is this?
 | 
					## What is this?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The uCentralGW Client is a user interface that lets you monitor and manage devices connected to the [uCentral gateway](https://github.com/Telecominfraproject/wlan-cloud-ucentralgw). To use the interface,
 | 
					The uCentralGW Client is a user interface that lets you monitor and manage devices connected to the [uCentral gateway](https://github.com/Telecominfraproject/wlan-cloud-ucentralgw). To use the interface,
 | 
				
			||||||
you either need to run it on your machine for [development](#development) or build it for [production](#production).
 | 
					you either need to run it on your machine for [development](#development) or build it for [production](#production).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -9,40 +10,34 @@ NOTE: This UI will be evolving as micro services are added to the uCentral progr
 | 
				
			|||||||
## Running the solution
 | 
					## Running the solution
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Development
 | 
					### Development
 | 
				
			||||||
 | 
					
 | 
				
			||||||
You need to run these commands in the root folder of the project and also have npm installed on your machine.
 | 
					You need to run these commands in the root folder of the project and also have npm installed on your machine.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
git clone https://github.com/Telecominfraproject/wlan-cloud-ucentralgw-ui
 | 
					git clone https://github.com/Telecominfraproject/wlan-cloud-ucentralgw-ui
 | 
				
			||||||
cd wlan-cloud-ucentralgw-ui
 | 
					cd wlan-cloud-ucentralgw-ui
 | 
				
			||||||
npm install
 | 
					npm install
 | 
				
			||||||
npm start
 | 
					npm run dev
 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Run these commands if you want to run the solution on your machine while also doing development on the [uCentral UI Library](https://github.com/Telecominfraproject/wlan-cloud-ucentral-ui-libs).
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
git clone https://github.com/Telecominfraproject/wlan-cloud-ucentralgw-ui
 | 
					 | 
				
			||||||
git clone https://github.com/Telecominfraproject/wlan-cloud-ucentral-ui-libs
 | 
					 | 
				
			||||||
cd wlan-cloud-ucentralgw-ui
 | 
					 | 
				
			||||||
npm link ../wlan-cloud-ucentral-ui-libs // Add sudo at the start of this command if it fails because of permissions
 | 
					 | 
				
			||||||
npm start
 | 
					 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Production
 | 
					### Production
 | 
				
			||||||
 | 
					
 | 
				
			||||||
You need to run this in the root folder of the project and also have npm installed on your machine.
 | 
					You need to run this in the root folder of the project and also have npm installed on your machine.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
git clone https://github.com/Telecominfraproject/wlan-cloud-ucentralgw-ui
 | 
					git clone https://github.com/Telecominfraproject/wlan-cloud-ucentralgw-ui
 | 
				
			||||||
cd wlan-cloud-ucentralgw-ui
 | 
					cd wlan-cloud-ucentralgw-ui
 | 
				
			||||||
npm install
 | 
					npm install
 | 
				
			||||||
npm run build
 | 
					npm run build
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Once the build is done, you can move the `build` folder on your server.
 | 
					Once the build is done, you can move the `build` folder on your server.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Configuration
 | 
					### Configuration
 | 
				
			||||||
You must change the `config.json` file in `public` directory to point to your uCentral Security Service URL (uCentralSec). You may also limit the ability for users to change the default uCentralSec. If you do not allow a uCentralSec change, the uCentralSec URL will not appear on the login screen. 
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					You can control the uCentral Security Service URL (uCentralSec) by modifying the ENV variable "VITE_UCENTRALSEC_URL". There is an example .env file located at the root of this repository.
 | 
				
			||||||
Here are the current default values:
 | 
					Here are the current default values:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
{
 | 
					VITE_UCENTRALSEC_URL="https://ucentral.dpaas.arilia.com:16001"
 | 
				
			||||||
  "DEFAULT_UCENTRALSEC_URL": "https://ucentral.dpaas.arilia.com:16001",
 | 
					 | 
				
			||||||
  "ALLOW_UCENTRALSEC_CHANGE": false
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,25 +0,0 @@
 | 
				
			|||||||
{
 | 
					 | 
				
			||||||
  "presets": [
 | 
					 | 
				
			||||||
    [
 | 
					 | 
				
			||||||
      "@babel/preset-env",
 | 
					 | 
				
			||||||
      {
 | 
					 | 
				
			||||||
        "modules": false
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    ],
 | 
					 | 
				
			||||||
    "@babel/preset-react"
 | 
					 | 
				
			||||||
  ],
 | 
					 | 
				
			||||||
  "env": {
 | 
					 | 
				
			||||||
    "production": {
 | 
					 | 
				
			||||||
      "plugins": [
 | 
					 | 
				
			||||||
        "@babel/plugin-transform-react-inline-elements",
 | 
					 | 
				
			||||||
        "@babel/plugin-transform-react-constant-elements",
 | 
					 | 
				
			||||||
        [
 | 
					 | 
				
			||||||
          "transform-react-remove-prop-types",
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            "removeImport": true
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        ]
 | 
					 | 
				
			||||||
      ]
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,12 +0,0 @@
 | 
				
			|||||||
const path = require('path');
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
module.exports = {
 | 
					 | 
				
			||||||
  // Source files
 | 
					 | 
				
			||||||
  src: path.resolve(__dirname, '../src'),
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  // Production build files
 | 
					 | 
				
			||||||
  build: path.resolve(__dirname, '../build'),
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  // Static files that get copied to build folder
 | 
					 | 
				
			||||||
  public: path.resolve(__dirname, '../public'),
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
@@ -1,79 +0,0 @@
 | 
				
			|||||||
/* eslint-disable import/no-extraneous-dependencies */
 | 
					 | 
				
			||||||
/* eslint-disable prefer-template */
 | 
					 | 
				
			||||||
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
 | 
					 | 
				
			||||||
const CopyWebpackPlugin = require('copy-webpack-plugin');
 | 
					 | 
				
			||||||
const HtmlWebpackPlugin = require('html-webpack-plugin');
 | 
					 | 
				
			||||||
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
 | 
					 | 
				
			||||||
const webpack = require('webpack');
 | 
					 | 
				
			||||||
const path = require('path');
 | 
					 | 
				
			||||||
const paths = require('./paths');
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
module.exports = {
 | 
					 | 
				
			||||||
  entry: [paths.src + '/index.js'],
 | 
					 | 
				
			||||||
  output: {
 | 
					 | 
				
			||||||
    path: paths.build,
 | 
					 | 
				
			||||||
    filename: '[name].bundle.js',
 | 
					 | 
				
			||||||
    publicPath: '/',
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  resolve: {
 | 
					 | 
				
			||||||
    modules: [path.resolve('./node_modules'), path.resolve('./src')],
 | 
					 | 
				
			||||||
    preferRelative: true,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  plugins: [
 | 
					 | 
				
			||||||
    new webpack.DefinePlugin({
 | 
					 | 
				
			||||||
      'process.env.VERSION': JSON.stringify(process.env.npm_package_version),
 | 
					 | 
				
			||||||
    }),
 | 
					 | 
				
			||||||
    new MiniCssExtractPlugin({
 | 
					 | 
				
			||||||
      filename: 'styles/[name].[contenthash].css',
 | 
					 | 
				
			||||||
      chunkFilename: '[id].[contenthash].css',
 | 
					 | 
				
			||||||
    }),
 | 
					 | 
				
			||||||
    new CopyWebpackPlugin({
 | 
					 | 
				
			||||||
      patterns: [
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          from: paths.src + '/assets',
 | 
					 | 
				
			||||||
          to: 'assets',
 | 
					 | 
				
			||||||
          globOptions: {
 | 
					 | 
				
			||||||
            ignore: ['*.DS_Store'],
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          from: paths.public + '/locales',
 | 
					 | 
				
			||||||
          to: 'locales',
 | 
					 | 
				
			||||||
          globOptions: {
 | 
					 | 
				
			||||||
            ignore: ['*.DS_Store'],
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          from: paths.public + '/config.json',
 | 
					 | 
				
			||||||
          to: 'config.json',
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
      ],
 | 
					 | 
				
			||||||
    }),
 | 
					 | 
				
			||||||
    new HtmlWebpackPlugin({
 | 
					 | 
				
			||||||
      title: 'uCentralGW',
 | 
					 | 
				
			||||||
      favicon: paths.public + '/favicon.ico',
 | 
					 | 
				
			||||||
      template: paths.public + '/index.html',
 | 
					 | 
				
			||||||
      filename: 'index.html',
 | 
					 | 
				
			||||||
    }),
 | 
					 | 
				
			||||||
    new CleanWebpackPlugin(),
 | 
					 | 
				
			||||||
  ],
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  module: {
 | 
					 | 
				
			||||||
    rules: [
 | 
					 | 
				
			||||||
      {
 | 
					 | 
				
			||||||
        test: /\.(js|jsx)$/,
 | 
					 | 
				
			||||||
        exclude: /node_modules/,
 | 
					 | 
				
			||||||
        use: ['babel-loader'],
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      {
 | 
					 | 
				
			||||||
        test: /\.(css|scss)$/,
 | 
					 | 
				
			||||||
        use: [MiniCssExtractPlugin.loader, 'css-loader', 'sass-loader'],
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      {
 | 
					 | 
				
			||||||
        test: /\.svg$/,
 | 
					 | 
				
			||||||
        use: ['@svgr/webpack'],
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      { test: /\.(?:ico|gif|png|jpg|jpeg)$/i, type: 'asset/resource' },
 | 
					 | 
				
			||||||
    ],
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
@@ -1,54 +0,0 @@
 | 
				
			|||||||
/* eslint-disable import/no-extraneous-dependencies */
 | 
					 | 
				
			||||||
/* eslint-disable prefer-template */
 | 
					 | 
				
			||||||
const ReactRefreshWebpackPlugin = require('@pmmmwh/react-refresh-webpack-plugin');
 | 
					 | 
				
			||||||
const { merge } = require('webpack-merge');
 | 
					 | 
				
			||||||
const path = require('path');
 | 
					 | 
				
			||||||
const paths = require('./paths');
 | 
					 | 
				
			||||||
const common = require('./webpack.common');
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
module.exports = merge(common, {
 | 
					 | 
				
			||||||
  mode: 'development',
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  target: 'web',
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  devtool: 'inline-source-map',
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  devServer: {
 | 
					 | 
				
			||||||
    historyApiFallback: true,
 | 
					 | 
				
			||||||
    contentBase: paths.build,
 | 
					 | 
				
			||||||
    open: true,
 | 
					 | 
				
			||||||
    compress: false,
 | 
					 | 
				
			||||||
    hot: true,
 | 
					 | 
				
			||||||
    port: 3000,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  module: {
 | 
					 | 
				
			||||||
    rules: [
 | 
					 | 
				
			||||||
      {
 | 
					 | 
				
			||||||
        test: /\.[js]sx?$/,
 | 
					 | 
				
			||||||
        exclude: /node_modules/,
 | 
					 | 
				
			||||||
        use: [
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            loader: require.resolve('babel-loader'),
 | 
					 | 
				
			||||||
            options: {
 | 
					 | 
				
			||||||
              plugins: [require.resolve('react-refresh/babel')],
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
        ],
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
    ],
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  resolve: {
 | 
					 | 
				
			||||||
    modules: [
 | 
					 | 
				
			||||||
      'node_modules',
 | 
					 | 
				
			||||||
      'src',
 | 
					 | 
				
			||||||
      path.resolve(__dirname, '../', 'node_modules', 'ucentral-libs', 'src'),
 | 
					 | 
				
			||||||
    ],
 | 
					 | 
				
			||||||
    alias: {
 | 
					 | 
				
			||||||
      react: path.resolve(__dirname, '../', 'node_modules', 'react'),
 | 
					 | 
				
			||||||
      'react-router-dom': path.resolve('./node_modules/react-router-dom'),
 | 
					 | 
				
			||||||
      'ucentral-libs': path.resolve(__dirname, '../', 'node_modules', 'ucentral-libs', 'src'),
 | 
					 | 
				
			||||||
      graphlib: path.resolve(__dirname, '../', 'node_modules', 'graphlib'),
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  plugins: [new ReactRefreshWebpackPlugin()],
 | 
					 | 
				
			||||||
});
 | 
					 | 
				
			||||||
@@ -1,86 +0,0 @@
 | 
				
			|||||||
/* eslint-disable import/no-extraneous-dependencies */
 | 
					 | 
				
			||||||
/* eslint-disable prefer-template */
 | 
					 | 
				
			||||||
const { merge } = require('webpack-merge');
 | 
					 | 
				
			||||||
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
 | 
					 | 
				
			||||||
const CssMinimizerPlugin = require('css-minimizer-webpack-plugin');
 | 
					 | 
				
			||||||
const TerserPlugin = require('terser-webpack-plugin');
 | 
					 | 
				
			||||||
const CompressionPlugin = require('compression-webpack-plugin');
 | 
					 | 
				
			||||||
const path = require('path');
 | 
					 | 
				
			||||||
const paths = require('./paths');
 | 
					 | 
				
			||||||
const common = require('./webpack.common');
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
module.exports = merge(common, {
 | 
					 | 
				
			||||||
  mode: 'production',
 | 
					 | 
				
			||||||
  devtool: false,
 | 
					 | 
				
			||||||
  output: {
 | 
					 | 
				
			||||||
    path: paths.build,
 | 
					 | 
				
			||||||
    publicPath: '/',
 | 
					 | 
				
			||||||
    filename: 'js/[name].[contenthash].bundle.js',
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  plugins: [
 | 
					 | 
				
			||||||
    // new BundleAnalyzerPlugin(),
 | 
					 | 
				
			||||||
    new MiniCssExtractPlugin({
 | 
					 | 
				
			||||||
      filename: 'styles/[name].[contenthash].css',
 | 
					 | 
				
			||||||
      chunkFilename: '[contenthash].css',
 | 
					 | 
				
			||||||
    }),
 | 
					 | 
				
			||||||
    new CompressionPlugin({
 | 
					 | 
				
			||||||
      filename: '[path]/[name].gz[query]',
 | 
					 | 
				
			||||||
      algorithm: 'gzip',
 | 
					 | 
				
			||||||
      test: /\.js$|\.css$|\.html$|\.eot?.+$|\.ttf?.+$|\.woff?.+$|\.svg?.+$/,
 | 
					 | 
				
			||||||
      threshold: 10240,
 | 
					 | 
				
			||||||
      minRatio: 0.8,
 | 
					 | 
				
			||||||
    }),
 | 
					 | 
				
			||||||
  ],
 | 
					 | 
				
			||||||
  module: {
 | 
					 | 
				
			||||||
    rules: [],
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  optimization: {
 | 
					 | 
				
			||||||
    minimize: true,
 | 
					 | 
				
			||||||
    minimizer: [
 | 
					 | 
				
			||||||
      '...',
 | 
					 | 
				
			||||||
      new TerserPlugin({
 | 
					 | 
				
			||||||
        terserOptions: {
 | 
					 | 
				
			||||||
          warnings: false,
 | 
					 | 
				
			||||||
          compress: {
 | 
					 | 
				
			||||||
            comparisons: false,
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          parse: {},
 | 
					 | 
				
			||||||
          mangle: true,
 | 
					 | 
				
			||||||
          output: {
 | 
					 | 
				
			||||||
            ascii_only: true,
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        parallel: true,
 | 
					 | 
				
			||||||
      }),
 | 
					 | 
				
			||||||
      new CssMinimizerPlugin(),
 | 
					 | 
				
			||||||
    ],
 | 
					 | 
				
			||||||
    nodeEnv: 'production',
 | 
					 | 
				
			||||||
    sideEffects: true,
 | 
					 | 
				
			||||||
    runtimeChunk: 'single',
 | 
					 | 
				
			||||||
    splitChunks: {
 | 
					 | 
				
			||||||
      chunks: 'all',
 | 
					 | 
				
			||||||
      maxInitialRequests: 10,
 | 
					 | 
				
			||||||
      minSize: 0,
 | 
					 | 
				
			||||||
      cacheGroups: {
 | 
					 | 
				
			||||||
        vendor: {
 | 
					 | 
				
			||||||
          test: /[\\/]node_modules[\\/]/,
 | 
					 | 
				
			||||||
          name(module) {
 | 
					 | 
				
			||||||
            const packageName = module.context.match(/[\\/]node_modules[\\/](.*?)([\\/]|$)/)[1];
 | 
					 | 
				
			||||||
            return `npm.${packageName.replace('@', '')}`;
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  resolve: {
 | 
					 | 
				
			||||||
    modules: [],
 | 
					 | 
				
			||||||
    alias: {
 | 
					 | 
				
			||||||
      graphlib: path.resolve(__dirname, '../', 'node_modules', 'graphlib'),
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  performance: {
 | 
					 | 
				
			||||||
    hints: false,
 | 
					 | 
				
			||||||
    maxEntrypointSize: 512000,
 | 
					 | 
				
			||||||
    maxAssetSize: 512000,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
});
 | 
					 | 
				
			||||||
@@ -1,6 +1,32 @@
 | 
				
			|||||||
#!/bin/ash
 | 
					#!/bin/ash
 | 
				
			||||||
# Check if variables are set
 | 
					 | 
				
			||||||
export DEFAULT_OWSEC_URL="${DEFAULT_OWSEC_URL:-https://ucentral.dpaas.arilia.com:16001}"
 | 
					 | 
				
			||||||
export ALLOW_OWSEC_CHANGE="${ALLOW_OWSEC_CHANGE:-false}"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
echo '{"DEFAULT_UCENTRALSEC_URL": "'$DEFAULT_UCENTRALSEC_URL'","ALLOW_UCENTRALSEC_CHANGE": '$ALLOW_UCENTRALSEC_CHANGE'}' > /usr/share/nginx/html/config.json
 | 
					ENV_CONFIG_PATH=/usr/share/nginx/html/env-config.js
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Recreate config file
 | 
				
			||||||
 | 
					rm -rf $ENV_CONFIG_PATH
 | 
				
			||||||
 | 
					touch $ENV_CONFIG_PATH
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Add assignment
 | 
				
			||||||
 | 
					echo "window._env_ = {" >> $ENV_CONFIG_PATH
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Read each line in .env file
 | 
				
			||||||
 | 
					# Each line represents key=value pairs
 | 
				
			||||||
 | 
					env | grep REACT_ | while read -r line || [[ -n "$line" ]];
 | 
				
			||||||
 | 
					do
 | 
				
			||||||
 | 
					  echo $line
 | 
				
			||||||
 | 
					  # Split env variables by character `=`
 | 
				
			||||||
 | 
					  if printf '%s\n' "$line" | grep -q -e '='; then
 | 
				
			||||||
 | 
					    varname=$(printf '%s\n' "$line" | sed -e 's/=.*//')
 | 
				
			||||||
 | 
					    varvalue=$(printf '%s\n' "$line" | sed -e 's/^[^=]*=//')
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Read value of current variable if exists as Environment variable
 | 
				
			||||||
 | 
					  value=$(printf '%s\n' "${!varname}")
 | 
				
			||||||
 | 
					  # Otherwise use value from .env file
 | 
				
			||||||
 | 
					  [[ -z $value ]] && value=${varvalue}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Append configuration property to JS file
 | 
				
			||||||
 | 
					  echo "  $varname: \"$value\"," >> $ENV_CONFIG_PATH
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					echo "}" >> $ENV_CONFIG_PATH
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -17,7 +17,9 @@ metadata:
 | 
				
			|||||||
  {{- end }}
 | 
					  {{- end }}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
spec:
 | 
					spec:
 | 
				
			||||||
 | 
					{{- if $ingressValue.className }}
 | 
				
			||||||
 | 
					  ingressClassName: {{ $ingressValue.className }}
 | 
				
			||||||
 | 
					{{- end }}
 | 
				
			||||||
{{- if $ingressValue.tls }}
 | 
					{{- if $ingressValue.tls }}
 | 
				
			||||||
  tls:
 | 
					  tls:
 | 
				
			||||||
  {{- range $ingressValue.tls }}
 | 
					  {{- range $ingressValue.tls }}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,12 +8,12 @@ fullnameOverride: ""
 | 
				
			|||||||
images:
 | 
					images:
 | 
				
			||||||
  owgwui:
 | 
					  owgwui:
 | 
				
			||||||
    repository: tip-tip-wlan-cloud-ucentral.jfrog.io/owgw-ui
 | 
					    repository: tip-tip-wlan-cloud-ucentral.jfrog.io/owgw-ui
 | 
				
			||||||
    tag: v2.5.2
 | 
					    tag: v3.0.2-RC1
 | 
				
			||||||
    pullPolicy: Always
 | 
					    pullPolicy: Always
 | 
				
			||||||
 | 
					
 | 
				
			||||||
services:
 | 
					services:
 | 
				
			||||||
  owgwui:
 | 
					  owgwui:
 | 
				
			||||||
    type: NodePort
 | 
					    type: ClusterIP
 | 
				
			||||||
    ports:
 | 
					    ports:
 | 
				
			||||||
      http:
 | 
					      http:
 | 
				
			||||||
        servicePort: 80
 | 
					        servicePort: 80
 | 
				
			||||||
@@ -75,5 +75,4 @@ podAnnotations: {}
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
# Application
 | 
					# Application
 | 
				
			||||||
public_env_variables:
 | 
					public_env_variables:
 | 
				
			||||||
  DEFAULT_UCENTRALSEC_URL: https://ucentral.dpaas.arilia.com:16001
 | 
					  REACT_APP_UCENTRALSEC_URL: https://ucentral.dpaas.arilia.com:16001
 | 
				
			||||||
  ALLOW_UCENTRALSEC_CHANGE: false
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										21
									
								
								index.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,21 @@
 | 
				
			|||||||
 | 
					<!DOCTYPE html>
 | 
				
			||||||
 | 
					<html lang="en">
 | 
				
			||||||
 | 
					  <head>
 | 
				
			||||||
 | 
					    <meta charset="utf-8" />
 | 
				
			||||||
 | 
					    <meta name="viewport" content="width=device-width, initial-scale=1" />
 | 
				
			||||||
 | 
					    <title>Controller</title>
 | 
				
			||||||
 | 
					    <meta name="description" content="OpenWiFi Controller App" />
 | 
				
			||||||
 | 
					    <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
 | 
				
			||||||
 | 
					    <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
 | 
				
			||||||
 | 
					    <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
 | 
				
			||||||
 | 
					    <link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5" />
 | 
				
			||||||
 | 
					    <meta name="msapplication-TileColor" content="#da532c" />
 | 
				
			||||||
 | 
					    <script src="/env-config.js"></script>
 | 
				
			||||||
 | 
					    <meta name="theme-color" content="#000000" />
 | 
				
			||||||
 | 
					  </head>
 | 
				
			||||||
 | 
					  <body>
 | 
				
			||||||
 | 
					    <noscript>You need to enable JavaScript to run this app.</noscript>
 | 
				
			||||||
 | 
					    <div id="root"></div>
 | 
				
			||||||
 | 
					    <script type="module" src="./src/index.tsx"></script>
 | 
				
			||||||
 | 
					  </body>
 | 
				
			||||||
 | 
					</html>
 | 
				
			||||||
@@ -1,9 +0,0 @@
 | 
				
			|||||||
{
 | 
					 | 
				
			||||||
  "compilerOptions": {
 | 
					 | 
				
			||||||
    "baseUrl": "src",
 | 
					 | 
				
			||||||
    "paths": {
 | 
					 | 
				
			||||||
      "*": ["*"]
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "include": ["src"]
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										29026
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
							
								
								
									
										178
									
								
								package.json
									
									
									
									
									
								
							
							
						
						@@ -1,99 +1,101 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  "name": "ucentral-client",
 | 
					  "name": "ucentral-client",
 | 
				
			||||||
  "version": "2.5.44",
 | 
					  "version": "3.0.2(9)",
 | 
				
			||||||
  "dependencies": {
 | 
					  "description": "",
 | 
				
			||||||
    "@coreui/coreui": "^3.4.0",
 | 
					  "private": true,
 | 
				
			||||||
    "@coreui/icons": "^2.0.1",
 | 
					  "main": "index.tsx",
 | 
				
			||||||
    "@coreui/icons-react": "^1.1.0",
 | 
					 | 
				
			||||||
    "@coreui/react": "^3.4.6",
 | 
					 | 
				
			||||||
    "@coreui/react-chartjs": "^1.1.0",
 | 
					 | 
				
			||||||
    "apexcharts": "^3.27.1",
 | 
					 | 
				
			||||||
    "axios": "^0.21.1",
 | 
					 | 
				
			||||||
    "axios-retry": "^3.1.9",
 | 
					 | 
				
			||||||
    "dagre": "^0.8.5",
 | 
					 | 
				
			||||||
    "i18next": "^20.3.1",
 | 
					 | 
				
			||||||
    "i18next-browser-languagedetector": "^6.1.2",
 | 
					 | 
				
			||||||
    "i18next-http-backend": "^1.2.6",
 | 
					 | 
				
			||||||
    "prop-types": "^15.7.2",
 | 
					 | 
				
			||||||
    "react": "^17.0.2",
 | 
					 | 
				
			||||||
    "react-apexcharts": "^1.3.9",
 | 
					 | 
				
			||||||
    "react-csv": "^2.2.2",
 | 
					 | 
				
			||||||
    "react-dom": "^17.0.2",
 | 
					 | 
				
			||||||
    "react-flow-renderer": "^9.6.6",
 | 
					 | 
				
			||||||
    "react-i18next": "^11.11.0",
 | 
					 | 
				
			||||||
    "react-paginate": "^7.1.3",
 | 
					 | 
				
			||||||
    "react-router-dom": "^5.2.0",
 | 
					 | 
				
			||||||
    "react-select": "^4.3.1",
 | 
					 | 
				
			||||||
    "react-tooltip": "^4.2.21",
 | 
					 | 
				
			||||||
    "react-widgets": "^5.1.1",
 | 
					 | 
				
			||||||
    "sass": "^1.35.1",
 | 
					 | 
				
			||||||
    "ucentral-libs": "^1.0.60",
 | 
					 | 
				
			||||||
    "uuid": "^8.3.2"
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "main": "index.js",
 | 
					 | 
				
			||||||
  "scripts": {
 | 
					  "scripts": {
 | 
				
			||||||
    "start": "webpack serve --config config/webpack.dev.js",
 | 
					    "dev": "vite",
 | 
				
			||||||
    "build": "webpack --config config/webpack.prod.js",
 | 
					    "build": "vite build",
 | 
				
			||||||
    "format": "prettier --write 'src/**/*.js'",
 | 
					    "format": "prettier --write \"src/**/*x.{ts,tsx,js,jsx}\"",
 | 
				
			||||||
    "eslint-fix": "eslint --fix 'src/**/*.js'"
 | 
					    "analyze": "source-map-explorer 'build/static/js/*.js'",
 | 
				
			||||||
 | 
					    "lint": "TIMING=1 eslint \"src/**/*.{ts,tsx,js,jsx}\" --fix",
 | 
				
			||||||
 | 
					    "clean": "rm -rf node_modules && rm -rf build"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "eslintConfig": {
 | 
					  "author": "",
 | 
				
			||||||
    "extends": "react-app"
 | 
					  "license": "ISC",
 | 
				
			||||||
  },
 | 
					  "dependencies": {
 | 
				
			||||||
  "husky": {
 | 
					    "@chakra-ui/anatomy": "^2.1.1",
 | 
				
			||||||
    "hooks": {
 | 
					    "@chakra-ui/icons": "^2.0.18",
 | 
				
			||||||
      "pre-commit": "lint-staged"
 | 
					    "@chakra-ui/react": "^2.3.6",
 | 
				
			||||||
    }
 | 
					    "@chakra-ui/styled-system": "^2.9.0",
 | 
				
			||||||
  },
 | 
					    "@chakra-ui/theme-tools": "^2.0.12",
 | 
				
			||||||
  "lint-staged": {
 | 
					    "@chakra-ui/utils": "^2.0.14",
 | 
				
			||||||
    "*.{js,jsx}": [
 | 
					    "@emotion/react": "^11.10.6",
 | 
				
			||||||
      "eslint",
 | 
					    "@emotion/styled": "^11.10.6",
 | 
				
			||||||
      "prettier --write"
 | 
					    "@fontsource/inter": "^4.5.15",
 | 
				
			||||||
    ]
 | 
					    "@googlemaps/react-wrapper": "^1.1.35",
 | 
				
			||||||
 | 
					    "@googlemaps/typescript-guards": "^2.0.3",
 | 
				
			||||||
 | 
					    "@hello-pangea/dnd": "^16.2.0",
 | 
				
			||||||
 | 
					    "@phosphor-icons/react": "^2.0.8",
 | 
				
			||||||
 | 
					    "@react-spring/web": "^9.7.2",
 | 
				
			||||||
 | 
					    "@tanstack/react-query": "^4.29.3",
 | 
				
			||||||
 | 
					    "@tanstack/react-table": "^8.8.5",
 | 
				
			||||||
 | 
					    "@textea/json-viewer": "^2.16.2",
 | 
				
			||||||
 | 
					    "axios": "^1.3.5",
 | 
				
			||||||
 | 
					    "buffer": "^6.0.3",
 | 
				
			||||||
 | 
					    "chakra-react-select": "^4.6.0",
 | 
				
			||||||
 | 
					    "chart.js": "^3.9.1",
 | 
				
			||||||
 | 
					    "dagre": "^0.8.5",
 | 
				
			||||||
 | 
					    "fast-equals": "^5.0.1",
 | 
				
			||||||
 | 
					    "formik": "^2.2.9",
 | 
				
			||||||
 | 
					    "framer-motion": "^10.12.2",
 | 
				
			||||||
 | 
					    "i18next": "^22.4.14",
 | 
				
			||||||
 | 
					    "i18next-browser-languagedetector": "^7.0.1",
 | 
				
			||||||
 | 
					    "i18next-http-backend": "^2.2.0",
 | 
				
			||||||
 | 
					    "libphonenumber-js": "^1.10.26",
 | 
				
			||||||
 | 
					    "prop-types": "^15.8.1",
 | 
				
			||||||
 | 
					    "react": "^18.2.0",
 | 
				
			||||||
 | 
					    "react-app-polyfill": "^3.0.0",
 | 
				
			||||||
 | 
					    "react-chartjs-2": "^4.3.1",
 | 
				
			||||||
 | 
					    "react-country-flag": "^3.1.0",
 | 
				
			||||||
 | 
					    "react-csv": "^2.2.2",
 | 
				
			||||||
 | 
					    "react-datepicker": "^4.11.0",
 | 
				
			||||||
 | 
					    "react-dom": "^18.2.0",
 | 
				
			||||||
 | 
					    "react-fast-compare": "^3.2.1",
 | 
				
			||||||
 | 
					    "react-i18next": "^12.2.0",
 | 
				
			||||||
 | 
					    "react-masonry-css": "^1.0.16",
 | 
				
			||||||
 | 
					    "react-router-dom": "^6.10.0",
 | 
				
			||||||
 | 
					    "react-table": "^7.8.0",
 | 
				
			||||||
 | 
					    "react-virtualized-auto-sizer": "^1.0.15",
 | 
				
			||||||
 | 
					    "react-window": "^1.8.9",
 | 
				
			||||||
 | 
					    "source-map-explorer": "^2.5.3",
 | 
				
			||||||
 | 
					    "typescript": "^5.0.4",
 | 
				
			||||||
 | 
					    "uuid": "^9.0.0",
 | 
				
			||||||
 | 
					    "vite": "^4.2.1",
 | 
				
			||||||
 | 
					    "yup": "^0.32.11",
 | 
				
			||||||
 | 
					    "zustand": "^4.3.7"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "devDependencies": {
 | 
					  "devDependencies": {
 | 
				
			||||||
    "@babel/core": "^7.14.6",
 | 
					    "@types/google.maps": "^3.52.5",
 | 
				
			||||||
    "@babel/plugin-proposal-class-properties": "^7.14.5",
 | 
					    "@types/node": "^18.15.11",
 | 
				
			||||||
    "@babel/plugin-transform-runtime": "^7.14.5",
 | 
					    "@types/react": "^18.0.37",
 | 
				
			||||||
    "@babel/polyfill": "^7.12.1",
 | 
					    "@types/react-csv": "^1.1.3",
 | 
				
			||||||
    "@babel/preset-env": "^7.14.7",
 | 
					    "@types/react-datepicker": "4.10.0",
 | 
				
			||||||
    "@babel/preset-react": "^7.14.5",
 | 
					    "@types/react-dom": "^18.0.11",
 | 
				
			||||||
    "@pmmmwh/react-refresh-webpack-plugin": "^0.4.3",
 | 
					    "@types/react-table": "^7.7.14",
 | 
				
			||||||
    "@svgr/webpack": "^5.5.0",
 | 
					    "@types/react-virtualized-auto-sizer": "^1.0.1",
 | 
				
			||||||
    "autoprefixer": "^10.2.6",
 | 
					    "@types/react-window": "^1.8.5",
 | 
				
			||||||
    "babel-eslint": "^10.1.0",
 | 
					    "@types/uuid": "^9.0.1",
 | 
				
			||||||
    "babel-loader": "^8.2.2",
 | 
					    "@vitejs/plugin-react": "^3.1.0",
 | 
				
			||||||
    "clean-webpack-plugin": "^3.0.0",
 | 
					    "eslint": "8.38.0",
 | 
				
			||||||
    "compression-webpack-plugin": "^8.0.1",
 | 
					    "eslint-config-airbnb": "^19.0.4",
 | 
				
			||||||
    "copy-webpack-plugin": "^7.0.0",
 | 
					    "eslint-config-airbnb-typescript": "^17.0.0",
 | 
				
			||||||
    "css-loader": "^5.2.6",
 | 
					    "eslint-config-airbnb-typescript-prettier": "^5.0.0",
 | 
				
			||||||
    "css-minimizer-webpack-plugin": "^2.0.0",
 | 
					    "eslint-config-prettier": "^8.8.0",
 | 
				
			||||||
    "dotenv-webpack": "^6.0.4",
 | 
					 | 
				
			||||||
    "eslint": "^7.29.0",
 | 
					 | 
				
			||||||
    "eslint-config-airbnb": "^18.2.1",
 | 
					 | 
				
			||||||
    "eslint-config-prettier": "^7.2.0",
 | 
					 | 
				
			||||||
    "eslint-import-resolver-alias": "^1.1.2",
 | 
					    "eslint-import-resolver-alias": "^1.1.2",
 | 
				
			||||||
    "eslint-loader": "^4.0.2",
 | 
					 | 
				
			||||||
    "eslint-plugin-babel": "^5.3.1",
 | 
					    "eslint-plugin-babel": "^5.3.1",
 | 
				
			||||||
    "eslint-plugin-import": "^2.23.4",
 | 
					    "eslint-plugin-import": "^2.27.5",
 | 
				
			||||||
    "eslint-plugin-prettier": "^3.4.0",
 | 
					    "eslint-plugin-jsx-a11y": "^6.7.1",
 | 
				
			||||||
    "eslint-plugin-react": "^7.24.0",
 | 
					    "eslint-plugin-no-inline-styles": "^1.0.5",
 | 
				
			||||||
    "eslint-plugin-react-hooks": "^4.2.0",
 | 
					    "eslint-plugin-prettier": "^4.2.1",
 | 
				
			||||||
    "html-webpack-plugin": "^5.3.2",
 | 
					    "eslint-plugin-react": "^7.32.2",
 | 
				
			||||||
    "husky": "^4.3.8",
 | 
					    "eslint-plugin-react-hooks": "^4.6.0",
 | 
				
			||||||
    "lint-staged": "^11.0.0",
 | 
					    "lint-staged": "^13.2.1",
 | 
				
			||||||
    "mini-css-extract-plugin": "^1.6.1",
 | 
					    "prettier": "^2.8.7",
 | 
				
			||||||
    "path": "^0.12.7",
 | 
					    "vite-plugin-pwa": "^0.14.7",
 | 
				
			||||||
    "prettier": "^2.3.2",
 | 
					    "vite-plugin-svgr": "^4.2.0",
 | 
				
			||||||
    "react-refresh": "^0.9.0",
 | 
					    "vite-tsconfig-paths": "^4.2.0"
 | 
				
			||||||
    "sass-loader": "^11.1.1",
 | 
					 | 
				
			||||||
    "style-loader": "^2.0.0",
 | 
					 | 
				
			||||||
    "terser-webpack-plugin": "^5.1.4",
 | 
					 | 
				
			||||||
    "webpack": "^5.40.0",
 | 
					 | 
				
			||||||
    "webpack-bundle-analyzer": "^4.4.2",
 | 
					 | 
				
			||||||
    "webpack-cli": "^4.9.1",
 | 
					 | 
				
			||||||
    "webpack-dev-server": "^3.11.2",
 | 
					 | 
				
			||||||
    "webpack-merge": "^5.8.0"
 | 
					 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "browserslist": {
 | 
					  "browserslist": {
 | 
				
			||||||
    "production": [
 | 
					    "production": [
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										
											BIN
										
									
								
								public/android-chrome-192x192.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 12 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								public/android-chrome-384x384.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 29 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								public/android-chrome-512x512.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 36 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								public/apple-touch-icon.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 11 KiB  | 
							
								
								
									
										9
									
								
								public/browserconfig.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="utf-8"?>
 | 
				
			||||||
 | 
					<browserconfig>
 | 
				
			||||||
 | 
					    <msapplication>
 | 
				
			||||||
 | 
					        <tile>
 | 
				
			||||||
 | 
					            <square150x150logo src="/mstile-150x150.png"/>
 | 
				
			||||||
 | 
					            <TileColor>#414141</TileColor>
 | 
				
			||||||
 | 
					        </tile>
 | 
				
			||||||
 | 
					    </msapplication>
 | 
				
			||||||
 | 
					</browserconfig>
 | 
				
			||||||
@@ -1,4 +0,0 @@
 | 
				
			|||||||
{
 | 
					 | 
				
			||||||
  "DEFAULT_UCENTRALSEC_URL": "https://ucentral.dpaas.arilia.com:16001",
 | 
					 | 
				
			||||||
  "ALLOW_UCENTRALSEC_CHANGE": false
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 104 KiB After Width: | Height: | Size: 104 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								public/devices/cig_wf186h.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 141 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								public/devices/cig_wf186w.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 138 KiB  | 
| 
		 Before Width: | Height: | Size: 80 KiB After Width: | Height: | Size: 80 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								public/devices/cig_wf188n-ca-ath12.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 245 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								public/devices/cig_wf188n-ca.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 245 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								public/devices/cig_wf188n-us.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 245 KiB  | 
| 
		 Before Width: | Height: | Size: 80 KiB After Width: | Height: | Size: 80 KiB  | 
| 
		 Before Width: | Height: | Size: 75 KiB After Width: | Height: | Size: 75 KiB  | 
| 
		 Before Width: | Height: | Size: 75 KiB After Width: | Height: | Size: 75 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								public/devices/cig_wf196-ca-ath12.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 239 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								public/devices/cig_wf196-ca.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 239 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								public/devices/cig_wf196-us.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 239 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								public/devices/cig_wf196.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 32 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								public/devices/cig_wf610d.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 100 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								public/devices/cig_wf660a.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 100 KiB  | 
| 
		 Before Width: | Height: | Size: 218 KiB After Width: | Height: | Size: 218 KiB  | 
| 
		 Before Width: | Height: | Size: 158 KiB After Width: | Height: | Size: 158 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								public/devices/cybertan_eww631-a1.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 123 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								public/devices/cybertan_eww631-b1.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 79 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								public/devices/cybertan_skf224-c1.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 31 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								public/devices/cybertan_skf424-c1.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 31 KiB  | 
| 
		 Before Width: | Height: | Size: 140 KiB After Width: | Height: | Size: 140 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								public/devices/edgecore_eap101.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 140 KiB  | 
| 
		 Before Width: | Height: | Size: 121 KiB After Width: | Height: | Size: 121 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								public/devices/edgecore_eap102.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 121 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								public/devices/edgecore_eap104.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 129 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								public/devices/edgecore_eap104_ath12.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 129 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								public/devices/edgecore_eap111.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 286 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								public/devices/edgecore_ecs2100-10p.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 502 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								public/devices/edgecore_ecs2100-10t.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 637 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								public/devices/edgecore_ecs2100-28p.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 324 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								public/devices/edgecore_ecs2100-28pp.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 313 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								public/devices/edgecore_ecs2100-28t.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 314 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								public/devices/edgecore_ecs2100-52t.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 283 KiB  | 
| 
		 Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 44 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								public/devices/edgecore_ecs4125-10p.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 374 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								public/devices/edgecore_ecs4125.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 33 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								public/devices/edgecore_ecs4150-28t.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 267 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								public/devices/edgecore_ecs4150-58p.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 331 KiB  | 
| 
		 Before Width: | Height: | Size: 192 KiB After Width: | Height: | Size: 192 KiB  | 
| 
		 Before Width: | Height: | Size: 197 KiB After Width: | Height: | Size: 197 KiB  | 
| 
		 Before Width: | Height: | Size: 50 KiB After Width: | Height: | Size: 50 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								public/devices/edgecore_oap101-6e.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 194 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								public/devices/edgecore_oap101.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 194 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								public/devices/edgecore_oap101e-6e.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 133 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								public/devices/edgecore_oap101e.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 133 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								public/devices/edgecore_oap102.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 194 KiB  | 
| 
		 Before Width: | Height: | Size: 59 KiB After Width: | Height: | Size: 59 KiB  | 
| 
		 Before Width: | Height: | Size: 59 KiB After Width: | Height: | Size: 59 KiB  | 
| 
		 Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 51 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								public/devices/generic_ap.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 24 KiB  | 
| 
		 Before Width: | Height: | Size: 72 KiB After Width: | Height: | Size: 72 KiB  | 
| 
		 Before Width: | Height: | Size: 72 KiB After Width: | Height: | Size: 72 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								public/devices/hfcl_ion4x.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.6 MiB  | 
							
								
								
									
										
											BIN
										
									
								
								public/devices/hfcl_ion4x_2.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 117 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								public/devices/hfcl_ion4x_w.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 218 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								public/devices/hfcl_ion4xe.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 421 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								public/devices/hfcl_ion4xi.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 817 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								public/devices/hfcl_ion4xi_HMR.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 879 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								public/devices/hfcl_ion4xi_w.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 664 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								public/devices/hfcl_ion4xi_wp.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 304 KiB  | 
| 
		 Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 34 KiB  | 
| 
		 Before Width: | Height: | Size: 98 KiB After Width: | Height: | Size: 98 KiB  | 
| 
		 Before Width: | Height: | Size: 89 KiB After Width: | Height: | Size: 89 KiB  | 
| 
		 Before Width: | Height: | Size: 89 KiB After Width: | Height: | Size: 89 KiB  | 
| 
		 Before Width: | Height: | Size: 204 KiB After Width: | Height: | Size: 204 KiB  | 
| 
		 Before Width: | Height: | Size: 159 KiB After Width: | Height: | Size: 159 KiB  | 
| 
		 Before Width: | Height: | Size: 159 KiB After Width: | Height: | Size: 159 KiB  | 
| 
		 Before Width: | Height: | Size: 103 KiB After Width: | Height: | Size: 103 KiB  |