Giter Site home page Giter Site logo

thekordy / ticketit Goto Github PK

View Code? Open in Web Editor NEW
868.0 868.0 381.0 3.43 MB

A simple helpdesk tickets system for Laravel 5.1+ which integrates smoothly with Laravel default users and auth system, demo is available at: http://ticketit.kordy.info/tickets

License: MIT License

PHP 61.67% Blade 38.33%

ticketit's People

Contributors

andersondeoliveiramachado avatar andylord56 avatar balping avatar brazitech avatar c0h1b4 avatar datune avatar edgarborras94 avatar fhferreira avatar fishmad avatar fusiondesign avatar hpakdaman avatar imanghafoori1 avatar kebian avatar mandrakecr avatar melihovv avatar mpryvkin avatar nikolay-zakharov avatar overint avatar pauloklaus avatar pepoteloko avatar physio avatar rickbakkr avatar spspasov avatar thekordy avatar tmcdon89 avatar tobz-nz avatar vegax87 avatar zek 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  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  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

ticketit's Issues

Ability to Disable Priorities and Categories, etc

I know I can just create a single priority and category and then just hide them with css, but why not give the option in the config to disable such features if they aren't needed? Its a feature request of course and I really appreciate what you have done so far. Thanks!

Class 'Kordy\Ticketit\Models\Comment' not found

Hi!

I really don't know if this issue is related to your project or just my configuration is wrong. I'm just asking for your help, I don't have a clue what's causing this.

So after running php artisan clear-compiled I always get the following error message:

> php artisan clear-compiled
PHP Fatal error:  Class 'Kordy\Ticketit\Models\Comment' not found in /var/www/vendor/kordy/ticketit/src/TicketitServiceProvider.php on line 33



  [Symfony\Component\Debug\Exception\FatalErrorException]  
  Class 'Kordy\Ticketit\Models\Comment' not found          



Script php artisan clear-compiled handling the post-update-cmd event returned with an error



  [RuntimeException]                                                                                                                                                       
  Error Output: PHP Fatal error:  Class 'Kordy\Ticketit\Models\Comment' not found in /var/www/vendor/kordy/ticketit/src/TicketitServiceProvider.php on line 33       

After this when I try to run any page I get the above error.

To solve this, I usually do the following:

I comment out the service provider from my config/app.php file:

//Kordy\Ticketit\TicketitServiceProvider::class,

Then I run

$ php artisan clear-compiled
$ php artisan optimize

Then I remove the comment from config/app.php:

Kordy\Ticketit\TicketitServiceProvider::class,

After these steps, everything works. But after a while it's a bit inconvenient.

Can you suggest something, what could I do?

Ticket was auto assigned to Admin who is not the Agent in Category

I have two Agents Joined to a Category (neither of them are the Admin) DB User #3 and #4
I logged in as a standard User DB User #2 and created a new a ticket.
The ticket was auto allocated to the Admin instead of my Agents.

I then logged in as Admin (DB User #1) with intent to re-assign ticket but the ability to Edit ticket is not available to Admin (possibly because he's not assigned to Category), however the Admin can add Comments or Delete the Ticket just not Edit it.

This also means I can't edit the ticket at all because Admin owns it and no other Agent knows it exists.

Also in the DataTable under the Agent table Heading the name of the person who submitted the ticket shows up and not the Assigned Agent not sure if you intended this to be the ticket owner or agent.
capture

Perhaps it should have a column for both 'ticket owner' and 'assigned agent'

Also I deleted all the tickets as Admin but they are still in the Tickets Table in Database.

Specify classes or id's for elements

Id like to hide many aspects of the ticket system since I have no use for their particular values and I would like to customize the look of many other areas. Unfortunately this means that in most cases, I have to customize the blade template files versus just doing it with css because a majority of the elements do not have custom classes or id's associated with them. Priorities, categories, person responsible for ticket, owner, last updated, etc. All of these are just in generic divs with no custom css assignment such as class="ticket-owner" or something like that. This isn't really a huge deal, but it would be nice to be able to customize style of the ticket system without having to modify files that might be updated later. Doing it in css only can make upgrades so much easier to do.

Just another feature request. Last one that I can think of. Sorry! =)

Emails do not send.

unserialize(): Error at offset 0 of 162 bytes

Error whenever sending emails. All templates contain inline PHP unserialize() commands. I have no idea the purpose of these.

Install error

Hi,

when I run : composer require kordy/ticket dev-master

I get the following error:

Your requirements could not be resolved to an installable set of packages.

Problem 1
- The requested package kordy/ticket could not be found in any version, there may be a typo in the package name.

Potential causes:

Read https://getcomposer.org/doc/articles/troubleshooting.md for further common problems.

Installation failed, reverting ./composer.json to its original content.

Update: There is a error in your documentation. It must be ticketit and not only ticket.

Can be closed

Testing v0.1.0

What's left to do on this branch? Just battle testing or did you want me to work on some feature?

I'd like to start writing tests for coverage soon, as the project is starting to need it.

Status should be listed on My Tickets list

I lied about not having any other suggestions, but I hoping these thoughts benefit everyone. =)

Don't you think that the Status of the tickets would be an important item to list in the My Tickets area? I think it's probably one of the most important pieces of info besides subject and last replied. Thoughts?

Manage Agents "Removed Agent" is still being auto assigned new tickets

I removed an agent from one of my categories as I had too many, but when I submitted a new ticket later on it still assigned the new ticket to that removed agent.

I notice the relationship reference remains in pivot table ticketit_categories_users
This may still have a purpose - if I was to manually delete the mysql row (I cant anyway) it would cause problems with any 'existing comments' that agent previously made on old tickets.

Suggest adding a flag in Pivot table to indicate if agent is still 'active' in that 'category'.
so when auto assign of tickets a query would check to see only 'active agents'.

Close ticket

It would be nice if there was such functionality. For example in the config file there could be a close_status_id item. Lets assume that it is set to 5 and there's a status called 'Closed' in the database with id of 5. Then when an admin sets a ticket's status to 5 - closed, the user is not allowed adding comments any more.

Edit ticket - Unable to re-assign or update ticket in branch v0.1.0

Unable to select Agents for re-assign - None available in drop-down

capture2

Also if try to change subject line and save changes - error is thrown below:

Whoops, looks like something went wrong.

1/1
ErrorException in TicketitServiceProvider.php line 52:
Trying to get property of non-object
in TicketitServiceProvider.php line 52

Ticket Index Paging

Agents are going to have a lot of tickets to take care of and unfortunately right now, I am not seeing any paging support for the My Tickets section. Am I missing something?

Branch Naming

Our branches are named 0.7, 0.2, and 1.0. I believe 0.2 should be 1.1 or 2.0? Either way, I'd like to get naming sorted out so I can properly sync branches :)

I see you are already doing stuff, maybe you know :P

Identify commentor

Feature Request

Im surprised the default template for the ticket view does not identify who is making the comment replies. Should be special css to signify that the comment is from an agent as well.

I honestly would be creating PR's for this stuff, but I am customizing way to much of the actual designs that it wouldn't be to helpful.

P.S. Is there actually no way to for me label my own "issues" that I submit?

Relationship restrictions

Putting some restrictions and mass moving option.. an example of the relationship restriction:

  1. you are about deleting a status that is assigned to many tickets, please move them first to another status in order to be able to delete this status
  2. you are about deleting an agent whom is assigned to many tickets, please assign them first to another agent in order to be able to delete this status

anything else?

Trying to get property of non-object -> Email Assign Notification

Logged in as a normal user (non-admin, non-agent) and submit ticket and I got this error.

2/2
ErrorException in 52418f3aa5e34f54df0cd1049af96859 line 7:
Trying to get property of non-object (View: C:\file\vendor\kordy\ticketit\src\Views\emails\assigned_notification.blade.php)

from below Line 7 is: 'status' => $ticket->status->name,

$notification_owner->name, 'subject' => $ticket->subject, 'status' => $ticket->status->name, 'category' => $ticket->category->name ]); ?> subject, $ticket->id); ?>

Documentation

Adding articles on how to install, update, use, configure, customize, .. etc to the repository Wiki

User can comment on other's tickets. SECURITY BUG

Every user in the system can view and comment on tickets that were not created by them. Ok, the tickets are not listed at the My tickets page, but ticket ID-s are easy-to-guess. Tickets should be only allowed to be viewed by the owner, agents and admins. It's a serious security bug!!

AdminLTE integration

This is a question and a feature request (maybe), but as you have seen in one of my other issues that I created, but I am using a great laravel/bootstrap boilerplate (https://github.com/rappasoft/laravel-5-boilerplate/) that uses the AdminLTE theme for its backend area. Since you only have a single master_template setting in the config/ticketit.php, is this even possible with the tickets package?

Current status screens

Views integrated in the master view

ticketit-main

My Tickets main user screen

ticketit-main2

Ticket screen with comments (new comments update the ticket)

ticketit-show

Admin and assign agents to categories

ticketit-admin-agents

Admin custom categories

ticketit-admin-category

Admin custom priorities

ticketit-admin-priority

Create custom status (same in creating custom categories and priorities)

ticketit-admin-status-create

Admin custom statuses

ticketit-admin-status

Truthy statements

Kordy, how do you feel about switching to booleans for the config file vs yes or no? It would make sense with our language transition.

Localisation needed

Just as in title. Of course, I can edit views, but changes made under resources/views/vendor/kordy/ticketit/ have no effect since the views are loaded from the source directory. And I wouldn't like to edit them because I'm hoping for updates + the vendor folder is excluded from the git repository and I won't change it.

Great project, great start anyway. Just needs some polishing

Standalone Version

Hi,

do you have standalone Version? The package is create but I would like to see a full example app.

Greets
Wipsly

Views Localization

Adding localization to views, to allow package users to translate or edit text.

App is promising, keep up the good work

No issues here the app works as promised and easy to get it up and running.

I was able to re-assign a ticket manually in the ticket-admin section to another agent. Loved it - it worked great.

Would it be difficult to code it so and admin could re-assign an instance of the customers ticket to more than one agent?

Im wondering if a customer submitted a help ticket, than the responsible agent can review the master ticket and (if required) create sub-tickets (actions) and assign them to different agents and each agent needs to complete their own in house sub-action before the main ticket can be closed.

Imagine for a minute the customer submitting a ticket is more like the customer creating a small Project, and the admin reviews the ticket and assigns new sub-Tasks from that ticket to multiple inhouse agents to help user faster - and only the admin or responsible agent can communicate back on the original ticket and customer does not see the sub-tickets assigned to other agents.

I followed this tutorial and built this Laravel 5 Project/Task which is good but I was hoping is was more like yours and acted like a customer ticket system that supports sub-tasks from the main ticket.
https://www.flynsarmy.com/2015/02/creating-a-basic-todo-application-in-laravel-5-part-1/

Your app is great.

Unable to re-assign any Tickets to another Agent since v0.2.0

Edit Ticket > The Agent drop down box always says: Auto Select
I'm unable see or select other Agents for manual ticket re-assignment.

  • Have tried logged in as 'Admin who is NOT a member of category he cant change it.
  • Have tried logged in as 'Admin who IS a member of category he cant change it.
  • Have tried logged in as Responsible Agent who is member of category he cant change it.
  • Have tried logged in as Agent who is member of category he cant change it.

capture

Configs don't really work

  1. 'main_route'

I changed this to 'support', I got the following error message:

Route [tickets.create] not defined. (View: /var/www/vendor/kordy/ticketit/src/views/tickets/index.blade.php)
  1. 'master_template'

I changed 'master_template' to 'app'. Now when opening page tickets/create:

View [master] not found. (View: /var/www/vendor/kordy/ticketit/src/views/tickets/create.blade.php)

So it still needs a master.blade.php. My workaround is the following: I created a master.blade.php with content @include('app'). Of course it works, but since you offer these configs, please make them working.

Email queue doesn't work

Hi!
When 'queue_emails' => 'no', everything works fine, the email is sent. However if I try queued emails, I get the following message from the queue worker:

[ErrorException]                                                                                                                             
  Trying to get property of non-object (View: /var/www/resources/views/vendor/ticketit/emails/comment_notification.blade.php)  

  [ErrorException]                      
  Trying to get property of non-object 

My queues are configured of course, I'm using database driver.

I started debugging, I dumped $comment inside comment_notification.blade.php and $comment is an array however it is supposed to be an object, that's the problem.

I'm suggesting you the following:

Use the array version of the comment and the ticket and in the views reference the properties as array keys. For example in function newComment():

$data = ['comment' => $comment->toArray(), 'ticket' => $ticket->toArray()];

Hope that helps. I didn't try this, but it should work I think

Simplifying Package Pre-requests

We should not ask users at upgrades or fresh installs to do a lot of preparing their application in order to use Ticketit package.

In v0.2.0 we ask users to set up 2 non-default Laravel settings (users, emails), and to install 2 packages (collective forms, laravel datatables). I believe the less pre-requests we ask for the more attractive is the package.

About dependents packages, Composer made it easy for installing dependents packages with no need of user interaction, so the only other thing remains is registering the dependents packages service provider and that can be done via TicketitServiceProvider as follow:

/*
         * Register the service provider for the dependency.
         */
        $this->app->register('Collective\Html\HtmlServiceProvider');
        $this->app->register('yajra\Datatables\DatatablesServiceProvider');
        /*
         * Create aliases for the dependency.
         */
        $loader = \Illuminate\Foundation\AliasLoader::getInstance();
        $loader->alias('Form', 'Collective\Html\FormFacade');
        $loader->alias('Html', 'Collective\Html\FormFacade');
        $loader->alias('Datatables', 'yajra\Datatables\Datatables');

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.