Commit 4bb02bb84245f3a8bad59f8140508dc369509b3a
1 parent
feacde5ffa
Exists in
master
new integration with apis
Showing
80 changed files
with
3898 additions
and
1570 deletions
Show diff stats
app/css/custom.css
... | ... | @@ -69,4 +69,90 @@ table th, td{ |
69 | 69 | background-color: #ff9900 !important; |
70 | 70 | color: #fff !important; |
71 | 71 | border: 1px solid #ff9900 !important; |
72 | -} | |
73 | 72 | \ No newline at end of file |
73 | +} | |
74 | +.pull-right-color{ | |
75 | + background-image: linear-gradient(to bottom, #1c84c6 0%, #1c84c6 100%); | |
76 | +} | |
77 | +.pull-right-setup{ | |
78 | + margin-bottom: 10px; | |
79 | + background-image: linear-gradient(to bottom, #1c84c6 0%, #1c84c6 100%); | |
80 | +} | |
81 | +.Airport{ | |
82 | + padding-top: 5px; | |
83 | +} | |
84 | +.src-image{ | |
85 | + width: 50px; | |
86 | + height: 50px; | |
87 | +} | |
88 | +.Accept{ | |
89 | + padding-top: 25px; | |
90 | +} | |
91 | +.dis{ | |
92 | + float: left; | |
93 | + margin-right:100px; | |
94 | +} | |
95 | +/*.email-password{ | |
96 | + width: 40px; | |
97 | + height: 24px; | |
98 | +}*/ | |
99 | +.email-password-icon{ | |
100 | + width: 10px; | |
101 | + height: 10px; | |
102 | +} | |
103 | +@media( max-width: 768px;){ | |
104 | +.btn{ | |
105 | +font-size: 10px !important; | |
106 | +} | |
107 | +.dis{ | |
108 | + float: none; | |
109 | + margin-right: 0px; | |
110 | +} | |
111 | +} | |
112 | +.Search-tabs{ | |
113 | + border-bottom: 0px solid #ddd; */ | |
114 | +} | |
115 | + | |
116 | +.customer-table table{ | |
117 | + width: 100%; | |
118 | +} | |
119 | +.customer-table input{ | |
120 | + border-radius: 0; | |
121 | + box-shadow: none; | |
122 | + border: 1px solid #e4e3e3; | |
123 | + padding: 0px; | |
124 | + font-size: 10px; | |
125 | + display: -webkit-inline-box; | |
126 | + display: inline-box; | |
127 | + height: 31px; | |
128 | +} | |
129 | +.customer-table select{ | |
130 | + border-radius: 0; | |
131 | + box-shadow: none; | |
132 | + border: 1px solid #e4e3e3; | |
133 | + padding: 0px; | |
134 | + font-size: 10px; | |
135 | + height: 31px; | |
136 | + display: -webkit-inline-box; | |
137 | + display: inline-box; | |
138 | +} | |
139 | +.customer-table th > label{ | |
140 | + font-weight: bold; | |
141 | + padding: 10px 5px 2px 5px; | |
142 | + margin-bottom: 0; | |
143 | +} | |
144 | +.customer-table td{ | |
145 | + padding: 5px !important; | |
146 | + height: auto !important; | |
147 | + vertical-align: middle !important; | |
148 | +} | |
149 | +.customer-table td > select{ | |
150 | + height: 22px !important; | |
151 | +} | |
152 | +.customer-table td > button{ | |
153 | + font-size: 10px; | |
154 | +} | |
155 | + | |
156 | +/*.new-input-label{ | |
157 | + margin-bottom: 0; | |
158 | + line-height: 34px; | |
159 | +}*/ | |
74 | 160 | \ No newline at end of file | ... | ... |
app/css/main.css
app/img/images.jpg
6.67 KB
app/index.html
... | ... | @@ -14,6 +14,9 @@ |
14 | 14 | <link rel="stylesheet" href="bower_components/fullcalendar/dist/fullcalendar.print.min.css"/> |
15 | 15 | <link rel="stylesheet" href="bower_components/toastr/toastr.min.css"/> |
16 | 16 | <link rel="stylesheet" href="bower_components/angular-bootstrap/ui-bootstrap-csp.css"/> |
17 | + <link href="bower_components/jqGrid/css/ui.jqgrid.css" rel="stylesheet"> | |
18 | + <link href="bower_components/angular-xeditable/dist/css/xeditable.css" rel="stylesheet"> | |
19 | + | |
17 | 20 | |
18 | 21 | <link rel="stylesheet" href="css/main.css"/> |
19 | 22 | <link rel="stylesheet" href="css/base-admin-3.css"/> |
... | ... | @@ -33,7 +36,7 @@ |
33 | 36 | <link href="js/plugins/msgbox/jquery.msgbox.css" rel="stylesheet"> |
34 | 37 | <link href="css/pages/pricing.css" rel="stylesheet"> |
35 | 38 | <link href="css/pages/reports.css" rel="stylesheet"> |
36 | - | |
39 | + | |
37 | 40 | |
38 | 41 | |
39 | 42 | </head> |
... | ... | @@ -54,18 +57,27 @@ |
54 | 57 | |
55 | 58 | <script src="bower_components/angular/angular.min.js"></script> |
56 | 59 | <script src="bower_components/angular-route/angular-route.js"></script> |
60 | + <script src="bower_components/angular-cookies/angular-cookies.min.js"></script> | |
61 | + <script src="bower_components/angular-resource/angular-resource.min.js"></script> | |
57 | 62 | <script src="bower_components/angular-animate/angular-animate.js"></script> |
58 | 63 | <script src="bower_components/bootstrap/dist/js/bootstrap.js"></script> |
59 | 64 | <script src="bower_components/bootstrap-toggle/js/bootstrap-toggle.min.js"></script> |
60 | 65 | <script src="bower_components/angular-ui-router/release/angular-ui-router.min.js"></script> |
61 | 66 | <script src='bower_components/moment/min/moment.min.js'></script> |
62 | 67 | <script src="bower_components/fullcalendar/dist/fullcalendar.min.js"></script> |
63 | - | |
64 | 68 | <script src='bower_components/toastr/toastr.min.js'></script> |
65 | 69 | <script src="bower_components/angular-bootstrap/ui-bootstrap.min.js"></script> |
66 | 70 | <script src="bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js"></script> |
71 | + <script src="bower_components/jqGrid/js/i18n/grid.locale-en.js"></script> | |
72 | + <script src="bower_components/jqGrid/js/jquery.jqGrid.min.js"></script> | |
73 | + <script src="bower_components/angular-xeditable/dist/js/xeditable.js"></script> | |
67 | 74 | |
68 | 75 | |
76 | + <!-- | |
77 | + <script src="scripts/inspinia.js"></script> | |
78 | + <script src="plugins/iCheck/icheck.min.js"></script> | |
79 | + --> | |
80 | + | |
69 | 81 | <!-- <script src="./js/Application.js"></script> |
70 | 82 | <script src="js/charts/area.js"></script> |
71 | 83 | <script src="js/charts/donut.js"></script> |
... | ... | @@ -75,23 +87,17 @@ |
75 | 87 | <script src="js/charts/line.js"></script> --> |
76 | 88 | <script src="js/demo/faq.js"></script> |
77 | 89 | <script src="js/plugins/faq/faq.js"></script> |
78 | - | |
79 | 90 | <script src="js/demo/gallery.js"></script> |
80 | 91 | <script src="js/demo/sliders.js"></script> |
81 | 92 | <script src="js/plugins/msgGrowl/js/msgGrowl.js"></script> |
82 | - | |
83 | 93 | <script src="js/demo/notifications.js"></script> |
84 | - | |
85 | - | |
86 | - | |
87 | 94 | <script src="http://cdn.ckeditor.com/4.6.1/standard-all/ckeditor.js"></script> |
88 | 95 | <script src="https://code.highcharts.com/maps/highmaps.js"></script> |
89 | 96 | <script src="https://code.highcharts.com/maps/modules/data.js"></script> |
90 | 97 | <script src="https://code.highcharts.com/mapdata/countries/us/us-all.js"></script> |
91 | - | |
92 | - | |
93 | - | |
98 | + <!-- Controllers --> | |
94 | 99 | <script src="js/app.js"></script> |
100 | + <script src="js/app.constant.js"></script> | |
95 | 101 | <script src="partials/login/login.controller.js"></script> |
96 | 102 | <script src="partials/customers/customers.controller.js"></script> |
97 | 103 | <script src="partials/analytics/analytics.controller.js"></script> |
... | ... | @@ -112,7 +118,58 @@ |
112 | 118 | <script src="partials/viewCompany/viewCompany.controller.js"></script> |
113 | 119 | <script src="partials/widgetTemplate/widgetTemplate.controller.js"></script> |
114 | 120 | <script src="partials/dashboard/dashboard.controller.js"></script> |
121 | + <script src="partials/AirList/AirList.controller.js"></script> | |
122 | + <script src="partials/fuelOrders/fuelOrders.controller.js"></script> | |
123 | + <script src="partials/DispatchFuel/DispatchFuel.controller.js"></script> | |
124 | + <script src="partials/searchDispatchFuel/searchDispatchFuel.controller.js"></script> | |
125 | + <script src="partials/NewCompany/NewCompany.controller.js"></script> | |
126 | + <script src="partials/Accept/Accept.controller.js"></script> | |
127 | + <!-- <script src="partials/AircraftList/AircraftList.controller.js"></script> --> | |
128 | + <script src="partials/ContactView/ContactView.controller.js"></script> | |
129 | + <script src="partials/FuelVendors/FuelVendors.controller.js"></script> | |
130 | + <script src="partials/delselected/delselected.controller.js"></script> | |
131 | + <script src="partials/pricingcontact/pricingcontact.controller.js"></script> | |
132 | + <script src="partials/AntiochFlightDepartment/AntiochFlightDepartment.controller.js"></script> | |
133 | + | |
115 | 134 | <script src="partials/main/main.controller.js"></script> |
116 | 135 | <div ui-view></div> |
136 | + <!-- End controllers --> | |
137 | + | |
138 | + | |
139 | + <!-- services --> | |
140 | + <script src="partials/login/login.service.js"></script> | |
141 | + <script src="partials/customers/customers.service.js"></script> | |
142 | + <script src="partials/analytics/analytics.service.js"></script> | |
143 | + <script src="partials/account/account.service.js"></script> | |
144 | + <script src="partials/elements/elements.service.js"></script> | |
145 | + <script src="partials/error/error.service.js"></script> | |
146 | + <script src="partials/faq/faq.service.js"></script> | |
147 | + <script src="partials/forms/forms.service.js"></script> | |
148 | + <script src="partials/fuelManager/fuelManager.service.js"></script> | |
149 | + <script src="partials/gallery/gallery.service.js"></script> | |
150 | + <script src="partials/jqueryui/jqueryui.service.js"></script> | |
151 | + <script src="partials/popups/popups.service.js"></script> | |
152 | + <script src="partials/pricing/pricing.service.js"></script> | |
153 | + <script src="partials/reports/reports.service.js"></script> | |
154 | + <script src="partials/scheduler/scheduler.service.js"></script> | |
155 | + <script src="partials/signup/signup.service.js"></script> | |
156 | + <script src="partials/updateFuelManager/updateFuelManager.service.js"></script> | |
157 | + <script src="partials/viewCompany/viewCompany.service.js"></script> | |
158 | + <script src="partials/widgetTemplate/widgetTemplate.service.js"></script> | |
159 | + <script src="partials/dashboard/dashboard.service.js"></script> | |
160 | + <script src="partials/AirList/AirList.service.js"></script> | |
161 | + <script src="partials/fuelOrders/fuelOrders.service.js"></script> | |
162 | + <script src="partials/DispatchFuel/DispatchFuel.service.js"></script> | |
163 | + <script src="partials/searchDispatchFuel/searchDispatchFuel.service.js"></script> | |
164 | + <script src="partials/NewCompany/NewCompany.service.js"></script> | |
165 | + <script src="partials/Accept/Accept.service.js"></script> | |
166 | + <!-- <script src="partials/AircraftList/AircraftList.controller.js"></script> --> | |
167 | + <script src="partials/ContactView/ContactView.service.js"></script> | |
168 | + <script src="partials/FuelVendors/FuelVendors.service.js"></script> | |
169 | + <script src="partials/delselected/delselected.service.js"></script> | |
170 | + <script src="partials/pricingcontact/pricingcontact.service.js"></script> | |
171 | + <script src="partials/AntiochFlightDepartment/AntiochFlightDepartment.service.js"></script> | |
172 | + | |
173 | + <script src="partials/main/main.service.js"></script> | |
117 | 174 | </body> |
118 | 175 | </html> |
119 | 176 | \ No newline at end of file | ... | ... |
app/js/angular-cookies.js
... | ... | @@ -1,320 +0,0 @@ |
1 | -/** | |
2 | - * @license AngularJS v1.4.0 | |
3 | - * (c) 2010-2015 Google, Inc. http://angularjs.org | |
4 | - * License: MIT | |
5 | - */ | |
6 | -(function(window, angular, undefined) {'use strict'; | |
7 | - | |
8 | -/** | |
9 | - * @ngdoc module | |
10 | - * @name ngCookies | |
11 | - * @description | |
12 | - * | |
13 | - * # ngCookies | |
14 | - * | |
15 | - * The `ngCookies` module provides a convenient wrapper for reading and writing browser cookies. | |
16 | - * | |
17 | - * | |
18 | - * <div doc-module-components="ngCookies"></div> | |
19 | - * | |
20 | - * See {@link ngCookies.$cookies `$cookies`} and | |
21 | - * {@link ngCookies.$cookieStore `$cookieStore`} for usage. | |
22 | - */ | |
23 | - | |
24 | - | |
25 | -angular.module('ngCookies', ['ng']). | |
26 | - /** | |
27 | - * @ngdoc provider | |
28 | - * @name $cookiesProvider | |
29 | - * @description | |
30 | - * Use `$cookiesProvider` to change the default behavior of the {@link ngCookies.$cookies $cookies} service. | |
31 | - * */ | |
32 | - provider('$cookies', [function $CookiesProvider() { | |
33 | - /** | |
34 | - * @ngdoc property | |
35 | - * @name $cookiesProvider#defaults | |
36 | - * @description | |
37 | - * | |
38 | - * Object containing default options to pass when setting cookies. | |
39 | - * | |
40 | - * The object may have following properties: | |
41 | - * | |
42 | - * - **path** - `{string}` - The cookie will be available only for this path and its | |
43 | - * sub-paths. By default, this would be the URL that appears in your base tag. | |
44 | - * - **domain** - `{string}` - The cookie will be available only for this domain and | |
45 | - * its sub-domains. For obvious security reasons the user agent will not accept the | |
46 | - * cookie if the current domain is not a sub domain or equals to the requested domain. | |
47 | - * - **expires** - `{string|Date}` - String of the form "Wdy, DD Mon YYYY HH:MM:SS GMT" | |
48 | - * or a Date object indicating the exact date/time this cookie will expire. | |
49 | - * - **secure** - `{boolean}` - The cookie will be available only in secured connection. | |
50 | - * | |
51 | - * Note: by default the address that appears in your <base> tag will be used as path. | |
52 | - * This is import so that cookies will be visible for all routes in case html5mode is enabled | |
53 | - * | |
54 | - **/ | |
55 | - var defaults = this.defaults = {}; | |
56 | - | |
57 | - function calcOptions(options) { | |
58 | - return options ? angular.extend({}, defaults, options) : defaults; | |
59 | - } | |
60 | - | |
61 | - /** | |
62 | - * @ngdoc service | |
63 | - * @name $cookies | |
64 | - * | |
65 | - * @description | |
66 | - * Provides read/write access to browser's cookies. | |
67 | - * | |
68 | - * BREAKING CHANGE: `$cookies` no longer exposes properties that represent the | |
69 | - * current browser cookie values. Now you must use the get/put/remove/etc. methods | |
70 | - * as described below. | |
71 | - * | |
72 | - * Requires the {@link ngCookies `ngCookies`} module to be installed. | |
73 | - * | |
74 | - * @example | |
75 | - * | |
76 | - * ```js | |
77 | - * angular.module('cookiesExample', ['ngCookies']) | |
78 | - * .controller('ExampleController', ['$cookies', function($cookies) { | |
79 | - * // Retrieving a cookie | |
80 | - * var favoriteCookie = $cookies.get('myFavorite'); | |
81 | - * // Setting a cookie | |
82 | - * $cookies.put('myFavorite', 'oatmeal'); | |
83 | - * }]); | |
84 | - * ``` | |
85 | - */ | |
86 | - this.$get = ['$$cookieReader', '$$cookieWriter', function($$cookieReader, $$cookieWriter) { | |
87 | - return { | |
88 | - /** | |
89 | - * @ngdoc method | |
90 | - * @name $cookies#get | |
91 | - * | |
92 | - * @description | |
93 | - * Returns the value of given cookie key | |
94 | - * | |
95 | - * @param {string} key Id to use for lookup. | |
96 | - * @returns {string} Raw cookie value. | |
97 | - */ | |
98 | - get: function(key) { | |
99 | - return $$cookieReader()[key]; | |
100 | - }, | |
101 | - | |
102 | - /** | |
103 | - * @ngdoc method | |
104 | - * @name $cookies#getObject | |
105 | - * | |
106 | - * @description | |
107 | - * Returns the deserialized value of given cookie key | |
108 | - * | |
109 | - * @param {string} key Id to use for lookup. | |
110 | - * @returns {Object} Deserialized cookie value. | |
111 | - */ | |
112 | - getObject: function(key) { | |
113 | - var value = this.get(key); | |
114 | - return value ? angular.fromJson(value) : value; | |
115 | - }, | |
116 | - | |
117 | - /** | |
118 | - * @ngdoc method | |
119 | - * @name $cookies#getAll | |
120 | - * | |
121 | - * @description | |
122 | - * Returns a key value object with all the cookies | |
123 | - * | |
124 | - * @returns {Object} All cookies | |
125 | - */ | |
126 | - getAll: function() { | |
127 | - return $$cookieReader(); | |
128 | - }, | |
129 | - | |
130 | - /** | |
131 | - * @ngdoc method | |
132 | - * @name $cookies#put | |
133 | - * | |
134 | - * @description | |
135 | - * Sets a value for given cookie key | |
136 | - * | |
137 | - * @param {string} key Id for the `value`. | |
138 | - * @param {string} value Raw value to be stored. | |
139 | - * @param {Object=} options Options object. | |
140 | - * See {@link ngCookies.$cookiesProvider#defaults $cookiesProvider.defaults} | |
141 | - */ | |
142 | - put: function(key, value, options) { | |
143 | - $$cookieWriter(key, value, calcOptions(options)); | |
144 | - }, | |
145 | - | |
146 | - /** | |
147 | - * @ngdoc method | |
148 | - * @name $cookies#putObject | |
149 | - * | |
150 | - * @description | |
151 | - * Serializes and sets a value for given cookie key | |
152 | - * | |
153 | - * @param {string} key Id for the `value`. | |
154 | - * @param {Object} value Value to be stored. | |
155 | - * @param {Object=} options Options object. | |
156 | - * See {@link ngCookies.$cookiesProvider#defaults $cookiesProvider.defaults} | |
157 | - */ | |
158 | - putObject: function(key, value, options) { | |
159 | - this.put(key, angular.toJson(value), options); | |
160 | - }, | |
161 | - | |
162 | - /** | |
163 | - * @ngdoc method | |
164 | - * @name $cookies#remove | |
165 | - * | |
166 | - * @description | |
167 | - * Remove given cookie | |
168 | - * | |
169 | - * @param {string} key Id of the key-value pair to delete. | |
170 | - * @param {Object=} options Options object. | |
171 | - * See {@link ngCookies.$cookiesProvider#defaults $cookiesProvider.defaults} | |
172 | - */ | |
173 | - remove: function(key, options) { | |
174 | - $$cookieWriter(key, undefined, calcOptions(options)); | |
175 | - } | |
176 | - }; | |
177 | - }]; | |
178 | - }]); | |
179 | - | |
180 | -angular.module('ngCookies'). | |
181 | -/** | |
182 | - * @ngdoc service | |
183 | - * @name $cookieStore | |
184 | - * @deprecated | |
185 | - * @requires $cookies | |
186 | - * | |
187 | - * @description | |
188 | - * Provides a key-value (string-object) storage, that is backed by session cookies. | |
189 | - * Objects put or retrieved from this storage are automatically serialized or | |
190 | - * deserialized by angular's toJson/fromJson. | |
191 | - * | |
192 | - * Requires the {@link ngCookies `ngCookies`} module to be installed. | |
193 | - * | |
194 | - * <div class="alert alert-danger"> | |
195 | - * **Note:** The $cookieStore service is deprecated. | |
196 | - * Please use the {@link ngCookies.$cookies `$cookies`} service instead. | |
197 | - * </div> | |
198 | - * | |
199 | - * @example | |
200 | - * | |
201 | - * ```js | |
202 | - * angular.module('cookieStoreExample', ['ngCookies']) | |
203 | - * .controller('ExampleController', ['$cookieStore', function($cookieStore) { | |
204 | - * // Put cookie | |
205 | - * $cookieStore.put('myFavorite','oatmeal'); | |
206 | - * // Get cookie | |
207 | - * var favoriteCookie = $cookieStore.get('myFavorite'); | |
208 | - * // Removing a cookie | |
209 | - * $cookieStore.remove('myFavorite'); | |
210 | - * }]); | |
211 | - * ``` | |
212 | - */ | |
213 | - factory('$cookieStore', ['$cookies', function($cookies) { | |
214 | - | |
215 | - return { | |
216 | - /** | |
217 | - * @ngdoc method | |
218 | - * @name $cookieStore#get | |
219 | - * | |
220 | - * @description | |
221 | - * Returns the value of given cookie key | |
222 | - * | |
223 | - * @param {string} key Id to use for lookup. | |
224 | - * @returns {Object} Deserialized cookie value, undefined if the cookie does not exist. | |
225 | - */ | |
226 | - get: function(key) { | |
227 | - return $cookies.getObject(key); | |
228 | - }, | |
229 | - | |
230 | - /** | |
231 | - * @ngdoc method | |
232 | - * @name $cookieStore#put | |
233 | - * | |
234 | - * @description | |
235 | - * Sets a value for given cookie key | |
236 | - * | |
237 | - * @param {string} key Id for the `value`. | |
238 | - * @param {Object} value Value to be stored. | |
239 | - */ | |
240 | - put: function(key, value) { | |
241 | - $cookies.putObject(key, value); | |
242 | - }, | |
243 | - | |
244 | - /** | |
245 | - * @ngdoc method | |
246 | - * @name $cookieStore#remove | |
247 | - * | |
248 | - * @description | |
249 | - * Remove given cookie | |
250 | - * | |
251 | - * @param {string} key Id of the key-value pair to delete. | |
252 | - */ | |
253 | - remove: function(key) { | |
254 | - $cookies.remove(key); | |
255 | - } | |
256 | - }; | |
257 | - | |
258 | - }]); | |
259 | - | |
260 | -/** | |
261 | - * @name $$cookieWriter | |
262 | - * @requires $document | |
263 | - * | |
264 | - * @description | |
265 | - * This is a private service for writing cookies | |
266 | - * | |
267 | - * @param {string} name Cookie name | |
268 | - * @param {string=} value Cookie value (if undefined, cookie will be deleted) | |
269 | - * @param {Object=} options Object with options that need to be stored for the cookie. | |
270 | - */ | |
271 | -function $$CookieWriter($document, $log, $browser) { | |
272 | - var cookiePath = $browser.baseHref(); | |
273 | - var rawDocument = $document[0]; | |
274 | - | |
275 | - function buildCookieString(name, value, options) { | |
276 | - var path, expires; | |
277 | - options = options || {}; | |
278 | - expires = options.expires; | |
279 | - path = angular.isDefined(options.path) ? options.path : cookiePath; | |
280 | - if (value === undefined) { | |
281 | - expires = 'Thu, 01 Jan 1970 00:00:00 GMT'; | |
282 | - value = ''; | |
283 | - } | |
284 | - if (angular.isString(expires)) { | |
285 | - expires = new Date(expires); | |
286 | - } | |
287 | - | |
288 | - var str = encodeURIComponent(name) + '=' + encodeURIComponent(value); | |
289 | - str += path ? ';path=' + path : ''; | |
290 | - str += options.domain ? ';domain=' + options.domain : ''; | |
291 | - str += expires ? ';expires=' + expires.toUTCString() : ''; | |
292 | - str += options.secure ? ';secure' : ''; | |
293 | - | |
294 | - // per http://www.ietf.org/rfc/rfc2109.txt browser must allow at minimum: | |
295 | - // - 300 cookies | |
296 | - // - 20 cookies per unique domain | |
297 | - // - 4096 bytes per cookie | |
298 | - var cookieLength = str.length + 1; | |
299 | - if (cookieLength > 4096) { | |
300 | - $log.warn("Cookie '" + name + | |
301 | - "' possibly not set or overflowed because it was too large (" + | |
302 | - cookieLength + " > 4096 bytes)!"); | |
303 | - } | |
304 | - | |
305 | - return str; | |
306 | - } | |
307 | - | |
308 | - return function(name, value, options) { | |
309 | - rawDocument.cookie = buildCookieString(name, value, options); | |
310 | - }; | |
311 | -} | |
312 | - | |
313 | -$$CookieWriter.$inject = ['$document', '$log', '$browser']; | |
314 | - | |
315 | -angular.module('ngCookies').provider('$$cookieWriter', function $$CookieWriterProvider() { | |
316 | - this.$get = $$CookieWriter; | |
317 | -}); | |
318 | - | |
319 | - | |
320 | -})(window, window.angular); |
app/js/angular-loader.js
... | ... | @@ -1,429 +0,0 @@ |
1 | -/** | |
2 | - * @license AngularJS v1.4.0 | |
3 | - * (c) 2010-2015 Google, Inc. http://angularjs.org | |
4 | - * License: MIT | |
5 | - */ | |
6 | - | |
7 | -(function() {'use strict'; | |
8 | - | |
9 | -/** | |
10 | - * @description | |
11 | - * | |
12 | - * This object provides a utility for producing rich Error messages within | |
13 | - * Angular. It can be called as follows: | |
14 | - * | |
15 | - * var exampleMinErr = minErr('example'); | |
16 | - * throw exampleMinErr('one', 'This {0} is {1}', foo, bar); | |
17 | - * | |
18 | - * The above creates an instance of minErr in the example namespace. The | |
19 | - * resulting error will have a namespaced error code of example.one. The | |
20 | - * resulting error will replace {0} with the value of foo, and {1} with the | |
21 | - * value of bar. The object is not restricted in the number of arguments it can | |
22 | - * take. | |
23 | - * | |
24 | - * If fewer arguments are specified than necessary for interpolation, the extra | |
25 | - * interpolation markers will be preserved in the final string. | |
26 | - * | |
27 | - * Since data will be parsed statically during a build step, some restrictions | |
28 | - * are applied with respect to how minErr instances are created and called. | |
29 | - * Instances should have names of the form namespaceMinErr for a minErr created | |
30 | - * using minErr('namespace') . Error codes, namespaces and template strings | |
31 | - * should all be static strings, not variables or general expressions. | |
32 | - * | |
33 | - * @param {string} module The namespace to use for the new minErr instance. | |
34 | - * @param {function} ErrorConstructor Custom error constructor to be instantiated when returning | |
35 | - * error from returned function, for cases when a particular type of error is useful. | |
36 | - * @returns {function(code:string, template:string, ...templateArgs): Error} minErr instance | |
37 | - */ | |
38 | - | |
39 | -function minErr(module, ErrorConstructor) { | |
40 | - ErrorConstructor = ErrorConstructor || Error; | |
41 | - return function() { | |
42 | - var SKIP_INDEXES = 2; | |
43 | - | |
44 | - var templateArgs = arguments, | |
45 | - code = templateArgs[0], | |
46 | - message = '[' + (module ? module + ':' : '') + code + '] ', | |
47 | - template = templateArgs[1], | |
48 | - paramPrefix, i; | |
49 | - | |
50 | - message += template.replace(/\{\d+\}/g, function(match) { | |
51 | - var index = +match.slice(1, -1), | |
52 | - shiftedIndex = index + SKIP_INDEXES; | |
53 | - | |
54 | - if (shiftedIndex < templateArgs.length) { | |
55 | - return toDebugString(templateArgs[shiftedIndex]); | |
56 | - } | |
57 | - | |
58 | - return match; | |
59 | - }); | |
60 | - | |
61 | - message += '\nhttp://errors.angularjs.org/1.4.0/' + | |
62 | - (module ? module + '/' : '') + code; | |
63 | - | |
64 | - for (i = SKIP_INDEXES, paramPrefix = '?'; i < templateArgs.length; i++, paramPrefix = '&') { | |
65 | - message += paramPrefix + 'p' + (i - SKIP_INDEXES) + '=' + | |
66 | - encodeURIComponent(toDebugString(templateArgs[i])); | |
67 | - } | |
68 | - | |
69 | - return new ErrorConstructor(message); | |
70 | - }; | |
71 | -} | |
72 | - | |
73 | -/** | |
74 | - * @ngdoc type | |
75 | - * @name angular.Module | |
76 | - * @module ng | |
77 | - * @description | |
78 | - * | |
79 | - * Interface for configuring angular {@link angular.module modules}. | |
80 | - */ | |
81 | - | |
82 | -function setupModuleLoader(window) { | |
83 | - | |
84 | - var $injectorMinErr = minErr('$injector'); | |
85 | - var ngMinErr = minErr('ng'); | |
86 | - | |
87 | - function ensure(obj, name, factory) { | |
88 | - return obj[name] || (obj[name] = factory()); | |
89 | - } | |
90 | - | |
91 | - var angular = ensure(window, 'angular', Object); | |
92 | - | |
93 | - // We need to expose `angular.$$minErr` to modules such as `ngResource` that reference it during bootstrap | |
94 | - angular.$$minErr = angular.$$minErr || minErr; | |
95 | - | |
96 | - return ensure(angular, 'module', function() { | |
97 | - /** @type {Object.<string, angular.Module>} */ | |
98 | - var modules = {}; | |
99 | - | |
100 | - /** | |
101 | - * @ngdoc function | |
102 | - * @name angular.module | |
103 | - * @module ng | |
104 | - * @description | |
105 | - * | |
106 | - * The `angular.module` is a global place for creating, registering and retrieving Angular | |
107 | - * modules. | |
108 | - * All modules (angular core or 3rd party) that should be available to an application must be | |
109 | - * registered using this mechanism. | |
110 | - * | |
111 | - * When passed two or more arguments, a new module is created. If passed only one argument, an | |
112 | - * existing module (the name passed as the first argument to `module`) is retrieved. | |
113 | - * | |
114 | - * | |
115 | - * # Module | |
116 | - * | |
117 | - * A module is a collection of services, directives, controllers, filters, and configuration information. | |
118 | - * `angular.module` is used to configure the {@link auto.$injector $injector}. | |
119 | - * | |
120 | - * ```js | |
121 | - * // Create a new module | |
122 | - * var myModule = angular.module('myModule', []); | |
123 | - * | |
124 | - * // register a new service | |
125 | - * myModule.value('appName', 'MyCoolApp'); | |
126 | - * | |
127 | - * // configure existing services inside initialization blocks. | |
128 | - * myModule.config(['$locationProvider', function($locationProvider) { | |
129 | - * // Configure existing providers | |
130 | - * $locationProvider.hashPrefix('!'); | |
131 | - * }]); | |
132 | - * ``` | |
133 | - * | |
134 | - * Then you can create an injector and load your modules like this: | |
135 | - * | |
136 | - * ```js | |
137 | - * var injector = angular.injector(['ng', 'myModule']) | |
138 | - * ``` | |
139 | - * | |
140 | - * However it's more likely that you'll just use | |
141 | - * {@link ng.directive:ngApp ngApp} or | |
142 | - * {@link angular.bootstrap} to simplify this process for you. | |
143 | - * | |
144 | - * @param {!string} name The name of the module to create or retrieve. | |
145 | - * @param {!Array.<string>=} requires If specified then new module is being created. If | |
146 | - * unspecified then the module is being retrieved for further configuration. | |
147 | - * @param {Function=} configFn Optional configuration function for the module. Same as | |
148 | - * {@link angular.Module#config Module#config()}. | |
149 | - * @returns {module} new module with the {@link angular.Module} api. | |
150 | - */ | |
151 | - return function module(name, requires, configFn) { | |
152 | - var assertNotHasOwnProperty = function(name, context) { | |
153 | - if (name === 'hasOwnProperty') { | |
154 | - throw ngMinErr('badname', 'hasOwnProperty is not a valid {0} name', context); | |
155 | - } | |
156 | - }; | |
157 | - | |
158 | - assertNotHasOwnProperty(name, 'module'); | |
159 | - if (requires && modules.hasOwnProperty(name)) { | |
160 | - modules[name] = null; | |
161 | - } | |
162 | - return ensure(modules, name, function() { | |
163 | - if (!requires) { | |
164 | - throw $injectorMinErr('nomod', "Module '{0}' is not available! You either misspelled " + | |
165 | - "the module name or forgot to load it. If registering a module ensure that you " + | |
166 | - "specify the dependencies as the second argument.", name); | |
167 | - } | |
168 | - | |
169 | - /** @type {!Array.<Array.<*>>} */ | |
170 | - var invokeQueue = []; | |
171 | - | |
172 | - /** @type {!Array.<Function>} */ | |
173 | - var configBlocks = []; | |
174 | - | |
175 | - /** @type {!Array.<Function>} */ | |
176 | - var runBlocks = []; | |
177 | - | |
178 | - var config = invokeLater('$injector', 'invoke', 'push', configBlocks); | |
179 | - | |
180 | - /** @type {angular.Module} */ | |
181 | - var moduleInstance = { | |
182 | - // Private state | |
183 | - _invokeQueue: invokeQueue, | |
184 | - _configBlocks: configBlocks, | |
185 | - _runBlocks: runBlocks, | |
186 | - | |
187 | - /** | |
188 | - * @ngdoc property | |
189 | - * @name angular.Module#requires | |
190 | - * @module ng | |
191 | - * | |
192 | - * @description | |
193 | - * Holds the list of modules which the injector will load before the current module is | |
194 | - * loaded. | |
195 | - */ | |
196 | - requires: requires, | |
197 | - | |
198 | - /** | |
199 | - * @ngdoc property | |
200 | - * @name angular.Module#name | |
201 | - * @module ng | |
202 | - * | |
203 | - * @description | |
204 | - * Name of the module. | |
205 | - */ | |
206 | - name: name, | |
207 | - | |
208 | - | |
209 | - /** | |
210 | - * @ngdoc method | |
211 | - * @name angular.Module#provider | |
212 | - * @module ng | |
213 | - * @param {string} name service name | |
214 | - * @param {Function} providerType Construction function for creating new instance of the | |
215 | - * service. | |
216 | - * @description | |
217 | - * See {@link auto.$provide#provider $provide.provider()}. | |
218 | - */ | |
219 | - provider: invokeLater('$provide', 'provider'), | |
220 | - | |
221 | - /** | |
222 | - * @ngdoc method | |
223 | - * @name angular.Module#factory | |
224 | - * @module ng | |
225 | - * @param {string} name service name | |
226 | - * @param {Function} providerFunction Function for creating new instance of the service. | |
227 | - * @description | |
228 | - * See {@link auto.$provide#factory $provide.factory()}. | |
229 | - */ | |
230 | - factory: invokeLater('$provide', 'factory'), | |
231 | - | |
232 | - /** | |
233 | - * @ngdoc method | |
234 | - * @name angular.Module#service | |
235 | - * @module ng | |
236 | - * @param {string} name service name | |
237 | - * @param {Function} constructor A constructor function that will be instantiated. | |
238 | - * @description | |
239 | - * See {@link auto.$provide#service $provide.service()}. | |
240 | - */ | |
241 | - service: invokeLater('$provide', 'service'), | |
242 | - | |
243 | - /** | |
244 | - * @ngdoc method | |
245 | - * @name angular.Module#value | |
246 | - * @module ng | |
247 | - * @param {string} name service name | |
248 | - * @param {*} object Service instance object. | |
249 | - * @description | |
250 | - * See {@link auto.$provide#value $provide.value()}. | |
251 | - */ | |
252 | - value: invokeLater('$provide', 'value'), | |
253 | - | |
254 | - /** | |
255 | - * @ngdoc method | |
256 | - * @name angular.Module#constant | |
257 | - * @module ng | |
258 | - * @param {string} name constant name | |
259 | - * @param {*} object Constant value. | |
260 | - * @description | |
261 | - * Because the constant are fixed, they get applied before other provide methods. | |
262 | - * See {@link auto.$provide#constant $provide.constant()}. | |
263 | - */ | |
264 | - constant: invokeLater('$provide', 'constant', 'unshift'), | |
265 | - | |
266 | - /** | |
267 | - * @ngdoc method | |
268 | - * @name angular.Module#decorator | |
269 | - * @module ng | |
270 | - * @param {string} The name of the service to decorate. | |
271 | - * @param {Function} This function will be invoked when the service needs to be | |
272 | - * instantiated and should return the decorated service instance. | |
273 | - * @description | |
274 | - * See {@link auto.$provide#decorator $provide.decorator()}. | |
275 | - */ | |
276 | - decorator: invokeLater('$provide', 'decorator'), | |
277 | - | |
278 | - /** | |
279 | - * @ngdoc method | |
280 | - * @name angular.Module#animation | |
281 | - * @module ng | |
282 | - * @param {string} name animation name | |
283 | - * @param {Function} animationFactory Factory function for creating new instance of an | |
284 | - * animation. | |
285 | - * @description | |
286 | - * | |
287 | - * **NOTE**: animations take effect only if the **ngAnimate** module is loaded. | |
288 | - * | |
289 | - * | |
290 | - * Defines an animation hook that can be later used with | |
291 | - * {@link $animate $animate} service and directives that use this service. | |
292 | - * | |
293 | - * ```js | |
294 | - * module.animation('.animation-name', function($inject1, $inject2) { | |
295 | - * return { | |
296 | - * eventName : function(element, done) { | |
297 | - * //code to run the animation | |
298 | - * //once complete, then run done() | |
299 | - * return function cancellationFunction(element) { | |
300 | - * //code to cancel the animation | |
301 | - * } | |
302 | - * } | |
303 | - * } | |
304 | - * }) | |
305 | - * ``` | |
306 | - * | |
307 | - * See {@link ng.$animateProvider#register $animateProvider.register()} and | |
308 | - * {@link ngAnimate ngAnimate module} for more information. | |
309 | - */ | |
310 | - animation: invokeLater('$animateProvider', 'register'), | |
311 | - | |
312 | - /** | |
313 | - * @ngdoc method | |
314 | - * @name angular.Module#filter | |
315 | - * @module ng | |
316 | - * @param {string} name Filter name - this must be a valid angular expression identifier | |
317 | - * @param {Function} filterFactory Factory function for creating new instance of filter. | |
318 | - * @description | |
319 | - * See {@link ng.$filterProvider#register $filterProvider.register()}. | |
320 | - * | |
321 | - * <div class="alert alert-warning"> | |
322 | - * **Note:** Filter names must be valid angular {@link expression} identifiers, such as `uppercase` or `orderBy`. | |
323 | - * Names with special characters, such as hyphens and dots, are not allowed. If you wish to namespace | |
324 | - * your filters, then you can use capitalization (`myappSubsectionFilterx`) or underscores | |
325 | - * (`myapp_subsection_filterx`). | |
326 | - * </div> | |
327 | - */ | |
328 | - filter: invokeLater('$filterProvider', 'register'), | |
329 | - | |
330 | - /** | |
331 | - * @ngdoc method | |
332 | - * @name angular.Module#controller | |
333 | - * @module ng | |
334 | - * @param {string|Object} name Controller name, or an object map of controllers where the | |
335 | - * keys are the names and the values are the constructors. | |
336 | - * @param {Function} constructor Controller constructor function. | |
337 | - * @description | |
338 | - * See {@link ng.$controllerProvider#register $controllerProvider.register()}. | |
339 | - */ | |
340 | - controller: invokeLater('$controllerProvider', 'register'), | |
341 | - | |
342 | - /** | |
343 | - * @ngdoc method | |
344 | - * @name angular.Module#directive | |
345 | - * @module ng | |
346 | - * @param {string|Object} name Directive name, or an object map of directives where the | |
347 | - * keys are the names and the values are the factories. | |
348 | - * @param {Function} directiveFactory Factory function for creating new instance of | |
349 | - * directives. | |
350 | - * @description | |
351 | - * See {@link ng.$compileProvider#directive $compileProvider.directive()}. | |
352 | - */ | |
353 | - directive: invokeLater('$compileProvider', 'directive'), | |
354 | - | |
355 | - /** | |
356 | - * @ngdoc method | |
357 | - * @name angular.Module#config | |
358 | - * @module ng | |
359 | - * @param {Function} configFn Execute this function on module load. Useful for service | |
360 | - * configuration. | |
361 | - * @description | |
362 | - * Use this method to register work which needs to be performed on module loading. | |
363 | - * For more about how to configure services, see | |
364 | - * {@link providers#provider-recipe Provider Recipe}. | |
365 | - */ | |
366 | - config: config, | |
367 | - | |
368 | - /** | |
369 | - * @ngdoc method | |
370 | - * @name angular.Module#run | |
371 | - * @module ng | |
372 | - * @param {Function} initializationFn Execute this function after injector creation. | |
373 | - * Useful for application initialization. | |
374 | - * @description | |
375 | - * Use this method to register work which should be performed when the injector is done | |
376 | - * loading all modules. | |
377 | - */ | |
378 | - run: function(block) { | |
379 | - runBlocks.push(block); | |
380 | - return this; | |
381 | - } | |
382 | - }; | |
383 | - | |
384 | - if (configFn) { | |
385 | - config(configFn); | |
386 | - } | |
387 | - | |
388 | - return moduleInstance; | |
389 | - | |
390 | - /** | |
391 | - * @param {string} provider | |
392 | - * @param {string} method | |
393 | - * @param {String=} insertMethod | |
394 | - * @returns {angular.Module} | |
395 | - */ | |
396 | - function invokeLater(provider, method, insertMethod, queue) { | |
397 | - if (!queue) queue = invokeQueue; | |
398 | - return function() { | |
399 | - queue[insertMethod || 'push']([provider, method, arguments]); | |
400 | - return moduleInstance; | |
401 | - }; | |
402 | - } | |
403 | - }); | |
404 | - }; | |
405 | - }); | |
406 | - | |
407 | -} | |
408 | - | |
409 | -setupModuleLoader(window); | |
410 | -})(window); | |
411 | - | |
412 | -/** | |
413 | - * Closure compiler type information | |
414 | - * | |
415 | - * @typedef { { | |
416 | - * requires: !Array.<string>, | |
417 | - * invokeQueue: !Array.<Array.<*>>, | |
418 | - * | |
419 | - * service: function(string, Function):angular.Module, | |
420 | - * factory: function(string, Function):angular.Module, | |
421 | - * value: function(string, *):angular.Module, | |
422 | - * | |
423 | - * filter: function(string, Function):angular.Module, | |
424 | - * | |
425 | - * init: function(Function):angular.Module | |
426 | - * } } | |
427 | - */ | |
428 | -angular.Module; | |
429 | - |
app/js/angular-resource.js
... | ... | @@ -1,668 +0,0 @@ |
1 | -/** | |
2 | - * @license AngularJS v1.4.0 | |
3 | - * (c) 2010-2015 Google, Inc. http://angularjs.org | |
4 | - * License: MIT | |
5 | - */ | |
6 | -(function(window, angular, undefined) {'use strict'; | |
7 | - | |
8 | -var $resourceMinErr = angular.$$minErr('$resource'); | |
9 | - | |
10 | -// Helper functions and regex to lookup a dotted path on an object | |
11 | -// stopping at undefined/null. The path must be composed of ASCII | |
12 | -// identifiers (just like $parse) | |
13 | -var MEMBER_NAME_REGEX = /^(\.[a-zA-Z_$@][0-9a-zA-Z_$@]*)+$/; | |
14 | - | |
15 | -function isValidDottedPath(path) { | |
16 | - return (path != null && path !== '' && path !== 'hasOwnProperty' && | |
17 | - MEMBER_NAME_REGEX.test('.' + path)); | |
18 | -} | |
19 | - | |
20 | -function lookupDottedPath(obj, path) { | |
21 | - if (!isValidDottedPath(path)) { | |
22 | - throw $resourceMinErr('badmember', 'Dotted member path "@{0}" is invalid.', path); | |
23 | - } | |
24 | - var keys = path.split('.'); | |
25 | - for (var i = 0, ii = keys.length; i < ii && obj !== undefined; i++) { | |
26 | - var key = keys[i]; | |
27 | - obj = (obj !== null) ? obj[key] : undefined; | |
28 | - } | |
29 | - return obj; | |
30 | -} | |
31 | - | |
32 | -/** | |
33 | - * Create a shallow copy of an object and clear other fields from the destination | |
34 | - */ | |
35 | -function shallowClearAndCopy(src, dst) { | |
36 | - dst = dst || {}; | |
37 | - | |
38 | - angular.forEach(dst, function(value, key) { | |
39 | - delete dst[key]; | |
40 | - }); | |
41 | - | |
42 | - for (var key in src) { | |
43 | - if (src.hasOwnProperty(key) && !(key.charAt(0) === '$' && key.charAt(1) === '$')) { | |
44 | - dst[key] = src[key]; | |
45 | - } | |
46 | - } | |
47 | - | |
48 | - return dst; | |
49 | -} | |
50 | - | |
51 | -/** | |
52 | - * @ngdoc module | |
53 | - * @name ngResource | |
54 | - * @description | |
55 | - * | |
56 | - * # ngResource | |
57 | - * | |
58 | - * The `ngResource` module provides interaction support with RESTful services | |
59 | - * via the $resource service. | |
60 | - * | |
61 | - * | |
62 | - * <div doc-module-components="ngResource"></div> | |
63 | - * | |
64 | - * See {@link ngResource.$resource `$resource`} for usage. | |
65 | - */ | |
66 | - | |
67 | -/** | |
68 | - * @ngdoc service | |
69 | - * @name $resource | |
70 | - * @requires $http | |
71 | - * | |
72 | - * @description | |
73 | - * A factory which creates a resource object that lets you interact with | |
74 | - * [RESTful](http://en.wikipedia.org/wiki/Representational_State_Transfer) server-side data sources. | |
75 | - * | |
76 | - * The returned resource object has action methods which provide high-level behaviors without | |
77 | - * the need to interact with the low level {@link ng.$http $http} service. | |
78 | - * | |
79 | - * Requires the {@link ngResource `ngResource`} module to be installed. | |
80 | - * | |
81 | - * By default, trailing slashes will be stripped from the calculated URLs, | |
82 | - * which can pose problems with server backends that do not expect that | |
83 | - * behavior. This can be disabled by configuring the `$resourceProvider` like | |
84 | - * this: | |
85 | - * | |
86 | - * ```js | |
87 | - app.config(['$resourceProvider', function($resourceProvider) { | |
88 | - // Don't strip trailing slashes from calculated URLs | |
89 | - $resourceProvider.defaults.stripTrailingSlashes = false; | |
90 | - }]); | |
91 | - * ``` | |
92 | - * | |
93 | - * @param {string} url A parameterized URL template with parameters prefixed by `:` as in | |
94 | - * `/user/:username`. If you are using a URL with a port number (e.g. | |
95 | - * `http://example.com:8080/api`), it will be respected. | |
96 | - * | |
97 | - * If you are using a url with a suffix, just add the suffix, like this: | |
98 | - * `$resource('http://example.com/resource.json')` or `$resource('http://example.com/:id.json')` | |
99 | - * or even `$resource('http://example.com/resource/:resource_id.:format')` | |
100 | - * If the parameter before the suffix is empty, :resource_id in this case, then the `/.` will be | |
101 | - * collapsed down to a single `.`. If you need this sequence to appear and not collapse then you | |
102 | - * can escape it with `/\.`. | |
103 | - * | |
104 | - * @param {Object=} paramDefaults Default values for `url` parameters. These can be overridden in | |
105 | - * `actions` methods. If any of the parameter value is a function, it will be executed every time | |
106 | - * when a param value needs to be obtained for a request (unless the param was overridden). | |
107 | - * | |
108 | - * Each key value in the parameter object is first bound to url template if present and then any | |
109 | - * excess keys are appended to the url search query after the `?`. | |
110 | - * | |
111 | - * Given a template `/path/:verb` and parameter `{verb:'greet', salutation:'Hello'}` results in | |
112 | - * URL `/path/greet?salutation=Hello`. | |
113 | - * | |
114 | - * If the parameter value is prefixed with `@` then the value for that parameter will be extracted | |
115 | - * from the corresponding property on the `data` object (provided when calling an action method). For | |
116 | - * example, if the `defaultParam` object is `{someParam: '@someProp'}` then the value of `someParam` | |
117 | - * will be `data.someProp`. | |
118 | - * | |
119 | - * @param {Object.<Object>=} actions Hash with declaration of custom actions that should extend | |
120 | - * the default set of resource actions. The declaration should be created in the format of {@link | |
121 | - * ng.$http#usage $http.config}: | |
122 | - * | |
123 | - * {action1: {method:?, params:?, isArray:?, headers:?, ...}, | |
124 | - * action2: {method:?, params:?, isArray:?, headers:?, ...}, | |
125 | - * ...} | |
126 | - * | |
127 | - * Where: | |
128 | - * | |
129 | - * - **`action`** โ {string} โ The name of action. This name becomes the name of the method on | |
130 | - * your resource object. | |
131 | - * - **`method`** โ {string} โ Case insensitive HTTP method (e.g. `GET`, `POST`, `PUT`, | |
132 | - * `DELETE`, `JSONP`, etc). | |
133 | - * - **`params`** โ {Object=} โ Optional set of pre-bound parameters for this action. If any of | |
134 | - * the parameter value is a function, it will be executed every time when a param value needs to | |
135 | - * be obtained for a request (unless the param was overridden). | |
136 | - * - **`url`** โ {string} โ action specific `url` override. The url templating is supported just | |
137 | - * like for the resource-level urls. | |
138 | - * - **`isArray`** โ {boolean=} โ If true then the returned object for this action is an array, | |
139 | - * see `returns` section. | |
140 | - * - **`transformRequest`** โ | |
141 | - * `{function(data, headersGetter)|Array.<function(data, headersGetter)>}` โ | |
142 | - * transform function or an array of such functions. The transform function takes the http | |
143 | - * request body and headers and returns its transformed (typically serialized) version. | |
144 | - * By default, transformRequest will contain one function that checks if the request data is | |
145 | - * an object and serializes to using `angular.toJson`. To prevent this behavior, set | |
146 | - * `transformRequest` to an empty array: `transformRequest: []` | |
147 | - * - **`transformResponse`** โ | |
148 | - * `{function(data, headersGetter)|Array.<function(data, headersGetter)>}` โ | |
149 | - * transform function or an array of such functions. The transform function takes the http | |
150 | - * response body and headers and returns its transformed (typically deserialized) version. | |
151 | - * By default, transformResponse will contain one function that checks if the response looks like | |
152 | - * a JSON string and deserializes it using `angular.fromJson`. To prevent this behavior, set | |
153 | - * `transformResponse` to an empty array: `transformResponse: []` | |
154 | - * - **`cache`** โ `{boolean|Cache}` โ If true, a default $http cache will be used to cache the | |
155 | - * GET request, otherwise if a cache instance built with | |
156 | - * {@link ng.$cacheFactory $cacheFactory}, this cache will be used for | |
157 | - * caching. | |
158 | - * - **`timeout`** โ `{number|Promise}` โ timeout in milliseconds, or {@link ng.$q promise} that | |
159 | - * should abort the request when resolved. | |
160 | - * - **`withCredentials`** - `{boolean}` - whether to set the `withCredentials` flag on the | |
161 | - * XHR object. See | |
162 | - * [requests with credentials](https://developer.mozilla.org/en/http_access_control#section_5) | |
163 | - * for more information. | |
164 | - * - **`responseType`** - `{string}` - see | |
165 | - * [requestType](https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest#responseType). | |
166 | - * - **`interceptor`** - `{Object=}` - The interceptor object has two optional methods - | |
167 | - * `response` and `responseError`. Both `response` and `responseError` interceptors get called | |
168 | - * with `http response` object. See {@link ng.$http $http interceptors}. | |
169 | - * | |
170 | - * @param {Object} options Hash with custom settings that should extend the | |
171 | - * default `$resourceProvider` behavior. The only supported option is | |
172 | - * | |
173 | - * Where: | |
174 | - * | |
175 | - * - **`stripTrailingSlashes`** โ {boolean} โ If true then the trailing | |
176 | - * slashes from any calculated URL will be stripped. (Defaults to true.) | |
177 | - * | |
178 | - * @returns {Object} A resource "class" object with methods for the default set of resource actions | |
179 | - * optionally extended with custom `actions`. The default set contains these actions: | |
180 | - * ```js | |
181 | - * { 'get': {method:'GET'}, | |
182 | - * 'save': {method:'POST'}, | |
183 | - * 'query': {method:'GET', isArray:true}, | |
184 | - * 'remove': {method:'DELETE'}, | |
185 | - * 'delete': {method:'DELETE'} }; | |
186 | - * ``` | |
187 | - * | |
188 | - * Calling these methods invoke an {@link ng.$http} with the specified http method, | |
189 | - * destination and parameters. When the data is returned from the server then the object is an | |
190 | - * instance of the resource class. The actions `save`, `remove` and `delete` are available on it | |
191 | - * as methods with the `$` prefix. This allows you to easily perform CRUD operations (create, | |
192 | - * read, update, delete) on server-side data like this: | |
193 | - * ```js | |
194 | - * var User = $resource('/user/:userId', {userId:'@id'}); | |
195 | - * var user = User.get({userId:123}, function() { | |
196 | - * user.abc = true; | |
197 | - * user.$save(); | |
198 | - * }); | |
199 | - * ``` | |
200 | - * | |
201 | - * It is important to realize that invoking a $resource object method immediately returns an | |
202 | - * empty reference (object or array depending on `isArray`). Once the data is returned from the | |
203 | - * server the existing reference is populated with the actual data. This is a useful trick since | |
204 | - * usually the resource is assigned to a model which is then rendered by the view. Having an empty | |
205 | - * object results in no rendering, once the data arrives from the server then the object is | |
206 | - * populated with the data and the view automatically re-renders itself showing the new data. This | |
207 | - * means that in most cases one never has to write a callback function for the action methods. | |
208 | - * | |
209 | - * The action methods on the class object or instance object can be invoked with the following | |
210 | - * parameters: | |
211 | - * | |
212 | - * - HTTP GET "class" actions: `Resource.action([parameters], [success], [error])` | |
213 | - * - non-GET "class" actions: `Resource.action([parameters], postData, [success], [error])` | |
214 | - * - non-GET instance actions: `instance.$action([parameters], [success], [error])` | |
215 | - * | |
216 | - * | |
217 | - * Success callback is called with (value, responseHeaders) arguments. Error callback is called | |
218 | - * with (httpResponse) argument. | |
219 | - * | |
220 | - * Class actions return empty instance (with additional properties below). | |
221 | - * Instance actions return promise of the action. | |
222 | - * | |
223 | - * The Resource instances and collection have these additional properties: | |
224 | - * | |
225 | - * - `$promise`: the {@link ng.$q promise} of the original server interaction that created this | |
226 | - * instance or collection. | |
227 | - * | |
228 | - * On success, the promise is resolved with the same resource instance or collection object, | |
229 | - * updated with data from server. This makes it easy to use in | |
230 | - * {@link ngRoute.$routeProvider resolve section of $routeProvider.when()} to defer view | |
231 | - * rendering until the resource(s) are loaded. | |
232 | - * | |
233 | - * On failure, the promise is resolved with the {@link ng.$http http response} object, without | |
234 | - * the `resource` property. | |
235 | - * | |
236 | - * If an interceptor object was provided, the promise will instead be resolved with the value | |
237 | - * returned by the interceptor. | |
238 | - * | |
239 | - * - `$resolved`: `true` after first server interaction is completed (either with success or | |
240 | - * rejection), `false` before that. Knowing if the Resource has been resolved is useful in | |
241 | - * data-binding. | |
242 | - * | |
243 | - * @example | |
244 | - * | |
245 | - * # Credit card resource | |
246 | - * | |
247 | - * ```js | |
248 | - // Define CreditCard class | |
249 | - var CreditCard = $resource('/user/:userId/card/:cardId', | |
250 | - {userId:123, cardId:'@id'}, { | |
251 | - charge: {method:'POST', params:{charge:true}} | |
252 | - }); | |
253 | - | |
254 | - // We can retrieve a collection from the server | |
255 | - var cards = CreditCard.query(function() { | |
256 | - // GET: /user/123/card | |
257 | - // server returns: [ {id:456, number:'1234', name:'Smith'} ]; | |
258 | - | |
259 | - var card = cards[0]; | |
260 | - // each item is an instance of CreditCard | |
261 | - expect(card instanceof CreditCard).toEqual(true); | |
262 | - card.name = "J. Smith"; | |
263 | - // non GET methods are mapped onto the instances | |
264 | - card.$save(); | |
265 | - // POST: /user/123/card/456 {id:456, number:'1234', name:'J. Smith'} | |
266 | - // server returns: {id:456, number:'1234', name: 'J. Smith'}; | |
267 | - | |
268 | - // our custom method is mapped as well. | |
269 | - card.$charge({amount:9.99}); | |
270 | - // POST: /user/123/card/456?amount=9.99&charge=true {id:456, number:'1234', name:'J. Smith'} | |
271 | - }); | |
272 | - | |
273 | - // we can create an instance as well | |
274 | - var newCard = new CreditCard({number:'0123'}); | |
275 | - newCard.name = "Mike Smith"; | |
276 | - newCard.$save(); | |
277 | - // POST: /user/123/card {number:'0123', name:'Mike Smith'} | |
278 | - // server returns: {id:789, number:'0123', name: 'Mike Smith'}; | |
279 | - expect(newCard.id).toEqual(789); | |
280 | - * ``` | |
281 | - * | |
282 | - * The object returned from this function execution is a resource "class" which has "static" method | |
283 | - * for each action in the definition. | |
284 | - * | |
285 | - * Calling these methods invoke `$http` on the `url` template with the given `method`, `params` and | |
286 | - * `headers`. | |
287 | - * When the data is returned from the server then the object is an instance of the resource type and | |
288 | - * all of the non-GET methods are available with `$` prefix. This allows you to easily support CRUD | |
289 | - * operations (create, read, update, delete) on server-side data. | |
290 | - | |
291 | - ```js | |
292 | - var User = $resource('/user/:userId', {userId:'@id'}); | |
293 | - User.get({userId:123}, function(user) { | |
294 | - user.abc = true; | |
295 | - user.$save(); | |
296 | - }); | |
297 | - ``` | |
298 | - * | |
299 | - * It's worth noting that the success callback for `get`, `query` and other methods gets passed | |
300 | - * in the response that came from the server as well as $http header getter function, so one | |
301 | - * could rewrite the above example and get access to http headers as: | |
302 | - * | |
303 | - ```js | |
304 | - var User = $resource('/user/:userId', {userId:'@id'}); | |
305 | - User.get({userId:123}, function(u, getResponseHeaders){ | |
306 | - u.abc = true; | |
307 | - u.$save(function(u, putResponseHeaders) { | |
308 | - //u => saved user object | |
309 | - //putResponseHeaders => $http header getter | |
310 | - }); | |
311 | - }); | |
312 | - ``` | |
313 | - * | |
314 | - * You can also access the raw `$http` promise via the `$promise` property on the object returned | |
315 | - * | |
316 | - ``` | |
317 | - var User = $resource('/user/:userId', {userId:'@id'}); | |
318 | - User.get({userId:123}) | |
319 | - .$promise.then(function(user) { | |
320 | - $scope.user = user; | |
321 | - }); | |
322 | - ``` | |
323 | - | |
324 | - * # Creating a custom 'PUT' request | |
325 | - * In this example we create a custom method on our resource to make a PUT request | |
326 | - * ```js | |
327 | - * var app = angular.module('app', ['ngResource', 'ngRoute']); | |
328 | - * | |
329 | - * // Some APIs expect a PUT request in the format URL/object/ID | |
330 | - * // Here we are creating an 'update' method | |
331 | - * app.factory('Notes', ['$resource', function($resource) { | |
332 | - * return $resource('/notes/:id', null, | |
333 | - * { | |
334 | - * 'update': { method:'PUT' } | |
335 | - * }); | |
336 | - * }]); | |
337 | - * | |
338 | - * // In our controller we get the ID from the URL using ngRoute and $routeParams | |
339 | - * // We pass in $routeParams and our Notes factory along with $scope | |
340 | - * app.controller('NotesCtrl', ['$scope', '$routeParams', 'Notes', | |
341 | - function($scope, $routeParams, Notes) { | |
342 | - * // First get a note object from the factory | |
343 | - * var note = Notes.get({ id:$routeParams.id }); | |
344 | - * $id = note.id; | |
345 | - * | |
346 | - * // Now call update passing in the ID first then the object you are updating | |
347 | - * Notes.update({ id:$id }, note); | |
348 | - * | |
349 | - * // This will PUT /notes/ID with the note object in the request payload | |
350 | - * }]); | |
351 | - * ``` | |
352 | - */ | |
353 | -angular.module('ngResource', ['ng']). | |
354 | - provider('$resource', function() { | |
355 | - var provider = this; | |
356 | - | |
357 | - this.defaults = { | |
358 | - // Strip slashes by default | |
359 | - stripTrailingSlashes: true, | |
360 | - | |
361 | - // Default actions configuration | |
362 | - actions: { | |
363 | - 'get': {method: 'GET'}, | |
364 | - 'save': {method: 'POST'}, | |
365 | - 'query': {method: 'GET', isArray: true}, | |
366 | - 'remove': {method: 'DELETE'}, | |
367 | - 'delete': {method: 'DELETE'} | |
368 | - } | |
369 | - }; | |
370 | - | |
371 | - this.$get = ['$http', '$q', function($http, $q) { | |
372 | - | |
373 | - var noop = angular.noop, | |
374 | - forEach = angular.forEach, | |
375 | - extend = angular.extend, | |
376 | - copy = angular.copy, | |
377 | - isFunction = angular.isFunction; | |
378 | - | |
379 | - /** | |
380 | - * We need our custom method because encodeURIComponent is too aggressive and doesn't follow | |
381 | - * http://www.ietf.org/rfc/rfc3986.txt with regards to the character set | |
382 | - * (pchar) allowed in path segments: | |
383 | - * segment = *pchar | |
384 | - * pchar = unreserved / pct-encoded / sub-delims / ":" / "@" | |
385 | - * pct-encoded = "%" HEXDIG HEXDIG | |
386 | - * unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~" | |
387 | - * sub-delims = "!" / "$" / "&" / "'" / "(" / ")" | |
388 | - * / "*" / "+" / "," / ";" / "=" | |
389 | - */ | |
390 | - function encodeUriSegment(val) { | |
391 | - return encodeUriQuery(val, true). | |
392 | - replace(/%26/gi, '&'). | |
393 | - replace(/%3D/gi, '='). | |
394 | - replace(/%2B/gi, '+'); | |
395 | - } | |
396 | - | |
397 | - | |
398 | - /** | |
399 | - * This method is intended for encoding *key* or *value* parts of query component. We need a | |
400 | - * custom method because encodeURIComponent is too aggressive and encodes stuff that doesn't | |
401 | - * have to be encoded per http://tools.ietf.org/html/rfc3986: | |
402 | - * query = *( pchar / "/" / "?" ) | |
403 | - * pchar = unreserved / pct-encoded / sub-delims / ":" / "@" | |
404 | - * unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~" | |
405 | - * pct-encoded = "%" HEXDIG HEXDIG | |
406 | - * sub-delims = "!" / "$" / "&" / "'" / "(" / ")" | |
407 | - * / "*" / "+" / "," / ";" / "=" | |
408 | - */ | |
409 | - function encodeUriQuery(val, pctEncodeSpaces) { | |
410 | - return encodeURIComponent(val). | |
411 | - replace(/%40/gi, '@'). | |
412 | - replace(/%3A/gi, ':'). | |
413 | - replace(/%24/g, '$'). | |
414 | - replace(/%2C/gi, ','). | |
415 | - replace(/%20/g, (pctEncodeSpaces ? '%20' : '+')); | |
416 | - } | |
417 | - | |
418 | - function Route(template, defaults) { | |
419 | - this.template = template; | |
420 | - this.defaults = extend({}, provider.defaults, defaults); | |
421 | - this.urlParams = {}; | |
422 | - } | |
423 | - | |
424 | - Route.prototype = { | |
425 | - setUrlParams: function(config, params, actionUrl) { | |
426 | - var self = this, | |
427 | - url = actionUrl || self.template, | |
428 | - val, | |
429 | - encodedVal; | |
430 | - | |
431 | - var urlParams = self.urlParams = {}; | |
432 | - forEach(url.split(/\W/), function(param) { | |
433 | - if (param === 'hasOwnProperty') { | |
434 | - throw $resourceMinErr('badname', "hasOwnProperty is not a valid parameter name."); | |
435 | - } | |
436 | - if (!(new RegExp("^\\d+$").test(param)) && param && | |
437 | - (new RegExp("(^|[^\\\\]):" + param + "(\\W|$)").test(url))) { | |
438 | - urlParams[param] = true; | |
439 | - } | |
440 | - }); | |
441 | - url = url.replace(/\\:/g, ':'); | |
442 | - | |
443 | - params = params || {}; | |
444 | - forEach(self.urlParams, function(_, urlParam) { | |
445 | - val = params.hasOwnProperty(urlParam) ? params[urlParam] : self.defaults[urlParam]; | |
446 | - if (angular.isDefined(val) && val !== null) { | |
447 | - encodedVal = encodeUriSegment(val); | |
448 | - url = url.replace(new RegExp(":" + urlParam + "(\\W|$)", "g"), function(match, p1) { | |
449 | - return encodedVal + p1; | |
450 | - }); | |
451 | - } else { | |
452 | - url = url.replace(new RegExp("(\/?):" + urlParam + "(\\W|$)", "g"), function(match, | |
453 | - leadingSlashes, tail) { | |
454 | - if (tail.charAt(0) == '/') { | |
455 | - return tail; | |
456 | - } else { | |
457 | - return leadingSlashes + tail; | |
458 | - } | |
459 | - }); | |
460 | - } | |
461 | - }); | |
462 | - | |
463 | - // strip trailing slashes and set the url (unless this behavior is specifically disabled) | |
464 | - if (self.defaults.stripTrailingSlashes) { | |
465 | - url = url.replace(/\/+$/, '') || '/'; | |
466 | - } | |
467 | - | |
468 | - // then replace collapse `/.` if found in the last URL path segment before the query | |
469 | - // E.g. `http://url.com/id./format?q=x` becomes `http://url.com/id.format?q=x` | |
470 | - url = url.replace(/\/\.(?=\w+($|\?))/, '.'); | |
471 | - // replace escaped `/\.` with `/.` | |
472 | - config.url = url.replace(/\/\\\./, '/.'); | |
473 | - | |
474 | - | |
475 | - // set params - delegate param encoding to $http | |
476 | - forEach(params, function(value, key) { | |
477 | - if (!self.urlParams[key]) { | |
478 | - config.params = config.params || {}; | |
479 | - config.params[key] = value; | |
480 | - } | |
481 | - }); | |
482 | - } | |
483 | - }; | |
484 | - | |
485 | - | |
486 | - function resourceFactory(url, paramDefaults, actions, options) { | |
487 | - var route = new Route(url, options); | |
488 | - | |
489 | - actions = extend({}, provider.defaults.actions, actions); | |
490 | - | |
491 | - function extractParams(data, actionParams) { | |
492 | - var ids = {}; | |
493 | - actionParams = extend({}, paramDefaults, actionParams); | |
494 | - forEach(actionParams, function(value, key) { | |
495 | - if (isFunction(value)) { value = value(); } | |
496 | - ids[key] = value && value.charAt && value.charAt(0) == '@' ? | |
497 | - lookupDottedPath(data, value.substr(1)) : value; | |
498 | - }); | |
499 | - return ids; | |
500 | - } | |
501 | - | |
502 | - function defaultResponseInterceptor(response) { | |
503 | - return response.resource; | |
504 | - } | |
505 | - | |
506 | - function Resource(value) { | |
507 | - shallowClearAndCopy(value || {}, this); | |
508 | - } | |
509 | - | |
510 | - Resource.prototype.toJSON = function() { | |
511 | - var data = extend({}, this); | |
512 | - delete data.$promise; | |
513 | - delete data.$resolved; | |
514 | - return data; | |
515 | - }; | |
516 | - | |
517 | - forEach(actions, function(action, name) { | |
518 | - var hasBody = /^(POST|PUT|PATCH)$/i.test(action.method); | |
519 | - | |
520 | - Resource[name] = function(a1, a2, a3, a4) { | |
521 | - var params = {}, data, success, error; | |
522 | - | |
523 | - /* jshint -W086 */ /* (purposefully fall through case statements) */ | |
524 | - switch (arguments.length) { | |
525 | - case 4: | |
526 | - error = a4; | |
527 | - success = a3; | |
528 | - //fallthrough | |
529 | - case 3: | |
530 | - case 2: | |
531 | - if (isFunction(a2)) { | |
532 | - if (isFunction(a1)) { | |
533 | - success = a1; | |
534 | - error = a2; | |
535 | - break; | |
536 | - } | |
537 | - | |
538 | - success = a2; | |
539 | - error = a3; | |
540 | - //fallthrough | |
541 | - } else { | |
542 | - params = a1; | |
543 | - data = a2; | |
544 | - success = a3; | |
545 | - break; | |
546 | - } | |
547 | - case 1: | |
548 | - if (isFunction(a1)) success = a1; | |
549 | - else if (hasBody) data = a1; | |
550 | - else params = a1; | |
551 | - break; | |
552 | - case 0: break; | |
553 | - default: | |
554 | - throw $resourceMinErr('badargs', | |
555 | - "Expected up to 4 arguments [params, data, success, error], got {0} arguments", | |
556 | - arguments.length); | |
557 | - } | |
558 | - /* jshint +W086 */ /* (purposefully fall through case statements) */ | |
559 | - | |
560 | - var isInstanceCall = this instanceof Resource; | |
561 | - var value = isInstanceCall ? data : (action.isArray ? [] : new Resource(data)); | |
562 | - var httpConfig = {}; | |
563 | - var responseInterceptor = action.interceptor && action.interceptor.response || | |
564 | - defaultResponseInterceptor; | |
565 | - var responseErrorInterceptor = action.interceptor && action.interceptor.responseError || | |
566 | - undefined; | |
567 | - | |
568 | - forEach(action, function(value, key) { | |
569 | - if (key != 'params' && key != 'isArray' && key != 'interceptor') { | |
570 | - httpConfig[key] = copy(value); | |
571 | - } | |
572 | - }); | |
573 | - | |
574 | - if (hasBody) httpConfig.data = data; | |
575 | - route.setUrlParams(httpConfig, | |
576 | - extend({}, extractParams(data, action.params || {}), params), | |
577 | - action.url); | |
578 | - | |
579 | - var promise = $http(httpConfig).then(function(response) { | |
580 | - var data = response.data, | |
581 | - promise = value.$promise; | |
582 | - | |
583 | - if (data) { | |
584 | - // Need to convert action.isArray to boolean in case it is undefined | |
585 | - // jshint -W018 | |
586 | - if (angular.isArray(data) !== (!!action.isArray)) { | |
587 | - throw $resourceMinErr('badcfg', | |
588 | - 'Error in resource configuration for action `{0}`. Expected response to ' + | |
589 | - 'contain an {1} but got an {2} (Request: {3} {4})', name, action.isArray ? 'array' : 'object', | |
590 | - angular.isArray(data) ? 'array' : 'object', httpConfig.method, httpConfig.url); | |
591 | - } | |
592 | - // jshint +W018 | |
593 | - if (action.isArray) { | |
594 | - value.length = 0; | |
595 | - forEach(data, function(item) { | |
596 | - if (typeof item === "object") { | |
597 | - value.push(new Resource(item)); | |
598 | - } else { | |
599 | - // Valid JSON values may be string literals, and these should not be converted | |
600 | - // into objects. These items will not have access to the Resource prototype | |
601 | - // methods, but unfortunately there | |
602 | - value.push(item); | |
603 | - } | |
604 | - }); | |
605 | - } else { | |
606 | - shallowClearAndCopy(data, value); | |
607 | - value.$promise = promise; | |
608 | - } | |
609 | - } | |
610 | - | |
611 | - value.$resolved = true; | |
612 | - | |
613 | - response.resource = value; | |
614 | - | |
615 | - return response; | |
616 | - }, function(response) { | |
617 | - value.$resolved = true; | |
618 | - | |
619 | - (error || noop)(response); | |
620 | - | |
621 | - return $q.reject(response); | |
622 | - }); | |
623 | - | |
624 | - promise = promise.then( | |
625 | - function(response) { | |
626 | - var value = responseInterceptor(response); | |
627 | - (success || noop)(value, response.headers); | |
628 | - return value; | |
629 | - }, | |
630 | - responseErrorInterceptor); | |
631 | - | |
632 | - if (!isInstanceCall) { | |
633 | - // we are creating instance / collection | |
634 | - // - set the initial promise | |
635 | - // - return the instance / collection | |
636 | - value.$promise = promise; | |
637 | - value.$resolved = false; | |
638 | - | |
639 | - return value; | |
640 | - } | |
641 | - | |
642 | - // instance call | |
643 | - return promise; | |
644 | - }; | |
645 | - | |
646 | - | |
647 | - Resource.prototype['$' + name] = function(params, success, error) { | |
648 | - if (isFunction(params)) { | |
649 | - error = success; success = params; params = {}; | |
650 | - } | |
651 | - var result = Resource[name].call(this, params, this, success, error); | |
652 | - return result.$promise || result; | |
653 | - }; | |
654 | - }); | |
655 | - | |
656 | - Resource.bind = function(additionalParamDefaults) { | |
657 | - return resourceFactory(url, extend({}, paramDefaults, additionalParamDefaults), actions); | |
658 | - }; | |
659 | - | |
660 | - return Resource; | |
661 | - } | |
662 | - | |
663 | - return resourceFactory; | |
664 | - }]; | |
665 | - }); | |
666 | - | |
667 | - | |
668 | -})(window, window.angular); |
app/js/app.constant.js
... | ... | @@ -0,0 +1,21 @@ |
1 | +(function(){ | |
2 | +'use strict'; | |
3 | + | |
4 | + angular.module('acufuel') | |
5 | + | |
6 | + .constant('BASE_URL', { | |
7 | + //url: 'http://54.149.169.33:8080/ws' | |
8 | + url: 'http://192.168.1.226:8080/ws' | |
9 | + }) | |
10 | + | |
11 | + .constant('AUTH_EVENTS', { | |
12 | + updateUser: 'update-user', | |
13 | + notAuthorized: 'auth-not-authorized' | |
14 | + }) | |
15 | + | |
16 | + .constant('USER_ROLES', { | |
17 | + user : 'user', | |
18 | + admin: 'admin' | |
19 | + }); | |
20 | + | |
21 | +})(); | |
0 | 22 | \ No newline at end of file | ... | ... |
app/js/app.js
1 | - | |
2 | 1 | 'use strict'; |
3 | 2 | |
4 | 3 | |
5 | - angular.module('acufuel', ['ui.router', 'ngAnimate', 'ui.bootstrap']) | |
4 | + angular.module('acufuel', ['ngCookies', 'ngResource', 'ui.router', 'ngAnimate', 'ui.bootstrap', 'xeditable']) | |
5 | + | |
6 | + .config(['$httpProvider', function($httpProvider) { | |
7 | + $httpProvider.defaults.withCredentials = true; | |
8 | + $httpProvider.interceptors.push('myCSRF'); | |
9 | + $httpProvider.interceptors.push('httpRequestInterceptor'); | |
10 | + }]) | |
11 | + | |
12 | + | |
13 | + .factory('httpRequestInterceptor', ['$q', '$rootScope', '$location', function($q, $rootScope, $location) { | |
14 | + return { | |
15 | + request: function($config) { | |
16 | + return $config; | |
17 | + }, | |
18 | + responseError: function(rejection) { | |
19 | + if (rejection.status === 401) { | |
20 | + if($location.path() != "/login"){ | |
21 | + localStorage.clear(); | |
22 | + window.location.reload(); | |
23 | + } | |
24 | + } | |
25 | + return $q.reject(rejection); | |
26 | + } | |
27 | + } | |
28 | + }]) | |
29 | + | |
30 | + .provider('myCSRF',[function(){ | |
31 | + var headerName = 'X-CSRFToken'; | |
32 | + var cookieName = 'csrftoken'; | |
33 | + var allowedMethods = ['GET']; | |
34 | + | |
35 | + this.setHeaderName = function(n) { | |
36 | + headerName = n; | |
37 | + } | |
38 | + this.setCookieName = function(n) { | |
39 | + cookieName = n; | |
40 | + } | |
41 | + this.setAllowedMethods = function(n) { | |
42 | + allowedMethods = n; | |
43 | + } | |
44 | + this.$get = ['$cookies', function($cookies){ | |
45 | + return { | |
46 | + 'request': function(config) { | |
47 | + if(allowedMethods.indexOf(config.method) === -1) { | |
48 | + // do something on success | |
49 | + config.headers[headerName] = $cookies[cookieName]; | |
50 | + } | |
51 | + return config; | |
52 | + } | |
53 | + } | |
54 | + }]; | |
55 | + }]) | |
6 | 56 | |
7 | 57 | .config( |
8 | 58 | ['$locationProvider', '$stateProvider', '$urlRouterProvider', |
... | ... | @@ -32,6 +82,16 @@ |
32 | 82 | templateUrl: "partials/customers/customers.html", |
33 | 83 | controller: "customersController" |
34 | 84 | }) |
85 | + .state("app.ContactView", { | |
86 | + url: "/ContactView", | |
87 | + templateUrl: "partials/ContactView/ContactView.html", | |
88 | + controller: "ContactViewController" | |
89 | + }) | |
90 | + .state("app.FuelVendors", { | |
91 | + url: "/FuelVendors", | |
92 | + templateUrl: "partials/FuelVendors/FuelVendors.html", | |
93 | + controller: "FuelVendorsController" | |
94 | + }) | |
35 | 95 | |
36 | 96 | .state("app.analytics", { |
37 | 97 | url: "/analytics", |
... | ... | @@ -51,6 +111,11 @@ |
51 | 111 | controller: "dashboardController" |
52 | 112 | }) |
53 | 113 | |
114 | + .state("app.AirList", { | |
115 | + url: "/AirList", | |
116 | + templateUrl: "partials/AirList/AirList.html", | |
117 | + controller: "AirListController" | |
118 | + }) | |
54 | 119 | |
55 | 120 | .state("app.elements", { |
56 | 121 | url: "/elements", |
... | ... | @@ -133,7 +198,10 @@ |
133 | 198 | .state("app.updateFuelManager", { |
134 | 199 | url: "/updateFuelManager", |
135 | 200 | templateUrl: "partials/updateFuelManager/updateFuelManager.html", |
136 | - controller: "updateFuelManagerController" | |
201 | + controller: "updateFuelManagerController", | |
202 | + // data: { | |
203 | + // authorizedRoles: ["fbo"], | |
204 | + // } | |
137 | 205 | }) |
138 | 206 | |
139 | 207 | .state("app.viewCompany", { |
... | ... | @@ -147,8 +215,89 @@ |
147 | 215 | templateUrl: "partials/widgetTemplate/widgetTemplate.html", |
148 | 216 | controller: "widgetTemplateController" |
149 | 217 | }) |
218 | + | |
219 | + .state("app.fuelOrders", { | |
220 | + url: "/fuelOrders", | |
221 | + templateUrl: "partials/fuelOrders/fuelOrders.html", | |
222 | + controller: "fuelOrdersController" | |
223 | + }) | |
224 | + | |
225 | + .state("app.DispatchFuel", { | |
226 | + url: "/DispatchFuel", | |
227 | + templateUrl: "partials/DispatchFuel/DispatchFuel.html", | |
228 | + controller: "DispatchFuelController" | |
229 | + }) | |
230 | + | |
231 | + .state("app.searchDispatchFuel", { | |
232 | + url: "/searchDispatchFuel", | |
233 | + templateUrl: "partials/searchDispatchFuel/searchDispatchFuel.html", | |
234 | + controller: "searchDispatchFuelController" | |
235 | + }) | |
236 | + | |
237 | + .state("app.NewCompany", { | |
238 | + url: "/NewCompany", | |
239 | + templateUrl: "partials/NewCompany/NewCompany.html", | |
240 | + controller: "NewCompanyController" | |
241 | + }) | |
242 | + | |
243 | + .state("app.Accept", { | |
244 | + url: "/Accept", | |
245 | + templateUrl: "partials/Accept/Accept.html", | |
246 | + controller: "AcceptController" | |
247 | + }) | |
248 | + .state("app.delselected", { | |
249 | + url: "/delselected", | |
250 | + templateUrl: "partials/delselected/delselected.html", | |
251 | + controller: "delselectedController" | |
252 | + }) | |
253 | + | |
254 | + .state("app.pricingcontact", { | |
255 | + url: "/pricingcontact", | |
256 | + templateUrl: "partials/pricingcontact/pricingcontact.html", | |
257 | + controller: "pricingcontactController" | |
258 | + }) | |
259 | + | |
260 | + .state("app.AntiochFlightDepartment", { | |
261 | + url: "/AntiochFlightDepartment", | |
262 | + templateUrl: "partials/AntiochFlightDepartment/AntiochFlightDepartment.html", | |
263 | + controller: "AntiochFlightDepartmentcontroller" | |
264 | + }) | |
150 | 265 | } |
151 | - ]); | |
266 | + ]) | |
267 | + | |
268 | + .run(['$rootScope', '$state', 'LoginService', 'AUTH_EVENTS', function($rootScope, $state, LoginService, AUTH_EVENTS) { | |
269 | + $rootScope.$on('$stateChangeStart', function (event, next, nextParams, fromState) { | |
270 | + $rootScope.currentUser = JSON.parse(window.localStorage.getItem('currentUser')); | |
271 | + | |
272 | + LoginService.isAuthorized = function (authorizedRoles) { | |
273 | + if (!angular.isArray(authorizedRoles)) { | |
274 | + authorizedRoles = [authorizedRoles]; | |
275 | + } | |
276 | + var userdata = JSON.parse(window.localStorage.getItem('currentUser')); | |
277 | + return (userdata? (authorizedRoles.indexOf(userdata.type) !== -1): false); | |
278 | + } | |
279 | + | |
280 | + if ('data' in next && 'authorizedRoles' in next.data) { | |
281 | + var authorizedRoles = next.data.authorizedRoles; | |
282 | + if (!LoginService.isAuthorized(authorizedRoles)) { | |
283 | + event.preventDefault(); | |
284 | + if($state.current.name.length == 0) { | |
285 | + $state.go('login') | |
286 | + } else { | |
287 | + $state.go($state.current, {}, {reload: true}); | |
288 | + $rootScope.$broadcast(AUTH_EVENTS.notAuthorized); | |
289 | + } | |
290 | + } | |
291 | + } | |
292 | + | |
293 | + if (LoginService.isAuthenticated()) { | |
294 | + if (next.name == 'login') { | |
295 | + event.preventDefault(); | |
296 | + $state.go('app.dashboard'); | |
297 | + } | |
298 | + } | |
299 | + }); | |
300 | + }]) | |
152 | 301 | |
153 | 302 | |
154 | 303 | ... | ... |
app/js/helpers.js
... | ... | @@ -0,0 +1,21 @@ |
1 | +angular | |
2 | + .module('mwl.calendar.docs') | |
3 | + .factory('alert', function($uibModal) { | |
4 | + | |
5 | + function show(action, event) { | |
6 | + return $uibModal.open({ | |
7 | + templateUrl: 'modalContent.html', | |
8 | + controller: function() { | |
9 | + var vm = this; | |
10 | + vm.action = action; | |
11 | + vm.event = event; | |
12 | + }, | |
13 | + controllerAs: 'vm' | |
14 | + }); | |
15 | + } | |
16 | + | |
17 | + return { | |
18 | + show: show | |
19 | + }; | |
20 | + | |
21 | + }); | ... | ... |
app/js/multi-step-modal.js
... | ... | @@ -0,0 +1,127 @@ |
1 | ++function($) { | |
2 | + 'use strict'; | |
3 | + | |
4 | + var modals = $('.modal.multi-step'); | |
5 | + | |
6 | + modals.each(function(idx, modal) { | |
7 | + var $modal = $(modal); | |
8 | + var $buttons = $modal.find('button.step'); | |
9 | + var total_num_steps = $buttons.length; | |
10 | + var $progress = $modal.find('.m-progress'); | |
11 | + var $progress_bar = $modal.find('.m-progress-bar'); | |
12 | + var $progress_stats = $modal.find('.m-progress-stats'); | |
13 | + var $progress_current = $modal.find('.m-progress-current'); | |
14 | + var $progress_total = $modal.find('.m-progress-total'); | |
15 | + var $progress_complete = $modal.find('.m-progress-complete'); | |
16 | + var reset_on_close = $modal.attr('reset-on-close') === 'true'; | |
17 | + | |
18 | + function reset() { | |
19 | + $modal.find('.step').hide(); | |
20 | + $modal.find('[data-step]').hide(); | |
21 | + } | |
22 | + | |
23 | + function completeSteps() { | |
24 | + $progress_stats.hide(); | |
25 | + $progress_complete.show(); | |
26 | + $modal.find('.progress-text').animate({ | |
27 | + top: '-2em' | |
28 | + }); | |
29 | + $modal.find('.complete-indicator').animate({ | |
30 | + top: '-2em' | |
31 | + }); | |
32 | + $progress_bar.addClass('completed'); | |
33 | + } | |
34 | + | |
35 | + function getPercentComplete(current_step, total_steps) { | |
36 | + return Math.min(current_step / total_steps * 100, 100) + '%'; | |
37 | + } | |
38 | + | |
39 | + function updateProgress(current, total) { | |
40 | + $progress_bar.animate({ | |
41 | + width: getPercentComplete(current, total) | |
42 | + }); | |
43 | + if (current - 1 >= total_num_steps) { | |
44 | + completeSteps(); | |
45 | + } else { | |
46 | + $progress_current.text(current); | |
47 | + } | |
48 | + | |
49 | + $progress.find('[data-progress]').each(function() { | |
50 | + var dp = $(this); | |
51 | + if (dp.data().progress <= current - 1) { | |
52 | + dp.addClass('completed'); | |
53 | + } else { | |
54 | + dp.removeClass('completed'); | |
55 | + } | |
56 | + }); | |
57 | + } | |
58 | + | |
59 | + function goToStep(step) { | |
60 | + reset(); | |
61 | + var to_show = $modal.find('.step-' + step); | |
62 | + if (to_show.length === 0) { | |
63 | + // at the last step, nothing else to show | |
64 | + return; | |
65 | + } | |
66 | + to_show.show(); | |
67 | + var current = parseInt(step, 10); | |
68 | + updateProgress(current, total_num_steps); | |
69 | + findFirstFocusableInput(to_show).focus(); | |
70 | + } | |
71 | + | |
72 | + function findFirstFocusableInput(parent) { | |
73 | + var candidates = [parent.find('input'), parent.find('select'), | |
74 | + parent.find('textarea'),parent.find('button')], | |
75 | + winner = parent; | |
76 | + $.each(candidates, function() { | |
77 | + if (this.length > 0) { | |
78 | + winner = this[0]; | |
79 | + return false; | |
80 | + } | |
81 | + }); | |
82 | + return $(winner); | |
83 | + } | |
84 | + | |
85 | + function bindEventsToModal($modal) { | |
86 | + var data_steps = []; | |
87 | + $('[data-step]').each(function() { | |
88 | + var step = $(this).data().step; | |
89 | + if (step && $.inArray(step, data_steps) === -1) { | |
90 | + data_steps.push(step); | |
91 | + } | |
92 | + }); | |
93 | + | |
94 | + $.each(data_steps, function(i, v) { | |
95 | + $modal.on('next.m.' + v, {step: v}, function(e) { | |
96 | + goToStep(e.data.step); | |
97 | + }); | |
98 | + }); | |
99 | + } | |
100 | + | |
101 | + function initialize() { | |
102 | + reset(); | |
103 | + updateProgress(1, total_num_steps); | |
104 | + $modal.find('.step-1').show(); | |
105 | + $progress_complete.hide(); | |
106 | + $progress_total.text(total_num_steps); | |
107 | + bindEventsToModal($modal, total_num_steps); | |
108 | + $modal.data({ | |
109 | + total_num_steps: $buttons.length, | |
110 | + }); | |
111 | + if (reset_on_close){ | |
112 | + //Bootstrap 2.3.2 | |
113 | + $modal.on('hidden', function () { | |
114 | + reset(); | |
115 | + $modal.find('.step-1').show(); | |
116 | + }) | |
117 | + //Bootstrap 3 | |
118 | + $modal.on('hidden.bs.modal', function () { | |
119 | + reset(); | |
120 | + $modal.find('.step-1').show(); | |
121 | + }) | |
122 | + } | |
123 | + } | |
124 | + | |
125 | + initialize(); | |
126 | + }) | |
127 | +}(jQuery); | |
0 | 128 | \ No newline at end of file | ... | ... |
app/js/plugins/example.js
... | ... | @@ -0,0 +1,106 @@ |
1 | +angular.module('mwl.calendar.docs', ['mwl.calendar', 'ngAnimate', 'ui.bootstrap', 'colorpicker.module']); | |
2 | +angular | |
3 | + .module('mwl.calendar.docs') //you will need to declare your module with the dependencies ['mwl.calendar', 'ui.bootstrap', 'ngAnimate'] | |
4 | + .controller('KitchenSinkCtrl', function(moment, alert, calendarConfig) { | |
5 | + | |
6 | + var vm = this; | |
7 | + | |
8 | + //These variables MUST be set as a minimum for the calendar to work | |
9 | + vm.calendarView = 'month'; | |
10 | + vm.viewDate = new Date(); | |
11 | + var actions = [{ | |
12 | + label: '<i class=\'glyphicon glyphicon-pencil\'></i>', | |
13 | + onClick: function(args) { | |
14 | + alert.show('Edited', args.calendarEvent); | |
15 | + } | |
16 | + }, { | |
17 | + label: '<i class=\'glyphicon glyphicon-remove\'></i>', | |
18 | + onClick: function(args) { | |
19 | + alert.show('Deleted', args.calendarEvent); | |
20 | + } | |
21 | + }]; | |
22 | + vm.events = [ | |
23 | + { | |
24 | + title: 'An event', | |
25 | + color: calendarConfig.colorTypes.warning, | |
26 | + startsAt: moment().startOf('week').subtract(2, 'days').add(8, 'hours').toDate(), | |
27 | + endsAt: moment().startOf('week').add(1, 'week').add(9, 'hours').toDate(), | |
28 | + draggable: true, | |
29 | + resizable: true, | |
30 | + actions: actions | |
31 | + }, { | |
32 | + title: '<i class="glyphicon glyphicon-asterisk"></i> <span class="text-primary">Another event</span>, with a <i>html</i> title', | |
33 | + color: calendarConfig.colorTypes.info, | |
34 | + startsAt: moment().subtract(1, 'day').toDate(), | |
35 | + endsAt: moment().add(5, 'days').toDate(), | |
36 | + draggable: true, | |
37 | + resizable: true, | |
38 | + actions: actions | |
39 | + }, { | |
40 | + title: 'This is a really long event title that occurs on every year', | |
41 | + color: calendarConfig.colorTypes.important, | |
42 | + startsAt: moment().startOf('day').add(7, 'hours').toDate(), | |
43 | + endsAt: moment().startOf('day').add(19, 'hours').toDate(), | |
44 | + recursOn: 'year', | |
45 | + draggable: true, | |
46 | + resizable: true, | |
47 | + actions: actions | |
48 | + } | |
49 | + ]; | |
50 | + | |
51 | + vm.cellIsOpen = true; | |
52 | + | |
53 | + vm.addEvent = function() { | |
54 | + vm.events.push({ | |
55 | + title: 'New event', | |
56 | + startsAt: moment().startOf('day').toDate(), | |
57 | + endsAt: moment().endOf('day').toDate(), | |
58 | + color: calendarConfig.colorTypes.important, | |
59 | + draggable: true, | |
60 | + resizable: true | |
61 | + }); | |
62 | + }; | |
63 | + | |
64 | + vm.eventClicked = function(event) { | |
65 | + alert.show('Clicked', event); | |
66 | + }; | |
67 | + | |
68 | + vm.eventEdited = function(event) { | |
69 | + alert.show('Edited', event); | |
70 | + }; | |
71 | + | |
72 | + vm.eventDeleted = function(event) { | |
73 | + alert.show('Deleted', event); | |
74 | + }; | |
75 | + | |
76 | + vm.eventTimesChanged = function(event) { | |
77 | + alert.show('Dropped or resized', event); | |
78 | + }; | |
79 | + | |
80 | + vm.toggle = function($event, field, event) { | |
81 | + $event.preventDefault(); | |
82 | + $event.stopPropagation(); | |
83 | + event[field] = !event[field]; | |
84 | + }; | |
85 | + | |
86 | + vm.timespanClicked = function(date, cell) { | |
87 | + | |
88 | + if (vm.calendarView === 'month') { | |
89 | + if ((vm.cellIsOpen && moment(date).startOf('day').isSame(moment(vm.viewDate).startOf('day'))) || cell.events.length === 0 || !cell.inMonth) { | |
90 | + vm.cellIsOpen = false; | |
91 | + } else { | |
92 | + vm.cellIsOpen = true; | |
93 | + vm.viewDate = date; | |
94 | + } | |
95 | + } else if (vm.calendarView === 'year') { | |
96 | + if ((vm.cellIsOpen && moment(date).startOf('month').isSame(moment(vm.viewDate).startOf('month'))) || cell.events.length === 0) { | |
97 | + vm.cellIsOpen = false; | |
98 | + } else { | |
99 | + vm.cellIsOpen = true; | |
100 | + vm.viewDate = date; | |
101 | + } | |
102 | + } | |
103 | + | |
104 | + }; | |
105 | + | |
106 | + }); | ... | ... |
app/partials/Accept/Accept.controller.js
app/partials/Accept/Accept.html
... | ... | @@ -0,0 +1,24 @@ |
1 | +<div class="container"> | |
2 | +<div class="row"> | |
3 | + <div class="col-md-4"> | |
4 | + <div class="widget stacked"> | |
5 | + <!-- <div class="widget-header"></div> --> | |
6 | + <div class="widget-content" style="padding-left: 0; padding-right: 0; padding-bottom: 0;"> | |
7 | + <div class="col-md-2"><img class="src-image" src="img/images.jpg"></div> | |
8 | + <div class="col-md-10"> | |
9 | + <form> | |
10 | + Title:<br> | |
11 | + <input type="text" name="firstname"><br> | |
12 | + Content:<br> | |
13 | + <input type="text" name="lastname"> | |
14 | + </form> | |
15 | + </div> | |
16 | + <div class="col-xs-12" style="background-color: #eee; padding: 15px; text-align: right;"> | |
17 | + <button type="button" class="btn btn-default" style="padding: 3px 12px; border-radius: 0;">Accept</button> | |
18 | + <button type="button" class="btn btn-default" style="padding: 3px 12px; border-radius: 0;">Cancel</button> | |
19 | + </div> | |
20 | + </div> | |
21 | + </div> | |
22 | + </div> | |
23 | +</div> | |
24 | +</div> | |
0 | 25 | \ No newline at end of file | ... | ... |
app/partials/Accept/Accept.service.js
... | ... | @@ -0,0 +1,13 @@ |
1 | +(function(){ | |
2 | + 'use strict'; | |
3 | + angular.module('acufuel') | |
4 | + .service('acceptService', ['$q', '$http', 'BE', acceptService]); | |
5 | + | |
6 | + function acceptService($q, $http, BE) { | |
7 | + var temp = {}; | |
8 | + | |
9 | + | |
10 | + | |
11 | + } | |
12 | + | |
13 | +})(); | |
0 | 14 | \ No newline at end of file | ... | ... |
app/partials/AirList/AirList.controller.js
app/partials/AirList/AirList.html
... | ... | @@ -0,0 +1,195 @@ |
1 | +<div class="container"> | |
2 | + <div class="row"> | |
3 | + <div class="col-md-7" style="padding-right: 60px;"> | |
4 | + <div class="widget"> | |
5 | + <div class="widget-header"> | |
6 | + <i class="icon-pencil"></i> | |
7 | + <i class="fa fa-tasks" aria-hidden="true"></i> | |
8 | + <h3>Add a New Company</h3> | |
9 | + </div> | |
10 | + <div class="widget-content" style="padding-left: 0; padding-right: 0;"> | |
11 | + <div class="container"> | |
12 | + <div class="row"> | |
13 | + <div class="col-md-6" style="margin-left: 20px;"> | |
14 | + <div class="widget-header"> | |
15 | + <i class="fa fa-plane"></i> | |
16 | + <h3>Aircraft List</h3> | |
17 | + </div> | |
18 | + <div class="widget-content" style="padding:0px"> | |
19 | + <div class="table-responsive"> | |
20 | + <table class="table table-bordered table-hover table-striped"> | |
21 | + <thead> | |
22 | + <tr> | |
23 | + <th>Tail</th> | |
24 | + <th>Make</th> | |
25 | + <th>Model</th> | |
26 | + <th>Size</th> | |
27 | + <th>Margin</th> | |
28 | + </tr> | |
29 | + </thead> | |
30 | + <tbody> | |
31 | + <tr> | |
32 | + <td> | |
33 | + <input type="text" style="width:100px;" class="form-control"> | |
34 | + </td> | |
35 | + <td> | |
36 | + <select class="form-control" style="height:31px;"> | |
37 | + <option>Margin1</option> | |
38 | + <option>Margin2</option> | |
39 | + </select> | |
40 | + </td> | |
41 | + <td> | |
42 | + <select class="form-control" style="height:31px;"> | |
43 | + <option>Margin1</option> | |
44 | + <option>Margin2</option> | |
45 | + </select> | |
46 | + </td> | |
47 | + <td> | |
48 | + <select class="form-control" style="height:31px;"> | |
49 | + <option>Margin1</option> | |
50 | + <option>Margin2</option> | |
51 | + </select> | |
52 | + </td> | |
53 | + <td> | |
54 | + <select class="form-control" style="height:31px;"> | |
55 | + <option>Margin1</option> | |
56 | + <option>Margin2</option> | |
57 | + </select> | |
58 | + </td> | |
59 | + </tr> | |
60 | + <tr> | |
61 | + <td> | |
62 | + <input type="text" style="width:100px;" class="form-control"> | |
63 | + </td> | |
64 | + <td> | |
65 | + <select class="form-control" style="height:31px;"> | |
66 | + <option>Margin1</option> | |
67 | + <option>Margin2</option> | |
68 | + </select> | |
69 | + </td> | |
70 | + <td> | |
71 | + <select class="form-control" style="height:31px;"> | |
72 | + <option>Margin1</option> | |
73 | + <option>Margin2</option> | |
74 | + </select> | |
75 | + </td> | |
76 | + <td> | |
77 | + <select class="form-control" style="height:31px;"> | |
78 | + <option>Margin1</option> | |
79 | + <option>Margin2</option> | |
80 | + </select> | |
81 | + </td> | |
82 | + <td> | |
83 | + <select class="form-control" style="height:31px;"> | |
84 | + <option>Margin1</option> | |
85 | + <option>Margin2</option> | |
86 | + </select> | |
87 | + </td> | |
88 | + </tr> | |
89 | + <tr> | |
90 | + <td> | |
91 | + <input type="text" style="width:100px;" class="form-control"> | |
92 | + </td> | |
93 | + <td> | |
94 | + <select class="form-control" style="height:31px;"> | |
95 | + <option>Margin1</option> | |
96 | + <option>Margin2</option> | |
97 | + </select> | |
98 | + </td> | |
99 | + <td> | |
100 | + <select class="form-control" style="height:31px;"> | |
101 | + <option>Margin1</option> | |
102 | + <option>Margin2</option> | |
103 | + </select> | |
104 | + </td> | |
105 | + <td> | |
106 | + <select class="form-control" style="height:31px;"> | |
107 | + <option>Margin1</option> | |
108 | + <option>Margin2</option> | |
109 | + </select> | |
110 | + </td> | |
111 | + <td> | |
112 | + <select class="form-control" style="height:31px;"> | |
113 | + <option>Margin1</option> | |
114 | + <option>Margin2</option> | |
115 | + </select> | |
116 | + </td> | |
117 | + </tr> | |
118 | + <tr> | |
119 | + <td> | |
120 | + <input type="text" style="width:100px;" class="form-control"> | |
121 | + </td> | |
122 | + <td> | |
123 | + <select class="form-control" style="height:31px;"> | |
124 | + <option>Margin1</option> | |
125 | + <option>Margin2</option> | |
126 | + </select> | |
127 | + </td> | |
128 | + <td> | |
129 | + <select class="form-control" style="height:31px;"> | |
130 | + <option>Margin1</option> | |
131 | + <option>Margin2</option> | |
132 | + </select> | |
133 | + </td> | |
134 | + <td> | |
135 | + <select class="form-control" style="height:31px;"> | |
136 | + <option>Margin1</option> | |
137 | + <option>Margin2</option> | |
138 | + </select> | |
139 | + </td> | |
140 | + <td> | |
141 | + <select class="form-control" style="height:31px;"> | |
142 | + <option>Margin1</option> | |
143 | + <option>Margin2</option> | |
144 | + </select> | |
145 | + </td> | |
146 | + </tr> | |
147 | + <tr> | |
148 | + <td> | |
149 | + <input type="text" style="width:100px;" class="form-control"> | |
150 | + </td> | |
151 | + <td> | |
152 | + <select class="form-control" style="height:31px;"> | |
153 | + <option>Margin1</option> | |
154 | + <option>Margin2</option> | |
155 | + </select> | |
156 | + </td> | |
157 | + <td> | |
158 | + <select class="form-control" style="height:31px;"> | |
159 | + <option>Margin1</option> | |
160 | + <option>Margin2</option> | |
161 | + </select> | |
162 | + </td> | |
163 | + <td> | |
164 | + <select class="form-control" style="height:31px;"> | |
165 | + <option>Margin1</option> | |
166 | + <option>Margin2</option> | |
167 | + </select> | |
168 | + </td> | |
169 | + <td> | |
170 | + <select class="form-control" style="height:31px;"> | |
171 | + <option>Margin1</option> | |
172 | + <option>Margin2</option> | |
173 | + </select> | |
174 | + </td> | |
175 | + </tr> | |
176 | + </tbody> | |
177 | + </table> | |
178 | + </div> | |
179 | + <div class="clearfix"></div> | |
180 | + </div> | |
181 | + <div class="col-xs-12" style=" padding: 15px; text-align: right;"> | |
182 | + <button type="button" class="btn btn-default">Cancel</button> | |
183 | + <button type="button" class="btn btn-warning">Go Back</button> | |
184 | + <button type="button" class="btn btn-success">Save</button> | |
185 | + <!-- <button type="button" class="btn btn-default" style="padding: 3px 12px; border-radius: 0;">Cancel</button> --> | |
186 | + </div> | |
187 | + | |
188 | + </div> | |
189 | + </div> | |
190 | + </div> | |
191 | + </div> | |
192 | + </div> | |
193 | + </div> | |
194 | + </div> | |
195 | +</div> | |
0 | 196 | \ No newline at end of file | ... | ... |
app/partials/AirList/AirList.service.js
... | ... | @@ -0,0 +1,13 @@ |
1 | +(function(){ | |
2 | + 'use strict'; | |
3 | + angular.module('acufuel') | |
4 | + .service('AirListService', ['$q', '$http', 'BE', AirListService]); | |
5 | + | |
6 | + function AirListService($q, $http, BE) { | |
7 | + var temp = {}; | |
8 | + | |
9 | + | |
10 | + | |
11 | + } | |
12 | + | |
13 | +})(); | |
0 | 14 | \ No newline at end of file | ... | ... |
app/partials/AntiochFlightDepartment/AntiochFlightDepartment.controller.js
... | ... | @@ -0,0 +1,16 @@ |
1 | +'use strict'; | |
2 | + | |
3 | + //Load controller | |
4 | + angular.module('acufuel') | |
5 | + | |
6 | + .controller('AntiochFlightDepartmentcontroller', ['$scope',function($scope) { | |
7 | + | |
8 | + $scope.test = "Testing..."; | |
9 | + | |
10 | + $(function() { | |
11 | + $('#toggle-five').bootstrapToggle(); | |
12 | + console.log("hello"); | |
13 | + }) | |
14 | + | |
15 | + | |
16 | + }]); | ... | ... |
app/partials/AntiochFlightDepartment/AntiochFlightDepartment.html
... | ... | @@ -0,0 +1,64 @@ |
1 | +<div class="container"> | |
2 | + <div class="row"> | |
3 | + <div class="col-md-10" style="padding-right: 60px; margin-bottom: 30px;"> | |
4 | + <div class="widget"> | |
5 | + <div class="widget-header"> | |
6 | + <i class="icon-pencil"></i> | |
7 | + <i class="fa fa-building-o" aria-hidden="true"></i> | |
8 | + <h3>Antioch Flight Department</h3> | |
9 | + </div> | |
10 | + <div class="widget-content" style="padding-left: 0; padding-right: 0; "> | |
11 | + <div class="container"> | |
12 | + <div class="row"> | |
13 | + <div class="col-md-6" style="margin-left: 20px;"> | |
14 | + <div class="widget stacked"> | |
15 | + <div class="widget-header"> | |
16 | + <i class="fa fa-building-o" aria-hidden="true"></i> | |
17 | + <h3>Contact Detail</h3> | |
18 | + <div class="pull-right my-toggle-switch" style="margin-top: 10px; margin-right: 30px;"> | |
19 | + <div><input id="toggle-five" checked type="checkbox" data-size="mini" data-width="110" data-toggle="toggle" data-on="PRICE EMAIL ON" data-off="PRICE EMAIL OFF"> | |
20 | + </div> | |
21 | + </div> | |
22 | + </div> | |
23 | + <div class="widget-content"> | |
24 | + <div class="row" style="margin-left:0px"> | |
25 | + <div class="col-md-6"> | |
26 | + <h3 style="color:#F90;"> | |
27 | + <b>Monica Smith</b> | |
28 | + </h3> | |
29 | + </div> | |
30 | + <div class="col-md-6"> | |
31 | + <div style="margin-bottom: 10px" class="input-group email-password"> | |
32 | + <span class="input-group-addon email-password"><i class="glyphicon glyphicon-user email-password-icon"></i></span> | |
33 | + <input id="login-username" type="text" class="form-control email-password" name="username" value="" placeholder="username or email"> | |
34 | + </div> | |
35 | + | |
36 | + <div class="input-group email-password"> | |
37 | + <span class="input-group-addon email-password"><i class="fa fa-key" aria-hidden="true"></i></span> | |
38 | + <input id="login-password" type="password" class="form-control email-password" name="password" placeholder="password"> | |
39 | + </div> | |
40 | + </div> | |
41 | + </div> | |
42 | + <div> | |
43 | + <p><i class="fa fa-map-marker"></i> Reviera State Rd32 <input type="checkbox"></p> | |
44 | + <p><i class="fa fa-phone"></i> (310) 2342-3433 <input type="checkbox"></p> | |
45 | + <p><i class="fa fa-envelope"></i> freed@gmail.com <input type="checkbox"></p> | |
46 | + </div> | |
47 | + </br> | |
48 | + <div> | |
49 | + <p><b>Company Notes</b> <input type="checkbox"></p> | |
50 | + <p>This is the test data. note will be written in this</p> | |
51 | + <button type="button" class="btn btn-primary">Send Price to This Contacts</button> | |
52 | + </div> | |
53 | + <!-- <div class="col-md-6"> | |
54 | + <button type="button" class="btn btn-primary">Send Price to This Contacts</button> | |
55 | + </div> --> | |
56 | + </div> | |
57 | + </div> | |
58 | + </div> | |
59 | + </div> | |
60 | + </div> | |
61 | + </div> | |
62 | + </div> | |
63 | + </div> | |
64 | +</div> | |
0 | 65 | \ No newline at end of file | ... | ... |
app/partials/AntiochFlightDepartment/AntiochFlightDepartment.service.js
... | ... | @@ -0,0 +1,13 @@ |
1 | +(function(){ | |
2 | + 'use strict'; | |
3 | + angular.module('acufuel') | |
4 | + .service('AntiochFlightDepartmentService', ['$q', '$http', 'BE', AntiochFlightDepartmentService]); | |
5 | + | |
6 | + function AntiochFlightDepartmentService($q, $http, BE) { | |
7 | + var temp = {}; | |
8 | + | |
9 | + | |
10 | + | |
11 | + } | |
12 | + | |
13 | +})(); | |
0 | 14 | \ No newline at end of file | ... | ... |
app/partials/ContactView/ContactView.controller.js
... | ... | @@ -0,0 +1,15 @@ |
1 | +'use strict'; | |
2 | + | |
3 | + //Load controller | |
4 | + angular.module('acufuel') | |
5 | + | |
6 | + .controller('ContactViewController', ['$scope',function($scope) { | |
7 | + | |
8 | + $scope.test = "Testing..."; | |
9 | + | |
10 | + $(function() { | |
11 | + $('#toggle-one12').bootstrapToggle(); | |
12 | + $('#toggle-two21').bootstrapToggle(); | |
13 | + }) | |
14 | + | |
15 | + }]); | |
0 | 16 | \ No newline at end of file | ... | ... |
app/partials/ContactView/ContactView.html
... | ... | @@ -0,0 +1,243 @@ |
1 | +<style> | |
2 | + .subnavbar .mainnav > li:nth-child(3) > a{ | |
3 | + color: #ff9900; | |
4 | + } | |
5 | +</style> | |
6 | +<div class="main"> | |
7 | + <div class="container"> | |
8 | + <div class="row"> | |
9 | + <div class="col-md-12"> | |
10 | + <div class="widget stacked "> | |
11 | + <div class="widget-content"> | |
12 | + <div class="tabbable"> | |
13 | + <ul class="nav nav-tabs"> | |
14 | + <li> | |
15 | + <a ui-sref="app.customers">Company View | |
16 | + <i class="fa fa-caret-down" aria-hidden="true"></i> | |
17 | + </a> | |
18 | + </li> | |
19 | + <li class="active"> | |
20 | + <a ui-sref="app.ContactView">Contact View | |
21 | + <i class="fa fa-caret-down" aria-hidden="true"></i> | |
22 | + </a> | |
23 | + </li> | |
24 | + <li> | |
25 | + <a ui-sref="app.FuelVendors">Fuel Vendors | |
26 | + <i class="fa fa-caret-down" aria-hidden="true"></i> | |
27 | + </a> | |
28 | + </li> | |
29 | + <li style="margin: 0px 10px 4px 40px;"><input type="text" style="height:31px;"class="form-control" name="name" id="name" placeholder="Search In Table"></li> | |
30 | + <li><button type="button" class="btn btn-default btn-sm">Clear Search And Filters</button></li> | |
31 | + <li style="float:right"><button type="submit" class="btn btn-success btn-sm"><i class="fa fa-plus" aria-hidden="true"></i> Add Company</button></li> | |
32 | + </ul> | |
33 | + <br> | |
34 | + <div class="tab-content customer-table" style="margin:0px"> | |
35 | + <div class="tab-pane active" id="companyView"> | |
36 | + <table class="table table-striped"> | |
37 | + <thead> | |
38 | + <tr> | |
39 | + <th> | |
40 | + <input type="text" class="form-control" style="height:31px;" name="name" id="name"> | |
41 | + <label class="font-company">Last Name <i class="fa fa-sort" aria-hidden="true"></i></label> | |
42 | + </th> | |
43 | + <th> | |
44 | + <input type="text" class="form-control" style="height:31px;" name="name" id="name"> | |
45 | + <label class="font-company">First Name <i class="fa fa-sort" aria-hidden="true"></i></label> | |
46 | + </th> | |
47 | + <th> | |
48 | + <input type="text" class="form-control" style="height:31px;" name="name" id="name"> | |
49 | + <label class="font-company">Company Name <i class="fa fa-sort" aria-hidden="true"></i></label> | |
50 | + </th> | |
51 | + <th> | |
52 | + <input type="text" class="form-control" style="height:31px;" name="name" id="name"> | |
53 | + <label class="font-company">Work Phone <i class="fa fa-sort" aria-hidden="true"></i></label> | |
54 | + </th> | |
55 | + <th> | |
56 | + <input type="text" class="form-control" style="height:31px;" name="name" id="name"> | |
57 | + <label class="font-company">Mobile Phone <i class="fa fa-sort" aria-hidden="true"></i></label> | |
58 | + </th> | |
59 | + <th> | |
60 | + <input type="text" class="form-control" style="height:31px;" name="name" id="name"> | |
61 | + <label class="font-company"> Title <i class="fa fa-sort" aria-hidden="true"></i></label> | |
62 | + </th> | |
63 | + <th> | |
64 | + <input type="text" class="form-control" style="height:31px;" name="name" id="name"> | |
65 | + <label class="font-company">Username <i class="fa fa-sort" aria-hidden="true"></i></label> | |
66 | + </th> | |
67 | + <th> | |
68 | + | |
69 | + <label class="font-company">Pricing Email <i class="fa fa-sort" aria-hidden="true"></i></label> | |
70 | + </th> | |
71 | + <th> | |
72 | + <input type="text" class="form-control" style="height:31px;" name="name" id="name"> | |
73 | + <label class="font-company">Password <i class="fa fa-sort" aria-hidden="true"></i></label> | |
74 | + </th> | |
75 | + <!-- <th></th> | |
76 | + <th></th> --> | |
77 | + </tr> | |
78 | + </thead> | |
79 | + <tbody> | |
80 | + <tr> | |
81 | + <td class="font-company">colony</td> | |
82 | + <td class="font-company">Gerry</td> | |
83 | + <td class="font-company">Est LLC</td> | |
84 | + <td class="font-company">(310) 555-1212</td> | |
85 | + <td class="font-company">(310) 555-1212</td> | |
86 | + <td class="font-company">Acufuel</td> | |
87 | + <td class="font-company">Usel 1</td> | |
88 | + <td class="font-company"><input id="toggle-one12" checked type="checkbox" data-size="mini" data-toggle="toggle"> | |
89 | + </td> | |
90 | + <td class="font-company">Password 123</td> | |
91 | + <!-- <td ></td> | |
92 | + <td></td> --> | |
93 | + </tr> | |
94 | + <tr> | |
95 | + <td class="font-company">colony</td> | |
96 | + <td class="font-company">Gerry</td> | |
97 | + <td class="font-company">Est LLC</td> | |
98 | + <td class="font-company">(310) 555-1212</td> | |
99 | + <td class="font-company">(310) 555-1212</td> | |
100 | + <td class="font-company">Acufuel</td> | |
101 | + <td class="font-company">Usel 1</td> | |
102 | + <td class="font-company"><input id="toggle-two21" checked type="checkbox" data-size="mini" data-toggle="toggle"> | |
103 | + | |
104 | + </td> | |
105 | + <td class="font-company">Password 123</td> | |
106 | + <!-- <td></td> | |
107 | + <td></td> --> | |
108 | + </tr> | |
109 | + </tbody> | |
110 | + </table> | |
111 | + <div class="row" style="margin-left: 0px;"> | |
112 | + <div class="col-md-2"> | |
113 | + <button type="button" class="btn btn-warning">Export Customers</button> | |
114 | + </div> | |
115 | + <div class="col-md-10"> | |
116 | + <div class="row" style="margin-left: 0px;"> | |
117 | + <div class="col-md-6"> | |
118 | + </div> | |
119 | + <div class="col-md-2"> | |
120 | + <select class="form-control"> | |
121 | + <option>20 Records Per Page</option> | |
122 | + <option>50 Records Per Page</option> | |
123 | + <option>100 Records Per Page</option> | |
124 | + </select> | |
125 | + </div> | |
126 | + <div class="col-md-4"> | |
127 | + <ul class="pagination" style="margin:0px"> | |
128 | + <li><a href="javascript:;">ยซ</a></li> | |
129 | + <li class="active"><a href="#">1</a></li> | |
130 | + <li><a href="javascript:;">2</a></li> | |
131 | + <li><a href="javascript:;">3</a></li> | |
132 | + <li><a href="javascript:;">4</a></li> | |
133 | + <li><a href="javascript:;">5</a></li> | |
134 | + <li><a href="javascript:;">ยป</a></li> | |
135 | + </ul> | |
136 | + </div> | |
137 | + </div> | |
138 | + </div> | |
139 | + </div> | |
140 | + </div> | |
141 | + <div class="tab-pane" id="contactView"> | |
142 | + <table class="table table-striped"> | |
143 | + <thead> | |
144 | + <tr> | |
145 | + <th> <input type="text" class="form-control" style="height:31px;" name="name" id="name"> Last Name</th> | |
146 | + <th> <input type="text" class="form-control" style="height:31px;" name="name" id="name">First Name</th> | |
147 | + <th> <input type="text" class="form-control" style="height:31px;" name="name" id="name">Company Name</th> | |
148 | + <th> <input type="text" class="form-control" style="height:31px;" name="name" id="name">Work Phone</th> | |
149 | + <th> <input type="text" class="form-control" style="height:31px;" name="name" id="name">Mobile Phone</th> | |
150 | + <th> <input type="text" class="form-control" style="height:31px;" name="name" id="name">Title</th> | |
151 | + <th> <input type="text" class="form-control" style="height:31px;" name="name" id="name">Pricing Email</th> | |
152 | + <th> <input type="text" class="form-control" style="height:31px;" name="name" id="name">Username</th> | |
153 | + <th> <input type="text" class="form-control" style="height:31px;" name="name" id="name">Password</th> | |
154 | + <th></th> | |
155 | + <th></th> | |
156 | + </tr> | |
157 | + </thead> | |
158 | + <tbody> | |
159 | + <tr> | |
160 | + <td>Name and inc.</td> | |
161 | + <td>3</td> | |
162 | + <td>03423233</td> | |
163 | + <td>Jemmy</td> | |
164 | + <td>KIAD</td> | |
165 | + <td></td> | |
166 | + <td><input id="toggle-one12" checked type="checkbox" data-size="mini" data-toggle="toggle"></td> <td></td> | |
167 | + <td>$123</td> | |
168 | + <td></td> | |
169 | + <td></td> | |
170 | + </tr> | |
171 | + <tr> | |
172 | + <td>Name and inc.</td> | |
173 | + <td>3</td> | |
174 | + <td>03423233</td> | |
175 | + <td>Jemmy</td> | |
176 | + <td>KIAD</td> | |
177 | + <td></td> | |
178 | + <td><input id="toggle-two21" checked type="checkbox" data-size="mini" data-toggle="toggle"></td> | |
179 | + <td></td> | |
180 | + <td>$123</td> | |
181 | + <td></td> | |
182 | + <td></td> | |
183 | + </tr> | |
184 | + </tbody> | |
185 | + </table> | |
186 | + <div class="row" style="margin-left: 0px;"> | |
187 | + <div class="col-md-2"> | |
188 | + <button type="button" class="btn btn-info">Export CSV</button> | |
189 | + | |
190 | + </div> | |
191 | + <div class="col-md-10"> | |
192 | + <div class="row" style="margin-left: 0px;"> | |
193 | + <div class="col-md-6"> | |
194 | + </div> | |
195 | + <div class="col-md-2"> | |
196 | + <select class="form-control"> | |
197 | + <option>20 Records Per Page</option> | |
198 | + <option>50 Records Per Page</option> | |
199 | + <option>100 Records Per Page</option> | |
200 | + </select> | |
201 | + </div> | |
202 | + <div class="col-md-4"> | |
203 | + <ul class="pagination" style="margin:0px"> | |
204 | + <li><a href="javascript:;">ยซ</a></li> | |
205 | + <li class="active"><a href="#">1</a></li> | |
206 | + <li><a href="javascript:;">2</a></li> | |
207 | + <li><a href="javascript:;">3</a></li> | |
208 | + <li><a href="javascript:;">4</a></li> | |
209 | + <li><a href="javascript:;">5</a></li> | |
210 | + <li><a href="javascript:;">ยป</a></li> | |
211 | + </ul> | |
212 | + </div> | |
213 | + </div> | |
214 | + </div> | |
215 | + </div> | |
216 | + </div> | |
217 | + <div class="tab-pane" id="fuelVendors"> | |
218 | + <table class="table table-striped table-bordered"> | |
219 | + <thead> | |
220 | + <tr> | |
221 | + <th>Engine</th> | |
222 | + <th>Browser</th> | |
223 | + <th class="td-actions"></th> | |
224 | + </tr> | |
225 | + </thead> | |
226 | + <tbody> | |
227 | + </tbody> | |
228 | + </table> | |
229 | + </div> | |
230 | + </div> | |
231 | + </div> | |
232 | + </div> | |
233 | + <!-- /widget-content --> | |
234 | + </div> | |
235 | + <!-- /widget --> | |
236 | + </div> | |
237 | + <!-- /span8 --> | |
238 | + </div> | |
239 | + <!-- /row --> | |
240 | + </div> | |
241 | + <!-- /container --> | |
242 | +</div> | |
243 | +<!-- /main --> | |
0 | 244 | \ No newline at end of file | ... | ... |
app/partials/ContactView/ContactView.service.js
... | ... | @@ -0,0 +1,13 @@ |
1 | +(function(){ | |
2 | + 'use strict'; | |
3 | + angular.module('acufuel') | |
4 | + .service('ContactViewService', ['$q', '$http', 'BE', ContactViewService]); | |
5 | + | |
6 | + function ContactViewService($q, $http, BE) { | |
7 | + var temp = {}; | |
8 | + | |
9 | + | |
10 | + | |
11 | + } | |
12 | + | |
13 | +})(); | |
0 | 14 | \ No newline at end of file | ... | ... |
app/partials/DispatchFuel/DispatchFuel.controller.js
app/partials/DispatchFuel/DispatchFuel.html
... | ... | @@ -0,0 +1,57 @@ |
1 | +<div class="container"> | |
2 | +<div class="row"> | |
3 | + <div class="col-md-5"> | |
4 | + <div class="widget stacked"> | |
5 | + <div class="widget-header"> | |
6 | + <i class="icon-pencil"></i> | |
7 | + <span class="glyphicon glyphicon-search"></span> | |
8 | + <h3>Search & Dispatch Fuel</h3> | |
9 | + </div> | |
10 | + <!-- /widget-header --> | |
11 | + <div class="widget-content" style="padding-left: 0; padding-right: 0;"> | |
12 | + <div class="col-xs-12"> | |
13 | + <div class="col-md-2">Company</div> | |
14 | + <div class="col-md-10"> | |
15 | + <select required class="form-control"> | |
16 | + <option value="" disabled selected hidden>Select </option> | |
17 | + <option value="0">Open when powered (most valves do this)</option> | |
18 | + <option value="1">Closed when powered, auto-opens when power is cut</option> | |
19 | + </select> | |
20 | + </div> | |
21 | + </div> | |
22 | + <div class="col-xs-12"> | |
23 | + <div class="col-md-2 Airport">Airport</div> | |
24 | + <div class="col-md-4 Airport"> | |
25 | + <select required class="form-control"> | |
26 | + <option value="" disabled selected hidden>Select </option> | |
27 | + <option value="0">Open when powered (most valves do this)</option> | |
28 | + <option value="1">Closed when powered, auto-opens when power is cut</option> | |
29 | + </select> | |
30 | + <span style="font-size: 9px;">Formats: IATA,ICAO,City or Airport Name</span> | |
31 | + </div> | |
32 | + <div class="col-md-2 Airport">Aircraft</div> | |
33 | + <div class="col-md-4 Airport"> | |
34 | + <select required class="form-control"> | |
35 | + <option value="" disabled selected hidden>Select </option> | |
36 | + <option value="0">Open when powered (most valves do this)</option> | |
37 | + <option value="1">Closed when powered, auto-opens when power is cut</option> | |
38 | + </select> | |
39 | + </div> | |
40 | + </div> | |
41 | + <div class="col-xs-12"> | |
42 | + <div class="col-md-2 Airport">Requested<br>Volume</div> | |
43 | + <div class="col-md-4 Airport"> | |
44 | + <select required class="form-control"> | |
45 | + <option value="" disabled selected hidden>Select </option> | |
46 | + <option value="0">Open when powered (most valves do this)</option> | |
47 | + <option value="1">Closed when powered, auto-opens when power is cut</option> | |
48 | + </select> | |
49 | + </div> | |
50 | + <div class="col-md-6 Airport " style= "text-align: right;"><button type="button" class="btn btn-warning">Get Quote </button></div> | |
51 | + </div> | |
52 | + </div> | |
53 | + </div> | |
54 | + <!-- /widget-content --> | |
55 | + </div> | |
56 | + <!-- /widget --> | |
57 | +</div> | |
0 | 58 | \ No newline at end of file | ... | ... |
app/partials/DispatchFuel/DispatchFuel.service.js
... | ... | @@ -0,0 +1,13 @@ |
1 | +(function(){ | |
2 | + 'use strict'; | |
3 | + angular.module('acufuel') | |
4 | + .service('DispatchFuelService', ['$q', '$http', 'BE', DispatchFuelService]); | |
5 | + | |
6 | + function DispatchFuelService($q, $http, BE) { | |
7 | + var temp = {}; | |
8 | + | |
9 | + | |
10 | + | |
11 | + } | |
12 | + | |
13 | +})(); | |
0 | 14 | \ No newline at end of file | ... | ... |
app/partials/FuelVendors/FuelVendors.controller.js
... | ... | @@ -0,0 +1,40 @@ |
1 | +'use strict'; | |
2 | + | |
3 | + //Load controller | |
4 | + angular.module('acufuel') | |
5 | + | |
6 | + .controller('FuelVendorsController', ['$scope',function($scope) { | |
7 | + | |
8 | + $scope.vendorList = [{ | |
9 | + "companyName": "Name and inc", | |
10 | + "phone":"1010101010", | |
11 | + "contact":"jimmy", | |
12 | + "status":'Active', | |
13 | + "source": "tenant", | |
14 | + "allIn" : "$123" | |
15 | + },{ | |
16 | + "companyName": "Name and inc", | |
17 | + "phone":"1010101010", | |
18 | + "contact":"jimmy", | |
19 | + "status":'Active', | |
20 | + "source": "tenant", | |
21 | + "allIn" : "$123" | |
22 | + },{ | |
23 | + "companyName": "Name and inc", | |
24 | + "Fleet": 3, | |
25 | + "phone":"1010101010", | |
26 | + "contact":"jimmy", | |
27 | + "Base":"Kiad", | |
28 | + "status":'Inactive', | |
29 | + "source": "tenant", | |
30 | + "allIn" : "$123" | |
31 | + },{ | |
32 | + "companyName": "Name and inc", | |
33 | + "phone":"1010101010", | |
34 | + "contact":"jimmy", | |
35 | + "status":'Active', | |
36 | + "source": "tenant", | |
37 | + "allIn" : "$123" | |
38 | + }] | |
39 | + | |
40 | + }]); | |
0 | 41 | \ No newline at end of file | ... | ... |
app/partials/FuelVendors/FuelVendors.html
... | ... | @@ -0,0 +1,222 @@ |
1 | +<style> | |
2 | + .subnavbar .mainnav > li:nth-child(3) > a{ | |
3 | + color: #ff9900; | |
4 | + } | |
5 | +</style> | |
6 | +<div class="main"> | |
7 | + <div class="container"> | |
8 | + <div class="row"> | |
9 | + <div class="col-md-12"> | |
10 | + <div class="widget stacked "> | |
11 | + <div class="widget-content"> | |
12 | + <div class="tabbable"> | |
13 | + <ul class="nav nav-tabs"> | |
14 | + <li> | |
15 | + <a ui-sref="app.customers">Company View | |
16 | + <i class="fa fa-caret-down" aria-hidden="true"></i> | |
17 | + </a> | |
18 | + </li> | |
19 | + <li> | |
20 | + <a ui-sref="app.ContactView">Contact View | |
21 | + <i class="fa fa-caret-down" aria-hidden="true"></i> | |
22 | + </a> | |
23 | + </li> | |
24 | + <li class="active"> | |
25 | + <a ui-sref="app.FuelVendors">Fuel Vendors | |
26 | + <i class="fa fa-caret-down" aria-hidden="true"></i> | |
27 | + </a> | |
28 | + </li> | |
29 | + <li style="margin: 0px 10px 4px 40px;"><input type="text" style="height:31px;"class="form-control" name="name" id="name" placeholder="Search In Table"></li> | |
30 | + <li><button type="button" class="btn btn-default btn-sm">Clear Search And Filters</button></li> | |
31 | + <li style="float:right"><button type="submit" class="btn btn-success btn-sm"><i class="fa fa-plus" aria-hidden="true"></i> Add Company</button></li> | |
32 | + </ul> | |
33 | + <br> | |
34 | + <div class="tab-content customer-table" style="margin:0px"> | |
35 | + <div class="tab-pane active" id="companyView"> | |
36 | + <table class="table table-striped"> | |
37 | + <thead> | |
38 | + <tr> | |
39 | + <th> | |
40 | + <input type="text" class="form-control" style="height:31px;" name="name" id="name"> | |
41 | + <label class="font-company">Company Name <i class="fa fa-sort" aria-hidden="true"></i></label> | |
42 | + </th> | |
43 | + | |
44 | + <th> | |
45 | + <input type="text" class="form-control" style="height:31px;" name="name" id="name"> | |
46 | + <label class="font-company">Main Phone <i class="fa fa-sort" aria-hidden="true"></i></label> | |
47 | + </th> | |
48 | + <th> | |
49 | + <input type="text" class="form-control" style="height:31px;" name="name" id="name"> | |
50 | + <label class="font-company">Primary Contact <i class="fa fa-sort" aria-hidden="true"></i></label> | |
51 | + </th> | |
52 | + | |
53 | + <th> | |
54 | + <input type="text" class="form-control" style="height:31px;" name="name" id="name"> | |
55 | + <label class="font-company">Status <i class="fa fa-sort" aria-hidden="true"></i></label> | |
56 | + <th> | |
57 | + <input type="text" class="form-control" style="height:31px;" name="name" id="name"> | |
58 | + <label class="font-company">Source <i class="fa fa-sort" aria-hidden="true"></i></label> | |
59 | + </th> | |
60 | + <th> | |
61 | + <input type="text" class="form-control" style="height:31px;" name="name" id="name"> | |
62 | + <label class="font-company">Margin Setting <i class="fa fa-sort" aria-hidden="true"></i></label> | |
63 | + </th> | |
64 | + <th> | |
65 | + <input type="text" class="form-control" style="height:31px;" name="name" id="name"> | |
66 | + <label class="font-company">All In <i class="fa fa-sort" aria-hidden="true"></i></label> | |
67 | + </th> | |
68 | + </tr> | |
69 | + </thead> | |
70 | + <tbody> | |
71 | + <tr ng-repeat="vendor in vendorList"> | |
72 | + <td class="font-company">{{vendor.companyName}}</td> | |
73 | + <td class="font-company">{{vendor.phone}}</td> | |
74 | + <td class="font-company">{{vendor.contact}}</td> | |
75 | + <td class="font-company"> | |
76 | + <button type="button" ng-if="vendor.status == 'Active'" class="btn btn-success btn-xs">{{vendor.status}}</button> | |
77 | + <button type="button" ng-if="vendor.status == 'Inactive'" class="btn btn-warning btn-xs">{{vendor.status}}</button> | |
78 | + </td> | |
79 | + <td class="font-company">{{vendor.source}}</td> | |
80 | + <td class="font-company"> | |
81 | + <select class="form-control" style="height:31px;"> | |
82 | + <option>Margin1</option> | |
83 | + <option>Margin2</option> | |
84 | + </select> | |
85 | + </td> | |
86 | + <td class="font-company">{{vendor.allIn}}</td> | |
87 | + </tr> | |
88 | + </tbody> | |
89 | + </table> | |
90 | + <div class="row" style="margin-left: 0px;"> | |
91 | + <div class="col-md-2"> | |
92 | + <button type="button" class="btn btn-warning">Export Customers</button> | |
93 | + </div> | |
94 | + <div class="col-md-10"> | |
95 | + <div class="row" style="margin-left: 0px;"> | |
96 | + <div class="col-md-6"> | |
97 | + </div> | |
98 | + <div class="col-md-2"> | |
99 | + <select class="form-control"> | |
100 | + <option>20 Records Per Page</option> | |
101 | + <option>50 Records Per Page</option> | |
102 | + <option>100 Records Per Page</option> | |
103 | + </select> | |
104 | + </div> | |
105 | + <div class="col-md-4"> | |
106 | + <ul class="pagination" style="margin:0px"> | |
107 | + <li><a href="javascript:;">ยซ</a></li> | |
108 | + <li class="active"><a href="#">1</a></li> | |
109 | + <li><a href="javascript:;">2</a></li> | |
110 | + <li><a href="javascript:;">3</a></li> | |
111 | + <li><a href="javascript:;">4</a></li> | |
112 | + <li><a href="javascript:;">5</a></li> | |
113 | + <li><a href="javascript:;">ยป</a></li> | |
114 | + </ul> | |
115 | + </div> | |
116 | + </div> | |
117 | + </div> | |
118 | + </div> | |
119 | + </div> | |
120 | + <div class="tab-pane" id="contactView"> | |
121 | + <table class="table table-striped"> | |
122 | + <thead> | |
123 | + <tr> | |
124 | + <th> <input type="text" class="form-control" style="height:31px;" name="name" id="name"> Last Name</th> | |
125 | + <th> <input type="text" class="form-control" style="height:31px;" name="name" id="name">First Name</th> | |
126 | + <th> <input type="text" class="form-control" style="height:31px;" name="name" id="name">Company Name</th> | |
127 | + <th> <input type="text" class="form-control" style="height:31px;" name="name" id="name">Work Phone</th> | |
128 | + <th> <input type="text" class="form-control" style="height:31px;" name="name" id="name">Mobile Phone</th> | |
129 | + <th> <input type="text" class="form-control" style="height:31px;" name="name" id="name">Title</th> | |
130 | + <th> <input type="text" class="form-control" style="height:31px;" name="name" id="name">Pricing Email</th> | |
131 | + <th> <input type="text" class="form-control" style="height:31px;" name="name" id="name">Username</th> | |
132 | + <th> <input type="text" class="form-control" style="height:31px;" name="name" id="name">Password</th> | |
133 | + <th></th> | |
134 | + <th></th> | |
135 | + </tr> | |
136 | + </thead> | |
137 | + <tbody> | |
138 | + <tr> | |
139 | + <td>Name and inc.</td> | |
140 | + <td>3</td> | |
141 | + <td>03423233</td> | |
142 | + <td>Jemmy</td> | |
143 | + <td>KIAD</td> | |
144 | + <td></td> | |
145 | + <td><input type="checkbox" data-toggle="toggle" data-size="mini"></td> | |
146 | + <td></td> | |
147 | + <td>$123</td> | |
148 | + <td></td> | |
149 | + <td></td> | |
150 | + </tr> | |
151 | + <tr> | |
152 | + <td>Name and inc.</td> | |
153 | + <td>3</td> | |
154 | + <td>03423233</td> | |
155 | + <td>Jemmy</td> | |
156 | + <td>KIAD</td> | |
157 | + <td></td> | |
158 | + <td><input type="checkbox" data-toggle="toggle" data-size="mini"></td> | |
159 | + <td></td> | |
160 | + <td>$123</td> | |
161 | + <td></td> | |
162 | + <td></td> | |
163 | + </tr> | |
164 | + </tbody> | |
165 | + </table> | |
166 | + <div class="row" style="margin-left: 0px;"> | |
167 | + <div class="col-md-2"> | |
168 | + <button type="button" class="btn btn-info">Export CSV</button> | |
169 | + </div> | |
170 | + <div class="col-md-10"> | |
171 | + <div class="row" style="margin-left: 0px;"> | |
172 | + <div class="col-md-6"> | |
173 | + </div> | |
174 | + <div class="col-md-2"> | |
175 | + <select class="form-control"> | |
176 | + <option>20 Records Per Page</option> | |
177 | + <option>50 Records Per Page</option> | |
178 | + <option>100 Records Per Page</option> | |
179 | + </select> | |
180 | + </div> | |
181 | + <div class="col-md-4"> | |
182 | + <ul class="pagination" style="margin:0px"> | |
183 | + <li><a href="javascript:;">ยซ</a></li> | |
184 | + <li class="active"><a href="#">1</a></li> | |
185 | + <li><a href="javascript:;">2</a></li> | |
186 | + <li><a href="javascript:;">3</a></li> | |
187 | + <li><a href="javascript:;">4</a></li> | |
188 | + <li><a href="javascript:;">5</a></li> | |
189 | + <li><a href="javascript:;">ยป</a></li> | |
190 | + </ul> | |
191 | + </div> | |
192 | + </div> | |
193 | + </div> | |
194 | + </div> | |
195 | + </div> | |
196 | + <div class="tab-pane" id="fuelVendors"> | |
197 | + <table class="table table-striped table-bordered"> | |
198 | + <thead> | |
199 | + <tr> | |
200 | + <th>Engine</th> | |
201 | + <th>Browser</th> | |
202 | + <th class="td-actions"></th> | |
203 | + </tr> | |
204 | + </thead> | |
205 | + <tbody> | |
206 | + </tbody> | |
207 | + </table> | |
208 | + </div> | |
209 | + </div> | |
210 | + </div> | |
211 | + </div> | |
212 | + <!-- /widget-content --> | |
213 | + </div> | |
214 | + <!-- /widget --> | |
215 | + </div> | |
216 | + <!-- /span8 --> | |
217 | + </div> | |
218 | + <!-- /row --> | |
219 | + </div> | |
220 | + <!-- /container --> | |
221 | +</div> | |
222 | +<!-- /main --> | |
0 | 223 | \ No newline at end of file | ... | ... |
app/partials/FuelVendors/FuelVendors.service.js
... | ... | @@ -0,0 +1,13 @@ |
1 | +(function(){ | |
2 | + 'use strict'; | |
3 | + angular.module('acufuel') | |
4 | + .service('FuelVendorsService', ['$q', '$http', 'BE', FuelVendorsService]); | |
5 | + | |
6 | + function FuelVendorsService($q, $http, BE) { | |
7 | + var temp = {}; | |
8 | + | |
9 | + | |
10 | + | |
11 | + } | |
12 | + | |
13 | +})(); | |
0 | 14 | \ No newline at end of file | ... | ... |
app/partials/NewCompany/NewCompany.controller.js
... | ... | @@ -0,0 +1,12 @@ |
1 | +'use strict'; | |
2 | + | |
3 | + //Load controller | |
4 | + angular.module('acufuel') | |
5 | + | |
6 | + .controller('NewCompanyController', ['$scope','$uibModal', function($scope , $uibModal) { | |
7 | + | |
8 | + | |
9 | + $(function() { | |
10 | + $('#toggle-one2').bootstrapToggle(); | |
11 | + }) | |
12 | + }]); | |
0 | 13 | \ No newline at end of file | ... | ... |
app/partials/NewCompany/NewCompany.html
... | ... | @@ -0,0 +1,121 @@ |
1 | +<div class="container"> | |
2 | +<div class="row"> | |
3 | + <div class="col-md-7"> | |
4 | + <div class="widget" style="margin-bottom: 0;"> | |
5 | + <div class="widget-header"> | |
6 | + <i class="icon-pencil"></i> | |
7 | + <i class="fa fa-tasks" aria-hidden="true"></i> | |
8 | + <h3>Add a New Company</h3> | |
9 | + <div class="pull-right my-toggle-switch" style="margin-right: 30px;"> | |
10 | + <div style="color: #ff9a01;">Activate     | |
11 | + <!-- <input id="toggle-one2" checked type="checkbox" data-size="mini" data-width="55" data-toggle="toggle"> --> | |
12 | + <input id="toggle-one2" checked type="checkbox" data-size="mini" data-width="55" data-toggle="toggle" data-on="Active" data-off="Dactive"> | |
13 | + </div> | |
14 | + </div> | |
15 | + <div class="clearfix"></div> | |
16 | + </div> | |
17 | + <div class="widget-content" style="padding-left: 0; padding-right: 0;"> | |
18 | + <div class="col-xs-12"> | |
19 | + <div class="col-md-8"> | |
20 | + <div class="pull-left"> | |
21 | + <label class="new-input-label"><b>Company Name</b></label> | |
22 | + </div> | |
23 | + <div class="pull-left"> | |
24 | + <input type="Address" ng-model="data.company" class="form-control" id="Address" placeholder=""> | |
25 | + </div> | |
26 | + <div class="clearfix"></div> | |
27 | + </div> | |
28 | + <div class="col-md-4"> | |
29 | + <div class="pull-left"> | |
30 | + <label class="new-input-label"><b>Base ICAO</b></label> | |
31 | + </div> | |
32 | + <div class="pull-right"> | |
33 | + <input type="Address" style="width: 100px;" class="form-control" id="Address" placeholder=""> | |
34 | + </div> | |
35 | + <div class="clearfix"></div> | |
36 | + </div> | |
37 | + </div> | |
38 | + <div class="clearfix"></div><br> | |
39 | + <div class="col-xs-12"> | |
40 | + <div class="col-md-2"> | |
41 | + <b>Relationship</b> | |
42 | + </div> | |
43 | + <div class="col-md-10"><input type="checkbox" name="vehicle" value="Bike"> Check here if this is a Base Tenant<br> | |
44 | + <input type="checkbox" name="vehicle" value="Car" checked> Check here if this is a FuelerLinx Customer<br> | |
45 | + <input type="checkbox" name="vehicle" value="Car" checked> Check here if this is a Contract Fuel Vendor | |
46 | + </div> | |
47 | + </div> | |
48 | + <div class="clearfix"></div> | |
49 | + <br/> | |
50 | + <div class="col-xs-12"> | |
51 | + <div class="col-md-3 Airport"> | |
52 | + <b>Master Margin</b> | |
53 | + </div> | |
54 | + <div class="col-md-3 Airport"> | |
55 | + <select required class="form-control"> | |
56 | + <option value="" disabled selected hidden>Select </option> | |
57 | + <option value="0">Open when powered (most valves do this)</option> | |
58 | + <option value="1">Closed when powered, auto-opens when power is cut</option> | |
59 | + </select> | |
60 | + </div> | |
61 | + <div class="col-md-3 Airport"> | |
62 | + <b>Certificate Type</b> | |
63 | + </div> | |
64 | + <div class="col-md-3 Airport"> | |
65 | + <select required class="form-control"> | |
66 | + <option value="" disabled selected hidden>Select </option> | |
67 | + <option value="0">Open when powered (most valves do this)</option> | |
68 | + <option value="1">Closed when powered, auto-opens when power is cut</option> | |
69 | + </select> | |
70 | + </div> | |
71 | + </div> | |
72 | + <div class="clearfix"></div> | |
73 | + <br/> | |
74 | + <div class="col-xs-12"> | |
75 | + <div class="col-md-2 Airport"><b>Address</b></div> | |
76 | + <div class="col-md-10 Airport"><input type="Address" class="form-control" id="Address" placeholder=""></div> | |
77 | + </div> | |
78 | + <div class="clearfix"></div> | |
79 | + <br/> | |
80 | + <div class="col-xs-12"> | |
81 | + <div class="col-md-2 Airport"><b>Address2</b></div> | |
82 | + <div class="col-md-10 Airport"><input type="Address" class="form-control" id="Address" placeholder=""></div> | |
83 | + </div> | |
84 | + <div class="clearfix"></div> | |
85 | + <br/> | |
86 | + <div class="col-xs-12"> | |
87 | + <div class="col-md-2 Airport"><b>City</b></div> | |
88 | + <div class="col-md-3 Airport"><input type="Address" class="form-control" id="Address" placeholder=""></div> | |
89 | + <div class="col-md-1 Airport"><b class="pull-right">State</b></div> | |
90 | + <div class="col-md-2 Airport"><input type="Address" class="form-control" id="Address" placeholder=""></div> | |
91 | + <div class="col-md-2 Airport"><b class="pull-right">Zip Code</b></div> | |
92 | + <div class="col-md-2 Airport"><input type="Address" class="form-control" id="Address" placeholder=""></div> | |
93 | + </div> | |
94 | + <div class="clearfix"></div> | |
95 | + <br/> | |
96 | + <div class="col-xs-12"> | |
97 | + <div class="col-md-2 Airport"><b>Country</b></div> | |
98 | + <div class="col-md-3 Airport"><input type="Address" class="form-control" id="Address" placeholder=""></div> | |
99 | + <div class="col-md-3 Airport"><b>Internal Note</b></div> | |
100 | + <div class="col-md-4 Airport"> | |
101 | + <form action="/action_page.php"> | |
102 | + <textarea name="message" rows="4" cols="20"></textarea> | |
103 | + </form> | |
104 | + </div> | |
105 | + </div> | |
106 | + <div class="clearfix"></div> | |
107 | + <br/> | |
108 | + <div class="col-xs-12"> | |
109 | + <div class="col-md-2 Airport"></div> | |
110 | + <div class="col-md-10 Airport"> | |
111 | + <div class="pull-right"> | |
112 | + <button type="button" class="btn btn-default" ng-click="cancel()">Cancel</button> | |
113 | + <button type="button" class="btn btn-warning" ng-click="addAircraft()">Next: Add Aircraft</button> | |
114 | + </div> | |
115 | + </div> | |
116 | + </div> | |
117 | + </div> | |
118 | + </div> | |
119 | + <div class="clearfix"></div> | |
120 | + </div> | |
121 | +</div> | |
0 | 122 | \ No newline at end of file | ... | ... |
app/partials/NewCompany/NewCompany.service.js
... | ... | @@ -0,0 +1,13 @@ |
1 | +(function(){ | |
2 | + 'use strict'; | |
3 | + angular.module('acufuel') | |
4 | + .service('NewCompanyService', ['$q', '$http', 'BE', NewCompanyService]); | |
5 | + | |
6 | + function NewCompanyService($q, $http, BE) { | |
7 | + var temp = {}; | |
8 | + | |
9 | + | |
10 | + | |
11 | + } | |
12 | + | |
13 | +})(); | |
0 | 14 | \ No newline at end of file | ... | ... |
app/partials/NewCompany/addAircarft.html
... | ... | @@ -0,0 +1,156 @@ |
1 | +<style> | |
2 | + | |
3 | +.button1 { | |
4 | + display: inline-block; | |
5 | + height: 35px; | |
6 | + line-height: 35px; | |
7 | + padding-right: 15px; | |
8 | + padding-left: 50px; | |
9 | + position: relative; | |
10 | + background-color:rgb(41,127,184); | |
11 | + color:rgb(255,255,255); | |
12 | + text-decoration: none; | |
13 | + text-transform: uppercase; | |
14 | + letter-spacing: 1px; | |
15 | + margin-bottom: 15px; | |
16 | + border: 0; | |
17 | + | |
18 | + | |
19 | + border-radius: 5px; | |
20 | + -moz-border-radius: 5px; | |
21 | + -webkit-border-radius: 5px; | |
22 | + text-shadow:0px 1px 0px rgba(0,0,0,0.5); | |
23 | + -ms-filter:"progid:DXImageTransform.Microsoft.dropshadow(OffX=0,OffY=1,Color=#ff123852,Positive=true)";zoom:1; | |
24 | + filter:progid:DXImageTransform.Microsoft.dropshadow(OffX=0,OffY=1,Color=#ff123852,Positive=true); | |
25 | + | |
26 | + -moz-box-shadow:0px 2px 2px rgba(0,0,0,0.2); | |
27 | + -webkit-box-shadow:0px 2px 2px rgba(0,0,0,0.2); | |
28 | + box-shadow:0px 2px 2px rgba(0,0,0,0.2); | |
29 | + -ms-filter:"progid:DXImageTransform.Microsoft.dropshadow(OffX=0,OffY=2,Color=#33000000,Positive=true)"; | |
30 | + filter:progid:DXImageTransform.Microsoft.dropshadow(OffX=0,OffY=2,Color=#33000000,Positive=true); | |
31 | +} | |
32 | + | |
33 | +.button1 span { | |
34 | + position: absolute; | |
35 | + left: 0; | |
36 | + top: 0; | |
37 | + width: 35px; | |
38 | + background-color:rgba(0,0,0,0.5); | |
39 | + | |
40 | + -webkit-border-top-left-radius: 5px; | |
41 | +-webkit-border-bottom-left-radius: 5px; | |
42 | +-moz-border-radius-topleft: 5px; | |
43 | +-moz-border-radius-bottomleft: 5px; | |
44 | +border-top-left-radius: 5px; | |
45 | +border-bottom-left-radius: 5px; | |
46 | +border-right: 1px solid rgba(0,0,0,0.15); | |
47 | +} | |
48 | + | |
49 | +.button1:hover span, .button1.active span { | |
50 | + background-color:rgb(0,102,26); | |
51 | + border-right: 1px solid rgba(0,0,0,0.3); | |
52 | +} | |
53 | + | |
54 | +.button1:active { | |
55 | + margin-top: 2px; | |
56 | + margin-bottom: 13px; | |
57 | + | |
58 | + -moz-box-shadow:0px 1px 0px rgba(255,255,255,0.5); | |
59 | +-webkit-box-shadow:0px 1px 0px rgba(255,255,255,0.5); | |
60 | +box-shadow:0px 1px 0px rgba(255,255,255,0.5); | |
61 | +-ms-filter:"progid:DXImageTransform.Microsoft.dropshadow(OffX=0,OffY=1,Color=#ccffffff,Positive=true)"; | |
62 | +filter:progid:DXImageTransform.Microsoft.dropshadow(OffX=0,OffY=1,Color=#ccffffff,Positive=true); | |
63 | +} | |
64 | + | |
65 | +.button1.turquoise { | |
66 | + background: #449d44; | |
67 | +} | |
68 | + | |
69 | +</style> | |
70 | +<div class="container"> | |
71 | +<div class="row"> | |
72 | + <div class="col-md-7"> | |
73 | + <div class="widget" style="margin-bottom: 0;"> | |
74 | + <div class="widget-header"> | |
75 | + <i class="icon-pencil"></i> | |
76 | + <i class="fa fa-tasks" aria-hidden="true"></i> | |
77 | + <h3>Add a New Company</h3> | |
78 | + <div class="pull-right my-toggle-switch" style="margin-right: 30px;"> | |
79 | + <div style="color: #ff9a01;">Activate     | |
80 | + <!-- <input id="toggle-one2" checked type="checkbox" data-size="mini" data-width="55" data-toggle="toggle"> --> | |
81 | + <input id="toggle-one2" checked type="checkbox" data-size="mini" data-width="55" data-toggle="toggle" data-on="Active" data-off="Dactive"> | |
82 | + </div> | |
83 | + </div> | |
84 | + <div class="clearfix"></div> | |
85 | + </div> | |
86 | + <div class="widget-content" style="padding-left: 0; padding-right: 0;"> | |
87 | + <div class="col-xs-12"> | |
88 | + <div class="widget-header"> | |
89 | + <i class="fa fa-list"></i> | |
90 | + <h3>Aircraft List</h3> | |
91 | + </div> | |
92 | + <div class="widget-content" style="padding:0px;border: 0px; "> | |
93 | + <div class="table-responsive"> | |
94 | + <table class="table table-bordered table-hover table-striped addRow" style="margin-bottom: 0px;"> | |
95 | + <thead> | |
96 | + <tr> | |
97 | + <th>Tail</th> | |
98 | + <th>Make</th> | |
99 | + <th>Model</th> | |
100 | + <th>Size</th> | |
101 | + <th>Margin</th> | |
102 | + </tr> | |
103 | + </thead> | |
104 | + <tbody id="assqwe"> | |
105 | + <tr> | |
106 | + <td> | |
107 | + <input type="text" style="width:100px;" class="form-control"> | |
108 | + </td> | |
109 | + <td> | |
110 | + <select class="form-control" style="height:31px;"> | |
111 | + <option>Margin1</option> | |
112 | + <option>Margin2</option> | |
113 | + </select> | |
114 | + </td> | |
115 | + <td> | |
116 | + <select class="form-control" style="height:31px;"> | |
117 | + <option>Margin1</option> | |
118 | + <option>Margin2</option> | |
119 | + </select> | |
120 | + </td> | |
121 | + <td> | |
122 | + <select class="form-control" style="height:31px;"> | |
123 | + <option>Margin1</option> | |
124 | + <option>Margin2</option> | |
125 | + </select> | |
126 | + </td> | |
127 | + <td> | |
128 | + <select class="form-control" style="height:31px;"> | |
129 | + <option>Margin1</option> | |
130 | + <option>Margin2</option> | |
131 | + </select> | |
132 | + </td> | |
133 | + </tr> | |
134 | + </tbody> | |
135 | + | |
136 | + </table> | |
137 | + </div> | |
138 | + <div class="clearfix"></div> | |
139 | + </div> | |
140 | + </div> | |
141 | + <div class="clearfix"></div> | |
142 | + <div class="col-xs-12" style="margin-bottom: 50px;margin-top: 10px;"> | |
143 | + <button ng-click="appendText()" class="button1 turquoise pull-right"><span>+</span>Add Aircraft</button> | |
144 | + </div> | |
145 | + <div class="col-xs-12" style="margin-bottom: 20px;"> | |
146 | + <div class="pull-right"> | |
147 | + <button type="button" class="btn btn-default" ng-click="cancelCraft()">Cancel</button> | |
148 | + <button type="button" class="btn btn-warning" ng-click="goBack()">Go Back</button> | |
149 | + <button type="button" class="btn btn-success" ng-click="goBack()">Save</button> | |
150 | + </div> | |
151 | + </div> | |
152 | + </div> | |
153 | + </div> | |
154 | + <div class="clearfix"></div> | |
155 | + </div> | |
156 | +</div> | |
0 | 157 | \ No newline at end of file | ... | ... |
app/partials/account/account.service.js
... | ... | @@ -0,0 +1,13 @@ |
1 | +(function(){ | |
2 | + 'use strict'; | |
3 | + angular.module('acufuel') | |
4 | + .service('accountService', ['$q', '$http', 'BE', accountService]); | |
5 | + | |
6 | + function accountService($q, $http, BE) { | |
7 | + var temp = {}; | |
8 | + | |
9 | + | |
10 | + | |
11 | + } | |
12 | + | |
13 | +})(); | |
0 | 14 | \ No newline at end of file | ... | ... |
app/partials/analytics/analytics.service.js
... | ... | @@ -0,0 +1,13 @@ |
1 | +(function(){ | |
2 | + 'use strict'; | |
3 | + angular.module('acufuel') | |
4 | + .service('analyticsService', ['$q', '$http', 'BE', analyticsService]); | |
5 | + | |
6 | + function analyticsService($q, $http, BE) { | |
7 | + var temp = {}; | |
8 | + | |
9 | + | |
10 | + | |
11 | + } | |
12 | + | |
13 | +})(); | |
0 | 14 | \ No newline at end of file | ... | ... |
app/partials/charts/charts.service.js
... | ... | @@ -0,0 +1,13 @@ |
1 | +(function(){ | |
2 | + 'use strict'; | |
3 | + angular.module('acufuel') | |
4 | + .service('chartsService', ['$q', '$http', 'BE', chartsService]); | |
5 | + | |
6 | + function chartsService($q, $http, BE) { | |
7 | + var temp = {}; | |
8 | + | |
9 | + | |
10 | + | |
11 | + } | |
12 | + | |
13 | +})(); | |
0 | 14 | \ No newline at end of file | ... | ... |
app/partials/customers/customers.controller.js
... | ... | @@ -2,9 +2,228 @@ |
2 | 2 | |
3 | 3 | //Load controller |
4 | 4 | angular.module('acufuel') |
5 | + .controller('customersController', ['$scope', '$rootScope', '$uibModal', '$filter', 'CustomersService', customersController]); | |
5 | 6 | |
6 | - .controller('customersController', ['$scope',function($scope) { | |
7 | + function customersController($scope, $rootScope, $uibModal, $filter, CustomersService) { | |
8 | + $(document).ready(function() { | |
9 | + $('#example').DataTable(); | |
10 | + }); | |
11 | + $scope.data = {}; | |
12 | + $scope.aircraft = {}; | |
13 | + $scope.data.activate = true; | |
14 | + $scope.customerList = [{ | |
15 | + "companyName": "Name and inc", | |
16 | + "Fleet": 3, | |
17 | + "phone":"1010101010", | |
18 | + "contact":"jimmy", | |
19 | + "Base":"Kiad", | |
20 | + "status":'Active', | |
21 | + "source": "tenant", | |
22 | + "allIn" : "$123" | |
23 | + },{ | |
24 | + "companyName": "Name and inc", | |
25 | + "Fleet": 3, | |
26 | + "phone":"1010101010", | |
27 | + "contact":"jimmy", | |
28 | + "Base":"Kiad", | |
29 | + "status":'Inactive', | |
30 | + "source": "tenant", | |
31 | + "allIn" : "$123" | |
32 | + },{ | |
33 | + "companyName": "Name and inc", | |
34 | + "Fleet": 3, | |
35 | + "phone":"1010101010", | |
36 | + "contact":"jimmy", | |
37 | + "Base":"Kiad", | |
38 | + "status":'Active', | |
39 | + "source": "tenant", | |
40 | + "allIn" : "$123" | |
41 | + },{ | |
42 | + "companyName": "Name and inc", | |
43 | + "Fleet": 3, | |
44 | + "phone":"1010101010", | |
45 | + "contact":"jimmy", | |
46 | + "Base":"Kiad", | |
47 | + "status":'Active', | |
48 | + "source": "tenant", | |
49 | + "allIn" : "$123" | |
50 | + }] | |
7 | 51 | |
8 | - $scope.test = "Testing..."; | |
52 | + $(function() { | |
53 | + $('#toggle-one2').bootstrapToggle(); | |
54 | + $('#toggle-one2').change(function() { | |
55 | + $('#console-event').html('Toggle: ' + $(this).prop('checked')); | |
56 | + $scope.data.activate = $(this).prop('checked'); | |
57 | + }) | |
58 | + }) | |
9 | 59 | |
10 | - }]); | |
11 | 60 | \ No newline at end of file |
61 | + | |
62 | + | |
63 | + getData(); | |
64 | + function getData(){ | |
65 | + CustomersService.getAircraftMake().then(function(result) { | |
66 | + console.log("result", result) | |
67 | + $scope.aircraftMakeList = result; | |
68 | + $scope.aircraft.make = $scope.aircraftMakeList[0]; | |
69 | + CustomersService.getModal($scope.aircraft.make).then(function(result) { | |
70 | + $scope.aircraftModalList = result; | |
71 | + $scope.aircraft.model = $scope.aircraftModalList[0]; | |
72 | + CustomersService.getAircraftSize($scope.aircraft.make, $scope.aircraft.model).then(function(result) { | |
73 | + $scope.aircraftSizeList = result; | |
74 | + $scope.aircraft.size = $scope.aircraftSizeList[0]; | |
75 | + }) | |
76 | + }) | |
77 | + | |
78 | + }) | |
79 | + } | |
80 | + | |
81 | + | |
82 | + $scope.getModal = function(){ | |
83 | + var makeId = $scope.aircraft.make; | |
84 | + CustomersService.getModal(makeId).then(function(result) { | |
85 | + $scope.aircraftModalList = result; | |
86 | + $scope.aircraft.model = $scope.aircraftModalList[0]; | |
87 | + CustomersService.getAircraftSize(makeId, $scope.aircraft.model).then(function(result) { | |
88 | + $scope.aircraftSizeList = result; | |
89 | + $scope.aircraft.size = $scope.aircraftSizeList[0]; | |
90 | + }) | |
91 | + }) | |
92 | + } | |
93 | + | |
94 | + $scope.getSize = function(){ | |
95 | + CustomersService.getAircraftSize($scope.aircraft.make, $scope.aircraft.model).then(function(result) { | |
96 | + $scope.aircraftSizeList = result; | |
97 | + $scope.aircraft.size = $scope.aircraftSizeList[0]; | |
98 | + }) | |
99 | + } | |
100 | + | |
101 | + $scope.addFirstData = function(sel, step){ | |
102 | + // console.log($scope.data) | |
103 | + | |
104 | + // var companyData = "companyName=" + $scope.data.companyName + "&masterMargin=" + $scope.data.masterMargin | |
105 | + // + "&addressOne=" + $scope.data.addressOne + "&addressTwo=" + $scope.data.addressTwo + "&city=" + $scope.data.city + "&state=" | |
106 | + // + $scope.data.state + "&country=" + $scope.data.country + "&zipcode=" + $scope.data.zipcode + "&internalNote=" | |
107 | + // + $scope.data.internalNote + "&certificateType=" + $scope.data.certificateType + "&baseTenant=" + $scope.data.baseTenant | |
108 | + // + "&fuelerlinxCustomer=" + $scope.data.fuelerlinxCustomer + "&contractFuelVendor=" + $scope.data.contractFuelVendor | |
109 | + // + "&activate=" + $scope.data.activate + "&baseIcao=" + $scope.data.baseIcao; | |
110 | + | |
111 | + // CustomersService.addCompany(companyData).then(function(result) { | |
112 | + // console.log(result) | |
113 | + // $scope.accountId = result; | |
114 | + //$scope.aircraft.accountId = $scope.accountId; | |
115 | + // }) | |
116 | + $(sel).trigger('next.m.' + step); | |
117 | + getData(); | |
118 | + } | |
119 | + | |
120 | + $scope.users = [ | |
121 | + {id: 1, name: 'awesome user1', status: 2, group: 4, groupName: 'admin'}, | |
122 | + {id: 2, name: 'awesome user2', status: undefined, group: 3, groupName: 'vip'}, | |
123 | + {id: 3, name: 'awesome user3', status: 2, group: null} | |
124 | + ]; | |
125 | + | |
126 | + $scope.statuses = [ | |
127 | + {value: 1, text: 'status1'}, | |
128 | + {value: 2, text: 'status2'}, | |
129 | + {value: 3, text: 'status3'}, | |
130 | + {value: 4, text: 'status4'} | |
131 | + ]; | |
132 | + | |
133 | + $scope.groups = []; | |
134 | + $scope.loadGroups = function() { | |
135 | + return $scope.groups.length ? null : $http.get('/groups').success(function(data) { | |
136 | + $scope.groups = data; | |
137 | + }); | |
138 | + }; | |
139 | + | |
140 | + $scope.showGroup = function(user) { | |
141 | + if(user.group && $scope.groups.length) { | |
142 | + var selected = $filter('filter')($scope.groups, {id: user.group}); | |
143 | + return selected.length ? selected[0].text : 'Not set'; | |
144 | + } else { | |
145 | + return user.groupName || 'Not set'; | |
146 | + } | |
147 | + }; | |
148 | + | |
149 | + $scope.showStatus = function(user) { | |
150 | + var selected = []; | |
151 | + if(user.status) { | |
152 | + selected = $filter('filter')($scope.statuses, {value: user.status}); | |
153 | + } | |
154 | + return selected.length ? selected[0].text : 'Not set'; | |
155 | + }; | |
156 | + | |
157 | + $scope.checkName = function(data, id) { | |
158 | + if (id === 2 && data !== 'awesome') { | |
159 | + return "Username 2 should be `awesome`"; | |
160 | + } | |
161 | + }; | |
162 | + | |
163 | + // filter users to show | |
164 | + $scope.filterUser = function(user) { | |
165 | + return user.isDeleted !== true; | |
166 | + }; | |
167 | + | |
168 | + // mark user as deleted | |
169 | + $scope.deleteUser = function(id) { | |
170 | + var filtered = $filter('filter')($scope.users, {id: id}); | |
171 | + if (filtered.length) { | |
172 | + filtered[0].isDeleted = true; | |
173 | + } | |
174 | + }; | |
175 | + | |
176 | + // add user | |
177 | + $scope.addUser = function() { | |
178 | + $scope.users.push({ | |
179 | + id: $scope.users.length+1, | |
180 | + name: '', | |
181 | + status: null, | |
182 | + group: null, | |
183 | + isNew: true | |
184 | + }); | |
185 | + }; | |
186 | + | |
187 | + // cancel all changes | |
188 | + $scope.cancel = function() { | |
189 | + for (var i = $scope.users.length; i--;) { | |
190 | + var user = $scope.users[i]; | |
191 | + // undelete | |
192 | + if (user.isDeleted) { | |
193 | + delete user.isDeleted; | |
194 | + } | |
195 | + // remove new | |
196 | + if (user.isNew) { | |
197 | + $scope.users.splice(i, 1); | |
198 | + } | |
199 | + }; | |
200 | + }; | |
201 | + | |
202 | + // save edits | |
203 | + $scope.saveTable = function() { | |
204 | + var results = []; | |
205 | + for (var i = $scope.users.length; i--;) { | |
206 | + var user = $scope.users[i]; | |
207 | + // actually delete user | |
208 | + if (user.isDeleted) { | |
209 | + $scope.users.splice(i, 1); | |
210 | + } | |
211 | + // mark as not new | |
212 | + if (user.isNew) { | |
213 | + user.isNew = false; | |
214 | + } | |
215 | + | |
216 | + // send on server | |
217 | + results.push($http.post('/saveUser', user)); | |
218 | + } | |
219 | + | |
220 | + return $q.all(results); | |
221 | + }; | |
222 | + | |
223 | + $scope.appendText = function() { | |
224 | + getData(); | |
225 | + var newRow = $('<tr> <td> <input type="text" style="width:100px;" ng-model="aircraft.tail" class="form-control"> </td> <td style="width: 25%;"> <select class="form-control" ng-model="aircraft.make" ng-change="getModal()"> <option ng-repeat="make in aircraftMakeList">{{make}}</option> </select> </td> <td style="width: 20%;"> <select class="form-control" ng-model="aircraft.model" ng-change="getSize()"> <option ng-repeat="model in aircraftModalList">{{model}}</option> </select> </td> <td style="width: 25%;"> <select class="form-control" ng-model="aircraft.size"> <option ng-repeat="size in aircraftSizeList">{{size}}</option> </select> </td> <td> <select class="form-control"> <option>Margin1</option> <option>Margin2</option> </select> </td> </tr>'); | |
226 | + $('table.addRow').append(newRow); | |
227 | + } | |
228 | + | |
229 | + | |
230 | + } | |
12 | 231 | \ No newline at end of file | ... | ... |
app/partials/customers/customers.html
... | ... | @@ -2,6 +2,73 @@ |
2 | 2 | .subnavbar .mainnav > li:nth-child(3) > a{ |
3 | 3 | color: #ff9900; |
4 | 4 | } |
5 | + | |
6 | + .button1 { | |
7 | + display: inline-block; | |
8 | + height: 35px; | |
9 | + line-height: 35px; | |
10 | + padding-right: 15px; | |
11 | + padding-left: 50px; | |
12 | + position: relative; | |
13 | + background-color:rgb(41,127,184); | |
14 | + color:rgb(255,255,255); | |
15 | + text-decoration: none; | |
16 | + text-transform: uppercase; | |
17 | + letter-spacing: 1px; | |
18 | + margin-bottom: 15px; | |
19 | + border: 0; | |
20 | + | |
21 | + | |
22 | + border-radius: 5px; | |
23 | + -moz-border-radius: 5px; | |
24 | + -webkit-border-radius: 5px; | |
25 | + text-shadow:0px 1px 0px rgba(0,0,0,0.5); | |
26 | + -ms-filter:"progid:DXImageTransform.Microsoft.dropshadow(OffX=0,OffY=1,Color=#ff123852,Positive=true)";zoom:1; | |
27 | + filter:progid:DXImageTransform.Microsoft.dropshadow(OffX=0,OffY=1,Color=#ff123852,Positive=true); | |
28 | + | |
29 | + -moz-box-shadow:0px 2px 2px rgba(0,0,0,0.2); | |
30 | + -webkit-box-shadow:0px 2px 2px rgba(0,0,0,0.2); | |
31 | + box-shadow:0px 2px 2px rgba(0,0,0,0.2); | |
32 | + -ms-filter:"progid:DXImageTransform.Microsoft.dropshadow(OffX=0,OffY=2,Color=#33000000,Positive=true)"; | |
33 | + filter:progid:DXImageTransform.Microsoft.dropshadow(OffX=0,OffY=2,Color=#33000000,Positive=true); | |
34 | + } | |
35 | + | |
36 | + .button1 span { | |
37 | + position: absolute; | |
38 | + left: 0; | |
39 | + top: 0; | |
40 | + width: 35px; | |
41 | + background-color:rgba(0,0,0,0.5); | |
42 | + | |
43 | + -webkit-border-top-left-radius: 5px; | |
44 | + -webkit-border-bottom-left-radius: 5px; | |
45 | + -moz-border-radius-topleft: 5px; | |
46 | + -moz-border-radius-bottomleft: 5px; | |
47 | + border-top-left-radius: 5px; | |
48 | + border-bottom-left-radius: 5px; | |
49 | + border-right: 1px solid rgba(0,0,0,0.15); | |
50 | + } | |
51 | + | |
52 | + .button1:hover span, .button1.active span { | |
53 | + background-color:rgb(0,102,26); | |
54 | + border-right: 1px solid rgba(0,0,0,0.3); | |
55 | + } | |
56 | + | |
57 | + .button1:active { | |
58 | + margin-top: 2px; | |
59 | + margin-bottom: 13px; | |
60 | + | |
61 | + -moz-box-shadow:0px 1px 0px rgba(255,255,255,0.5); | |
62 | + -webkit-box-shadow:0px 1px 0px rgba(255,255,255,0.5); | |
63 | + box-shadow:0px 1px 0px rgba(255,255,255,0.5); | |
64 | + -ms-filter:"progid:DXImageTransform.Microsoft.dropshadow(OffX=0,OffY=1,Color=#ccffffff,Positive=true)"; | |
65 | + filter:progid:DXImageTransform.Microsoft.dropshadow(OffX=0,OffY=1,Color=#ccffffff,Positive=true); | |
66 | + } | |
67 | + | |
68 | + .button1.turquoise { | |
69 | + background: #449d44; | |
70 | + } | |
71 | + | |
5 | 72 | </style> |
6 | 73 | <div class="main"> |
7 | 74 | <div class="container"> |
... | ... | @@ -12,96 +79,90 @@ |
12 | 79 | <div class="tabbable"> |
13 | 80 | <ul class="nav nav-tabs"> |
14 | 81 | <li class="active"> |
15 | - <a href="#companyView" data-toggle="tab">Company View</a> | |
82 | + <a ui-sref="app.customers">Company View | |
83 | + <i class="fa fa-caret-down" aria-hidden="true"></i> | |
84 | + </a> | |
85 | + </li> | |
86 | + <li> | |
87 | + <a ui-sref="app.ContactView">Contact View | |
88 | + <i class="fa fa-caret-down" aria-hidden="true"></i> | |
89 | + </a> | |
90 | + </li> | |
91 | + <li> | |
92 | + <a ui-sref="app.FuelVendors">Fuel Vendors | |
93 | + <i class="fa fa-caret-down" aria-hidden="true"></i> | |
94 | + </a> | |
16 | 95 | </li> |
17 | - <li><a href="#contactView" data-toggle="tab">Contact View</a></li> | |
18 | - <li><a href="#fuelVendors" data-toggle="tab">Fuel Vendors</a></li> | |
19 | 96 | <li style="margin: 0px 10px 4px 40px;"><input type="text" style="height:31px;"class="form-control" name="name" id="name" placeholder="Search In Table"></li> |
20 | - <li><button type="button" class="btn btn-info btn-sm">Clear Search And Filters</button></li> | |
21 | - <li style="float:right"><button type="submit" class="btn btn-success btn-sm"><i class="icon-ok"></i> Add Company</button></li> | |
97 | + <li><button type="button" class="btn btn-default btn-sm">Clear Search And Filters</button></li> | |
98 | + <li style="float:right"><button type="submit" data-toggle="modal" data-target="#demo-modal-3" class="btn btn-success btn-sm"><i class="fa fa-plus" aria-hidden="true"></i> Add Company</button></li> | |
22 | 99 | </ul> |
23 | - <br> | |
24 | - <div class="tab-content" style="margin:0px"> | |
100 | + <br> | |
101 | + <div class="tab-content customer-table" style="margin:0px"> | |
25 | 102 | <div class="tab-pane active" id="companyView"> |
26 | - <table class="table table-striped"> | |
103 | + <table id="example" class="table table-striped"> | |
27 | 104 | <thead> |
28 | 105 | <tr> |
29 | 106 | <th> |
30 | - <input type="text" class="form-control" style="height:31px;" name="name" id="name"> | |
31 | - <lable class="font-company">Company Name</lable> | |
32 | - </th> | |
33 | - <th> | |
34 | - <input type="text" class="form-control" style="height:31px;" name="name" id="name"> | |
35 | - <lable class="font-company">Fleet</lable> | |
107 | + <input type="text" class="form-control" name="name" id="name"> | |
108 | + <label class="font-company">Company Name <i class="fa fa-sort" aria-hidden="true"></i></label> | |
36 | 109 | </th> |
37 | 110 | <th> |
38 | - <input type="text" class="form-control" style="height:31px;" name="name" id="name"> | |
39 | - <lable class="font-company">Main Phone</lable> | |
111 | + <input type="text" class="form-control" name="name" id="name"> | |
112 | + <label class="font-company">Fleet <i class="fa fa-sort" aria-hidden="true"></i></label> | |
40 | 113 | </th> |
41 | 114 | <th> |
42 | - <input type="text" class="form-control" style="height:31px;" name="name" id="name"> | |
43 | - <lable class="font-company">Primary Contact</lable> | |
115 | + <input type="text" class="form-control" name="name" id="name"> | |
116 | + <label class="font-company">Main Phone <i class="fa fa-sort" aria-hidden="true"></i></label> | |
44 | 117 | </th> |
45 | 118 | <th> |
46 | - <input type="text" class="form-control" style="height:31px;" name="name" id="name"> | |
47 | - <lable class="font-company">Base</lable> | |
119 | + <input type="text" class="form-control" name="name" id="name"> | |
120 | + <label class="font-company">Primary Contact <i class="fa fa-sort" aria-hidden="true"></i></label> | |
48 | 121 | </th> |
49 | 122 | <th> |
50 | - <input type="text" class="form-control" style="height:31px;" name="name" id="name"> | |
51 | - <lable class="font-company">Status</lable> | |
123 | + <input type="text" class="form-control" name="name" id="name"> | |
124 | + <label class="font-company">Base <i class="fa fa-sort" aria-hidden="true"></i></label> | |
52 | 125 | </th> |
53 | 126 | <th> |
54 | - <input type="text" class="form-control" style="height:31px;" name="name" id="name"> | |
55 | - <lable class="font-company">Source</lable> | |
127 | + <select class="form-control"> | |
128 | + <option value="showAll" selected>Show All</option> | |
129 | + </select> | |
130 | + <label class="font-company">Status <i class="fa fa-sort" aria-hidden="true"></i></label> | |
56 | 131 | </th> |
57 | 132 | <th> |
58 | - <input type="text" class="form-control" style="height:31px;" name="name" id="name"> | |
59 | - <lable class="font-company">Margin Setting</lable> | |
133 | + <select class="form-control"> | |
134 | + <option value="showAll" selected>Show All</option> | |
135 | + </select> | |
136 | + <label class="font-company">Margin Setting <i class="fa fa-sort" aria-hidden="true"></i></label> | |
60 | 137 | </th> |
61 | 138 | <th> |
62 | - <input type="text" class="form-control" style="height:31px;" name="name" id="name"> | |
63 | - <lable class="font-company">All In</lable> | |
139 | + <input type="text" class="form-control" name="name" id="name"> | |
140 | + <label class="font-company">All In <i class="fa fa-sort" aria-hidden="true"></i></label> | |
64 | 141 | </th> |
65 | - <th></th> | |
66 | - <th></th> | |
67 | - </tr> | |
142 | + <th> </th> | |
68 | 143 | </thead> |
69 | 144 | <tbody> |
70 | - <tr> | |
71 | - <td class="font-company">Name and inc.</td> | |
72 | - <td class="font-company">3</td> | |
73 | - <td class="font-company">03423233</td> | |
74 | - <td class="font-company">Jemmy</td> | |
75 | - <td class="font-company">KIAD</td> | |
76 | - <td class="font-company"><button type="button" class="btn btn-success btn-xs">Active</button></td> | |
77 | - <td class="font-company">Tenant</td> | |
145 | + <tr ng-repeat="customer in customerList"> | |
146 | + <td class="font-company">{{customer.companyName}}</td> | |
147 | + <td class="font-company">{{customer.Fleet}}</td> | |
148 | + <td class="font-company">{{customer.phone}}</td> | |
149 | + <td class="font-company">{{customer.contact}}</td> | |
150 | + <td class="font-company">{{customer.Base}}</td> | |
78 | 151 | <td class="font-company"> |
79 | - <select class="form-control" style="height:31px;"> | |
80 | - <option>Margin1</option> | |
81 | - <option>Margin2</option> | |
82 | - </select> | |
152 | + <button type="button" ng-if="customer.status == 'Active'" class="btn btn-success btn-xs">{{customer.status}}</button> | |
153 | + <button type="button" ng-if="customer.status == 'Inactive'" class="btn btn-warning btn-xs">{{customer.status}}</button> | |
154 | + </td> | |
83 | 155 | </td> |
84 | - <td class="font-company">$123</td> | |
85 | - <td ></td> | |
86 | - <td></td> | |
87 | - </tr> | |
88 | - <tr> | |
89 | - <td class="font-company">Name and inc.</td> | |
90 | - <td class="font-company">3</td> | |
91 | - <td class="font-company">03423233</td> | |
92 | - <td class="font-company">Jemmy</td> | |
93 | - <td class="font-company">KIAD</td> | |
94 | - <td class="font-company"><button type="button" class="btn btn-danger btn-xs">Inactive</button></td> | |
95 | - <td class="font-company">Tenant</td> | |
96 | 156 | <td class="font-company"> |
97 | 157 | <select class="form-control" style="height:31px;"> |
98 | 158 | <option>Margin1</option> |
99 | 159 | <option>Margin2</option> |
100 | 160 | </select> |
101 | 161 | </td> |
102 | - <td class="font-company">$123</td> | |
103 | - <td></td> | |
104 | - <td></td> | |
162 | + <td class="font-company">{{customer.allIn}}</td> | |
163 | + <td> | |
164 | + <button type="button" class="btn btn-info btn-xs">Setup Fuel</button> | |
165 | + </td> | |
105 | 166 | </tr> |
106 | 167 | </tbody> |
107 | 168 | </table> |
... | ... | @@ -237,4 +298,333 @@ |
237 | 298 | </div> |
238 | 299 | <!-- /container --> |
239 | 300 | </div> |
240 | -<!-- /main --> | |
241 | 301 | \ No newline at end of file |
302 | +<!-- /main --> | |
303 | + | |
304 | +<form class="modal multi-step" id="demo-modal-3" editable-form name="tableform" onaftersave="saveTable()" oncancel="cancel()"> | |
305 | + <div class="modal-dialog modal-lg"> | |
306 | + <div class="modal-content"> | |
307 | + <div class="modal-body step-1" data-step="1" style="padding: 0;"> | |
308 | + <div> | |
309 | + <div class="row" style="margin: 0;"> | |
310 | + <div> | |
311 | + <div class="widget" style="margin-bottom: 0;"> | |
312 | + <div class="widget-header"> | |
313 | + <i class="icon-pencil"></i> | |
314 | + <i class="fa fa-tasks" aria-hidden="true"></i> | |
315 | + <h3>Add a New Company</h3> | |
316 | + <div class="pull-right my-toggle-switch" style="margin-right: 30px;"> | |
317 | + <div style="color: #ff9a01;">Activate     | |
318 | + <input id="toggle-one2" checked type="checkbox" data-size="mini" data-width="55" data-toggle="toggle" data-on="On" data-off="Off"> | |
319 | + </div> | |
320 | + </div> | |
321 | + <div class="clearfix"></div> | |
322 | + </div> | |
323 | + <div class="widget-content" style="padding-left: 0; padding-right: 0; border-bottom: 0;"> | |
324 | + <div class="col-xs-12"> | |
325 | + <div class="col-md-8"> | |
326 | + <div class="pull-left"> | |
327 | + <label class="new-input-label"><b>Company Name</b></label> | |
328 | + </div> | |
329 | + <div class="pull-left" style="margin-left: 15px;"> | |
330 | + <input type="text" ng-model="data.companyName" class="form-control" id="Address" placeholder=""> | |
331 | + </div> | |
332 | + <div class="clearfix"></div> | |
333 | + </div> | |
334 | + <div class="col-md-4"> | |
335 | + | |
336 | + <div class="pull-right"> | |
337 | + <input type="text" ng-model="data.baseIcao" style="width: 100px;" class="form-control" id="Address" placeholder=""> | |
338 | + </div> | |
339 | + <div class="pull-right"> | |
340 | + <label style="margin-right: 15px;" class="new-input-label"><b>Base ICAO</b></label> | |
341 | + </div> | |
342 | + <div class="clearfix"></div> | |
343 | + </div> | |
344 | + </div> | |
345 | + <div class="clearfix"></div><br> | |
346 | + <div class="col-xs-12"> | |
347 | + <div class="col-md-8"> | |
348 | + <div class="pull-left"> | |
349 | + <label class="new-input-label"><b>Relationship </b></label> | |
350 | + </div> | |
351 | + <div class="pull-left" style="margin-left: 32px;"> | |
352 | + <input type="checkbox" ng-model="data.baseTenant" name="vehicle" value="Bike"> Check here if this is a Base Tenant<br> | |
353 | + <input type="checkbox" ng-model="data.fuelerlinxCustomer" name="vehicle" value="Car" checked> Check here if this is a FuelerLinx Customer<br> | |
354 | + <input type="checkbox" ng-model="data.contractFuelVendor" name="vehicle" value="Car" checked> Check here if this is a Contract Fuel Vendor | |
355 | + </div> | |
356 | + <div class="clearfix"></div> | |
357 | + </div> | |
358 | + </div> | |
359 | + <div class="clearfix"></div> | |
360 | + <br/> | |
361 | + <div class="col-xs-12"> | |
362 | + <div class="col-md-6"> | |
363 | + <div class="pull-left" style="width: 110px;"> | |
364 | + <b>Master Margin</b> | |
365 | + </div> | |
366 | + <div class="pull-left"> | |
367 | + <select required class="form-control" style="max-width: 250px;" ng-model="data.masterMargin"> | |
368 | + <option value="" disabled selected hidden>Select </option> | |
369 | + <option value="good">Open when powered (most valves do this)</option> | |
370 | + <option value="perfect">Closed when powered, auto-opens when power is cut</option> | |
371 | + </select> | |
372 | + </div> | |
373 | + <div class="clearfix"></div> | |
374 | + </div> | |
375 | + | |
376 | + <div class="col-md-3 Airport" style="text-align: right;"> | |
377 | + <b>Certificate Type</b> | |
378 | + </div> | |
379 | + <div class="col-md-3 Airport"> | |
380 | + <select required class="form-control" ng-model="data.certificateType"> | |
381 | + <option value="" disabled selected hidden>Select </option> | |
382 | + <option value="good">Open when powered (most valves do this)</option> | |
383 | + <option value="perfect">Closed when powered, auto-opens when power is cut</option> | |
384 | + </select> | |
385 | + </div> | |
386 | + </div> | |
387 | + <div class="clearfix"></div> | |
388 | + <br/> | |
389 | + <div class="col-xs-12"> | |
390 | + <div class="col-md-12"> | |
391 | + <div class="pull-left" style="width: 110px;"> | |
392 | + <label class="new-input-label"><b>Address</b></label> | |
393 | + </div> | |
394 | + <div class="pull-left" style="width: calc(100% - 110px);"> | |
395 | + <input type="text" class="form-control" ng-model="data.addressOne" id="Address" placeholder=""> | |
396 | + </div> | |
397 | + <div class="clearfix"></div> | |
398 | + </div> | |
399 | + </div> | |
400 | + <div class="clearfix"></div> | |
401 | + <br/> | |
402 | + <div class="col-xs-12"> | |
403 | + <div class="col-md-12"> | |
404 | + <div class="pull-left" style="width: 110px;"> | |
405 | + <label class="new-input-label"><b>Address2</b></label> | |
406 | + </div> | |
407 | + <div class="pull-left" style="width: calc(100% - 110px);"> | |
408 | + <input type="text" ng-model="data.addressTwo" class="form-control" id="Address" placeholder=""> | |
409 | + </div> | |
410 | + <div class="clearfix"></div> | |
411 | + </div> | |
412 | + </div> | |
413 | + <div class="clearfix"></div> | |
414 | + <br/> | |
415 | + <div class="col-xs-12"> | |
416 | + | |
417 | + <div class="col-md-6"> | |
418 | + <div class="pull-left" style="width: 110px;"> | |
419 | + <label class="new-input-label"><b>City</b></label> | |
420 | + </div> | |
421 | + <div class="pull-left" style="width: calc(100% - 110px);"> | |
422 | + <input type="text" ng-model="data.city" class="form-control" id="Address" placeholder=""> | |
423 | + </div> | |
424 | + <div class="clearfix"></div> | |
425 | + </div> | |
426 | + <div class="col-md-3"> | |
427 | + <div class="pull-left" style="width: 40px;"> | |
428 | + <label class="new-input-label"><b>State</b></label> | |
429 | + </div> | |
430 | + <div class="pull-left" style="width: calc(100% - 110px);"> | |
431 | + <input type="text" ng-model="data.state" class="form-control" id="Address" placeholder=""> | |
432 | + </div> | |
433 | + <div class="clearfix"></div> | |
434 | + </div> | |
435 | + <div class="col-md-3"> | |
436 | + <div class="pull-left"> | |
437 | + <label class="new-input-label"><b>Zip Code</b></label> | |
438 | + </div> | |
439 | + <div class="pull-right" style="width: calc(100% - 60px);"> | |
440 | + <input type="tel" ng-model="data.zipcode" class="form-control" id="Address" placeholder=""> | |
441 | + </div> | |
442 | + <div class="clearfix"></div> | |
443 | + </div> | |
444 | + </div> | |
445 | + <div class="clearfix"></div> | |
446 | + <br/> | |
447 | + <div class="col-xs-12"> | |
448 | + | |
449 | + <div class="col-md-6"> | |
450 | + <div class="pull-left" style="width: 110px;"> | |
451 | + <label class="new-input-label"><b>Country</b></label> | |
452 | + </div> | |
453 | + <div class="pull-left" style="width: calc(100% - 110px);"> | |
454 | + <input type="text" ng-model="data.country" class="form-control" id="Address" placeholder=""> | |
455 | + </div> | |
456 | + <div class="clearfix"></div> | |
457 | + </div> | |
458 | + <div class="col-md-6"> | |
459 | + <div class="pull-left" style="width: 110px;"> | |
460 | + <label class="new-input-label"><b>Internal Note</b></label> | |
461 | + </div> | |
462 | + <div class="pull-left" style="width: calc(100% - 110px);"> | |
463 | + <textarea name="message" ng-model="data.internalNote" rows="4" cols="34"></textarea> | |
464 | + </div> | |
465 | + <div class="clearfix"></div> | |
466 | + </div> | |
467 | + </div> | |
468 | + <div class="clearfix"></div> | |
469 | + <!-- <br/> | |
470 | + <div class="col-xs-12"> | |
471 | + <div class="col-md-2 Airport"></div> | |
472 | + <div class="col-md-10 Airport"> | |
473 | + <div class="pull-right"> | |
474 | + <button type="button" class="btn btn-default" ng-click="cancel()">Cancel</button> | |
475 | + <button type="button" class="btn btn-warning" ng-click="addAircraft()">Next: Add Aircraft</button> | |
476 | + </div> | |
477 | + </div> | |
478 | + </div> --> | |
479 | + </div> | |
480 | + </div> | |
481 | + <div class="clearfix"></div> | |
482 | + </div> | |
483 | + </div> | |
484 | + </div> | |
485 | + </div> | |
486 | + <div class="modal-body step-2" data-step="2" style="padding: 0;"> | |
487 | + <div> | |
488 | + <div class="row" style="margin: 0;"> | |
489 | + <div> | |
490 | + <div class="widget" style="margin-bottom: 0;"> | |
491 | + <div class="widget-header"> | |
492 | + <i class="icon-pencil"></i> | |
493 | + <i class="fa fa-tasks" aria-hidden="true"></i> | |
494 | + <h3>Add a New Company</h3> | |
495 | + <div class="clearfix"></div> | |
496 | + </div> | |
497 | + <div class="widget-content" style="padding-left: 0; padding-right: 0; border-bottom: 0;"> | |
498 | + <div class="col-xs-12"> | |
499 | + <div class="widget-header"> | |
500 | + <i class="fa fa-list"></i> | |
501 | + <h3>Aircraft List</h3> | |
502 | + </div> | |
503 | + <div class="widget-content" style="padding:0px;border: 0px; "> | |
504 | + <div class="table-responsive"> | |
505 | + <!-- <table class="table table-bordered table-hover table-striped addRow" style="margin-bottom: 0px;"> | |
506 | + <thead> | |
507 | + <tr> | |
508 | + <th>Tail</th> | |
509 | + <th>Make</th> | |
510 | + <th>Model</th> | |
511 | + <th>Size</th> | |
512 | + <th>Margin</th> | |
513 | + </tr> | |
514 | + </thead> | |
515 | + <tbody> | |
516 | + <tr> | |
517 | + <td> | |
518 | + <input type="text" style="width:100px;" ng-model="aircraft.tail" class="form-control"> | |
519 | + </td> | |
520 | + <td style="width: 25%;"> | |
521 | + <select class="form-control" ng-model="aircraft.make" ng-change="getModal()"> | |
522 | + <option ng-repeat="make in aircraftMakeList">{{make}}</option> | |
523 | + </select> | |
524 | + </td> | |
525 | + <td style="width: 20%;"> | |
526 | + <select class="form-control" ng-model="aircraft.model" ng-change="getSize()"> | |
527 | + <option ng-repeat="model in aircraftModalList">{{model}}</option> | |
528 | + </select> | |
529 | + </td> | |
530 | + <td style="width: 25%;"> | |
531 | + <select class="form-control" ng-model="aircraft.size"> | |
532 | + <option ng-repeat="size in aircraftSizeList">{{size}}</option> | |
533 | + </select> | |
534 | + </td> | |
535 | + <td> | |
536 | + <select class="form-control"> | |
537 | + <option>Margin1</option> | |
538 | + <option>Margin2</option> | |
539 | + </select> | |
540 | + </td> | |
541 | + </tr> | |
542 | + </tbody> | |
543 | + | |
544 | + </table> --> | |
545 | + <table class="table table-bordered table-hover table-condensed"> | |
546 | + <tr style="font-weight: bold"> | |
547 | + <td style="width:40%">Name</td> | |
548 | + <td style="width:30%">Status</td> | |
549 | + <td style="width:30%">Group</td> | |
550 | + <td style="width:30%"><span ng-show="tableform.$visible">Action</span></td> | |
551 | + </tr> | |
552 | + <tr ng-repeat="user in users | filter:filterUser"> | |
553 | + <td> | |
554 | + <!-- editable username (text with validation) --> | |
555 | + <span editable-text="user.name" e-form="tableform" onbeforesave="checkName($data, user.id)"> | |
556 | + {{ user.name || 'empty' }} | |
557 | + </span> | |
558 | + </td> | |
559 | + <td> | |
560 | + <!-- editable status (select-local) --> | |
561 | + <span editable-select="user.status" e-form="tableform" e-ng-options="s.value as s.text for s in statuses"> | |
562 | + {{ showStatus(user) }} | |
563 | + </span> | |
564 | + </td> | |
565 | + <td> | |
566 | + <!-- editable group (select-remote) --> | |
567 | + <span editable-select="user.group" e-form="tableform" onshow="loadGroups()" e-ng-options="g.id as g.text for g in groups"> | |
568 | + {{ showGroup(user) }} | |
569 | + </span> | |
570 | + </td> | |
571 | + <td><button type="button" ng-show="tableform.$visible" ng-click="deleteUser(user.id)" class="btn btn-danger pull-right">Del</button></td> | |
572 | + </tr> | |
573 | + </table> | |
574 | + | |
575 | + <!-- buttons --> | |
576 | + <div class="btn-edit"> | |
577 | + <button type="button" class="btn btn-default" ng-show="!tableform.$visible" ng-click="tableform.$show()"> | |
578 | + edit | |
579 | + </button> | |
580 | + </div> | |
581 | + <div class="btn-form" ng-show="tableform.$visible"> | |
582 | + <button type="button" ng-disabled="tableform.$waiting" ng-click="addUser()" class="btn btn-default pull-right">add row</button> | |
583 | + <button type="submit" ng-disabled="tableform.$waiting" class="btn btn-primary">save</button> | |
584 | + <button type="button" ng-disabled="tableform.$waiting" ng-click="tableform.$cancel()" class="btn btn-default">cancel</button> | |
585 | + </div> | |
586 | + </div> | |
587 | + <div class="clearfix"></div> | |
588 | + </div> | |
589 | + </div> | |
590 | + <div class="clearfix"></div> | |
591 | + <div class="col-xs-12" style="margin-bottom: 50px;margin-top: 10px;"> | |
592 | + <button ng-click="appendText()" class="button1 turquoise pull-right"><span>+</span>Add Aircraft</button> | |
593 | + </div> | |
594 | + <!-- <div class="col-xs-12" style="margin-bottom: 20px;"> | |
595 | + <div class="pull-right"> | |
596 | + <button type="button" class="btn btn-default" ng-click="cancelCraft()">Cancel</button> | |
597 | + <button type="button" class="btn btn-warning" ng-click="goBack()">Go Back</button> | |
598 | + <button type="button" class="btn btn-success" ng-click="goBack()">Save</button> | |
599 | + </div> | |
600 | + </div> --> | |
601 | + </div> | |
602 | + </div> | |
603 | + <div class="clearfix"></div> | |
604 | + </div> | |
605 | + </div> | |
606 | + </div> | |
607 | + </div> | |
608 | + <!-- <div class="modal-body step-3" data-step="3"> | |
609 | + This is the final step. | |
610 | + </div> --> | |
611 | + <div class="modal-footer" style="border-top: 0;"> | |
612 | + <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button> | |
613 | + <button type="button" class="btn btn-primary step step-1" data-step="1" ng-click="addFirstData('#demo-modal-3', 2)">Next: Add Aircraft</button> | |
614 | + <button type="button" class="btn btn-primary step step-2" data-step="2" onclick="sendEvent('#demo-modal-3', 1)">Go Back</button> | |
615 | + <!-- <button type="button" class="btn btn-primary step step-2" data-step="2" onclick="sendEvent('#demo-modal-3', 3)">Continue</button> --> | |
616 | + <button type="button" class="btn btn-success step step-2" data-step="2" ng-click="saveCompanyData()">Save</button> | |
617 | + </div> | |
618 | + </div> | |
619 | + </div> | |
620 | +</form> | |
621 | + | |
622 | +<script src="js/multi-step-modal.js"></script> | |
623 | +<script> | |
624 | +sendEvent = function(sel, step) { | |
625 | + $(sel).trigger('next.m.' + step); | |
626 | +} | |
627 | +</script> | |
628 | + | |
629 | + | |
630 | + | |
631 | + | ... | ... |
app/partials/customers/customers.service.js
... | ... | @@ -0,0 +1,77 @@ |
1 | +(function(){ | |
2 | + 'use strict'; | |
3 | + angular.module('acufuel') | |
4 | + .service('CustomersService', ['$q', '$http', 'BASE_URL', CustomersService]); | |
5 | + | |
6 | + function CustomersService($q, $http, BASE_URL) { | |
7 | + | |
8 | + this.addCompany = function(data) { | |
9 | + | |
10 | + var deferred = $q.defer(); | |
11 | + $http({ | |
12 | + method : 'POST', | |
13 | + url : BASE_URL.url +'/company', | |
14 | + headers : {'Content-Type': 'application/json'}, | |
15 | + data: data | |
16 | + }) | |
17 | + .then(function (result){ | |
18 | + deferred.resolve(result.data); | |
19 | + },function (result){ | |
20 | + deferred.resolve(result.data); | |
21 | + }) | |
22 | + return deferred.promise; | |
23 | + } | |
24 | + | |
25 | + this.getAircraftMake = function(){ | |
26 | + var deferred = $q.defer(); | |
27 | + $http({ | |
28 | + method : 'GET', | |
29 | + url : BASE_URL.url +'/fuelerlinx/acufuel/getAircraftMake', | |
30 | + headers : {'Content-Type': 'application/json'}, | |
31 | + }) | |
32 | + .then(function (result){ | |
33 | + deferred.resolve(result.data); | |
34 | + },function (result){ | |
35 | + console.log(result) | |
36 | + deferred.resolve(result.data); | |
37 | + }) | |
38 | + return deferred.promise; | |
39 | + } | |
40 | + | |
41 | + this.getAircraftSize = function(makeId, modelId){ | |
42 | + var deferred = $q.defer(); | |
43 | + $http({ | |
44 | + method : 'GET', | |
45 | + url : BASE_URL.url +'/fuelerlinx/acufuel/getAircraftSize/' +makeId + '/' +modelId, | |
46 | + headers : {'Content-Type': 'application/json'}, | |
47 | + }) | |
48 | + .then(function (result){ | |
49 | + deferred.resolve(result.data); | |
50 | + },function (result){ | |
51 | + console.log(result) | |
52 | + deferred.resolve(result.data); | |
53 | + }) | |
54 | + return deferred.promise; | |
55 | + } | |
56 | + | |
57 | + this.getModal = function(id){ | |
58 | + var deferred = $q.defer(); | |
59 | + $http({ | |
60 | + method : 'GET', | |
61 | + url : BASE_URL.url +'/fuelerlinx/acufuel/getAircraftModel/' + id, | |
62 | + headers : {'Content-Type': 'application/json'}, | |
63 | + }) | |
64 | + .then(function (result){ | |
65 | + deferred.resolve(result.data); | |
66 | + },function (result){ | |
67 | + console.log(result) | |
68 | + deferred.resolve(result.data); | |
69 | + }) | |
70 | + return deferred.promise; | |
71 | + } | |
72 | + | |
73 | + | |
74 | + | |
75 | + } | |
76 | + | |
77 | +})(); | |
0 | 78 | \ No newline at end of file | ... | ... |
app/partials/dashboard/dashboard.html
... | ... | @@ -42,7 +42,7 @@ |
42 | 42 | <div> |
43 | 43 | <div class="col-xs-12"> |
44 | 44 | <span class="pull-left">Pending</span> |
45 | - <button class="btn btn-success btn-xs pull-right"> | |
45 | + <button class="btn btn-success btn-xs pull-right pull-right-color "> | |
46 | 46 | <span style="font-size:9px;">Monthly</span> |
47 | 47 | </button> |
48 | 48 | <div class="clearfix"></div> |
... | ... | @@ -90,8 +90,8 @@ |
90 | 90 | <div class="row"> |
91 | 91 | <div class="col-md-12"> |
92 | 92 | <div class="widget-header"> |
93 | - <i class="fa fa-star"></i> | |
94 | - <h3>Chart</h3> | |
93 | + <i class="fa fa-signal" aria-hidden="true"></i> | |
94 | + <h3>Chart</h3> | |
95 | 95 | </div> |
96 | 96 | <!-- /widget-header --> |
97 | 97 | <div class="widget-content"> |
... | ... | @@ -139,7 +139,7 @@ |
139 | 139 | <div class="widget stacked"> |
140 | 140 | <div class="widget-header"> |
141 | 141 | <i class="fa fa-pencil"></i> |
142 | - <h3>Quick Shortcuts</h3> | |
142 | + <h3>Price Manager</h3> | |
143 | 143 | </div> |
144 | 144 | <!-- /widget-header --> |
145 | 145 | <div class="widget-content" style="padding-top:10px;"> |
... | ... | @@ -196,7 +196,7 @@ |
196 | 196 | <!-- /widget --> |
197 | 197 | <div class="widget widget-nopad stacked"> |
198 | 198 | <div class="widget-header"> |
199 | - <i class="fa fa-list-alt"></i> | |
199 | + <i class="fa fa-comment" aria-hidden="true"></i> | |
200 | 200 | <h3>Messages</h3> |
201 | 201 | </div> |
202 | 202 | <!-- /widget-header --> | ... | ... |
app/partials/dashboard/dashboard.service.js
... | ... | @@ -0,0 +1,13 @@ |
1 | +(function(){ | |
2 | + 'use strict'; | |
3 | + angular.module('acufuel') | |
4 | + .service('dashboardService', ['$q', '$http', 'BE', dashboardService]); | |
5 | + | |
6 | + function dashboardService($q, $http, BE) { | |
7 | + var temp = {}; | |
8 | + | |
9 | + | |
10 | + | |
11 | + } | |
12 | + | |
13 | +})(); | |
0 | 14 | \ No newline at end of file | ... | ... |
app/partials/delselected/delselected.controller.js
app/partials/delselected/delselected.html
... | ... | @@ -0,0 +1,20 @@ |
1 | +<div class="container"> | |
2 | +<div class="row"> | |
3 | + <div class="col-md-4"> | |
4 | + <div class="widget"> | |
5 | + <!-- <div class="widget-header"></div> --> | |
6 | + <div class="widget-content" style="padding-left: 0; padding-right: 0; padding-bottom: 0;"> | |
7 | + <div class="col-md-2"><img class="src-image" src="img/images.jpg"></div> | |
8 | + <div class="col-md-10"> | |
9 | + <p> Aer you sure that you want to permanently delete the selected element</p> | |
10 | + </div> | |
11 | + <div class="col-xs-12" style="background-color: #eee; padding: 15px; text-align: right;"> | |
12 | + <button type="button" class="btn btn-default" style="padding: 3px 12px; border-radius: 0;">yes</button> | |
13 | + <button type="button" class="btn btn-default" style="padding: 3px 12px; border-radius: 0;">No</button> | |
14 | + <button type="button" class="btn btn-default" style="padding: 3px 12px; border-radius: 0;">Cancel</button> | |
15 | + </div> | |
16 | + </div> | |
17 | + </div> | |
18 | + </div> | |
19 | +</div> | |
20 | +</div> | |
0 | 21 | \ No newline at end of file | ... | ... |
app/partials/delselected/delselected.service.js
... | ... | @@ -0,0 +1,13 @@ |
1 | +(function(){ | |
2 | + 'use strict'; | |
3 | + angular.module('acufuel') | |
4 | + .service('delselectedService', ['$q', '$http', 'BE', delselectedService]); | |
5 | + | |
6 | + function delselectedService($q, $http, BE) { | |
7 | + var temp = {}; | |
8 | + | |
9 | + | |
10 | + | |
11 | + } | |
12 | + | |
13 | +})(); | |
0 | 14 | \ No newline at end of file | ... | ... |
app/partials/elements/elements.service.js
... | ... | @@ -0,0 +1,13 @@ |
1 | +(function(){ | |
2 | + 'use strict'; | |
3 | + angular.module('acufuel') | |
4 | + .service('elementsService', ['$q', '$http', 'BE', elementsService]); | |
5 | + | |
6 | + function elementsService($q, $http, BE) { | |
7 | + var temp = {}; | |
8 | + | |
9 | + | |
10 | + | |
11 | + } | |
12 | + | |
13 | +})(); | |
0 | 14 | \ No newline at end of file | ... | ... |
app/partials/error/error.service.js
app/partials/faq/faq.service.js
app/partials/forms/forms.service.js
app/partials/fuelManager/fuelManager.html
app/partials/fuelManager/fuelManager.service.js
... | ... | @@ -0,0 +1,13 @@ |
1 | +(function(){ | |
2 | + 'use strict'; | |
3 | + angular.module('acufuel') | |
4 | + .service('fuelManagerService', ['$q', '$http', 'BE', fuelManagerService]); | |
5 | + | |
6 | + function fuelManagerService($q, $http, BE) { | |
7 | + var temp = {}; | |
8 | + | |
9 | + | |
10 | + | |
11 | + } | |
12 | + | |
13 | +})(); | |
0 | 14 | \ No newline at end of file | ... | ... |
app/partials/fuelOrders/fuelOrders.controller.js
app/partials/fuelOrders/fuelOrders.html
... | ... | @@ -0,0 +1,234 @@ |
1 | +<style> | |
2 | + .subnavbar .mainnav > li:nth-child(3) > a{ | |
3 | + color: #ff9900; | |
4 | + } | |
5 | +</style> | |
6 | +<div class="main"> | |
7 | + <div class="container"> | |
8 | + <div class="row"> | |
9 | + <div class="col-md-12"> | |
10 | + <div class="widget stacked "> | |
11 | + <div class="widget-content"> | |
12 | + <div class="tabbable"> | |
13 | + <ul class="nav nav-tabs Search-tabs"> | |
14 | + <h2> Corman Air Coeporation</h2> | |
15 | + <li style="margin: 0px 10px 0px 0px;"><input type="text" style="height:31px;" class="form-control" name="name" id="name" placeholder="Search In Table"></li> | |
16 | + <li><button type="button" class="btn btn-default">Clear Search & Filters</button></li> | |
17 | + | |
18 | + <!-- <li style="float:right"></li> --> | |
19 | + </ul> | |
20 | + <br> | |
21 | + <div class="tab-content" style="margin:0px"> | |
22 | + <div class="tab-pane active" id="companyView"> | |
23 | + <table class="table table-striped"> | |
24 | + <thead> | |
25 | + <tr> | |
26 | + <th> | |
27 | + <input type="text" class="form-control" style="height:31px;" name="name" id="name"> | |
28 | + <lable class="font-company">Fueling date</lable> | |
29 | + </th> | |
30 | + <th> | |
31 | + <input type="text" class="form-control" style="height:31px;" name="name" id="name"> | |
32 | + <lable class="font-company">Tail #</lable> | |
33 | + </th> | |
34 | + <th> | |
35 | + <input type="text" class="form-control" style="height:31px;" name="name" id="name"> | |
36 | + <lable class="font-company">FBO Name</lable> | |
37 | + </th> | |
38 | + <th> | |
39 | + <input type="text" class="form-control" style="height:31px;" name="name" id="name"> | |
40 | + <lable class="font-company">Volume</lable> | |
41 | + </th> | |
42 | + <th> | |
43 | + <input type="text" class="form-control" style="height:31px;" name="name" id="name"> | |
44 | + <lable class="font-company">Quoted</lable> | |
45 | + </th> | |
46 | + <th> | |
47 | + <input type="text" class="form-control" style="height:31px;" name="name" id="name"> | |
48 | + <lable class="font-company">Invoiced</lable> | |
49 | + </th> | |
50 | + <th> | |
51 | + <input type="text" class="form-control" style="height:31px;" name="name" id="name"> | |
52 | + <lable class="font-company">Total</lable> | |
53 | + </th> | |
54 | + <th> | |
55 | + <select style="float: right;margin:7px;"> | |
56 | + <option>Show all</option> | |
57 | + <option>paid</option> | |
58 | + <option>pending</option> | |
59 | + <option>cancelled</option> | |
60 | + </select> | |
61 | + <lable class="font-company">Status</lable> | |
62 | + </th> | |
63 | + <th> | |
64 | + <select style="float: right;margin:7px;"> | |
65 | + <option>Show all</option> | |
66 | + <option>Attachmens</option> | |
67 | + <option>No Attachmens</option> | |
68 | + </select> | |
69 | + <lable class="font-company">Attachmens</lable> | |
70 | + </th> | |
71 | + <th></th> | |
72 | + <th></th> | |
73 | + </tr> | |
74 | + </thead> | |
75 | + <tbody> | |
76 | + <tr> | |
77 | + <td class="font-company">04/05/2017</td> | |
78 | + <td class="font-company">N500HG</td> | |
79 | + <td class="font-company">TBase FBO</td> | |
80 | + <td class="font-company">1000</td> | |
81 | + <td class="font-company">$4.4500</td> | |
82 | + <td class="font-company">$0.000</td> | |
83 | + <td class="font-company">$691.42</td> | |
84 | + <td class="font-company">paid</td> | |
85 | + <td class="font-company"><i class="fa fa-paperclip" aria-hidden="true"></i></td> | |
86 | + <td ></td> | |
87 | + <td></td> | |
88 | + </tr> | |
89 | + <tr> | |
90 | + <td class="font-company">04/05/2017</td> | |
91 | + <td class="font-company">N968HG</td> | |
92 | + <td class="font-company">TBase FBO</td> | |
93 | + <td class="font-company">1000</td> | |
94 | + <td class="font-company">$4.4500</td> | |
95 | + <td class="font-company">$0.000</td> | |
96 | + <td class="font-company">$691.42</td> | |
97 | + <td class="font-company">pending</td> | |
98 | + <td class="font-company"><i class="fa fa-paperclip" aria-hidden="true"></i></td> | |
99 | + <td></td> | |
100 | + <td></td> | |
101 | + </tr> | |
102 | + <tr> | |
103 | + <td class="font-company">04/05/2017</td> | |
104 | + <td class="font-company">N300HG</td> | |
105 | + <td class="font-company">TBase FBO</td> | |
106 | + <td class="font-company">1000</td> | |
107 | + <td class="font-company">$4.4500</td> | |
108 | + <td class="font-company">$0.000</td> | |
109 | + <td class="font-company">$691.42</td> | |
110 | + <td class="font-company">Cancelled</td> | |
111 | + <td class="font-company"><i class="fa fa-paperclip" aria-hidden="true"></i></td> | |
112 | + <td></td> | |
113 | + <td ></td> | |
114 | + </tr> | |
115 | + <tr> | |
116 | + <td class="font-company">04/05/2017</td> | |
117 | + <td class="font-company">N500HG</td> | |
118 | + <td class="font-company">TBase FBO</td> | |
119 | + <td class="font-company">1000</td> | |
120 | + <td class="font-company">$4.4500</td> | |
121 | + <td class="font-company">$0.000</td> | |
122 | + <td class="font-company">$691.42</td> | |
123 | + <td class="font-company">pending</td> | |
124 | + <td class="font-company"><i class="fa fa-paperclip" aria-hidden="true"></i></td> | |
125 | + <td ></td> | |
126 | + <td></td> | |
127 | + </tr> | |
128 | + <tr> | |
129 | + <td class="font-company">04/05/2017</td> | |
130 | + <td class="font-company">N600HG</td> | |
131 | + <td class="font-company">TBase FBO</td> | |
132 | + <td class="font-company">1000</td> | |
133 | + <td class="font-company">$4.4500</td> | |
134 | + <td class="font-company">$0.000</td> | |
135 | + <td class="font-company">$691.42</td> | |
136 | + <td class="font-company">paid</td> | |
137 | + <td class="font-company"><i class="fa fa-paperclip" aria-hidden="true"></i></td> | |
138 | + <td ></td> | |
139 | + <td></td> | |
140 | + </tr> | |
141 | + <tr> | |
142 | + <td class="font-company">04/05/2017</td> | |
143 | + <td class="font-company">N500HG</td> | |
144 | + <td class="font-company">TBase FBO</td> | |
145 | + <td class="font-company">1000</td> | |
146 | + <td class="font-company">$4.4500</td> | |
147 | + <td class="font-company">$0.000</td> | |
148 | + <td class="font-company">$691.42</td> | |
149 | + <td class="font-company">Cancelled</td> | |
150 | + <td class="font-company"><i class="fa fa-paperclip" aria-hidden="true"></i></td> | |
151 | + <td ></td> | |
152 | + <td></td> | |
153 | + </tr> | |
154 | + <tr> | |
155 | + <td class="font-company">04/05/2017</td> | |
156 | + <td class="font-company">N900HG</td> | |
157 | + <td class="font-company">TBase FBO</td> | |
158 | + <td class="font-company">1000</td> | |
159 | + <td class="font-company">$4.4500</td> | |
160 | + <td class="font-company">$0.000</td> | |
161 | + <td class="font-company">$691.42</td> | |
162 | + <td class="font-company">paid</td> | |
163 | + <td class="font-company"><i class="fa fa-paperclip" aria-hidden="true"></i></td> | |
164 | + <td ></td> | |
165 | + <td></td> | |
166 | + </tr> | |
167 | + <tr> | |
168 | + <td class="font-company">04/05/2017</td> | |
169 | + <td class="font-company">N500HG</td> | |
170 | + <td class="font-company">TBase FBO</td> | |
171 | + <td class="font-company">1000</td> | |
172 | + <td class="font-company">$4.4500</td> | |
173 | + <td class="font-company">$0.000</td> | |
174 | + <td class="font-company">$691.42</td> | |
175 | + <td class="font-company">pending</td> | |
176 | + <td class="font-company"><i class="fa fa-paperclip" aria-hidden="true"></i></td> | |
177 | + <td ></td> | |
178 | + <td></td> | |
179 | + </tr> | |
180 | + <tr> | |
181 | + <td class="font-company">04/05/2017</td> | |
182 | + <td class="font-company">N580HG</td> | |
183 | + <td class="font-company">TBase FBO</td> | |
184 | + <td class="font-company">1000</td> | |
185 | + <td class="font-company">$4.4500</td> | |
186 | + <td class="font-company">$0.000</td> | |
187 | + <td class="font-company">$691.42</td> | |
188 | + <td class="font-company">Cancelled</td> | |
189 | + <td class="font-company"><i class="fa fa-paperclip" aria-hidden="true"></i></td> | |
190 | + <td ></td> | |
191 | + <td></td> | |
192 | + </tr> | |
193 | + </tbody> | |
194 | + </table> | |
195 | + <div class="row" style="margin-left: 0px;"> | |
196 | + <div class="col-md-2"> | |
197 | + <button type="button" class="btn btn-warning">Export Fuel Orders</button> | |
198 | + </div> | |
199 | + <div class="col-md-10"> | |
200 | + <div class="row" style="margin-left: 0px;"> | |
201 | + <div class="col-md-6"> | |
202 | + </div> | |
203 | + <div class="col-md-2"> | |
204 | + <select class="form-control"> | |
205 | + <option>20 Records Per Page</option> | |
206 | + <option>50 Records Per Page</option> | |
207 | + <option>100 Records Per Page</option> | |
208 | + </select> | |
209 | + </div> | |
210 | + <div class="col-md-4"> | |
211 | + <ul class="pagination" style="margin:0px"> | |
212 | + <li><a href="javascript:;">ยซ</a></li> | |
213 | + <li class="active"><a href="#">1</a></li> | |
214 | + <li><a href="javascript:;">2</a></li> | |
215 | + <li><a href="javascript:;">3</a></li> | |
216 | + <li><a href="javascript:;">4</a></li> | |
217 | + <li><a href="javascript:;">5</a></li> | |
218 | + <li><a href="javascript:;">ยป</a></li> | |
219 | + </ul> | |
220 | + </div> | |
221 | + </div> | |
222 | + </div> | |
223 | + </div> | |
224 | + </div> | |
225 | + | |
226 | + </div> | |
227 | + | |
228 | + </div> | |
229 | + | |
230 | + </div> | |
231 | + | |
232 | + </div> | |
233 | + | |
234 | +</div> | ... | ... |
app/partials/fuelOrders/fuelOrders.service.js
... | ... | @@ -0,0 +1,13 @@ |
1 | +(function(){ | |
2 | + 'use strict'; | |
3 | + angular.module('acufuel') | |
4 | + .service('fuelOrdersService', ['$q', '$http', 'BE', fuelOrdersService]); | |
5 | + | |
6 | + function fuelOrdersService($q, $http, BE) { | |
7 | + var temp = {}; | |
8 | + | |
9 | + | |
10 | + | |
11 | + } | |
12 | + | |
13 | +})(); | |
0 | 14 | \ No newline at end of file | ... | ... |
app/partials/gallery/gallery.service.js
... | ... | @@ -0,0 +1,13 @@ |
1 | +(function(){ | |
2 | + 'use strict'; | |
3 | + angular.module('acufuel') | |
4 | + .service('galleryService', ['$q', '$http', 'BE', galleryService]); | |
5 | + | |
6 | + function galleryService($q, $http, BE) { | |
7 | + var temp = {}; | |
8 | + | |
9 | + | |
10 | + | |
11 | + } | |
12 | + | |
13 | +})(); | |
0 | 14 | \ No newline at end of file | ... | ... |
app/partials/jqueryui/jqueryui.service.js
... | ... | @@ -0,0 +1,13 @@ |
1 | +(function(){ | |
2 | + 'use strict'; | |
3 | + angular.module('acufuel') | |
4 | + .service('jqueryuiService', ['$q', '$http', 'BE', jqueryuiService]); | |
5 | + | |
6 | + function jqueryuiService($q, $http, BE) { | |
7 | + var temp = {}; | |
8 | + | |
9 | + | |
10 | + | |
11 | + } | |
12 | + | |
13 | +})(); | |
0 | 14 | \ No newline at end of file | ... | ... |
app/partials/login/login.controller.js
... | ... | @@ -3,23 +3,19 @@ |
3 | 3 | 'use strict' |
4 | 4 | |
5 | 5 | angular.module('acufuel') |
6 | - .controller('LoginController', [ '$scope', '$filter', '$rootScope', '$state', LoginController]); | |
6 | + .controller('LoginController', [ '$scope', '$filter', '$rootScope', '$state', 'LoginService', LoginController]); | |
7 | 7 | |
8 | - function LoginController($scope, $filter, $rootScope, $state) { | |
8 | + function LoginController($scope, $filter, $rootScope, $state, LoginService) { | |
9 | 9 | $scope.data = {}; |
10 | - $scope.submitLogin = function() { | |
11 | - | |
12 | - $scope.data.username; | |
13 | - $scope.data.password; | |
14 | - $state.go('app.dashboard'); | |
15 | - // if($scope.data.username == "acufuel" && $scope.data.password == "Acufuelelite123") { | |
16 | - // localStorage.setItem('loginStatus', true); | |
17 | - // $state.go('#/main/dashboard'); | |
18 | - // } else { | |
19 | - // alert('Invalid credentials'); | |
20 | - // } | |
21 | - | |
22 | - } | |
10 | + $scope.submitLogin = function() { | |
11 | + var loginData = "username=" + $scope.data.username + "&password=" + $scope.data.password; | |
12 | + LoginService.loginUser(loginData).then(function(result) { | |
13 | + LoginService.authenticate(); | |
14 | + //LoginService.setAuth(true); | |
15 | + | |
16 | + }) | |
17 | + //$state.go('app.dashboard'); | |
18 | + } | |
23 | 19 | } |
24 | 20 | })(); |
25 | 21 | ... | ... |
app/partials/login/login.service.js
... | ... | @@ -0,0 +1,122 @@ |
1 | +(function(){ | |
2 | + 'use strict'; | |
3 | + angular.module('acufuel') | |
4 | + .service('LoginService', ['$rootScope', '$q', '$http', '$state', 'BASE_URL', 'AUTH_EVENTS', 'USER_ROLES', LoginService]); | |
5 | + | |
6 | + function LoginService($rootScope, $q, $http, $state, BASE_URL, AUTH_EVENTS, USER_ROLES) { | |
7 | + var authService = {}, | |
8 | + username = '', | |
9 | + role = '', | |
10 | + isAuthenticated = false; | |
11 | + | |
12 | + var currentUserDetail = JSON.parse(window.localStorage.getItem("currentUser")); | |
13 | + console.log(currentUserDetail) | |
14 | + if (currentUserDetail) { | |
15 | + console.log('aaya') | |
16 | + if(currentUserDetail.type == 'ADMIN' || currentUserDetail.type == 'FBO'){ | |
17 | + $rootScope.isAuthenticated = true; | |
18 | + role = USER_ROLES.admin; | |
19 | + }else if(currentUserDetail.type == 'FLIGHT_DEPT'){ | |
20 | + $rootScope.isAuthenticated = false; | |
21 | + role = USER_ROLES.user; | |
22 | + } | |
23 | + } | |
24 | + | |
25 | + authService.loginUser = function(data) { | |
26 | + | |
27 | + var deferred = $q.defer(); | |
28 | + $http({ | |
29 | + method : 'POST', | |
30 | + url : BASE_URL.url +'/login', | |
31 | + headers : {'Content-Type': 'application/x-www-form-urlencoded'}, | |
32 | + data : data | |
33 | + }) | |
34 | + .then(function (result){ | |
35 | + deferred.resolve(result.data); | |
36 | + },function (result){ | |
37 | + console.log(result.data) | |
38 | + deferred.resolve(result.data); | |
39 | + }) | |
40 | + return deferred.promise; | |
41 | + } | |
42 | + | |
43 | + authService.authenticate = function() { | |
44 | + var deferred = $q.defer(); | |
45 | + $http({ | |
46 | + method : 'GET', | |
47 | + url : BASE_URL.url+'/user/authenticate', | |
48 | + headers : {'Content-Type': 'application/x-www-form-urlencoded'} | |
49 | + }).then(function (result){ | |
50 | + if(result.data.userProfile.userType.type == 'ADMIN' || result.data.userProfile.userType.type == 'FBO' || result.data.userProfile.userType.type == 'FLIGHT_DEPT'){ | |
51 | + authService.setUser(result.data); | |
52 | + $state.go('app.dashboard') | |
53 | + }else{ | |
54 | + localStorage.clear(); | |
55 | + toastr.info("Please check username and password"); | |
56 | + } | |
57 | + deferred.resolve(result.data); | |
58 | + },function (result){ | |
59 | + deferred.resolve(result.data); | |
60 | + }); | |
61 | + return deferred.promise; | |
62 | + } | |
63 | + | |
64 | + // authService.setAuth = function(data) { | |
65 | + // localStorage.setItem('loginStatus', data); | |
66 | + // } | |
67 | + | |
68 | + authService.logout = function(data) { | |
69 | + | |
70 | + // localStorage.clear(); | |
71 | + // $rootScope.isAuthenticated = false; | |
72 | + // $rootScope.$broadcast(AUTH_EVENTS.updateUser); | |
73 | + | |
74 | + var deferred = $q.defer(); | |
75 | + $http({ | |
76 | + method : 'POST', | |
77 | + url : BASE_URL.url +'/user/logout', | |
78 | + headers : {'Content-Type': 'application/json'}, | |
79 | + data : data | |
80 | + }) | |
81 | + .success(function(result) { | |
82 | + deferred.resolve(result.data); | |
83 | + }) | |
84 | + return deferred.promise; | |
85 | + } | |
86 | + | |
87 | + | |
88 | + | |
89 | + authService.getUser = function () { | |
90 | + return JSON.parse(window.localStorage.getItem("currentUser")); | |
91 | + } | |
92 | + | |
93 | + authService.setUser = function (authData) { | |
94 | + window.localStorage.setItem("currentUser", JSON.stringify(authData.userProfile.userType)); | |
95 | + if(authData.userProfile.userType.type == 'ADMIN' || authData.userProfile.userType.type == 'FBO'){ | |
96 | + role = USER_ROLES.admin; | |
97 | + $rootScope.isAuthenticated = true; | |
98 | + }else if(authData.userProfile.userType.type == 'FLIGHT_DEPT'){ | |
99 | + role = USER_ROLES.user; | |
100 | + $rootScope.isAuthenticated = false; | |
101 | + } | |
102 | + } | |
103 | + | |
104 | + authService.isAuthenticated = function () { | |
105 | + return isAuthenticated; | |
106 | + } | |
107 | + | |
108 | + authService.role = function () { | |
109 | + return role; | |
110 | + } | |
111 | + | |
112 | + authService.isAuthorized = function (authorizedRoles) { | |
113 | + if (!angular.isArray(authorizedRoles)) { | |
114 | + authorizedRoles = [authorizedRoles]; | |
115 | + } | |
116 | + return (authService.isAuthenticated() && authorizedRoles.indexOf(role) !== -1); | |
117 | + } | |
118 | + | |
119 | + return authService; | |
120 | + } | |
121 | + | |
122 | +})(); | |
0 | 123 | \ No newline at end of file | ... | ... |
app/partials/main/main.html
... | ... | @@ -65,10 +65,10 @@ |
65 | 65 | <li class="dropdown-submenu"> |
66 | 66 | <a tabindex="-1" href="#">Fuel Orders</a> |
67 | 67 | <ul class="dropdown-menu"> |
68 | - <li><a tabindex="-1" href="#">Pending</a></li> | |
69 | - <li><a href="#">Invoiced</a></li> | |
70 | - <li><a href="#">Canceled</a></li> | |
71 | - <li><a href="#">Archived</a></li> | |
68 | + <li><a ui-sref="app.fuelOrders">Pending</a></li> | |
69 | + <li><a ui-sref="app.fuelOrders">Invoiced</a></li> | |
70 | + <li><a ui-sref="app.fuelOrders">Canceled</a></li> | |
71 | + <li><a ui-sref="app.fuelOrders">Archived</a></li> | |
72 | 72 | </ul> |
73 | 73 | </li> |
74 | 74 | </ul> | ... | ... |
app/partials/main/main.service.js
app/partials/popups/popups.service.js
... | ... | @@ -0,0 +1,13 @@ |
1 | +(function(){ | |
2 | + 'use strict'; | |
3 | + angular.module('acufuel') | |
4 | + .service('popupsService', ['$q', '$http', 'BE', popupsService]); | |
5 | + | |
6 | + function popupsService($q, $http, BE) { | |
7 | + var temp = {}; | |
8 | + | |
9 | + | |
10 | + | |
11 | + } | |
12 | + | |
13 | +})(); | |
0 | 14 | \ No newline at end of file | ... | ... |
app/partials/pricing/pricing.service.js
... | ... | @@ -0,0 +1,13 @@ |
1 | +(function(){ | |
2 | + 'use strict'; | |
3 | + angular.module('acufuel') | |
4 | + .service('pricingService', ['$q', '$http', 'BE', pricingService]); | |
5 | + | |
6 | + function pricingService($q, $http, BE) { | |
7 | + var temp = {}; | |
8 | + | |
9 | + | |
10 | + | |
11 | + } | |
12 | + | |
13 | +})(); | |
0 | 14 | \ No newline at end of file | ... | ... |
app/partials/pricingcontact/pricingcontact.controller.js
app/partials/pricingcontact/pricingcontact.html
... | ... | @@ -0,0 +1,19 @@ |
1 | +<div class="container"> | |
2 | +<div class="row"> | |
3 | + <div class="col-md-4"> | |
4 | + <div class="widget"> | |
5 | + <!-- <div class="widget-header"></div> --> | |
6 | + <div class="widget-content" style="padding-left: 0; padding-right: 0; padding-bottom: 0;"> | |
7 | + <div class="col-md-2"><img class="src-image" src="img/images.jpg"></div> | |
8 | + <div class="col-md-10"> | |
9 | + <p> Aer you sure that you want to email pricing to everyone in your contact list</p> | |
10 | + </div> | |
11 | + <div class="col-xs-12" style="background-color: #eee; padding: 15px; text-align: right;"> | |
12 | + <button type="button" class="btn btn-default" style="padding: 3px 12px; border-radius: 0;">yes</button> | |
13 | + <button type="button" class="btn btn-default" style="padding: 3px 12px; border-radius: 0;">Cancel</button> | |
14 | + </div> | |
15 | + </div> | |
16 | + </div> | |
17 | + </div> | |
18 | +</div> | |
19 | +</div> | |
0 | 20 | \ No newline at end of file | ... | ... |
app/partials/pricingcontact/pricingcontact.service.js
... | ... | @@ -0,0 +1,13 @@ |
1 | +(function(){ | |
2 | + 'use strict'; | |
3 | + angular.module('acufuel') | |
4 | + .service('pricingcontactService', ['$q', '$http', 'BE', pricingcontactService]); | |
5 | + | |
6 | + function pricingcontactService($q, $http, BE) { | |
7 | + var temp = {}; | |
8 | + | |
9 | + | |
10 | + | |
11 | + } | |
12 | + | |
13 | +})(); | |
0 | 14 | \ No newline at end of file | ... | ... |
app/partials/reports/reports.service.js
... | ... | @@ -0,0 +1,13 @@ |
1 | +(function(){ | |
2 | + 'use strict'; | |
3 | + angular.module('acufuel') | |
4 | + .service('reportsService', ['$q', '$http', 'BE', reportsService]); | |
5 | + | |
6 | + function reportsService($q, $http, BE) { | |
7 | + var temp = {}; | |
8 | + | |
9 | + | |
10 | + | |
11 | + } | |
12 | + | |
13 | +})(); | |
0 | 14 | \ No newline at end of file | ... | ... |
app/partials/scheduler/scheduler.html
... | ... | @@ -41,12 +41,14 @@ |
41 | 41 | </li> |
42 | 42 | </ul> |
43 | 43 | </div> |
44 | + <button type="reset" style="margin-left: 145px;" class="btn btn-default btn-default-bottom"> Add Event</button> | |
44 | 45 | </div> |
45 | 46 | <!-- /widget-content --> |
46 | 47 | </div> |
47 | 48 | <!-- /widget --> |
48 | 49 | </div> |
49 | 50 | <!-- /span6 --> |
51 | + | |
50 | 52 | <div class="col-md-9"> |
51 | 53 | <div class="widget stacked"> |
52 | 54 | <div class="widget-header"> |
... | ... | @@ -63,6 +65,7 @@ |
63 | 65 | <!-- /widget --> |
64 | 66 | </div> |
65 | 67 | <!-- /span6 --> |
68 | + | |
66 | 69 | </div> |
67 | 70 | <!-- /row --> |
68 | 71 | </div> | ... | ... |
app/partials/scheduler/scheduler.service.js
... | ... | @@ -0,0 +1,13 @@ |
1 | +(function(){ | |
2 | + 'use strict'; | |
3 | + angular.module('acufuel') | |
4 | + .service('schedulerService', ['$q', '$http', 'BE', schedulerService]); | |
5 | + | |
6 | + function schedulerService($q, $http, BE) { | |
7 | + var temp = {}; | |
8 | + | |
9 | + | |
10 | + | |
11 | + } | |
12 | + | |
13 | +})(); | |
0 | 14 | \ No newline at end of file | ... | ... |
app/partials/searchDispatchFuel/searchDispatchFuel.controller.js
app/partials/searchDispatchFuel/searchDispatchFuel.html
... | ... | @@ -0,0 +1,101 @@ |
1 | +<div class="container"> | |
2 | +<div class="row"> | |
3 | + <div class="col-md-5"> | |
4 | + <div class="widget stacked"> | |
5 | + <div class="widget-header"> | |
6 | + <i class="icon-pencil"></i> | |
7 | + <span class="glyphicon glyphicon-search"></span> | |
8 | + <h3>Search & Dispatch Fuel</h3> | |
9 | + </div> | |
10 | + <!-- /widget-header --> | |
11 | + <div class="widget-content" style="padding-left: 0; padding-right: 0;"> | |
12 | + <div class="col-xs-12"> | |
13 | + <div class="col-md-2">Company</div> | |
14 | + <div class="col-md-10"> | |
15 | + <select required class="form-control"> | |
16 | + <option value="" disabled selected hidden>Select </option> | |
17 | + <option value="0">Open when powered (most valves do this)</option> | |
18 | + <option value="1">Closed when powered, auto-opens when power is cut</option> | |
19 | + </select> | |
20 | + </div> | |
21 | + </div> | |
22 | + <div class="col-xs-12"> | |
23 | + <div class="col-md-2 Airport">Airport</div> | |
24 | + <div class="col-md-4 Airport"> | |
25 | + <select required class="form-control"> | |
26 | + <option value="" disabled selected hidden>Select </option> | |
27 | + <option value="0">Open when powered (most valves do this)</option> | |
28 | + <option value="1">Closed when powered, auto-opens when power is cut</option> | |
29 | + </select> | |
30 | + <span style="font-size: 9px;">Formats: IATA,ICAO,City or Airport Name</span> | |
31 | + </div> | |
32 | + <div class="col-md-2 Airport">Aircraft</div> | |
33 | + <div class="col-md-4 Airport"> | |
34 | + <select required class="form-control"> | |
35 | + <option value="" disabled selected hidden>Select </option> | |
36 | + <option value="0">Open when powered (most valves do this)</option> | |
37 | + <option value="1">Closed when powered, auto-opens when power is cut</option> | |
38 | + </select> | |
39 | + </div> | |
40 | + </div> | |
41 | + <div class="col-xs-12"> | |
42 | + <div class="col-md-2 Airport">Requested<br>Volume</div> | |
43 | + <div class="col-md-4 Airport"> | |
44 | + <select required class="form-control"> | |
45 | + <option value="" disabled selected hidden>Select </option> | |
46 | + <option value="0">Open when powered (most valves do this)</option> | |
47 | + <option value="1">Closed when powered, auto-opens when power is cut</option> | |
48 | + </select> | |
49 | + </div> | |
50 | + </div> | |
51 | + <div class="col-xs-12"> | |
52 | + <div class="col-md-2">FBO Name</div> | |
53 | + <div class="col-md-10"> | |
54 | + <select required class="form-control"> | |
55 | + <option value="" disabled selected hidden>Select </option> | |
56 | + <option value="0">Open when powered (most valves do this)</option> | |
57 | + <option value="1">Closed when powered, auto-opens when power is cut</option> | |
58 | + </select> | |
59 | + </div> | |
60 | + </div> | |
61 | + <div class="col-xs-12"> | |
62 | + <div class="col-md-2">Tier Break</div> | |
63 | + <div class="col-md-10"> | |
64 | + <select required class="form-control"> | |
65 | + <option value="" disabled selected hidden>Select </option> | |
66 | + <option value="0">Open when powered (most valves do this)</option> | |
67 | + <option value="1">Closed when powered, auto-opens when power is cut</option> | |
68 | + </select> | |
69 | + </div> | |
70 | + </div> | |
71 | + <div class="col-xs-12"> | |
72 | + <div class="col-md-2 Airport">Uplift Date</div> | |
73 | + <div class="col-md-4 Airport"> | |
74 | + <select required class="form-control"> | |
75 | + <option value="" disabled selected hidden>03/20/2017 </option> | |
76 | + <option value="0">Open when powered (most valves do this)</option> | |
77 | + <option value="1">Closed when powered, auto-opens when power is cut</option> | |
78 | + </select> | |
79 | + </div> | |
80 | + <div class="col-md-2 Airport">Departing FBO</div> | |
81 | + <div class="col-md-4 Airport"> | |
82 | + <select required class="form-control"> | |
83 | + <option value="" disabled selected hidden>03/23/2017 </option> | |
84 | + <option value="0">Open when powered (most valves do this)</option> | |
85 | + <option value="1">Closed when powered, auto-opens when power is cut</option> | |
86 | + </select> | |
87 | + </div> | |
88 | + </div> | |
89 | + <div class="col-xs-12"> | |
90 | + <div class="col-xs-2 Airport"></div> | |
91 | + <div class="col-md-10" style= "text-align: right;"> | |
92 | + <button type="button" class="btn btn-default">Cancel</button> | |
93 | + <button type="button" class="btn btn-warning">Dispatch</button> | |
94 | + </div> | |
95 | + </div> | |
96 | + </div> | |
97 | + </div> | |
98 | + <!-- /widget-content --> | |
99 | + </div> | |
100 | + <!-- /widget --> | |
101 | +</div> | |
0 | 102 | \ No newline at end of file | ... | ... |
app/partials/searchDispatchFuel/searchDispatchFuel.service.js
... | ... | @@ -0,0 +1,13 @@ |
1 | +(function(){ | |
2 | + 'use strict'; | |
3 | + angular.module('acufuel') | |
4 | + .service('searchDispatchFuelService', ['$q', '$http', 'BE', searchDispatchFuelService]); | |
5 | + | |
6 | + function searchDispatchFuelService($q, $http, BE) { | |
7 | + var temp = {}; | |
8 | + | |
9 | + | |
10 | + | |
11 | + } | |
12 | + | |
13 | +})(); | |
0 | 14 | \ No newline at end of file | ... | ... |
app/partials/signup/signup.service.js
... | ... | @@ -0,0 +1,13 @@ |
1 | +(function(){ | |
2 | + 'use strict'; | |
3 | + angular.module('acufuel') | |
4 | + .service('signupService', ['$q', '$http', 'BE', signupService]); | |
5 | + | |
6 | + function signupService($q, $http, BE) { | |
7 | + var temp = {}; | |
8 | + | |
9 | + | |
10 | + | |
11 | + } | |
12 | + | |
13 | +})(); | |
0 | 14 | \ No newline at end of file | ... | ... |
app/partials/updateFuelManager/updateFuelManager.controller.js
... | ... | @@ -4,9 +4,19 @@ |
4 | 4 | //Load controller |
5 | 5 | angular.module('acufuel') |
6 | 6 | |
7 | - .controller('updateFuelManagerController', ['$scope',function($scope) { | |
8 | 7 | |
9 | - $scope.test = "Testing..."; | |
8 | + .controller('updateFuelManagerController', ['$scope','$uibModal', function($scope , $uibModal) { | |
9 | + console.log("$uibModal",$uibModal); | |
10 | + $scope.yes = function(data){ | |
11 | + console.log('========'); | |
12 | + console.log('value', data); | |
13 | + $uibModal.yes({ | |
14 | + templateUrl: 'partials/pricingcontact/pricingcontact.html', | |
15 | + backdrop: true, | |
16 | + scope: $scope, | |
17 | + }) | |
18 | + } | |
19 | + | |
10 | 20 | |
11 | 21 | }]); |
12 | 22 | ... | ... |
app/partials/updateFuelManager/updateFuelManager.html
... | ... | @@ -8,13 +8,13 @@ |
8 | 8 | <div class="col-md-5"> |
9 | 9 | <div class="widget stacked"> |
10 | 10 | <div class="widget-header"> |
11 | - <i class="icon-pencil"></i> | |
11 | + <i class="fa fa-pencil"></i> | |
12 | 12 | <h3>Price Manager</h3> |
13 | - <select style="float: right;margin:10px"> | |
14 | - <option>Ramp Fee By Category</option> | |
15 | - <option>Make And Model</option> | |
16 | - <option>Weight</option> | |
17 | - <option>Wingspan</option> | |
13 | + <select style="float: right;margin:10px;" ng-model="priceManager" ng-change="yes(priceManager)"> | |
14 | + <option value="1">Send Pricing Email</option> | |
15 | + <option value="2">Margin 1</option> | |
16 | + <option value="3">Margin 2</option> | |
17 | + <option value="4">Margin Tenants</option> | |
18 | 18 | </select> |
19 | 19 | </div> |
20 | 20 | <!-- /widget-header --> |
... | ... | @@ -57,11 +57,15 @@ |
57 | 57 | </div> |
58 | 58 | <!-- /widget --> |
59 | 59 | </div> |
60 | + | |
60 | 61 | <div class="col-md-7"> |
61 | 62 | <div class="widget stacked"> |
62 | 63 | <div class="widget-header"> |
63 | - <i class="icon-pencil"></i> | |
64 | + <i class="fa fa-pencil"></i> | |
64 | 65 | <h3><b>JET-A</b> Customer Margin Template</h3> |
66 | + <div class="pull-right"> | |
67 | + <button type="submit" class="btn btn-success btn-sm"><i class="icon-ok"></i>+   Add Aircraft</button> | |
68 | + </div> | |
65 | 69 | </div> |
66 | 70 | <!-- /widget-header --> |
67 | 71 | <div class="widget-content"> |
... | ... | @@ -234,13 +238,246 @@ |
234 | 238 | <!-- /span12 --> |
235 | 239 | </div> |
236 | 240 | <!-- /row --> |
241 | +<div class="container"> | |
242 | +<div class="row"> | |
243 | + <div class="col-md-5"> | |
244 | + <div class="widget stacked"> | |
245 | + <div class="widget-header"> | |
246 | + <i class="fa fa-pencil"></i> | |
247 | + <h3>Queue Future Pricing </h3> | |
248 | + <!-- <select style="float: right;margin:10px;background-color:#cd7b00;"> | |
249 | + <option>Send Pricing Email</option> | |
250 | + <option>Margin 1</option> | |
251 | + <option>Margin 2</option> | |
252 | + <option>Margin Tenants</option> | |
253 | + </select> --> | |
254 | + </div> | |
255 | + <!-- /widget-header --> | |
256 | + <div class="widget-content"> | |
257 | + <h6>Queue Future Fuel Pricing Here</h6> | |
258 | + <table class="table table-striped"> | |
259 | + <thead> | |
260 | + <tr> | |
261 | + <th> Product</th> | |
262 | + <th> Cost</th> | |
263 | + <th>PAP(Total)</th> | |
264 | + <th>Deploy</th> | |
265 | + <th>Next Expiration</th> | |
266 | + </tr> | |
267 | + </thead> | |
268 | + <tbody> | |
269 | + <tr> | |
270 | + <td>Name and inc.</td> | |
271 | + <td><input type="text" class="form-control" style="height:31px;" name="name" id="name"></td> | |
272 | + <td><input type="text" class="form-control" style="height:31px;" name="name" id="name"></td> | |
273 | + <td>Jemmy</td> | |
274 | + <td><input type="text" class="form-control" style="height:31px;" name="name" id="name"></td> | |
275 | + </tr> | |
276 | + <tr> | |
277 | + <td>Name and inc.</td> | |
278 | + <td><input type="text" class="form-control" style="height:31px;" name="name" id="name"></td> | |
279 | + <td><input type="text" class="form-control" style="height:31px;" name="name" id="name"></td> | |
280 | + <td>Jemmy</td> | |
281 | + <td><input type="text" class="form-control" style="height:31px;" name="name" id="name"></td> | |
282 | + </tr> | |
283 | + </tbody> | |
284 | + </table> | |
285 | + <div class="row" style="margin-left: 0px;"> | |
286 | + <div class="col-md-12" style= "text-align: right;"> | |
287 | + <button type="button" class="btn btn-success btn-xs">Save</button> | |
288 | + </div> | |
289 | + </div> | |
290 | + </div> | |
291 | + <!-- /widget-content --> | |
292 | + </div> | |
293 | + <!-- /widget --> | |
294 | + </div> | |
295 | + <div class="col-md-7"> | |
296 | + <div class="widget stacked"> | |
297 | + <div class="widget-header"> | |
298 | + <i class="fa fa-pencil"></i> | |
299 | + <h3><b>JET-A</b> Customer Margin Template</h3> | |
300 | + <div class="pull-right"> | |
301 | + <button type="submit" class="btn btn-success btn-sm"><i class="icon-ok"></i>+   Add Aircraft</button> | |
302 | + </div> | |
303 | + </div> | |
304 | + <!-- /widget-header --> | |
305 | + <div class="widget-content"> | |
306 | + <!-- <section id="accordions"> | |
307 | + <div class="panel-group accordion"> | |
308 | + <div class="panel panel-default open"> | |
309 | + <div class="panel-heading"> | |
310 | + <h4 class="panel-title"> | |
311 | + <a class="accordion-toggle" style="float:left;" data-toggle="collapse" data-parent=".accordion" href="#collapseOne"> | |
312 | + Margin 1 | |
313 | + </a> | |
314 | + <span style="color:#ff9900;font-size:12px;margin-left:50px">Retail- (minus) </span><span style="font-size:12px">$1.1500</span> | |
315 | + </h4> | |
316 | + </div> | |
317 | + <div id="collapseOne" class="panel-collapse collapse in"> | |
318 | + <div class="panel-body"> | |
319 | + <div id="editor2" style="visibility: hidden;"> | |
320 | + </div> | |
321 | + </div> | |
322 | + </div> | |
323 | + </div> | |
324 | + <div class="panel panel-default"> | |
325 | + <div class="panel-heading"> | |
326 | + <h4 class="panel-title"> | |
327 | + <a class="accordion-toggle" data-toggle="collapse" data-parent=".accordion" href="#collapseTwo"> | |
328 | + TurboPop AirCraft | |
329 | + </a> | |
330 | + </h4> | |
331 | + </div> | |
332 | + <div id="collapseTwo" class="panel-collapse collapse"> | |
333 | + <div class="panel-body"> | |
334 | + <div class="row" style="margin-left: 0px;"> | |
335 | + <div class="col-md-8"> | |
336 | + <div class="row" style="margin-bottom: 5px;"> | |
337 | + <div class="col-md-1" style="text-align: right;"> | |
338 | + <h5 style="color: blue;font-weight: bold;">Omit</h5> | |
339 | + </div> | |
340 | + <div class="col-md-5"> | |
341 | + <h5 style="color: blue;font-weight: bold;">AirCraft Size</h5> | |
342 | + </div> | |
343 | + <div class="col-md-3"> | |
344 | + <h5 style="color: blue;font-weight: bold;">Ramp/Facility Fee</h5> | |
345 | + </div> | |
346 | + <div class="col-md-3"> | |
347 | + <h5 style="color: blue;font-weight: bold;">Avoidance</h5> | |
348 | + </div> | |
349 | + </div> | |
350 | + <div class="row" style="margin-bottom: 5px;"> | |
351 | + <div class="col-md-1" style="text-align: right;"> | |
352 | + <input type="checkbox" name="validateCheckbox" value="1"> | |
353 | + </div> | |
354 | + <div class="col-md-5"> | |
355 | + <p>Very Light Jet | |
356 | + </p> | |
357 | + </div> | |
358 | + <div class="col-md-3"> | |
359 | + <input type="text" class="form-control" name="name" id="name"> | |
360 | + </div> | |
361 | + <div class="col-md-3"> | |
362 | + <input type="text" class="form-control" name="name" id="name"> | |
363 | + </div> | |
364 | + </div> | |
365 | + <div class="row" style="margin-bottom: 5px;"> | |
366 | + <div class="col-md-1" style="text-align: right;"> | |
367 | + <input type="checkbox" name="validateCheckbox" value="1"> | |
368 | + </div> | |
369 | + <div class="col-md-5"> | |
370 | + <p> Light Jet | |
371 | + </p> | |
372 | + </div> | |
373 | + <div class="col-md-3"> | |
374 | + <input type="text" class="form-control" name="name" id="name"> | |
375 | + </div> | |
376 | + <div class="col-md-3"> | |
377 | + <input type="text" class="form-control" name="name" id="name"> | |
378 | + </div> | |
379 | + </div> | |
380 | + </div> | |
381 | + <div class="col-md-4"> | |
382 | + </div> | |
383 | + </div> | |
384 | + </div> | |
385 | + </div> | |
386 | + </div> | |
387 | + <div class="panel panel-default"> | |
388 | + <div class="panel-heading"> | |
389 | + <h4 class="panel-title"> | |
390 | + <a class="accordion-toggle" data-toggle="collapse" data-parent=".accordion" href="#collapseThree"> | |
391 | + Collapsible Group Item #3 | |
392 | + </a> | |
393 | + </h4> | |
394 | + </div> | |
395 | + <div id="collapseThree" class="panel-collapse collapse"> | |
396 | + <div class="panel-body"> | |
397 | + Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS. | |
398 | + </div> | |
399 | + </div> | |
400 | + </div> | |
401 | + </div> | |
402 | + </section> --> | |
403 | + <uib-accordion close-others="oneAtATime"> | |
404 | + <div uib-accordion-group class="panel-default" heading="Margin 1 Retail- (minus) $1.1500"> | |
405 | + <div id="editor2" style="visibility: hidden;"></div> | |
406 | + </div> | |
407 | + <div uib-accordion-group class="panel-default" heading="TurboPop AirCraft"> | |
408 | + <div class="panel-body"> | |
409 | + <div class="row" style="margin-left: 0px;"> | |
410 | + <div class="col-md-8"> | |
411 | + <div class="row" style="margin-bottom: 5px;"> | |
412 | + <div class="col-md-1" style="text-align: right;"> | |
413 | + <h5 style="color: blue;font-weight: bold;">Omit</h5> | |
414 | + </div> | |
415 | + <div class="col-md-5"> | |
416 | + <h5 style="color: blue;font-weight: bold;">AirCraft Size</h5> | |
417 | + </div> | |
418 | + <div class="col-md-3"> | |
419 | + <h5 style="color: blue;font-weight: bold;">Ramp/Facility Fee</h5> | |
420 | + </div> | |
421 | + <div class="col-md-3"> | |
422 | + <h5 style="color: blue;font-weight: bold;">Avoidance</h5> | |
423 | + </div> | |
424 | + </div> | |
425 | + <div class="row" style="margin-bottom: 5px;"> | |
426 | + <div class="col-md-1" style="text-align: right;"> | |
427 | + <input type="checkbox" name="validateCheckbox" value="1"> | |
428 | + </div> | |
429 | + <div class="col-md-5"> | |
430 | + <p>Very Light Jet | |
431 | + </p> | |
432 | + </div> | |
433 | + <div class="col-md-3"> | |
434 | + <input type="text" class="form-control" name="name" id="name"> | |
435 | + </div> | |
436 | + <div class="col-md-3"> | |
437 | + <input type="text" class="form-control" name="name" id="name"> | |
438 | + </div> | |
439 | + </div> | |
440 | + <div class="row" style="margin-bottom: 5px;"> | |
441 | + <div class="col-md-1" style="text-align: right;"> | |
442 | + <input type="checkbox" name="validateCheckbox" value="1"> | |
443 | + </div> | |
444 | + <div class="col-md-5"> | |
445 | + <p> Light Jet | |
446 | + </p> | |
447 | + </div> | |
448 | + <div class="col-md-3"> | |
449 | + <input type="text" class="form-control" name="name" id="name"> | |
450 | + </div> | |
451 | + <div class="col-md-3"> | |
452 | + <input type="text" class="form-control" name="name" id="name"> | |
453 | + </div> | |
454 | + </div> | |
455 | + </div> | |
456 | + <div class="col-md-4"> | |
457 | + </div> | |
458 | + </div> | |
459 | + </div> | |
460 | + </div> | |
461 | + <div uib-accordion-group class="panel-default" heading="Collapsible Group Item #3"> | |
462 | + Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS. | |
463 | + </div> | |
464 | + </uib-accordion> | |
465 | + </div> | |
466 | + <!-- /widget-content --> | |
467 | + </div> | |
468 | + <!-- /widget --> | |
469 | + </div> | |
470 | + <!-- /span6 --> | |
471 | +</div> | |
472 | +</div> | |
473 | +</div> | |
237 | 474 | </div> <!-- /container --> |
238 | 475 | <!-- Le javascript |
239 | 476 | ================================================== --> |
240 | 477 | <!-- Placed at the end of the document so the pages load faster --> |
241 | -<script> | |
478 | +<!-- <script> | |
242 | 479 | CKEDITOR.replace( 'editor2', { |
243 | 480 | height: 250, |
244 | 481 | extraPlugins: 'divarea' |
245 | 482 | } ); |
246 | -</script> | |
247 | 483 | \ No newline at end of file |
484 | +</script> --> | |
248 | 485 | \ No newline at end of file | ... | ... |
app/partials/updateFuelManager/updateFuelManager.service.js
... | ... | @@ -0,0 +1,13 @@ |
1 | +(function(){ | |
2 | + 'use strict'; | |
3 | + angular.module('acufuel') | |
4 | + .service('updateFuelManagerService', ['$q', '$http', 'BE', updateFuelManagerService]); | |
5 | + | |
6 | + function updateFuelManagerService($q, $http, BE) { | |
7 | + var temp = {}; | |
8 | + | |
9 | + | |
10 | + | |
11 | + } | |
12 | + | |
13 | +})(); | |
0 | 14 | \ No newline at end of file | ... | ... |
app/partials/viewCompany/viewCompany.controller.js
... | ... | @@ -4,10 +4,33 @@ |
4 | 4 | //Load controller |
5 | 5 | angular.module('acufuel') |
6 | 6 | |
7 | - .controller('viewCompanyController', ['$scope',function($scope) { | |
7 | + .controller('viewCompanyController', ['$scope','$uibModal', function($scope , $uibModal) { | |
8 | + console.log("$uibModal",$uibModal); | |
9 | + $scope.open = function(){ | |
10 | + console.log("asndfsahdasd"); | |
11 | + $scope.editSmsModal = $uibModal.open({ | |
12 | + templateUrl: 'partials/NewCompany/NewCompany.html', | |
13 | + backdrop: true, | |
14 | + scope: $scope, | |
15 | + }) | |
16 | + } | |
17 | + $(function() { | |
18 | + $('#toggle-one2').bootstrapToggle(); | |
19 | + }) | |
8 | 20 | |
9 | - $scope.test = "Testing..."; | |
21 | + $(function() { | |
22 | + $('#toggle-one1').bootstrapToggle(); | |
23 | + }) | |
24 | + $(function() { | |
25 | + $('#toggle-two').bootstrapToggle(); | |
26 | + }) | |
27 | + $(function() { | |
28 | + $('#toggle-three').bootstrapToggle(); | |
29 | + }) | |
30 | + $(function() { | |
31 | + $('#toggle-four').bootstrapToggle(); | |
32 | + }) | |
33 | + | |
10 | 34 | |
11 | 35 | }]); |
12 | 36 | |
13 | - | ... | ... |
app/partials/viewCompany/viewCompany.html
... | ... | @@ -2,47 +2,104 @@ |
2 | 2 | .subnavbar .mainnav > li:nth-child(3) > a{ |
3 | 3 | color: #ff9900; |
4 | 4 | } |
5 | + .widget-content{ | |
6 | + padding: 10px !important; | |
7 | + } | |
8 | + .widget-content input[type="text"], .widget-content select{ | |
9 | + height: 31px; | |
10 | + padding: 0; | |
11 | + } | |
12 | + .new-label span{ | |
13 | + float: left; | |
14 | + line-height: 31px; | |
15 | + } | |
16 | + .new-label span:first-child{ | |
17 | + margin-right: 5px; | |
18 | + font-weight: bold; | |
19 | + } | |
20 | + .new-label span:last-child{ | |
21 | + margin-left: 5px; | |
22 | + } | |
23 | + .new-label select{ | |
24 | + display: -webkit-inline-box; | |
25 | + display: inline-box; | |
26 | + float: left; | |
27 | + } | |
28 | + .new-address p{ | |
29 | + margin-bottom: 0; | |
30 | + } | |
31 | + .new-add-select{ | |
32 | + padding-left: 15px; | |
33 | + margin: 10px 0; | |
34 | + } | |
35 | + .new-add-select select{ | |
36 | + width: 100px; | |
37 | + } | |
38 | + .widget{ | |
39 | + -moz-box-shadow: 0px 3px 8px rgba(100,100,100, 0.7); | |
40 | + -webkit-box-shadow: 0px 3px 8px rgba(100,100,100, 0.7); | |
41 | + box-shadow: 0px 3px 8px rgba(100,100,100, 0.7); | |
42 | + } | |
43 | + .optionclass { | |
44 | + background: #fff; | |
45 | + } | |
46 | + .timess { | |
47 | + float: right !important; | |
48 | + margin-top: 10px !important; | |
49 | + margin-right: 10px !important; | |
50 | + color: #999 !important; | |
51 | + cursor: pointer !important; | |
52 | + } | |
5 | 53 | </style> |
6 | -<div class="container"> | |
54 | +<div class="col-xs-12 col-md-11"> | |
7 | 55 | <div class="row" style="margin-left:0px"> |
8 | 56 | <div class="col-md-12"> |
9 | - <div class="widget stacked"> | |
57 | + <div class="widget"> | |
10 | 58 | <div class="widget-header"> |
11 | - <i class="fa fa-building"></i> | |
12 | - <h3>Schedule</h3> | |
59 | + <i class="fa fa-building-o" aria-hidden="true"></i> | |
60 | + <h3>Antioch Flight Department</h3> | |
61 | + <i class="fa fa-times timess" ui-sref="app.customers" aria-hidden="true"></i> | |
13 | 62 | </div> |
14 | 63 | <!-- /widget-header --> |
15 | 64 | <div class="widget-content"> |
16 | 65 | <div class="row" style="margin-left:0px"> |
17 | 66 | <div class="col-md-6"> |
18 | - <div class="widget stacked"> | |
67 | + <div class="widget"> | |
19 | 68 | <div class="widget-header"> |
20 | - <i class="fa fa-building"></i> | |
69 | + <i class="fa fa-building-o" aria-hidden="true"></i> | |
21 | 70 | <h3>Company Details</h3> |
22 | - <div style="float:right;margin-right:15px;"><input type="checkbox" style="margin-top: 13px;" data-toggle="toggle" data-size="mini"></div> | |
71 | + <div class="pull-right my-toggle-switch" style="margin-top: 10px; margin-right: 10px;"> | |
72 | + <div><input id="toggle-one2" checked type="checkbox" data-size="mini" data-width="55" data-toggle="toggle" data-on="Active" data-off="Dactive"> | |
73 | + </div> | |
74 | + </div> | |
23 | 75 | </div> |
24 | 76 | <div class="widget-content"> |
25 | 77 | <div class="row" style="margin-left:0px"> |
26 | - <div class="col-md-9"> | |
78 | + <div class="col-md-8" style="padding-left: 0;"> | |
27 | 79 | <h3 style="color:#F90;"> |
28 | 80 | <b>Antioch Flight Department</b> |
29 | 81 | </h3> |
30 | 82 | </div> |
31 | - <div class="col-md-3"> | |
32 | - <select class="form-control" style="height:31px;"> | |
33 | - <option>Margin1</option> | |
34 | - <option>Margin2</option> | |
83 | + <div class="col-md-4"> | |
84 | + <select class="form-control" style="height:31px;background: #ebebeb;"> | |
85 | + <option class="optionclass" disabled selected>Certificate Type</option> | |
86 | + <option class="optionclass">Part 91 (Corporate)</option> | |
87 | + <option class="optionclass">Part 135 (Charter)</option> | |
88 | + <option class="optionclass">Part 121 (Scheduled)</option> | |
89 | + <option class="optionclass">Military</option> | |
90 | + <option class="optionclass">Government</option> | |
35 | 91 | </select> |
36 | 92 | </div> |
37 | 93 | </div> |
38 | 94 | <div> |
39 | - <p> | |
40 | - <b>Master Margin Setting </b> | |
41 | - <select> | |
95 | + <p class="new-label"> | |
96 | + <span>Master Margin Setting </span> | |
97 | + <select class="form-control" style="width: 100px;"> | |
42 | 98 | <option>Margin1</option> |
43 | 99 | <option>Margin2</option> |
44 | 100 | </select> |
45 | - See Aircrart List | |
101 | + <span>See Aircrart List</span> | |
102 | + <div class="clearfix"></div> | |
46 | 103 | </p> |
47 | 104 | </div> |
48 | 105 | <div> |
... | ... | @@ -52,27 +109,37 @@ |
52 | 109 | <input type="checkbox" name=""> CAA Member |
53 | 110 | </div> |
54 | 111 | </br> |
55 | - <div> | |
56 | - <p><i class="fa fa-map-marker"></i> Reviera State Rd32 </p> | |
57 | - <p><i class="fa fa-phone"></i> (310) 2342-3433 </p> | |
58 | - <p><i class="fa fa-envelope"></i> freed@gmail.com</p> | |
112 | + <div class="new-address"> | |
113 | + <p><i class="fa fa-map-marker"></i> Reviera State Rd32 <input type="checkbox"> </p> | |
114 | + <p><i class="fa fa-phone"></i> (310) 2342-3433 <input type="checkbox"></p> | |
115 | + <p><i class="fa fa-envelope"></i> freed@gmail.com <input type="checkbox"></p> | |
116 | + </div> | |
117 | + <div class="new-add-select"> | |
118 | + <select class="form-control" style="background: #ebebeb;"> | |
119 | + <option disabled selected>Add Field</option> | |
120 | + <option class="optionclass">Add Phone</option> | |
121 | + <option class="optionclass">Add Email</option> | |
122 | + </select> | |
59 | 123 | </div> |
60 | - </br> | |
61 | 124 | <div> |
62 | - <p><b>Company Notes</b></p> | |
125 | + <p style="margin-bottom: 0;"><b>Company Notes</b> <input type="checkbox"></p> | |
63 | 126 | <p>This is the test data. note will be written in this</p> |
64 | 127 | </div> |
65 | - <div> | |
128 | + <div class="dis"> | |
66 | 129 | <button type="button" class="btn btn-primary">Distribute Price to Company Contacts</button> |
67 | 130 | </div> |
131 | + <div><button type="button" class="btn btn-info">Setup Fuel</button></div> | |
68 | 132 | </div> |
69 | 133 | </div> |
70 | 134 | </div> |
71 | 135 | <div class="col-md-6"> |
72 | - <div class="widget stacked"> | |
136 | + <div class="widget"> | |
73 | 137 | <div class="widget-header"> |
74 | 138 | <i class="fa fa-plane"></i> |
75 | 139 | <h3>Aircraft List</h3> |
140 | + <div class="pull-right"> | |
141 | + <button type="submit" class="btn btn-success btn-sm" ng-click="open()" style="margin-top: 4px; margin-right: 9px;"><i class="icon-ok"></i>+   Add Aircraft</button> | |
142 | + </div> | |
76 | 143 | </div> |
77 | 144 | <div class="widget-content" style="padding:0px"> |
78 | 145 | <div class="table-responsive"> |
... | ... | @@ -83,8 +150,10 @@ |
83 | 150 | <th>Make</th> |
84 | 151 | <th>Model</th> |
85 | 152 | <th>JET-A</th> |
86 | - <th>JET-A(All in)</th> | |
153 | + <th>All in</th> | |
87 | 154 | <th>AVGAS</th> |
155 | + <th>All in</th> | |
156 | + <th></th> | |
88 | 157 | </tr> |
89 | 158 | </thead> |
90 | 159 | <tbody> |
... | ... | @@ -105,6 +174,8 @@ |
105 | 174 | <option>Margin2</option> |
106 | 175 | </select> |
107 | 176 | </td> |
177 | + <td style="color:#55AF8B;">$3659</td> | |
178 | + <td></td> | |
108 | 179 | </tr> |
109 | 180 | <tr> |
110 | 181 | <td>N817C6</td> |
... | ... | @@ -123,6 +194,8 @@ |
123 | 194 | <option>Margin2</option> |
124 | 195 | </select> |
125 | 196 | </td> |
197 | + <td style="color:#55AF8B;">$3659</td> | |
198 | + <td></td> | |
126 | 199 | </tr> |
127 | 200 | <tr> |
128 | 201 | <td>N817C6</td> |
... | ... | @@ -141,6 +214,8 @@ |
141 | 214 | <option>Margin2</option> |
142 | 215 | </select> |
143 | 216 | </td> |
217 | + <td style="color:#55AF8B;">$3659</td> | |
218 | + <td></td> | |
144 | 219 | </tr> |
145 | 220 | <tr> |
146 | 221 | <td>N817C6</td> |
... | ... | @@ -159,6 +234,8 @@ |
159 | 234 | <option>Margin2</option> |
160 | 235 | </select> |
161 | 236 | </td> |
237 | + <td style="color:#55AF8B;">$3659</td> | |
238 | + <td></td> | |
162 | 239 | </tr> |
163 | 240 | </tbody> |
164 | 241 | </table> |
... | ... | @@ -169,10 +246,13 @@ |
169 | 246 | </div> |
170 | 247 | <div class="row" style="margin-left:0px"> |
171 | 248 | <div class="col-md-6"> |
172 | - <div class="widget stacked"> | |
249 | + <div class="widget"> | |
173 | 250 | <div class="widget-header"> |
174 | 251 | <i class="fa fa-user"></i> |
175 | 252 | <h3>Contact List</h3> |
253 | + <div class="pull-right"> | |
254 | + <button type="submit" class="btn btn-success btn-sm" style="margin-top: 4px; margin-right: 9px;"><i class="icon-ok"></i>+   Add Contact</button> | |
255 | + </div> | |
176 | 256 | </div> |
177 | 257 | <div class="widget-content" style="padding:0px"> |
178 | 258 | <div class="table-responsive"> |
... | ... | @@ -187,25 +267,25 @@ |
187 | 267 | </thead> |
188 | 268 | <tbody> |
189 | 269 | <tr> |
190 | - <td><input type="checkbox" data-toggle="toggle" data-size="mini"></td> | |
270 | + <td><input id="toggle-one1" checked type="checkbox" data-size="mini" data-toggle="toggle"></td> | |
191 | 271 | <td>Mark</td> |
192 | 272 | <td>Otto</td> |
193 | 273 | <td>Dispatcher</td> |
194 | 274 | </tr> |
195 | 275 | <tr> |
196 | - <td><input type="checkbox" data-toggle="toggle" data-size="mini"></td> | |
276 | + <td><input id="toggle-two" checked type="checkbox" data-size="mini" data-toggle="toggle"></td> | |
197 | 277 | <td>Mark</td> |
198 | 278 | <td>Otto</td> |
199 | 279 | <td>Dispatcher</td> |
200 | 280 | </tr> |
201 | 281 | <tr> |
202 | - <td><input type="checkbox" data-toggle="toggle" data-size="mini"></td> | |
282 | + <td><input id="toggle-three" checked type="checkbox" data-size="mini" data-toggle="toggle"></td> | |
203 | 283 | <td>Mark</td> |
204 | 284 | <td>Otto</td> |
205 | 285 | <td>Dispatcher</td> |
206 | 286 | </tr> |
207 | 287 | <tr> |
208 | - <td><input type="checkbox" data-toggle="toggle" data-size="mini"></td> | |
288 | + <td><input id="toggle-four" checked type="checkbox" data-size="mini" data-toggle="toggle"></td> | |
209 | 289 | <td>Mark</td> |
210 | 290 | <td>Otto</td> |
211 | 291 | <td>Dispatcher</td> |
... | ... | @@ -217,7 +297,7 @@ |
217 | 297 | </div> |
218 | 298 | </div> |
219 | 299 | <div class="col-md-6"> |
220 | - <div class="widget stacked"> | |
300 | + <div class="widget"> | |
221 | 301 | <div class="widget-header"> |
222 | 302 | <i class="fa fa-pencil"></i> |
223 | 303 | <h3>Price Manager Reference</h3> |
... | ... | @@ -286,12 +366,13 @@ |
286 | 366 | <!-- /widget --> |
287 | 367 | </div> |
288 | 368 | <!-- /container --> |
369 | +<div class="clearfix"></div> | |
289 | 370 | <!-- Le javascript |
290 | 371 | ================================================== --> |
291 | 372 | <!-- Placed at the end of the document so the pages load faster --> |
292 | -<script> | |
373 | +<!-- <script | |
293 | 374 | CKEDITOR.replace( 'editor2', { |
294 | 375 | height: 250, |
295 | 376 | extraPlugins: 'divarea' |
296 | 377 | } ); |
297 | -</script> | |
298 | 378 | \ No newline at end of file |
379 | + </script> --> | |
299 | 380 | \ No newline at end of file | ... | ... |
app/partials/viewCompany/viewCompany.service.js
... | ... | @@ -0,0 +1,13 @@ |
1 | +(function(){ | |
2 | + 'use strict'; | |
3 | + angular.module('acufuel') | |
4 | + .service('viewCompanyService', ['$q', '$http', 'BE', viewCompanyService]); | |
5 | + | |
6 | + function viewCompanyService($q, $http, BE) { | |
7 | + var temp = {}; | |
8 | + | |
9 | + | |
10 | + | |
11 | + } | |
12 | + | |
13 | +})(); | |
0 | 14 | \ No newline at end of file | ... | ... |
app/partials/widgetTemplate/widgetTemplate.service.js
... | ... | @@ -0,0 +1,13 @@ |
1 | +(function(){ | |
2 | + 'use strict'; | |
3 | + angular.module('acufuel') | |
4 | + .service('widgetTemplateService', ['$q', '$http', 'BE', widgetTemplateService]); | |
5 | + | |
6 | + function widgetTemplateService($q, $http, BE) { | |
7 | + var temp = {}; | |
8 | + | |
9 | + | |
10 | + | |
11 | + } | |
12 | + | |
13 | +})(); | |
0 | 14 | \ No newline at end of file | ... | ... |
bower.json
... | ... | @@ -25,6 +25,13 @@ |
25 | 25 | "angular-ui-router": "^0.4.2", |
26 | 26 | "bootstrap-toggle": "^2.2.2", |
27 | 27 | "fullcalendar": "^3.2.0", |
28 | - "toastr": "^2.1.3" | |
28 | + "toastr": "^2.1.3", | |
29 | + "angular-bootstrap": "^2.5.0", | |
30 | + "jqGrid": "^5.2.0", | |
31 | + "Autocomplete": "autocomplete#^2.0.5", | |
32 | + "DataTables": "~1.10.15", | |
33 | + "angular-cookies": "~1.6.4", | |
34 | + "angular-resource": "~1.6.4", | |
35 | + "angular-xeditable": "~0.7.1" | |
29 | 36 | } |
30 | 37 | } | ... | ... |