From 14efcc77e67e9d3c0e0c28a65ffc125c1f00dd71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20Beganovi=C4=87?= Date: Mon, 4 Jan 2021 13:36:47 +0100 Subject: [PATCH 1/4] Support for database port on the setup --- app/Http/Controllers/SetupController.php | 31 ++++++---------- .../Requests/Setup/CheckDatabaseRequest.php | 1 + app/Utils/SystemHealth.php | 37 ++++++++++--------- public/js/setup/setup.js | 2 +- public/mix-manifest.json | 2 +- resources/js/setup/setup.js | 7 +++- resources/views/setup/_database.blade.php | 18 ++++++--- 7 files changed, 51 insertions(+), 47 deletions(-) diff --git a/app/Http/Controllers/SetupController.php b/app/Http/Controllers/SetupController.php index 97b4b4d1b506..4985bef85b19 100644 --- a/app/Http/Controllers/SetupController.php +++ b/app/Http/Controllers/SetupController.php @@ -22,7 +22,7 @@ use App\Utils\CurlUtils; use App\Utils\SystemHealth; use App\Utils\Traits\AppSetup; use Beganovich\Snappdf\Snappdf; -use DB; +use \Illuminate\Support\Facades\DB; use Exception; use Illuminate\Contracts\Foundation\Application; use Illuminate\Contracts\Routing\ResponseFactory; @@ -55,7 +55,7 @@ class SetupController extends Controller { try { $check = SystemHealth::check(false); - } catch (\Exception $e) { + } catch (Exception $e) { nlog(['message' => $e->getMessage(), 'action' => 'SetupController::doSetup()']); return response()->json(['message' => $e->getMessage()], 400); @@ -71,9 +71,9 @@ class SetupController extends Controller $db = SystemHealth::dbCheck($request); if ($db['success'] == false) { - throw new \Exception($db['message']); + throw new Exception($db['message']); } - } catch (\Exception $e) { + } catch (Exception $e) { return response([ 'message' => 'Oops, connection to database was not successful.', 'error' => $e->getMessage(), @@ -85,10 +85,10 @@ class SetupController extends Controller $smtp = SystemHealth::testMailServer($request); if ($smtp['success'] == false) { - throw new \Exception($smtp['message']); + throw new Exception($smtp['message']); } } - } catch (\Exception $e) { + } catch (Exception $e) { return response([ 'message' => 'Oops, connection to mail server was not successful.', 'error' => $e->getMessage(), @@ -103,6 +103,7 @@ class SetupController extends Controller 'APP_DEBUG' => $request->input('debug') ? 'true' : 'false', 'DB_HOST1' => $request->input('db_host'), + 'DB_PORT1' => $request->input('db_port'), 'DB_DATABASE1' => $request->input('db_database'), 'DB_USERNAME1' => $request->input('db_username'), 'DB_PASSWORD1' => $request->input('db_password'), @@ -173,7 +174,7 @@ class SetupController extends Controller } return response($status, 400); - } catch (\Exception $e) { + } catch (Exception $e) { nlog(['message' => $e->getMessage(), 'action' => 'SetupController::checkDB()']); return response()->json(['message' => $e->getMessage()], 400); @@ -203,17 +204,6 @@ class SetupController extends Controller } } - private function failsafeMailCheck($request) - { - $response = SystemHealth::testMailServer($request); - - if ($response['success']) { - true; - } - - return false; - } - public function checkPdf(Request $request) { try { @@ -231,9 +221,10 @@ class SetupController extends Controller ->setHtml('GENERATING PDFs WORKS! Thank you for using Invoice Ninja!') ->generate(); - Storage::put('public/test.pdf', $pdf); + Storage::disk(config('filesystems.default'))->put('test.pdf', $pdf); + Storage::disk('local')->put('test.pdf', $pdf); - return response(['url' => asset('test.pdf')], 200); + return response(['url' => Storage::disk('local')->url('test.pdf')], 200); } catch (Exception $e) { nlog($e->getMessage()); diff --git a/app/Http/Requests/Setup/CheckDatabaseRequest.php b/app/Http/Requests/Setup/CheckDatabaseRequest.php index bc4b3c4ae477..689324e15f39 100644 --- a/app/Http/Requests/Setup/CheckDatabaseRequest.php +++ b/app/Http/Requests/Setup/CheckDatabaseRequest.php @@ -35,6 +35,7 @@ class CheckDatabaseRequest extends Request { return [ 'db_host' => ['required'], + 'db_port' => ['required'], 'db_database' => ['required'], 'db_username' => ['required'], ]; diff --git a/app/Utils/SystemHealth.php b/app/Utils/SystemHealth.php index 764bd7f8dd02..f16247dd8e8f 100644 --- a/app/Utils/SystemHealth.php +++ b/app/Utils/SystemHealth.php @@ -45,7 +45,7 @@ class SystemHealth * @param bool $check_database * @return array Result set of checks */ - public static function check($check_database = true) : array + public static function check($check_database = true): array { $system_health = true; @@ -57,7 +57,7 @@ class SystemHealth $system_health = false; } - if (! self::simpleDbCheck() && $check_database) { + if (!self::simpleDbCheck() && $check_database) { info('db fails'); $system_health = false; } @@ -66,18 +66,18 @@ class SystemHealth 'system_health' => $system_health, 'extensions' => self::extensions(), 'php_version' => [ - 'minimum_php_version' => (string) self::$php_version, + 'minimum_php_version' => (string)self::$php_version, 'current_php_version' => phpversion(), - 'current_php_cli_version' => (string) self::checkPhpCli(), + 'current_php_cli_version' => (string)self::checkPhpCli(), 'is_okay' => version_compare(phpversion(), self::$php_version, '>='), ], 'env_writable' => self::checkEnvWritable(), //'mail' => self::testMailServer(), - 'simple_db_check' => (bool) self::simpleDbCheck(), + 'simple_db_check' => (bool)self::simpleDbCheck(), 'cache_enabled' => self::checkConfigCache(), - 'phantom_enabled' => (bool) config('ninja.phantomjs_pdf_generation'), - 'exec' => (bool) self::checkExecWorks(), - 'open_basedir' => (bool) self::checkOpenBaseDir(), + 'phantom_enabled' => (bool)config('ninja.phantomjs_pdf_generation'), + 'exec' => (bool)self::checkExecWorks(), + 'open_basedir' => (bool)self::checkOpenBaseDir(), ]; } @@ -108,7 +108,7 @@ class SystemHealth return true; } - private static function simpleDbCheck() :bool + private static function simpleDbCheck(): bool { $result = true; @@ -135,7 +135,7 @@ class SystemHealth } } - private static function extensions() :array + private static function extensions(): array { $loaded_extensions = []; @@ -151,22 +151,23 @@ class SystemHealth $result = ['success' => false]; if ($request) { - config(['database.connections.db-ninja-01.host'=> $request->input('db_host')]); - config(['database.connections.db-ninja-01.database'=> $request->input('db_database')]); - config(['database.connections.db-ninja-01.username'=> $request->input('db_username')]); - config(['database.connections.db-ninja-01.password'=> $request->input('db_password')]); + config(['database.connections.db-ninja-01.host' => $request->input('db_host')]); + config(['database.connections.db-ninja-01.port' => $request->input('db_port')]); + config(['database.connections.db-ninja-01.database' => $request->input('db_database')]); + config(['database.connections.db-ninja-01.username' => $request->input('db_username')]); + config(['database.connections.db-ninja-01.password' => $request->input('db_password')]); config(['database.default' => 'db-ninja-01']); DB::purge('db-ninja-01'); } - if (! config('ninja.db.multi_db_enabled')) { + if (!config('ninja.db.multi_db_enabled')) { try { $pdo = DB::connection()->getPdo(); $result[] = [DB::connection()->getDatabaseName() => true]; $result['success'] = true; } catch (Exception $e) { - $result[] = [config('database.connections.'.config('database.default').'.database') => false]; + $result[] = [config('database.connections.' . config('database.default') . '.database') => false]; $result['success'] = false; $result['message'] = $e->getMessage(); } @@ -179,7 +180,7 @@ class SystemHealth $result[] = [DB::connection()->getDatabaseName() => true]; $result['success'] = true; } catch (Exception $e) { - $result[] = [config('database.connections.'.config('database.default').'.database') => false]; + $result[] = [config('database.connections.' . config('database.default') . '.database') => false]; $result['success'] = false; $result['message'] = $e->getMessage(); } @@ -222,6 +223,6 @@ class SystemHealth private static function checkEnvWritable() { - return is_writable(base_path().'/.env'); + return is_writable(base_path() . '/.env'); } } diff --git a/public/js/setup/setup.js b/public/js/setup/setup.js index 5c1fca244bfd..ca8d5321618a 100755 --- a/public/js/setup/setup.js +++ b/public/js/setup/setup.js @@ -1,2 +1,2 @@ /*! For license information please see setup.js.LICENSE.txt */ -!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/",n(n.s=12)}({12:function(e,t,n){e.exports=n("tM+k")},"2SVd":function(e,t,n){"use strict";e.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},"5oMp":function(e,t,n){"use strict";e.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},"8oxB":function(e,t){var n,r,o=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function a(e){if(n===setTimeout)return setTimeout(e,0);if((n===i||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:i}catch(e){n=i}try{r="function"==typeof clearTimeout?clearTimeout:s}catch(e){r=s}}();var u,c=[],f=!1,l=-1;function d(){f&&u&&(f=!1,u.length?c=u.concat(c):l=-1,c.length&&p())}function p(){if(!f){var e=a(d);f=!0;for(var t=c.length;t;){for(u=c,c=[];++l1)for(var n=1;n=200&&e<300}};u.headers={common:{Accept:"application/json, text/plain, */*"}},r.forEach(["delete","get","head"],(function(e){u.headers[e]={}})),r.forEach(["post","put","patch"],(function(e){u.headers[e]=r.merge(i)})),e.exports=u}).call(this,n("8oxB"))},LYNF:function(e,t,n){"use strict";var r=n("OH9c");e.exports=function(e,t,n,o,i){var s=new Error(e);return r(s,t,n,o,i)}},Lmem:function(e,t,n){"use strict";e.exports=function(e){return!(!e||!e.__CANCEL__)}},MLWZ:function(e,t,n){"use strict";var r=n("xTJ+");function o(e){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}e.exports=function(e,t,n){if(!t)return e;var i;if(n)i=n(t);else if(r.isURLSearchParams(t))i=t.toString();else{var s=[];r.forEach(t,(function(e,t){null!=e&&(r.isArray(e)?t+="[]":e=[e],r.forEach(e,(function(e){r.isDate(e)?e=e.toISOString():r.isObject(e)&&(e=JSON.stringify(e)),s.push(o(t)+"="+o(e))})))})),i=s.join("&")}if(i){var a=e.indexOf("#");-1!==a&&(e=e.slice(0,a)),e+=(-1===e.indexOf("?")?"?":"&")+i}return e}},OH9c:function(e,t,n){"use strict";e.exports=function(e,t,n,r,o){return e.config=t,n&&(e.code=n),e.request=r,e.response=o,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},e}},OTTw:function(e,t,n){"use strict";var r=n("xTJ+");e.exports=r.isStandardBrowserEnv()?function(){var e,t=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");function o(e){var r=e;return t&&(n.setAttribute("href",r),r=n.href),n.setAttribute("href",r),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:"/"===n.pathname.charAt(0)?n.pathname:"/"+n.pathname}}return e=o(window.location.href),function(t){var n=r.isString(t)?o(t):t;return n.protocol===e.protocol&&n.host===e.host}}():function(){return!0}},"Rn+g":function(e,t,n){"use strict";var r=n("LYNF");e.exports=function(e,t,n){var o=n.config.validateStatus;!o||o(n.status)?e(n):t(r("Request failed with status code "+n.status,n.config,null,n.request,n))}},SntB:function(e,t,n){"use strict";var r=n("xTJ+");e.exports=function(e,t){t=t||{};var n={},o=["url","method","params","data"],i=["headers","auth","proxy"],s=["baseURL","url","transformRequest","transformResponse","paramsSerializer","timeout","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","maxContentLength","validateStatus","maxRedirects","httpAgent","httpsAgent","cancelToken","socketPath"];r.forEach(o,(function(e){void 0!==t[e]&&(n[e]=t[e])})),r.forEach(i,(function(o){r.isObject(t[o])?n[o]=r.deepMerge(e[o],t[o]):void 0!==t[o]?n[o]=t[o]:r.isObject(e[o])?n[o]=r.deepMerge(e[o]):void 0!==e[o]&&(n[o]=e[o])})),r.forEach(s,(function(r){void 0!==t[r]?n[r]=t[r]:void 0!==e[r]&&(n[r]=e[r])}));var a=o.concat(i).concat(s),u=Object.keys(t).filter((function(e){return-1===a.indexOf(e)}));return r.forEach(u,(function(r){void 0!==t[r]?n[r]=t[r]:void 0!==e[r]&&(n[r]=e[r])})),n}},UnBK:function(e,t,n){"use strict";var r=n("xTJ+"),o=n("xAGQ"),i=n("Lmem"),s=n("JEQr");function a(e){e.cancelToken&&e.cancelToken.throwIfRequested()}e.exports=function(e){return a(e),e.headers=e.headers||{},e.data=o(e.data,e.headers,e.transformRequest),e.headers=r.merge(e.headers.common||{},e.headers[e.method]||{},e.headers),r.forEach(["delete","get","head","post","put","patch","common"],(function(t){delete e.headers[t]})),(e.adapter||s.adapter)(e).then((function(t){return a(e),t.data=o(t.data,t.headers,e.transformResponse),t}),(function(t){return i(t)||(a(e),t&&t.response&&(t.response.data=o(t.response.data,t.response.headers,e.transformResponse))),Promise.reject(t)}))}},endd:function(e,t,n){"use strict";function r(e){this.message=e}r.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},r.prototype.__CANCEL__=!0,e.exports=r},eqyj:function(e,t,n){"use strict";var r=n("xTJ+");e.exports=r.isStandardBrowserEnv()?{write:function(e,t,n,o,i,s){var a=[];a.push(e+"="+encodeURIComponent(t)),r.isNumber(n)&&a.push("expires="+new Date(n).toGMTString()),r.isString(o)&&a.push("path="+o),r.isString(i)&&a.push("domain="+i),!0===s&&a.push("secure"),document.cookie=a.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},g7np:function(e,t,n){"use strict";var r=n("2SVd"),o=n("5oMp");e.exports=function(e,t){return e&&!r(t)?o(e,t):t}},"jfS+":function(e,t,n){"use strict";var r=n("endd");function o(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise((function(e){t=e}));var n=this;e((function(e){n.reason||(n.reason=new r(e),t(n.reason))}))}o.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},o.source=function(){var e;return{token:new o((function(t){e=t})),cancel:e}},e.exports=o},"tM+k":function(e,t,n){"use strict";n.r(t);var r=n("vDqi"),o=n.n(r);function i(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:null;e.classList.remove("alert-failure"),e.innerText="Success!",e.classList.add("alert-success"),t&&(document.getElementById(t).classList.remove("hidden"),document.getElementById(t).scrollIntoView({behavior:"smooth",block:"center"}))}},{key:"handleFailure",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;e.classList.remove("alert-success"),e.innerText=t||"Oops, looks like something isn't correct!",e.classList.add("alert-failure")}},{key:"handle",value:function(){var e=this;this.checkDbButton.addEventListener("click",(function(){return e.handleDatabaseCheck()})),this.checkSmtpButton.addEventListener("click",(function(){return e.handleSmtpCheck()})),this.checkPdfButton.addEventListener("click",(function(){return e.handleTestPdfCheck()}))}}])&&i(t.prototype,n),r&&i(t,r),e}())).handle()},tQ2B:function(e,t,n){"use strict";var r=n("xTJ+"),o=n("Rn+g"),i=n("MLWZ"),s=n("g7np"),a=n("w0Vi"),u=n("OTTw"),c=n("LYNF");e.exports=function(e){return new Promise((function(t,f){var l=e.data,d=e.headers;r.isFormData(l)&&delete d["Content-Type"];var p=new XMLHttpRequest;if(e.auth){var h=e.auth.username||"",m=e.auth.password||"";d.Authorization="Basic "+btoa(h+":"+m)}var v=s(e.baseURL,e.url);if(p.open(e.method.toUpperCase(),i(v,e.params,e.paramsSerializer),!0),p.timeout=e.timeout,p.onreadystatechange=function(){if(p&&4===p.readyState&&(0!==p.status||p.responseURL&&0===p.responseURL.indexOf("file:"))){var n="getAllResponseHeaders"in p?a(p.getAllResponseHeaders()):null,r={data:e.responseType&&"text"!==e.responseType?p.response:p.responseText,status:p.status,statusText:p.statusText,headers:n,config:e,request:p};o(t,f,r),p=null}},p.onabort=function(){p&&(f(c("Request aborted",e,"ECONNABORTED",p)),p=null)},p.onerror=function(){f(c("Network Error",e,null,p)),p=null},p.ontimeout=function(){var t="timeout of "+e.timeout+"ms exceeded";e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),f(c(t,e,"ECONNABORTED",p)),p=null},r.isStandardBrowserEnv()){var y=n("eqyj"),g=(e.withCredentials||u(v))&&e.xsrfCookieName?y.read(e.xsrfCookieName):void 0;g&&(d[e.xsrfHeaderName]=g)}if("setRequestHeader"in p&&r.forEach(d,(function(e,t){void 0===l&&"content-type"===t.toLowerCase()?delete d[t]:p.setRequestHeader(t,e)})),r.isUndefined(e.withCredentials)||(p.withCredentials=!!e.withCredentials),e.responseType)try{p.responseType=e.responseType}catch(t){if("json"!==e.responseType)throw t}"function"==typeof e.onDownloadProgress&&p.addEventListener("progress",e.onDownloadProgress),"function"==typeof e.onUploadProgress&&p.upload&&p.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then((function(e){p&&(p.abort(),f(e),p=null)})),void 0===l&&(l=null),p.send(l)}))}},vDqi:function(e,t,n){e.exports=n("zuR4")},w0Vi:function(e,t,n){"use strict";var r=n("xTJ+"),o=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t,n,i,s={};return e?(r.forEach(e.split("\n"),(function(e){if(i=e.indexOf(":"),t=r.trim(e.substr(0,i)).toLowerCase(),n=r.trim(e.substr(i+1)),t){if(s[t]&&o.indexOf(t)>=0)return;s[t]="set-cookie"===t?(s[t]?s[t]:[]).concat([n]):s[t]?s[t]+", "+n:n}})),s):s}},xAGQ:function(e,t,n){"use strict";var r=n("xTJ+");e.exports=function(e,t,n){return r.forEach(n,(function(n){e=n(e,t)})),e}},"xTJ+":function(e,t,n){"use strict";var r=n("HSsa"),o=Object.prototype.toString;function i(e){return"[object Array]"===o.call(e)}function s(e){return void 0===e}function a(e){return null!==e&&"object"==typeof e}function u(e){return"[object Function]"===o.call(e)}function c(e,t){if(null!=e)if("object"!=typeof e&&(e=[e]),i(e))for(var n=0,r=e.length;n1)for(var n=1;n=200&&e<300}};u.headers={common:{Accept:"application/json, text/plain, */*"}},r.forEach(["delete","get","head"],(function(e){u.headers[e]={}})),r.forEach(["post","put","patch"],(function(e){u.headers[e]=r.merge(i)})),e.exports=u}).call(this,n("8oxB"))},LYNF:function(e,t,n){"use strict";var r=n("OH9c");e.exports=function(e,t,n,o,i){var s=new Error(e);return r(s,t,n,o,i)}},Lmem:function(e,t,n){"use strict";e.exports=function(e){return!(!e||!e.__CANCEL__)}},MLWZ:function(e,t,n){"use strict";var r=n("xTJ+");function o(e){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}e.exports=function(e,t,n){if(!t)return e;var i;if(n)i=n(t);else if(r.isURLSearchParams(t))i=t.toString();else{var s=[];r.forEach(t,(function(e,t){null!=e&&(r.isArray(e)?t+="[]":e=[e],r.forEach(e,(function(e){r.isDate(e)?e=e.toISOString():r.isObject(e)&&(e=JSON.stringify(e)),s.push(o(t)+"="+o(e))})))})),i=s.join("&")}if(i){var a=e.indexOf("#");-1!==a&&(e=e.slice(0,a)),e+=(-1===e.indexOf("?")?"?":"&")+i}return e}},OH9c:function(e,t,n){"use strict";e.exports=function(e,t,n,r,o){return e.config=t,n&&(e.code=n),e.request=r,e.response=o,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},e}},OTTw:function(e,t,n){"use strict";var r=n("xTJ+");e.exports=r.isStandardBrowserEnv()?function(){var e,t=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");function o(e){var r=e;return t&&(n.setAttribute("href",r),r=n.href),n.setAttribute("href",r),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:"/"===n.pathname.charAt(0)?n.pathname:"/"+n.pathname}}return e=o(window.location.href),function(t){var n=r.isString(t)?o(t):t;return n.protocol===e.protocol&&n.host===e.host}}():function(){return!0}},"Rn+g":function(e,t,n){"use strict";var r=n("LYNF");e.exports=function(e,t,n){var o=n.config.validateStatus;!o||o(n.status)?e(n):t(r("Request failed with status code "+n.status,n.config,null,n.request,n))}},SntB:function(e,t,n){"use strict";var r=n("xTJ+");e.exports=function(e,t){t=t||{};var n={},o=["url","method","params","data"],i=["headers","auth","proxy"],s=["baseURL","url","transformRequest","transformResponse","paramsSerializer","timeout","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","maxContentLength","validateStatus","maxRedirects","httpAgent","httpsAgent","cancelToken","socketPath"];r.forEach(o,(function(e){void 0!==t[e]&&(n[e]=t[e])})),r.forEach(i,(function(o){r.isObject(t[o])?n[o]=r.deepMerge(e[o],t[o]):void 0!==t[o]?n[o]=t[o]:r.isObject(e[o])?n[o]=r.deepMerge(e[o]):void 0!==e[o]&&(n[o]=e[o])})),r.forEach(s,(function(r){void 0!==t[r]?n[r]=t[r]:void 0!==e[r]&&(n[r]=e[r])}));var a=o.concat(i).concat(s),u=Object.keys(t).filter((function(e){return-1===a.indexOf(e)}));return r.forEach(u,(function(r){void 0!==t[r]?n[r]=t[r]:void 0!==e[r]&&(n[r]=e[r])})),n}},UnBK:function(e,t,n){"use strict";var r=n("xTJ+"),o=n("xAGQ"),i=n("Lmem"),s=n("JEQr");function a(e){e.cancelToken&&e.cancelToken.throwIfRequested()}e.exports=function(e){return a(e),e.headers=e.headers||{},e.data=o(e.data,e.headers,e.transformRequest),e.headers=r.merge(e.headers.common||{},e.headers[e.method]||{},e.headers),r.forEach(["delete","get","head","post","put","patch","common"],(function(t){delete e.headers[t]})),(e.adapter||s.adapter)(e).then((function(t){return a(e),t.data=o(t.data,t.headers,e.transformResponse),t}),(function(t){return i(t)||(a(e),t&&t.response&&(t.response.data=o(t.response.data,t.response.headers,e.transformResponse))),Promise.reject(t)}))}},endd:function(e,t,n){"use strict";function r(e){this.message=e}r.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},r.prototype.__CANCEL__=!0,e.exports=r},eqyj:function(e,t,n){"use strict";var r=n("xTJ+");e.exports=r.isStandardBrowserEnv()?{write:function(e,t,n,o,i,s){var a=[];a.push(e+"="+encodeURIComponent(t)),r.isNumber(n)&&a.push("expires="+new Date(n).toGMTString()),r.isString(o)&&a.push("path="+o),r.isString(i)&&a.push("domain="+i),!0===s&&a.push("secure"),document.cookie=a.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},g7np:function(e,t,n){"use strict";var r=n("2SVd"),o=n("5oMp");e.exports=function(e,t){return e&&!r(t)?o(e,t):t}},"jfS+":function(e,t,n){"use strict";var r=n("endd");function o(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise((function(e){t=e}));var n=this;e((function(e){n.reason||(n.reason=new r(e),t(n.reason))}))}o.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},o.source=function(){var e;return{token:new o((function(t){e=t})),cancel:e}},e.exports=o},"tM+k":function(e,t,n){"use strict";n.r(t);var r=n("vDqi"),o=n.n(r);function i(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:null;e.classList.remove("alert-failure"),e.innerText="Success!",e.classList.add("alert-success"),t&&(document.getElementById(t).classList.remove("hidden"),document.getElementById(t).scrollIntoView({behavior:"smooth",block:"center"}))}},{key:"handleFailure",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;e.classList.remove("alert-success"),e.innerText=t||"Oops, looks like something isn't correct!",e.classList.add("alert-failure")}},{key:"handle",value:function(){var e=this;this.checkDbButton.addEventListener("click",(function(){return e.handleDatabaseCheck()})),this.checkSmtpButton.addEventListener("click",(function(){return e.handleSmtpCheck()})),this.checkPdfButton.addEventListener("click",(function(){return e.handleTestPdfCheck()}))}}])&&i(t.prototype,n),r&&i(t,r),e}())).handle()},tQ2B:function(e,t,n){"use strict";var r=n("xTJ+"),o=n("Rn+g"),i=n("MLWZ"),s=n("g7np"),a=n("w0Vi"),u=n("OTTw"),c=n("LYNF");e.exports=function(e){return new Promise((function(t,f){var l=e.data,d=e.headers;r.isFormData(l)&&delete d["Content-Type"];var p=new XMLHttpRequest;if(e.auth){var h=e.auth.username||"",m=e.auth.password||"";d.Authorization="Basic "+btoa(h+":"+m)}var v=s(e.baseURL,e.url);if(p.open(e.method.toUpperCase(),i(v,e.params,e.paramsSerializer),!0),p.timeout=e.timeout,p.onreadystatechange=function(){if(p&&4===p.readyState&&(0!==p.status||p.responseURL&&0===p.responseURL.indexOf("file:"))){var n="getAllResponseHeaders"in p?a(p.getAllResponseHeaders()):null,r={data:e.responseType&&"text"!==e.responseType?p.response:p.responseText,status:p.status,statusText:p.statusText,headers:n,config:e,request:p};o(t,f,r),p=null}},p.onabort=function(){p&&(f(c("Request aborted",e,"ECONNABORTED",p)),p=null)},p.onerror=function(){f(c("Network Error",e,null,p)),p=null},p.ontimeout=function(){var t="timeout of "+e.timeout+"ms exceeded";e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),f(c(t,e,"ECONNABORTED",p)),p=null},r.isStandardBrowserEnv()){var y=n("eqyj"),g=(e.withCredentials||u(v))&&e.xsrfCookieName?y.read(e.xsrfCookieName):void 0;g&&(d[e.xsrfHeaderName]=g)}if("setRequestHeader"in p&&r.forEach(d,(function(e,t){void 0===l&&"content-type"===t.toLowerCase()?delete d[t]:p.setRequestHeader(t,e)})),r.isUndefined(e.withCredentials)||(p.withCredentials=!!e.withCredentials),e.responseType)try{p.responseType=e.responseType}catch(t){if("json"!==e.responseType)throw t}"function"==typeof e.onDownloadProgress&&p.addEventListener("progress",e.onDownloadProgress),"function"==typeof e.onUploadProgress&&p.upload&&p.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then((function(e){p&&(p.abort(),f(e),p=null)})),void 0===l&&(l=null),p.send(l)}))}},vDqi:function(e,t,n){e.exports=n("zuR4")},w0Vi:function(e,t,n){"use strict";var r=n("xTJ+"),o=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t,n,i,s={};return e?(r.forEach(e.split("\n"),(function(e){if(i=e.indexOf(":"),t=r.trim(e.substr(0,i)).toLowerCase(),n=r.trim(e.substr(i+1)),t){if(s[t]&&o.indexOf(t)>=0)return;s[t]="set-cookie"===t?(s[t]?s[t]:[]).concat([n]):s[t]?s[t]+", "+n:n}})),s):s}},xAGQ:function(e,t,n){"use strict";var r=n("xTJ+");e.exports=function(e,t,n){return r.forEach(n,(function(n){e=n(e,t)})),e}},"xTJ+":function(e,t,n){"use strict";var r=n("HSsa"),o=Object.prototype.toString;function i(e){return"[object Array]"===o.call(e)}function s(e){return void 0===e}function a(e){return null!==e&&"object"==typeof e}function u(e){return"[object Function]"===o.call(e)}function c(e,t){if(null!=e)if("object"!=typeof e&&(e=[e]),i(e))for(var n=0,r=e.length;n this.handleSuccess(this.checkDbAlert, 'mail-wrapper') ) .catch((e) => this.handleFailure(this.checkDbAlert, e.response.data.message) - ); + ).finally(() => this.checkDbButton.disabled = false); } handleSmtpCheck() { @@ -113,7 +116,7 @@ class Setup { document.getElementById(nextStep).classList.remove('hidden'); document .getElementById(nextStep) - .scrollIntoView({ behavior: 'smooth', block: 'center' }); + .scrollIntoView({behavior: 'smooth', block: 'center'}); } } diff --git a/resources/views/setup/_database.blade.php b/resources/views/setup/_database.blade.php index 0829e8974a26..cfaa9f3fb671 100644 --- a/resources/views/setup/_database.blade.php +++ b/resources/views/setup/_database.blade.php @@ -42,6 +42,14 @@ FLUSH PRIVILEGES;
+
+ {{ ctrans('texts.port') }}* +
+
+ +
+
+
{{ ctrans('texts.database') }}*
@@ -49,15 +57,15 @@ FLUSH PRIVILEGES;
-
-
+
+
{{ ctrans('texts.username') }}*
-
+
{{ ctrans('texts.password') }}
@@ -65,14 +73,14 @@ FLUSH PRIVILEGES;
-
+
-
+
From 603f7baa58cc0fdd7b72c71e515ec2f66a635ef9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20Beganovi=C4=87?= Date: Mon, 4 Jan 2021 13:38:00 +0100 Subject: [PATCH 2/4] apply php-cs-fixeR --- app/Http/Controllers/SetupController.php | 2 +- .../Requests/Invoice/ActionInvoiceRequest.php | 48 ++++++++---------- app/Jobs/Cron/RecurringInvoicesCron.php | 1 - app/Jobs/Util/Import.php | 25 +++------- .../Presenters/ClientContactPresenter.php | 7 +-- app/Models/RecurringInvoice.php | 3 +- app/Providers/EventServiceProvider.php | 4 +- app/Providers/RouteServiceProvider.php | 2 - .../Migration/InvoiceMigrationRepository.php | 50 +++++++++---------- app/Repositories/UserRepository.php | 3 +- app/Transformers/CompanyTransformer.php | 10 ++-- app/Utils/Traits/GeneratesCounter.php | 1 - ...3_215053_update_canadian_dollar_symbol.php | 5 +- tests/Feature/PreviewTest.php | 33 ++++++------ 14 files changed, 85 insertions(+), 109 deletions(-) diff --git a/app/Http/Controllers/SetupController.php b/app/Http/Controllers/SetupController.php index 4985bef85b19..08218aa91482 100644 --- a/app/Http/Controllers/SetupController.php +++ b/app/Http/Controllers/SetupController.php @@ -12,6 +12,7 @@ namespace App\Http\Controllers; +use \Illuminate\Support\Facades\DB; use App\Http\Requests\Setup\CheckDatabaseRequest; use App\Http\Requests\Setup\CheckMailRequest; use App\Http\Requests\Setup\StoreSetupRequest; @@ -22,7 +23,6 @@ use App\Utils\CurlUtils; use App\Utils\SystemHealth; use App\Utils\Traits\AppSetup; use Beganovich\Snappdf\Snappdf; -use \Illuminate\Support\Facades\DB; use Exception; use Illuminate\Contracts\Foundation\Application; use Illuminate\Contracts\Routing\ResponseFactory; diff --git a/app/Http/Requests/Invoice/ActionInvoiceRequest.php b/app/Http/Requests/Invoice/ActionInvoiceRequest.php index d98b43f94c71..fbe5c8c9c222 100644 --- a/app/Http/Requests/Invoice/ActionInvoiceRequest.php +++ b/app/Http/Requests/Invoice/ActionInvoiceRequest.php @@ -18,8 +18,8 @@ use App\Utils\Traits\MakesHash; class ActionInvoiceRequest extends Request { - use MakesHash; - use ActionsInvoice; + use MakesHash; + use ActionsInvoice; /** * Determine if the user is authorized to make this request. * @@ -36,31 +36,28 @@ class ActionInvoiceRequest extends Request public function rules() { - return [ - 'action' => 'required' - ]; + return [ + 'action' => 'required' + ]; } protected function prepareForValidation() { $input = $this->all(); - $this->invoice = Invoice::find($this->decodePrimary($invoice_id)); + $this->invoice = Invoice::find($this->decodePrimary($invoice_id)); - if(!array_key_exists('action', $input)) { - $this->error_msg = 'Action is a required field'; - } - elseif(!$this->invoiceDeletable($this->invoice)){ - unset($input['action']); - $this->error_msg = 'This invoice cannot be deleted'; - } - elseif(!$this->invoiceCancellable($this->invoice)) { - unset($input['action']); - $this->error_msg = 'This invoice cannot be cancelled'; - } - else if(!$this->invoiceReversable($this->invoice)) { - unset($input['action']); - $this->error_msg = 'This invoice cannot be reversed'; + if (!array_key_exists('action', $input)) { + $this->error_msg = 'Action is a required field'; + } elseif (!$this->invoiceDeletable($this->invoice)) { + unset($input['action']); + $this->error_msg = 'This invoice cannot be deleted'; + } elseif (!$this->invoiceCancellable($this->invoice)) { + unset($input['action']); + $this->error_msg = 'This invoice cannot be cancelled'; + } elseif (!$this->invoiceReversable($this->invoice)) { + unset($input['action']); + $this->error_msg = 'This invoice cannot be reversed'; } $this->replace($input); @@ -68,13 +65,8 @@ class ActionInvoiceRequest extends Request public function messages() { - return [ - 'action' => $this->error_msg, - ]; + return [ + 'action' => $this->error_msg, + ]; } - - - - } - diff --git a/app/Jobs/Cron/RecurringInvoicesCron.php b/app/Jobs/Cron/RecurringInvoicesCron.php index f741688994c2..cd6be762e38d 100644 --- a/app/Jobs/Cron/RecurringInvoicesCron.php +++ b/app/Jobs/Cron/RecurringInvoicesCron.php @@ -16,7 +16,6 @@ use App\Libraries\MultiDB; use App\Models\RecurringInvoice; use Illuminate\Foundation\Bus\Dispatchable; use Illuminate\Support\Carbon; -use Illuminate\Support\Facades\Log; class RecurringInvoicesCron { diff --git a/app/Jobs/Util/Import.php b/app/Jobs/Util/Import.php index 4c42c935647e..d5593e76ba26 100644 --- a/app/Jobs/Util/Import.php +++ b/app/Jobs/Util/Import.php @@ -464,19 +464,16 @@ class Import implements ShouldQueue $client->fresh(); $new_contacts = $client->contacts; - foreach($resource['contacts'] as $key => $old_contact) - { + foreach ($resource['contacts'] as $key => $old_contact) { $contact_match = $new_contacts->where('contact_key', $old_contact['contact_key'])->first(); - if($contact_match) - { + if ($contact_match) { $this->ids['client_contacts']['client_contacts_'.$old_contact['id']] = [ 'old' => $old_contact['id'], 'new' => $contact_match->id, ]; } } - } $key = "clients_{$resource['id']}"; @@ -629,16 +626,12 @@ class Import implements ShouldQueue unset($modified['id']); - if(array_key_exists('invitations', $resource)) - { - foreach($resource['invitations'] as $key => $invite) - { - + if (array_key_exists('invitations', $resource)) { + foreach ($resource['invitations'] as $key => $invite) { $resource['invitations'][$key]['client_contact_id'] = $this->transformId('client_contacts', $invite['client_contact_id']); $resource['invitations'][$key]['user_id'] = $modified['user_id']; $resource['invitations'][$key]['company_id'] = $this->company->id; unset($resource['invitations'][$key]['recurring_invoice_id']); - } $modified['invitations'] = $resource['invitations']; @@ -694,19 +687,15 @@ class Import implements ShouldQueue unset($modified['id']); - if(array_key_exists('invitations', $resource)) - { - foreach($resource['invitations'] as $key => $invite) - { + if (array_key_exists('invitations', $resource)) { + foreach ($resource['invitations'] as $key => $invite) { $resource['invitations'][$key]['client_contact_id'] = $this->transformId('client_contacts', $invite['client_contact_id']); $resource['invitations'][$key]['user_id'] = $modified['user_id']; $resource['invitations'][$key]['company_id'] = $this->company->id; unset($resource['invitations'][$key]['invoice_id']); - } $modified['invitations'] = $resource['invitations']; - } $invoice = $invoice_repository->save( $modified, @@ -877,7 +866,7 @@ class Import implements ShouldQueue PaymentFactory::create($this->company->id, $modified['user_id']) ); - if($resource['company_gateway_id'] != 'NULL' && $resource['company_gateway_id'] != NULL){ + if ($resource['company_gateway_id'] != 'NULL' && $resource['company_gateway_id'] != null) { $payment->company_gateway_id = $this->transformId('company_gateways', $resource['company_gateway_id']); $payment->save(); } diff --git a/app/Models/Presenters/ClientContactPresenter.php b/app/Models/Presenters/ClientContactPresenter.php index 7e1a4de8efb4..09fdbaa3c0ad 100644 --- a/app/Models/Presenters/ClientContactPresenter.php +++ b/app/Models/Presenters/ClientContactPresenter.php @@ -20,13 +20,14 @@ class ClientContactPresenter extends EntityPresenter * @return string */ public function name() - { + { $contact_name = $this->entity->first_name.' '.$this->entity->last_name; - if(strlen($contact_name) > 1) + if (strlen($contact_name) > 1) { return $contact_name; + } - return $this->entity->client->present()->name(); + return $this->entity->client->present()->name(); } public function first_name() diff --git a/app/Models/RecurringInvoice.php b/app/Models/RecurringInvoice.php index c13fa48aeff3..1c34f6c5e98e 100644 --- a/app/Models/RecurringInvoice.php +++ b/app/Models/RecurringInvoice.php @@ -376,8 +376,9 @@ class RecurringInvoice extends BaseModel $data = []; - if(!Carbon::parse($this->next_send_date)) + if (!Carbon::parse($this->next_send_date)) { return $data; + } $next_send_date = Carbon::parse($this->next_send_date)->copy(); diff --git a/app/Providers/EventServiceProvider.php b/app/Providers/EventServiceProvider.php index c42d72b0a450..12f366d41576 100644 --- a/app/Providers/EventServiceProvider.php +++ b/app/Providers/EventServiceProvider.php @@ -123,8 +123,8 @@ use App\Listeners\Invoice\InvoiceArchivedActivity; use App\Listeners\Invoice\InvoiceCancelledActivity; use App\Listeners\Invoice\InvoiceDeletedActivity; use App\Listeners\Invoice\InvoiceEmailActivity; -use App\Listeners\Invoice\InvoiceEmailFailedActivity; use App\Listeners\Invoice\InvoiceEmailedNotification; +use App\Listeners\Invoice\InvoiceEmailFailedActivity; use App\Listeners\Invoice\InvoicePaidActivity; use App\Listeners\Invoice\InvoiceReminderEmailActivity; use App\Listeners\Invoice\InvoiceRestoredActivity; @@ -132,8 +132,8 @@ use App\Listeners\Invoice\InvoiceReversedActivity; use App\Listeners\Invoice\InvoiceViewedActivity; use App\Listeners\Invoice\UpdateInvoiceActivity; use App\Listeners\Misc\InvitationViewedListener; -use App\Listeners\Payment\PaymentEmailFailureActivity; use App\Listeners\Payment\PaymentEmailedActivity; +use App\Listeners\Payment\PaymentEmailFailureActivity; use App\Listeners\Payment\PaymentNotification; use App\Listeners\Payment\PaymentRestoredActivity; use App\Listeners\Quote\QuoteApprovedActivity; diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php index 7f64ef8804c0..008092a8088b 100644 --- a/app/Providers/RouteServiceProvider.php +++ b/app/Providers/RouteServiceProvider.php @@ -11,7 +11,6 @@ namespace App\Providers; -use App\Models\RecurringInvoice; use App\Utils\Traits\MakesHash; use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider; use Illuminate\Support\Facades\Route; @@ -37,7 +36,6 @@ class RouteServiceProvider extends ServiceProvider { // parent::boot(); - } /** diff --git a/app/Repositories/Migration/InvoiceMigrationRepository.php b/app/Repositories/Migration/InvoiceMigrationRepository.php index eddd511cb5c9..832af28d8e44 100644 --- a/app/Repositories/Migration/InvoiceMigrationRepository.php +++ b/app/Repositories/Migration/InvoiceMigrationRepository.php @@ -92,11 +92,11 @@ class InvoiceMigrationRepository extends BaseRepository InvoiceInvitation::unguard(); RecurringInvoiceInvitation::unguard(); - if($model instanceof RecurringInvoice) + if ($model instanceof RecurringInvoice) { $lcfirst_resource_id = 'recurring_invoice_id'; + } - foreach($data['invitations'] as $invitation) - { + foreach ($data['invitations'] as $invitation) { nlog($invitation); $new_invitation = $invitation_factory_class::create($model->company_id, $model->user_id); @@ -107,35 +107,35 @@ class InvoiceMigrationRepository extends BaseRepository InvoiceInvitation::reguard(); RecurringInvoiceInvitation::reguard(); -/* - if (isset($data['invitations'])) { - $invitations = collect($data['invitations']); + /* + if (isset($data['invitations'])) { + $invitations = collect($data['invitations']); - $model->invitations->pluck('key')->diff($invitations->pluck('key'))->each(function ($invitation) use ($resource) { - $this->getInvitation($invitation, $resource)->delete(); - }); + $model->invitations->pluck('key')->diff($invitations->pluck('key'))->each(function ($invitation) use ($resource) { + $this->getInvitation($invitation, $resource)->delete(); + }); - foreach ($data['invitations'] as $invitation) { + foreach ($data['invitations'] as $invitation) { - //if no invitations are present - create one. - if (! $this->getInvitation($invitation, $resource)) { - if (isset($invitation['id'])) { - unset($invitation['id']); - } + //if no invitations are present - create one. + if (! $this->getInvitation($invitation, $resource)) { + if (isset($invitation['id'])) { + unset($invitation['id']); + } - //make sure we are creating an invite for a contact who belongs to the client only! - $contact = ClientContact::find($invitation['client_contact_id']); + //make sure we are creating an invite for a contact who belongs to the client only! + $contact = ClientContact::find($invitation['client_contact_id']); - if ($contact && $model->client_id == $contact->client_id) { - $new_invitation = $invitation_factory_class::create($model->company_id, $model->user_id); - $new_invitation->{$lcfirst_resource_id} = $model->id; - $new_invitation->client_contact_id = $contact->id; - $new_invitation->save(); + if ($contact && $model->client_id == $contact->client_id) { + $new_invitation = $invitation_factory_class::create($model->company_id, $model->user_id); + $new_invitation->{$lcfirst_resource_id} = $model->id; + $new_invitation->client_contact_id = $contact->id; + $new_invitation->save(); + } + } } } - } - } -*/ + */ $model->load('invitations'); /* If no invitations have been created, this is our fail safe to maintain state*/ diff --git a/app/Repositories/UserRepository.php b/app/Repositories/UserRepository.php index f22b802dc23e..294c07f7962e 100644 --- a/app/Repositories/UserRepository.php +++ b/app/Repositories/UserRepository.php @@ -63,8 +63,7 @@ class UserRepository extends BaseRepository $user->fill($details); //allow users to change only their passwords - not others! - if(auth()->user()->id == $user->id && array_key_exists('password', $data) && isset($data['password'])) - { + if (auth()->user()->id == $user->id && array_key_exists('password', $data) && isset($data['password'])) { $user->password = Hash::make($data['password']); } diff --git a/app/Transformers/CompanyTransformer.php b/app/Transformers/CompanyTransformer.php index f41c4bddcb46..9f461cf7504e 100644 --- a/app/Transformers/CompanyTransformer.php +++ b/app/Transformers/CompanyTransformer.php @@ -211,10 +211,10 @@ class CompanyTransformer extends EntityTransformer { $transformer = new UserTransformer($this->serializer); - $users = $company->users->map(function ($user) use ($company){ - $user->company_id = $company->id; - return $user; - }); + $users = $company->users->map(function ($user) use ($company) { + $user->company_id = $company->id; + return $user; + }); return $this->includeCollection($users, $transformer, User::class); } @@ -351,4 +351,4 @@ class CompanyTransformer extends EntityTransformer return $this->includeCollection($company->system_logs, $transformer, SystemLog::class); } -} \ No newline at end of file +} diff --git a/app/Utils/Traits/GeneratesCounter.php b/app/Utils/Traits/GeneratesCounter.php index 3e31bc94f9d5..8a7bec7af7b1 100644 --- a/app/Utils/Traits/GeneratesCounter.php +++ b/app/Utils/Traits/GeneratesCounter.php @@ -629,7 +629,6 @@ trait GeneratesCounter } if ($entity->client || ($entity instanceof Client)) { - $client = $entity->client ?: $entity; $search[] = '{$client_custom1}'; diff --git a/database/migrations/2021_01_03_215053_update_canadian_dollar_symbol.php b/database/migrations/2021_01_03_215053_update_canadian_dollar_symbol.php index 2b4d0e415230..c4fd282f3d21 100644 --- a/database/migrations/2021_01_03_215053_update_canadian_dollar_symbol.php +++ b/database/migrations/2021_01_03_215053_update_canadian_dollar_symbol.php @@ -3,8 +3,6 @@ use App\Models\Currency; use App\Utils\Traits\AppSetup; use Illuminate\Database\Migrations\Migration; -use Illuminate\Database\Schema\Blueprint; -use Illuminate\Support\Facades\Schema; class UpdateCanadianDollarSymbol extends Migration { @@ -18,8 +16,9 @@ class UpdateCanadianDollarSymbol extends Migration { $currency = Currency::find(9); - if($currency) + if ($currency) { $currency->update(['symbol' => '$']); + } $this->buildCache(true); } diff --git a/tests/Feature/PreviewTest.php b/tests/Feature/PreviewTest.php index 87f395f47c50..661a6878778e 100644 --- a/tests/Feature/PreviewTest.php +++ b/tests/Feature/PreviewTest.php @@ -37,50 +37,49 @@ class PreviewTest extends TestCase public function testPreviewRoute() { - $data = $this->getData(); + $data = $this->getData(); - $response = $this->withHeaders([ + $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), 'X-API-TOKEN' => $this->token, ])->post('/api/v1/preview/', $data); - $response->assertStatus(200); + $response->assertStatus(200); } public function testPreviewHtmlResponse() { - $data = $this->getData(); + $data = $this->getData(); - $response = $this->withHeaders([ + $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), 'X-API-TOKEN' => $this->token, ])->post('/api/v1/preview?html=true', $data); - $response->assertStatus(200); - + $response->assertStatus(200); } private function getData() { - $data = - [ - 'entity_type' => 'invoice', - 'entity_id' => '', - 'design' => [ - 'name' => '', - 'design' => [ + $data = + [ + 'entity_type' => 'invoice', + 'entity_id' => '', + 'design' => [ + 'name' => '', + 'design' => [ 'includes' => '', 'header' => '', 'body' => '
', 'product' => '', 'task' => '', 'footer' => '' - ], - ], + ], + ], 'is_custom' => 1, ]; return $data; } -} \ No newline at end of file +} From b266def75bd574fcf801268788f953472995ab9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20Beganovi=C4=87?= Date: Mon, 4 Jan 2021 13:42:31 +0100 Subject: [PATCH 3/4] Remove debug from the setup page --- app/Http/Controllers/SetupController.php | 1 - resources/views/setup/_application.blade.php | 16 +++------------- 2 files changed, 3 insertions(+), 14 deletions(-) diff --git a/app/Http/Controllers/SetupController.php b/app/Http/Controllers/SetupController.php index 08218aa91482..e326bd842b5f 100644 --- a/app/Http/Controllers/SetupController.php +++ b/app/Http/Controllers/SetupController.php @@ -100,7 +100,6 @@ class SetupController extends Controller $env_values = [ 'APP_URL' => $request->input('url'), 'REQUIRE_HTTPS' => $request->input('https') ? 'true' : 'false', - 'APP_DEBUG' => $request->input('debug') ? 'true' : 'false', 'DB_HOST1' => $request->input('db_host'), 'DB_PORT1' => $request->input('db_port'), diff --git a/resources/views/setup/_application.blade.php b/resources/views/setup/_application.blade.php index 8124584be89b..89676687bd58 100644 --- a/resources/views/setup/_application.blade.php +++ b/resources/views/setup/_application.blade.php @@ -14,7 +14,7 @@ {{ ctrans('texts.url') }}*
- (including http:// or https://) @@ -32,16 +32,6 @@
-
- {{ ctrans('texts.debug') }} -
-
- - {{ ctrans('texts.enable') }} - ({{ ctrans('texts.enable_only_for_development') }}) -
-
-
{{ ctrans('texts.reports') }}
@@ -53,14 +43,14 @@ about how we use this.
-