Commit Graph

1718 Commits

Author SHA1 Message Date
Kyle Johnson afdd9b4bfc Remove sidebar.php, no longer used 2015-02-11 09:35:53 -05:00
Kyle Johnson b77e31ff94 Link monitor name to monitor edit page in console 2015-02-11 09:35:07 -05:00
Kyle Johnson 27cfe1bd20 Use ng-include instead of php include() in header 2015-02-11 09:33:03 -05:00
Kyle Johnson c59791bf9b Rename state.php to state.html 2015-02-11 09:30:16 -05:00
Kyle Johnson ac6de04bb7 Remove php from state view 2015-02-11 09:28:50 -05:00
Kyle Johnson 40f12b7267 Remove legacy running check in header.php 2015-02-11 09:26:43 -05:00
Kyle Johnson f7798797a0 Fix layout of Console view.
Per bootstrap, only .col- should be a child of .row
Also removed the sidebar in the console view, it is now part of
list mode in the console view
2015-02-11 08:59:58 -05:00
Kyle Johnson b6da855d72 Rework of the Console / Monitors view.
We now have two views - grid or list.  Grid view will be montage
and doesn't have any 'admin' functions.  List view has admin
functions: delete, edit, add, etc.

If there are no monitors, such as in a new install, the view is
replaced by an alert which states that there are no monitors, and
provides a link for adding a monitor.

 * http://i.imgur.com/LinFQsN.png
 * http://i.imgur.com/mwkOgzR.png
 * http://i.imgur.com/BrEjzYL.png
2015-02-10 09:58:34 -05:00
Kyle Johnson d5b8cd2f78 Surround ng-true-value and ng-false-value with ' 2015-02-02 19:16:01 -05:00
Kyle Johnson 52fd26cc5d Remove the footer from the options view 2015-02-02 19:09:27 -05:00
Kyle Johnson 8ba365b42f Display Options tabs vertically.
In the 'Options' view, show the tabs horizontally via bootstrap's
grid layout.
2015-02-02 15:33:40 -05:00
Kyle Johnson 32ca007f74 Fix bug: Frames button did not properly swap text 2015-01-27 11:26:01 -05:00
Kyle Johnson e89e63c5e4 Add frontend support for viewing an Event's Frames
Each Event has a 'Frames' button.  Clicking this changes
$scope.stream to false, hides the eventStream div, shows the
eventFrames div, and changes the text of the button to 'Stream'.

Each Frame is laid out in a box, with its associated image file
and details (delta, score, type, time).

The 'src' for each Frame's image was the difficult part.  The 'zpad'
filter is called for each Frame, so that we know how many 0's to pad
the Frame.FrameId with.

Finally if Frame.Type == Alarm, the box for that div is colored red.
2015-01-27 11:19:24 -05:00
Kyle Johnson 786009407c Add Angular filter for padding a number
This is needed because of the way Frames are stored on the
filesystem, such as 00051-capture.jpg, vs. how they're stored
in the database, such as 51
2015-01-27 11:15:10 -05:00
Kyle Johnson 8311951c86 Add Angular service for finding config by Name 2015-01-27 11:14:59 -05:00
Kyle Johnson 7565edfc69 API: Return Filesystem path to event within json payload 2015-01-27 11:12:32 -05:00
Kyle Johnson c486cd0741 Add API function to find Config by Name 2015-01-27 11:11:40 -05:00
Kyle Johnson 7a5ee71080 Use Monitor's WebColour in Host 'Disk Usage' graph 2015-01-26 17:22:57 -05:00
Kyle Johnson e4b1f8a64e Add API function for getting Event's path 2015-01-23 11:57:31 -05:00
Kyle Johnson 4e0e8664b1 Fix some tabbing in controllers.js 2015-01-21 17:26:46 -05:00
Kyle Johnson a8b56f37e0 Add frontend support to archive / unarchive Event 2015-01-21 17:25:56 -05:00
Kyle Johnson 5b9a27c5ca Add API function to archive / unarchive an Event 2015-01-21 17:24:55 -05:00
Kyle Johnson 932831ba6c Fix bug: Wrong event opened after clicking Delete 2015-01-21 11:07:29 -05:00
Kyle Johnson b36bbbe0e4 Decrement $scope.totalEvents after deleting event 2015-01-21 10:29:06 -05:00
Kyle Johnson 2f44a45bbc Add searching events by StartTime and MonitorId 2015-01-21 10:23:46 -05:00
Kyle Johnson d2ac0cac04 Get event URL based on whether there is a filter 2015-01-21 10:22:25 -05:00
Kyle Johnson 3847eba14d Add styling to .sidebar 2015-01-21 10:21:41 -05:00
Kyle Johnson f45479cb8b Add moment.js - required for datetimepicker 2015-01-21 10:21:14 -05:00
Kyle Johnson 4e57c4c28d Add datetimepicker 2015-01-21 10:20:25 -05:00
Kyle Johnson 0d6d531e8b Use the API to start and stop ZM 2015-01-17 12:25:33 -05:00
Kyle Johnson 7af0cadd67 Add API support for starting and stopping ZM 2015-01-17 12:23:58 -05:00
Kyle Johnson 432c3c9d82 Add States MVC to API 2015-01-17 11:18:22 -05:00
Kyle Johnson c238b0c10a Move a misplaced php bracket.
Was causing the page title to not be set.
2015-01-12 23:29:20 -05:00
Kyle Johnson 1cd7f50e1b Significantly cleaned up Bootstrap functions.php
Got rid of all unnecessary php and variables.
2015-01-12 23:24:50 -05:00
Kyle Johnson 0b0545823d Remove event from view (scope) after deleting it 2015-01-09 14:24:45 -05:00
Kyle Johnson 8279f71266 Rewrite of Log view to use dir-paginate 2015-01-08 16:06:13 -05:00
Kyle Johnson c42ad0ba13 Add support for deleting monitor in new ui
Deletes via the API.  Also attempts to stop any zma or zmc processes
for the given monitor before deleting it from the table.
2015-01-07 16:43:37 -05:00
Kyle Johnson 26c29afb38 Start a monitor after adding it via api 2015-01-07 14:50:57 -05:00
Kyle Johnson 45e450e988 Rename getEvent to get 2015-01-06 18:39:04 -05:00
Kyle Johnson 11b1344697 Allow playing back and deleting event from a modal 2015-01-06 18:36:55 -05:00
Kyle Johnson a29b551a64 Expand scope of EventsController to include sidebar 2015-01-06 18:19:57 -05:00
Kyle Johnson b904cfde58 Remove events.css and event.css 2015-01-05 15:44:49 -05:00
Kyle Johnson 501b762b81 Remove event.js and event.js.php. Recreating in angular 2015-01-05 15:42:09 -05:00
Kyle Johnson a1d9f25c75 Remove bad vim swap file 2015-01-05 15:41:33 -05:00
Kyle Johnson afefef3cc2 Only build filter if named params are set 2015-01-05 14:21:19 -05:00
Kyle Johnson 648252cf50 Allow filtering of events in index view 2015-01-05 14:08:09 -05:00
Kyle Johnson 040094e984 Add initial API Filter component
The purpose of this is to turn ZoneMinder filter queries into usable
CakePHP find() conditions.
As example would be turning
api/events/index/MonitorId:7/MonitorId:8/StartTime >=:2015-01-05.json
into an array like this:
'conditions' => array(
	'MonitorId' => (7, 8),
	'StartTime >=' => '2015-01-05'
)
2015-01-05 14:02:42 -05:00
Kyle Johnson 9221675d2e Upgrade Angular from 1.3.2 to 1.3.8 2015-01-05 12:03:22 -05:00
Kyle Johnson c945b23dae Log which event a frame could not be found for 2015-01-01 11:33:12 -05:00
Kyle Johnson da495c65ac Add a link to replay each event in the Events list 2014-12-29 12:24:27 -05:00
Kyle Johnson 96551c98cf Use pagination directive in Events view
Pagination is now handled via the pagination directive with
asynchronous data.  The server returns a subset of the total events.
The directive looks at the 'limit' and 'count' fields to determine
how many pages to generate
2014-12-29 12:19:30 -05:00
Kyle Johnson 07e04ea9ff Load pagination directive into the angular app 2014-12-29 12:15:51 -05:00
Kyle Johnson 4b029fc2ae Remove page querystring from Events link in header 2014-12-29 12:13:13 -05:00
Kyle Johnson ad8bbea2bc Add pagination directive to angular frontend
Big thanks to @michaelbromley for his work on this.  Source can
be be found at https://github.com/michaelbromley/angularUtils/tree/master/src/directives/pagination
2014-12-29 12:11:53 -05:00
Kyle Johnson a2cd6e1434 Add pagination support to Events in the API
/api/events.json now accepts the ?page querystring, e.g.
/api/events.json?page=2 or /api/events.json
2014-12-29 12:10:05 -05:00
Kyle Johnson a7d32a2cd7 Default to Low bandwidth in API if not set 2014-12-25 23:47:44 -05:00
Kyle Johnson a71e291331 Add footer to events view 2014-12-23 22:43:42 -05:00
Kyle Johnson 0c38102951 First stab at Events view via angular and API 2014-12-23 22:38:54 -05:00
Kyle Johnson 930b94be40 Create a thumbnail for each event in index view 2014-12-23 22:11:24 -05:00
Kyle Johnson 1146e42c0f Add createThumbnail function to the API 2014-12-23 22:10:52 -05:00
Kyle Johnson 6718559be5 Set Frame model to not be recursive by default 2014-12-23 22:05:23 -05:00
Kyle Johnson 39501f4f52 Add angular function to show length of event 2014-12-23 22:04:23 -05:00
Kyle Johnson 5598cce260 Add getImageSrc function to the API via component 2014-12-23 17:42:44 -05:00
Kyle Johnson ef99e30a33 Add reScale and deScale components to API 2014-12-23 11:22:34 -05:00
Kyle Johnson e61b19b4d8 Fix bug where only Remote tab would display 2014-12-21 21:54:27 -05:00
Kyle Johnson 9e417730d2 Change Monitor input type from number to text
Angular seems to have a bug where when an input is type="number",
assiging a value to it via ng-model produces an error.
2014-12-21 21:47:04 -05:00
Kyle Johnson 0436b099d0 Use monitor save function from Factory, not controller 2014-12-21 21:45:44 -05:00
Kyle Johnson 1fadbff72d Add support for editing an existing monitor
Saving and editing of monitors now works.  Tested only with
Type = Remote.

There is a bug where when editing a monitor, Orientation is not
set properly.  Due to number vs. string and mysql enum.
0 != '0'
2014-12-21 21:44:18 -05:00
Kyle Johnson 44a44580b7 Add Angular factory to get and save Monitors 2014-12-21 21:42:54 -05:00
Kyle Johnson de221f4d57 Remove the old console.js file 2014-12-19 10:25:34 -05:00
Kyle Johnson 09ce6e01df Set monitor Method to simple by default 2014-12-19 10:17:25 -05:00
Kyle Johnson d79286e101 Fix bug where Remote tab was not displayed 2014-12-19 10:15:41 -05:00
Kyle Johnson 227f32a6a9 Fix bug where monitor source type was not set 2014-12-19 10:13:52 -05:00
Kyle Johnson 2e96b141e5 Major rehaul of Monitor view in Angular JS
You can now add monitors via angularjs, with the api as the
backend.
2014-12-17 16:08:35 -05:00
Kyle Johnson d5c8de6cb7 Set each input's ng-model for remote monitor type 2014-12-16 21:05:07 -05:00
Kyle Johnson 6d921a2a1a Moved curl, ffmpeg, vlc and file into their own files 2014-12-16 20:55:21 -05:00
Kyle Johnson de5106d90c Moved 'Remote' monitor type into its own file 2014-12-16 20:54:42 -05:00
Kyle Johnson 6764211ebd Add initial MonitorController 2014-12-16 17:11:28 -05:00
Kyle Johnson f770382268 Move FPS options to bottom of General tab 2014-12-16 17:11:02 -05:00
Kyle Johnson f9519d963c Fix ng-model names in General tab
As ng-model is namespaced into the MonitorController,
it is safe to name the variables 'Name' instead of
newMonitor[Name] as before
2014-12-16 17:10:02 -05:00
Kyle Johnson d662bf41e9 First pass at formatting Misc tab 2014-12-16 17:07:19 -05:00
Kyle Johnson 2f254eefef Split 'Local' and 'Remote' tabs into their own files 2014-12-16 17:06:54 -05:00
Kyle Johnson 00427c2e41 Fix indenting and missing </div> in monitor.php 2014-12-16 17:04:02 -05:00
Kyle Johnson 735c14ea2d Replace 'name' with 'ng-model' in General monitor tab 2014-12-16 14:18:54 -05:00
Kyle Johnson 21f29cfa29 Open the General monitor tab by default 2014-12-16 14:04:30 -05:00
Kyle Johnson d76e9e5f5d Initial work on cleaning up monitor view.
Starting by splitting each 'tab' out into their own php
file, and then including it.  Easier to manage.  Following up by
removing tables and replacing with a responsive form layout.
Also working on removing PHP dependencies and using the UI instead.
2014-12-13 23:15:31 -05:00
Kyle Johnson 030f6af057 Initial angular view for Logs 2014-12-01 16:16:30 +00:00
Kyle Johnson 904b946bfb Initial Logs controller 2014-12-01 16:15:42 +00:00
Kyle Johnson 87e1133506 Initial Log factory for returning log entires 2014-12-01 16:15:12 +00:00
Kyle Johnson f213657c0e Add cakephp route for logs 2014-12-01 16:14:23 +00:00
Kyle Johnson 9a041efbf0 Remove log.js 2014-12-01 16:14:02 +00:00
Kyle Johnson dd9188b7cd Remove Logs views, ouput log json via _serialize 2014-12-01 16:13:08 +00:00
Kyle Johnson 682190c186 Redo console HTML to be organized by flexbox, not bootstrap grid
Utilizing css3 flexbox, I'm able to easily lay out all monitors
with equal width and height, while not having to worry about parent
.row <div>'s
2014-11-28 16:56:22 +00:00
Kyle Johnson 8b7733cd37 Remove mootools, overlay and logger from bootstrap
Everything these files do is being replaced by AngularJS
2014-11-28 16:55:12 +00:00
Kyle Johnson e56248ab88 Remove copywrite from console view header 2014-11-28 00:27:55 +00:00
Kyle Johnson cdcf29964b Remove rest of unused php from console view. 2014-11-28 00:27:04 +00:00
Kyle Johnson ff65a701eb Display stills of each monitor, set per-monitor alerts
This commit displays a still of each monitor at page load time.
The panel surrounding the monitor is context sensitive - if zmc or
zma is not running, the panel is red (well, pink).

Also if either zmc or zma are not running, we add an icon in the
panel's header, explaining what is wrong.
2014-11-28 00:25:15 +00:00
Kyle Johnson addc985656 Load ui.bootstrap angular module 2014-11-28 00:20:04 +00:00
Kyle Johnson 1d7d53d166 Add ui-bootstrap 0.12 2014-11-27 14:50:31 +00:00
Kyle Johnson b3d1811c43 Add getMonitors factory to angular 2014-11-27 14:35:00 +00:00