Found 60 issues

First time here? πŸ‘‹

Welcome to Find a PR.

Find a PR is an open-source site that is built to help developers find projects so that they can submit their very first pull request.

If you're a contributor looking to find a project to contribute to, feel free to browse through the list below.

If you're a maintainer looking to list your project on Find a PR, you can read how to do this in the documentation.

enhancement help wanted hacktoberfest

Describe the bug I have a table which has an order column. When I reorder the elements I update each model with the new order. Because the table has some large JSON columns I select only id and order columns for efficiency. I set the new order and save the model.

foreach (Faq::query()->get(['id', 'order']) as $faq) {
    $faq->order = $newOrder[$faq->id];
    $faq->save();
}

The diffs created in the activity_log table look like this:

{
   "old": {
      "order": 1,
      "answer": null,
      "question": null
   },
   "attributes": {
      "order": 2,
      "answer": "long JSON content",
      "question": "long JSON content"
   }
}

From what I see laravel-activitylog fetches the model with all columns from the database before creating a log entry which kind of defeats the purpose of my "select list optimization" and produces an incorrect diff.

Generally I want these large JSON columns to be logged in case a user changes them but in this case I only change the order column so I would like to see only the order column in the diff.

I have tried running these updates straight off the Eloquent builder:

Faq::query()->where('id', $id)->update(['order' => $newOrder[$id]]);

but in this case nothing is logged.

I have the following activitylog configuration for my models:

public function getActivitylogOptions(): LogOptions
{
    return LogOptions::defaults()
                     ->logAll()
                     ->logOnlyDirty()
                     ->logExcept([
                         'id',
                         'created_at',
                         'updated_at',
                     ]);
}

To Reproduce Select a subset of columns from the database, change these columns, save the model and see that other (not initially selected) columns are present in the diff.

Expected behavior Only columns that've actually been changed should be present in the diff.

Versions

  • PHP: 8.1
  • Database: MySQL 8
  • Laravel: 9.31.0
  • Package: 4.6.0
View more
5 comments
KKSzymanowski

KKSzymanowski

28th Sep 2022 @ 21:53

help wanted

Hello,

I noticed that there is an incompatibility with the mbstring polyfill and PHP 8.1 / Alpine Linux, which breaks a lot of my projects as soon as the php81-mbstring is not installed, but php81-iconv is installed:

Example:

Warning: iconv(): Wrong encoding, conversion from "ASCII" to "UTF-8//IGNORE" is not allowed in phar:///var/www/localhost/htdocs/phpstan.phar/vendor/symfony/polyfill-mbstring/Mbstring.php on line 736

It looks like //IGNORE is not accepted since echo iconv('UTF-8', 'UTF-8', 'test'); works, while echo iconv('UTF-8', 'UTF-8//IGNORE', 'test'); doesn't

View more
2 comments πŸ‘ 1
danielmarschall

danielmarschall

7th Jan 2022 @ 00:12

good first issue hacktoberfest

The themes dashboard needs finishing and actually needs implementing into the status page. Changing a color doesn’t do anything currently.

View more
jbrooksuk

jbrooksuk

3rd Oct 2024 @ 18:42

Feature help wanted

Calling for help from Docker experts. We need to create the best possible docker-compose.yml file for this project. The application requirements are well defined (we use env vars, Webpack Encore, PHP 7.1, Symfony 4.1, SQLite database, etc.) so it should be possible to create that file.

View more
30 comments πŸ‘ 28
javiereguiluz

javiereguiluz

21st May 2018 @ 09:37

help wanted

Laravel Version

11.26.0

PHP Version

8.3.12

Database Driver & Version

No response

Description

Description

If two independent interfaces are implemented by the same concrete class and used in a method binding only the first interface gets resolved.

Probable Cause

Following the issue in debug, it appears to be related to the interaction and logic behind alreadyInParameters and resolveMethodDependencies.

The method alreadyInParameters prevents the multiple injection of objects with the same class but compares the class name against the instanceof of the previous parameters after they have been resolved instead of the requested type of the parameters.

Steps To Reproduce

given the following classes:

interface IInterfaceA
{
    public function doSomethingA();
}
interface IInterfaceB
{
    public function doSomethingB();
}
class ConcreteClass implements IInterfaceA, IInterfaceB
{
    public function doSomethingA()
    {
        // Implementation for doSomethingA
    }

    public function doSomethingB()
    {
        // Implementation for doSomethingB
    }
}

and registered with:

$this->app->singleton(\App\Services\ConcreteClass::class, function (Application $app) {
            return new ConcreteClass();
        });
$this->app->bind(\App\Interfaces\IInterfaceA::class,\App\Services\ConcreteClass::class);
$this->app->bind(\App\Interfaces\IInterfaceB::class,\App\Services\ConcreteClass::class);

the route pointing to the following controller raise an ArgumentCountError

class SampleController extends Controller
{
	public function executeRequest(Request $request,IInterfaceA interfaceA, IInterfaceB interfaceB)
	{
	}
}
View more
1 comment πŸ‘ 1
LucaBenini

LucaBenini

11th Oct 2024 @ 08:38

help wanted

When calling mb_convert_encoding() with $fromEncoding === 'HTML-ENTITIES', the polyfill does not return functionally equivalent strings to the native function. This is because mb_convert_encoding() uses html_entity_decode() when $fromEncoding === 'HTML-ENTITIES' and that function does not return characters for many numeric entities 0-31 and 127-159. For example:

<?php

require "vendor/symfony/polyfill-mbstring/Mbstring.php";

use Symfony\Polyfill\Mbstring as p;

for($i = 0; $i < 1024; $i++) {
	$string = "&#" . $i . ";";
	$mbstring = mb_convert_encoding($string, 'UTF-8', 'HTML-ENTITIES');
	$polyfill = p\Mbstring::mb_convert_encoding($string, 'UTF-8', 'HTML-ENTITIES');
	if($mbstring != $polyfill) {
		echo "Mismatch: $string - mbstring: $mbstring; polyfill: $polyfill\n";
	}
}

outputs:

Mismatch: &#0; - mbstring: ; polyfill: &#0;
Mismatch: &#1; - mbstring: ; polyfill: &#1;
Mismatch: &#2; - mbstring: ; polyfill: &#2;
Mismatch: &#3; - mbstring: ; polyfill: &#3;
Mismatch: &#4; - mbstring: ; polyfill: &#4;
Mismatch: &#5; - mbstring: ; polyfill: &#5;
Mismatch: &#6; - mbstring: ; polyfill: &#6;
Mismatch: &#7; - mbstring: ; polyfill: &#7;
Mismatch: &#8; - mbstring:; polyfill: &#8;
Mismatch: &#11; - mbstring:
                            ; polyfill: &#11;
Mismatch: &#12; - mbstring:
                            ; polyfill: &#12;
Mismatch: &#14; - mbstring: ; polyfill: &#14;
Mismatch: &#15; - mbstring: ; polyfill: &#15;
Mismatch: &#16; - mbstring: ; polyfill: &#16;
Mismatch: &#17; - mbstring: ; polyfill: &#17;
Mismatch: &#18; - mbstring: ; polyfill: &#18;
Mismatch: &#19; - mbstring: ; polyfill: &#19;
Mismatch: &#20; - mbstring: ; polyfill: &#20;
Mismatch: &#21; - mbstring: ; polyfill: &#21;
Mismatch: &#22; - mbstring: ; polyfill: &#22;
Mismatch: &#23; - mbstring: ; polyfill: &#23;
Mismatch: &#24; - mbstring: ; polyfill: &#24;
Mismatch: &#25; - mbstring: ; polyfill: &#25;
Mismatch: &#26; - mbstring: ; polyfill: &#26;
Mismatch: &#27; - mbstring:  polyfill: &#27;
Mismatch: &#28; - mbstring: ; polyfill: &#28;
Mismatch: &#29; - mbstring: ; polyfill: &#29;
Mismatch: &#30; - mbstring: ; polyfill: &#30;
Mismatch: &#31; - mbstring: ; polyfill: &#31;
Mismatch: &#39; - mbstring: '; polyfill: &#39;
Mismatch: &#127; - mbstring: ; polyfill: &#127;
Mismatch: &#128; - mbstring: Β€; polyfill: &#128;
Mismatch: &#129; - mbstring: ; polyfill: &#129;
Mismatch: &#130; - mbstring: Β‚; polyfill: &#130;
Mismatch: &#131; - mbstring: Βƒ; polyfill: &#131;
Mismatch: &#132; - mbstring: Β„; polyfill: &#132;
Mismatch: &#133; - mbstring: Β…; polyfill: &#133;
Mismatch: &#134; - mbstring: Β†; polyfill: &#134;
Mismatch: &#135; - mbstring: Β‡; polyfill: &#135;
Mismatch: &#136; - mbstring: ˆ; polyfill: &#136;
Mismatch: &#137; - mbstring: Β‰; polyfill: &#137;
Mismatch: &#138; - mbstring: Š; polyfill: &#138;
Mismatch: &#139; - mbstring: Β‹; polyfill: &#139;
Mismatch: &#140; - mbstring: Œ; polyfill: &#140;
Mismatch: &#141; - mbstring: ; polyfill: &#141;
Mismatch: &#142; - mbstring: Ž; polyfill: &#142;
Mismatch: &#143; - mbstring: ; polyfill: &#143;
Mismatch: &#144; - mbstring: ; polyfill: &#144;
Mismatch: &#145; - mbstring: Β‘; polyfill: &#145;
Mismatch: &#146; - mbstring: Β’; polyfill: &#146;
Mismatch: &#147; - mbstring: Β“; polyfill: &#147;
Mismatch: &#148; - mbstring: Β”; polyfill: &#148;
Mismatch: &#149; - mbstring: Β•; polyfill: &#149;
Mismatch: &#150; - mbstring: Β–; polyfill: &#150;
Mismatch: &#151; - mbstring: Β—; polyfill: &#151;
Mismatch: &#152; - mbstring: ˜; polyfill: &#152;
Mismatch: &#153; - mbstring: Β™; polyfill: &#153;
Mismatch: &#154; - mbstring: š; polyfill: &#154;
Mismatch: &#155; - mbstring: Β›; polyfill: &#155;
Mismatch: &#156; - mbstring: œ; polyfill: &#156;
Mismatch: &#157; - mbstring: ; polyfill: &#157;
Mismatch: &#158; - mbstring: ž; polyfill: &#158;
Mismatch: &#159; - mbstring: Ÿ; polyfill: &#159;

While many of these are control characters (and the native function does return them), the single quote (dec 39) is particularly problematic.

View more
1 comment
cpeel

cpeel

18th Mar 2021 @ 04:11

enhancement help wanted

Hi! If I use this package with my project I has a problem. My package.json has a "git dependency" like this:

{
  "peerDependencies": {
    "package": "git+ssh://git@bitbucket.org/team/project.git"
  }
}

And npm-install-peers breaks.

View more
πŸ‘ 5
JWo1F

JWo1F

18th Dec 2017 @ 08:52

help wanted

NotOrm Package

The goal is to make abstract code based on the package notorm to build a new orm system

View more
ambroisehdn

ambroisehdn

15th Jun 2022 @ 12:34

enhancement help wanted ui logic long-standing

Contact Details

No response

Feature Title

Add More Notification Support

Feature Description

More Notification options, such as.. Telegram, Pushover, potentially SMS?

For Telegram, users will be able to create a Telegram focused Notification Stream, allowing for backup task notifications to be sent via Telegram bot. Will need a page to link their account.

Vanguard Version

v1.4.1

Current Issues

No response

Additional Context

No response

Resources

No response

View more
2 comments
lewislarsen

lewislarsen

26th Jul 2024 @ 21:22

good first issue hacktoberfest

Once scheduled maintenance has completed, it should appear in the incident timeline.

View more
πŸ‘ 1
jbrooksuk

jbrooksuk

5th Oct 2024 @ 07:42

enhancement help wanted

Let's try out Filament and move our own admin panels to it. This should provide us with a much more powerful admin backend.

https://filamentphp.com

View more
2 comments πŸ‘ 1
driesvints

driesvints

22nd Dec 2023 @ 09:06

enhancement help wanted

Discussed in https://github.com/spatie/schema-org/discussions/202

Originally posted by indyjonesnl January 10, 2024

$lodgingBusiness = Schema::lodgingBusiness()
  ->openingHours(
    Schema::openingHoursSpecification()
      ->dayOfWeek([Schema::dayOfWeek()::Monday])
      ->opens(new DateTime('09:00:00'))
      ->closes(new DateTime('17:00:00'))
  )
  ->checkinTime(new DateTime('14:00:00'))
  ->checkoutTime(new DateTime('11:00:00'))

This results in the current date + time being included in the output "opens":"2024-01-10T09:00:00+00:00","closes":"2024-01-10T17:00:00+00:00" and ..."checkinTime":"2024-01-10T14:00:00+00:00","checkoutTime":"2024-01-10T11:00:00+00:00"...

While the Schema should contain only the time, formatted as 14:30:00+08:00.

Can someone point me in the right direction?

View more
Gummibeer

Gummibeer

11th Jan 2024 @ 13:12

help wanted

When using the addToMediaFromURL method, I'm receiving a Could Not Load Image error on the server, but not locally (I'm using Laravel Vapor) and not with other image formats.

The code below is where the error is occuring and that code is receiving an absolute file path to the image in s3, which is available.

public function addToMediaLibrary($file_path) { $media = $this->addMediaFromUrl($file_path) ->toMediaCollection("", 's3'); return $media; }

As an example the file path when logged out is https://s3.sitesforsaas.com/tenants/d221c93a-3757-466c-bf83-b74a9ee64c04/sites/9cfc24c7-cb2a-4c5a-8c0f-73ecdc79c166/2024/09/4e9854b0-4f2d-4931-a726-01f557bd7fc6.webp, but the error is looking for the image in local 'tmp' storage for some reason.

Could not load image at path /tmp/storage/tenantd221c93a-3757-466c-bf83-b74a9ee64c04/media-library/temp/j7pNMerUdReNx9MfAG5rKjcmGHWu4i99/LM2UYMTcYU0BO8sLsTfeOBpS9eXximejlarge.webp`",

View more
1 comment πŸ‘ 3
josiahmann

josiahmann

11th Sep 2024 @ 21:32

help wanted good first issue

This code returns an error

QueueSizeCheck::new() ->queue('static_cache', 100),
QueueSizeCheck::new()->queue('default', 100),

Spatie\Health\Exceptions\DuplicateCheckNamesFound You registered checks with a non-unique name: QueueSize. Each check should be unique. If you really want to use the same check class twice, make sure to call name() on them to ensure that they all have unique names.

The current solution is to manually give it a name for each check:

QueueSizeCheck::new() ->queue('static_cache', 100)->name('Queue size (static_cache)'),
QueueSizeCheck::new()->queue('default', 100)->name('Queue size (default)'),

A nice PR would be to put a default name based on queue name

View more
SRWieZ

SRWieZ

8th Aug 2024 @ 19:58

good first issue hacktoberfest

Incidents can be marked as β€œSticky” which I think actually makes more sense to just be labelled as β€œPin to top”. Logic needs implementing for this.

  1. Update language string from "Sticky" to "Pin to Top".
  2. Any "Sticky" incidents should be at the top of the timeline.
View more
4 comments
jbrooksuk

jbrooksuk

3rd Oct 2024 @ 18:30

help wanted

Currently, for plural rules, the MessageFormatter polyfills uses the English rules for all locales (it ignores the locale). To be consistent with what we do in symfony/intl (used by symfony/polyfill-intl-icu to implement NumberFormatter and DateFormatter), we should rather fail explicitly here (using the English rules for a different locale would not give the right result anyway)

View more
2 comments
stof

stof

23rd Oct 2018 @ 15:34

docs help wanted Turbo

We're missing docs this these features.

View more
πŸ‘ 3
kbond

kbond

31st Oct 2024 @ 18:02

enhancement help wanted hacktoberfest

Found the \Illuminate\Database\Eloquent\Concerns\HasAttributes::originalIsEquivalent() method during code diving and it should be usable for our trait! πŸŽ‰ This PR would be mainly reasearch when that method was added, if it's compatible with our version support rules and switching our own change detection logic with the core one.

View more
3 comments
Gummibeer

Gummibeer

20th Oct 2021 @ 10:03

enhancement help wanted good first issue

Describe the bug logUnguarded() works provided that $guarded is set explicitly in the model. If it is not set explicitly but globally set, say in AppServiceProvider using Model::unguard(); then nothing is logged.

To Reproduce

  1. remove $fillable and $guarded from a model that use uses LogsActivity
  2. call Model::unguard(); in AppServiceProvider in the boot method
  3. set
    public function getActivitylogOptions() : LogOptions
    {
        return LogOptions::defaults()->logUnguarded();
    }
  1. Make some changes to a model and save them

Expected behavior Some changed properties should be logged but none are

Versions (please complete the following information)

  • PHP: 8.1
  • Database: MySql
  • Laravel: 9.38
  • Package: larvel-activitylog
View more
1 comment
colinmackinlay

colinmackinlay

20th Nov 2022 @ 12:31

good first issue hacktoberfest

I think a "Manage Localization" settings page would be more useful for language settings or something else like display timezone...

View more
jbrooksuk

jbrooksuk

30th Oct 2024 @ 16:37