Browse Source

ADD: build.js for Admin module

Giancarlo Voci 7 years ago
parent
commit
9e275c2e21

+ 1 - 5
.gitignore

@@ -55,8 +55,4 @@ import
 bundle.js
 bundle.js
 bundle.css
 bundle.css
 /cfg/*.bin
 /cfg/*.bin
-omlink.css
-omlink.min.js
-import.json
-admin.css
-admin.min.js
+/src/OpenMind/Admin/ui/assets/build

+ 15 - 0
src/OpenMind/Admin/build.css.list

@@ -0,0 +1,15 @@
+; DataTables
+ui/assets/plugins/datatables/dataTables.bootstrap4.min.css
+ui/assets/plugins/datatables/buttons.bootstrap4.min.css
+
+; Responsive datatable examples
+ui/assets/plugins/datatables/responsive.bootstrap4.min.css
+
+; Multi Item Selection examples
+ui/assets/plugins/datatables/select.bootstrap4.min.css
+
+; App CSs
+ui/assets/css/bootstrap.min.css
+ui/assets/css/icons.css
+ui/assets/css/style.css
+ui/assets/build/admin.min.css

+ 61 - 29
src/OpenMind/Admin/build.js

@@ -4,6 +4,51 @@ const sass = require(`${MODULES_PATH}/node-sass`);
 const fs = require('fs');
 const fs = require('fs');
 var path = require('path');
 var path = require('path');
 
 
+
+let listTemp = fs.readFileSync('build.css.list').toString().split("\n");
+let cssList = listTemp.filter((x) => {
+	return x.replace(/^;.*/, '').replace('\r', '').length > 0
+}).map((d) => {
+	return d.replace('\r', '')
+});
+
+let libList = [
+	"ui/assets/js/jquery.min.js",
+	"ui/assets/js/popper.min.js",
+	"ui/assets/js/bootstrap.min.js",
+	"ui/assets/js/waves.js",
+	"ui/assets/js/jquery.slimscroll.js",
+
+	// Required datatable js
+	"ui/assets/plugins/datatables/jquery.dataTables.min.js",
+	"ui/assets/plugins/datatables/dataTables.bootstrap4.min.js",
+
+	//Buttons examples
+	"ui/assets/plugins/datatables/dataTables.buttons.min.js",
+	"ui/assets/plugins/datatables/buttons.bootstrap4.min.js",
+	"ui/assets/plugins/datatables/jszip.min.js",
+	"ui/assets/plugins/datatables/pdfmake.min.js",
+	"ui/assets/plugins/datatables/vfs_fonts.js",
+	"ui/assets/plugins/datatables/buttons.html5.min.js",
+	"ui/assets/plugins/datatables/buttons.print.min.js",
+
+	// Key Tables
+	"ui/assets/plugins/datatables/dataTables.keyTable.min.js",
+
+	// Responsive examples
+	"ui/assets/plugins/datatables/dataTables.responsive.min.js",
+	"ui/assets/plugins/datatables/responsive.bootstrap4.min.js",
+
+	// Selection table
+	"ui/assets/plugins/datatables/dataTables.select.min.js",
+
+	// App js
+	"ui/assets/js/jquery.core.js",
+	"ui/assets/js/jquery.app.js",
+	"ui/assets/js/admin.js",
+];
+
+
 /**
 /**
  * Functions
  * Functions
  */
  */
@@ -31,44 +76,31 @@ function* walkSync(dir) {
  * MAIN
  * MAIN
  */
  */
 
 
-let jsList = [];
-
-for (let val of walkSync('ui/assets/js')) {
-	if (val.indexOf('.min.') == -1) {
-		console.log(val);
-		jsList.push(val);
-	}
-}
-compressor.minify({
-		compressor: 'uglify-es',
-		input: jsList,
-		output: 'ui/js/admin.min.js'
-	}
-);
-
-return;
-
-let buffer = sass.renderSync({file: 'ui/css/admin.scss'});
+/**
+ * CSS
+ */
 
 
-writeFileSync('ui/css/admin.css', buffer.css);
+// Compile SCSS
+let buffer = sass.renderSync({file: 'ui/assets/css/admin.scss'});
+// Write to file CSS
+fs.writeFileSync('ui/assets/build/admin.min.css', buffer.css);
 
 
+//Concatenate all CSS in one MIN.CSS file
 compressor.minify({
 compressor.minify({
 		compressor: 'clean-css',
 		compressor: 'clean-css',
 		input: cssList,
 		input: cssList,
-		output: 'ui/bundle.css'
+		output: 'ui/assets/build/bundle.min.css'
 	}
 	}
 );
 );
 
 
-compressor.minify({
-		compressor: 'uglify-es',
-		input: jsList,
-		output: 'ui/js/admin.min.js'
-	}
-);
+/**
+ * JS
+ */
+// ..and minify it in one file
 
 
 compressor.minify({
 compressor.minify({
-		compressor: 'no-compress',
-		input: [].concat(libList, ["ui/js/admin.min.js"]),
-		output: 'ui/bundle.js'
+		compressor: 'uglify-es',
+		input: libList,
+		output: 'ui/assets/build/bundle.min.js'
 	}
 	}
 );
 );

+ 0 - 0
src/OpenMind/Admin/ui/css/admin.main.css → src/OpenMind/Admin/ui/assets/css/admin.scss


+ 0 - 0
src/OpenMind/Admin/ui/js/admin.js → src/OpenMind/Admin/ui/assets/js/admin.js


+ 169 - 214
src/OpenMind/Admin/ui/masterpage.tpl

@@ -1,195 +1,181 @@
 <!DOCTYPE html>
 <!DOCTYPE html>
 <html lang="it">
 <html lang="it">
 <head>
 <head>
-  <meta charset="UTF-8">
-  <title>{{@SITENAME}}</title>
-  <link href="{{@BASEURL}}/ui/images/favicon.ico" rel="shortcut icon" type="image/x-icon">
-  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
-  <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
-
-  <!-- DataTables -->
-  <link href="{{@BASEURL}}/{{@UI}}assets/plugins/datatables/dataTables.bootstrap4.min.css" rel="stylesheet" type="text/css"/>
-  <link href="{{@BASEURL}}/{{@UI}}assets/plugins/datatables/buttons.bootstrap4.min.css" rel="stylesheet" type="text/css"/>
-  <!-- Responsive datatable examples -->
-  <link href="{{@BASEURL}}/{{@UI}}assets/plugins/datatables/responsive.bootstrap4.min.css" rel="stylesheet" type="text/css"/>
-  <!-- Multi Item Selection examples -->
-  <link href="{{@BASEURL}}/{{@UI}}assets/plugins/datatables/select.bootstrap4.min.css" rel="stylesheet" type="text/css"/>
-
-
-  <!-- App css -->
-  <link href="{{@BASEURL}}/{{@UI}}assets/css/bootstrap.min.css" rel="stylesheet" type="text/css"/>
-  <link href="{{@BASEURL}}/{{@UI}}assets/css/icons.css" rel="stylesheet" type="text/css"/>
-  <link href="{{@BASEURL}}/{{@UI}}assets/css/style.css" rel="stylesheet" type="text/css"/>
-  <link href="{{@BASEURL}}/{{@UI}}css/admin.main.css" rel="stylesheet" type="text/css"/>
-
-
-  <script type="text/javascript">
-    const BASEURL = '{{@BASEURL}}';
-  </script>
+	<meta charset="UTF-8">
+	<title>{{@SITENAME}}</title>
+	<link href="{{@BASEURL}}/ui/images/favicon.ico" rel="shortcut icon" type="image/x-icon">
+	<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
+	<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
+
+	<link href="{{@BASEURL}}/{{@UI}}assets/build/bundle.min.css" rel="stylesheet" type="text/css"/>
+
+	<script type="text/javascript">
+		const BASEURL = '{{@BASEURL}}';
+	</script>
 </head>
 </head>
 <body>
 <body>
 
 
 <!-- Navigation Bar-->
 <!-- Navigation Bar-->
 <header id="topnav">
 <header id="topnav">
-  <div class="topbar-main">
-    <div class="container-fluid">
-
-      <!-- Logo container-->
-      <div class="logo">
-        <!-- Text Logo -->
-        <a href="index.html" class="logo">
-          <span class="logo-small"><i class="mdi mdi-radar"></i></span>
-          <span class="logo-large"><i class="mdi mdi-radar"></i> OM-Link</span>
-        </a>
-        <!-- Image Logo -->
-        <!-- a href="index.html" class="logo">
+	<div class="topbar-main">
+		<div class="container-fluid">
+
+			<!-- Logo container-->
+			<div class="logo">
+				<!-- Text Logo -->
+				<a href="index.html" class="logo">
+					<span class="logo-small"><i class="mdi mdi-radar"></i></span>
+					<span class="logo-large"><i class="mdi mdi-radar"></i> OM-Link</span>
+				</a>
+				<!-- Image Logo -->
+				<!-- a href="index.html" class="logo">
 					<img src="{{@BASEURL}}/{{@UI}}assets/images/logo-sm.png" alt="" height="26" class="logo-small">
 					<img src="{{@BASEURL}}/{{@UI}}assets/images/logo-sm.png" alt="" height="26" class="logo-small">
 					<img src="{{@BASEURL}}/{{@UI}}assets/images/logo.png" alt="" height="24" class="logo-large">
 					<img src="{{@BASEURL}}/{{@UI}}assets/images/logo.png" alt="" height="24" class="logo-large">
 				</a -->
 				</a -->
 
 
-      </div>
-      <!-- End Logo container-->
-
-      <div class="menu-extras topbar-custom">
-
-        <ul class="list-unstyled topbar-right-menu float-right mb-0">
-
-          <li class="menu-item">
-            <!-- Mobile menu toggle-->
-            <a class="navbar-toggle nav-link">
-              <div class="lines">
-                <span></span>
-                <span></span>
-                <span></span>
-              </div>
-            </a>
-            <!-- End mobile menu toggle-->
-          </li>
-          <li>
-            <!-- Notification -->
-            <div class="notification-box">
-              <ul class="list-inline mb-0">
-                <li>
-                  <a href="javascript:void(0);" class="right-bar-toggle">
-                    <i class="mdi mdi-bell-outline noti-icon"></i>
-                  </a>
-                  <div class="noti-dot">
-                    <span class="dot"></span>
-                    <span class="pulse"></span>
-                  </div>
-                </li>
-              </ul>
-            </div>
-            <!-- End Notification bar -->
-          </li>
-
-          <li class="dropdown notification-list">
-            <a class="nav-link dropdown-toggle waves-effect waves-light nav-user" data-toggle="dropdown" href="#" role="button"
-               aria-haspopup="false" aria-expanded="false">
-              <img src="{{@BASEURL}}/{{@UI}}assets/images/users/default.png" alt="user" class="rounded-circle">
-            </a>
-            <div class="dropdown-menu dropdown-menu-right profile-dropdown ">
-
-              <a href="javascript:void(0);" class="dropdown-item notify-item">
-                <i class="ti-user m-r-5"></i> {{@USER.username}}
-              </a>
-
-              <!-- item-->
-              <a href="{{@BASEURL}}/logout" class="dropdown-item notify-item">
-                <i class="ti-power-off m-r-5"></i> Logout
-              </a>
-
-            </div>
-          </li>
-
-        </ul>
-      </div>
-      <!-- end menu-extras -->
-
-      <div class="clearfix"></div>
-
-    </div> <!-- end container -->
-  </div>
-  <!-- end topbar-main -->
-
-  <div class="navbar-custom">
-    <div class="container-fluid">
-      <div id="navigation">
-        <!-- Navigation Menu-->
-        <ul class="navigation-menu">
-          <li class="has-submenu">
-            <a href="{{@BASEURL}}/admin"><i class="mdi mdi-view-dashboard"></i> <span> Dashboard </span> </a>
-          </li>
-
-          <repeat group="{{@GLOBALMENU}}" key="{{@mainmenuKey}}" value="{{@mainmenu}}">
-            <check if="{{ @mainmenu.mainMenu == 'adminMainMenu' }}">
-              <li class="has-submenu">
-                <a href="#"><i class="mdi mdi-{{@mainmenu.mdiClass}}"></i><span> {{@mainmenuKey}}</span> </a>
-                <ul class="submenu">
-                  <repeat group="{{@GLOBALMENU}}" key="{{@ikey}}" value="{{@menuitem}}">
-                    <check if="{{ !empty(@menuitem.url) && @menuitem.mainMenu == @mainmenuKey}}">
-                      <li><a href="{{@BASEURL . '/' . @menuitem.url}}">{{@ikey}}</a></li>
-                    </check>
-                  </repeat>
-                </ul>
-              </li>
-            </check>
-          </repeat>
-
-        </ul>
-        <!-- End navigation menu -->
-      </div> <!-- end #navigation -->
-    </div> <!-- end container -->
-  </div> <!-- end navbar-custom -->
+			</div>
+			<!-- End Logo container-->
+
+			<div class="menu-extras topbar-custom">
+
+				<ul class="list-unstyled topbar-right-menu float-right mb-0">
+
+					<li class="menu-item">
+						<!-- Mobile menu toggle-->
+						<a class="navbar-toggle nav-link">
+							<div class="lines">
+								<span></span>
+								<span></span>
+								<span></span>
+							</div>
+						</a>
+						<!-- End mobile menu toggle-->
+					</li>
+					<li>
+						<!-- Notification -->
+						<div class="notification-box">
+							<ul class="list-inline mb-0">
+								<li>
+									<a href="javascript:void(0);" class="right-bar-toggle">
+										<i class="mdi mdi-bell-outline noti-icon"></i>
+									</a>
+									<div class="noti-dot">
+										<span class="dot"></span>
+										<span class="pulse"></span>
+									</div>
+								</li>
+							</ul>
+						</div>
+						<!-- End Notification bar -->
+					</li>
+
+					<li class="dropdown notification-list">
+						<a class="nav-link dropdown-toggle waves-effect waves-light nav-user" data-toggle="dropdown" href="#" role="button"
+							 aria-haspopup="false" aria-expanded="false">
+							<img src="{{@BASEURL}}/{{@UI}}assets/images/users/default.png" alt="user" class="rounded-circle">
+						</a>
+						<div class="dropdown-menu dropdown-menu-right profile-dropdown ">
+
+							<a href="javascript:void(0);" class="dropdown-item notify-item">
+								<i class="ti-user m-r-5"></i> {{@USER.username}}
+							</a>
+
+							<!-- item-->
+							<a href="{{@BASEURL}}/logout" class="dropdown-item notify-item">
+								<i class="ti-power-off m-r-5"></i> Logout
+							</a>
+
+						</div>
+					</li>
+
+				</ul>
+			</div>
+			<!-- end menu-extras -->
+
+			<div class="clearfix"></div>
+
+		</div> <!-- end container -->
+	</div>
+	<!-- end topbar-main -->
+
+	<div class="navbar-custom">
+		<div class="container-fluid">
+			<div id="navigation">
+				<!-- Navigation Menu-->
+				<ul class="navigation-menu">
+					<li class="has-submenu">
+						<a href="{{@BASEURL}}/admin"><i class="mdi mdi-view-dashboard"></i> <span> Dashboard </span> </a>
+					</li>
+
+					<repeat group="{{@GLOBALMENU}}" key="{{@mainmenuKey}}" value="{{@mainmenu}}">
+						<check if="{{ @mainmenu.mainMenu == 'adminMainMenu' }}">
+							<li class="has-submenu">
+								<a href="#"><i class="mdi mdi-{{@mainmenu.mdiClass}}"></i><span> {{@mainmenuKey}}</span> </a>
+								<ul class="submenu">
+									<repeat group="{{@GLOBALMENU}}" key="{{@ikey}}" value="{{@menuitem}}">
+										<check if="{{ !empty(@menuitem.url) && @menuitem.mainMenu == @mainmenuKey}}">
+											<li><a href="{{@BASEURL . '/' . @menuitem.url}}">{{@ikey}}</a></li>
+										</check>
+									</repeat>
+								</ul>
+							</li>
+						</check>
+					</repeat>
+
+				</ul>
+				<!-- End navigation menu -->
+			</div> <!-- end #navigation -->
+		</div> <!-- end container -->
+	</div> <!-- end navbar-custom -->
 </header>
 </header>
 <!-- End Navigation Bar-->
 <!-- End Navigation Bar-->
 
 
 
 
 <div class="wrapper">
 <div class="wrapper">
-  <div class="container-fluid">
-
-    <!-- Page-Title -->
-    <div class="row">
-      <div class="col-sm-12">
-        <h4 class="page-title">{{@PAGENAME}}</h4>
-      </div>
-    </div>
-    <!-- end page title end breadcrumb -->
-
-    <div class="row">
-
-      <include href="{{@CONTENT}}" if="{{isset(@CONTENT)}}"/>
-
-    </div>
-    <!-- end row -->
-
-  </div> <!-- end container -->
-
-
-  <!-- Right Sidebar -->
-  <div class="side-bar right-bar">
-    <a href="javascript:void(0);" class="right-bar-toggle">
-      <i class="mdi mdi-close-circle-outline"></i>
-    </a>
-    <h4 class="">Notifications</h4>
-    <div class="notification-list nicescroll">
-      <ul class="list-group list-no-border user-list">
-        <li class="list-group-item">
-          <a href="#" class="user-list-item">
-            <div class="avatar">
-              <img src="{{@BASEURL}}/{{@UI}}assets/images/users/avatar-2.jpg" alt="">
-            </div>
-            <div class="user-desc">
-              <span class="name">FindBox service</span>
-              <span class="desc">Service unavailable</span>
-              <span class="time">1 seconds ago</span>
-            </div>
-          </a>
-        </li>
-      </ul>
-    </div>
-  </div>
-  <!-- /Right-bar -->
+	<div class="container-fluid">
+
+		<!-- Page-Title -->
+		<div class="row">
+			<div class="col-sm-12">
+				<h4 class="page-title">{{@PAGENAME}}</h4>
+			</div>
+		</div>
+		<!-- end page title end breadcrumb -->
+
+		<div class="row">
+
+			<include href="{{@CONTENT}}" if="{{isset(@CONTENT)}}"/>
+
+		</div>
+		<!-- end row -->
+
+	</div> <!-- end container -->
+
+
+	<!-- Right Sidebar -->
+	<div class="side-bar right-bar">
+		<a href="javascript:void(0);" class="right-bar-toggle">
+			<i class="mdi mdi-close-circle-outline"></i>
+		</a>
+		<h4 class="">Notifications</h4>
+		<div class="notification-list nicescroll">
+			<ul class="list-group list-no-border user-list">
+				<li class="list-group-item">
+					<a href="#" class="user-list-item">
+						<div class="avatar">
+							<img src="{{@BASEURL}}/{{@UI}}assets/images/users/default.png" alt="">
+						</div>
+						<div class="user-desc">
+							<span class="name">FindBox service</span>
+							<span class="desc">Service unavailable</span>
+							<span class="time">1 seconds ago</span>
+						</div>
+					</a>
+				</li>
+			</ul>
+		</div>
+	</div>
+	<!-- /Right-bar -->
 
 
 </div>
 </div>
 <!-- end wrapper -->
 <!-- end wrapper -->
@@ -197,48 +183,17 @@
 
 
 <!-- Footer -->
 <!-- Footer -->
 <footer class="footer">
 <footer class="footer">
-  <div class="container">
-    <div class="row">
-      <div class="col-12 text-center">
-        2019 © Open Mind Group
-      </div>
-    </div>
-  </div>
+	<div class="container">
+		<div class="row">
+			<div class="col-12 text-center">
+				2019 © Open Mind Group
+			</div>
+		</div>
+	</div>
 </footer>
 </footer>
 <!-- End Footer -->
 <!-- End Footer -->
 
 
-<script src="{{@BASEURL}}/{{@UI}}assets/js/jquery.min.js"></script>
-<script src="{{@BASEURL}}/{{@UI}}assets/js/popper.min.js"></script>
-<script src="{{@BASEURL}}/{{@UI}}assets/js/bootstrap.min.js"></script>
-<script src="{{@BASEURL}}/{{@UI}}assets/js/waves.js"></script>
-<script src="{{@BASEURL}}/{{@UI}}assets/js/jquery.slimscroll.js"></script>
-
-<!-- Required datatable js -->
-<script src="{{@BASEURL}}/{{@UI}}assets/plugins/datatables/jquery.dataTables.min.js"></script>
-<script src="{{@BASEURL}}/{{@UI}}assets/plugins/datatables/dataTables.bootstrap4.min.js"></script>
-<!-- Buttons examples -->
-<script src="{{@BASEURL}}/{{@UI}}assets/plugins/datatables/dataTables.buttons.min.js"></script>
-<script src="{{@BASEURL}}/{{@UI}}assets/plugins/datatables/buttons.bootstrap4.min.js"></script>
-<script src="{{@BASEURL}}/{{@UI}}assets/plugins/datatables/jszip.min.js"></script>
-<script src="{{@BASEURL}}/{{@UI}}assets/plugins/datatables/pdfmake.min.js"></script>
-<script src="{{@BASEURL}}/{{@UI}}assets/plugins/datatables/vfs_fonts.js"></script>
-<script src="{{@BASEURL}}/{{@UI}}assets/plugins/datatables/buttons.html5.min.js"></script>
-<script src="{{@BASEURL}}/{{@UI}}assets/plugins/datatables/buttons.print.min.js"></script>
-
-<!-- Key Tables -->
-<script src="{{@BASEURL}}/{{@UI}}assets/plugins/datatables/dataTables.keyTable.min.js"></script>
-
-<!-- Responsive examples -->
-<script src="{{@BASEURL}}/{{@UI}}assets/plugins/datatables/dataTables.responsive.min.js"></script>
-<script src="{{@BASEURL}}/{{@UI}}assets/plugins/datatables/responsive.bootstrap4.min.js"></script>
-
-<!-- Selection table -->
-<script src="{{@BASEURL}}/{{@UI}}assets/plugins/datatables/dataTables.select.min.js"></script>
-
-<!-- App js -->
-<script src="{{@BASEURL}}/{{@UI}}assets/js/jquery.core.js"></script>
-<script src="{{@BASEURL}}/{{@UI}}assets/js/jquery.app.js"></script>
-<script src="{{@BASEURL}}/{{@UI}}js/admin.js"></script>
+<script src="{{@BASEURL}}/{{@UI}}assets/build/bundle.min.js"></script>
 
 
 </body>
 </body>