diff --git a/README.md b/README.md index 3ba238f..3ffcdd1 100755 --- a/README.md +++ b/README.md @@ -28,11 +28,6 @@ curl -L https://deb.nodesource.com/setup_8.x | bash - apt install -y nodejs=8.17.0-1nodesource1 apt install -y sudo haxe apache2 make git imagemagick gettext libapache2-mod-neko mariadb-server sendemail libio-socket-ssl-perl libnet-ssleay-perl -mysql -u root < ``` @@ -91,7 +86,7 @@ go to http://localhost for ERROR + table regeneration, then ``` cd /var/www/cagettepei -SECRET=$(grep key= config.xml | cut -d= -f2 | cut -d'"' -f2) +SECRET=$(grep key config.xml | cut -d= -f2 | cut -d'"' -f2) echo "insert into User values (1,'fr',MD5('${SECRET}cagettepei'),1,'Administrateur','Cagette Péi', 'admin', null, null, null, null, null, null, null, null, null, now(), now(),6,null, null)" | mysql -h localhost -u cagettepei -pcagettepei cagettepei ``` diff --git a/src/controller/Contract.hx b/src/controller/Contract.hx index 73d5bf2..5ac205e 100755 --- a/src/controller/Contract.hx +++ b/src/controller/Contract.hx @@ -30,7 +30,7 @@ class Contract extends Controller { @tpl("contract/default.mtt") function doDefault() { // Create the list of links to change the language - var langs = App.config.get("langs").split(";"); + var langs = App.config.get("langs", "fr").split(";"); var langNames = App.config.get("langnames", "Français").split(";"); var i = 0; var langLinks = ""; diff --git a/src/controller/admin/Admin.hx b/src/controller/admin/Admin.hx index b1b6d85..9616b9f 100755 --- a/src/controller/admin/Admin.hx +++ b/src/controller/admin/Admin.hx @@ -1,138 +1,122 @@ package controller.admin; + import haxe.web.Dispatch; import Common; class Admin extends Controller { - public function new() { super(); view.category = 'admin'; - - //trigger a "Nav" event + + // trigger a "Nav" event var nav = new Array(); - var e = Nav(nav,"admin"); + var e = Nav(nav, "admin"); app.event(e); view.nav = e.getParameters()[0]; - } @tpl("admin/default.mtt") function doDefault() { view.now = Date.now(); } - + @tpl("admin/emails.mtt") function doEmails() { var browse = function(index:Int, limit:Int) { - return sugoi.db.BufferedMail.manager.search($sdate==null,{limit:[index,limit],orderBy:-cdate},false); + return sugoi.db.BufferedMail.manager.search($sdate == null, {limit: [index, limit], orderBy: -cdate}, false); } - var count = sugoi.db.BufferedMail.manager.count($sdate==null); - view.browser = new sugoi.tools.ResultsBrowser(count,10,browse); + var count = sugoi.db.BufferedMail.manager.count($sdate == null); + view.browser = new sugoi.tools.ResultsBrowser(count, 10, browse); view.num = count; - } @tpl("form.mtt") function doSmtp() { - var f = new sugoi.form.Form("emails"); - var data = [ - {label:"SMTP",value:"smtp"}, - {label:"Mandrill API",value:"mandrill"}, - ]; - - var mailer = sugoi.db.Variable.get("mailer")==null ? "smtp" : sugoi.db.Variable.get("mailer"); - var host = sugoi.db.Variable.get("smtp_host")==null ? App.config.get("smtp_host") : sugoi.db.Variable.get("smtp_host"); - var port = sugoi.db.Variable.get("smtp_port")==null ? App.config.get("smtp_port") : sugoi.db.Variable.get("smtp_port"); - var user = sugoi.db.Variable.get("smtp_user")==null ? App.config.get("smtp_user") : sugoi.db.Variable.get("smtp_user"); - var pass = sugoi.db.Variable.get("smtp_pass")==null ? App.config.get("smtp_pass") : sugoi.db.Variable.get("smtp_pass"); - - - f.addElement(new sugoi.form.elements.StringSelect("mailer", "Mailer", data, mailer )); + var data = [{label: "SMTP", value: "smtp"}, {label: "Mandrill API", value: "mandrill"},]; + + var mailer = sugoi.db.Variable.get("mailer") == null ? "smtp" : sugoi.db.Variable.get("mailer"); + var host = sugoi.db.Variable.get("smtp_host") == null ? "" : sugoi.db.Variable.get("smtp_host"); + var port = sugoi.db.Variable.get("smtp_port") == null ? "587" : sugoi.db.Variable.get("smtp_port"); + var user = sugoi.db.Variable.get("smtp_user") == null ? "" : sugoi.db.Variable.get("smtp_user"); + var pass = sugoi.db.Variable.get("smtp_pass") == null ? "" : sugoi.db.Variable.get("smtp_pass"); + + f.addElement(new sugoi.form.elements.StringSelect("mailer", "Mailer", data, mailer)); f.addElement(new sugoi.form.elements.StringInput("smtp_host", "host", host)); f.addElement(new sugoi.form.elements.StringInput("smtp_port", "port", port)); f.addElement(new sugoi.form.elements.StringInput("smtp_user", "user", user)); f.addElement(new sugoi.form.elements.StringInput("smtp_pass", "pass", pass)); - - - if (f.isValid()){ - for ( k in ["mailer","smtp_host","smtp_port","smtp_user","smtp_pass"]){ + + if (f.isValid()) { + for (k in ["mailer", "smtp_host", "smtp_port", "smtp_user", "smtp_pass"]) { sugoi.db.Variable.set(k, f.getValueOf(k)); } - throw Ok("/admin/emails", t._("Configuration updated") ); - + throw Ok("/admin/emails", t._("Configuration updated")); } - + view.title = t._("Email service configuration"); view.form = f; } - + function doPlugins(d:Dispatch) { d.dispatch(new controller.admin.Plugins()); } - - + @tpl("admin/taxo.mtt") - function doTaxo(){ - + function doTaxo() { view.categ = db.TxpCategory.manager.all(); - } - + /** * Display errors logged in DB */ @tpl("admin/errors.mtt") - function doErrors( args:{?user: Int, ?like: String, ?empty:Bool} ) { + function doErrors(args:{?user:Int, ?like:String, ?empty:Bool}) { view.now = Date.now(); - view.u = args.user!=null ? db.User.manager.get(args.user,false) : null; - view.like = args.like!=null ? args.like : ""; + view.u = args.user != null ? db.User.manager.get(args.user, false) : null; + view.like = args.like != null ? args.like : ""; var sql = ""; - if( args.user!=null ) sql += " AND uid="+args.user; - //if( args.like!=null && args.like != "" ) sql += " AND error like "+sys.db.Manager.cnx.quote("%"+args.like+"%"); + if (args.user != null) + sql += " AND uid=" + args.user; + // if( args.like!=null && args.like != "" ) sql += " AND error like "+sys.db.Manager.cnx.quote("%"+args.like+"%"); if (args.empty) { sys.db.Manager.cnx.request("truncate table Error"); } - var errorsStats = sys.db.Manager.cnx.request("select count(id) as c, DATE_FORMAT(date,'%y-%m-%d') as day from Error where date > NOW()- INTERVAL 1 MONTH "+sql+" group by day order by day").results(); + var errorsStats = sys.db.Manager.cnx.request("select count(id) as c, DATE_FORMAT(date,'%y-%m-%d') as day from Error where date > NOW()- INTERVAL 1 MONTH " + + sql + + " group by day order by day") + .results(); view.errorsStats = errorsStats; - view.browser = new sugoi.tools.ResultsBrowser( - sugoi.db.Error.manager.unsafeCount("SELECT count(*) FROM Error WHERE 1 "+sql), - 20, - function(start, limit) { return sugoi.db.Error.manager.unsafeObjects("SELECT * FROM Error WHERE 1 "+sql+" ORDER BY date DESC LIMIT "+start+","+limit,false); } - ); + view.browser = new sugoi.tools.ResultsBrowser(sugoi.db.Error.manager.unsafeCount("SELECT count(*) FROM Error WHERE 1 " + sql), 20, + function(start, limit) { + return sugoi.db.Error.manager.unsafeObjects("SELECT * FROM Error WHERE 1 " + sql + " ORDER BY date DESC LIMIT " + start + "," + limit, false); + }); } @tpl("admin/graph.mtt") - function doGraph(?key:String,?year:Int,?month:Int){ - - - var from = new Date(year,month,1,0,0,0); - var to = new Date(year,month+1,0,23,59,59); + function doGraph(?key:String, ?year:Int, ?month:Int) { + var from = new Date(year, month, 1, 0, 0, 0); + var to = new Date(year, month + 1, 0, 23, 59, 59); - if(app.params.exists("recompute")){ - - switch(key){ + if (app.params.exists("recompute")) { + switch (key) { case "basket": - for( d in 1...to.getDate()){ - var _from = new Date(year,month,d,0,0,0); - var _to = new Date(year,month,d,23,59,59); - var value = db.Basket.manager.count($cdate>=_from && $cdate<=_to); - var g = db.Graph.record(key,value, _from ); + for (d in 1...to.getDate()) { + var _from = new Date(year, month, d, 0, 0, 0); + var _to = new Date(year, month, d, 23, 59, 59); + var value = db.Basket.manager.count($cdate >= _from && $cdate <= _to); + var g = db.Graph.record(key, value, _from); // trace(value,_from,g); - } - - } - } - var data = db.Graph.getRange(key,from,to); + var data = db.Graph.getRange(key, from, to); view.data = data; view.from = from; view.to = to; @@ -140,84 +124,69 @@ class Admin extends Controller { var averageValue = 0.0; var total = 0.0; - for( d in data) total += d.value; - averageValue = total/data.length; + for (d in data) + total += d.value; + averageValue = total / data.length; view.total = total; view.averageValue = averageValue; - - - - } - - function doFixDistribValidation() { + function doFixDistribValidation() { Sys.println("===== Liste des distributions ayant été re-validées ====
"); - //Get the current group + // Get the current group var group = app.user.amap; - //Get all the contracts for this given group - var contractIds = Lambda.map(group.getContracts(),function(x) return x.id); - //Get all the validated distributions for this given group - var validatedDistribs = db.Distribution.manager.search( ($contractId in contractIds) && $validated == true, {orderBy:date}, false); - for (distrib in validatedDistribs){ - + // Get all the contracts for this given group + var contractIds = Lambda.map(group.getContracts(), function(x) return x.id); + // Get all the validated distributions for this given group + var validatedDistribs = db.Distribution.manager.search(($contractId in contractIds) && $validated == true, {orderBy: date}, false); + for (distrib in validatedDistribs) { service.PaymentService.validateDistribution(distrib); Sys.println(distrib.toString() + "
"); - } Sys.println("===== Fin de la liste ===="); - } function doCheckDistribValidation() { - Sys.println("===== Liste des distributions validées ayant des opérations/paiements non validés ====
"); - //Get the current group + // Get the current group var group = app.user.amap; - //Get all the contracts for this given group - var contractIds = Lambda.map(group.getContracts(),function(x) return x.id); - //Get all the validated distributions for this given group - var validatedDistribs = db.Distribution.manager.search( ($contractId in contractIds) && $validated == true, {orderBy:date}, false); - for (distrib in validatedDistribs){ - - for (user in distrib.getUsers()){ - + // Get all the contracts for this given group + var contractIds = Lambda.map(group.getContracts(), function(x) return x.id); + // Get all the validated distributions for this given group + var validatedDistribs = db.Distribution.manager.search(($contractId in contractIds) && $validated == true, {orderBy: date}, false); + for (distrib in validatedDistribs) { + for (user in distrib.getUsers()) { var basket = db.Basket.get(user, distrib.place, distrib.date); - if (basket == null || basket.isValidated()) continue; - - for (order in basket.getOrders()){ + if (basket == null || basket.isValidated()) + continue; + + for (order in basket.getOrders()) { if (!order.paid) { Sys.println(order.distribution.toString() + "
"); Sys.println(order.toString() + "
"); - } + } } var operation = basket.getOrderOperation(false); - if (operation != null){ - + if (operation != null) { if (operation.pending) { Sys.println(distrib.toString() + "
"); Sys.println(operation.toString() + "
"); } - - for ( payment in basket.getPayments()){ - if (payment.pending){ + for (payment in basket.getPayments()) { + if (payment.pending) { Sys.println(distrib.toString() + "
"); Sys.println(payment.toString() + "
"); } - } + } } - } } Sys.println("===== Fin de la liste ===="); - } - } -