Commit Graph

1739 Commits

Author SHA1 Message Date
Kyle Johnson 498b281082 Use full path to events_search.thml 2015-02-11 15:23:52 -05:00
Kyle Johnson 2bb1394484 Migrate from ngRoute to ui-router 2015-02-11 15:22:39 -05:00
Kyle Johnson 081db1d160 Move options.php to options.html 2015-02-11 15:21:07 -05:00
Kyle Johnson 201711866e Use ng-include instead of php include() 2015-02-11 15:20:50 -05:00
Kyle Johnson 959a9a58ce Move events.php to events.html 2015-02-11 15:18:30 -05:00
Kyle Johnson 8ca9d3f759 Use ng-include instead of php include() 2015-02-11 15:18:13 -05:00
Kyle Johnson 71ecfdcb1b Clean up more paths 2015-02-11 14:34:10 -05:00
Kyle Johnson 9cf8262eca Clean up paths in index.html 2015-02-11 14:24:46 -05:00
Kyle Johnson d500c60e91 Move bootstrap to the web root 2015-02-11 14:20:10 -05:00
Kyle Johnson d269309c42 Remove makefiles from bootstrap skin 2015-02-11 14:16:18 -05:00
Kyle Johnson 340da70ab1 Removing most legacy ui files from bootstrap skin 2015-02-11 14:11:47 -05:00
Kyle Johnson 5cf9677680 Initial work at moving to single page app (no php) 2015-02-11 14:09:41 -05:00
Kyle Johnson 9a9f747b67 Move console.php to console.html 2015-02-11 13:49:16 -05:00
Kyle Johnson 4fd9dee168 Remove php from console.php 2015-02-11 13:48:59 -05:00
Kyle Johnson 220302b433 Rename header.php to header.html 2015-02-11 13:47:44 -05:00
Kyle Johnson 2187e9a99c Remove php from header.php 2015-02-11 13:47:36 -05:00
Kyle Johnson 23b50f044e Add support for changing monitor function in list view 2015-02-11 13:45:07 -05:00
Kyle Johnson 2d418f9205 Rename event.php to event.html 2015-02-11 13:19:53 -05:00
Kyle Johnson b64b895d31 Use ngInclude instead of php include() in event view 2015-02-11 13:17:45 -05:00
Kyle Johnson 8f752f2b20 Add row / column layout options to console grid 2015-02-11 11:32:40 -05:00
Kyle Johnson cc0fecf252 Remove the unused getConsoleEvents function 2015-02-11 11:32:19 -05:00
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