Skip to content

Commit 3f486c2

Browse files
committed
Merge branch 'main' into add-more-tests
2 parents 5019ae6 + 050b288 commit 3f486c2

22 files changed

+4489
-18
lines changed

mix-manifest.json

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4145,6 +4145,18 @@
41454145
"/src/public/packages/places.js/dist/cdn/placesInstantsearchWidget.min.js.map": "/src/public/packages/places.js/dist/cdn/placesInstantsearchWidget.min.js.map",
41464146
"/src/public/packages/jquery-ui-touch-punch/jquery.ui.touch-punch.min.js": "/src/public/packages/jquery-ui-touch-punch/jquery.ui.touch-punch.min.js",
41474147
"/src/public/packages/URI.js/URI.min.js": "/src/public/packages/URI.js/URI.min.js",
4148+
"/src/public/packages/intl-tel-input/build/css/demo.css": "/src/public/packages/intl-tel-input/build/css/demo.css",
4149+
"/src/public/packages/intl-tel-input/build/css/intlTelInput.css": "/src/public/packages/intl-tel-input/build/css/intlTelInput.css",
4150+
"/src/public/packages/intl-tel-input/build/css/intlTelInput.min.css": "/src/public/packages/intl-tel-input/build/css/intlTelInput.min.css",
4151+
"/src/public/packages/intl-tel-input/build/img/flags.png": "/src/public/packages/intl-tel-input/build/img/flags.png",
4152+
"/src/public/packages/intl-tel-input/build/img/[email protected]": "/src/public/packages/intl-tel-input/build/img/[email protected]",
4153+
"/src/public/packages/intl-tel-input/build/js/data.js": "/src/public/packages/intl-tel-input/build/js/data.js",
4154+
"/src/public/packages/intl-tel-input/build/js/data.min.js": "/src/public/packages/intl-tel-input/build/js/data.min.js",
4155+
"/src/public/packages/intl-tel-input/build/js/intlTelInput-jquery.js": "/src/public/packages/intl-tel-input/build/js/intlTelInput-jquery.js",
4156+
"/src/public/packages/intl-tel-input/build/js/intlTelInput-jquery.min.js": "/src/public/packages/intl-tel-input/build/js/intlTelInput-jquery.min.js",
4157+
"/src/public/packages/intl-tel-input/build/js/intlTelInput.js": "/src/public/packages/intl-tel-input/build/js/intlTelInput.js",
4158+
"/src/public/packages/intl-tel-input/build/js/intlTelInput.min.js": "/src/public/packages/intl-tel-input/build/js/intlTelInput.min.js",
4159+
"/src/public/packages/intl-tel-input/build/js/utils.js": "/src/public/packages/intl-tel-input/build/js/utils.js",
41484160
"/public/assets/css/backpack_electric_purple_overlay.css": "/public/assets/css/backpack_electric_purple_overlay.css",
41494161
"/public/assets/js/ga.js": "/public/assets/js/ga.js",
41504162
"/public/assets/js/monster/fields.js": "/public/assets/js/monster/fields.js",
@@ -7610,6 +7622,18 @@
76107622
"/public/packages/datatables.net-responsive-bs4/types/responsive.bootstrap4.d.ts": "/public/packages/datatables.net-responsive-bs4/types/responsive.bootstrap4.d.ts",
76117623
"/public/packages/easymde/dist/easymde.min.css": "/public/packages/easymde/dist/easymde.min.css",
76127624
"/public/packages/easymde/dist/easymde.min.js": "/public/packages/easymde/dist/easymde.min.js",
7625+
"/public/packages/intl-tel-input/build/css/demo.css": "/public/packages/intl-tel-input/build/css/demo.css",
7626+
"/public/packages/intl-tel-input/build/css/intlTelInput.css": "/public/packages/intl-tel-input/build/css/intlTelInput.css",
7627+
"/public/packages/intl-tel-input/build/css/intlTelInput.min.css": "/public/packages/intl-tel-input/build/css/intlTelInput.min.css",
7628+
"/public/packages/intl-tel-input/build/img/flags.png": "/public/packages/intl-tel-input/build/img/flags.png",
7629+
"/public/packages/intl-tel-input/build/img/[email protected]": "/public/packages/intl-tel-input/build/img/[email protected]",
7630+
"/public/packages/intl-tel-input/build/js/data.js": "/public/packages/intl-tel-input/build/js/data.js",
7631+
"/public/packages/intl-tel-input/build/js/data.min.js": "/public/packages/intl-tel-input/build/js/data.min.js",
7632+
"/public/packages/intl-tel-input/build/js/intlTelInput-jquery.js": "/public/packages/intl-tel-input/build/js/intlTelInput-jquery.js",
7633+
"/public/packages/intl-tel-input/build/js/intlTelInput-jquery.min.js": "/public/packages/intl-tel-input/build/js/intlTelInput-jquery.min.js",
7634+
"/public/packages/intl-tel-input/build/js/intlTelInput.js": "/public/packages/intl-tel-input/build/js/intlTelInput.js",
7635+
"/public/packages/intl-tel-input/build/js/intlTelInput.min.js": "/public/packages/intl-tel-input/build/js/intlTelInput.min.js",
7636+
"/public/packages/intl-tel-input/build/js/utils.js": "/public/packages/intl-tel-input/build/js/utils.js",
76137637
"/public/packages/jquery-colorbox/LICENSE.md": "/public/packages/jquery-colorbox/LICENSE.md",
76147638
"/public/packages/jquery-colorbox/README.md": "/public/packages/jquery-colorbox/README.md",
76157639
"/public/packages/jquery-colorbox/bower.json": "/public/packages/jquery-colorbox/bower.json",

package-lock.json

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
"datatables.net-responsive": "^2.3.0",
3939
"datatables.net-responsive-bs4": "^2.3.0",
4040
"easymde": "^2.18.0",
41+
"intl-tel-input": "^17.0.19",
4142
"jquery": "^3.6.0",
4243
"jquery-colorbox": "^1.6.4",
4344
"jquery-cropper": "^1.0.1",

src/BackpackServiceProvider.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ class BackpackServiceProvider extends ServiceProvider
1717
\Backpack\CRUD\app\Console\Commands\Install::class,
1818
\Backpack\CRUD\app\Console\Commands\AddSidebarContent::class,
1919
\Backpack\CRUD\app\Console\Commands\AddCustomRouteContent::class,
20+
\Backpack\CRUD\app\Console\Commands\PublishAssets::class,
2021
\Backpack\CRUD\app\Console\Commands\Version::class,
2122
\Backpack\CRUD\app\Console\Commands\CreateUser::class,
2223
\Backpack\CRUD\app\Console\Commands\PublishBackpackMiddleware::class,
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
<?php
2+
3+
namespace Backpack\CRUD\app\Console\Commands;
4+
5+
use Illuminate\Console\Command;
6+
use Symfony\Component\Process\Exception\ProcessFailedException;
7+
use Symfony\Component\Process\Process;
8+
9+
class PublishAssets extends Command
10+
{
11+
/**
12+
* The name and signature of the console command.
13+
*
14+
* @var string
15+
*/
16+
protected $signature = 'backpack:publish-assets';
17+
18+
/**
19+
* The console command description.
20+
*
21+
* @var string
22+
*/
23+
protected $description = 'Publish new CSS and JS assets (will override existing ones).';
24+
25+
/**
26+
* Execute the console command.
27+
*
28+
* @return mixed
29+
*/
30+
public function handle()
31+
{
32+
$this->runConsoleCommand(['php', 'artisan', 'vendor:publish', '--provider=Backpack\CRUD\BackpackServiceProvider', '--tag=public', '--force']);
33+
}
34+
35+
/**
36+
* Run a shell command in a separate process.
37+
*
38+
* @param string $command Text to be executed.
39+
* @return void
40+
*/
41+
private function runConsoleCommand($command)
42+
{
43+
$process = new Process($command, null, null, null, 60, null);
44+
$process->run(function ($type, $buffer) {
45+
$this->line($buffer);
46+
});
47+
48+
// executes after the command finishes
49+
if (! $process->isSuccessful()) {
50+
throw new ProcessFailedException($process);
51+
}
52+
}
53+
}

src/app/Library/CrudPanel/Traits/Query.php

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -242,13 +242,30 @@ private function getCountFromQuery(Builder $query)
242242
// add the count query in the "outer" query.
243243
$outerQuery = $outerQuery->selectRaw('count(*) as total_rows');
244244

245+
// Expression columns are hand-written by developers in ->selectRaw() and we can't exclude those statements reliably
246+
// so we just store them and re-use them in the sub-query too.
247+
$expressionColumns = [];
248+
249+
foreach ($crudQuery->columns as $column) {
250+
if (! is_string($column) && is_a($column, 'Illuminate\Database\Query\Expression')) {
251+
$expressionColumns[] = $column;
252+
}
253+
}
245254
// add the subquery from where the "outer query" will count the results.
246255
// this subquery is the "main crud query" without some properties:
247256
// - columns : we manually select the "minimum" columns possible from database.
248257
// - orders/limit/offset because we want the "full query count" where orders don't matter and limit/offset would break the total count
249258
$subQuery = $crudQuery->cloneWithout(['columns', 'orders', 'limit', 'offset']);
250259

251-
$outerQuery = $outerQuery->fromSub($subQuery->select($modelTable.'.'.$this->model->getKeyName()), $modelTable.'_aggregator');
260+
// select only one column for the count
261+
$subQuery->select($modelTable.'.'.$this->model->getKeyName());
262+
263+
// in case there are raw expressions we need to add them too.
264+
foreach ($expressionColumns as $expression) {
265+
$subQuery->selectRaw($expression);
266+
}
267+
268+
$outerQuery = $outerQuery->fromSub($subQuery, str_replace('.', '_', $modelTable).'_aggregator');
252269

253270
return $outerQuery->cursor()->first()->total_rows;
254271
}
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
* {
2+
box-sizing: border-box;
3+
-moz-box-sizing: border-box; }
4+
5+
body {
6+
margin: 20px;
7+
font-size: 14px;
8+
font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;
9+
color: #555; }
10+
11+
.iti__hide {
12+
display: none; }
13+
14+
pre {
15+
margin: 0 !important;
16+
display: inline-block; }
17+
18+
.token.operator,
19+
.token.entity,
20+
.token.url,
21+
.language-css .token.string,
22+
.style .token.string,
23+
.token.variable {
24+
background: none; }
25+
26+
input, button {
27+
height: 35px;
28+
margin: 0;
29+
padding: 6px 12px;
30+
border-radius: 2px;
31+
font-family: inherit;
32+
font-size: 100%;
33+
color: inherit; }
34+
input[disabled], button[disabled] {
35+
background-color: #eee; }
36+
37+
input, select {
38+
border: 1px solid #CCC;
39+
width: 250px; }
40+
41+
::-webkit-input-placeholder {
42+
color: #BBB; }
43+
44+
::-moz-placeholder {
45+
/* Firefox 19+ */
46+
color: #BBB;
47+
opacity: 1; }
48+
49+
:-ms-input-placeholder {
50+
color: #BBB; }
51+
52+
button {
53+
color: #FFF;
54+
background-color: #428BCA;
55+
border: 1px solid #357EBD; }
56+
button:hover {
57+
background-color: #3276B1;
58+
border-color: #285E8E;
59+
cursor: pointer; }
60+
61+
#result {
62+
margin-bottom: 100px; }

0 commit comments

Comments
 (0)