GithubHelp home page GithubHelp logo

nova-tab's Introduction

Laravel Nova Tab Total Downloads

Custom Nova field to render tabs

Installation

Install the package into a Laravel app that uses Nova with Composer:

composer require arsenaltech/nova-tab

Usage

Add the Tabs trait to your App\Nova\Resource class.

use Arsenaltech\NovaTab\Tabs;

abstract class Resource extends NovaResource
{
    use Tabs;

Add the field to your resource in the fields method:

use Arsenaltech\NovaTab\NovaTab;


new NovaTab('User Information', [
            Text::make('Name')
                ->sortable()
                ->rules('required', 'max:255'),
            Text::make('Email')
                ->sortable()
                ->rules('required', 'email', 'max:255')
                ->creationRules('unique:users,email')
                ->updateRules('unique:users,email,{{resourceId}}')]),
new NovaTab('Address Information', $this->addressFields()),
new NovaTab('Other Information', $this->otherFields()),

nova-tab's People

Contributors

daguilarm avatar dtannen avatar jimpeters avatar mdobariya avatar ragingdave avatar shabbirbharmal avatar tobeycodes avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

nova-tab's Issues

Right now, only show one field for tab...

This morning the tabs system has started to fail. Only shows one result per tab:

captura de pantalla 2018-10-02 a las 10 12 51

captura de pantalla 2018-10-02 a las 10 12 58

captura de pantalla 2018-10-02 a las 10 13 04

Just only one field per tab... the other fields are missing. Maybe the last nova update? or the last commit with the html feature? I tested the application before the last commit and was ok...

Page scrolling to anchor when content is too long

I'm not sure if this is just on my end or not. This should be disabled though. There's no need to scroll the page to the anchor when switching tabs. This is just the default behavior when clicking links with anchors.

Tabs not working on edit mode

Do i need to make some different or setting up something else to show the tabs in the edit mode of the resources?

I currently have Laravel Nova 1.3.1, maybe is a issue with new versions?

Relationships Outside of Tab?

Is it possible to keep relationships (or any section) out of tabs? Basically I just want tabs to be inside a panel as a child of a panel. Right now when I add this to my resource my relationship is forced into a new tab, without my input.

What I Got:
screen shot 2018-10-25 at 2 10 22 pm

What I expected was to still have "Customers" underneath my tabs.

Testing

Will be nice feature a custom ID or DUSK fields for testing, something like:

->id('myID') or ->dusk('myID') or ->idAndDusk('myID')

And will render in:

<a aria-controls="#permisos" href="#myID" role="tab" class="tabs-component-tab-a" dusk="myID" id="myID">Permisos</a>

Mostly is a problem with utf8 codec, so I need accents and other chars out. I think the best way will be to set a custom value for id, href or dusk... Maybe adding the hash method something like this:

str.normalize('NFD').replace(/[\u0300-\u036f]/g, "")

TypeError: Cannot read property 'fields' of undefined - after Composer Update

I've been using tabs in my project for some time with no problem. I just added some functionality which caused me to do a Composer Update, which seems to have broken the Tabs package.

I get this error in the browser console when it tried to render the tabs:

TypeError: Cannot read property 'status' of undefined

I managed to get it working again after I rolled back the Composer Update, but I need to resolve this properly - I'm really stuck!

Tabs not working with Nova 2.0.9

Laravel Nova introduced this feature from >= v2.0.8:

Nova will now display Panels on the Create and Update views in addition to the Detail view.

So the Laravel\Nova\Panel::defaultNameFor method no longer exists. Now, there are those different methods:

  • defaultNameForDetail
  • defaultNameForCreate
  • defaultNameForUpdate

I guess that there are also other changes that might break this plugin.

[2019-07-05 12:08:15] local.ERROR: Call to undefined method Laravel\Nova\Panel::defaultNameFor() {"userId":1,"exception":"[object] (Symfony\\Component\\Debug\\Exception\\FatalThrowableError(code: 0): Call to undefined method Laravel\\Nova\\Panel::defaultNameFor() at /app/vendor/arsenaltech/nova-tab/src/Tabs.php:79) [stacktrace] #0 /app/vendor/arsenaltech/nova-tab/src/Tabs.php(64): App\\Nova\\Project->assignFieldsToTabs(Object(Laravel\\Nova\\Http\\Requests\\ResourceDetailRequest), Array) #1 /app/vendor/arsenaltech/nova-tab/src/Tabs.php(30): App\\Nova\\Project->availableTabs(Object(Laravel\\Nova\\Http\\Requests\\ResourceDetailRequest), Array) #2 /app/nova/src/Http/Controllers/ResourceShowController.php(26): App\\Nova\\Project->serializeForDetail(Object(Laravel\\Nova\\Http\\Requests\\ResourceDetailRequest)) #3 [internal function]: Laravel\\Nova\\Http\\Controllers\\ResourceShowController->handle(Object(Laravel\\Nova\\Http\\Requests\\ResourceDetailRequest), 'projects', '1') #4 /app/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): call_user_func_array(Array, Array) #5 /app/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(45): Illuminate\\Routing\\Controller->callAction('handle', Array) #6 /app/vendor/laravel/framework/src/Illuminate/Routing/Route.php(219): Illuminate\\Routing\\ControllerDispatcher->dispatch(Object(Illuminate\\Routing\\Route), Object(Laravel\\Nova\\Http\\Controllers\\ResourceShowController), 'handle') #7 /app/vendor/laravel/framework/src/Illuminate/Routing/Route.php(176): Illuminate\\Routing\\Route->runController() #8 /app/vendor/laravel/framework/src/Illuminate/Routing/Router.php(680): Illuminate\\Routing\\Route->run() #9 /app/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(30): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request)) #10 /app/nova/src/Http/Middleware/Authorize.php(18): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request)) #11 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(163): Laravel\\Nova\\Http\\Middleware\\Authorize->handle(Object(Illuminate\\Http\\Request), Object(Closure)) #12 /app/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request)) #13 /app/nova/src/Http/Middleware/BootTools.php(20): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request)) #14 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(163): Laravel\\Nova\\Http\\Middleware\\BootTools->handle(Object(Illuminate\\Http\\Request), Object(Closure)) #15 /app/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request)) #16 /app/nova/src/Http/Middleware/DispatchServingNovaEvent.php(20): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request)) #17 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(163): Laravel\\Nova\\Http\\Middleware\\DispatchServingNovaEvent->handle(Object(Illuminate\\Http\\Request), Object(Closure)) #18 /app/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request)) #19 /app/vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php(43): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request)) #20 /app/nova/src/Http/Middleware/Authenticate.php(31): Illuminate\\Auth\\Middleware\\Authenticate->handle(Object(Illuminate\\Http\\Request), Object(Closure)) #21 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(163): Laravel\\Nova\\Http\\Middleware\\Authenticate->handle(Object(Illuminate\\Http\\Request), Object(Closure)) #22 /app/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request)) #23 /app/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(41): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request)) #24 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(163): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle(Object(Illuminate\\Http\\Request), Object(Closure)) #25 /app/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request)) #26 /app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(75): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request)) #27 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(163): Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken->handle(Object(Illuminate\\Http\\Request), Object(Closure)) #28 /app/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request)) #29 /app/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request)) #30 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(163): Illuminate\\View\\Middleware\\ShareErrorsFromSession->handle(Object(Illuminate\\Http\\Request), Object(Closure)) #31 /app/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request)) #32 /app/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(56): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request)) #33 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(163): Illuminate\\Session\\Middleware\\StartSession->handle(Object(Illuminate\\Http\\Request), Object(Closure)) #34 /app/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request)) #35 /app/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request)) #36 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(163): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle(Object(Illuminate\\Http\\Request), Object(Closure)) #37 /app/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request)) #38 /app/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(66): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request)) #39 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(163): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle(Object(Illuminate\\Http\\Request), Object(Closure)) #40 /app/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request)) #41 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(104): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request)) #42 /app/vendor/laravel/framework/src/Illuminate/Routing/Router.php(682): Illuminate\\Pipeline\\Pipeline->then(Object(Closure)) #43 /app/vendor/laravel/framework/src/Illuminate/Routing/Router.php(657): Illuminate\\Routing\\Router->runRouteWithinStack(Object(Illuminate\\Routing\\Route), Object(Illuminate\\Http\\Request)) #44 /app/vendor/laravel/framework/src/Illuminate/Routing/Router.php(623): Illuminate\\Routing\\Router->runRoute(Object(Illuminate\\Http\\Request), Object(Illuminate\\Routing\\Route)) #45 /app/vendor/laravel/framework/src/Illuminate/Routing/Router.php(612): Illuminate\\Routing\\Router->dispatchToRoute(Object(Illuminate\\Http\\Request)) #46 /app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(176): Illuminate\\Routing\\Router->dispatch(Object(Illuminate\\Http\\Request)) #47 /app/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(30): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}(Object(Illuminate\\Http\\Request)) #48 /app/nova/src/Http/Middleware/ServeNova.php(26): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request)) #49 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(163): Laravel\\Nova\\Http\\Middleware\\ServeNova->handle(Object(Illuminate\\Http\\Request), Object(Closure)) #50 /app/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request)) #51 /app/vendor/bepsvpt/secure-headers/src/SecureHeadersMiddleware.php(21): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request)) #52 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(163): Bepsvpt\\SecureHeaders\\SecureHeadersMiddleware->handle(Object(Illuminate\\Http\\Request), Object(Closure)) #53 /app/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request)) #54 /app/vendor/fideloper/proxy/src/TrustProxies.php(57): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request)) #55 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(163): Fideloper\\Proxy\\TrustProxies->handle(Object(Illuminate\\Http\\Request), Object(Closure)) #56 /app/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request)) #57 /app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request)) #58 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(163): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure)) #59 /app/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request)) #60 /app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request)) #61 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(163): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure)) #62 /app/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request)) #63 /app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request)) #64 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(163): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle(Object(Illuminate\\Http\\Request), Object(Closure)) #65 /app/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request)) #66 /app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(62): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request)) #67 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(163): Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode->handle(Object(Illuminate\\Http\\Request), Object(Closure)) #68 /app/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request)) #69 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(104): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request)) #70 /app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(151): Illuminate\\Pipeline\\Pipeline->then(Object(Closure)) #71 /app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(116): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter(Object(Illuminate\\Http\\Request)) #72 /app/public/index.php(55): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request)) #73 {main} "}

nova-tabs breaks HasMany

When using tabs as a replacement for panels, HasMany returns every row in the database. Reverting back to the Nova supplied field panel restores the expected behavior.

Add title to ressource edit

The default title of a ressource edit view is "Edit RESSOURCE_NAME". So if you would edit an artikel you see "Edit Article", but you don't know, which article you are currently editing. Normally you would have a field like Text::make("name") or Text::make("title") to identify your article. But if you are using tabs, you see this "name"-field only in one tab. Let me illustrate it by an example:

I have 5 tabs. If you are on the first one, you see the "Name" Field and know which article you are currently editing:

image

But if you switch to another tab, you can't see the name of the article anymore:

image

Is there maybe a way, to add the name of the ressource somewhere, where it is visible every time, somehow like so:

image

[Feature] Allow to add icon to tabs

It would be great, if we could add extra HTML to tab-title for example to add icons.

image

If you do it directly:

new NovaTab('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" class="sidebar-icon"><path fill="var(--sidebar-icon)" d="M3 1h4c1.1045695 0 2 .8954305 2 2v4c0 1.1045695-.8954305 2-2 2H3c-1.1045695 0-2-.8954305-2-2V3c0-1.1045695.8954305-2 2-2zm0 2v4h4V3H3zm10-2h4c1.1045695 0 2 .8954305 2 2v4c0 1.1045695-.8954305 2-2 2h-4c-1.1045695 0-2-.8954305-2-2V3c0-1.1045695.8954305-2 2-2zm0 2v4h4V3h-4zM3 11h4c1.1045695 0 2 .8954305 2 2v4c0 1.1045695-.8954305 2-2 2H3c-1.1045695 0-2-.8954305-2-2v-4c0-1.1045695.8954305-2 2-2zm0 2v4h4v-4H3zm10-2h4c1.1045695 0 2 .8954305 2 2v4c0 1.1045695-.8954305 2-2 2h-4c-1.1045695 0-2-.8954305-2-2v-4c0-1.1045695.8954305-2 2-2zm0 2v4h4v-4h-4z"></path></svg> Images', [
                ...
]),

it works, but you will also have the html stuff in the url/permalink like so:

https://www.test.local/nova/resources/cities/34/edit#%3Csvg-xmlns=%22http://www.w3.org/2000/svg%22-viewbox=%220-0-20-20%22-class=%22sidebar-icon%22%3E%3Cpath-fill=%22var(--sidebar-icon)%22-d=%22m3-1h4c1.1045695-0-2-.8954305-2-2v4c0-1.1045695-.8954305-2-2-2h3c-1.1045695-0-2-.8954305-2-2v3c0-1.1045695.8954305-2-2-2zm0-2v4h4v3h3zm10-2h4c1.1045695-0-2-.8954305-2-2v4c0-1.1045695-.8954305-2-2-2h-4c-1.1045695-0-2-.8954305-2-2v3c0-1.1045695.8954305-2-2-2zm0-2v4h4v3h-4zm3-11h4c1.1045695-0-2-.8954305-2-2v4c0-1.1045695-.8954305-2-2-2h3c-1.1045695-0-2-.8954305-2-2v-4c0-1.1045695.8954305-2-2-2zm0-2v4h4v-4h3zm10-2h4c1.1045695-0-2-.8954305-2-2v4c0-1.1045695-.8954305-2-2-2h-4c-1.1045695-0-2-.8954305-2-2v-4c0-1.1045695.8954305-2-2-2zm0-2v4h4v-4h-4z%22%3E%3C/path%3E%3C/svg%3E-bilder

So, maybe you could filter out HTML from the link.

Class name must be a valid object or a string

Hi,

Im getting the fllowing error on using this package.

Class name must be a valid object or a string {"userId":1,"email":"[email protected]","exception":"[object] (Symfony\Component\Debug\Exception\FatalThrowableError(code: 0): Class name must be a valid object or a string at /home/jurn/Documenten/sites/planning/nova/src/Http/Requests/InteractsWithRelatedResources.php:20)

Full width and height tabs

We could add margin: -.75em -1.5em; to the .tab-component. I'd prefer if we could just remove the padding and background from the .card but not sure how to do that without it affecting global styles.

This looks way better in my opinion

screenshot 2018-11-04 16 11 40

Problem with HasMany

When create a new resource from a relationship (HasMany):

captura1-1

The default value for the relationship is null:

captura-1-2

Because nova block the option from the select, it is impossible to change the value from the select.
I have tried to do the same without using the tab, and it works. The default value is lost within the tab code.

Discussion translatey(2px)

Hey, what's the thinking behind lowering the tabs down into the other tabs' content with translateY(2)?

Class 'Arsenaltech\NovaTab\Resource' not found

\Nova\Resource.php:

<?php

namespace App\Nova;

use Laravel\Nova\Resource as NovaResource;
use Laravel\Nova\Http\Requests\NovaRequest;

use Arsenaltech\NovaTab\Resource as TabResource;

abstract class Resource extends TabResource
{
...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.