Browse Source

NEW: new users management in admin area

Giancarlo Voci 7 years ago
parent
commit
3b6a0774a3

+ 1 - 1
cfg/config.bin

@@ -1 +1 @@
-eJyFkV2PmkAUhu/PryBetWkWhg9dWzNJEUdlVxnDh7G7MQZwVqnAUBhcXeN/L9JtmrQXnWSSk5N5z/ucd553KY/CtFrDkrieTR2syl0ZgRn4dEbNEe5UZax0wDKtKZGw5LsBgcDGdaK8lDwXLN8qMCLDYII1II5FR7YzwZ3AH9/1OzC1J9NZc3380ngweDBdmZ2KpGT4chFJxj58/KSrXb2HELpeYeQ5uJOdqx/plz2vBE55HKa3alDwUmBdR73BNsrDjGGepUl+6MA2qitW4pJz0dRFWFWYFyzPknwLc3O1cYnvftuMqbsZm8HMxypqaJdYlDUDGEiLUOxhaHokcGdY+TUUPNsnjjknmM7vZrfGjE7oxgo8n86J25B/fVdcr0pjyESlJFm4Y5WS8h2Xi3wHtkWdzU0W+P97X4tW0cB4LGWxkF73SbyX4roSPGOlFKeNRmJ5GKUMfkO0eO+48GxRl8gv0fq2UMm3dSwSnkMbofpZk9VeX1aRrBoIBn83NQ1BG24XGYbeQpTHxtUnng8HdsYW+nNU1bg3kKaj7j20UT+Vu7fD8aGkj7njWfkin7zp9cXssannrJbHCgb/jugaXU3r6Vpj1s44nUXvyX2kemGFK/Y6jZxTOK9XPPpek+Hk0G/2G9vOaEhXHnGXtkXWsKBu85OabsBPzo7YoQ==
+eJyFUGGLm0AQ/T6/IvippZyu0eSuDQs1ujFejRtWDWmPIOay8SS6a109ehfy32vSQj92YOAxzJv35j0VldznldrBhrA4oBE29YmOwEkTGlLHw5pqnw0NXMddkhEeJSwlkAa4L41jK0XHxcEAj8xTH4+BRC71gsjHWpos7h40WAb+Mhw6wcdBg8Ojw3T+qylbjs/nrqz5h4+fLHNiTRFClwt4cYS1+k39rL68SNXhSj7n1RXNGtl22LLQdHbYi7zmWNZVKU4aHPa94i1upewG3ORKYdlwUZfiACtnmzGSsO/ZgrJs4aRhgk00uN3gru05wGy0zrsXmDsxSVmIjT9HIQ4SEjkrgunqLrwOQurTzE3jhK4IG5x//cu4XIxBkHfKKOu84MqoZCH1RhQQuDTKrrQ0+d9+390Y8ORSRvTjfge3383PY92cPugm0k0bwS2ACbJtC078DbvoX5mmfW+jsYUm93AL4EdbvJ9eH1v6TUSxK9bCf7f6szPlyzjabl7VoLUIIm9OtzFhm8AlO1hTNmQztmz4DclPozk=

+ 3 - 0
src/OpenMind/Admin/Admin.php

@@ -18,6 +18,7 @@ class Admin extends PluginStrategy
 		$this->AddRoute('GET @admin: /admin/eslstatus', __NAMESPACE__ . '\Pages->ESLStatus');
 		$this->AddRoute('GET @admin: /admin/eslstatus', __NAMESPACE__ . '\Pages->ESLStatus');
 		$this->AddRoute('GET @admin: /admin/apstatus', __NAMESPACE__ . '\Pages->APStatus');
 		$this->AddRoute('GET @admin: /admin/apstatus', __NAMESPACE__ . '\Pages->APStatus');
 		$this->AddRoute('GET @admin: /admin/omlsettings', __NAMESPACE__ . '\Pages->OML_Settings');
 		$this->AddRoute('GET @admin: /admin/omlsettings', __NAMESPACE__ . '\Pages->OML_Settings');
+		$this->AddRoute('GET @admin: /admin/users', __NAMESPACE__ . '\Pages->Users');
 
 
 		// Admin Load/Save
 		// Admin Load/Save
 		$this->AddRoute('POST @admin: /admin/config', __NAMESPACE__ . '\Pages->Config');
 		$this->AddRoute('POST @admin: /admin/config', __NAMESPACE__ . '\Pages->Config');
@@ -27,11 +28,13 @@ class Admin extends PluginStrategy
 		// System Settings
 		// System Settings
 		$this->AddMenuItem('System Settings', ['mainMenu' => 'adminMainMenu', 'mdiClass' => 'settings', 'permissionName' => 'admin']);
 		$this->AddMenuItem('System Settings', ['mainMenu' => 'adminMainMenu', 'mdiClass' => 'settings', 'permissionName' => 'admin']);
 		$this->AddMenuItem('OM-Link Settings', ['mainMenu' => 'System Settings', 'url' => 'admin/omlsettings', 'permissionName' => 'admin']);
 		$this->AddMenuItem('OM-Link Settings', ['mainMenu' => 'System Settings', 'url' => 'admin/omlsettings', 'permissionName' => 'admin']);
+		$this->AddMenuItem('Users', ['mainMenu' => 'System Settings', 'url' => 'admin/users', 'permissionName' => 'admin']);
 
 
 		// Menu: ESL Ops
 		// Menu: ESL Ops
 		$this->AddMenuItem('ESL Ops', ['mainMenu' => 'adminMainMenu', 'mdiClass' => 'label', 'permissionName' => 'admin']);
 		$this->AddMenuItem('ESL Ops', ['mainMenu' => 'adminMainMenu', 'mdiClass' => 'label', 'permissionName' => 'admin']);
 		$this->AddMenuItem('Status', ['mainMenu' => 'ESL Ops', 'url' => 'admin/eslstatus', 'permissionName' => 'admin']);
 		$this->AddMenuItem('Status', ['mainMenu' => 'ESL Ops', 'url' => 'admin/eslstatus', 'permissionName' => 'admin']);
 		$this->AddMenuItem('AP Status', ['mainMenu' => 'ESL Ops', 'url' => 'admin/apstatus', 'permissionName' => 'admin']);
 		$this->AddMenuItem('AP Status', ['mainMenu' => 'ESL Ops', 'url' => 'admin/apstatus', 'permissionName' => 'admin']);
+		$this->AddMenuItem('', ['mainMenu' => 'ESL Ops', 'url' => 'admin/apstatus', 'permissionName' => 'admin']);
 
 
 		$roles = new UserRoles();
 		$roles = new UserRoles();
 		$roles->add('admin');
 		$roles->add('admin');

+ 7 - 0
src/OpenMind/Admin/Pages.php

@@ -231,4 +231,11 @@ class Pages extends Controller
 		]);
 		]);
 
 
 	}
 	}
+
+	public function Users($f3)
+	{
+		$f3->set('PAGENAME', 'User Management');
+		$f3->set('CONTENT', 'users.tpl');
+		echo Template::instance()->render('masterpage.tpl');
+	}
 }
 }

+ 12 - 5
src/OpenMind/FindBox/FindBoxService.php

@@ -42,7 +42,7 @@ class JobManager
 			if ($callBack($job) === TRUE)
 			if ($callBack($job) === TRUE)
 				unset($this->jobs[$k]);
 				unset($this->jobs[$k]);
 			else
 			else
-				$job->Next();
+				$job->Run();
 		}
 		}
 	}
 	}
 
 
@@ -94,6 +94,11 @@ class AsyncJobClass
 		$this->Stop('Class Disposed');
 		$this->Stop('Class Disposed');
 	}
 	}
 
 
+	public function Stop($reason)
+	{
+		return $this->blinkGenerator->send($reason);
+	}
+
 	public function RemoveLabels(array $labelsToFind)
 	public function RemoveLabels(array $labelsToFind)
 	{
 	{
 		$a = array_diff($this->labels, $labelsToFind);
 		$a = array_diff($this->labels, $labelsToFind);
@@ -150,14 +155,14 @@ class AsyncJobClass
 		return $this->blinkGenerator->current();
 		return $this->blinkGenerator->current();
 	}
 	}
 
 
-	public function Next()
+	public function Run()
 	{
 	{
 		$this->blinkGenerator->next();
 		$this->blinkGenerator->next();
 	}
 	}
 
 
-	public function Stop($reason)
+	public function Finished()
 	{
 	{
-		return $this->blinkGenerator->send($reason);
+		return !$this->blinkGenerator->valid();
 	}
 	}
 }
 }
 
 
@@ -248,7 +253,9 @@ class FindBoxService
 			}
 			}
 
 
 			// Async check on JOBS
 			// Async check on JOBS
-			$jobManager->Run(function ($asyncBlink) {
+			$jobManager->Run(/**
+			 * @param AsyncJobClass $asyncBlink
+			 */ function ($asyncBlink) {
 
 
 				$err = $asyncBlink->GetCurrentValue();  // Fa scattare il generator e ricava il valore
 				$err = $asyncBlink->GetCurrentValue();  // Fa scattare il generator e ricava il valore
 
 

+ 60 - 0
ui/admin/assets/css/bootstrap-tagsinput.css

@@ -0,0 +1,60 @@
+/*
+ * bootstrap-tagsinput v0.8.0
+ * 
+ */
+
+.bootstrap-tagsinput {
+  background-color: #fff;
+  border: 1px solid #ccc;
+  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+  display: inline-block;
+  padding: 4px 6px;
+  color: #555;
+  vertical-align: middle;
+  border-radius: 4px;
+  max-width: 100%;
+  line-height: 22px;
+  cursor: text;
+}
+.bootstrap-tagsinput input {
+  border: none;
+  box-shadow: none;
+  outline: none;
+  background-color: transparent;
+  padding: 0 6px;
+  margin: 0;
+  width: auto;
+  max-width: inherit;
+}
+.bootstrap-tagsinput.form-control input::-moz-placeholder {
+  color: #777;
+  opacity: 1;
+}
+.bootstrap-tagsinput.form-control input:-ms-input-placeholder {
+  color: #777;
+}
+.bootstrap-tagsinput.form-control input::-webkit-input-placeholder {
+  color: #777;
+}
+.bootstrap-tagsinput input:focus {
+  border: none;
+  box-shadow: none;
+}
+.bootstrap-tagsinput .tag {
+  margin-right: 2px;
+  color: white;
+}
+.bootstrap-tagsinput .tag [data-role="remove"] {
+  margin-left: 8px;
+  cursor: pointer;
+}
+.bootstrap-tagsinput .tag [data-role="remove"]:after {
+  content: "x";
+  padding: 0px 2px;
+}
+.bootstrap-tagsinput .tag [data-role="remove"]:hover {
+  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
+}
+.bootstrap-tagsinput .tag [data-role="remove"]:hover:active {
+  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+}

File diff suppressed because it is too large
+ 5 - 0
ui/admin/assets/js/bootstrap-tagsinput.min.js


+ 6 - 1
ui/admin/assets/js/index.js

@@ -23,14 +23,19 @@ import 'datatables.net-select-bs4/js/select.bootstrap4.min.js';
 // Toastr
 // Toastr
 import 'toastr/build/toastr.min.css';
 import 'toastr/build/toastr.min.css';
 
 
+// other
+import '../js/bootstrap-tagsinput.min';
+
 // CSS
 // CSS
 import '../css/icons.css';
 import '../css/icons.css';
 import '../css/style.css';
 import '../css/style.css';
 import '../css/admin.scss';
 import '../css/admin.scss';
+import '../css/bootstrap-tagsinput.css';
 
 
 // App js
 // App js
 import './jquery.core.js';
 import './jquery.core.js';
 import './jquery.app.js';
 import './jquery.app.js';
 import "./admin.js";
 import "./admin.js";
 
 
-window.$ = window.jQuery = jQuery;
+//TODO: remove if not need
+// window.$ = window.jQuery = jQuery;

+ 23 - 0
ui/admin/users.tpl

@@ -0,0 +1,23 @@
+<div class="accordion" id="userlist">
+	<div class="card">
+		<div class="card-header">
+			<h5 class="m-0">
+				<a class="text-dark" data-toggle="collapse" data-target="#user1" aria-controls="collapseOne">
+					Utente 1
+				</a>
+			</h5>
+		</div>
+
+		<div id="user1" class="collapse" data-target="#userlist">
+			<div class="card-body">
+				<form class="form">
+					<div class="form-group">
+						<input type="text" class="form-control" placeholder="username"/>
+						<input type="text" class="form-control" placeholder="password"/>
+						<input type="text" class="form-control" placeholder="roles"/>
+					</div>
+				</form>
+			</div>
+		</div>
+	</div>
+</div>

Some files were not shown because too many files changed in this diff