Classes
Handles the ajax calls made to backend from the Full Calendar
Purpose of this class is to source out events
that are page versions in disguise. It also handles
updating a page version event if the user has changed
it on the front end calendar .
A source is a plage to fetch events given a start and
end time. Our CalendarResponseHandler will use the
PageVersionSource (and others possibly later) so I
made an interface we can all abide by if we need to
create more event sources for the full calendar
This class loads all the providers in other folders for
all of devise. We don't want the developer to have to load
10 different service providers to work with devise, so
this class is just a wrapper to load all of the service
providers instead of having to load 10 individual ones in
the app/config/app.php file
Language detector is used to determine the current and
universal languages for this system. It uses LocaleDetector
to get the universal code, i.e 'en', 'es', and then fetches
the DvsLanguage from the database
The languages manager allows us to manage
the all things related to DvsLanguage model
The langauges repository provides methods to
fetch rows in the context of DvsLanguage model
Handles responses for language routes. This class
is likely used as a responsepath to a dvspage
field.
Locales are shorthand 2 letter strings
for a language/region.
Class CategoryAlreadyExistsException is thrown
whenever the Categories/Manager finds a duplicate
category. (If you try to create the same directory)
Class CategoryPaths converts dot paths to real paths
and also finds server paths and browser urls to the configured
root media directory where all our media files are stored at.
Class Manager manages categories. A category is basically
a directory inside of the /media folder.
Class ResponseHandler handles the controller side
of managing categories. These methods are likely
referenced in dvs_pages table
Registers a new devise.video.encoder we can use
globally throughout Laravel
Class InvalidEncodingSettingsException is thrown in ZencoderJob
anytime invalid settings are passed in when trying to create a
new Zencoder api call to start encoding videos
Class ZencoderJob handles incoming requests that have been
completed by Zencoder. Also pushes requests to Zencoder api.
Class ZencoderNotificationsController handles incoming requests
from the zencoder server when it is finished encoding our videos
in order to let us know it is time to download the encoded video
back to our own servers
Class FileDownloader downloads a file from
the internet and saves it into a specified directory
Class Filesystem inherits from Illuminate\Filesystem\Filesystem
but adds some additional functionality such as file searching.
Class InvalidFileException is thrown in MediaPaths
whenever the file path given is not valid (it doesn't exist)
Class Manager
Class Repository builds a complex array of data around the file structure
of the media manager. This let's us fetch a lot of things regarding the
file system around the media manager
Class ResponseHandler handles controller part of media manager
as far as uploading, renaming and removing media files goes
Class Manager takes care of image management. This lets us
get a list of images and also crop and resize images
Class ResponseHandler handles requests (controller/route)
made to crop images
Class MediaPaths abstracts away paths that we can use
and also has a few helper methods for other classes to use
Class MenusRepository retrieves things related to
DvsMenu and DvsMenuItems database table
Class MenusResponseHandler is used to store and update menus
and menu items in the database. There is likely a dvs_pages
database row pointing to these two methods.
Class MigrationScaffolding
Class SanityChecksHelper
Class ScaffoldingManager
Class ScaffoldingResponseHandler
Class SeederScaffolding
Class TemplateScaffolding
Class BaseScaffolding
Class CrudScaffolding
Class ApiPagesManager manages the creating of new pages,
updating pages
Class ApiPagesRepository is used to retrieve DvsPage models of Function type
Response handler takes care of creating,updating, destroying
This classes purpose is to act as a container
for fields on the collection level. A collection
can have multiple fields, e.g.
Collection fields are objects that allow
us to traverse the keys in that collection.
Manage collections in the database by creating, updating
and removing them.
Retreives collection instances and sets and fields for us.
Handle responses for collection instances
Whenever we see a duplicate field key on a page
throw an exception for the developer so they can fix it.
A field manager has the responsibilty of managing fields in
the database.
Field value is an object that holds json
values for a DvsField model
Fields repository allows us to retrieve fields
that belong to page versions and keys and have been
deleted. We also can find global fields with this
repository.
When the video field is updated we will
call this class to handle the encoding part
This should be registered in the Events of
laravel whenever the PagesServiceProvider starts
This class should be registered in a service provider
for PagesServiceProvider. It is called anytime a
field with type "image" is updated. We do this so we
can hook into the updated event and then create media
versions and thumbnails for this image field
When the video field is updated we will
call this class to handle the encoding part
This should be registered in the Events of
laravel whenever the PagesServiceProvider starts
Field value is an object that holds json
values for a DvsField model
This class merely decorates the another compiler
and thus giving us the extra functionality we need
to work properly.
purpose of this class is to add placeholder tags
and also rename devise tags and lastly append on
App::make('dvsPageData')->bindings for devise tags,
collections, models and model creators
A storage container class that stores collections and fields
for a given page. These fields and collections are addeded
to a singleton registered in Devise\Pages\PagesServiceProvider.php
called 'dvsPageData'. ALl blade views that contain fields and/or
collections will use methods like addCollection and addField respectively
to add in the data. Eventually all this data is spit out as JSON
for the javascript library in devise to take over from there.
This exception is thrown anytime there are multiple devise
fields on a page that share the same key. Keys are unique to
the page.
This exception is thrown anytime the devise key is
invalid. A invalid variable name in php is considered
an invalid key name. We have to use key name in
php to referrence the devise key, i.e. $keyName->text
Thrown whenever the devise tag is malformed.
Thrown whenever the model tag has no picks, resulting
in a zero count mapping inside the TagManager
Thrown whenever the page is not initialized with
correct data. This should never happen unless
we have bugs in our code.
This visitor class handles putting
this creates two sections, one for devise editors
and the other a pristine section which removes
all the data-devise stuff.
Create and find tags in the database. A tag could be a model, field,
attribute, model creator or collection
Class ViewOpener opens a view for an include statement in this format:
All pages registered in dvs_pages database table
come through this controller show method. The reason
for this is so that the database can be in charge of
the routes and a non developer can construct new
pages with predefined templates in a dropdown selectbox.
Class PageManager manages the creating of new pages,
updating pages and removing and copying pages.
This exception is thrown whenever the page is not found
in the database (likely because the page is not published)
Response handler takes care of creating,updating, destroying
and copying pages within the /admin/pages routes
Class PageVersionManager manages all things page versions related.
Class PageVersionsRepository is used to search and retrieve
DvsPageVersion models and things in context of a Devise Page Versions.
This exception is thrown whenever there are problems with pages
inside of PagesControllerResponse
Class PagesRepository is used to search and retrieve DvsPage models
and things in context of a Devise Page.
Registers the Pages service provider. This allows us to manage our pages
within the Devise cms. It also provides the ability to scan blade views
and extract out fields and collections which can be loaded in the Devise
Sidebar and maintained by the admin.
This builds the variables that are found in views.php config
for a devise page. It uses a ViewComposer (found in this directory)
to inject in the data that is built using this class.
Purpose of this class is to turn something like this
in the view vars into a parameter value we can use.
Class DeviseRouteConfigurationException is thrown in the case where
devise views.php config has been improperly configured.
View composer here is registered in the
Devise\Pages\PagesServiceProvider.php for all
views that are contained within the views config
file. That is how those views have their data injected
into them properly - by running through this view composer.
Class PageSearch is an example of how you could search
for pages using the SearchableModelTrait
Class Pagination is used so we can paginate search results
from many different searched models
Class SearchableModelTrait can be applied to an eloquent model
to give it "searchablity". You have to override the getColumns method
and/or make a
protected $searchable = array('column1' => 1, 'column2' => 2);
Class UniversalSearch lets us register new searchable models
and then search through all of them
Class DeviseUniversalSearchProvider registers the universal
searching mechanism for Devise
SettingsManager is used to update the config overrides file
which allows an admin to override any config variable in devise
Class FileManager is used to manage retrieving and modifying
Devise config(s) files along with any other management functions
SettingsManager is used to update the config overrides file
which allows an admin to override any config variable in devise
Class DeviseException should be the base class exception
for any exception thrown inside of Devise. This way we can
catch those specifically if we want and know that they are
different from just regular exceptions.
Class DeviseHttpException should be the base class exception
for any exception thrown inside of Devise. This way we can
catch those specifically if we want and know that they are
different from just regular exceptions.
Class DeviseResponse for some reason Illuminate\Support\Facades\Response
is not an actual facade but a real class. So we can't use getFacadeAccessor
on it. Instead we write a proxy class called DeviseResponse which simply
calls static methods on Response object.
This validation exception is thrown
when ever there are validation errors
somewhere. It is used in the Manager class
to assert fields are valid.
Class Framework wraps important components that we
use from Laravel's framework. Components like Config,
Validator, Request, Response.
Class EloquentBuilder is ran on paginate queries only and takes
the liberty of sorting and filtering results for us smartly and
magically.
Class Filter
Class Manager changes the cookie/session keys for multisorts
Class Sort handles creating links and filters for us which
Class SortableFacade
Class SortableServiceProvider registers the Sort facade
on the Laravel container
Class SupportServiceProvider registers support components of
Devise and other helpers that Devise uses.
Class DeviseTemplateNotFoundException is thrown in the case where
devise templates.php config is missing the a view path
Class TemplatesManager manages updating templates,
removing and additional admin functions
Class TemplatesRepository is used to retrieve template data
Class TemplatesResponseHandler is used to retrieve template data
Class GroupManager manages the creating,
updating, and removing of groups.
Class PermissionsManager manages updating permissions,
removing and additional admin functions
Class PermissionsRepository is used to retrieve permission data
Class PermissionsResponseHandler is used to retrieve permission data
Class RedirectHandler handles redirecting
Class RuleList maintains list of built-in and user defined functions (in
permissions-conditions config) which can be checked using DeviseUser Facade.
Class RuleManager manages retrieval, creation/addition, execution
and evaluation of native and user-defined rules.
Class SessionsRepository is used to search and retrieve current DvsUser in session
and things in context of a DvsUser/DvsGroup.
Helper allows specific methods to be easily accessible through
the DeviseUser facade.
Class UserManager manages the creating of new users,
updating existing users and removing users.
Class UserServiceProvider registers the devise user, rulelist and rulemanager
facades
Class UsersRepository is used to search and retrieve DvsUser models
and things in context of a Devise User.
Response handler takes care of user login/logout, creating,
updating, destroying users within /admin/users routes