WD Google Analytics - Version 1.0.5

Version Description

Fixed: PHP version conflict
Added: Pro flags about additional functionality available in Pro version
Added: Explanation texts and links to documentation on several pages

Download this release

Release Info

Developer webdorado
Plugin Icon 128x128 WD Google Analytics
Version 1.0.5
Comparing to
See all releases

Code changes from version 1.0.4 to 1.0.5

admin/gawd_google_class.php CHANGED
@@ -1,1605 +1,1605 @@
1
- <?php
2
-
3
- require_once(GAWD_DIR . '/google/autoload.php');
4
-
5
- class GAWD_google_client {
6
-
7
- private static $instance;
8
- private $google_client;
9
- public $analytics_member;
10
- private $gawd_user_data;
11
-
12
- protected function __construct() {
13
- $this->gawd_user_data = get_option('gawd_user_data');
14
- try{
15
-
16
- $this->google_client = new Google_Client();
17
- $this->set_google_client();
18
- $this->analytics_member = new Google_Service_Analytics($this->google_client);
19
-
20
- }catch(Google_Service_Exception $e){
21
- $errors = $e->getErrors();
22
- return $errors[0]["message"];
23
- }catch(Exception $e){
24
- return $e->getMessage();
25
- }
26
- }
27
-
28
- /**
29
- * Sets the google class member.
30
- */
31
- private function set_google_client() {
32
-
33
- $access_token = $this->gawd_user_data['access_token'];
34
- $this->google_client->setAccessToken($access_token);
35
-
36
- if ($this->google_client->isAccessTokenExpired()) {
37
- $refresh_token = $this->gawd_user_data['refresh_token'];
38
-
39
- $this->google_client->setClientId(GAWD::get_instance()->get_project_client_id());
40
- $this->google_client->setClientSecret(GAWD::get_instance()->get_project_client_secret());
41
- $this->google_client->setRedirectUri(GAWD::get_instance()->redirect_uri);
42
- // $this->google_client->setAuthConfigFile(GAWD_DIR . '/client_secrets.json');
43
- $this->google_client->refreshToken($refresh_token);
44
- }
45
- }
46
-
47
- public static function create_authentication_url() {
48
- $client = new Google_Client();
49
- // $client->setAuthConfigFile(GAWD_DIR . '/client_secrets.json');
50
- $client->setClientId(GAWD::get_instance()->get_project_client_id());
51
- $client->setClientSecret(GAWD::get_instance()->get_project_client_secret());
52
- $client->setRedirectUri(GAWD::get_instance()->redirect_uri);
53
- $client->addScope(array(Google_Service_Analytics::ANALYTICS_EDIT, Google_Service_Analytics::ANALYTICS_READONLY));
54
- $client->setApprovalPrompt('force');
55
- $client->setAccessType('offline');
56
- return "'" . $client->createAuthUrl() . "'";
57
- }
58
-
59
- public static function authenticate($code) {
60
-
61
- $client = new Google_Client();
62
- // $client->setAuthConfigFile(GAWD_DIR . '/client_secrets.json');
63
- $client->setClientId(GAWD::get_instance()->get_project_client_id());
64
- $client->setClientSecret(GAWD::get_instance()->get_project_client_secret());
65
- $client->setRedirectUri(GAWD::get_instance()->redirect_uri);
66
- try {
67
- $client->authenticate($code);
68
-
69
- if ($client->isAccessTokenExpired()) {
70
- return false;
71
- }
72
- else {
73
- $access_token = $client->getAccessToken();
74
- $refresh_token = $client->getRefreshToken();
75
- update_option('gawd_user_data', array(
76
- 'access_token' => $access_token,
77
- 'refresh_token' => $refresh_token
78
- )
79
- );
80
-
81
- $gawd_client = self::get_instance();
82
- delete_transient('gawd_user_profiles');
83
- $profiles = $gawd_client->get_profiles();
84
-
85
- if ($profiles instanceof Google_Service_Exception) {
86
-
87
- delete_option('gawd_user_data');
88
- $errors = $profiles->getErrors();
89
- return $errors[0]["message"];
90
- }
91
-
92
-
93
- update_option('gawd_user_data', array(
94
- 'access_token' => $access_token,
95
- 'refresh_token' => $refresh_token,
96
- 'gawd_profiles' => $profiles,
97
- )
98
- );
99
- return true;
100
- }
101
- } catch (Google_Service_Exception $e) {
102
- delete_option('gawd_user_data');
103
- $errors = $e->getErrors();
104
- return $errors[0]["message"];
105
- } catch (Exception $e) {
106
- return $e->getMessage();
107
- }
108
- }
109
-
110
- public function get_management_accounts() {
111
- $accounts_light = array();
112
- try{
113
- $accounts = $this->analytics_member->management_accounts->listManagementAccounts()->getItems();
114
-
115
- foreach ($accounts as $account) {
116
- $edit_flag = FALSE;
117
- $permissions = $account['modelData']['permissions']['effective'];
118
- foreach ($permissions as $permission) {
119
- if ($permission == 'EDIT') {
120
- $edit_flag = TRUE;
121
- }
122
- }
123
- $accounts_light[] = array(
124
- 'name' => $account['name'],
125
- 'id' => $account['id'],
126
- 'edit_permissions' => $edit_flag
127
- );
128
- /*if ($edit_flag == TRUE) {
129
- $accounts_light[] = array(
130
- 'name' => $account['name'],
131
- 'id' => $account['id']
132
- );
133
- }*/
134
- }
135
- }catch (Google_Service_Exception $e) {
136
- //return $e->getErrors()[0]["message"];
137
- } catch (Exception $e) {
138
- //return $e->getMessage();
139
- }
140
- return $accounts_light;
141
- }
142
-
143
- public function property_exists() {
144
- try{
145
- $web_properties = $this->analytics_member->management_webproperties->listManagementWebproperties('~all')->getItems();
146
- }catch(Google_Service_Exception $e){
147
- return 'no_matches';
148
-
149
- }catch(Exception $e){
150
- return 'no_matches';
151
- }
152
- $exact_properties = array();
153
- $site_url = get_site_url() . '/';
154
-
155
- foreach ($web_properties as $web_property) {
156
- $current_url = $web_property['websiteUrl'];
157
- if (($current_url == $site_url) || (($current_url . '/') == $site_url)) {
158
- $exact_properties[] = $web_property;
159
- }
160
- }
161
- if (!empty($exact_properties)) {
162
- return $exact_properties;
163
- } else {
164
- return 'no_matches';
165
- }
166
- }
167
-
168
- public function get_default_profiles() {
169
- $gawd_user_data = get_option('gawd_user_data');
170
- $accountId = $this->get_default_accountId();
171
- $webPropertyId = $this->get_default_webPropertyId();
172
- $webProperty = $this->analytics_member->management_webproperties->get($accountId, $webPropertyId);
173
- $webPropertyName = $webProperty['name'];
174
- $profiles = $this->analytics_member->management_profiles->listManagementProfiles($accountId, $webPropertyId)->getItems();
175
- $profiles_light = array();
176
- foreach ($profiles as $profile) {
177
- $profiles_light[] = array(
178
- 'id' => $profile['id'],
179
- 'name' => $profile['name'],
180
- 'webPropertyName' => $webPropertyName
181
- );
182
- }
183
- return $profiles_light;
184
- }
185
-
186
- public function add_webproperty($accountId, $name) {
187
-
188
- $analytics = $this->analytics_member;
189
- $websiteUrl = get_site_url();
190
- try {
191
- $property = new Google_Service_Analytics_Webproperty();
192
- $property->setName($name);
193
- $property->setWebsiteUrl($websiteUrl);
194
- $analytics->management_webproperties->insert($accountId, $property);
195
- } catch (apiServiceException $e) {
196
- print 'There was an Analytics API service error '
197
- . $e->getCode() . ':' . $e->getMessage();
198
- } catch (apiException $e) {
199
- print 'There was a general API error '
200
- . $e->getCode() . ':' . $e->getMessage();
201
- }
202
- catch (Google_Service_Exception $e) {
203
- return 'There was a general API error '
204
- . $e->getCode() . ':' . $e->getMessage();
205
- }catch (Exception $e) {
206
- echo $e->getCode() . ':' . $e->getMessage();
207
- }
208
-
209
- $web_properties = $this->analytics_member->management_webproperties->listManagementWebproperties($accountId)->getItems();
210
-
211
- foreach ($web_properties as $web_property) {
212
- if ($web_property['name'] == $name) {
213
- $profile = new Google_Service_Analytics_Profile();
214
- $profile->setName('All Web Site Data');
215
- try {
216
- $analytics->management_profiles->insert($accountId, $web_property['id'], $profile);
217
- } catch (apiServiceException $e) {
218
- print 'There was an Analytics API service error '
219
- . $e->getCode() . ':' . $e->getMessage();
220
- } catch (apiException $e) {
221
- print 'There was a general API error '
222
- . $e->getCode() . ':' . $e->getMessage();
223
- }
224
- }
225
- }
226
- }
227
-
228
- /**
229
- * Get all the management profiles of the authenticated user.
230
- *
231
- * @return array
232
- */
233
- public function get_profiles() {
234
- $profiles_light = get_transient('gawd_user_profiles') ? get_transient('gawd_user_profiles') : '';
235
- if ($profiles_light && $profiles_light != ''){
236
- return $profiles_light;
237
- }
238
- $profiles_light = array();
239
- $gawd_user_data = get_option('gawd_user_data');
240
- try{
241
-
242
- if($this->analytics_member && $this->analytics_member->management_webproperties) {
243
- $web_properties = $this->analytics_member->management_webproperties->listManagementWebproperties( '~all' )->getItems();
244
- $profiles = $this->analytics_member->management_profiles->listManagementProfiles( '~all', '~all' )->getItems();
245
- $profiles_count = count( $profiles );
246
- $web_properties_count = count( $web_properties );
247
- for ( $i = 0; $i < $web_properties_count; $i ++ ) {
248
- for ( $j = 0; $j < $profiles_count; $j ++ ) {
249
- if ( $web_properties[ $i ]['id'] == $profiles[ $j ]['webPropertyId'] ) {
250
- $profiles_light[ $web_properties[ $i ]['name'] ][] = array(
251
- 'id' => $profiles[ $j ]['id'],
252
- 'name' => $profiles[ $j ]['name'],
253
- 'webPropertyId' => $profiles[ $j ]['webPropertyId'],
254
- 'websiteUrl' => $profiles[ $j ]['websiteUrl'],
255
- 'accountId' => $profiles[ $j ]['accountId']
256
- );
257
- }
258
- }
259
- }
260
- }else{
261
- return 'Something went wrong';
262
- }
263
- if (!isset($gawd_user_data['gawd_id']) || $gawd_user_data['gawd_id'] == '' || $gawd_user_data['gawd_id'] == NULL) {
264
- if (!empty($profiles_light)) {
265
- $first_profiles = reset($profiles_light);
266
- $first_profile = $first_profiles[0];
267
- $gawd_user_data['gawd_id'] = $first_profile['id'];
268
- $gawd_user_data['webPropertyId'] = $first_profile['webPropertyId'];
269
- $gawd_user_data['accountId'] = $first_profile['accountId'];
270
- $gawd_user_data['web_property_name'] = $web_properties[0]['name'];
271
- }
272
- }
273
-
274
- $gawd_user_data['gawd_profiles'] = $profiles_light;
275
- update_option('gawd_user_data', $gawd_user_data);
276
- set_transient('gawd_user_profiles',$profiles_light, 60);
277
- return $profiles_light;
278
- }catch(Google_Service_Exception $e){
279
- return $e;
280
- }catch(Exception $e){
281
- return $e;
282
- }
283
- }
284
-
285
- public function get_custom_dimensions($default = '') {
286
- $this->gawd_user_data = get_option('gawd_user_data');
287
- if ($default == 'default') {
288
- $webPropertyId = $this->get_default_webPropertyId();
289
- $accountId = $this->get_default_accountId();
290
- }
291
- else {
292
- $webPropertyId = $this->get_profile_webPropertyId();
293
- $accountId = $this->get_profile_accountId();
294
- $transient = get_transient('gawd-custom-dimensions-' . $webPropertyId);
295
- if ($transient) {
296
- if ($transient != 'no_custom_dimensions_exist') {
297
- return json_decode($transient, true);
298
- } else {
299
- return $transient;
300
- }
301
- }
302
- }
303
-
304
- $all_dimensions = $this->analytics_member->management_customDimensions->listManagementCustomDimensions($accountId, $webPropertyId)->getItems();
305
- if (0 == sizeof($all_dimensions)) {
306
- if ($default == 'default') {
307
- update_option('gawd_custom_dimensions', "no_custom_dimensions_exist");
308
- }
309
- set_transient('gawd-custom-dimensions-' . $webPropertyId, "no_custom_dimensions_exist", 12 * HOUR_IN_SECONDS);
310
- return "no_custom_dimensions_exist";
311
- }
312
- else {
313
- foreach ($all_dimensions as $dimension) {
314
- $dimensions_light[] = array(
315
- 'name' => $dimension['name'],
316
- 'id' => $dimension['id']
317
- );
318
- }
319
- $supported_dimensions = array("Logged in", "Post type", "Author", "Category", "Tags", "Published Month", "Published Year");
320
- $dimensions = array();
321
- foreach ($dimensions_light as $dimension) {
322
- foreach ($supported_dimensions as $supported_dimension) {
323
- if (trim(strtolower($dimension['name'])) == strtolower($supported_dimension)) {
324
- $dimension['name'] = $supported_dimension;
325
- $dimension['id'] = substr($dimension['id'], -1);
326
- $dimensions[] = $dimension;
327
- }
328
- }
329
- }
330
- if ($default == 'default') {
331
- update_option('gawd_custom_dimensions', $dimensions);
332
- }
333
- set_transient('gawd-custom-dimensions-' . $webPropertyId, json_encode($dimensions_light), 12 * HOUR_IN_SECONDS);
334
- return $dimensions_light;
335
- }
336
- }
337
-
338
- public function get_custom_dimensions_tracking() {
339
- $all_dimensions = get_option('gawd_custom_dimensions');
340
- if ($all_dimensions) {
341
- return $all_dimensions;
342
- }
343
- $all_dimensions = $this->get_custom_dimensions('default');
344
- if ($all_dimensions == 'no_custom_dimensions_exist') {
345
- return 'no_custom_dimensions_exist';
346
- }
347
- $supported_dimensions = array("Logged in", "Post type", "Author", "Category", "Tags", "Published Month", "Published Year");
348
- $dimensions = array();
349
- foreach ($all_dimensions as $dimension) {
350
- foreach ($supported_dimensions as $supported_dimension) {
351
- if (trim(strtolower($dimension['name'])) == strtolower($supported_dimension)) {
352
- $dimension['id'] = substr($dimension['id'], -1);
353
- $dimension['name'] = $supported_dimension;
354
- $dimensions[] = $dimension;
355
- }
356
- }
357
- }
358
- update_option('gawd_custom_dimensions', $dimensions);
359
- if ($dimensions) {
360
- return $dimensions;
361
- } else {
362
- return "no_custom_dimensions_exist";
363
- }
364
- }
365
-
366
- public static function gawd_cd_logged_in() {
367
- $value = var_export(is_user_logged_in(), true);
368
- $value = $value == 'true' ? 'yes' : 'no';
369
- return $value;
370
- }
371
-
372
- public static function gawd_cd_post_type() {
373
- if (is_singular()) {
374
- $post_type = get_post_type(get_the_ID());
375
-
376
- if ($post_type) {
377
- return $post_type;
378
- }
379
- }
380
- }
381
-
382
- public static function gawd_cd_author() {
383
- if (is_singular()) {
384
- if (have_posts()) {
385
- while (have_posts()) {
386
- the_post();
387
- }
388
- }
389
- $name = get_the_author_meta('user_nicename');
390
- $value = trim($name);
391
- return $value;
392
- }
393
- }
394
-
395
- public static function gawd_cd_category() {
396
- if (is_single()) {
397
- $categories = get_the_category(get_the_ID());
398
-
399
- if ($categories) {
400
- foreach ($categories as $category) {
401
- $category_names[] = $category->slug;
402
- }
403
-
404
- return implode(',', $category_names);
405
- }
406
- }
407
- }
408
-
409
- public static function gawd_cd_tags() {
410
- if (is_single()) {
411
- $tag_names = 'untagged';
412
-
413
- $tags = get_the_tags(get_the_ID());
414
-
415
- if ($tags) {
416
- $tag_names = implode(',', wp_list_pluck($tags, 'name'));
417
- }
418
-
419
- return $tag_names;
420
- }
421
- }
422
-
423
-
424
- public static function gawd_cd_published_month() {
425
- if (is_singular()) {
426
- return get_the_date('M-Y');
427
- }
428
- }
429
- public static function gawd_cd_published_year() {
430
- if (is_singular()) {
431
- return get_the_date('Y');
432
- }
433
- }
434
-
435
- public function get_management_filters() {
436
- $analytics = $this->analytics_member;
437
- $this->gawd_user_data = get_option('gawd_user_data');
438
- $accountId = $this->get_profile_accountId();
439
- $profileId = $this->get_profile_id();
440
- $webPropertyId = $this->get_profile_webPropertyId();
441
-
442
- try {
443
- $view_filters = $analytics->management_profileFilterLinks->listManagementProfileFilterLinks($accountId, $webPropertyId, $profileId);
444
- $filters = $view_filters->getItems();
445
- foreach ($filters as $filter) {
446
- $filter_info = $analytics->management_filters->get($accountId,$filter['modelData']['filterRef']['id']);
447
- $all_filters[] = array(
448
- 'name' => $filter['modelData']['filterRef']['name'],
449
- 'id' => $filter['modelData']['filterRef']['id'],
450
- 'type' => $filter_info['excludeDetails']['field'],
451
- 'value' => $filter_info['excludeDetails']['expressionValue'],
452
- 'view' => $filter['modelData']['profileRef']['name']
453
- );
454
- }
455
- if (isset($all_filters)) {
456
- return $all_filters;
457
- }
458
- } catch (Exception $e) {
459
- $error = array('error_message' => 'Error');
460
- if (strpos($e->getMessage(), 'User does not have sufficient permissions for this ')) {
461
- $error['error_message'] = 'User does not have sufficient permissions for this profile';
462
- }
463
- return json_encode($error);
464
- }
465
- }
466
-
467
- public function get_management_goals() {
468
- $this->gawd_user_data = get_option('gawd_user_data');
469
- $profileId = $this->get_profile_id();
470
- $accountId = $this->get_profile_accountId();
471
- $webPropertyId = $this->get_profile_webPropertyId();
472
- $goals = array();
473
- try {
474
- $goals = $this->analytics_member->management_goals->listManagementGoals($accountId, $webPropertyId, $profileId)->getItems();
475
- } catch (Exception $e) {
476
-
477
- }
478
- if (0 == sizeof($goals)) {
479
- return "no_goals_exist";
480
- } else {
481
- foreach ($goals as $goal) {
482
- $goals_light[] = array(
483
- 'name' => $goal['name'],
484
- 'id' => $goal['id']
485
- );
486
- }
487
- return $goals_light;
488
- }
489
- }
490
-
491
- public function get_default_goals() {
492
- $this->gawd_user_data = get_option('gawd_user_data');
493
- $accountId = $this->get_default_accountId();
494
- $webPropertyId = $this->get_default_webPropertyId();
495
- $goals = array();
496
- try {
497
- $goals = $this->analytics_member->management_goals->listManagementGoals($accountId, $webPropertyId, '~all')->getItems();
498
- } catch (Exception $e) {
499
-
500
- }
501
- if (0 == sizeof($goals)) {
502
- return "no_goals_exist";
503
- } else {
504
- $profiles = array();
505
- foreach ($goals as $goal) {
506
- $flag = false;
507
- foreach ($profiles as $profile) {
508
- if ($profile == $goal['profileId']) {
509
- $flag = true;
510
- }
511
- }
512
- if ($flag == false) {
513
- $profiles[] = $goal['profileId'];
514
- }
515
- }
516
- $goals_light = array();
517
- $caseSensitive = '';
518
- foreach ($profiles as $profile) {
519
- foreach ($goals as $goal) {
520
- if ($goal['profileId'] == $profile) {
521
- if($goal['type'] == 'URL_DESTINATION'){
522
- $type = 'Destination';
523
- if($goal["modelData"]['urlDestinationDetails']['matchType'] == 'EXACT'){
524
- $match_type = 'Equals';
525
- }
526
- elseif($goal["modelData"]['urlDestinationDetails']['matchType'] == 'HEAD'){
527
- $match_type = 'Begin with';
528
- }
529
- else{
530
- $match_type = 'Regular expresion';
531
- }
532
- $value = $goal["modelData"]['urlDestinationDetails']['url'];
533
- $caseSensitive = $goal["modelData"]['urlDestinationDetails']['caseSensitive'];
534
- }
535
- elseif($goal['type'] == 'VISIT_TIME_ON_SITE'){
536
- $type = 'Duration';
537
- if($goal["modelData"]['visitTimeOnSiteDetails']['comparisonType'] == 'GREATER_THAN'){
538
- $match_type = 'Greater than';
539
- }
540
- $value = $goal["modelData"]['visitTimeOnSiteDetails']['comparisonValue'];
541
- $hours = strlen(floor($value / 3600)) < 2 ? '0' . floor($value / 3600) : floor($value / 3600);
542
- $mins = strlen(floor($value / 60 % 60)) < 2 ? '0' . floor($value / 60 % 60) : floor($value / 60 % 60);
543
- $secs = strlen(floor($value % 60)) < 2 ? '0' . floor($value % 60) : floor($value % 60);
544
- $value = $hours.':'.$mins.':'.$secs;
545
- }
546
- else{
547
- $type = 'Pages/Screens per session';
548
- if($goal["modelData"]['visitNumPagesDetails']['comparisonType'] == 'GREATER_THAN'){
549
- $match_type = 'Greater than';
550
- }
551
- $value = $goal["modelData"]['visitNumPagesDetails']['comparisonValue'];
552
- }
553
-
554
- $goals_light[$profile][] = array(
555
- 'name' => $goal['name'],
556
- 'id' => $goal['id'],
557
- 'type' => $type,
558
- 'match_type' => $match_type,
559
- 'profileID' => $goal['profileId'],
560
- 'caseSensitive' => $caseSensitive,
561
- 'value' => $value,
562
- );
563
- }
564
- }
565
- }
566
- return $goals_light;
567
- }
568
- }
569
-
570
- public function add_custom_dimension($name, $id) {
571
-
572
- $custom_dimension = new Google_Service_Analytics_CustomDimension();
573
- $custom_dimension->setId($id);
574
- $custom_dimension->setActive(TRUE);
575
- $custom_dimension->setScope('Hit');
576
- $custom_dimension->setName($name);
577
-
578
- $accountId = $this->get_default_accountId();
579
- $webPropertyId = $this->get_default_webPropertyId();
580
- $analytics = $this->analytics_member;
581
- delete_transient('gawd-custom-dimensions-' . $webPropertyId);
582
- try {
583
- $analytics->management_customDimensions->insert($accountId, $webPropertyId, $custom_dimension);
584
- } catch (apiServiceException $e) {
585
- print 'There was an Analytics API service error '
586
- . $e->getCode() . ':' . $e->getMessage();
587
- } catch (apiException $e) {
588
- print 'There was a general API error '
589
- . $e->getCode() . ':' . $e->getMessage();
590
- }
591
- }
592
-
593
- public function add_goal($gawd_goal_profile, $goal_max_id, $gawd_goal_type, $gawd_goal_name, $gawd_goal_comparison = "GREATER_THAN", $gawd_goal_value, $url_case_sensitve = 'false') {
594
- $this->gawd_user_data = get_option('gawd_user_data');
595
- /* This request creates a new Goal. */
596
- // Construct the body of the request.
597
- $goal = new Google_Service_Analytics_Goal();
598
- $goal->setId($goal_max_id); //ID
599
- $goal->setActive(True); //ACTIVE/INACTIVE
600
- $goal->setType($gawd_goal_type); //URL_DESTINATION, VISIT_TIME_ON_SITE, VISIT_NUM_PAGES, AND EVENT
601
- $goal->setName($gawd_goal_name); //NAME
602
- // Construct the time on site details.
603
- if ($gawd_goal_type == 'VISIT_TIME_ON_SITE') {
604
- $details = new Google_Service_Analytics_GoalVisitTimeOnSiteDetails();
605
- $details->setComparisonType($gawd_goal_comparison); //VISIT_TIME_ON_SITE -------- LESS_THAN/ GREATER_THAN------
606
- $details->setComparisonValue($gawd_goal_value);
607
- $goal->setVisitTimeOnSiteDetails($details);
608
- } elseif ($gawd_goal_type == 'URL_DESTINATION') {
609
- if($url_case_sensitve != ''){
610
- $url_case_sensitve = true;
611
- }
612
- $details = new Google_Service_Analytics_GoalUrlDestinationDetails();
613
- $details->setCaseSensitive($url_case_sensitve);
614
- $details->setFirstStepRequired('false');
615
- $details->setMatchType($gawd_goal_comparison);
616
- $details->setUrl($gawd_goal_value);
617
- $goal->setUrlDestinationDetails($details);
618
- } elseif ($gawd_goal_type == 'VISIT_NUM_PAGES') {
619
- $details = new Google_Service_Analytics_GoalVisitNumPagesDetails();
620
- $details->setComparisonType($gawd_goal_comparison); //VISIT_TIME_ON_SITE -------- LESS_THAN/ GREATER_THAN------
621
- $details->setComparisonValue($gawd_goal_value);
622
- $goal->setVisitNumPagesDetails($details);
623
- } elseif ($gawd_goal_type == 'EVENT') {
624
- /* $details = new Google_Service_Analytics_GoalEventDetails();
625
- $details = new Google_Service_Analytics_GoalEventDetailsEventConditions();
626
- $detailssetComparisonType
627
- //$details->setEventConditions($gawd_goal_comparison);//VISIT_TIME_ON_SITE -------- LESS_THAN/ GREATER_THAN------
628
- //$details->setUseEventValue($gawd_goal_value); */
629
- $goal->setEventDetails($details);
630
- }
631
-
632
- //Set the time on site details.
633
- $this->analytics_member;
634
- $this->gawd_user_data = get_option('gawd_user_data');
635
- $accountId = $this->get_default_accountId();
636
- $webPropertyId = $this->get_default_webPropertyId();
637
- $profileId = $gawd_goal_profile;
638
- $analytics = $this->analytics_member;
639
- try {
640
- $analytics->management_goals->insert($accountId, $webPropertyId, $profileId, $goal);
641
- } catch (apiServiceException $e) {
642
- print 'There was an Analytics API service error '
643
- . $e->getCode() . ':' . $e->getMessage();
644
- } catch (apiException $e) {
645
- print 'There was a general API error '
646
- . $e->getCode() . ':' . $e->getMessage();
647
- }
648
- catch (Exception $e) {
649
- $error = array('error_message' => $e->getMessage());
650
- if (strpos($e->getMessage(), 'User does not have permission to perform this operation')) {
651
- $error['error_message'] = 'User does not have permission to perform this operation';
652
- }
653
- return json_encode($error);
654
- }
655
- }
656
-
657
- public function add_filter($name, $type, $value) {
658
- $this->gawd_user_data = get_option('gawd_user_data');
659
- $accountId = $this->get_profile_accountId();
660
- $profileId = $this->get_profile_id();
661
- $webPropertyId = $this->get_profile_webPropertyId();
662
- $analytics = $this->analytics_member;
663
- $condition = $type == 'GEO_IP_ADDRESS' ? 'EQUAL' : 'MATCHES';
664
- /**
665
- * Note: This code assumes you have an authorized Analytics service object.
666
- * See the Filters Developer Guide for details.
667
- */
668
- /**
669
- * This request creates a new filter.
670
- */
671
- try {
672
- // Construct the filter expression object.
673
- $details = new Google_Service_Analytics_FilterExpression();
674
- $details->setField($type);
675
- $details->setMatchType($type);
676
- $details->setExpressionValue($value);
677
- $details->setCaseSensitive(false);
678
- // Construct the filter and set the details.
679
- $filter = new Google_Service_Analytics_Filter();
680
- $filter->setName($name);
681
- $filter->setType("EXCLUDE");
682
- $filter->setExcludeDetails($details);
683
-
684
- $insertedFilter = $analytics->management_filters->insert($accountId, $filter);
685
- $analyticsFilterRef = new Google_Service_Analytics_FilterRef();
686
- $analyticsFilterRef->setId($insertedFilter->id);
687
- $filterData = new Google_Service_Analytics_ProfileFilterLink();
688
- $filterData->setFilterRef($analyticsFilterRef );
689
- // Add view to inserted filter
690
- $res = $analytics->management_profileFilterLinks->insert($accountId, $webPropertyId, $profileId, $filterData);
691
-
692
- } catch (apiServiceException $e) {
693
- print 'There was an Analytics API service error '
694
- . $e->getCode() . ':' . $e->getMessage();
695
- } catch (apiException $e) {
696
- print 'There was a general API error '
697
- . $e->getCode() . ':' . $e->getMessage();
698
- } catch (Exception $e) {
699
- echo '<script>window.location.href="' . admin_url() . 'admin.php?page=gawd_settings&errorMsg=1#gawd_filters_tab";</script>';
700
- }
701
- }
702
-
703
- public function get_country_data($metric, $dimension, $start_date, $end_date, $country_filter, $geo_type, $timezone) {
704
- $profileId = $this->get_profile_id();
705
- $analytics = $this->analytics_member;
706
- $metric = 'ga:users,ga:sessions,ga:percentNewSessions,ga:bounceRate,ga:pageviews,ga:avgSessionDuration';
707
-
708
- try {
709
- $results = $analytics->data_ga->get(
710
- 'ga:' . $profileId, $start_date, $end_date, $metric, array(
711
- 'dimensions' => 'ga:' . $dimension,
712
- 'sort' => 'ga:' . $dimension,
713
- 'filters' => 'ga:' . $geo_type . '==' . $country_filter
714
- )
715
- );
716
- } catch (Exception $e) {
717
- $error = array('error_message' => 'Error');
718
- if (strpos($e->getMessage(), 'User does not have sufficient permissions for this profile')) {
719
- $error['error_message'] = 'User does not have sufficient permissions for this profile';
720
- }
721
- return json_encode($error);
722
- }
723
- $rows = $results->getRows();
724
- $metric = explode(',', $metric);
725
- if ($rows) {
726
- $data_sum = array();
727
- foreach($results->getTotalsForAllResults() as $key => $value){
728
- $data_sum[trim(ucfirst(preg_replace('/([A-Z])/', ' $1', substr($key,3))))] = $value;
729
- }
730
- $j = 0;
731
- foreach ($rows as $row) {
732
- $data[$j] = array(
733
- ucfirst($dimension) => $row[0]
734
- );
735
- $data[$j]['No'] = floatval($j + 1);
736
- for ($i = 0; $i < count($metric); $i++) {
737
- $data[$j][trim(ucfirst(preg_replace('/([A-Z])/', ' $1', substr($metric[$i], 3))))] = floatval($row[$i + 1]);
738
- }
739
- $j++;
740
- }
741
- } else {
742
- $empty[0] = array(
743
- trim(ucfirst(preg_replace('/([A-Z])/', ' $1', $dimension))) => 0
744
- );
745
- $empty[0]['No'] = 1;
746
- for ($i = 0; $i < count($metric); $i++) {
747
- $empty[0][trim(ucfirst(preg_replace('/([A-Z])/', ' $1', substr($metric[$i], 3))))] = 0;
748
- }
749
-
750
- return json_encode($empty);
751
- }
752
- $expiration = strtotime(date("Y-m-d 23:59:59")) - strtotime(gmdate("Y-m-d H:i:s") . '+' . $timezone . ' hours');
753
- $result = $data;
754
- if ($data_sum != '') {
755
- $result = array('data_sum' => $data_sum, 'chart_data' => $data);
756
- }
757
- set_transient( 'gawd-country-'.$profileId.'-'.$country_filter.'-'.$start_date.'-'.$end_date, json_encode($result), $expiration );
758
- return json_encode($result);
759
- }
760
-
761
- public function get_post_page_data($metric, $dimension, $start_date, $end_date, $filter, $timezone, $chart) {
762
- $profileId = $this->get_profile_id();
763
- $analytics = $this->analytics_member;
764
- $metric = 'ga:users,ga:sessions,ga:percentNewSessions,ga:bounceRate,ga:pageviews,ga:avgSessionDuration,ga:pageviewsPerSession';
765
- if($chart == 'pie'){
766
- $diff = date_diff(date_create($start_date),date_create($end_date));
767
- if(intval($diff->format("%a")) > 7){
768
- $dimension = 'week';
769
- }
770
- if(intval($diff->format("%a")) > 60){
771
- $dimension = 'month';
772
- }
773
- }
774
- // Get the results from the Core Reporting API and print the results.
775
- // Calls the Core Reporting API and queries for the number of sessions
776
- // for the last seven days.
777
-
778
- $filter_type = 'pagePath';
779
-
780
- try {
781
- $results = $analytics->data_ga->get(
782
- 'ga:' . $profileId, $start_date, $end_date, $metric, array(
783
- 'dimensions' => 'ga:' . $dimension,
784
- 'sort' => 'ga:' . $dimension,
785
- 'filters' => 'ga:' . $filter_type . '=~' . $filter
786
- )
787
- );
788
- } catch (Exception $e) {
789
- $error = array('error_message' => 'Error');
790
- if (strpos($e->getMessage(), 'User does not have sufficient permissions for this profile')) {
791
- $error['error_message'] = 'User does not have sufficient permissions for this profile';
792
- }
793
- return json_encode($error);
794
- }
795
-
796
- $rows = $results->getRows();
797
- $metric = explode(',', $metric);
798
- if ($rows) {
799
- $j = 0;
800
- $data_sum = array();
801
- /*if ($dimension == 'week') {
802
- $date = $start_date;
803
- $_end_date = date("M d,Y", strtotime('next Saturday ' . $date));
804
- if (strtotime($end_date) > strtotime(date('Y-m-d'))) {
805
- $end_date = date("M d,Y");
806
- }
807
- foreach ($rows as $row) {
808
- if (strtotime($_end_date) <= strtotime(date('Y-m-d'))) {
809
-
810
- $dimension_value = date("M d,Y", strtotime($date)) . '-' . $_end_date;
811
- // echo $date;
812
- }
813
- else {
814
-
815
- if (strtotime($date) != strtotime($end_date)) {
816
- $dimension_value = date("M d,Y", strtotime($date)) . '-' . $_end_date;
817
- } else {
818
- break;
819
- }
820
- }
821
- $data[] = array(trim(ucfirst(preg_replace('/([A-Z])/', ' $1', $dimension))) => $dimension_value);
822
- $data[$j]['No'] = floatval($j + 1);
823
- for ($i = 0; $i < count($metric); $i++) {
824
- $val = $i + 1;
825
- $metric_val = floatval($row[$val]);
826
- if(substr($metric[$i], 3) == 'bounceRate'){
827
- $metric_val = $metric_val;
828
- }
829
- $data[$j][trim(ucfirst(preg_replace('/([A-Z])/', ' $1', substr($metric[$i], 3))))] = $metric_val;
830
- }
831
- $j++;
832
- $date = date("M d,Y", strtotime('next Sunday ' . $_end_date));
833
- $_end_date = date("M d,Y", strtotime('next Saturday ' . $date));
834
- if (isset($_end_date) && (strtotime($_end_date) > strtotime($end_date))) {
835
- $_end_date = $end_date;
836
- }
837
- }
838
- }*/
839
- if ($dimension == 'week' || $dimension == 'month') {
840
- $date = $start_date;
841
- if ($dimension == 'week') {
842
- $_end_date = date("l", strtotime($date)) == 'Saturday' ? date("M d,Y", strtotime($date)) : date("M d,Y", strtotime('next Saturday ' . $date));
843
- }
844
- elseif ($dimension == 'month') {
845
- $_end_date = date("M t,Y", strtotime($date));
846
- if(strtotime($_end_date) > strtotime(date('Y-m-d'))){
847
- $_end_date = date("M d,Y",strtotime('-1 day ' . date('Y-m-d')));
848
- }
849
- }
850
- if (strtotime($end_date) > strtotime(date('Y-m-d'))) {
851
- $end_date = date("M d,Y");
852
- }
853
- foreach ($rows as $row) {
854
- if ($dimension == 'hour') {
855
- $dimension_value = date("M d,Y", strtotime($row[0])) . ' ' . $row[1] . ':00';
856
- }
857
- else {
858
- if (strtotime($_end_date) <= strtotime(date('Y-m-d'))) {
859
-
860
- $dimension_value = date("M d,Y", strtotime($date)) . '-' . $_end_date;
861
- // echo $date;
862
- } else {
863
- if ($dimension == 'month') {
864
- //continue;
865
- }
866
- if (strtotime($date) != strtotime($end_date) ) {
867
- $dimension_value = date("M d,Y", strtotime($date)) . '-' . $_end_date;
868
- } else {
869
- break;
870
- }
871
- }
872
- }
873
- $data[] = array(trim(ucfirst(preg_replace('/([A-Z])/', ' $1', $dimension))) => $dimension_value);
874
- $data[$j]['No'] = floatval($j + 1);
875
- for ($i = 0; $i < count($metric); $i++) {
876
- $val = $i + 1;
877
- if ($dimension == 'hour') {
878
- $val = $i + 2;
879
- }
880
- $metric_val = floatval($row[$val]);
881
- if(substr($metric[$i], 3) == 'bounceRate'){
882
- $metric_val = $metric_val;
883
- }
884
- $data[$j][trim(ucfirst(preg_replace('/([A-Z])/', ' $1', substr($metric[$i], 3))))] = $metric_val;
885
- }
886
-
887
- $j++;
888
-
889
- if(isset($break) && $break){
890
- break;
891
- }
892
-
893
- if ($dimension == 'week') {
894
- $date = date("M d,Y", strtotime('next Sunday ' . $_end_date));
895
- $_end_date = date("M d,Y", strtotime('next Saturday ' . $date));
896
- } elseif ($dimension == 'month') {
897
- $date = date("M d,Y", strtotime('+1 day ' . $_end_date));
898
- $_end_date = date("M t,Y", strtotime($date));
899
- }
900
- if (isset($_end_date) && (strtotime($_end_date) > strtotime($end_date))) {
901
- $_end_date = date("M d,Y", strtotime($end_date));
902
- $break = true;
903
- }
904
- }
905
- }
906
- else{
907
- foreach ($rows as $row) {
908
-
909
- if ($dimension == 'date') {
910
- $row[0] = date('Y-m-d', strtotime($row[0]));
911
- }
912
- $data[$j] = array(
913
- $dimension => $row[0]
914
- );
915
- for ($i = 0; $i < count($metric); $i++) {
916
- $data[$j][substr($metric[$i], 3)] = floatval($row[$i + 1]);
917
- if (isset($data_sum[substr($metric[$i], 3)])) {
918
- $data_sum[substr($metric[$i], 3)] += floatval($row[$i + 1]);
919
- } else {
920
- if (substr($metric[$i], 3) != 'percentNewSessions' && substr($metric[$i], 3) != 'bounceRate') {
921
- $data_sum[substr($metric[$i], 3)] = floatval($row[$i + 1]);
922
- }
923
- }
924
- }
925
- $j++;
926
- }
927
- }
928
- $expiration = strtotime(date("Y-m-d 23:59:59")) - strtotime(gmdate("Y-m-d H:i:s") . '+' . $timezone . ' hours');
929
- if (isset($same_dimension) && $same_dimension != null) {
930
- $dimension = $same_dimension;
931
- }
932
- $result = array('data_sum' => $data_sum, 'chart_data' => $data);
933
- set_transient('gawd-page-post-' . $profileId . '-' . $filter . '-' . '-' . $dimension . '-' . $start_date . '-' . $end_date . '-' . $chart, json_encode($result), $expiration);
934
- return json_encode($result);
935
- } else {
936
- $empty[] = array(
937
- $dimension => 0,
938
- substr($metric[0], 3) => 0);
939
- return json_encode($empty);
940
- }
941
- }
942
-
943
- public function get_data($metric, $dimension, $start_date, $end_date, $filter_type, $timezone, $same_dimension = null) {
944
- $dimension = lcfirst($dimension);
945
-
946
- $metric = lcfirst($metric);
947
- $profileId = $this->get_profile_id();
948
- $analytics = $this->analytics_member;
949
- $selected_metric = $metric;
950
- if (strpos($selected_metric, 'ga:') > -1) {
951
- $selected_metric = substr($selected_metric,3);
952
- }
953
- if (strpos($metric, 'ga:') === false) {
954
- $metric = 'ga:' . $metric;
955
- }
956
- if ($dimension == 'interestInMarketCategory' || $dimension == 'interestAffinityCategory' || $dimension == 'interestOtherCategory' || $dimension == 'country' || $dimension == 'language' || $dimension == 'userType' || $dimension == 'sessionDurationBucket' || $dimension == 'userAgeBracket' || $dimension == 'userGender' || $dimension == 'mobileDeviceInfo' || $dimension == 'deviceCategory' || $dimension == 'operatingSystem' || $dimension == 'browser' || $dimension == 'date' || $dimension == "source") {
957
- $metrics = 'ga:users,ga:sessions,ga:percentNewSessions,ga:bounceRate,ga:pageviews,ga:avgSessionDuration,ga:pageviewsPerSession';
958
-
959
- if (strpos($metrics, $metric) !== false) {
960
- $metric = $metrics;
961
- }
962
- }
963
- elseif ($dimension == 'siteSpeed') {
964
- $dimension = 'date';
965
- $metrics = 'ga:avgPageLoadTime,ga:avgRedirectionTime,ga:avgServerResponseTime,ga:avgPageDownloadTime';
966
- if (strpos($metrics, $metric) !== false) {
967
- $metric = $metrics;
968
- }
969
- }
970
- elseif ($dimension == 'eventLabel' || $dimension == 'eventAction' || $dimension == 'eventCategory') {
971
- $metrics = 'ga:eventsPerSessionWithEvent,ga:sessionsWithEvent,ga:avgEventValue,ga:eventValue,ga:uniqueEvents,ga:totalEvents';
972
- if (strpos($metrics, $metric) !== false) {
973
- $metric = $metrics;
974
- }
975
- }
976
-
977
- $dimension = $dimension == 'date' ? $filter_type != '' ? $filter_type : 'date' : $dimension;
978
- if ($same_dimension == 'sales_performance' && ($dimension == 'week' || $dimension == 'month' || $dimension == 'hour')) {
979
- $metrics = 'ga:transactionRevenue, ga:transactionsPerSession';
980
- if (strpos($metrics, $metric) !== false) {
981
- $metric = $metrics;
982
- }
983
- } elseif ($same_dimension == 'adsense' && ($dimension == 'week' || $dimension == 'month' || $dimension == 'hour')) {
984
- $metrics = 'ga:adsenseRevenue,ga:adsenseAdsClicks';
985
- if (strpos($metrics, $metric) !== false) {
986
- $metric = $metrics;
987
- }
988
- } elseif ($same_dimension == 'siteSpeed' && ($dimension == 'week' || $dimension == 'month' || $dimension == 'hour')) {
989
- $metrics = 'ga:avgPageLoadTime,ga:avgRedirectionTime,ga:avgServerResponseTime,ga:avgPageDownloadTime';
990
- if (strpos($metrics, $metric) !== false) {
991
- $metric = $metrics;
992
- }
993
- }
994
-
995
- if ($same_dimension == 'week' || $same_dimension == 'month' || $same_dimension == 'hour') {
996
- $metrics = 'ga:users,ga:sessions,ga:percentNewSessions,ga:bounceRate,ga:pageviews,ga:avgSessionDuration';
997
- if (strpos($metrics, $metric) !== false) {
998
- $metric = $metrics;
999
- }
1000
- }
1001
-
1002
- /* if(!is_array($metric)){
1003
- if (strpos($metric, 'ga') === false) {
1004
- $metric = 'ga:' . $metric;
1005
- }
1006
- } */
1007
- // Get the results from the Core Reporting API and print the results.
1008
- // Calls the Core Reporting API and queries for the number of sessions
1009
- // for the last seven days.
1010
- if ($dimension == 'hour') {
1011
-
1012
- $gawd_dimension = array(
1013
- 'dimensions' => 'ga:date, ga:hour',
1014
- 'sort' => 'ga:date',
1015
- );
1016
- }
1017
- else {
1018
- if($dimension != 'sessionDurationBucket'){
1019
- $gawd_dimension = array(
1020
- 'dimensions' => 'ga:' . $dimension,
1021
- 'sort' => '-ga:' . $selected_metric,
1022
- );
1023
- }
1024
- else{
1025
- $gawd_dimension = array(
1026
- 'dimensions' => 'ga:' . $dimension,
1027
- 'sort' => 'ga:' . $dimension,
1028
- );
1029
- }
1030
- }
1031
-
1032
- try {
1033
- $results = $analytics->data_ga->get(
1034
- 'ga:' . $profileId, $start_date, $end_date, $metric, $gawd_dimension
1035
- );
1036
-
1037
- } catch (Exception $e) {
1038
- $error = array('error_message' => 'Error');
1039
- if (strpos($e->getMessage(), 'Selected dimensions and metrics cannot be queried together')) {
1040
- $error['error_message'] = 'Selected dimensions and metrics cannot be queried together';
1041
- } else if (strpos($e->getMessage(), 'User does not have sufficient permissions for this profile')) {
1042
- $error['error_message'] = 'User does not have sufficient permissions for this profile';
1043
- }
1044
- return json_encode($error);
1045
- }
1046
-
1047
- $metric = explode(',', $metric);
1048
- $rows = $results->getRows();
1049
- if ($rows) {
1050
-
1051
- $j = 0;
1052
- $data_sum = array();
1053
- foreach($results->getTotalsForAllResults() as $key => $value){
1054
- $data_sum[trim(ucfirst(preg_replace('/([A-Z])/', ' $1', substr($key,3))))] = $value;
1055
- }
1056
-
1057
- if ($dimension == 'week' || $dimension == 'month' || $dimension == 'hour') {
1058
-
1059
- $date = $start_date;
1060
- if ($dimension == 'week') {
1061
- $_end_date = date("l", strtotime($date)) == 'Saturday' ? date("M d,Y", strtotime($date)) : date("M d,Y", strtotime('next Saturday ' . $date));
1062
- }
1063
- elseif ($dimension == 'month') {
1064
- $_end_date = date("M t,Y", strtotime($date));
1065
- if(strtotime($_end_date) > strtotime(date('Y-m-d'))){
1066
- $_end_date = date("M d,Y",strtotime('-1 day ' . date('Y-m-d')));
1067
- }
1068
- }
1069
- if (strtotime($end_date) > strtotime(date('Y-m-d'))) {
1070
- $end_date = date("M d,Y");
1071
- }
1072
- foreach ($rows as $row) {
1073
- if ($dimension == 'hour') {
1074
- $dimension_value = date("M d,Y", strtotime($row[0])) . ' ' . $row[1] . ':00';
1075
- }
1076
- else {
1077
- if (strtotime($_end_date) <= strtotime(date('Y-m-d'))) {
1078
-
1079
- $dimension_value = date("M d,Y", strtotime($date)) . '-' . $_end_date;
1080
- // echo $date;
1081
- } else {
1082
- if ($dimension == 'month') {
1083
- //continue;
1084
- }
1085
- if (strtotime($date) != strtotime($end_date) ) {
1086
- $dimension_value = date("M d,Y", strtotime($date)) . '-' . $_end_date;
1087
- } else {
1088
- break;
1089
- }
1090
- }
1091
- }
1092
- $data[] = array(trim(ucfirst(preg_replace('/([A-Z])/', ' $1', $dimension))) => $dimension_value);
1093
- $data[$j]['No'] = floatval($j + 1);
1094
- for ($i = 0; $i < count($metric); $i++) {
1095
- $val = $i + 1;
1096
- if ($dimension == 'hour') {
1097
- $val = $i + 2;
1098
- }
1099
- $metric_val = floatval($row[$val]);
1100
- if(substr($metric[$i], 3) == 'bounceRate'){
1101
- $metric_val = $metric_val;
1102
- }
1103
- $data[$j][trim(ucfirst(preg_replace('/([A-Z])/', ' $1', substr($metric[$i], 3))))] = $metric_val;
1104
- }
1105
-
1106
- $j++;
1107
-
1108
- if(isset($break) && $break){
1109
- break;
1110
- }
1111
-
1112
- if ($dimension == 'week') {
1113
- $date = date("M d,Y", strtotime('next Sunday ' . $_end_date));
1114
- $_end_date = date("M d,Y", strtotime('next Saturday ' . $date));
1115
- } elseif ($dimension == 'month') {
1116
- $date = date("M d,Y", strtotime('+1 day ' . $_end_date));
1117
- $_end_date = date("M t,Y", strtotime($date));
1118
- }
1119
- if (isset($_end_date) && (strtotime($_end_date) > strtotime($end_date))) {
1120
- $_end_date = date("M d,Y", strtotime($end_date));
1121
- $break = true;
1122
- }
1123
- }
1124
- }
1125
- else {
1126
- foreach ($rows as $row) {
1127
- if (strtolower($dimension) == 'date') {
1128
- $row[0] = date('Y-m-d', strtotime($row[0]));
1129
- }
1130
- elseif(strtolower($dimension) == 'sessiondurationbucket'){
1131
- if($row[0] >= 0 && $row[0] <= 10){
1132
- $row[0] = '0-10';
1133
- }
1134
- elseif($row[0] >= 11 && $row[0] <= 30){
1135
- $row[0] = '11-30';
1136
- }
1137
- elseif($row[0] >= 31 && $row[0] <= 40){
1138
- $row[0] = '31-40';
1139
- }
1140
- elseif($row[0] >= 41 && $row[0] <= 60){
1141
- $row[0] = '41-60';
1142
- }
1143
- elseif($row[0] >= 61 && $row[0] <= 180){
1144
- $row[0] = '61-180';
1145
- }
1146
- elseif($row[0] >= 181 && $row[0] <= 600){
1147
- $row[0] = '181-600';
1148
- }
1149
- elseif($row[0] >= 601 && $row[0] <= 1800){
1150
- $row[0] = '601-1800';
1151
- }
1152
- elseif($row[0] >= 1801){
1153
- $row[0] = '1801';
1154
- }
1155
- }
1156
- elseif(strpos($dimension,'dimension') >-1){
1157
- $dimension_data = $this->get_custom_dimensions();
1158
- foreach($dimension_data as $key => $value){
1159
- if($dimension == substr($value['id'],3)){
1160
- $dimension = $value['name'];
1161
- }
1162
- }
1163
- }
1164
- $data[$j]['No'] = floatval($j + 1);
1165
- $dimension_data = ctype_digit($row[0]) ? intval($row[0]) : $row[0];
1166
- $dimension_data = strpos($dimension_data,'T') ? substr($dimension_data ,0,strpos($dimension_data,'T')) : $dimension_data;
1167
- $data[$j][trim(ucfirst(preg_replace('/([A-Z])/', ' $1', $dimension)))] = $dimension_data;
1168
-
1169
- for ($i = 0; $i < count($metric); $i++) {
1170
- $metric_val = floatval($row[$i + 1]);
1171
- if(substr($metric[$i], 3) == 'avgSessionDuration'){
1172
- $metric_val = ceil($row[$i + 1]);
1173
- }
1174
- $data[$j][trim(ucfirst(preg_replace('/([A-Z])/', ' $1', substr($metric[$i], 3))))] = $metric_val;
1175
- }
1176
- $j++;
1177
- }
1178
- }
1179
- $expiration = strtotime(date("Y-m-d 23:59:59")) - strtotime(gmdate("Y-m-d H:i:s") . '+' . $timezone . ' hours');
1180
- if (isset($same_dimension) && $same_dimension != null) {
1181
- $dimension = $filter_type == 'date' || $filter_type == '' ? $same_dimension : $same_dimension . '_' . $filter_type;
1182
- }
1183
- if($dimension == "daysToTransaction"){
1184
- foreach ($data as $key => $row) {
1185
- $daysToTransaction[$key] = $row['Days To Transaction'];
1186
- }
1187
- array_multisort($daysToTransaction, SORT_ASC, $data);
1188
- foreach($data as $j=>$val){
1189
- $val["No"] = ($j+1);
1190
- $data[$j] = $val;
1191
- }
1192
- }
1193
- elseif($dimension == "sessionDurationBucket"){
1194
- $_data = array();
1195
- //$j = 1;
1196
- foreach($data as $val){
1197
- if(isset($_data[$val["Session Duration Bucket"]])){
1198
- $_data[$val["Session Duration Bucket"]]["Users"] += floatval($val["Users"]);
1199
- $_data[$val["Session Duration Bucket"]]["Sessions"] += floatval($val["Sessions"]);
1200
- $_data[$val["Session Duration Bucket"]]["Percent New Sessions"] += floatval($val["Percent New Sessions"]);
1201
- $_data[$val["Session Duration Bucket"]]["Bounce Rate"] += floatval($val["Bounce Rate"]);
1202
- $_data[$val["Session Duration Bucket"]]["Pageviews"] += floatval($val["Pageviews"]);
1203
- $_data[$val["Session Duration Bucket"]]["Avg Session Duration"] += $val["Avg Session Duration"];
1204
- }
1205
- else{
1206
- // $val["No"] = $j;
1207
- // $j++;
1208
- $_data[$val["Session Duration Bucket"]] = $val;
1209
- $_data[$val["Session Duration Bucket"]]["order"] = intval($val["Session Duration Bucket"]);
1210
- }
1211
-
1212
-
1213
- }
1214
- $data = array_values($_data);
1215
- foreach ($data as $key => $row) {
1216
- $yyy[$key] = $row['order'];
1217
- }
1218
- array_multisort($yyy, SORT_ASC, $data);
1219
- foreach($data as $j=>$val){
1220
- $val["No"] = ($j+1);
1221
- $data[$j] = $val;
1222
- }
1223
- }
1224
- else{
1225
- if(strpos($dimension,'dimension') === false){
1226
- $dimension = $dimension == 'siteSpeed' || $dimension == 'sales_performance' ? 'Date' : $dimension;
1227
- foreach ($data as $key => $row) {
1228
- $new_data[$key] = $row[trim(ucfirst(preg_replace('/([A-Z])/', ' $1', $dimension)))];
1229
- }
1230
- array_multisort($new_data, SORT_ASC, $data);
1231
- foreach($data as $j=>$val){
1232
- $val["No"] = ($j+1);
1233
- $data[$j] = $val;
1234
- }
1235
- }
1236
- }
1237
- $result = $data;
1238
- if ($data_sum != '') {
1239
- $result = array('data_sum' => $data_sum, 'chart_data' => $data);
1240
- }
1241
- set_transient( 'gawd-'.$profileId.'-'.$dimension.'-'.$start_date.'-'.$end_date, json_encode($result), $expiration );
1242
- return json_encode($result);
1243
- }
1244
- else {
1245
- if(strpos($dimension,'dimension') >-1){
1246
- $dimension_data = $this->get_custom_dimensions();
1247
- foreach($dimension_data as $key => $value){
1248
- if($dimension == substr($value['id'],3)){
1249
- $dimension = $value['name'];
1250
- }
1251
- }
1252
- }
1253
- $empty[0] = array(
1254
- trim(ucfirst(preg_replace('/([A-Z])/', ' $1', $dimension))) => 0
1255
- );
1256
- $empty[0]['No'] = 1;
1257
- for ($i = 0; $i < count($metric); $i++) {
1258
- $empty[0][trim(ucfirst(preg_replace('/([A-Z])/', ' $1', substr($metric[$i], 3))))] = 0;
1259
- }
1260
-
1261
- return json_encode(array('chart_data' => $empty));
1262
- }
1263
- }
1264
-
1265
- public function get_data_compact($metric, $dimension, $start_date, $end_date, $timezone) {
1266
- $profileId = $this->get_profile_id();
1267
- $metric_sort = $metric;
1268
- $analytics = $this->analytics_member;
1269
- // Get the results from the Core Reporting API and print the results.
1270
- // Calls the Core Reporting API and queries for the number of sessions
1271
- // for the last seven days.
1272
- if ($dimension == 'date') {
1273
- $metric = 'ga:users,ga:sessions,ga:percentNewSessions,ga:bounceRate,ga:pageviews,ga:avgSessionDuration,ga:pageviewsPerSession';
1274
- }
1275
- $results = $analytics->data_ga->get(
1276
- 'ga:' . $profileId, $start_date, $end_date, $metric, array(
1277
- 'dimensions' => 'ga:' . $dimension,
1278
- 'sort' => 'ga:' . $dimension,
1279
- )
1280
- );
1281
- $rows = $results->getRows();
1282
- $metric = explode(',', $metric);
1283
- if ($rows) {
1284
- $j = 0;
1285
- $data_sum = array();
1286
- foreach($results->getTotalsForAllResults() as $key => $value){
1287
- $data_sum[trim(ucfirst(preg_replace('/([A-Z])/', ' $1', substr($key,3))))] = $value;
1288
- }
1289
-
1290
- foreach ($rows as $row) {
1291
- if ($dimension == 'date') {
1292
- $row[0] = date('Y-m-d', strtotime($row[0]));
1293
- }
1294
- $data[$j] = array(
1295
- trim(ucfirst(preg_replace('/([A-Z])/', ' $1', $dimension))) => $row[0]
1296
- );
1297
- for ($i = 0; $i < count($metric); $i++) {
1298
- $metric_val = floatval($row[$i + 1]);
1299
-
1300
- $data[$j][trim(ucfirst(preg_replace('/([A-Z])/', ' $1', substr($metric[$i], 3))))] = $metric_val;
1301
- }
1302
- $j++;
1303
- }
1304
- if($dimension == "country"){
1305
- foreach ($data as $key => $row) {
1306
- $country[$key] = $row[trim(ucfirst(preg_replace('/([A-Z])/', ' $1', substr($metric_sort, 3))))];
1307
- }
1308
- array_multisort($country, SORT_DESC, $data);
1309
- foreach($data as $j=>$val){
1310
- $val["No"] = ($j+1);
1311
- $data[$j] = $val;
1312
- }
1313
- }
1314
- }
1315
- else {
1316
- $data_sum = array();
1317
- $empty[0] = array(
1318
- trim(ucfirst(preg_replace('/([A-Z])/', ' $1', $dimension))) => 0
1319
- );
1320
- $data_sum[trim(ucfirst(preg_replace('/([A-Z])/', ' $1', $dimension)))] = 0;
1321
- $empty[0]['No'] = 1;
1322
- for ($i = 0; $i < count($metric); $i++) {
1323
- $empty[0][trim(ucfirst(preg_replace('/([A-Z])/', ' $1', substr($metric[$i], 3))))] = 0;
1324
- $data_sum[trim(ucfirst(preg_replace('/([A-Z])/', ' $1', substr($metric[$i], 3))))] = 0;
1325
- }
1326
- $result = array('data_sum' => $data_sum, 'chart_data' => $empty);
1327
- return json_encode($result);
1328
- }
1329
- if ($data_sum != '') {
1330
- $result = array('data_sum' => $data_sum, 'chart_data' => $data);
1331
- }
1332
- $expiration = strtotime(date("Y-m-d 23:59:59")) - strtotime(gmdate("Y-m-d H:i:s") . '+' . $timezone . ' hours');
1333
- set_transient('gawd-compact-' . $profileId . '-' . $dimension . '-' . $start_date . '-' . $end_date, json_encode($result), $expiration);
1334
- return json_encode($result);
1335
- }
1336
-
1337
- public function get_data_alert($metric, $dimension, $start_date, $end_date, $gawd_alert_view) {
1338
- $profileId = $gawd_alert_view == '' ? $this->get_profile_id() : $gawd_alert_view;
1339
- $analytics = $this->analytics_member;
1340
- // Get the results from the Core Reporting API and print the results.
1341
- // Calls the Core Reporting API and queries for the number of sessions
1342
- // for the last seven days.
1343
- $results = $analytics->data_ga->get(
1344
- 'ga:' . $profileId, $start_date, $end_date, $metric, array(
1345
- 'dimensions' => 'ga:' . $dimension,
1346
- 'sort' => 'ga:' . $dimension,
1347
- )
1348
- );
1349
- $rows = $results->getRows();
1350
-
1351
- $data = '';
1352
- foreach ($rows as $row) {
1353
- $data += floatval($row[1]);
1354
- }
1355
- return ($data);
1356
- }
1357
-
1358
- public function get_profile_id() {
1359
- $this->gawd_user_data = get_option('gawd_user_data');
1360
- $profiles_light = get_transient('gawd_user_profiles') ? get_transient('gawd_user_profiles') : $this->gawd_user_data['gawd_profiles'];
1361
- if (!isset($this->gawd_user_data['gawd_id']) || $this->gawd_user_data['gawd_id'] == '') {
1362
- if (!empty($profiles_light)) {
1363
- $first_profiles = reset($profiles_light);
1364
- $first_profile = $first_profiles[0];
1365
- $this->gawd_user_data['gawd_id'] = $first_profile['id'];
1366
- }
1367
- }
1368
- return (isset($this->gawd_user_data['gawd_id'])?$this->gawd_user_data['gawd_id']:null);
1369
- }
1370
-
1371
- public function get_profile_webPropertyId() {
1372
- $this->gawd_user_data = get_option('gawd_user_data');
1373
- return (isset($this->gawd_user_data['webPropertyId'])?$this->gawd_user_data['webPropertyId']:null);
1374
- }
1375
-
1376
- public function get_profile_accountId() {
1377
- $this->gawd_user_data = get_option('gawd_user_data');
1378
- return isset($this->gawd_user_data['accountId']) ? $this->gawd_user_data['accountId'] : '';
1379
- }
1380
-
1381
- public function get_default_webPropertyId() {
1382
- $this->gawd_user_data = get_option('gawd_user_data');
1383
- return (isset($this->gawd_user_data['default_webPropertyId'])?$this->gawd_user_data['default_webPropertyId']:null);
1384
- }
1385
-
1386
- public function get_default_accountId() {
1387
- $this->gawd_user_data = get_option('gawd_user_data');
1388
- return (isset($this->gawd_user_data['default_accountId'])?$this->gawd_user_data['default_accountId']:null);
1389
- }
1390
-
1391
- public function get_page_data($dimension, $start_date, $end_date, $timezone) {
1392
- $analytics = $this->analytics_member;
1393
- $profileId = $this->get_profile_id();
1394
- $metric = $dimension == 'pagePath' || $dimension == 'PagePath' ? 'ga:pageviews,ga:uniquePageviews,ga:avgTimeOnPage,ga:entrances,ga:bounceRate,ga:exitRate,ga:pageValue,ga:avgPageLoadTime' : 'ga:sessions,ga:percentNewSessions,ga:newUsers,ga:bounceRate,ga:pageviewsPerSession,ga:avgSessionDuration,ga:transactions,ga:transactionRevenue,ga:transactionsPerSession';
1395
- $sorts = '-'.explode(',', $metric);
1396
- $sort = $sorts[0];
1397
-
1398
- try {
1399
- $results = $analytics->data_ga->get(
1400
- 'ga:' . $profileId, $start_date, $end_date, $metric, array(
1401
- 'dimensions' => 'ga:'.$dimension,
1402
- 'sort' => $sort,
1403
- )
1404
- );
1405
- } catch (Exception $e) {
1406
-
1407
- $error = array('error_message' => 'Error');
1408
- if (strpos($e->getMessage(), 'User does not have sufficient permissions for this profile')) {
1409
- $error['error_message'] = 'User does not have sufficient permissions for this profile';
1410
- }
1411
- return json_encode($error);
1412
- }
1413
- $rows = $results->getRows();
1414
- $metric = explode(',', $metric);
1415
- if ($rows) {
1416
- $data_sum = array();
1417
- foreach($results->getTotalsForAllResults() as $key => $value){
1418
- $data_sum[trim(ucfirst(preg_replace('/([A-Z])/', ' $1', substr($key,3))))] = $value;
1419
- }
1420
- foreach ($rows as $key => $row) {
1421
- $hours = strlen(floor($row[3] / 3600)) < 2 ? '0' . floor($row[3] / 3600) : floor($row[3] / 3600);
1422
- $mins = strlen(floor($row[3] / 60 % 60)) < 2 ? '0' . floor($row[3] / 60 % 60) : floor($row[3] / 60 % 60);
1423
- $secs = strlen(floor($row[3] % 60)) < 2 ? '0' . floor($row[3] % 60) : floor($row[3] % 60);
1424
- $time_on_page = $hours.':'.$mins.':'.$secs;
1425
- if($dimension == 'pagePath' || $dimension == 'PagePath'){
1426
- $data[] = array(
1427
- 'No' => floatval($key + 1),
1428
- 'Page Path' => $row[0],
1429
- 'Pageviews' => intval($row[1]),
1430
- 'Unique Pageviews' => intval($row[2]),
1431
- 'Avg Time On Page' => $time_on_page,
1432
- 'Entrances' => intval($row[4]),
1433
- 'Bounce Rate' => floatval($row[5]),
1434
- 'Exit Rate' => intval($row[6]),
1435
- 'Page Value' => intval($row[7]),
1436
- 'Avg Page Load Time' => intval($row[8])
1437
- );
1438
- }
1439
- else{
1440
- $data[] = array(
1441
- 'No' => floatval($key + 1),
1442
- 'Landing Page' => $row[0],
1443
- 'Sessions' => intval($row[1]),
1444
- 'Percent New Sessions' => intval($row[2]),
1445
- 'New Users' => intval($row[3]),
1446
- 'Bounce Rate' => intval($row[4]),
1447
- 'Pageviews Per Session' => floatval($row[5]),
1448
- 'Avg Session Duration' => intval($row[6]),
1449
- 'Transactions' => intval($row[7]),
1450
- 'Transaction Revenue' => intval($row[8]),
1451
- 'Transactions Per Session' => intval($row[9])
1452
- );
1453
- }
1454
- }
1455
-
1456
- }
1457
- else {
1458
- $empty[0] = array(
1459
- trim(ucfirst(preg_replace('/([A-Z])/', ' $1', $dimension))) => 0
1460
- );
1461
- $empty[0]['No'] = 1;
1462
- for ($i = 0; $i < count($metric); $i++) {
1463
- $empty[0][trim(ucfirst(preg_replace('/([A-Z])/', ' $1', substr($metric[$i], 3))))] = 0;
1464
- $data_sum[trim(ucfirst(preg_replace('/([A-Z])/', ' $1', substr($metric[$i],3))))] = 0;
1465
- }
1466
-
1467
- return json_encode(array('data_sum' => $data_sum, 'chart_data' => $empty));
1468
- }
1469
- if ($data_sum != '') {
1470
- $result = array('data_sum' => $data_sum, 'chart_data' => $data);
1471
- }
1472
- $expiration = strtotime(date("Y-m-d 23:59:59")) - strtotime(gmdate("Y-m-d H:i:s") . '+' . $timezone . ' hours');
1473
- set_transient('gawd-' . $profileId . '-' . $dimension . '-' . $start_date . '-' . $end_date, json_encode($result), $expiration);
1474
- return json_encode($result);
1475
- }
1476
-
1477
- public function get_goal_data($dimension, $start_date, $end_date, $timezone, $same_dimension) {
1478
- $goals = $this->get_management_goals();
1479
- if ('no_goals_exist' != $goals) {
1480
- $analytics = $this->analytics_member;
1481
- $profileId = $this->get_profile_id();
1482
- $metric = array();
1483
- $all_metric = '';
1484
- $counter = 1;
1485
- foreach ($goals as $goal) {
1486
- $all_metric .= 'ga:goal' . $goal['id'] . 'Completions,';
1487
- if($counter <= 10){
1488
- $metrics[0][] = 'ga:goal' . $goal['id'] . 'Completions';
1489
- }
1490
- else{
1491
- $metrics[1][] = 'ga:goal' . $goal['id'] . 'Completions';
1492
- }
1493
- $counter++;
1494
- }
1495
- $rows = array();
1496
- foreach($metrics as $metric){
1497
- $metric = implode(',',$metric);
1498
- $results = $analytics->data_ga->get(
1499
- 'ga:' . $profileId, $start_date, $end_date, $metric, array(
1500
- 'dimensions' => 'ga:' . $dimension,
1501
- 'sort' => 'ga:' . $dimension,
1502
- )
1503
- );
1504
-
1505
- $temp_rows = $results->getRows();
1506
- if(empty($temp_rows)){
1507
- continue;
1508
- }
1509
-
1510
- foreach($temp_rows as $key=>$value){
1511
- if(!isset($rows[$key])){
1512
- $rows[$key] = $value;
1513
- }
1514
- else{
1515
- unset($value[0]);
1516
- $rows[$key] = array_merge($rows[$key],$value);
1517
- }
1518
- }
1519
-
1520
- }
1521
- $all_metric = explode(',', $all_metric);
1522
- if ($rows) {
1523
- $j = 0;
1524
- $data_sum = array();
1525
- foreach ($rows as $row) {
1526
- if ($dimension == 'date') {
1527
- $row[0] = date('Y-m-d', strtotime($row[0]));
1528
- }
1529
- $data[$j] = array(
1530
- preg_replace('!\s+!',' ',trim(ucfirst(preg_replace('/([A-Z])/', ' $1', $dimension))))=> $row[0]
1531
- );
1532
- $data[$j]['No'] = floatval($j + 1);
1533
- for ($i = 0; $i < count($goals); $i++) {
1534
- $data[$j][preg_replace('!\s+!',' ',trim(ucfirst(preg_replace('/([A-Z])/', ' $1', $goals[$i]['name']))))] = floatval($row[$i + 1]);
1535
- if (isset($data_sum[preg_replace('!\s+!',' ',trim(ucfirst(preg_replace('/([A-Z])/', ' $1', $goals[$i]['name']))))])) {
1536
- $data_sum[preg_replace('!\s+!',' ',trim(ucfirst(preg_replace('/([A-Z])/', ' $1', $goals[$i]['name']))))] += floatval($row[$i + 1]);
1537
- } else {
1538
- if (substr($all_metric[$i], 3) != 'percentNewSessions' && substr($all_metric[$i], 3) != 'bounceRate') {
1539
- $data_sum[preg_replace('!\s+!',' ',trim(ucfirst(preg_replace('/([A-Z])/', ' $1', $goals[$i]['name']))))] = floatval($row[$i + 1]);
1540
- }
1541
- }
1542
- }
1543
- $j++;
1544
- }
1545
- $expiration = strtotime(date("Y-m-d 23:59:59")) - strtotime(gmdate("Y-m-d H:i:s") . '+' . $timezone . ' hours');
1546
- if (isset($same_dimension) && $same_dimension != null) {
1547
- $dimension = $same_dimension;
1548
- }
1549
- $result = $data;
1550
- if ($data_sum != '') {
1551
- $result = array('data_sum' => $data_sum, 'chart_data' => $data);
1552
- }
1553
- set_transient('gawd-' . $profileId . '-' . $dimension . '-' . $start_date . '-' . $end_date, json_encode($result), $expiration);
1554
- return json_encode($result);
1555
- } else {
1556
- return $goals;
1557
- }
1558
- } else {
1559
- return json_encode(array('error_message' => 'No goals exist'));
1560
- }
1561
- }
1562
-
1563
- public function gawd_realtime_data() {
1564
- $analytics = $this->analytics_member;
1565
- $profileId = $this->get_profile_id();
1566
- $metrics = 'rt:activeUsers';
1567
- $dimensions = 'rt:pagePath,rt:source,rt:keyword,rt:trafficType,rt:country,rt:pageTitle,rt:deviceCategory';
1568
- $managequota = 'u' . get_current_user_id() . 's' . get_current_blog_id();
1569
-
1570
- try {
1571
- $data = $analytics->data_realtime->get('ga:' . $profileId, $metrics, array('dimensions' => $dimensions, 'quotaUser' => $managequota . 'p' . $profileId));
1572
- } catch (Exception $e) {
1573
- $error = array('error_message' => 'Error');
1574
- if (strpos($e->getMessage(), 'User does not have sufficient permissions for this profile')) {
1575
- $error['error_message'] = 'User does not have sufficient permissions for this profile';
1576
- }
1577
- return json_encode($error);
1578
- }
1579
- $expiration = 5 ;
1580
- if ($data->getRows() != '') {
1581
- $i = 0;
1582
- $gawd_data = $data;
1583
- foreach ($data->getRows() as $row) {
1584
- $gawd_data[$i] = $row;
1585
- $i++;
1586
- }
1587
- set_transient('gawd-real-' . $profileId, json_encode($gawd_data), $expiration);
1588
- echo json_encode($gawd_data);
1589
- wp_die();
1590
- }
1591
- else {
1592
- return 0;
1593
- }
1594
- }
1595
-
1596
- public static function get_instance() {
1597
- if (null === static::$instance) {
1598
- static::$instance = new static();
1599
- }
1600
- return static::$instance;
1601
- }
1602
-
1603
- }
1604
-
1605
- ?>
1
+ <?php
2
+
3
+ require_once(GAWD_DIR . '/google/autoload.php');
4
+
5
+ class GAWD_google_client {
6
+
7
+ private static $instance;
8
+ private $google_client;
9
+ public $analytics_member;
10
+ private $gawd_user_data;
11
+
12
+ protected function __construct() {
13
+ $this->gawd_user_data = get_option('gawd_user_data');
14
+ try{
15
+
16
+ $this->google_client = new Google_Client();
17
+ $this->set_google_client();
18
+ $this->analytics_member = new Google_Service_Analytics($this->google_client);
19
+
20
+ }catch(Google_Service_Exception $e){
21
+ $errors = $e->getErrors();
22
+ return $errors[0]["message"];
23
+ }catch(Exception $e){
24
+ return $e->getMessage();
25
+ }
26
+ }
27
+
28
+ /**
29
+ * Sets the google class member.
30
+ */
31
+ private function set_google_client() {
32
+
33
+ $access_token = $this->gawd_user_data['access_token'];
34
+ $this->google_client->setAccessToken($access_token);
35
+
36
+ if ($this->google_client->isAccessTokenExpired()) {
37
+ $refresh_token = $this->gawd_user_data['refresh_token'];
38
+
39
+ $this->google_client->setClientId(GAWD::get_instance()->get_project_client_id());
40
+ $this->google_client->setClientSecret(GAWD::get_instance()->get_project_client_secret());
41
+ $this->google_client->setRedirectUri(GAWD::get_instance()->redirect_uri);
42
+ // $this->google_client->setAuthConfigFile(GAWD_DIR . '/client_secrets.json');
43
+ $this->google_client->refreshToken($refresh_token);
44
+ }
45
+ }
46
+
47
+ public static function create_authentication_url() {
48
+ $client = new Google_Client();
49
+ // $client->setAuthConfigFile(GAWD_DIR . '/client_secrets.json');
50
+ $client->setClientId(GAWD::get_instance()->get_project_client_id());
51
+ $client->setClientSecret(GAWD::get_instance()->get_project_client_secret());
52
+ $client->setRedirectUri(GAWD::get_instance()->redirect_uri);
53
+ $client->addScope(array(Google_Service_Analytics::ANALYTICS_EDIT, Google_Service_Analytics::ANALYTICS_READONLY));
54
+ $client->setApprovalPrompt('force');
55
+ $client->setAccessType('offline');
56
+ return "'" . $client->createAuthUrl() . "'";
57
+ }
58
+
59
+ public static function authenticate($code) {
60
+
61
+ $client = new Google_Client();
62
+ // $client->setAuthConfigFile(GAWD_DIR . '/client_secrets.json');
63
+ $client->setClientId(GAWD::get_instance()->get_project_client_id());
64
+ $client->setClientSecret(GAWD::get_instance()->get_project_client_secret());
65
+ $client->setRedirectUri(GAWD::get_instance()->redirect_uri);
66
+ try {
67
+ $client->authenticate($code);
68
+
69
+ if ($client->isAccessTokenExpired()) {
70
+ return false;
71
+ }
72
+ else {
73
+ $access_token = $client->getAccessToken();
74
+ $refresh_token = $client->getRefreshToken();
75
+ update_option('gawd_user_data', array(
76
+ 'access_token' => $access_token,
77
+ 'refresh_token' => $refresh_token
78
+ )
79
+ );
80
+
81
+ $gawd_client = self::get_instance();
82
+ delete_transient('gawd_user_profiles');
83
+ $profiles = $gawd_client->get_profiles();
84
+
85
+ if ($profiles instanceof Google_Service_Exception) {
86
+
87
+ delete_option('gawd_user_data');
88
+ $errors = $profiles->getErrors();
89
+ return $errors[0]["message"];
90
+ }
91
+
92
+
93
+ update_option('gawd_user_data', array(
94
+ 'access_token' => $access_token,
95
+ 'refresh_token' => $refresh_token,
96
+ 'gawd_profiles' => $profiles,
97
+ )
98
+ );
99
+ return true;
100
+ }
101
+ } catch (Google_Service_Exception $e) {
102
+ delete_option('gawd_user_data');
103
+ $errors = $e->getErrors();
104
+ return $errors[0]["message"];
105
+ } catch (Exception $e) {
106
+ return $e->getMessage();
107
+ }
108
+ }
109
+
110
+ public function get_management_accounts() {
111
+ $accounts_light = array();
112
+ try{
113
+ $accounts = $this->analytics_member->management_accounts->listManagementAccounts()->getItems();
114
+
115
+ foreach ($accounts as $account) {
116
+ $edit_flag = FALSE;
117
+ $permissions = $account['modelData']['permissions']['effective'];
118
+ foreach ($permissions as $permission) {
119
+ if ($permission == 'EDIT') {
120
+ $edit_flag = TRUE;
121
+ }
122
+ }
123
+ $accounts_light[] = array(
124
+ 'name' => $account['name'],
125
+ 'id' => $account['id'],
126
+ 'edit_permissions' => $edit_flag
127
+ );
128
+ /*if ($edit_flag == TRUE) {
129
+ $accounts_light[] = array(
130
+ 'name' => $account['name'],
131
+ 'id' => $account['id']
132
+ );
133
+ }*/
134
+ }
135
+ }catch (Google_Service_Exception $e) {
136
+ //return $e->getErrors()[0]["message"];
137
+ } catch (Exception $e) {
138
+ //return $e->getMessage();
139
+ }
140
+ return $accounts_light;
141
+ }
142
+
143
+ public function property_exists() {
144
+ try{
145
+ $web_properties = $this->analytics_member->management_webproperties->listManagementWebproperties('~all')->getItems();
146
+ }catch(Google_Service_Exception $e){
147
+ return 'no_matches';
148
+
149
+ }catch(Exception $e){
150
+ return 'no_matches';
151
+ }
152
+ $exact_properties = array();
153
+ $site_url = get_site_url() . '/';
154
+
155
+ foreach ($web_properties as $web_property) {
156
+ $current_url = $web_property['websiteUrl'];
157
+ if (($current_url == $site_url) || (($current_url . '/') == $site_url)) {
158
+ $exact_properties[] = $web_property;
159
+ }
160
+ }
161
+ if (!empty($exact_properties)) {
162
+ return $exact_properties;
163
+ } else {
164
+ return 'no_matches';
165
+ }
166
+ }
167
+
168
+ public function get_default_profiles() {
169
+ $gawd_user_data = get_option('gawd_user_data');
170
+ $accountId = $this->get_default_accountId();
171
+ $webPropertyId = $this->get_default_webPropertyId();
172
+ $webProperty = $this->analytics_member->management_webproperties->get($accountId, $webPropertyId);
173
+ $webPropertyName = $webProperty['name'];
174
+ $profiles = $this->analytics_member->management_profiles->listManagementProfiles($accountId, $webPropertyId)->getItems();
175
+ $profiles_light = array();
176
+ foreach ($profiles as $profile) {
177
+ $profiles_light[] = array(
178
+ 'id' => $profile['id'],
179
+ 'name' => $profile['name'],
180
+ 'webPropertyName' => $webPropertyName
181
+ );
182
+ }
183
+ return $profiles_light;
184
+ }
185
+
186
+ public function add_webproperty($accountId, $name) {
187
+
188
+ $analytics = $this->analytics_member;
189
+ $websiteUrl = get_site_url();
190
+ try {
191
+ $property = new Google_Service_Analytics_Webproperty();
192
+ $property->setName($name);
193
+ $property->setWebsiteUrl($websiteUrl);
194
+ $analytics->management_webproperties->insert($accountId, $property);
195
+ } catch (apiServiceException $e) {
196
+ print 'There was an Analytics API service error '
197
+ . $e->getCode() . ':' . $e->getMessage();
198
+ } catch (apiException $e) {
199
+ print 'There was a general API error '
200
+ . $e->getCode() . ':' . $e->getMessage();
201
+ }
202
+ catch (Google_Service_Exception $e) {
203
+ return 'There was a general API error '
204
+ . $e->getCode() . ':' . $e->getMessage();
205
+ }catch (Exception $e) {
206
+ echo $e->getCode() . ':' . $e->getMessage();
207
+ }
208
+
209
+ $web_properties = $this->analytics_member->management_webproperties->listManagementWebproperties($accountId)->getItems();
210
+
211
+ foreach ($web_properties as $web_property) {
212
+ if ($web_property['name'] == $name) {
213
+ $profile = new Google_Service_Analytics_Profile();
214
+ $profile->setName('All Web Site Data');
215
+ try {
216
+ $analytics->management_profiles->insert($accountId, $web_property['id'], $profile);
217
+ } catch (apiServiceException $e) {
218
+ print 'There was an Analytics API service error '
219
+ . $e->getCode() . ':' . $e->getMessage();
220
+ } catch (apiException $e) {
221
+ print 'There was a general API error '
222
+ . $e->getCode() . ':' . $e->getMessage();
223
+ }
224
+ }
225
+ }
226
+ }
227
+
228
+ /**
229
+ * Get all the management profiles of the authenticated user.
230
+ *
231
+ * @return array
232
+ */
233
+ public function get_profiles() {
234
+ $profiles_light = get_transient('gawd_user_profiles') ? get_transient('gawd_user_profiles') : '';
235
+ if ($profiles_light && $profiles_light != ''){
236
+ return $profiles_light;
237
+ }
238
+ $profiles_light = array();
239
+ $gawd_user_data = get_option('gawd_user_data');
240
+ try{
241
+
242
+ if($this->analytics_member && $this->analytics_member->management_webproperties) {
243
+ $web_properties = $this->analytics_member->management_webproperties->listManagementWebproperties( '~all' )->getItems();
244
+ $profiles = $this->analytics_member->management_profiles->listManagementProfiles( '~all', '~all' )->getItems();
245
+ $profiles_count = count( $profiles );
246
+ $web_properties_count = count( $web_properties );
247
+ for ( $i = 0; $i < $web_properties_count; $i ++ ) {
248
+ for ( $j = 0; $j < $profiles_count; $j ++ ) {
249
+ if ( $web_properties[ $i ]['id'] == $profiles[ $j ]['webPropertyId'] ) {
250
+ $profiles_light[ $web_properties[ $i ]['name'] ][] = array(
251
+ 'id' => $profiles[ $j ]['id'],
252
+ 'name' => $profiles[ $j ]['name'],
253
+ 'webPropertyId' => $profiles[ $j ]['webPropertyId'],
254
+ 'websiteUrl' => $profiles[ $j ]['websiteUrl'],
255
+ 'accountId' => $profiles[ $j ]['accountId']
256
+ );
257
+ }
258
+ }
259
+ }
260
+ }else{
261
+ return 'Something went wrong';
262
+ }
263
+ if (!isset($gawd_user_data['gawd_id']) || $gawd_user_data['gawd_id'] == '' || $gawd_user_data['gawd_id'] == NULL) {
264
+ if (!empty($profiles_light)) {
265
+ $first_profiles = reset($profiles_light);
266
+ $first_profile = $first_profiles[0];
267
+ $gawd_user_data['gawd_id'] = $first_profile['id'];
268
+ $gawd_user_data['webPropertyId'] = $first_profile['webPropertyId'];
269
+ $gawd_user_data['accountId'] = $first_profile['accountId'];
270
+ $gawd_user_data['web_property_name'] = $web_properties[0]['name'];
271
+ }
272
+ }
273
+
274
+ $gawd_user_data['gawd_profiles'] = $profiles_light;
275
+ update_option('gawd_user_data', $gawd_user_data);
276
+ set_transient('gawd_user_profiles',$profiles_light, 60);
277
+ return $profiles_light;
278
+ }catch(Google_Service_Exception $e){
279
+ return $e;
280
+ }catch(Exception $e){
281
+ return $e;
282
+ }
283
+ }
284
+
285
+ public function get_custom_dimensions($default = '') {
286
+ $this->gawd_user_data = get_option('gawd_user_data');
287
+ if ($default == 'default') {
288
+ $webPropertyId = $this->get_default_webPropertyId();
289
+ $accountId = $this->get_default_accountId();
290
+ }
291
+ else {
292
+ $webPropertyId = $this->get_profile_webPropertyId();
293
+ $accountId = $this->get_profile_accountId();
294
+ $transient = get_transient('gawd-custom-dimensions-' . $webPropertyId);
295
+ if ($transient) {
296
+ if ($transient != 'no_custom_dimensions_exist') {
297
+ return json_decode($transient, true);
298
+ } else {
299
+ return $transient;
300
+ }
301
+ }
302
+ }
303
+
304
+ $all_dimensions = $this->analytics_member->management_customDimensions->listManagementCustomDimensions($accountId, $webPropertyId)->getItems();
305
+ if (0 == sizeof($all_dimensions)) {
306
+ if ($default == 'default') {
307
+ update_option('gawd_custom_dimensions', "no_custom_dimensions_exist");
308
+ }
309
+ set_transient('gawd-custom-dimensions-' . $webPropertyId, "no_custom_dimensions_exist", 12 * HOUR_IN_SECONDS);
310
+ return "no_custom_dimensions_exist";
311
+ }
312
+ else {
313
+ foreach ($all_dimensions as $dimension) {
314
+ $dimensions_light[] = array(
315
+ 'name' => $dimension['name'],
316
+ 'id' => $dimension['id']
317
+ );
318
+ }
319
+ $supported_dimensions = array("Logged in", "Post type", "Author", "Category", "Tags", "Published Month", "Published Year");
320
+ $dimensions = array();
321
+ foreach ($dimensions_light as $dimension) {
322
+ foreach ($supported_dimensions as $supported_dimension) {
323
+ if (trim(strtolower($dimension['name'])) == strtolower($supported_dimension)) {
324
+ $dimension['name'] = $supported_dimension;
325
+ $dimension['id'] = substr($dimension['id'], -1);
326
+ $dimensions[] = $dimension;
327
+ }
328
+ }
329
+ }
330
+ if ($default == 'default') {
331
+ update_option('gawd_custom_dimensions', $dimensions);
332
+ }
333
+ set_transient('gawd-custom-dimensions-' . $webPropertyId, json_encode($dimensions_light), 12 * HOUR_IN_SECONDS);
334
+ return $dimensions_light;
335
+ }
336
+ }
337
+
338
+ public function get_custom_dimensions_tracking() {
339
+ $all_dimensions = get_option('gawd_custom_dimensions');
340
+ if ($all_dimensions) {
341
+ return $all_dimensions;
342
+ }
343
+ $all_dimensions = $this->get_custom_dimensions('default');
344
+ if ($all_dimensions == 'no_custom_dimensions_exist') {
345
+ return 'no_custom_dimensions_exist';
346
+ }
347
+ $supported_dimensions = array("Logged in", "Post type", "Author", "Category", "Tags", "Published Month", "Published Year");
348
+ $dimensions = array();
349
+ foreach ($all_dimensions as $dimension) {
350
+ foreach ($supported_dimensions as $supported_dimension) {
351
+ if (trim(strtolower($dimension['name'])) == strtolower($supported_dimension)) {
352
+ $dimension['id'] = substr($dimension['id'], -1);
353
+ $dimension['name'] = $supported_dimension;
354
+ $dimensions[] = $dimension;
355
+ }
356
+ }
357
+ }
358
+ update_option('gawd_custom_dimensions', $dimensions);
359
+ if ($dimensions) {
360
+ return $dimensions;
361
+ } else {
362
+ return "no_custom_dimensions_exist";
363
+ }
364
+ }
365
+
366
+ public static function gawd_cd_logged_in() {
367
+ $value = var_export(is_user_logged_in(), true);
368
+ $value = $value == 'true' ? 'yes' : 'no';
369
+ return $value;
370
+ }
371
+
372
+ public static function gawd_cd_post_type() {
373
+ if (is_singular()) {
374
+ $post_type = get_post_type(get_the_ID());
375
+
376
+ if ($post_type) {
377
+ return $post_type;
378
+ }
379
+ }
380
+ }
381
+
382
+ public static function gawd_cd_author() {
383
+ if (is_singular()) {
384
+ if (have_posts()) {
385
+ while (have_posts()) {
386
+ the_post();
387
+ }
388
+ }
389
+ $name = get_the_author_meta('user_nicename');
390
+ $value = trim($name);
391
+ return $value;
392
+ }
393
+ }
394
+
395
+ public static function gawd_cd_category() {
396
+ if (is_single()) {
397
+ $categories = get_the_category(get_the_ID());
398
+
399
+ if ($categories) {
400
+ foreach ($categories as $category) {
401
+ $category_names[] = $category->slug;
402
+ }
403
+
404
+ return implode(',', $category_names);
405
+ }
406
+ }
407
+ }
408
+
409
+ public static function gawd_cd_tags() {
410
+ if (is_single()) {
411
+ $tag_names = 'untagged';
412
+
413
+ $tags = get_the_tags(get_the_ID());
414
+
415
+ if ($tags) {
416
+ $tag_names = implode(',', wp_list_pluck($tags, 'name'));
417
+ }
418
+
419
+ return $tag_names;
420
+ }
421
+ }
422
+
423
+
424
+ public static function gawd_cd_published_month() {
425
+ if (is_singular()) {
426
+ return get_the_date('M-Y');
427
+ }
428
+ }
429
+ public static function gawd_cd_published_year() {
430
+ if (is_singular()) {
431
+ return get_the_date('Y');
432
+ }
433
+ }
434
+
435
+ public function get_management_filters() {
436
+ $analytics = $this->analytics_member;
437
+ $this->gawd_user_data = get_option('gawd_user_data');
438
+ $accountId = $this->get_profile_accountId();
439
+ $profileId = $this->get_profile_id();
440
+ $webPropertyId = $this->get_profile_webPropertyId();
441
+
442
+ try {
443
+ $view_filters = $analytics->management_profileFilterLinks->listManagementProfileFilterLinks($accountId, $webPropertyId, $profileId);
444
+ $filters = $view_filters->getItems();
445
+ foreach ($filters as $filter) {
446
+ $filter_info = $analytics->management_filters->get($accountId,$filter['modelData']['filterRef']['id']);
447
+ $all_filters[] = array(
448
+ 'name' => $filter['modelData']['filterRef']['name'],
449
+ 'id' => $filter['modelData']['filterRef']['id'],
450
+ 'type' => $filter_info['excludeDetails']['field'],
451
+ 'value' => $filter_info['excludeDetails']['expressionValue'],
452
+ 'view' => $filter['modelData']['profileRef']['name']
453
+ );
454
+ }
455
+ if (isset($all_filters)) {
456
+ return $all_filters;
457
+ }
458
+ } catch (Exception $e) {
459
+ $error = array('error_message' => 'Error');
460
+ if (strpos($e->getMessage(), 'User does not have sufficient permissions for this ')) {
461
+ $error['error_message'] = 'User does not have sufficient permissions for this profile';
462
+ }
463
+ return json_encode($error);
464
+ }
465
+ }
466
+
467
+ public function get_management_goals() {
468
+ $this->gawd_user_data = get_option('gawd_user_data');
469
+ $profileId = $this->get_profile_id();
470
+ $accountId = $this->get_profile_accountId();
471
+ $webPropertyId = $this->get_profile_webPropertyId();
472
+ $goals = array();
473
+ try {
474
+ $goals = $this->analytics_member->management_goals->listManagementGoals($accountId, $webPropertyId, $profileId)->getItems();
475
+ } catch (Exception $e) {
476
+
477
+ }
478
+ if (0 == sizeof($goals)) {
479
+ return "no_goals_exist";
480
+ } else {
481
+ foreach ($goals as $goal) {
482
+ $goals_light[] = array(
483
+ 'name' => $goal['name'],
484
+ 'id' => $goal['id']
485
+ );
486
+ }
487
+ return $goals_light;
488
+ }
489
+ }
490
+
491
+ public function get_default_goals() {
492
+ $this->gawd_user_data = get_option('gawd_user_data');
493
+ $accountId = $this->get_default_accountId();
494
+ $webPropertyId = $this->get_default_webPropertyId();
495
+ $goals = array();
496
+ try {
497
+ $goals = $this->analytics_member->management_goals->listManagementGoals($accountId, $webPropertyId, '~all')->getItems();
498
+ } catch (Exception $e) {
499
+
500
+ }
501
+ if (0 == sizeof($goals)) {
502
+ return "no_goals_exist";
503
+ } else {
504
+ $profiles = array();
505
+ foreach ($goals as $goal) {
506
+ $flag = false;
507
+ foreach ($profiles as $profile) {
508
+ if ($profile == $goal['profileId']) {
509
+ $flag = true;
510
+ }
511
+ }
512
+ if ($flag == false) {
513
+ $profiles[] = $goal['profileId'];
514
+ }
515
+ }
516
+ $goals_light = array();
517
+ $caseSensitive = '';
518
+ foreach ($profiles as $profile) {
519
+ foreach ($goals as $goal) {
520
+ if ($goal['profileId'] == $profile) {
521
+ if($goal['type'] == 'URL_DESTINATION'){
522
+ $type = 'Destination';
523
+ if($goal["modelData"]['urlDestinationDetails']['matchType'] == 'EXACT'){
524
+ $match_type = 'Equals';
525
+ }
526
+ elseif($goal["modelData"]['urlDestinationDetails']['matchType'] == 'HEAD'){
527
+ $match_type = 'Begin with';
528
+ }
529
+ else{
530
+ $match_type = 'Regular expresion';
531
+ }
532
+ $value = $goal["modelData"]['urlDestinationDetails']['url'];
533
+ $caseSensitive = $goal["modelData"]['urlDestinationDetails']['caseSensitive'];
534
+ }
535
+ elseif($goal['type'] == 'VISIT_TIME_ON_SITE'){
536
+ $type = 'Duration';
537
+ if($goal["modelData"]['visitTimeOnSiteDetails']['comparisonType'] == 'GREATER_THAN'){
538
+ $match_type = 'Greater than';
539
+ }
540
+ $value = $goal["modelData"]['visitTimeOnSiteDetails']['comparisonValue'];
541
+ $hours = strlen(floor($value / 3600)) < 2 ? '0' . floor($value / 3600) : floor($value / 3600);
542
+ $mins = strlen(floor($value / 60 % 60)) < 2 ? '0' . floor($value / 60 % 60) : floor($value / 60 % 60);
543
+ $secs = strlen(floor($value % 60)) < 2 ? '0' . floor($value % 60) : floor($value % 60);
544
+ $value = $hours.':'.$mins.':'.$secs;
545
+ }
546
+ else{
547
+ $type = 'Pages/Screens per session';
548
+ if($goal["modelData"]['visitNumPagesDetails']['comparisonType'] == 'GREATER_THAN'){
549
+ $match_type = 'Greater than';
550
+ }
551
+ $value = $goal["modelData"]['visitNumPagesDetails']['comparisonValue'];
552
+ }
553
+
554
+ $goals_light[$profile][] = array(
555
+ 'name' => $goal['name'],
556
+ 'id' => $goal['id'],
557
+ 'type' => $type,
558
+ 'match_type' => $match_type,
559
+ 'profileID' => $goal['profileId'],
560
+ 'caseSensitive' => $caseSensitive,
561
+ 'value' => $value,
562
+ );
563
+ }
564
+ }
565
+ }
566
+ return $goals_light;
567
+ }
568
+ }
569
+
570
+ public function add_custom_dimension($name, $id) {
571
+
572
+ $custom_dimension = new Google_Service_Analytics_CustomDimension();
573
+ $custom_dimension->setId($id);
574
+ $custom_dimension->setActive(TRUE);
575
+ $custom_dimension->setScope('Hit');
576
+ $custom_dimension->setName($name);
577
+
578
+ $accountId = $this->get_default_accountId();
579
+ $webPropertyId = $this->get_default_webPropertyId();
580
+ $analytics = $this->analytics_member;
581
+ delete_transient('gawd-custom-dimensions-' . $webPropertyId);
582
+ try {
583
+ $analytics->management_customDimensions->insert($accountId, $webPropertyId, $custom_dimension);
584
+ } catch (apiServiceException $e) {
585
+ print 'There was an Analytics API service error '
586
+ . $e->getCode() . ':' . $e->getMessage();
587
+ } catch (apiException $e) {
588
+ print 'There was a general API error '
589
+ . $e->getCode() . ':' . $e->getMessage();
590
+ }
591
+ }
592
+
593
+ public function add_goal($gawd_goal_profile, $goal_max_id, $gawd_goal_type, $gawd_goal_name, $gawd_goal_comparison = "GREATER_THAN", $gawd_goal_value, $url_case_sensitve = 'false') {
594
+ $this->gawd_user_data = get_option('gawd_user_data');
595
+ /* This request creates a new Goal. */
596
+ // Construct the body of the request.
597
+ $goal = new Google_Service_Analytics_Goal();
598
+ $goal->setId($goal_max_id); //ID
599
+ $goal->setActive(True); //ACTIVE/INACTIVE
600
+ $goal->setType($gawd_goal_type); //URL_DESTINATION, VISIT_TIME_ON_SITE, VISIT_NUM_PAGES, AND EVENT
601
+ $goal->setName($gawd_goal_name); //NAME
602
+ // Construct the time on site details.
603
+ if ($gawd_goal_type == 'VISIT_TIME_ON_SITE') {
604
+ $details = new Google_Service_Analytics_GoalVisitTimeOnSiteDetails();
605
+ $details->setComparisonType($gawd_goal_comparison); //VISIT_TIME_ON_SITE -------- LESS_THAN/ GREATER_THAN------
606
+ $details->setComparisonValue($gawd_goal_value);
607
+ $goal->setVisitTimeOnSiteDetails($details);
608
+ } elseif ($gawd_goal_type == 'URL_DESTINATION') {
609
+ if($url_case_sensitve != ''){
610
+ $url_case_sensitve = true;
611
+ }
612
+ $details = new Google_Service_Analytics_GoalUrlDestinationDetails();
613
+ $details->setCaseSensitive($url_case_sensitve);
614
+ $details->setFirstStepRequired('false');
615
+ $details->setMatchType($gawd_goal_comparison);
616
+ $details->setUrl($gawd_goal_value);
617
+ $goal->setUrlDestinationDetails($details);
618
+ } elseif ($gawd_goal_type == 'VISIT_NUM_PAGES') {
619
+ $details = new Google_Service_Analytics_GoalVisitNumPagesDetails();
620
+ $details->setComparisonType($gawd_goal_comparison); //VISIT_TIME_ON_SITE -------- LESS_THAN/ GREATER_THAN------
621
+ $details->setComparisonValue($gawd_goal_value);
622
+ $goal->setVisitNumPagesDetails($details);
623
+ } elseif ($gawd_goal_type == 'EVENT') {
624
+ /* $details = new Google_Service_Analytics_GoalEventDetails();
625
+ $details = new Google_Service_Analytics_GoalEventDetailsEventConditions();
626
+ $detailssetComparisonType
627
+ //$details->setEventConditions($gawd_goal_comparison);//VISIT_TIME_ON_SITE -------- LESS_THAN/ GREATER_THAN------
628
+ //$details->setUseEventValue($gawd_goal_value); */
629
+ $goal->setEventDetails($details);
630
+ }
631
+
632
+ //Set the time on site details.
633
+ $this->analytics_member;
634
+ $this->gawd_user_data = get_option('gawd_user_data');
635
+ $accountId = $this->get_default_accountId();
636
+ $webPropertyId = $this->get_default_webPropertyId();
637
+ $profileId = $gawd_goal_profile;
638
+ $analytics = $this->analytics_member;
639
+ try {
640
+ $analytics->management_goals->insert($accountId, $webPropertyId, $profileId, $goal);
641
+ } catch (apiServiceException $e) {
642
+ print 'There was an Analytics API service error '
643
+ . $e->getCode() . ':' . $e->getMessage();
644
+ } catch (apiException $e) {
645
+ print 'There was a general API error '
646
+ . $e->getCode() . ':' . $e->getMessage();
647
+ }
648
+ catch (Exception $e) {
649
+ $error = array('error_message' => $e->getMessage());
650
+ if (strpos($e->getMessage(), 'User does not have permission to perform this operation')) {
651
+ $error['error_message'] = 'User does not have permission to perform this operation';
652
+ }
653
+ return json_encode($error);
654
+ }
655
+ }
656
+
657
+ public function add_filter($name, $type, $value) {
658
+ $this->gawd_user_data = get_option('gawd_user_data');
659
+ $accountId = $this->get_profile_accountId();
660
+ $profileId = $this->get_profile_id();
661
+ $webPropertyId = $this->get_profile_webPropertyId();
662
+ $analytics = $this->analytics_member;
663
+ $condition = $type == 'GEO_IP_ADDRESS' ? 'EQUAL' : 'MATCHES';
664
+ /**
665
+ * Note: This code assumes you have an authorized Analytics service object.
666
+ * See the Filters Developer Guide for details.
667
+ */
668
+ /**
669
+ * This request creates a new filter.
670
+ */
671
+ try {
672
+ // Construct the filter expression object.
673
+ $details = new Google_Service_Analytics_FilterExpression();
674
+ $details->setField($type);
675
+ $details->setMatchType($type);
676
+ $details->setExpressionValue($value);
677
+ $details->setCaseSensitive(false);
678
+ // Construct the filter and set the details.
679
+ $filter = new Google_Service_Analytics_Filter();
680
+ $filter->setName($name);
681
+ $filter->setType("EXCLUDE");
682
+ $filter->setExcludeDetails($details);
683
+
684
+ $insertedFilter = $analytics->management_filters->insert($accountId, $filter);
685
+ $analyticsFilterRef = new Google_Service_Analytics_FilterRef();
686
+ $analyticsFilterRef->setId($insertedFilter->id);
687
+ $filterData = new Google_Service_Analytics_ProfileFilterLink();
688
+ $filterData->setFilterRef($analyticsFilterRef );
689
+ // Add view to inserted filter
690
+ $res = $analytics->management_profileFilterLinks->insert($accountId, $webPropertyId, $profileId, $filterData);
691
+
692
+ } catch (apiServiceException $e) {
693
+ print 'There was an Analytics API service error '
694
+ . $e->getCode() . ':' . $e->getMessage();
695
+ } catch (apiException $e) {
696
+ print 'There was a general API error '
697
+ . $e->getCode() . ':' . $e->getMessage();
698
+ } catch (Exception $e) {
699
+ echo '<script>window.location.href="' . admin_url() . 'admin.php?page=gawd_settings&errorMsg=1#gawd_filters_tab";</script>';
700
+ }
701
+ }
702
+
703
+ public function get_country_data($metric, $dimension, $start_date, $end_date, $country_filter, $geo_type, $timezone) {
704
+ $profileId = $this->get_profile_id();
705
+ $analytics = $this->analytics_member;
706
+ $metric = 'ga:users,ga:sessions,ga:percentNewSessions,ga:bounceRate,ga:pageviews,ga:avgSessionDuration';
707
+
708
+ try {
709
+ $results = $analytics->data_ga->get(
710
+ 'ga:' . $profileId, $start_date, $end_date, $metric, array(
711
+ 'dimensions' => 'ga:' . $dimension,
712
+ 'sort' => 'ga:' . $dimension,
713
+ 'filters' => 'ga:' . $geo_type . '==' . $country_filter
714
+ )
715
+ );
716
+ } catch (Exception $e) {
717
+ $error = array('error_message' => 'Error');
718
+ if (strpos($e->getMessage(), 'User does not have sufficient permissions for this profile')) {
719
+ $error['error_message'] = 'User does not have sufficient permissions for this profile';
720
+ }
721
+ return json_encode($error);
722
+ }
723
+ $rows = $results->getRows();
724
+ $metric = explode(',', $metric);
725
+ if ($rows) {
726
+ $data_sum = array();
727
+ foreach($results->getTotalsForAllResults() as $key => $value){
728
+ $data_sum[trim(ucfirst(preg_replace('/([A-Z])/', ' $1', substr($key,3))))] = $value;
729
+ }
730
+ $j = 0;
731
+ foreach ($rows as $row) {
732
+ $data[$j] = array(
733
+ ucfirst($dimension) => $row[0]
734
+ );
735
+ $data[$j]['No'] = floatval($j + 1);
736
+ for ($i = 0; $i < count($metric); $i++) {
737
+ $data[$j][trim(ucfirst(preg_replace('/([A-Z])/', ' $1', substr($metric[$i], 3))))] = floatval($row[$i + 1]);
738
+ }
739
+ $j++;
740
+ }
741
+ } else {
742
+ $empty[0] = array(
743
+ trim(ucfirst(preg_replace('/([A-Z])/', ' $1', $dimension))) => 0
744
+ );
745
+ $empty[0]['No'] = 1;
746
+ for ($i = 0; $i < count($metric); $i++) {
747
+ $empty[0][trim(ucfirst(preg_replace('/([A-Z])/', ' $1', substr($metric[$i], 3))))] = 0;
748
+ }
749
+
750
+ return json_encode($empty);
751
+ }
752
+ $expiration = strtotime(date("Y-m-d 23:59:59")) - strtotime(gmdate("Y-m-d H:i:s") . '+' . $timezone . ' hours');
753
+ $result = $data;
754
+ if ($data_sum != '') {
755
+ $result = array('data_sum' => $data_sum, 'chart_data' => $data);
756
+ }
757
+ set_transient( 'gawd-country-'.$profileId.'-'.$country_filter.'-'.$start_date.'-'.$end_date, json_encode($result), $expiration );
758
+ return json_encode($result);
759
+ }
760
+
761
+ public function get_post_page_data($metric, $dimension, $start_date, $end_date, $filter, $timezone, $chart) {
762
+ $profileId = $this->get_profile_id();
763
+ $analytics = $this->analytics_member;
764
+ $metric = 'ga:users,ga:sessions,ga:percentNewSessions,ga:bounceRate,ga:pageviews,ga:avgSessionDuration,ga:pageviewsPerSession';
765
+ if($chart == 'pie'){
766
+ $diff = date_diff(date_create($start_date),date_create($end_date));
767
+ if(intval($diff->format("%a")) > 7){
768
+ $dimension = 'week';
769
+ }
770
+ if(intval($diff->format("%a")) > 60){
771
+ $dimension = 'month';
772
+ }
773
+ }
774
+ // Get the results from the Core Reporting API and print the results.
775
+ // Calls the Core Reporting API and queries for the number of sessions
776
+ // for the last seven days.
777
+
778
+ $filter_type = 'pagePath';
779
+
780
+ try {
781
+ $results = $analytics->data_ga->get(
782
+ 'ga:' . $profileId, $start_date, $end_date, $metric, array(
783
+ 'dimensions' => 'ga:' . $dimension,
784
+ 'sort' => 'ga:' . $dimension,
785
+ 'filters' => 'ga:' . $filter_type . '=~' . $filter
786
+ )
787
+ );
788
+ } catch (Exception $e) {
789
+ $error = array('error_message' => 'Error');
790
+ if (strpos($e->getMessage(), 'User does not have sufficient permissions for this profile')) {
791
+ $error['error_message'] = 'User does not have sufficient permissions for this profile';
792
+ }
793
+ return json_encode($error);
794
+ }
795
+
796
+ $rows = $results->getRows();
797
+ $metric = explode(',', $metric);
798
+ if ($rows) {
799
+ $j = 0;
800
+ $data_sum = array();
801
+ /*if ($dimension == 'week') {
802
+ $date = $start_date;
803
+ $_end_date = date("M d,Y", strtotime('next Saturday ' . $date));
804
+ if (strtotime($end_date) > strtotime(date('Y-m-d'))) {
805
+ $end_date = date("M d,Y");
806
+ }
807
+ foreach ($rows as $row) {
808
+ if (strtotime($_end_date) <= strtotime(date('Y-m-d'))) {
809
+
810
+ $dimension_value = date("M d,Y", strtotime($date)) . '-' . $_end_date;
811
+ // echo $date;
812
+ }
813
+ else {
814
+
815
+ if (strtotime($date) != strtotime($end_date)) {
816
+ $dimension_value = date("M d,Y", strtotime($date)) . '-' . $_end_date;
817
+ } else {
818
+ break;
819
+ }
820
+ }
821
+ $data[] = array(trim(ucfirst(preg_replace('/([A-Z])/', ' $1', $dimension))) => $dimension_value);
822
+ $data[$j]['No'] = floatval($j + 1);
823
+ for ($i = 0; $i < count($metric); $i++) {
824
+ $val = $i + 1;
825
+ $metric_val = floatval($row[$val]);
826
+ if(substr($metric[$i], 3) == 'bounceRate'){
827
+ $metric_val = $metric_val;
828
+ }
829
+ $data[$j][trim(ucfirst(preg_replace('/([A-Z])/', ' $1', substr($metric[$i], 3))))] = $metric_val;
830
+ }
831
+ $j++;
832
+ $date = date("M d,Y", strtotime('next Sunday ' . $_end_date));
833
+ $_end_date = date("M d,Y", strtotime('next Saturday ' . $date));
834
+ if (isset($_end_date) && (strtotime($_end_date) > strtotime($end_date))) {
835
+ $_end_date = $end_date;
836
+ }
837
+ }
838
+ }*/
839
+ if ($dimension == 'week' || $dimension == 'month') {
840
+ $date = $start_date;
841
+ if ($dimension == 'week') {
842
+ $_end_date = date("l", strtotime($date)) == 'Saturday' ? date("M d,Y", strtotime($date)) : date("M d,Y", strtotime('next Saturday ' . $date));
843
+ }
844
+ elseif ($dimension == 'month') {
845
+ $_end_date = date("M t,Y", strtotime($date));
846
+ if(strtotime($_end_date) > strtotime(date('Y-m-d'))){
847
+ $_end_date = date("M d,Y",strtotime('-1 day ' . date('Y-m-d')));
848
+ }
849
+ }
850
+ if (strtotime($end_date) > strtotime(date('Y-m-d'))) {
851
+ $end_date = date("M d,Y");
852
+ }
853
+ foreach ($rows as $row) {
854
+ if ($dimension == 'hour') {
855
+ $dimension_value = date("M d,Y", strtotime($row[0])) . ' ' . $row[1] . ':00';
856
+ }
857
+ else {
858
+ if (strtotime($_end_date) <= strtotime(date('Y-m-d'))) {
859
+
860
+ $dimension_value = date("M d,Y", strtotime($date)) . '-' . $_end_date;
861
+ // echo $date;
862
+ } else {
863
+ if ($dimension == 'month') {
864
+ //continue;
865
+ }
866
+ if (strtotime($date) != strtotime($end_date) ) {
867
+ $dimension_value = date("M d,Y", strtotime($date)) . '-' . $_end_date;
868
+ } else {
869
+ break;
870
+ }
871
+ }
872
+ }
873
+ $data[] = array(trim(ucfirst(preg_replace('/([A-Z])/', ' $1', $dimension))) => $dimension_value);
874
+ $data[$j]['No'] = floatval($j + 1);
875
+ for ($i = 0; $i < count($metric); $i++) {
876
+ $val = $i + 1;
877
+ if ($dimension == 'hour') {
878
+ $val = $i + 2;
879
+ }
880
+ $metric_val = floatval($row[$val]);
881
+ if(substr($metric[$i], 3) == 'bounceRate'){
882
+ $metric_val = $metric_val;
883
+ }
884
+ $data[$j][trim(ucfirst(preg_replace('/([A-Z])/', ' $1', substr($metric[$i], 3))))] = $metric_val;
885
+ }
886
+
887
+ $j++;
888
+
889
+ if(isset($break) && $break){
890
+ break;
891
+ }
892
+
893
+ if ($dimension == 'week') {
894
+ $date = date("M d,Y", strtotime('next Sunday ' . $_end_date));
895
+ $_end_date = date("M d,Y", strtotime('next Saturday ' . $date));
896
+ } elseif ($dimension == 'month') {
897
+ $date = date("M d,Y", strtotime('+1 day ' . $_end_date));
898
+ $_end_date = date("M t,Y", strtotime($date));
899
+ }
900
+ if (isset($_end_date) && (strtotime($_end_date) > strtotime($end_date))) {
901
+ $_end_date = date("M d,Y", strtotime($end_date));
902
+ $break = true;
903
+ }
904
+ }
905
+ }
906
+ else{
907
+ foreach ($rows as $row) {
908
+
909
+ if ($dimension == 'date') {
910
+ $row[0] = date('Y-m-d', strtotime($row[0]));
911
+ }
912
+ $data[$j] = array(
913
+ $dimension => $row[0]
914
+ );
915
+ for ($i = 0; $i < count($metric); $i++) {
916
+ $data[$j][substr($metric[$i], 3)] = floatval($row[$i + 1]);
917
+ if (isset($data_sum[substr($metric[$i], 3)])) {
918
+ $data_sum[substr($metric[$i], 3)] += floatval($row[$i + 1]);
919
+ } else {
920
+ if (substr($metric[$i], 3) != 'percentNewSessions' && substr($metric[$i], 3) != 'bounceRate') {
921
+ $data_sum[substr($metric[$i], 3)] = floatval($row[$i + 1]);
922
+ }
923
+ }
924
+ }
925
+ $j++;
926
+ }
927
+ }
928
+ $expiration = strtotime(date("Y-m-d 23:59:59")) - strtotime(gmdate("Y-m-d H:i:s") . '+' . $timezone . ' hours');
929
+ if (isset($same_dimension) && $same_dimension != null) {
930
+ $dimension = $same_dimension;
931
+ }
932
+ $result = array('data_sum' => $data_sum, 'chart_data' => $data);
933
+ set_transient('gawd-page-post-' . $profileId . '-' . $filter . '-' . '-' . $dimension . '-' . $start_date . '-' . $end_date . '-' . $chart, json_encode($result), $expiration);
934
+ return json_encode($result);
935
+ } else {
936
+ $empty[] = array(
937
+ $dimension => 0,
938
+ substr($metric[0], 3) => 0);
939
+ return json_encode($empty);
940
+ }
941
+ }
942
+
943
+ public function get_data($metric, $dimension, $start_date, $end_date, $filter_type, $timezone, $same_dimension = null) {
944
+ $dimension = lcfirst($dimension);
945
+
946
+ $metric = lcfirst($metric);
947
+ $profileId = $this->get_profile_id();
948
+ $analytics = $this->analytics_member;
949
+ $selected_metric = $metric;
950
+ if (strpos($selected_metric, 'ga:') > -1) {
951
+ $selected_metric = substr($selected_metric,3);
952
+ }
953
+ if (strpos($metric, 'ga:') === false) {
954
+ $metric = 'ga:' . $metric;
955
+ }
956
+ if ($dimension == 'interestInMarketCategory' || $dimension == 'interestAffinityCategory' || $dimension == 'interestOtherCategory' || $dimension == 'country' || $dimension == 'language' || $dimension == 'userType' || $dimension == 'sessionDurationBucket' || $dimension == 'userAgeBracket' || $dimension == 'userGender' || $dimension == 'mobileDeviceInfo' || $dimension == 'deviceCategory' || $dimension == 'operatingSystem' || $dimension == 'browser' || $dimension == 'date' || $dimension == "source") {
957
+ $metrics = 'ga:users,ga:sessions,ga:percentNewSessions,ga:bounceRate,ga:pageviews,ga:avgSessionDuration,ga:pageviewsPerSession';
958
+
959
+ if (strpos($metrics, $metric) !== false) {
960
+ $metric = $metrics;
961
+ }
962
+ }
963
+ elseif ($dimension == 'siteSpeed') {
964
+ $dimension = 'date';
965
+ $metrics = 'ga:avgPageLoadTime,ga:avgRedirectionTime,ga:avgServerResponseTime,ga:avgPageDownloadTime';
966
+ if (strpos($metrics, $metric) !== false) {
967
+ $metric = $metrics;
968
+ }
969
+ }
970
+ elseif ($dimension == 'eventLabel' || $dimension == 'eventAction' || $dimension == 'eventCategory') {
971
+ $metrics = 'ga:eventsPerSessionWithEvent,ga:sessionsWithEvent,ga:avgEventValue,ga:eventValue,ga:uniqueEvents,ga:totalEvents';
972
+ if (strpos($metrics, $metric) !== false) {
973
+ $metric = $metrics;
974
+ }
975
+ }
976
+
977
+ $dimension = $dimension == 'date' ? $filter_type != '' ? $filter_type : 'date' : $dimension;
978
+ if ($same_dimension == 'sales_performance' && ($dimension == 'week' || $dimension == 'month' || $dimension == 'hour')) {
979
+ $metrics = 'ga:transactionRevenue, ga:transactionsPerSession';
980
+ if (strpos($metrics, $metric) !== false) {
981
+ $metric = $metrics;
982
+ }
983
+ } elseif ($same_dimension == 'adsense' && ($dimension == 'week' || $dimension == 'month' || $dimension == 'hour')) {
984
+ $metrics = 'ga:adsenseRevenue,ga:adsenseAdsClicks';
985
+ if (strpos($metrics, $metric) !== false) {
986
+ $metric = $metrics;
987
+ }
988
+ } elseif ($same_dimension == 'siteSpeed' && ($dimension == 'week' || $dimension == 'month' || $dimension == 'hour')) {
989
+ $metrics = 'ga:avgPageLoadTime,ga:avgRedirectionTime,ga:avgServerResponseTime,ga:avgPageDownloadTime';
990
+ if (strpos($metrics, $metric) !== false) {
991
+ $metric = $metrics;
992
+ }
993
+ }
994
+
995
+ if ($same_dimension == 'week' || $same_dimension == 'month' || $same_dimension == 'hour') {
996
+ $metrics = 'ga:users,ga:sessions,ga:percentNewSessions,ga:bounceRate,ga:pageviews,ga:avgSessionDuration';
997
+ if (strpos($metrics, $metric) !== false) {
998
+ $metric = $metrics;
999
+ }
1000
+ }
1001
+
1002
+ /* if(!is_array($metric)){
1003
+ if (strpos($metric, 'ga') === false) {
1004
+ $metric = 'ga:' . $metric;
1005
+ }
1006
+ } */
1007
+ // Get the results from the Core Reporting API and print the results.
1008
+ // Calls the Core Reporting API and queries for the number of sessions
1009
+ // for the last seven days.
1010
+ if ($dimension == 'hour') {
1011
+
1012
+ $gawd_dimension = array(
1013
+ 'dimensions' => 'ga:date, ga:hour',
1014
+ 'sort' => 'ga:date',
1015
+ );
1016
+ }
1017
+ else {
1018
+ if($dimension != 'sessionDurationBucket'){
1019
+ $gawd_dimension = array(
1020
+ 'dimensions' => 'ga:' . $dimension,
1021
+ 'sort' => '-ga:' . $selected_metric,
1022
+ );
1023
+ }
1024
+ else{
1025
+ $gawd_dimension = array(
1026
+ 'dimensions' => 'ga:' . $dimension,
1027
+ 'sort' => 'ga:' . $dimension,
1028
+ );
1029
+ }
1030
+ }
1031
+
1032
+ try {
1033
+ $results = $analytics->data_ga->get(
1034
+ 'ga:' . $profileId, $start_date, $end_date, $metric, $gawd_dimension
1035
+ );
1036
+
1037
+ } catch (Exception $e) {
1038
+ $error = array('error_message' => 'Error');
1039
+ if (strpos($e->getMessage(), 'Selected dimensions and metrics cannot be queried together')) {
1040
+ $error['error_message'] = 'Selected dimensions and metrics cannot be queried together';
1041
+ } else if (strpos($e->getMessage(), 'User does not have sufficient permissions for this profile')) {
1042
+ $error['error_message'] = 'User does not have sufficient permissions for this profile';
1043
+ }
1044
+ return json_encode($error);
1045
+ }
1046
+
1047
+ $metric = explode(',', $metric);
1048
+ $rows = $results->getRows();
1049
+ if ($rows) {
1050
+
1051
+ $j = 0;
1052
+ $data_sum = array();
1053
+ foreach($results->getTotalsForAllResults() as $key => $value){
1054
+ $data_sum[trim(ucfirst(preg_replace('/([A-Z])/', ' $1', substr($key,3))))] = $value;
1055
+ }
1056
+
1057
+ if ($dimension == 'week' || $dimension == 'month' || $dimension == 'hour') {
1058
+
1059
+ $date = $start_date;
1060
+ if ($dimension == 'week') {
1061
+ $_end_date = date("l", strtotime($date)) == 'Saturday' ? date("M d,Y", strtotime($date)) : date("M d,Y", strtotime('next Saturday ' . $date));
1062
+ }
1063
+ elseif ($dimension == 'month') {
1064
+ $_end_date = date("M t,Y", strtotime($date));
1065
+ if(strtotime($_end_date) > strtotime(date('Y-m-d'))){
1066
+ $_end_date = date("M d,Y",strtotime('-1 day ' . date('Y-m-d')));
1067
+ }
1068
+ }
1069
+ if (strtotime($end_date) > strtotime(date('Y-m-d'))) {
1070
+ $end_date = date("M d,Y");
1071
+ }
1072
+ foreach ($rows as $row) {
1073
+ if ($dimension == 'hour') {
1074
+ $dimension_value = date("M d,Y", strtotime($row[0])) . ' ' . $row[1] . ':00';
1075
+ }
1076
+ else {
1077
+ if (strtotime($_end_date) <= strtotime(date('Y-m-d'))) {
1078
+
1079
+ $dimension_value = date("M d,Y", strtotime($date)) . '-' . $_end_date;
1080
+ // echo $date;
1081
+ } else {
1082
+ if ($dimension == 'month') {
1083
+ //continue;
1084
+ }
1085
+ if (strtotime($date) != strtotime($end_date) ) {
1086
+ $dimension_value = date("M d,Y", strtotime($date)) . '-' . $_end_date;
1087
+ } else {
1088
+ break;
1089
+ }
1090
+ }
1091
+ }
1092
+ $data[] = array(trim(ucfirst(preg_replace('/([A-Z])/', ' $1', $dimension))) => $dimension_value);
1093
+ $data[$j]['No'] = floatval($j + 1);
1094
+ for ($i = 0; $i < count($metric); $i++) {
1095
+ $val = $i + 1;
1096
+ if ($dimension == 'hour') {
1097
+ $val = $i + 2;
1098
+ }
1099
+ $metric_val = floatval($row[$val]);
1100
+ if(substr($metric[$i], 3) == 'bounceRate'){
1101
+ $metric_val = $metric_val;
1102
+ }
1103
+ $data[$j][trim(ucfirst(preg_replace('/([A-Z])/', ' $1', substr($metric[$i], 3))))] = $metric_val;
1104
+ }
1105
+
1106
+ $j++;
1107
+
1108
+ if(isset($break) && $break){
1109
+ break;
1110
+ }
1111
+
1112
+ if ($dimension == 'week') {
1113
+ $date = date("M d,Y", strtotime('next Sunday ' . $_end_date));
1114
+ $_end_date = date("M d,Y", strtotime('next Saturday ' . $date));
1115
+ } elseif ($dimension == 'month') {
1116
+ $date = date("M d,Y", strtotime('+1 day ' . $_end_date));
1117
+ $_end_date = date("M t,Y", strtotime($date));
1118
+ }
1119
+ if (isset($_end_date) && (strtotime($_end_date) > strtotime($end_date))) {
1120
+ $_end_date = date("M d,Y", strtotime($end_date));
1121
+ $break = true;
1122
+ }
1123
+ }
1124
+ }
1125
+ else {
1126
+ foreach ($rows as $row) {
1127
+ if (strtolower($dimension) == 'date') {
1128
+ $row[0] = date('Y-m-d', strtotime($row[0]));
1129
+ }
1130
+ elseif(strtolower($dimension) == 'sessiondurationbucket'){
1131
+ if($row[0] >= 0 && $row[0] <= 10){
1132
+ $row[0] = '0-10';
1133
+ }
1134
+ elseif($row[0] >= 11 && $row[0] <= 30){
1135
+ $row[0] = '11-30';
1136
+ }
1137
+ elseif($row[0] >= 31 && $row[0] <= 40){
1138
+ $row[0] = '31-40';
1139
+ }
1140
+ elseif($row[0] >= 41 && $row[0] <= 60){
1141
+ $row[0] = '41-60';
1142
+ }
1143
+ elseif($row[0] >= 61 && $row[0] <= 180){
1144
+ $row[0] = '61-180';
1145
+ }
1146
+ elseif($row[0] >= 181 && $row[0] <= 600){
1147
+ $row[0] = '181-600';
1148
+ }
1149
+ elseif($row[0] >= 601 && $row[0] <= 1800){
1150
+ $row[0] = '601-1800';
1151
+ }
1152
+ elseif($row[0] >= 1801){
1153
+ $row[0] = '1801';
1154
+ }
1155
+ }
1156
+ elseif(strpos($dimension,'dimension') >-1){
1157
+ $dimension_data = $this->get_custom_dimensions();
1158
+ foreach($dimension_data as $key => $value){
1159
+ if($dimension == substr($value['id'],3)){
1160
+ $dimension = $value['name'];
1161
+ }
1162
+ }
1163
+ }
1164
+ $data[$j]['No'] = floatval($j + 1);
1165
+ $dimension_data = ctype_digit($row[0]) ? intval($row[0]) : $row[0];
1166
+ $dimension_data = strpos($dimension_data,'T') ? substr($dimension_data ,0,strpos($dimension_data,'T')) : $dimension_data;
1167
+ $data[$j][trim(ucfirst(preg_replace('/([A-Z])/', ' $1', $dimension)))] = $dimension_data;
1168
+
1169
+ for ($i = 0; $i < count($metric); $i++) {
1170
+ $metric_val = floatval($row[$i + 1]);
1171
+ if(substr($metric[$i], 3) == 'avgSessionDuration'){
1172
+ $metric_val = ceil($row[$i + 1]);
1173
+ }
1174
+ $data[$j][trim(ucfirst(preg_replace('/([A-Z])/', ' $1', substr($metric[$i], 3))))] = $metric_val;
1175
+ }
1176
+ $j++;
1177
+ }
1178
+ }
1179
+ $expiration = strtotime(date("Y-m-d 23:59:59")) - strtotime(gmdate("Y-m-d H:i:s") . '+' . $timezone . ' hours');
1180
+ if (isset($same_dimension) && $same_dimension != null) {
1181
+ $dimension = $filter_type == 'date' || $filter_type == '' ? $same_dimension : $same_dimension . '_' . $filter_type;
1182
+ }
1183
+ if($dimension == "daysToTransaction"){
1184
+ foreach ($data as $key => $row) {
1185
+ $daysToTransaction[$key] = $row['Days To Transaction'];
1186
+ }
1187
+ array_multisort($daysToTransaction, SORT_ASC, $data);
1188
+ foreach($data as $j=>$val){
1189
+ $val["No"] = ($j+1);
1190
+ $data[$j] = $val;
1191
+ }
1192
+ }
1193
+ elseif($dimension == "sessionDurationBucket"){
1194
+ $_data = array();
1195
+ //$j = 1;
1196
+ foreach($data as $val){
1197
+ if(isset($_data[$val["Session Duration Bucket"]])){
1198
+ $_data[$val["Session Duration Bucket"]]["Users"] += floatval($val["Users"]);
1199
+ $_data[$val["Session Duration Bucket"]]["Sessions"] += floatval($val["Sessions"]);
1200
+ $_data[$val["Session Duration Bucket"]]["Percent New Sessions"] += floatval($val["Percent New Sessions"]);
1201
+ $_data[$val["Session Duration Bucket"]]["Bounce Rate"] += floatval($val["Bounce Rate"]);
1202
+ $_data[$val["Session Duration Bucket"]]["Pageviews"] += floatval($val["Pageviews"]);
1203
+ $_data[$val["Session Duration Bucket"]]["Avg Session Duration"] += $val["Avg Session Duration"];
1204
+ }
1205
+ else{
1206
+ // $val["No"] = $j;
1207
+ // $j++;
1208
+ $_data[$val["Session Duration Bucket"]] = $val;
1209
+ $_data[$val["Session Duration Bucket"]]["order"] = intval($val["Session Duration Bucket"]);
1210
+ }
1211
+
1212
+
1213
+ }
1214
+ $data = array_values($_data);
1215
+ foreach ($data as $key => $row) {
1216
+ $yyy[$key] = $row['order'];
1217
+ }
1218
+ array_multisort($yyy, SORT_ASC, $data);
1219
+ foreach($data as $j=>$val){
1220
+ $val["No"] = ($j+1);
1221
+ $data[$j] = $val;
1222
+ }
1223
+ }
1224
+ else{
1225
+ if(strpos($dimension,'dimension') === false){
1226
+ $dimension = $dimension == 'siteSpeed' || $dimension == 'sales_performance' ? 'Date' : $dimension;
1227
+ foreach ($data as $key => $row) {
1228
+ $new_data[$key] = $row[trim(ucfirst(preg_replace('/([A-Z])/', ' $1', $dimension)))];
1229
+ }
1230
+ array_multisort($new_data, SORT_ASC, $data);
1231
+ foreach($data as $j=>$val){
1232
+ $val["No"] = ($j+1);
1233
+ $data[$j] = $val;
1234
+ }
1235
+ }
1236
+ }
1237
+ $result = $data;
1238
+ if ($data_sum != '') {
1239
+ $result = array('data_sum' => $data_sum, 'chart_data' => $data);
1240
+ }
1241
+ set_transient( 'gawd-'.$profileId.'-'.$dimension.'-'.$start_date.'-'.$end_date, json_encode($result), $expiration );
1242
+ return json_encode($result);
1243
+ }
1244
+ else {
1245
+ if(strpos($dimension,'dimension') >-1){
1246
+ $dimension_data = $this->get_custom_dimensions();
1247
+ foreach($dimension_data as $key => $value){
1248
+ if($dimension == substr($value['id'],3)){
1249
+ $dimension = $value['name'];
1250
+ }
1251
+ }
1252
+ }
1253
+ $empty[0] = array(
1254
+ trim(ucfirst(preg_replace('/([A-Z])/', ' $1', $dimension))) => 0
1255
+ );
1256
+ $empty[0]['No'] = 1;
1257
+ for ($i = 0; $i < count($metric); $i++) {
1258
+ $empty[0][trim(ucfirst(preg_replace('/([A-Z])/', ' $1', substr($metric[$i], 3))))] = 0;
1259
+ }
1260
+
1261
+ return json_encode(array('chart_data' => $empty));
1262
+ }
1263
+ }
1264
+
1265
+ public function get_data_compact($metric, $dimension, $start_date, $end_date, $timezone) {
1266
+ $profileId = $this->get_profile_id();
1267
+ $metric_sort = $metric;
1268
+ $analytics = $this->analytics_member;
1269
+ // Get the results from the Core Reporting API and print the results.
1270
+ // Calls the Core Reporting API and queries for the number of sessions
1271
+ // for the last seven days.
1272
+ if ($dimension == 'date') {
1273
+ $metric = 'ga:users,ga:sessions,ga:percentNewSessions,ga:bounceRate,ga:pageviews,ga:avgSessionDuration,ga:pageviewsPerSession';
1274
+ }
1275
+ $results = $analytics->data_ga->get(
1276
+ 'ga:' . $profileId, $start_date, $end_date, $metric, array(
1277
+ 'dimensions' => 'ga:' . $dimension,
1278
+ 'sort' => 'ga:' . $dimension,
1279
+ )
1280
+ );
1281
+ $rows = $results->getRows();
1282
+ $metric = explode(',', $metric);
1283
+ if ($rows) {
1284
+ $j = 0;
1285
+ $data_sum = array();
1286
+ foreach($results->getTotalsForAllResults() as $key => $value){
1287
+ $data_sum[trim(ucfirst(preg_replace('/([A-Z])/', ' $1', substr($key,3))))] = $value;
1288
+ }
1289
+
1290
+ foreach ($rows as $row) {
1291
+ if ($dimension == 'date') {
1292
+ $row[0] = date('Y-m-d', strtotime($row[0]));
1293
+ }
1294
+ $data[$j] = array(
1295
+ trim(ucfirst(preg_replace('/([A-Z])/', ' $1', $dimension))) => $row[0]
1296
+ );
1297
+ for ($i = 0; $i < count($metric); $i++) {
1298
+ $metric_val = floatval($row[$i + 1]);
1299
+
1300
+ $data[$j][trim(ucfirst(preg_replace('/([A-Z])/', ' $1', substr($metric[$i], 3))))] = $metric_val;
1301
+ }
1302
+ $j++;
1303
+ }
1304
+ if($dimension == "country"){
1305
+ foreach ($data as $key => $row) {
1306
+ $country[$key] = $row[trim(ucfirst(preg_replace('/([A-Z])/', ' $1', substr($metric_sort, 3))))];
1307
+ }
1308
+ array_multisort($country, SORT_DESC, $data);
1309
+ foreach($data as $j=>$val){
1310
+ $val["No"] = ($j+1);
1311
+ $data[$j] = $val;
1312
+ }
1313
+ }
1314
+ }
1315
+ else {
1316
+ $data_sum = array();
1317
+ $empty[0] = array(
1318
+ trim(ucfirst(preg_replace('/([A-Z])/', ' $1', $dimension))) => 0
1319
+ );
1320
+ $data_sum[trim(ucfirst(preg_replace('/([A-Z])/', ' $1', $dimension)))] = 0;
1321
+ $empty[0]['No'] = 1;
1322
+ for ($i = 0; $i < count($metric); $i++) {
1323
+ $empty[0][trim(ucfirst(preg_replace('/([A-Z])/', ' $1', substr($metric[$i], 3))))] = 0;
1324
+ $data_sum[trim(ucfirst(preg_replace('/([A-Z])/', ' $1', substr($metric[$i], 3))))] = 0;
1325
+ }
1326
+ $result = array('data_sum' => $data_sum, 'chart_data' => $empty);
1327
+ return json_encode($result);
1328
+ }
1329
+ if ($data_sum != '') {
1330
+ $result = array('data_sum' => $data_sum, 'chart_data' => $data);
1331
+ }
1332
+ $expiration = strtotime(date("Y-m-d 23:59:59")) - strtotime(gmdate("Y-m-d H:i:s") . '+' . $timezone . ' hours');
1333
+ set_transient('gawd-compact-' . $profileId . '-' . $dimension . '-' . $start_date . '-' . $end_date, json_encode($result), $expiration);
1334
+ return json_encode($result);
1335
+ }
1336
+
1337
+ public function get_data_alert($metric, $dimension, $start_date, $end_date, $gawd_alert_view) {
1338
+ $profileId = $gawd_alert_view == '' ? $this->get_profile_id() : $gawd_alert_view;
1339
+ $analytics = $this->analytics_member;
1340
+ // Get the results from the Core Reporting API and print the results.
1341
+ // Calls the Core Reporting API and queries for the number of sessions
1342
+ // for the last seven days.
1343
+ $results = $analytics->data_ga->get(
1344
+ 'ga:' . $profileId, $start_date, $end_date, $metric, array(
1345
+ 'dimensions' => 'ga:' . $dimension,
1346
+ 'sort' => 'ga:' . $dimension,
1347
+ )
1348
+ );
1349
+ $rows = $results->getRows();
1350
+
1351
+ $data = '';
1352
+ foreach ($rows as $row) {
1353
+ $data += floatval($row[1]);
1354
+ }
1355
+ return ($data);
1356
+ }
1357
+
1358
+ public function get_profile_id() {
1359
+ $this->gawd_user_data = get_option('gawd_user_data');
1360
+ $profiles_light = get_transient('gawd_user_profiles') ? get_transient('gawd_user_profiles') : $this->gawd_user_data['gawd_profiles'];
1361
+ if (!isset($this->gawd_user_data['gawd_id']) || $this->gawd_user_data['gawd_id'] == '') {
1362
+ if (!empty($profiles_light)) {
1363
+ $first_profiles = reset($profiles_light);
1364
+ $first_profile = $first_profiles[0];
1365
+ $this->gawd_user_data['gawd_id'] = $first_profile['id'];
1366
+ }
1367
+ }
1368
+ return (isset($this->gawd_user_data['gawd_id'])?$this->gawd_user_data['gawd_id']:null);
1369
+ }
1370
+
1371
+ public function get_profile_webPropertyId() {
1372
+ $this->gawd_user_data = get_option('gawd_user_data');
1373
+ return (isset($this->gawd_user_data['webPropertyId'])?$this->gawd_user_data['webPropertyId']:null);
1374
+ }
1375
+
1376
+ public function get_profile_accountId() {
1377
+ $this->gawd_user_data = get_option('gawd_user_data');
1378
+ return isset($this->gawd_user_data['accountId']) ? $this->gawd_user_data['accountId'] : '';
1379
+ }
1380
+
1381
+ public function get_default_webPropertyId() {
1382
+ $this->gawd_user_data = get_option('gawd_user_data');
1383
+ return (isset($this->gawd_user_data['default_webPropertyId'])?$this->gawd_user_data['default_webPropertyId']:null);
1384
+ }
1385
+
1386
+ public function get_default_accountId() {
1387
+ $this->gawd_user_data = get_option('gawd_user_data');
1388
+ return (isset($this->gawd_user_data['default_accountId'])?$this->gawd_user_data['default_accountId']:null);
1389
+ }
1390
+
1391
+ public function get_page_data($dimension, $start_date, $end_date, $timezone) {
1392
+ $analytics = $this->analytics_member;
1393
+ $profileId = $this->get_profile_id();
1394
+ $metric = $dimension == 'pagePath' || $dimension == 'PagePath' ? 'ga:pageviews,ga:uniquePageviews,ga:avgTimeOnPage,ga:entrances,ga:bounceRate,ga:exitRate,ga:pageValue,ga:avgPageLoadTime' : 'ga:sessions,ga:percentNewSessions,ga:newUsers,ga:bounceRate,ga:pageviewsPerSession,ga:avgSessionDuration,ga:transactions,ga:transactionRevenue,ga:transactionsPerSession';
1395
+ $sorts = '-'.explode(',', $metric);
1396
+ $sort = $sorts[0];
1397
+
1398
+ try {
1399
+ $results = $analytics->data_ga->get(
1400
+ 'ga:' . $profileId, $start_date, $end_date, $metric, array(
1401
+ 'dimensions' => 'ga:'.$dimension,
1402
+ 'sort' => $sort,
1403
+ )
1404
+ );
1405
+ } catch (Exception $e) {
1406
+
1407
+ $error = array('error_message' => 'Error');
1408
+ if (strpos($e->getMessage(), 'User does not have sufficient permissions for this profile')) {
1409
+ $error['error_message'] = 'User does not have sufficient permissions for this profile';
1410
+ }
1411
+ return json_encode($error);
1412
+ }
1413
+ $rows = $results->getRows();
1414
+ $metric = explode(',', $metric);
1415
+ if ($rows) {
1416
+ $data_sum = array();
1417
+ foreach($results->getTotalsForAllResults() as $key => $value){
1418
+ $data_sum[trim(ucfirst(preg_replace('/([A-Z])/', ' $1', substr($key,3))))] = $value;
1419
+ }
1420
+ foreach ($rows as $key => $row) {
1421
+ $hours = strlen(floor($row[3] / 3600)) < 2 ? '0' . floor($row[3] / 3600) : floor($row[3] / 3600);
1422
+ $mins = strlen(floor($row[3] / 60 % 60)) < 2 ? '0' . floor($row[3] / 60 % 60) : floor($row[3] / 60 % 60);
1423
+ $secs = strlen(floor($row[3] % 60)) < 2 ? '0' . floor($row[3] % 60) : floor($row[3] % 60);
1424
+ $time_on_page = $hours.':'.$mins.':'.$secs;
1425
+ if($dimension == 'pagePath' || $dimension == 'PagePath'){
1426
+ $data[] = array(
1427
+ 'No' => floatval($key + 1),
1428
+ 'Page Path' => $row[0],
1429
+ 'Pageviews' => intval($row[1]),
1430
+ 'Unique Pageviews' => intval($row[2]),
1431
+ 'Avg Time On Page' => $time_on_page,
1432
+ 'Entrances' => intval($row[4]),
1433
+ 'Bounce Rate' => floatval($row[5]),
1434
+ 'Exit Rate' => intval($row[6]),
1435
+ 'Page Value' => intval($row[7]),
1436
+ 'Avg Page Load Time' => intval($row[8])
1437
+ );
1438
+ }
1439
+ else{
1440
+ $data[] = array(
1441
+ 'No' => floatval($key + 1),
1442
+ 'Landing Page' => $row[0],
1443
+ 'Sessions' => intval($row[1]),
1444
+ 'Percent New Sessions' => intval($row[2]),
1445
+ 'New Users' => intval($row[3]),
1446
+ 'Bounce Rate' => intval($row[4]),
1447
+ 'Pageviews Per Session' => floatval($row[5]),
1448
+ 'Avg Session Duration' => intval($row[6]),
1449
+ 'Transactions' => intval($row[7]),
1450
+ 'Transaction Revenue' => intval($row[8]),
1451
+ 'Transactions Per Session' => intval($row[9])
1452
+ );
1453
+ }
1454
+ }
1455
+
1456
+ }
1457
+ else {
1458
+ $empty[0] = array(
1459
+ trim(ucfirst(preg_replace('/([A-Z])/', ' $1', $dimension))) => 0
1460
+ );
1461
+ $empty[0]['No'] = 1;
1462
+ for ($i = 0; $i < count($metric); $i++) {
1463
+ $empty[0][trim(ucfirst(preg_replace('/([A-Z])/', ' $1', substr($metric[$i], 3))))] = 0;
1464
+ $data_sum[trim(ucfirst(preg_replace('/([A-Z])/', ' $1', substr($metric[$i],3))))] = 0;
1465
+ }
1466
+
1467
+ return json_encode(array('data_sum' => $data_sum, 'chart_data' => $empty));
1468
+ }
1469
+ if ($data_sum != '') {
1470
+ $result = array('data_sum' => $data_sum, 'chart_data' => $data);
1471
+ }
1472
+ $expiration = strtotime(date("Y-m-d 23:59:59")) - strtotime(gmdate("Y-m-d H:i:s") . '+' . $timezone . ' hours');
1473
+ set_transient('gawd-' . $profileId . '-' . $dimension . '-' . $start_date . '-' . $end_date, json_encode($result), $expiration);
1474
+ return json_encode($result);
1475
+ }
1476
+
1477
+ public function get_goal_data($dimension, $start_date, $end_date, $timezone, $same_dimension) {
1478
+ $goals = $this->get_management_goals();
1479
+ if ('no_goals_exist' != $goals) {
1480
+ $analytics = $this->analytics_member;
1481
+ $profileId = $this->get_profile_id();
1482
+ $metric = array();
1483
+ $all_metric = '';
1484
+ $counter = 1;
1485
+ foreach ($goals as $goal) {
1486
+ $all_metric .= 'ga:goal' . $goal['id'] . 'Completions,';
1487
+ if($counter <= 10){
1488
+ $metrics[0][] = 'ga:goal' . $goal['id'] . 'Completions';
1489
+ }
1490
+ else{
1491
+ $metrics[1][] = 'ga:goal' . $goal['id'] . 'Completions';
1492
+ }
1493
+ $counter++;
1494
+ }
1495
+ $rows = array();
1496
+ foreach($metrics as $metric){
1497
+ $metric = implode(',',$metric);
1498
+ $results = $analytics->data_ga->get(
1499
+ 'ga:' . $profileId, $start_date, $end_date, $metric, array(
1500
+ 'dimensions' => 'ga:' . $dimension,
1501
+ 'sort' => 'ga:' . $dimension,
1502
+ )
1503
+ );
1504
+
1505
+ $temp_rows = $results->getRows();
1506
+ if(empty($temp_rows)){
1507
+ continue;
1508
+ }
1509
+
1510
+ foreach($temp_rows as $key=>$value){
1511
+ if(!isset($rows[$key])){
1512
+ $rows[$key] = $value;
1513
+ }
1514
+ else{
1515
+ unset($value[0]);
1516
+ $rows[$key] = array_merge($rows[$key],$value);
1517
+ }
1518
+ }
1519
+
1520
+ }
1521
+ $all_metric = explode(',', $all_metric);
1522
+ if ($rows) {
1523
+ $j = 0;
1524
+ $data_sum = array();
1525
+ foreach ($rows as $row) {
1526
+ if ($dimension == 'date') {
1527
+ $row[0] = date('Y-m-d', strtotime($row[0]));
1528
+ }
1529
+ $data[$j] = array(
1530
+ preg_replace('!\s+!',' ',trim(ucfirst(preg_replace('/([A-Z])/', ' $1', $dimension))))=> $row[0]
1531
+ );
1532
+ $data[$j]['No'] = floatval($j + 1);
1533
+ for ($i = 0; $i < count($goals); $i++) {
1534
+ $data[$j][preg_replace('!\s+!',' ',trim(ucfirst(preg_replace('/([A-Z])/', ' $1', $goals[$i]['name']))))] = floatval($row[$i + 1]);
1535
+ if (isset($data_sum[preg_replace('!\s+!',' ',trim(ucfirst(preg_replace('/([A-Z])/', ' $1', $goals[$i]['name']))))])) {
1536
+ $data_sum[preg_replace('!\s+!',' ',trim(ucfirst(preg_replace('/([A-Z])/', ' $1', $goals[$i]['name']))))] += floatval($row[$i + 1]);
1537
+ } else {
1538
+ if (substr($all_metric[$i], 3) != 'percentNewSessions' && substr($all_metric[$i], 3) != 'bounceRate') {
1539
+ $data_sum[preg_replace('!\s+!',' ',trim(ucfirst(preg_replace('/([A-Z])/', ' $1', $goals[$i]['name']))))] = floatval($row[$i + 1]);
1540
+ }
1541
+ }
1542
+ }
1543
+ $j++;
1544
+ }
1545
+ $expiration = strtotime(date("Y-m-d 23:59:59")) - strtotime(gmdate("Y-m-d H:i:s") . '+' . $timezone . ' hours');
1546
+ if (isset($same_dimension) && $same_dimension != null) {
1547
+ $dimension = $same_dimension;
1548
+ }
1549
+ $result = $data;
1550
+ if ($data_sum != '') {
1551
+ $result = array('data_sum' => $data_sum, 'chart_data' => $data);
1552
+ }
1553
+ set_transient('gawd-' . $profileId . '-' . $dimension . '-' . $start_date . '-' . $end_date, json_encode($result), $expiration);
1554
+ return json_encode($result);
1555
+ } else {
1556
+ return $goals;
1557
+ }
1558
+ } else {
1559
+ return json_encode(array('error_message' => 'No goals exist'));
1560
+ }
1561
+ }
1562
+
1563
+ public function gawd_realtime_data() {
1564
+ $analytics = $this->analytics_member;
1565
+ $profileId = $this->get_profile_id();
1566
+ $metrics = 'rt:activeUsers';
1567
+ $dimensions = 'rt:pagePath,rt:source,rt:keyword,rt:trafficType,rt:country,rt:pageTitle,rt:deviceCategory';
1568
+ $managequota = 'u' . get_current_user_id() . 's' . get_current_blog_id();
1569
+
1570
+ try {
1571
+ $data = $analytics->data_realtime->get('ga:' . $profileId, $metrics, array('dimensions' => $dimensions, 'quotaUser' => $managequota . 'p' . $profileId));
1572
+ } catch (Exception $e) {
1573
+ $error = array('error_message' => 'Error');
1574
+ if (strpos($e->getMessage(), 'User does not have sufficient permissions for this profile')) {
1575
+ $error['error_message'] = 'User does not have sufficient permissions for this profile';
1576
+ }
1577
+ return json_encode($error);
1578
+ }
1579
+ $expiration = 5 ;
1580
+ if ($data->getRows() != '') {
1581
+ $i = 0;
1582
+ $gawd_data = $data;
1583
+ foreach ($data->getRows() as $row) {
1584
+ $gawd_data[$i] = $row;
1585
+ $i++;
1586
+ }
1587
+ set_transient('gawd-real-' . $profileId, json_encode($gawd_data), $expiration);
1588
+ echo json_encode($gawd_data);
1589
+ wp_die();
1590
+ }
1591
+ else {
1592
+ return 0;
1593
+ }
1594
+ }
1595
+
1596
+ public static function get_instance() {
1597
+ if ( null === self::$instance ) {
1598
+ self::$instance = new self;
1599
+ }
1600
+ return self::$instance;
1601
+ }
1602
+
1603
+ }
1604
+
1605
+ ?>
admin/pages/custom_reports.php CHANGED
@@ -1,6 +1,9 @@
1
-
2
- <img style="margin-top:10px" src="<?php echo GAWD_URL . '/assets/freePages/custom_reports.png';?>"/>
3
-
4
-
5
-
6
-
 
 
 
1
+ <div style="font-size: 14px; font-weight: bold; margin:15px 0">
2
+ This section lets add and manage custom reports. Read more in User Guide.
3
+ <a style="color: #00A0D2; text-decoration: none;" target="_blank" href="https://web-dorado.com/wordpress-google-analytics/custom-reports.html">Read More in User Manual.</a>
4
+ </div>
5
+ <img style="margin-top:10px" src="<?php echo GAWD_URL . '/assets/freePages/custom_reports.png';?>"/>
6
+
7
+
8
+
9
+
admin/pages/dashboard.php CHANGED
@@ -1,671 +1,675 @@
1
- <?php
2
- $goals = $gawd_client->get_management_goals();
3
- if (!is_array($goals)) {
4
- $goals = array();
5
- }
6
- $get_custom_reports = get_option('gawd_custom_reports');
7
- if(!isset($_GET['tab'])){
8
- $_GET['tab'] = 'general';
9
- }
10
- $tabs = get_option('gawd_menu_items');
11
- $gawd_zoom_message = get_option('gawd_zoom_message');
12
- $current_user = get_current_user_id();
13
- $saved_user_menues = get_option('gawd_menu_for_user');
14
- if($current_user != 1 && isset($saved_user_menues[$current_user])){
15
- $tabs = array_intersect_key($tabs, $saved_user_menues[$current_user]);
16
- }
17
- ?>
18
- <form method="post" id="gawd_view">
19
-
20
- <div class="gawd_profiles" id="gawd_profile_wrapper">
21
- <?php if($gawd_zoom_message === false){
22
- ?>
23
- <div class="gawd_zoom_message">
24
- <span>You can zoom chart by dragging the mouse over it</span><input class="button_gawd" type="button" id="gawd_got_it" value="GOT IT"/>
25
- </div>
26
- <?php
27
- }
28
- ?>
29
- <select class="gawd_profile_select" id="gawd_id" name="gawd_id" onchange="change_account(this)">
30
- <?php foreach ($profiles as $property_name => $property): ?>
31
- <optgroup label="<?php echo $property_name; ?>">
32
- <?php foreach ($property as $profile):
33
- $webPropertyId = $profile['webPropertyId'];
34
- $id = $profile['id'];
35
- $name = $profile['name'];
36
- $selected = '';
37
- if($id == $gawd_user_data['gawd_id']){
38
- $selected = 'selected="selected"';
39
- }
40
- ?>
41
- <option value="<?php echo $id; ?>" <?php echo $selected; ?>><?php echo $property_name.' - '.$name ; ?></option>
42
- <?php endforeach ?>
43
- </optgroup>
44
- <?php endforeach ?>
45
- </select>
46
- <div class="clear"></div>
47
- <input type="hidden" name='web_property_name' id='web_property_name'/>
48
- </div>
49
- <div id="gawd_body">
50
- <?php
51
- include_once('dashboard_menu.php');
52
- $page = isset($_GET['tab']) ? $_GET['tab'] : 'overview';
53
- if(strpos($page,'custom_report')!==false){
54
- $tab = $page;
55
- }
56
- else{
57
- switch ($page) {
58
- case 'general':
59
- $tab = 'date';
60
- break;
61
- case 'location':
62
- $tab = 'country';
63
- break;
64
- case 'behaviour':
65
- $tab = 'userType';
66
- break;
67
- case 'engagement':
68
- $tab = 'sessionDurationBucket';
69
- break;
70
- case 'pagePath':
71
- $tab = 'pagePath';
72
- break;
73
- case 'landingPagePath':
74
- $tab = 'landingPagePath';
75
- break;
76
- case 'language':
77
- $tab = 'language';
78
- break;
79
- case 'browser':
80
- $tab = 'browser';
81
- break;
82
- case 'os':
83
- $tab = 'operatingSystem';
84
- break;
85
- case 'device_overview':
86
- $tab = 'deviceCategory';
87
- break;
88
- case 'devices':
89
- $tab = 'mobileDeviceInfo';
90
- break;
91
- case 'realtime':
92
- $tab = 'realTime';
93
- break;
94
- case 'custom':
95
- $tab = 'custom';
96
- break;
97
- case 'eventsCategory':
98
- $tab = 'eventCategory';
99
- break;
100
- case 'eventsAction':
101
- $tab = 'eventAction';
102
- break;
103
- case 'eventsLabel':
104
- $tab = 'eventLabel';
105
- break;
106
- case 'goals':
107
- $tab = 'goals';
108
- break;
109
- case 'userGender':
110
- $tab = 'userGender';
111
- break;
112
- case 'userAge':
113
- $tab = 'userAgeBracket';
114
- break;
115
- case 'adWords':
116
- $tab = 'adGroup';
117
- break;
118
- case 'otherCategory':
119
- $tab = 'interestOtherCategory';
120
- break;
121
- case 'affinityCategory':
122
- $tab = 'interestAffinityCategory';
123
- break;
124
- case 'inMarket':
125
- $tab = 'interestInMarketCategory';
126
- break;
127
- case 'trafficSource':
128
- $tab = 'source';
129
- break;
130
- case 'siteSpeed':
131
- $tab = 'siteSpeed';
132
- break;
133
- case 'adsense':
134
- $tab = 'adsense';
135
- break;
136
- case 'productName':
137
- $tab = 'productName';
138
- break;
139
- case 'productCategory':
140
- $tab = 'productCategory';
141
- break;
142
- case 'productSku':
143
- $tab = 'productSku';
144
- break;
145
- case 'transactionId':
146
- $tab = 'transactionId';
147
- break;
148
- case 'daysToTransaction':
149
- $tab = 'daysToTransaction';
150
- break;
151
- case 'sales_performance':
152
- $tab = 'sales_performance';
153
- break;
154
- default:
155
- if($tabs != ''){
156
- $tab = key($tabs);
157
- }
158
- else{
159
- $tab = 'date';
160
- }
161
- break;
162
- }
163
- }
164
- ?>
165
- <input id="gawd_filter_val" type="hidden" value="">
166
- <div class="resp_metrics_menu"><div class="menu_metrics_img"></div><div class="button_label">FILTERS</div><div class="clear"></div></div>
167
- <div id="gawd_right_conteiner">
168
- <h3 id="gawd_page_title">Audience</h3>
169
- <div class="filter_conteiner">
170
- <div id="metric_conteiner" class="float_conteiner">
171
- <div class="gawd_metrics">
172
- <?php
173
- if($tab == 'date'){
174
- ?>
175
- <div id="first_metric" >
176
- <select name="gawd_metric" id="gawd_metric" class="gawd_draw_analytics load_tooltip" data-hint="Choose a metric to view overview graph.">
177
- <option value="sessions"><?php echo __('Sessions', 'gawd'); ?></option>
178
- <option value="percentNewSessions"><?php echo __('% New Sessions', 'gawd'); ?></option>
179
- <option value="users" ><?php echo __('Users', 'gawd'); ?></option>
180
- <option value="bounceRate" ><?php echo __('Bounce Rate', 'gawd'); ?></option>
181
- <option value="avgSessionDuration" ><?php echo __('Avg Session Duration', 'gawd'); ?></option>
182
- <option value="pageviews" ><?php echo __('Pageviews', 'gawd'); ?></option>
183
- <option value="pageviewsPerSession" ><?php echo __('Pages/Session', 'gawd'); ?></option>
184
- </select>
185
- </div>
186
- <div id="metric_compare">
187
- <select name="gawd_metric_compare" id="gawd_metric_compare" class="gawd_draw_analytics load_tooltip" data-hint="Select the second metric to compare reports.">
188
- <option value="0"><?php echo __('None', 'gawd'); ?></option>
189
- <option value="sessions"><?php echo __('Sessions', 'gawd'); ?></option>
190
- <option value="percentNewSessions"><?php echo __('% New Sessions', 'gawd'); ?></option>
191
- <option value="users" ><?php echo __('Users', 'gawd'); ?></option>
192
- <option value="bounceRate" ><?php echo __('Bounce Rate', 'gawd'); ?></option>
193
- <option value="avgSessionDuration" ><?php echo __('Avg Session Duration', 'gawd'); ?></option>
194
- <option value="pageviews" ><?php echo __('Pageviews', 'gawd'); ?></option>
195
- <option value="pageviewsPerSession" ><?php echo __('Pages/Session', 'gawd'); ?></option>
196
- </select>
197
- <img src="<?php echo GAWD_URL. '/assets/cleardot.gif';?>"/>
198
- </div>
199
- <?php
200
- }
201
- elseif($tab == 'inMarket' || $tab == 'affinityCategory' || $tab == 'otherCategory' || $tab == 'country' || $tab == 'language' || $tab == 'userType' || $tab == 'sessionDurationBucket' || $tab == 'userAgeBracket' || $tab == 'userGender' || $tab == 'mobileDeviceInfo' || $tab == 'deviceCategory' || $tab == 'operatingSystem' || $tab == 'browser' || $tab =='interestInMarketCategory' || $tab == 'interestAffinityCategory' || $tab == 'interestOtherCategory' || $tab == 'source'){
202
- ?>
203
- <div id="first_metric" >
204
- <select name="gawd_metric" id="gawd_metric" class="gawd_draw_analytics load_tooltip" data-hint="Choose a metric to view overview graph.">
205
- <option value="sessions"><?php echo __('Sessions', 'gawd'); ?></option>
206
- <option value="percentNewSessions"><?php echo __('% New Sessions', 'gawd'); ?></option>
207
- <option value="users" ><?php echo __('Users', 'gawd'); ?></option>
208
- <option value="bounceRate" ><?php echo __('Bounce Rate', 'gawd'); ?></option>
209
- <option value="avgSessionDuration" ><?php echo __('Avg Session Duration', 'gawd'); ?></option>
210
- <option value="pageviews" ><?php echo __('Pageviews', 'gawd'); ?></option>
211
- <option value="pageviewsPerSession" ><?php echo __('Pages/Session', 'gawd'); ?></option>
212
- </select>
213
- </div>
214
- <div id="metric_compare">
215
- <select name="gawd_metric_compare" id="gawd_metric_compare" class="gawd_draw_analytics load_tooltip" data-hint="Select the second metric to compare reports.">
216
- <option value="0"><?php echo __('None', 'gawd'); ?></option>
217
- <option value="sessions"><?php echo __('Sessions', 'gawd'); ?></option>
218
- <option value="percentNewSessions"><?php echo __('% New Sessions', 'gawd'); ?></option>
219
- <option value="users" ><?php echo __('Users', 'gawd'); ?></option>
220
- <option value="bounceRate" ><?php echo __('Bounce Rate', 'gawd'); ?></option>
221
- <option value="avgSessionDuration" ><?php echo __('Avg Session Duration', 'gawd'); ?></option>
222
- <option value="pageviews" ><?php echo __('Pageviews', 'gawd'); ?></option>
223
- <option value="pageviewsPerSession" ><?php echo __('Pages/Session', 'gawd'); ?></option>
224
- </select>
225
- <img src="<?php echo GAWD_URL. '/assets/cleardot.gif';?>"/>
226
- </div>
227
- <?php
228
- }
229
- elseif($tab == 'eventLabel' || $tab == 'eventAction' || $tab == 'eventCategory'){
230
- ?>
231
- <div id="first_metric" >
232
- <select name="gawd_metric" id="gawd_metric" class="gawd_draw_analytics load_tooltip" data-hint="Choose a metric to view overview graph.">
233
- <option value="totalEvents" ><?php echo __('Total Events', 'gawd'); ?></option>
234
- <option value="uniqueEvents" ><?php echo __('Unique Events', 'gawd'); ?></option>
235
- <option value="eventValue" ><?php echo __('Event Value', 'gawd'); ?></option>
236
- <option value="avgEventValue" ><?php echo __('Average Event Value', 'gawd'); ?></option>
237
- <option value="sessionsWithEvent" ><?php echo __('Session with Event', 'gawd'); ?></option>
238
- <option value="eventsPerSessionWithEvent" ><?php echo __('Events per Session with Event ', 'gawd'); ?></option>
239
- </select>
240
- </div>
241
- <div id="metric_compare">
242
- <select name="gawd_metric_compare" id="gawd_metric_compare" class="gawd_draw_analytics load_tooltip" data-hint="Select the second metric to compare reports.">
243
- <option value="0"><?php echo __('None', 'gawd'); ?></option>
244
- <option value="totalEvents" ><?php echo __('Total Events', 'gawd'); ?></option>
245
- <option value="uniqueEvents" ><?php echo __('Unique Events', 'gawd'); ?></option>
246
- <option value="eventValue" ><?php echo __('Event Value', 'gawd'); ?></option>
247
- <option value="avgEventValue" ><?php echo __('Average Event Value', 'gawd'); ?></option>
248
- <option value="sessionsWithEvent" ><?php echo __('Session with Event', 'gawd'); ?></option>
249
- <option value="eventsPerSessionWithEvent" ><?php echo __('Events per Session with Event ', 'gawd'); ?></option>
250
- </select>
251
- <img src="<?php echo GAWD_URL. '/assets/cleardot.gif';?>"/>
252
- </div>
253
- <?php
254
- }
255
- elseif($tab == 'goals'){
256
- ?>
257
- <div id="first_metric" >
258
- <select name="gawd_metric" id="gawd_metric" class="gawd_draw_analytics load_tooltip" data-hint="Choose a metric to view overview graph.">
259
- <?php
260
- if (!empty($goals)) {
261
- foreach ($goals as $goal) {
262
- echo '<option value="'. $goal['name'] . '">' . $goal['name'] . ' (Goal' . $goal['id'] . ' Completions)' . '</option>';
263
- }
264
- }
265
- ?>
266
- </select>
267
- </div>
268
- <div id="metric_compare">
269
- <select name="gawd_metric_compare" id="gawd_metric_compare" class="gawd_draw_analytics load_tooltip" data-hint="Select the second metric to compare reports.">
270
- <option value="0"><?php echo __('None', 'gawd'); ?></option>
271
- <?php
272
- if (!empty($goals)) {
273
- foreach ($goals as $goal) {
274
- echo '<option value="' . $goal['name'] . '">' . $goal['name'] . ' (Goal' . $goal['id'] . ' Completions)' . '</option>';
275
- }
276
- }
277
- ?>
278
- </select>
279
- <img src="<?php echo GAWD_URL. '/assets/cleardot.gif';?>"/>
280
- </div>
281
- <?php
282
- }
283
- elseif($tab == 'siteSpeed'){
284
- ?>
285
- <div id="first_metric" >
286
- <select name="gawd_metric" id="gawd_metric" class="gawd_draw_analytics load_tooltip" data-hint="Choose a metric to view overview graph.">
287
- <option value="avgPageLoadTime" ><?php echo __('Avg. Page Load Time', 'gawd'); ?></option>
288
- <option value="avgRedirectionTime" ><?php echo __('Avg. Redirection Time', 'gawd'); ?></option>
289
- <option value="avgServerResponseTime" ><?php echo __('Avg. Server Response Time', 'gawd'); ?></option>
290
- <option value="avgPageDownloadTime" ><?php echo __('Avg. Page Download Time', 'gawd'); ?></option>
291
- </select>
292
- </div>
293
- <div id="metric_compare">
294
- <select name="gawd_metric_compare" id="gawd_metric_compare" class="gawd_draw_analytics load_tooltip" data-hint="Select the second metric to compare reports.">
295
- <option value="0"><?php echo __('None', 'gawd'); ?></option>
296
- <option value="avgPageLoadTime" ><?php echo __('Avg. Page Load Time', 'gawd'); ?></option>
297
- <option value="avgRedirectionTime" ><?php echo __('Avg. Redirection Time', 'gawd'); ?></option>
298
- <option value="avgServerResponseTime" ><?php echo __('Avg. Server Response Time', 'gawd'); ?></option>
299
- <option value="avgPageDownloadTime" ><?php echo __('Avg. Page Download Time', 'gawd'); ?></option>
300
- </select>
301
- <img src="<?php echo GAWD_URL. '/assets/cleardot.gif';?>"/>
302
- </div>
303
- <?php
304
- }
305
- elseif($tab == 'adsense'){
306
- ?>
307
- <div id="first_metric" >
308
- <select name="gawd_metric" id="gawd_metric" class="gawd_draw_analytics load_tooltip" data-hint="Choose a metric to view overview graph.">
309
- <option value="adsenseRevenue" ><?php echo __('AdSense Revenue', 'gawd'); ?></option>
310
- <option value="adsenseAdsClicks" ><?php echo __('AdSense Ads Clicked', 'gawd'); ?></option>
311
- </select>
312
- </div>
313
- <div id="metric_compare">
314
- <select name="gawd_metric_compare" id="gawd_metric_compare" class="gawd_draw_analytics load_tooltip" data-hint="Select the second metric to compare reports.">
315
- <option value="0"><?php echo __('None', 'gawd'); ?></option>
316
- <option value="adsenseRevenue" ><?php echo __('AdSense Revenue', 'gawd'); ?></option>
317
- <option value="adsenseAdsClicks" ><?php echo __('AdSense Ads Clicked', 'gawd'); ?></option>
318
- </select>
319
- <img src="<?php echo GAWD_URL. '/assets/cleardot.gif';?>"/>
320
- </div>
321
- <?php
322
- }
323
- elseif($tab == 'socialActivityNetworkAction' || $tab == 'socialActivityAction' || $tab == 'socialActivityTagsSummary' || $tab == 'socialActivityPost' || $tab == 'socialActivityTimestamp' || $tab == 'socialActivityUserProfileUrl' || $tab == 'socialActivityContentUrl' || $tab == 'socialActivityUserPhotoUrl' || $tab == 'socialActivityUserHandle' || $tab == 'socialActivityEndorsingUrl' || $tab == 'socialEndorsingUrl' || $tab == 'socialActivityDisplayName'){
324
- ?>
325
- <div id="first_metric" >
326
- <select name="gawd_metric" id="gawd_metric" class="gawd_draw_analytics load_tooltip" data-hint="Choose a metric to view overview graph.">
327
- <option value="socialActivities" ><?php echo __('Social Activity', 'gawd'); ?></option>
328
- </select>
329
- </div>
330
- <?php
331
- }
332
- elseif($tab == 'adGroup'){
333
- ?>
334
- <div id="first_metric" >
335
- <select name="gawd_metric" id="gawd_metric" class="gawd_draw_analytics load_tooltip" data-hint="Choose a metric to view overview graph.">
336
- <option value="adClicks" ><?php echo __('Clicks', 'gawd'); ?></option>
337
- <option value="adCost" ><?php echo __('Cost', 'gawd'); ?></option>
338
- </select>
339
- </div>
340
- <div id="metric_compare">
341
- <select name="gawd_metric_compare" id="gawd_metric_compare" class="gawd_draw_analytics load_tooltip" data-hint="Select the second metric to compare reports.">
342
- <option value="0"><?php echo __('None', 'gawd'); ?></option>
343
- <option value="adClicks" ><?php echo __('Clicks', 'gawd'); ?></option>
344
- <option value="adCost" ><?php echo __('Cost', 'gawd'); ?></option>
345
- </select>
346
- <img src="<?php echo GAWD_URL. '/assets/cleardot.gif';?>"/>
347
- </div>
348
- <?php
349
- }
350
- elseif($tab == 'productCategory' || $tab == 'productName' || $tab == 'productSku'){
351
- ?>
352
- <div id="first_metric" >
353
- <select name="gawd_metric" id="gawd_metric" class="gawd_draw_analytics load_tooltip" data-hint="Choose a metric to view overview graph.">
354
- <option value="itemRevenue" ><?php echo __('Revenue', 'gawd'); ?></option>
355
- <option value="uniquePurchases" ><?php echo __('Unique Purchases', 'gawd'); ?></option>
356
- <option value="itemQuantity" ><?php echo __('Quantity', 'gawd'); ?></option>
357
- <option value="itemsPerPurchase" ><?php echo __('Average QTY', 'gawd'); ?></option>
358
- </select>
359
- </div>
360
- <div id="metric_compare">
361
- <select name="gawd_metric_compare" id="gawd_metric_compare" class="gawd_draw_analytics load_tooltip" data-hint="Select the second metric to compare reports.">
362
- <option value="0"><?php echo __('None', 'gawd'); ?></option>
363
- <option value="itemRevenue" ><?php echo __('Revenue', 'gawd'); ?></option>
364
- <option value="uniquePurchases" ><?php echo __('Unique Purchases', 'gawd'); ?></option>
365
- <option value="itemQuantity" ><?php echo __('Quantity', 'gawd'); ?></option>
366
- <option value="itemsPerPurchase" ><?php echo __('Average QTY', 'gawd'); ?></option>
367
- </select>
368
- <img src="<?php echo GAWD_URL. '/assets/cleardot.gif';?>"/>
369
- </div>
370
- <?php
371
- }
372
- elseif($tab == 'transactionId'){
373
- ?>
374
- <div id="first_metric" >
375
- <select name="gawd_metric" id="gawd_metric" class="gawd_draw_analytics load_tooltip" data-hint="Choose a metric to view overview graph.">
376
- <option value="transactionRevenue" ><?php echo __('Revenue', 'gawd'); ?></option>
377
- <option value="transactionTax" ><?php echo __('Tax', 'gawd'); ?></option>
378
- <option value="transactionShipping" ><?php echo __('Shipping', 'gawd'); ?></option>
379
- <option value="itemQuantity" ><?php echo __('Quantity', 'gawd'); ?></option>
380
- </select>
381
- </div>
382
- <div id="metric_compare">
383
- <select name="gawd_metric_compare" id="gawd_metric_compare" class="gawd_draw_analytics load_tooltip" data-hint="Select the second metric to compare reports.">
384
- <option value="0"><?php echo __('None', 'gawd'); ?></option>
385
- <option value="transactionRevenue" ><?php echo __('Revenue', 'gawd'); ?></option>
386
- <option value="transactionTax" ><?php echo __('Tax', 'gawd'); ?></option>
387
- <option value="transactionShipping" ><?php echo __('Shipping', 'gawd'); ?></option>
388
- <option value="itemQuantity" ><?php echo __('Quantity', 'gawd'); ?></option>
389
- </select>
390
- <img src="<?php echo GAWD_URL. '/assets/cleardot.gif';?>"/>
391
- </div>
392
- <?php
393
- }
394
- elseif($tab == 'sales_performance'){
395
- ?>
396
- <div id="first_metric" >
397
- <select name="gawd_metric" id="gawd_metric" class="gawd_draw_analytics load_tooltip" data-hint="Choose a metric to view overview graph.">
398
- <option value="transactionRevenue" ><?php echo __('Revenue', 'gawd'); ?></option>
399
- <option value="transactionsPerSession" ><?php echo __('Ecommerce Conversion Rate', 'gawd'); ?></option>
400
- </select>
401
- </div>
402
-
403
- <?php
404
- }
405
- elseif($tab == 'daysToTransaction'){
406
- ?>
407
- <div id="first_metric" >
408
- <select name="gawd_metric" id="gawd_metric" class="gawd_draw_analytics load_tooltip" data-hint="Choose a metric to view overview graph.">
409
- <option value="transactions" ><?php echo __('Transactions', 'gawd'); ?></option>
410
- </select>
411
- </div>
412
-
413
- <?php
414
- }
415
- elseif(strpos($tab,'custom_report')!==false){
416
- $tab = substr($page,14);
417
- ?>
418
- <div id="first_metric" >
419
- <select name="gawd_metric" id="gawd_metric" class="gawd_draw_analytics load_tooltip" data-hint="Choose a metric to view overview graph.">
420
- <option value="<?php echo $get_custom_reports[$tab]['metric'];?>" ><?php echo __(preg_replace('!\s+!',' ',trim(ucfirst(preg_replace('/([A-Z])/', ' $1', $get_custom_reports[$tab]['metric'])))), 'gawd'); ?></option>
421
-
422
- </select>
423
- </div>
424
- <?php
425
- $tab = $get_custom_reports[$tab]['dimension'];
426
- }
427
- elseif($tab == 'custom') { ?>
428
- <div id="first_metric" >
429
- <select name="gawd_metric" id="gawd_metric" class="gawd_draw_analytics load_tooltip" data-hint="Choose a metric to view overview graph.">
430
- <option value="sessions"><?php echo __('Sessions', 'gawd'); ?></option>
431
- <option value="percentNewSessions"><?php echo __('% New Sessions', 'gawd'); ?></option>
432
- <option value="users" ><?php echo __('Users', 'gawd'); ?></option>
433
- <option value="bounceRate" ><?php echo __('Bounce Rate', 'gawd'); ?></option>
434
- <option value="avgSessionDuration" ><?php echo __('Avg Session Duration', 'gawd'); ?></option>
435
- <option value="pageviews" ><?php echo __('Pageviews', 'gawd'); ?></option>
436
- <option value="pageviewsPerSession" ><?php echo __('Pages/Session', 'gawd'); ?></option>
437
- </select>
438
- </div>
439
- <div id="metric_compare">
440
- <?php
441
- $dimensions = $gawd_client->get_custom_dimensions();
442
- if('no_custom_dimensions_exist' == $dimensions) { ?>
443
- <select class="load_tooltip" data-hint="Select the second metric to compare reports.">
444
- <option value="0">There are no custom dimensions set for current profile.</option>
445
- </select>
446
- <?php } else { ?>
447
- <select name="gawd_custom_option" id="gawd_custom_option" class="gawd_draw_analytics">
448
- <?php foreach ($dimensions as $dimension) : ?>
449
- <option value="<?php echo $dimension['id'] ?>"><?php echo $dimension['name'] ?></option>
450
- <?php endforeach; ?>
451
- </select>
452
- <img src="<?php echo GAWD_URL. '/assets/cleardot.gif';?>"/>
453
- <?php }
454
- ?>
455
- </div>
456
- <?php } ?>
457
- </div>
458
-
459
- <input id="gawd_tab" type="hidden" value="<?php echo $tab; ?>">
460
-
461
- <?php if($tab != 'custom' && $tab != 'pagePath' && $tab != 'landingPagePath' && $tab != 'realTime' && $tab != 'daysToTransaction' && $tab != 'sales_performance' && strpos($_GET['tab'],'custom_report') === false) { ?>
462
- <div class="vs_image" class="gawd_metrics">
463
- <img width="30px" src="<?php echo GAWD_URL;?>/assets/vs.png">
464
- </div>
465
- <?php } ?>
466
- <div class='clear'></div>
467
- </div>
468
- <?php if($tab != 'realTime') { ?>
469
- <div id="date_chart_conteiner" class="float_conteiner">
470
- <div class="gawd_row load_tooltip" data-hint="Choose Line, Pie or Column chart type to view your Google Analytics report with.">
471
- <div id="gawd_text" class="gawd_text">
472
- CHART
473
- </div>
474
- <div class="gawd_content" id="gawd_content_chart" >
475
- <select name="gawd_chart_type" id="gawd_chart_type" class="gawd_draw_analytics">
476
- <?php if($tab == 'userGender' || $tab == 'userAgeBracket' || $tab == 'userType' || $tab == 'country' || $tab == 'language' || $tab == 'mobileDeviceInfo' || $tab == 'deviceCategory' || $tab == 'operatingSystem' || $tab == 'browser'){
477
- ?>
478
- <option value="pie" ><?php echo __('Pie Chart', 'gawd'); ?></option>
479
- <option value="column" ><?php echo __('Columns', 'gawd'); ?></option>
480
- <option value="line" ><?php echo __('Line Chart', 'gawd'); ?></option>
481
- <?php
482
- }
483
- else{
484
- ?>
485
- <option value="line" ><?php echo __('Line Chart', 'gawd'); ?></option>
486
- <option value="pie" ><?php echo __('Pie Chart', 'gawd'); ?></option>
487
- <option value="column" ><?php echo __('Columns', 'gawd'); ?></option>
488
- <?php };?>
489
- </select>
490
- </div>
491
- <div class='clear'></div>
492
- </div >
493
- <div class="gawd_row load_tooltip" data-hint="Select one of predefined date ranges or specify a custom period for your report.">
494
- <div class="gawd_text" >
495
- DATE
496
- </div>
497
- <div class="gawd_content" id="gawd_content_range" >
498
- <div id="reportrange" class="pull-right" style="float:none !important">
499
- <span></span> <b class="caret"></b>
500
- </div>
501
- <input type="hidden" id="gawd_start_end_date"/>
502
- </div>
503
- <div class='clear'></div>
504
- </div>
505
- <div class='clear'></div>
506
- </div>
507
- <?php } ?>
508
- <div id="compare_time_conteiner" class="float_conteiner">
509
- <?php if(($tab == 'date') || ($tab == 'adsense') || ($tab == 'siteSpeed') || $tab == 'sales_performance' || $tab == 'pagePath' || $tab == 'landingPagePath'){ ?>
510
- <div class="gawd_date_filter_container load_tooltip" data-hint="Set the scale of your statistics graph. It will separate graph results hourly, daily, weekly and monthly.">
511
- <ul class="gawd_list">
512
- <li class="gawd_list_item" id="gawd_hour"><a href='#' class="gawd_filter_item" data-type="hour">Hour</a></li>
513
- <li class="gawd_list_item" id="gawd_day"><a href='#' class="gawd_filter_item" data-type="date">Day</a></li>
514
- <li class="gawd_list_item" id="gawd_week"><a href='#' class="gawd_filter_item" data-type="week">Week</a></li>
515
- <li class="gawd_list_item" id="gawd_month"><a href='#' class="gawd_filter_item" data-type="month">Month</a></li>
516
- </ul>
517
- </div>
518
- <div id="compare_datepicker_wraper" class="load_tooltip" data-hint="Measure the results of Google Analytics tracking of two periods. Select Previous Period, Previous Year, or define a custom period using the datepicker.">COMPARE DATE</div>
519
- <div id="" class="pull-right" style="float:none !important">
520
- </div>
521
- <input type="hidden" id="gawd_start_end_date_compare"/>
522
- <div class='clear'></div>
523
- <?php } ?>
524
- </div>
525
- <div class='clear'></div>
526
- </div>
527
- <?php wp_nonce_field('gawd_save_form', 'gawd_save_form_fild'); ?>
528
- </form>
529
-
530
- <div class="gawd_chart_conteiner">
531
- <div id="opacity_div" style="display: none; background-color: rgba(0, 0, 0, 0.2); position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 99998;"></div>
532
- <div id="loading_div" style="display:none; text-align: center; position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 99999;">
533
- <img src="<?php echo GAWD_URL . '/assets/ajax_loader.gif'; ?>" style="margin-top: 200px; width:50px;">
534
- </div>
535
- <div id="chartdiv"></div>
536
- <?php if($tab != 'realTime'){
537
- ?>
538
- <div id="gawd_buttons">
539
- <span id="country_filter_reset" class="button_gawd">Back</span>
540
- <span class='clear'></span>
541
- <input class="button_gawd" type="button" id="gawd_export_buttons" value="EXPORT"/>
542
- <input class="button_gawd load_tooltip" type="button" id="gawd_email_button" data-hint="Click to forward this report to selected email recipients, or schedule emails to be sent out periodically." value="EMAIL"/>
543
- <div class="gawd_exports">
544
- <a class='button gawd_export_button_csv' href="">CSV</a>
545
- <a class='button gawd_export_button_pdf' href="#">PDF</a>
546
- </div>
547
- </div>
548
- <?php };?>
549
- <table id="griddiv"></table>
550
- <div id="pager"></div>
551
- </div>
552
- </div>
553
- <div class='clear'></div>
554
-
555
- </div>
556
- <?php //get parameters for export?>
557
-
558
- <div class="gawd_email_popup_overlay">
559
- </div>
560
- <div class="gawd_email_popup">
561
- <a href="#" class="gawd_btn">X</a>
562
- <div class="gawd_email_body">
563
- <form method="post" action="" id="gawd_email_form">
564
- <div class="gawd_email_row load_tooltip" data-hint="E-mail to send reports from. You can change it from WordPress Settings > General > Email Address.">
565
- <div class="gawd_email_label">From</div>
566
- <div class="gawd_email_input gawd_email_input_from">
567
- <?php echo get_option('admin_email'); ?>
568
- </div>
569
- <div class='clear'></div>
570
- </div>
571
- <div class="gawd_email_row load_tooltip" data-hint="Define one or more email report recipients separated by commas.">
572
- <div class="gawd_email_label">To</div>
573
- <div class="gawd_email_input">
574
- <input id="gawd_email_to" name="gawd_email_to" class="" type="text" value="">
575
- </div>
576
- <div class='clear'></div>
577
- </div>
578
- <div class="gawd_email_row load_tooltip" data-hint="Set the subject for email reports.">
579
- <div class="gawd_email_label">Subject</div>
580
- <div class="gawd_email_input">
581
- <input class="gawd_email_subject" name="gawd_email_subject" class="" type="text" value="">
582
- </div>
583
- <div class='clear'></div>
584
- </div>
585
- <div class="gawd_email_row">
586
- <div class="gawd_email_attachemnt load_tooltip" data-hint="Select type for report attachments, CSV or PDF.">Attachment</div>
587
- <div class="gawd_email_input_attachment" >
588
- <select id="gawd_attachment_type" name="export_type">
589
- <option value='csv'>CSV</option>
590
- <option value='pdf'>PDF</option>
591
- </select>
592
- </div>
593
- <div class="gawd_email_input gawd_email_month_day_div" id="gawd_email_month_day" data-hint="Select the day of month to send report on.">
594
- <div class="gawd_email_day_of_week">Day of Month</div>
595
- </div>
596
- <div class="gawd_email_input gawd_email_week_day_div" data-hint="Click on weekday to choose email report sending day." id="gawd_email_week_day">
597
- <div class="gawd_email_day_of_week">Day of Week</div>
598
- <input type="hidden" name="gawd_email_week_day" id="gawd_email_week_day_hidden" >
599
- </div>
600
- <div class='clear'></div>
601
- </div>
602
- <div class="gawd_email_row">
603
- <div class="gawd_email_frequency" data-hint="Send email report Once or set its frequency to Daily, Weekly or Monthly.">Frequency</div>
604
- <div class="gawd_email_input_frequency" id="gawd_email_period">
605
- <select name="gawd_email_period">
606
- <option value="once">Once</option>
607
- <option value="daily">Daily</option>
608
- <option value="gawd_weekly">Weekly</option>
609
- <option value="gawd_monthly">Monthly</option>
610
- </select>
611
- </div>
612
- <div class="gawd_email_input gawd_email_month_day_div" id="gawd_email_month_day">
613
- <div class="gawd_email_month_day">
614
- <select id="gawd_email_month_day_select" name="gawd_email_month_day">
615
- <?php
616
- for($i=1; $i<29; $i++){
617
-
618
- echo '<option value="'.$i.'">'.$i.'</option>';
619
- }
620
- ?>
621
- <option value="last">Last Day</option>
622
- </select>
623
- </div>
624
- <div class='clear'></div>
625
- </div>
626
- <div class="gawd_email_input gawd_email_week_day_div" id="gawd_email_week_day">
627
- <div class="gawd_email_week_days">
628
- <ul class="gawd_email_week_day_ul">
629
- <li class="gawd_email_week_day" data-atribute="sunday">Sun</li>
630
- <li class="gawd_email_week_day" data-atribute="monday">Mon</li>
631
- <li class="gawd_email_week_day" data-atribute="tuesday">Tue</li>
632
- <li class="gawd_email_week_day" data-atribute="wednsday">Wed</li>
633
- <li class="gawd_email_week_day" data-atribute="thursday">Thu</li>
634
- <li class="gawd_email_week_day" data-atribute="friday">Fri</li>
635
- <li class="gawd_email_week_day" data-atribute="saturday">Sat</li>
636
- </ul>
637
- </div>
638
- <input type="hidden" name="gawd_email_week_day" id="gawd_email_week_day_hidden" >
639
- </div>
640
- <div class='clear'></div>
641
- </div>
642
- <div class="gawd_email_row gawd_email_message_label" data-hint="Compose email content to be sent with your report.">
643
- Additional Message
644
- </div>
645
- <div class="gawd_email_row gawd_email_message">
646
- <textarea name="gawd_email_body" id="gawd_email_body"></textarea>
647
- </div>
648
- <input name="gawd_email_from" id="gawd_email_from" class="" type="hidden" value="<?php echo get_option('admin_email'); ?>">
649
- <input name="gawd_metric" id="gawd_email_metric" class="" type="hidden" value="">
650
- <input name="gawd_metric_compare" id="gawd_metric_compare" class="" type="hidden" value="">
651
- <input name="gawd_dimension" id="gawd_dimension" class="" type="hidden" value="<?php echo $tab; ?>">
652
- <input name="gawd_start_date" id="gawd_start_date" class="" type="hidden" value="">
653
- <input name="gawd_end_date" id="gawd_end_date" class="" type="hidden" value="">
654
- <input name="action" id="" class="" type="hidden" value="gawd_export">
655
- <input name="report_type" id="report_type" class="" type="hidden" value="email">
656
- <div class="gawd_email_send" id="email_submit">
657
- Send
658
- </div>
659
- <?php wp_nonce_field('gawd_save_form', 'gawd_save_form_fild'); ?>
660
- </form>
661
- </div>
662
- <div class="email_message_cont"></div>
663
- </div>
664
- <canvas id='canvass' style="display:none"></canvas>
665
- <input id="first_data" class="" type="hidden" value="">
666
- <input id="second_data" class="" type="hidden" value="">
667
- <input id="dimension" class="" type="hidden" value="">
668
- <input id="first_data_sum" class="" type="hidden" value="">
669
- <input id="second_data_sum" class="" type="hidden" value="">
670
- <input id="second_start_date" class="" type="hidden" value="">
 
 
 
 
671
  <input id="second_end_date" class="" type="hidden" value="">
1
+ <?php
2
+ $goals = $gawd_client->get_management_goals();
3
+ if (!is_array($goals)) {
4
+ $goals = array();
5
+ }
6
+ $get_custom_reports = get_option('gawd_custom_reports');
7
+ if(!isset($_GET['tab'])){
8
+ $_GET['tab'] = 'general';
9
+ }
10
+ $tabs = get_option('gawd_menu_items');
11
+ $gawd_zoom_message = get_option('gawd_zoom_message');
12
+ $current_user = get_current_user_id();
13
+ $saved_user_menues = get_option('gawd_menu_for_user');
14
+ if($current_user != 1 && isset($saved_user_menues[$current_user])){
15
+ $tabs = array_intersect_key($tabs, $saved_user_menues[$current_user]);
16
+ }
17
+ ?>
18
+ <div style="font-size: 14px; font-weight: bold; margin:15px 0">
19
+ Keep track of all Google Analytics reports on this page. Read more in User Guide.
20
+ <a style="color: #00A0D2; text-decoration: none;" target="_blank" href="https://web-dorado.com/wordpress-google-analytics/reports.html">Read More in User Manual.</a>
21
+ </div>
22
+ <form method="post" id="gawd_view">
23
+
24
+ <div class="gawd_profiles" id="gawd_profile_wrapper">
25
+ <?php if($gawd_zoom_message === false){
26
+ ?>
27
+ <div class="gawd_zoom_message">
28
+ <span>You can zoom chart by dragging the mouse over it</span><input class="button_gawd" type="button" id="gawd_got_it" value="GOT IT"/>
29
+ </div>
30
+ <?php
31
+ }
32
+ ?>
33
+ <select class="gawd_profile_select" id="gawd_id" name="gawd_id" onchange="change_account(this)">
34
+ <?php foreach ($profiles as $property_name => $property): ?>
35
+ <optgroup label="<?php echo $property_name; ?>">
36
+ <?php foreach ($property as $profile):
37
+ $webPropertyId = $profile['webPropertyId'];
38
+ $id = $profile['id'];
39
+ $name = $profile['name'];
40
+ $selected = '';
41
+ if($id == $gawd_user_data['gawd_id']){
42
+ $selected = 'selected="selected"';
43
+ }
44
+ ?>
45
+ <option value="<?php echo $id; ?>" <?php echo $selected; ?>><?php echo $property_name.' - '.$name ; ?></option>
46
+ <?php endforeach ?>
47
+ </optgroup>
48
+ <?php endforeach ?>
49
+ </select>
50
+ <div class="clear"></div>
51
+ <input type="hidden" name='web_property_name' id='web_property_name'/>
52
+ </div>
53
+ <div id="gawd_body">
54
+ <?php
55
+ include_once('dashboard_menu.php');
56
+ $page = isset($_GET['tab']) ? $_GET['tab'] : 'overview';
57
+ if(strpos($page,'custom_report')!==false){
58
+ $tab = $page;
59
+ }
60
+ else{
61
+ switch ($page) {
62
+ case 'general':
63
+ $tab = 'date';
64
+ break;
65
+ case 'location':
66
+ $tab = 'country';
67
+ break;
68
+ case 'behaviour':
69
+ $tab = 'userType';
70
+ break;
71
+ case 'engagement':
72
+ $tab = 'sessionDurationBucket';
73
+ break;
74
+ case 'pagePath':
75
+ $tab = 'pagePath';
76
+ break;
77
+ case 'landingPagePath':
78
+ $tab = 'landingPagePath';
79
+ break;
80
+ case 'language':
81
+ $tab = 'language';
82
+ break;
83
+ case 'browser':
84
+ $tab = 'browser';
85
+ break;
86
+ case 'os':
87
+ $tab = 'operatingSystem';
88
+ break;
89
+ case 'device_overview':
90
+ $tab = 'deviceCategory';
91
+ break;
92
+ case 'devices':
93
+ $tab = 'mobileDeviceInfo';
94
+ break;
95
+ case 'realtime':
96
+ $tab = 'realTime';
97
+ break;
98
+ case 'custom':
99
+ $tab = 'custom';
100
+ break;
101
+ case 'eventsCategory':
102
+ $tab = 'eventCategory';
103
+ break;
104
+ case 'eventsAction':
105
+ $tab = 'eventAction';
106
+ break;
107
+ case 'eventsLabel':
108
+ $tab = 'eventLabel';
109
+ break;
110
+ case 'goals':
111
+ $tab = 'goals';
112
+ break;
113
+ case 'userGender':
114
+ $tab = 'userGender';
115
+ break;
116
+ case 'userAge':
117
+ $tab = 'userAgeBracket';
118
+ break;
119
+ case 'adWords':
120
+ $tab = 'adGroup';
121
+ break;
122
+ case 'otherCategory':
123
+ $tab = 'interestOtherCategory';
124
+ break;
125
+ case 'affinityCategory':
126
+ $tab = 'interestAffinityCategory';
127
+ break;
128
+ case 'inMarket':
129
+ $tab = 'interestInMarketCategory';
130
+ break;
131
+ case 'trafficSource':
132
+ $tab = 'source';
133
+ break;
134
+ case 'siteSpeed':
135
+ $tab = 'siteSpeed';
136
+ break;
137
+ case 'adsense':
138
+ $tab = 'adsense';
139
+ break;
140
+ case 'productName':
141
+ $tab = 'productName';
142
+ break;
143
+ case 'productCategory':
144
+ $tab = 'productCategory';
145
+ break;
146
+ case 'productSku':
147
+ $tab = 'productSku';
148
+ break;
149
+ case 'transactionId':
150
+ $tab = 'transactionId';
151
+ break;
152
+ case 'daysToTransaction':
153
+ $tab = 'daysToTransaction';
154
+ break;
155
+ case 'sales_performance':
156
+ $tab = 'sales_performance';
157
+ break;
158
+ default:
159
+ if($tabs != ''){
160
+ $tab = key($tabs);
161
+ }
162
+ else{
163
+ $tab = 'date';
164
+ }
165
+ break;
166
+ }
167
+ }
168
+ ?>
169
+ <input id="gawd_filter_val" type="hidden" value="">
170
+ <div class="resp_metrics_menu"><div class="menu_metrics_img"></div><div class="button_label">FILTERS</div><div class="clear"></div></div>
171
+ <div id="gawd_right_conteiner">
172
+ <h3 id="gawd_page_title">Audience</h3>
173
+ <div class="filter_conteiner">
174
+ <div id="metric_conteiner" class="float_conteiner">
175
+ <div class="gawd_metrics">
176
+ <?php
177
+ if($tab == 'date'){
178
+ ?>
179
+ <div id="first_metric" >
180
+ <select name="gawd_metric" id="gawd_metric" class="gawd_draw_analytics load_tooltip" data-hint="Choose a metric to view overview graph.">
181
+ <option value="sessions"><?php echo __('Sessions', 'gawd'); ?></option>
182
+ <option value="percentNewSessions"><?php echo __('% New Sessions', 'gawd'); ?></option>
183
+ <option value="users" ><?php echo __('Users', 'gawd'); ?></option>
184
+ <option value="bounceRate" ><?php echo __('Bounce Rate', 'gawd'); ?></option>
185
+ <option value="avgSessionDuration" ><?php echo __('Avg Session Duration', 'gawd'); ?></option>
186
+ <option value="pageviews" ><?php echo __('Pageviews', 'gawd'); ?></option>
187
+ <option value="pageviewsPerSession" ><?php echo __('Pages/Session', 'gawd'); ?></option>
188
+ </select>
189
+ </div>
190
+ <div id="metric_compare">
191
+ <select name="gawd_metric_compare" id="gawd_metric_compare" class="gawd_draw_analytics load_tooltip" data-hint="Select the second metric to compare reports.">
192
+ <option value="0"><?php echo __('None', 'gawd'); ?></option>
193
+ <option value="sessions"><?php echo __('Sessions', 'gawd'); ?></option>
194
+ <option value="percentNewSessions"><?php echo __('% New Sessions', 'gawd'); ?></option>
195
+ <option value="users" ><?php echo __('Users', 'gawd'); ?></option>
196
+ <option value="bounceRate" ><?php echo __('Bounce Rate', 'gawd'); ?></option>
197
+ <option value="avgSessionDuration" ><?php echo __('Avg Session Duration', 'gawd'); ?></option>
198
+ <option value="pageviews" ><?php echo __('Pageviews', 'gawd'); ?></option>
199
+ <option value="pageviewsPerSession" ><?php echo __('Pages/Session', 'gawd'); ?></option>
200
+ </select>
201
+ <img src="<?php echo GAWD_URL. '/assets/cleardot.gif';?>"/>
202
+ </div>
203
+ <?php
204
+ }
205
+ elseif($tab == 'inMarket' || $tab == 'affinityCategory' || $tab == 'otherCategory' || $tab == 'country' || $tab == 'language' || $tab == 'userType' || $tab == 'sessionDurationBucket' || $tab == 'userAgeBracket' || $tab == 'userGender' || $tab == 'mobileDeviceInfo' || $tab == 'deviceCategory' || $tab == 'operatingSystem' || $tab == 'browser' || $tab =='interestInMarketCategory' || $tab == 'interestAffinityCategory' || $tab == 'interestOtherCategory' || $tab == 'source'){
206
+ ?>
207
+ <div id="first_metric" >
208
+ <select name="gawd_metric" id="gawd_metric" class="gawd_draw_analytics load_tooltip" data-hint="Choose a metric to view overview graph.">
209
+ <option value="sessions"><?php echo __('Sessions', 'gawd'); ?></option>
210
+ <option value="percentNewSessions"><?php echo __('% New Sessions', 'gawd'); ?></option>
211
+ <option value="users" ><?php echo __('Users', 'gawd'); ?></option>
212
+ <option value="bounceRate" ><?php echo __('Bounce Rate', 'gawd'); ?></option>
213
+ <option value="avgSessionDuration" ><?php echo __('Avg Session Duration', 'gawd'); ?></option>
214
+ <option value="pageviews" ><?php echo __('Pageviews', 'gawd'); ?></option>
215
+ <option value="pageviewsPerSession" ><?php echo __('Pages/Session', 'gawd'); ?></option>
216
+ </select>
217
+ </div>
218
+ <div id="metric_compare">
219
+ <select name="gawd_metric_compare" id="gawd_metric_compare" class="gawd_draw_analytics load_tooltip" data-hint="Select the second metric to compare reports.">
220
+ <option value="0"><?php echo __('None', 'gawd'); ?></option>
221
+ <option value="sessions"><?php echo __('Sessions', 'gawd'); ?></option>
222
+ <option value="percentNewSessions"><?php echo __('% New Sessions', 'gawd'); ?></option>
223
+ <option value="users" ><?php echo __('Users', 'gawd'); ?></option>
224
+ <option value="bounceRate" ><?php echo __('Bounce Rate', 'gawd'); ?></option>
225
+ <option value="avgSessionDuration" ><?php echo __('Avg Session Duration', 'gawd'); ?></option>
226
+ <option value="pageviews" ><?php echo __('Pageviews', 'gawd'); ?></option>
227
+ <option value="pageviewsPerSession" ><?php echo __('Pages/Session', 'gawd'); ?></option>
228
+ </select>
229
+ <img src="<?php echo GAWD_URL. '/assets/cleardot.gif';?>"/>
230
+ </div>
231
+ <?php
232
+ }
233
+ elseif($tab == 'eventLabel' || $tab == 'eventAction' || $tab == 'eventCategory'){
234
+ ?>
235
+ <div id="first_metric" >
236
+ <select name="gawd_metric" id="gawd_metric" class="gawd_draw_analytics load_tooltip" data-hint="Choose a metric to view overview graph.">
237
+ <option value="totalEvents" ><?php echo __('Total Events', 'gawd'); ?></option>
238
+ <option value="uniqueEvents" ><?php echo __('Unique Events', 'gawd'); ?></option>
239
+ <option value="eventValue" ><?php echo __('Event Value', 'gawd'); ?></option>
240
+ <option value="avgEventValue" ><?php echo __('Average Event Value', 'gawd'); ?></option>
241
+ <option value="sessionsWithEvent" ><?php echo __('Session with Event', 'gawd'); ?></option>
242
+ <option value="eventsPerSessionWithEvent" ><?php echo __('Events per Session with Event ', 'gawd'); ?></option>
243
+ </select>
244
+ </div>
245
+ <div id="metric_compare">
246
+ <select name="gawd_metric_compare" id="gawd_metric_compare" class="gawd_draw_analytics load_tooltip" data-hint="Select the second metric to compare reports.">
247
+ <option value="0"><?php echo __('None', 'gawd'); ?></option>
248
+ <option value="totalEvents" ><?php echo __('Total Events', 'gawd'); ?></option>
249
+ <option value="uniqueEvents" ><?php echo __('Unique Events', 'gawd'); ?></option>
250
+ <option value="eventValue" ><?php echo __('Event Value', 'gawd'); ?></option>
251
+ <option value="avgEventValue" ><?php echo __('Average Event Value', 'gawd'); ?></option>
252
+ <option value="sessionsWithEvent" ><?php echo __('Session with Event', 'gawd'); ?></option>
253
+ <option value="eventsPerSessionWithEvent" ><?php echo __('Events per Session with Event ', 'gawd'); ?></option>
254
+ </select>
255
+ <img src="<?php echo GAWD_URL. '/assets/cleardot.gif';?>"/>
256
+ </div>
257
+ <?php
258
+ }
259
+ elseif($tab == 'goals'){
260
+ ?>
261
+ <div id="first_metric" >
262
+ <select name="gawd_metric" id="gawd_metric" class="gawd_draw_analytics load_tooltip" data-hint="Choose a metric to view overview graph.">
263
+ <?php
264
+ if (!empty($goals)) {
265
+ foreach ($goals as $goal) {
266
+ echo '<option value="'. $goal['name'] . '">' . $goal['name'] . ' (Goal' . $goal['id'] . ' Completions)' . '</option>';
267
+ }
268
+ }
269
+ ?>
270
+ </select>
271
+ </div>
272
+ <div id="metric_compare">
273
+ <select name="gawd_metric_compare" id="gawd_metric_compare" class="gawd_draw_analytics load_tooltip" data-hint="Select the second metric to compare reports.">
274
+ <option value="0"><?php echo __('None', 'gawd'); ?></option>
275
+ <?php
276
+ if (!empty($goals)) {
277
+ foreach ($goals as $goal) {
278
+ echo '<option value="' . $goal['name'] . '">' . $goal['name'] . ' (Goal' . $goal['id'] . ' Completions)' . '</option>';
279
+ }
280
+ }
281
+ ?>
282
+ </select>
283
+ <img src="<?php echo GAWD_URL. '/assets/cleardot.gif';?>"/>
284
+ </div>
285
+ <?php
286
+ }
287
+ elseif($tab == 'siteSpeed'){
288
+ ?>
289
+ <div id="first_metric" >
290
+ <select name="gawd_metric" id="gawd_metric" class="gawd_draw_analytics load_tooltip" data-hint="Choose a metric to view overview graph.">
291
+ <option value="avgPageLoadTime" ><?php echo __('Avg. Page Load Time', 'gawd'); ?></option>
292
+ <option value="avgRedirectionTime" ><?php echo __('Avg. Redirection Time', 'gawd'); ?></option>
293
+ <option value="avgServerResponseTime" ><?php echo __('Avg. Server Response Time', 'gawd'); ?></option>
294
+ <option value="avgPageDownloadTime" ><?php echo __('Avg. Page Download Time', 'gawd'); ?></option>
295
+ </select>
296
+ </div>
297
+ <div id="metric_compare">
298
+ <select name="gawd_metric_compare" id="gawd_metric_compare" class="gawd_draw_analytics load_tooltip" data-hint="Select the second metric to compare reports.">
299
+ <option value="0"><?php echo __('None', 'gawd'); ?></option>
300
+ <option value="avgPageLoadTime" ><?php echo __('Avg. Page Load Time', 'gawd'); ?></option>
301
+ <option value="avgRedirectionTime" ><?php echo __('Avg. Redirection Time', 'gawd'); ?></option>
302
+ <option value="avgServerResponseTime" ><?php echo __('Avg. Server Response Time', 'gawd'); ?></option>
303
+ <option value="avgPageDownloadTime" ><?php echo __('Avg. Page Download Time', 'gawd'); ?></option>
304
+ </select>
305
+ <img src="<?php echo GAWD_URL. '/assets/cleardot.gif';?>"/>
306
+ </div>
307
+ <?php
308
+ }
309
+ elseif($tab == 'adsense'){
310
+ ?>
311
+ <div id="first_metric" >
312
+ <select name="gawd_metric" id="gawd_metric" class="gawd_draw_analytics load_tooltip" data-hint="Choose a metric to view overview graph.">
313
+ <option value="adsenseRevenue" ><?php echo __('AdSense Revenue', 'gawd'); ?></option>
314
+ <option value="adsenseAdsClicks" ><?php echo __('AdSense Ads Clicked', 'gawd'); ?></option>
315
+ </select>
316
+ </div>
317
+ <div id="metric_compare">
318
+ <select name="gawd_metric_compare" id="gawd_metric_compare" class="gawd_draw_analytics load_tooltip" data-hint="Select the second metric to compare reports.">
319
+ <option value="0"><?php echo __('None', 'gawd'); ?></option>
320
+ <option value="adsenseRevenue" ><?php echo __('AdSense Revenue', 'gawd'); ?></option>
321
+ <option value="adsenseAdsClicks" ><?php echo __('AdSense Ads Clicked', 'gawd'); ?></option>
322
+ </select>
323
+ <img src="<?php echo GAWD_URL. '/assets/cleardot.gif';?>"/>
324
+ </div>
325
+ <?php
326
+ }
327
+ elseif($tab == 'socialActivityNetworkAction' || $tab == 'socialActivityAction' || $tab == 'socialActivityTagsSummary' || $tab == 'socialActivityPost' || $tab == 'socialActivityTimestamp' || $tab == 'socialActivityUserProfileUrl' || $tab == 'socialActivityContentUrl' || $tab == 'socialActivityUserPhotoUrl' || $tab == 'socialActivityUserHandle' || $tab == 'socialActivityEndorsingUrl' || $tab == 'socialEndorsingUrl' || $tab == 'socialActivityDisplayName'){
328
+ ?>
329
+ <div id="first_metric" >
330
+ <select name="gawd_metric" id="gawd_metric" class="gawd_draw_analytics load_tooltip" data-hint="Choose a metric to view overview graph.">
331
+ <option value="socialActivities" ><?php echo __('Social Activity', 'gawd'); ?></option>
332
+ </select>
333
+ </div>
334
+ <?php
335
+ }
336
+ elseif($tab == 'adGroup'){
337
+ ?>
338
+ <div id="first_metric" >
339
+ <select name="gawd_metric" id="gawd_metric" class="gawd_draw_analytics load_tooltip" data-hint="Choose a metric to view overview graph.">
340
+ <option value="adClicks" ><?php echo __('Clicks', 'gawd'); ?></option>
341
+ <option value="adCost" ><?php echo __('Cost', 'gawd'); ?></option>
342
+ </select>
343
+ </div>
344
+ <div id="metric_compare">
345
+ <select name="gawd_metric_compare" id="gawd_metric_compare" class="gawd_draw_analytics load_tooltip" data-hint="Select the second metric to compare reports.">
346
+ <option value="0"><?php echo __('None', 'gawd'); ?></option>
347
+ <option value="adClicks" ><?php echo __('Clicks', 'gawd'); ?></option>
348
+ <option value="adCost" ><?php echo __('Cost', 'gawd'); ?></option>
349
+ </select>
350
+ <img src="<?php echo GAWD_URL. '/assets/cleardot.gif';?>"/>
351
+ </div>
352
+ <?php
353
+ }
354
+ elseif($tab == 'productCategory' || $tab == 'productName' || $tab == 'productSku'){
355
+ ?>
356
+ <div id="first_metric" >
357
+ <select name="gawd_metric" id="gawd_metric" class="gawd_draw_analytics load_tooltip" data-hint="Choose a metric to view overview graph.">
358
+ <option value="itemRevenue" ><?php echo __('Revenue', 'gawd'); ?></option>
359
+ <option value="uniquePurchases" ><?php echo __('Unique Purchases', 'gawd'); ?></option>
360
+ <option value="itemQuantity" ><?php echo __('Quantity', 'gawd'); ?></option>
361
+ <option value="itemsPerPurchase" ><?php echo __('Average QTY', 'gawd'); ?></option>
362
+ </select>
363
+ </div>
364
+ <div id="metric_compare">
365
+ <select name="gawd_metric_compare" id="gawd_metric_compare" class="gawd_draw_analytics load_tooltip" data-hint="Select the second metric to compare reports.">
366
+ <option value="0"><?php echo __('None', 'gawd'); ?></option>
367
+ <option value="itemRevenue" ><?php echo __('Revenue', 'gawd'); ?></option>
368
+ <option value="uniquePurchases" ><?php echo __('Unique Purchases', 'gawd'); ?></option>
369
+ <option value="itemQuantity" ><?php echo __('Quantity', 'gawd'); ?></option>
370
+ <option value="itemsPerPurchase" ><?php echo __('Average QTY', 'gawd'); ?></option>
371
+ </select>
372
+ <img src="<?php echo GAWD_URL. '/assets/cleardot.gif';?>"/>
373
+ </div>
374
+ <?php
375
+ }
376
+ elseif($tab == 'transactionId'){
377
+ ?>
378
+ <div id="first_metric" >
379
+ <select name="gawd_metric" id="gawd_metric" class="gawd_draw_analytics load_tooltip" data-hint="Choose a metric to view overview graph.">
380
+ <option value="transactionRevenue" ><?php echo __('Revenue', 'gawd'); ?></option>
381
+ <option value="transactionTax" ><?php echo __('Tax', 'gawd'); ?></option>
382
+ <option value="transactionShipping" ><?php echo __('Shipping', 'gawd'); ?></option>
383
+ <option value="itemQuantity" ><?php echo __('Quantity', 'gawd'); ?></option>
384
+ </select>
385
+ </div>
386
+ <div id="metric_compare">
387
+ <select name="gawd_metric_compare" id="gawd_metric_compare" class="gawd_draw_analytics load_tooltip" data-hint="Select the second metric to compare reports.">
388
+ <option value="0"><?php echo __('None', 'gawd'); ?></option>
389
+ <option value="transactionRevenue" ><?php echo __('Revenue', 'gawd'); ?></option>
390
+ <option value="transactionTax" ><?php echo __('Tax', 'gawd'); ?></option>
391
+ <option value="transactionShipping" ><?php echo __('Shipping', 'gawd'); ?></option>
392
+ <option value="itemQuantity" ><?php echo __('Quantity', 'gawd'); ?></option>
393
+ </select>
394
+ <img src="<?php echo GAWD_URL. '/assets/cleardot.gif';?>"/>
395
+ </div>
396
+ <?php
397
+ }
398
+ elseif($tab == 'sales_performance'){
399
+ ?>
400
+ <div id="first_metric" >
401
+ <select name="gawd_metric" id="gawd_metric" class="gawd_draw_analytics load_tooltip" data-hint="Choose a metric to view overview graph.">
402
+ <option value="transactionRevenue" ><?php echo __('Revenue', 'gawd'); ?></option>
403
+ <option value="transactionsPerSession" ><?php echo __('Ecommerce Conversion Rate', 'gawd'); ?></option>
404
+ </select>
405
+ </div>
406
+
407
+ <?php
408
+ }
409
+ elseif($tab == 'daysToTransaction'){
410
+ ?>
411
+ <div id="first_metric" >
412
+ <select name="gawd_metric" id="gawd_metric" class="gawd_draw_analytics load_tooltip" data-hint="Choose a metric to view overview graph.">
413
+ <option value="transactions" ><?php echo __('Transactions', 'gawd'); ?></option>
414
+ </select>
415
+ </div>
416
+
417
+ <?php
418
+ }
419
+ elseif(strpos($tab,'custom_report')!==false){
420
+ $tab = substr($page,14);
421
+ ?>
422
+ <div id="first_metric" >
423
+ <select name="gawd_metric" id="gawd_metric" class="gawd_draw_analytics load_tooltip" data-hint="Choose a metric to view overview graph.">
424
+ <option value="<?php echo $get_custom_reports[$tab]['metric'];?>" ><?php echo __(preg_replace('!\s+!',' ',trim(ucfirst(preg_replace('/([A-Z])/', ' $1', $get_custom_reports[$tab]['metric'])))), 'gawd'); ?></option>
425
+
426
+ </select>
427
+ </div>
428
+ <?php
429
+ $tab = $get_custom_reports[$tab]['dimension'];
430
+ }
431
+ elseif($tab == 'custom') { ?>
432
+ <div id="first_metric" >
433
+ <select name="gawd_metric" id="gawd_metric" class="gawd_draw_analytics load_tooltip" data-hint="Choose a metric to view overview graph.">
434
+ <option value="sessions"><?php echo __('Sessions', 'gawd'); ?></option>
435
+ <option value="percentNewSessions"><?php echo __('% New Sessions', 'gawd'); ?></option>
436
+ <option value="users" ><?php echo __('Users', 'gawd'); ?></option>
437
+ <option value="bounceRate" ><?php echo __('Bounce Rate', 'gawd'); ?></option>
438
+ <option value="avgSessionDuration" ><?php echo __('Avg Session Duration', 'gawd'); ?></option>
439
+ <option value="pageviews" ><?php echo __('Pageviews', 'gawd'); ?></option>
440
+ <option value="pageviewsPerSession" ><?php echo __('Pages/Session', 'gawd'); ?></option>
441
+ </select>
442
+ </div>
443
+ <div id="metric_compare">
444
+ <?php
445
+ $dimensions = $gawd_client->get_custom_dimensions();
446
+ if('no_custom_dimensions_exist' == $dimensions) { ?>
447
+ <select class="load_tooltip" data-hint="Select the second metric to compare reports.">
448
+ <option value="0">There are no custom dimensions set for current profile.</option>
449
+ </select>
450
+ <?php } else { ?>
451
+ <select name="gawd_custom_option" id="gawd_custom_option" class="gawd_draw_analytics">
452
+ <?php foreach ($dimensions as $dimension) : ?>
453
+ <option value="<?php echo $dimension['id'] ?>"><?php echo $dimension['name'] ?></option>
454
+ <?php endforeach; ?>
455
+ </select>
456
+ <img src="<?php echo GAWD_URL. '/assets/cleardot.gif';?>"/>
457
+ <?php }
458
+ ?>
459
+ </div>
460
+ <?php } ?>
461
+ </div>
462
+
463
+ <input id="gawd_tab" type="hidden" value="<?php echo $tab; ?>">
464
+
465
+ <?php if($tab != 'custom' && $tab != 'pagePath' && $tab != 'landingPagePath' && $tab != 'realTime' && $tab != 'daysToTransaction' && $tab != 'sales_performance' && strpos($_GET['tab'],'custom_report') === false) { ?>
466
+ <div class="vs_image" class="gawd_metrics">
467
+ <img width="30px" src="<?php echo GAWD_URL;?>/assets/vs.png">
468
+ </div>
469
+ <?php } ?>
470
+ <div class='clear'></div>
471
+ </div>
472
+ <?php if($tab != 'realTime') { ?>
473
+ <div id="date_chart_conteiner" class="float_conteiner">
474
+ <div class="gawd_row load_tooltip" data-hint="Choose Line, Pie or Column chart type to view your Google Analytics report with.">
475
+ <div id="gawd_text" class="gawd_text">
476
+ CHART
477
+ </div>
478
+ <div class="gawd_content" id="gawd_content_chart" >
479
+ <select name="gawd_chart_type" id="gawd_chart_type" class="gawd_draw_analytics">
480
+ <?php if($tab == 'userGender' || $tab == 'userAgeBracket' || $tab == 'userType' || $tab == 'country' || $tab == 'language' || $tab == 'mobileDeviceInfo' || $tab == 'deviceCategory' || $tab == 'operatingSystem' || $tab == 'browser'){
481
+ ?>
482
+ <option value="pie" ><?php echo __('Pie Chart', 'gawd'); ?></option>
483
+ <option value="column" ><?php echo __('Columns', 'gawd'); ?></option>
484
+ <option value="line" ><?php echo __('Line Chart', 'gawd'); ?></option>
485
+ <?php
486
+ }
487
+ else{
488
+ ?>
489
+ <option value="line" ><?php echo __('Line Chart', 'gawd'); ?></option>
490
+ <option value="pie" ><?php echo __('Pie Chart', 'gawd'); ?></option>
491
+ <option value="column" ><?php echo __('Columns', 'gawd'); ?></option>
492
+ <?php };?>
493
+ </select>
494
+ </div>
495
+ <div class='clear'></div>
496
+ </div >
497
+ <div class="gawd_row load_tooltip" data-hint="Select one of predefined date ranges or specify a custom period for your report.">
498
+ <div class="gawd_text" >
499
+ DATE
500
+ </div>
501
+ <div class="gawd_content" id="gawd_content_range" >
502
+ <div id="reportrange" class="pull-right" style="float:none !important">
503
+ <span></span> <b class="caret"></b>
504
+ </div>
505
+ <input type="hidden" id="gawd_start_end_date"/>
506
+ </div>
507
+ <div class='clear'></div>
508
+ </div>
509
+ <div class='clear'></div>
510
+ </div>
511
+ <?php } ?>
512
+ <div id="compare_time_conteiner" class="float_conteiner">
513
+ <?php if(($tab == 'date') || ($tab == 'adsense') || ($tab == 'siteSpeed') || $tab == 'sales_performance' || $tab == 'pagePath' || $tab == 'landingPagePath'){ ?>
514
+ <div class="gawd_date_filter_container load_tooltip" data-hint="Set the scale of your statistics graph. It will separate graph results hourly, daily, weekly and monthly.">
515
+ <ul class="gawd_list">
516
+ <li class="gawd_list_item" id="gawd_hour"><a href='#' class="gawd_filter_item" data-type="hour">Hour</a></li>
517
+ <li class="gawd_list_item" id="gawd_day"><a href='#' class="gawd_filter_item" data-type="date">Day</a></li>
518
+ <li class="gawd_list_item" id="gawd_week"><a href='#' class="gawd_filter_item" data-type="week">Week</a></li>
519
+ <li class="gawd_list_item" id="gawd_month"><a href='#' class="gawd_filter_item" data-type="month">Month</a></li>
520
+ </ul>
521
+ </div>
522
+ <div id="compare_datepicker_wraper" class="load_tooltip" data-hint="Measure the results of Google Analytics tracking of two periods. Select Previous Period, Previous Year, or define a custom period using the datepicker.">COMPARE DATE</div>
523
+ <div id="" class="pull-right" style="float:none !important">
524
+ </div>
525
+ <input type="hidden" id="gawd_start_end_date_compare"/>
526
+ <div class='clear'></div>
527
+ <?php } ?>
528
+ </div>
529
+ <div class='clear'></div>
530
+ </div>
531
+ <?php wp_nonce_field('gawd_save_form', 'gawd_save_form_fild'); ?>
532
+ </form>
533
+
534
+ <div class="gawd_chart_conteiner">
535
+ <div id="opacity_div" style="display: none; background-color: rgba(0, 0, 0, 0.2); position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 99998;"></div>
536
+ <div id="loading_div" style="display:none; text-align: center; position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 99999;">
537
+ <img src="<?php echo GAWD_URL . '/assets/ajax_loader.gif'; ?>" style="margin-top: 200px; width:50px;">
538
+ </div>
539
+ <div id="chartdiv"></div>
540
+ <?php if($tab != 'realTime'){
541
+ ?>
542
+ <div id="gawd_buttons">
543
+ <span id="country_filter_reset" class="button_gawd">Back</span>
544
+ <span class='clear'></span>
545
+ <input class="button_gawd" type="button" id="gawd_export_buttons" value="EXPORT"/>
546
+ <input class="button_gawd load_tooltip" type="button" id="gawd_email_button" data-hint="Click to forward this report to selected email recipients, or schedule emails to be sent out periodically." value="EMAIL"/>
547
+ <div class="gawd_exports">
548
+ <a class='button gawd_export_button_csv' href="">CSV</a>
549
+ <a class='button gawd_export_button_pdf' href="#">PDF</a>
550
+ </div>
551
+ </div>
552
+ <?php };?>
553
+ <table id="griddiv"></table>
554
+ <div id="pager"></div>
555
+ </div>
556
+ </div>
557
+ <div class='clear'></div>
558
+
559
+ </div>
560
+ <?php //get parameters for export?>
561
+
562
+ <div class="gawd_email_popup_overlay">
563
+ </div>
564
+ <div class="gawd_email_popup">
565
+ <a href="#" class="gawd_btn">X</a>
566
+ <div class="gawd_email_body">
567
+ <form method="post" action="" id="gawd_email_form">
568
+ <div class="gawd_email_row load_tooltip" data-hint="E-mail to send reports from. You can change it from WordPress Settings > General > Email Address.">
569
+ <div class="gawd_email_label">From</div>
570
+ <div class="gawd_email_input gawd_email_input_from">
571
+ <?php echo get_option('admin_email'); ?>
572
+ </div>
573
+ <div class='clear'></div>
574
+ </div>
575
+ <div class="gawd_email_row load_tooltip" data-hint="Define one or more email report recipients separated by commas.">
576
+ <div class="gawd_email_label">To</div>
577
+ <div class="gawd_email_input">
578
+ <input id="gawd_email_to" name="gawd_email_to" class="" type="text" value="">
579
+ </div>
580
+ <div class='clear'></div>
581
+ </div>
582
+ <div class="gawd_email_row load_tooltip" data-hint="Set the subject for email reports.">
583
+ <div class="gawd_email_label">Subject</div>
584
+ <div class="gawd_email_input">
585
+ <input class="gawd_email_subject" name="gawd_email_subject" class="" type="text" value="">
586
+ </div>
587
+ <div class='clear'></div>
588
+ </div>
589
+ <div class="gawd_email_row">
590
+ <div class="gawd_email_attachemnt load_tooltip" data-hint="Select type for report attachments, CSV or PDF.">Attachment</div>
591
+ <div class="gawd_email_input_attachment" >
592
+ <select id="gawd_attachment_type" name="export_type">
593
+ <option value='csv'>CSV</option>
594
+ <option value='pdf'>PDF</option>
595
+ </select>
596
+ </div>
597
+ <div class="gawd_email_input gawd_email_month_day_div" id="gawd_email_month_day" data-hint="Select the day of month to send report on.">
598
+ <div class="gawd_email_day_of_week">Day of Month</div>
599
+ </div>
600
+ <div class="gawd_email_input gawd_email_week_day_div" data-hint="Click on weekday to choose email report sending day." id="gawd_email_week_day">
601
+ <div class="gawd_email_day_of_week">Day of Week</div>
602
+ <input type="hidden" name="gawd_email_week_day" id="gawd_email_week_day_hidden" >
603
+ </div>
604
+ <div class='clear'></div>
605
+ </div>
606
+ <div class="gawd_email_row">
607
+ <div class="gawd_email_frequency" data-hint="Send email report Once or set its frequency to Daily, Weekly or Monthly.">Frequency</div>
608
+ <div class="gawd_email_input_frequency" id="gawd_email_period">
609
+ <select name="gawd_email_period">
610
+ <option value="once">Once</option>
611
+ <option value="daily">Daily</option>
612
+ <option value="gawd_weekly">Weekly</option>
613
+ <option value="gawd_monthly">Monthly</option>
614
+ </select>
615
+ </div>
616
+ <div class="gawd_email_input gawd_email_month_day_div" id="gawd_email_month_day">
617
+ <div class="gawd_email_month_day">
618
+ <select id="gawd_email_month_day_select" name="gawd_email_month_day">
619
+ <?php
620
+ for($i=1; $i<29; $i++){
621
+
622
+ echo '<option value="'.$i.'">'.$i.'</option>';
623
+ }
624
+ ?>
625
+ <option value="last">Last Day</option>
626
+ </select>
627
+ </div>
628
+ <div class='clear'></div>
629
+ </div>
630
+ <div class="gawd_email_input gawd_email_week_day_div" id="gawd_email_week_day">
631
+ <div class="gawd_email_week_days">
632
+ <ul class="gawd_email_week_day_ul">
633
+ <li class="gawd_email_week_day" data-atribute="sunday">Sun</li>
634
+ <li class="gawd_email_week_day" data-atribute="monday">Mon</li>
635
+ <li class="gawd_email_week_day" data-atribute="tuesday">Tue</li>
636
+ <li class="gawd_email_week_day" data-atribute="wednsday">Wed</li>
637
+ <li class="gawd_email_week_day" data-atribute="thursday">Thu</li>
638
+ <li class="gawd_email_week_day" data-atribute="friday">Fri</li>
639
+ <li class="gawd_email_week_day" data-atribute="saturday">Sat</li>
640
+ </ul>
641
+ </div>
642
+ <input type="hidden" name="gawd_email_week_day" id="gawd_email_week_day_hidden" >
643
+ </div>
644
+ <div class='clear'></div>
645
+ </div>
646
+ <div class="gawd_email_row gawd_email_message_label" data-hint="Compose email content to be sent with your report.">
647
+ Additional Message
648
+ </div>
649
+ <div class="gawd_email_row gawd_email_message">
650
+ <textarea name="gawd_email_body" id="gawd_email_body"></textarea>
651
+ </div>
652
+ <input name="gawd_email_from" id="gawd_email_from" class="" type="hidden" value="<?php echo get_option('admin_email'); ?>">
653
+ <input name="gawd_metric" id="gawd_email_metric" class="" type="hidden" value="">
654
+ <input name="gawd_metric_compare" id="gawd_metric_compare" class="" type="hidden" value="">
655
+ <input name="gawd_dimension" id="gawd_dimension" class="" type="hidden" value="<?php echo $tab; ?>">
656
+ <input name="gawd_start_date" id="gawd_start_date" class="" type="hidden" value="">
657
+ <input name="gawd_end_date" id="gawd_end_date" class="" type="hidden" value="">
658
+ <input name="action" id="" class="" type="hidden" value="gawd_export">
659
+ <input name="report_type" id="report_type" class="" type="hidden" value="email">
660
+ <div class="gawd_email_send" id="email_submit">
661
+ Send
662
+ </div>
663
+ <?php wp_nonce_field('gawd_save_form', 'gawd_save_form_fild'); ?>
664
+ </form>
665
+ </div>
666
+ <div class="email_message_cont"></div>
667
+ </div>
668
+ <canvas id='canvass' style="display:none"></canvas>
669
+ <input id="first_data" class="" type="hidden" value="">
670
+ <input id="second_data" class="" type="hidden" value="">
671
+ <input id="dimension" class="" type="hidden" value="">
672
+ <input id="first_data_sum" class="" type="hidden" value="">
673
+ <input id="second_data_sum" class="" type="hidden" value="">
674
+ <input id="second_start_date" class="" type="hidden" value="">
675
  <input id="second_end_date" class="" type="hidden" value="">
admin/pages/dashboard_menu.php CHANGED
@@ -1,120 +1,139 @@
1
- <?php
2
- function gawd_write_menu($tabs, $title = true){
3
- $sub_arrow = '<span class="gawd_menu_li_sub_arrow"></span>';
4
- foreach ($tabs as $tab_key => $tab_data){
5
- if(!$title){
6
- $tab_data["title"] = "";
7
- $sub_arrow = '';
8
- }
9
- if($tab_data["childs"] == array()){
10
- $active_tab = $_GET['tab'] == $tab_key ? 'gawd_active_li' : '';
11
- if($tab_key == 'customReport'){
12
- echo ' <li class="gawd_menu_li load_tooltip '.$active_tab.'" id="gawd_'.$tab_key.'" data-hint="'.$tab_data["desc"].'">
13
- <a class="gawd_menu_item " href="'.admin_url().'admin.php?page=gawd_custom_reports">'.$tab_data["title"].'</a>
14
- </li>';
15
- }
16
- elseif($tab_key == 'custom'){
17
- echo ' <li class="gawd_menu_li load_tooltip '.$active_tab.'" id="gawd_'.$tab_key.'" data-hint="'.$tab_data["desc"].'">
18
- <a class="gawd_menu_item " href="'.admin_url().'admin.php?page=gawd_tracking">'.$tab_data["title"].'</a>
19
- </li>';
20
- }
21
- elseif($tab_key == 'adsense' || $tab_key == 'adWords'){
22
- echo ' <li class="gawd_menu_li load_tooltip '.$active_tab.'" id="gawd_'.$tab_key.'" data-hint="'.$tab_data["desc"].'">
23
- <a class="gawd_menu_item " href="#">'.$tab_data["title"].'</a>
24
- </li>';
25
- }
26
- else{
27
- echo ' <li class="gawd_menu_li load_tooltip '.$active_tab.'" id="gawd_'.$tab_key.'" data-hint="'.$tab_data["desc"].'">
28
- <a class="gawd_menu_item " href="'.admin_url().'admin.php?page=gawd_reports&tab='.$tab_key.'">'.$tab_data["title"].'</a>
29
- </li>';
30
- }
31
- }
32
- else{
33
- if($tab_key == 'customReport'){
34
- echo ' <li class="gawd_menu_li " id="gawd_'.$tab_key.'_li">
35
- <span id="gawd_'.$tab_key.'s" class="gawd_menu_li_sub">'.$tab_data["title"].$sub_arrow.'
36
- </span>
37
- <ul id="gawd_'.$tab_key.'_ul">';
38
- }
39
- else{
40
- echo ' <li class="gawd_menu_li load_tooltip" id="gawd_'.$tab_key.'_li" data-hint="'.$tab_data["desc"].'">
41
- <span id="gawd_'.$tab_key.'" class="gawd_menu_li_sub">'.$tab_data["title"].$sub_arrow.'
42
- </span>
43
- <ul id="gawd_'.$tab_key.'_ul">';
44
- }
45
- foreach($tab_data["childs"] as $child_key => $child_title) {
46
- if(!$title){
47
- $child_title = "";
48
- }
49
- $active_tab = $_GET['tab'] == $child_key ? 'gawd_active_li' : '';
50
- if($child_key == 'productCategory' || $child_key == 'productName' || $child_key == 'productSku' || $child_key == 'transactionId' || $child_key == 'sales_performance' || $child_key == 'daysToTransaction'){
51
- echo ' <li class="gawd_menu_ul_li '.$active_tab.'">
52
- <a class="gawd_menu_item " href="#">'.$child_title.'</a>
53
- </li> ';
54
- }
55
- else{
56
- echo ' <li class="gawd_menu_ul_li '.$active_tab.'">
57
- <a class="gawd_menu_item " href="'.admin_url().'admin.php?page=gawd_reports&tab='.$child_key.'">'.$child_title.'</a>
58
- </li> ';
59
- }
60
- }
61
- echo '</ul>
62
- </li>';
63
- }
64
- }
65
- }
66
- function gawd_write_menu_collapse($tabs, $title = true){
67
- $sub_arrow = '<span class="gawd_menu_li_sub_arrow"></span>';
68
- foreach ($tabs as $tab_key => $tab_data){
69
- if(!$title){
70
- $tab_data["title"] = "";
71
- $sub_arrow = '';
72
- }
73
- if($tab_data["childs"] == array()){
74
- $active_tab = $_GET['tab'] == $tab_key ? 'gawd_active_li' : '';
75
- if($tab_key == 'customReport'){
76
- echo '<a id="gawd_'.$tab_key.'" class="'.$active_tab.' gawd_menu_item " href="'.admin_url().'admin.php?page=gawd_custom_reports">'.$tab_data["title"].'</a>';
77
- }
78
- else{
79
- echo '<a id="gawd_'.$tab_key.'" class="'.$active_tab.' gawd_menu_item " href="'.admin_url().'admin.php?page=gawd_reports&tab='.$tab_key.'">'.$tab_data["title"].'</a>';
80
- }
81
- }
82
- else{
83
- if($tab_key == 'customReport'){
84
- echo '<span id="gawd_'.$tab_key.'_li" id="gawd_'.$tab_key.'s" class="gawd_menu_li_sub">'.$tab_data["title"].$sub_arrow.'
85
- <div class="collapse_ul" id="gawd_'.$tab_key.'_ul">';
86
- }
87
- else{
88
- echo '<span id="gawd_'.$tab_key.'_li" id="gawd_'.$tab_key.'" class="gawd_menu_li_sub">'.$tab_data["title"].$sub_arrow.'
89
- <div class="collapse_ul" id="gawd_'.$tab_key.'_ul">';
90
- }
91
- foreach($tab_data["childs"] as $child_key => $child_title) {
92
- $active_tab = $_GET['tab'] == $child_key ? 'gawd_active_li_text' : '';
93
- echo '<a class="'.$active_tab.' gawd_menu_item " href="'.admin_url().'admin.php?page=gawd_reports&tab='.$child_key.'">'.$child_title.'</a>';
94
- }
95
- echo '</div></span>';
96
- }
97
- }
98
-
99
- }
100
- ?>
101
- <div class="resp_menu"><div class="menu_img"></div><div class="button_label">REPORTS</div><div class="clear"></div></div>
102
-
103
- <div class="gawd_menu_coteiner_collapse">
104
- <div class="gawd_menu_ul">
105
- <?php
106
- gawd_write_menu_collapse($tabs,false);
107
- ?>
108
- <span class='gawd_collapsed'></span>
109
- </div>
110
- </div>
111
- <div class="gawd_menu_coteiner">
112
- <input style="width: 100%; margin-bottom: 5px;" onkeyup="gawd_search()" type="text" class='gawd_search_input'/>
113
- <ul class="gawd_menu_ul">
114
- <?php
115
-
116
- gawd_write_menu($tabs);
117
- ?>
118
- <li class='gawd_collapse'>Collapse menu</li>
119
- </ul>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
120
  </div>
1
+ <?php
2
+ function gawd_write_menu($tabs, $title = true){
3
+ $sub_arrow = '<span class="gawd_menu_li_sub_arrow"></span>';
4
+ foreach ($tabs as $tab_key => $tab_data){
5
+ if(!$title){
6
+ $tab_data["title"] = "";
7
+ $sub_arrow = '';
8
+ }
9
+ if($tab_data["childs"] == array()){
10
+ $active_tab = $_GET['tab'] == $tab_key ? 'gawd_active_li' : '';
11
+ if($tab_key == 'customReport'){
12
+ echo ' <li class="gawd_menu_li '.$active_tab.'" id="gawd_'.$tab_key.'">
13
+ <a class="gawd_menu_item gawd_pro_menu" href="#">'.$tab_data["title"].'
14
+ <span class="gawd_pro_flag">Paid</span>
15
+ </a>
16
+ </li><span class="gawd_description" data-hint="'.$tab_data["desc"].'"></span>';
17
+ }
18
+ elseif($tab_key == 'custom'){
19
+ echo ' <li class="gawd_menu_li '.$active_tab.'" id="gawd_'.$tab_key.'" >
20
+ <a class="gawd_menu_item gawd_pro_menu" href="#">'.$tab_data["title"].'
21
+ <span class="gawd_pro_flag">Paid</span>
22
+ </a>
23
+ <span class="gawd_description" data-hint="'.$tab_data["desc"].'"></span>
24
+ </li>';
25
+ }
26
+ elseif($tab_key == 'adsense' || $tab_key == 'adWords'){
27
+ echo ' <li class="gawd_menu_li '.$active_tab.'" id="gawd_'.$tab_key.'" >
28
+ <a class="gawd_pro_menu gawd_menu_item " href="#">'.$tab_data["title"].
29
+ '<span class="gawd_pro_flag">Paid</span>
30
+ </a>
31
+ <span class="gawd_description" data-hint="'.$tab_data["desc"].'"></span>
32
+ </li>';
33
+ }
34
+ else{
35
+ echo ' <li class="gawd_menu_li '.$active_tab.'" id="gawd_'.$tab_key.'" >
36
+ <a class="gawd_menu_item " href="'.admin_url().'admin.php?page=gawd_reports&tab='.$tab_key.'">'.$tab_data["title"].'</a>
37
+ <span class="gawd_description" data-hint="'.$tab_data["desc"].'"></span>
38
+ </li>';
39
+ }
40
+ }
41
+ else{
42
+ if($tab_key == 'customReport'){
43
+ echo ' <li class="gawd_menu_li " id="gawd_'.$tab_key.'_li">
44
+ <span id="gawd_'.$tab_key.'s" class="gawd_menu_li_sub">'.$tab_data["title"].$sub_arrow.'
45
+ </span>
46
+ <span class="gawd_description" data-hint="'.$tab_data["desc"].'"></span>
47
+ <ul id="gawd_'.$tab_key.'_ul">';
48
+ }
49
+ elseif($tab_key == 'ecommerce'){
50
+ echo ' <li class="gawd_menu_li " id="gawd_'.$tab_key.'_li" >
51
+ <span id="gawd_'.$tab_key.'" class="gawd_menu_li_sub">'.$tab_data["title"].$sub_arrow.'
52
+ <span class="gawd_pro_flag">Paid</span>
53
+ </span>
54
+ <span class="gawd_description" data-hint="'.$tab_data["desc"].'"></span>
55
+ <ul id="gawd_'.$tab_key.'_ul">';
56
+ }
57
+ else{
58
+ echo ' <li class="gawd_menu_li " id="gawd_'.$tab_key.'_li" >
59
+ <span id="gawd_'.$tab_key.'" class="gawd_menu_li_sub">'.$tab_data["title"].$sub_arrow.'
60
+ </span>
61
+ <span class="gawd_description" data-hint="'.$tab_data["desc"].'"></span>
62
+ <ul id="gawd_'.$tab_key.'_ul">';
63
+ }
64
+ foreach($tab_data["childs"] as $child_key => $child_title) {
65
+ if(!$title){
66
+ $child_title = "";
67
+ }
68
+ $active_tab = $_GET['tab'] == $child_key ? 'gawd_active_li' : '';
69
+ if($child_key == 'productCategory' || $child_key == 'productName' || $child_key == 'productSku' || $child_key == 'transactionId' || $child_key == 'sales_performance' || $child_key == 'daysToTransaction'){
70
+ echo ' <li class="gawd_menu_ul_li '.$active_tab.'">
71
+ <a class="gawd_menu_item " href="#">'.$child_title.'</a>
72
+ </li> ';
73
+ }
74
+ else{
75
+ echo ' <li class="gawd_menu_ul_li '.$active_tab.'">
76
+ <a class="gawd_menu_item " href="'.admin_url().'admin.php?page=gawd_reports&tab='.$child_key.'">'.$child_title.'</a>
77
+ </li> ';
78
+ }
79
+ }
80
+ echo '</ul>
81
+ </li>';
82
+ }
83
+ }
84
+ }
85
+ function gawd_write_menu_collapse($tabs, $title = true){
86
+ $sub_arrow = '<span class="gawd_menu_li_sub_arrow"></span>';
87
+ foreach ($tabs as $tab_key => $tab_data){
88
+ if(!$title){
89
+ $tab_data["title"] = "";
90
+ $sub_arrow = '';
91
+ }
92
+ if($tab_data["childs"] == array()){
93
+ $active_tab = $_GET['tab'] == $tab_key ? 'gawd_active_li' : '';
94
+ if($tab_key == 'customReport'){
95
+ echo '<a id="gawd_'.$tab_key.'" class="'.$active_tab.' gawd_menu_item " href="'.admin_url().'admin.php?page=gawd_custom_reports">'.$tab_data["title"].'</a>';
96
+ }
97
+ else{
98
+ echo '<a id="gawd_'.$tab_key.'" class="'.$active_tab.' gawd_menu_item " href="'.admin_url().'admin.php?page=gawd_reports&tab='.$tab_key.'">'.$tab_data["title"].'</a>';
99
+ }
100
+ }
101
+ else{
102
+ if($tab_key == 'customReport'){
103
+ echo '<span id="gawd_'.$tab_key.'_li" id="gawd_'.$tab_key.'s" class="gawd_menu_li_sub">'.$tab_data["title"].$sub_arrow.'
104
+ <div class="collapse_ul" id="gawd_'.$tab_key.'_ul">';
105
+ }
106
+ else{
107
+ echo '<span id="gawd_'.$tab_key.'_li" id="gawd_'.$tab_key.'" class="gawd_menu_li_sub">'.$tab_data["title"].$sub_arrow.'
108
+ <div class="collapse_ul" id="gawd_'.$tab_key.'_ul">';
109
+ }
110
+ foreach($tab_data["childs"] as $child_key => $child_title) {
111
+ $active_tab = $_GET['tab'] == $child_key ? 'gawd_active_li_text' : '';
112
+ echo '<a class="'.$active_tab.' gawd_menu_item " href="'.admin_url().'admin.php?page=gawd_reports&tab='.$child_key.'">'.$child_title.'</a>';
113
+ }
114
+ echo '</div></span>';
115
+ }
116
+ }
117
+
118
+ }
119
+ ?>
120
+ <div class="resp_menu"><div class="menu_img"></div><div class="button_label">REPORTS</div><div class="clear"></div></div>
121
+
122
+ <div class="gawd_menu_coteiner_collapse">
123
+ <div class="gawd_menu_ul">
124
+ <?php
125
+ gawd_write_menu_collapse($tabs,false);
126
+ ?>
127
+ <span class='gawd_collapsed'></span>
128
+ </div>
129
+ </div>
130
+ <div class="gawd_menu_coteiner">
131
+ <input style="width: 100%; margin-bottom: 5px;" onkeyup="gawd_search()" type="text" class='gawd_search_input'/>
132
+ <ul class="gawd_menu_ul">
133
+ <?php
134
+
135
+ gawd_write_menu($tabs);
136
+ ?>
137
+ <li class='gawd_collapse'>Collapse menu</li>
138
+ </ul>
139
  </div>
admin/pages/goals.php CHANGED
@@ -1,273 +1,277 @@
1
- <?php
2
- try{
3
- $profiles = $gawd_client->get_default_profiles();
4
- }catch (Exception $e){
5
- $profiles = array();
6
- }
7
- try{
8
- $goals = $gawd_client->get_default_goals();
9
- }catch (Exception $e){
10
- $goals = array();
11
- }
12
-
13
-
14
- if (!is_array($goals)) {
15
- $goals = array();
16
- }
17
- ?>
18
- <div class="goal_wrap">
19
- <h3 class="gawd_page_titles">Goal Management</h3>
20
-
21
- <p>You can set and manage goals for your website tracking. Select the View that you’re going to track and configure these options based on the type of goal you would like to set.</p>
22
- <form action='' method="post" id="gawd_goal_form">
23
- <div class="gawd_goal_row">
24
- <span class="gawd_goal_label">View</span>
25
- <span class="gawd_goal_input">
26
- <select name="gawd_goal_profile" class="gawd_goal_profile">
27
- <?php foreach ($profiles as $profile) {
28
- echo '<option value="' . $profile['id'] . '">' . $profile['webPropertyName'] . ' - ' . $profile['name'] . '</option>';
29
- } ?>
30
- </select>
31
- </span>
32
- <div class="gawd_info" title="Choose the website, to which you would like to set Google Analytics Goals. "></div>
33
- <div class='clear'></div>
34
- </div>
35
- <div class="gawd_goal_row">
36
- <span class="gawd_goal_label">Name</span>
37
- <span class="gawd_goal_input">
38
- <input id="gawd_goal_name" name="gawd_goal_name" class="" type="text" value="">
39
- </span>
40
- <div class="gawd_info" title="Provide a name for this goal"></div>
41
- <div class='clear'></div>
42
- </div>
43
- <div class="gawd_goal_row">
44
- <span class="gawd_goal_label">Type</span>
45
- <span class="gawd_goal_input">
46
- <select name="gawd_goal_type" class="gawd_goal_type">
47
- <option value="URL_DESTINATION">Destination</option>
48
- <option value="VISIT_TIME_ON_SITE">Duration</option>
49
- <option value="VISIT_NUM_PAGES">Pages/Screens per session</option>
50
- <!-- <option value="EVENT">Event</option> -->
51
- </select>
52
- </span>
53
- <div class="gawd_info" title="Select its type (Destination, Duration, Pages/Screens per session or Event)."></div>
54
- <div class='clear'></div>
55
- </div>
56
- <div class="gawd_goal_duration_wrap" id="gawd_goal_duration_wrap">
57
- <div class="gawd_duration_label">Duration</div>
58
- <div class="gawd_comparison_input">
59
- <select name="gawd_goal_duration_comparison" class="gawd_goal_duration_comparison">
60
- <option value="GREATER_THAN">Greater than</option>
61
- </select>
62
- </div>
63
- <div class="gawd_duration">
64
- <div class="time_wrap">
65
- <!--<div class="time_label">Hour</div> -->
66
- <div class="time_input"><input placeholder="hour" type="number" min='0' name="gawd_visit_hour"/></div>
67
- </div>
68
- <div class="time_wrap">
69
- <!--<div class="time_label">Minute</div> -->
70
- <div class="time_input"><input placeholder="min." type="number" min='0' name="gawd_visit_minute"/></div>
71
- </div>
72
- <div class="time_wrap" id="time_wrap">
73
- <!--<div class="time_label">Second</div> -->
74
- <div class="time_input"><input placeholder="sec." type="number" min='0' name="gawd_visit_second"/></div>
75
- </div>
76
- <div class='clear'></div>
77
- </div>
78
- <div class="gawd_info" style="margin-left: 15px" title="Set a duration for this goal. For example, if you select 20 minutes, each time users spend 20 minutes or more on your site, it will be counted as goal completion."></div>
79
- <div class='clear'></div>
80
- </div>
81
- <div class="gawd_page_sessions" id="gawd_page_sessions">
82
- <div class="gawd_duration_label">Pages per session</div>
83
- <div class="gawd_comparison_input">
84
- <select name="gawd_goal_page_comparison" class="gawd_goal_duration_comparison">
85
- <option value="GREATER_THAN">Greater than</option>
86
- </select>
87
- </div>
88
- <div class="gawd_duration">
89
- <div class="time_wrap">
90
- <!--<div class="time_label">Hour</div> -->
91
- <input type="number" min='0' name="gawd_page_sessions"/>
92
- </div>
93
- <div class='clear'></div>
94
- </div>
95
- <div class="gawd_info" style="margin-left: 15px" title="Choose the number of pages/screens users should view to complete this goal."></div>
96
- <div class='clear'></div>
97
- </div>
98
- <div class="gawd_page_destination" id="gawd_page_destination">
99
- <div class="gawd_duration_label">Destination</div>
100
- <div class="gawd_url_comparison_input" >
101
- <select name="gawd_goal_page_destination_match" class="gawd_goal_duration_comparison">
102
- <option value="EXACT">Equals to</option>
103
- <option value="HEAD">Begins with</option>
104
- <option value="REGEX">Regular expression</option>
105
- </select>
106
- </div>
107
- <div class="gawd_info" style="margin-left: 8px;" title="Set the destination of your goal. It can be equal to the specified value, as well as begin with it. You can also add a Regular Expression as destination value."></div>
108
- <div class="gawd_destination_url">
109
- <label for="gawd_case_sensitive" class="case_sensitive gawd_duration_label">URL</label>
110
- <div class="time_wrap">
111
- <div class="time_input"><input type="text" name="gawd_page_url"/></div>
112
- </div>
113
- <div class="gawd_info" title="Set destination URL."></div>
114
- <div class='clear'></div>
115
- </div>
116
- <div class="gawd_destination_url">
117
- <label for="gawd_case_sensitive" class="case_sensitive gawd_duration_label">URL Case sensitive</label>
118
- <div class="time_wrap">
119
- <div class="onoffswitch" style="margin: 3px 0 0 6px;">
120
- <input type="checkbox" name="url_case_sensitve" class="onoffswitch-checkbox" id="gawd_case_sensitive">
121
- <label class="onoffswitch-label" for="gawd_case_sensitive">
122
- <span class="onoffswitch-inner"></span>
123
- <span class="onoffswitch-switch"></span>
124
- </label>
125
- </div>
126
- </div>
127
- <div class="gawd_info" title="Enable this option to set destination URL case sensitive."></div>
128
- </div>
129
-
130
- <div class='clear'></div>
131
- </div>
132
- <!-- <div class="gawd_page_event" id="gawd_page_event">
133
- <div class="event_type_row">
134
- <div class="gawd_duration_label">Category</div>
135
- <div class="gawd_event_comparison_input" >
136
- <select name="gawd_goal_event_match" class="gawd_goal_duration_comparison">
137
- <option value="EXACT">Equals to</option>
138
- <option value="HEAD">Begins with</option>
139
- <option value="REGEX">Regular expresion</option>
140
- </select>
141
- </div>
142
- <div class="gawd_event_name">
143
- <input type="text" name="gawd_category_name"/>
144
- <div class='clear'></div>
145
- </div>
146
- <div class='clear'></div>
147
- </div>
148
- <div class="event_type_row">
149
- <div class="gawd_duration_label">Action</div>
150
- <div class="gawd_event_comparison_input" >
151
- <select name="gawd_goal_event_match" class="gawd_goal_duration_comparison">
152
- <option value="EXACT">Equals to</option>
153
- <option value="HEAD">Begins with</option>
154
- <option value="REGEX">Regular expresion</option>
155
- </select>
156
- </div>
157
- <div class="gawd_event_name">
158
- <input type="text" name="gawd_action_name"/>
159
- <div class='clear'></div>
160
- </div>
161
- <div class='clear'></div>
162
- </div>
163
- <div class="event_type_row">
164
- <div class="gawd_duration_label">Label</div>
165
- <div class="gawd_event_comparison_input" >
166
- <select name="gawd_goal_event_match" class="gawd_goal_duration_comparison">
167
- <option value="EXACT">Equals to</option>
168
- <option value="HEAD">Begins with</option>
169
- <option value="REGEX">Regular expresion</option>
170
- </select>
171
- </div>
172
- <div class="gawd_event_name">
173
- <input type="text" name="gawd_label_name"/>
174
- <div class='clear'></div>
175
- </div>
176
- <div class='clear'></div>
177
- </div>
178
- <div class="event_type_row">
179
- <div class="gawd_duration_label">Value</div>
180
- <div class="gawd_event_comparison_input" >
181
- <select name="gawd_goal_event_match" class="gawd_goal_duration_comparison">
182
- <option value="EXACT">Equals to</option>
183
- <option value="GREATER_THAN">Greater than</option>
184
- <option value="LESS_THAN">Less than</option>
185
- </select>
186
- </div>
187
- <div class="gawd_event_name">
188
- <input type="text" name="gawd_value_name"/>
189
- <div class='clear'></div>
190
- </div>
191
- <div class='clear'></div>
192
- </div>
193
-
194
- </div>-->
195
- <div class="gawd_buttons" id="goal_submit">
196
- <input class="button_gawd" type="button" name="add_goal" value="Save"/>
197
- </div>
198
- <?php wp_nonce_field('gawd_save_form', 'gawd_save_form_fild'); ?>
199
- <?php if (!empty($goals)) {?>
200
- <input class="goal_max_id" id="goal_max_id" name="goal_max_id" type="hidden" value="<?php echo count($goals[$profile_id]);?>"/>
201
- <?php } ?>
202
-
203
- </form>
204
- <?php if (!empty($goals)) {
205
- $counter = 0;
206
- foreach ($goals as $profile_id => $profile_goals) { ?>
207
- <table border="1" class="gawd_table" id="<?php echo $profile_id; ?>" style="<?php echo (($counter != 0) ? 'display:none;' : ''); ?>">
208
- <tr>
209
- <th>Id</th>
210
- <th>Name</th>
211
- <th>Type</th>
212
- <th>Match Type</th>
213
- <th>Value</th>
214
- </tr>
215
- <?php
216
- foreach ($profile_goals as $goal) {
217
- $case_sensitive = $goal['caseSensitive'] ? ' - case sensitive' : '';
218
- ?>
219
- <tr class="gawd_rows">
220
- <td><?php echo $goal['id']; ?></td>
221
- <td><?php echo $goal['name']; ?></td>
222
- <td><?php echo $goal['type']; ?></td>
223
- <td><?php echo $goal['match_type']; ?></td>
224
- <td><?php echo $goal['value'].$case_sensitive; ?></td>
225
- </tr>
226
- <?php
227
- }
228
- ?>
229
- </table>
230
- <?php $counter++; }
231
- } ?>
232
-
233
- </div>
234
- <script>
235
- jQuery('.gawd_goal_type').on('change', function () {
236
- if (jQuery('.gawd_goal_type :selected').val() == 'VISIT_TIME_ON_SITE') {
237
- jQuery('.gawd_goal_duration_wrap').show();
238
- jQuery('.gawd_page_sessions').hide();
239
- jQuery('.gawd_page_destination').hide();
240
- jQuery('.gawd_page_event').hide();
241
- } else if (jQuery('.gawd_goal_type :selected').val() == 'VISIT_NUM_PAGES') {
242
- jQuery('.gawd_goal_duration_wrap').hide();
243
- jQuery('.gawd_page_destination').hide();
244
- jQuery('.gawd_page_event').hide();
245
- jQuery('.gawd_page_sessions').show();
246
- } else if (jQuery('.gawd_goal_type :selected').val() == 'EVENT') {
247
- jQuery('.gawd_goal_duration_wrap').hide();
248
- jQuery('.gawd_page_sessions').hide();
249
- jQuery('.gawd_page_destination').hide();
250
- jQuery('.gawd_page_event').show();
251
- } else {
252
- jQuery('.gawd_goal_duration_wrap').hide();
253
- jQuery('.gawd_page_sessions').hide();
254
- jQuery('.gawd_page_event').hide();
255
- jQuery('.gawd_page_destination').show();
256
- }
257
- });
258
- jQuery('.button_gawd').on('click',function(){
259
- if(jQuery('.gawd_table tr').length -1 >= 20){
260
- alert('You have reached the maximum number of goals.')
261
- return;
262
- }
263
- jQuery('#goal_max_id').val(jQuery('.gawd_rows').length);
264
- jQuery('#gawd_goal_form').submit();
265
- });
266
- jQuery('.gawd_goal_profile').on('change', function(){
267
- jQuery('.gawd_table').each(function(){
268
- jQuery(this).hide();
269
- });
270
- var id = jQuery(this).val();
271
- jQuery('#' + id).show();
272
- });
273
- </script>
 
 
 
 
1
+ <?php
2
+ try{
3
+ $profiles = $gawd_client->get_default_profiles();
4
+ }catch (Exception $e){
5
+ $profiles = array();
6
+ }
7
+ try{
8
+ $goals = $gawd_client->get_default_goals();
9
+ }catch (Exception $e){
10
+ $goals = array();
11
+ }
12
+
13
+
14
+ if (!is_array($goals)) {
15
+ $goals = array();
16
+ }
17
+ ?>
18
+ <div class="goal_wrap">
19
+ <div style="font-size: 14px; font-weight: bold; margin:15px 0">
20
+ This section allows you to add Google Analytics goals for current domain. Read more in User Guide.
21
+ <a style="color: #00A0D2; text-decoration: none;" target="_blank" href="https://web-dorado.com/wordpress-google-analytics/goal-management.html">Read More in User Manual.</a>
22
+ </div>
23
+ <h3 class="gawd_page_titles">Goal Management</h3>
24
+
25
+ <p>You can set and manage goals for your website tracking. Select the View that you’re going to track and configure these options based on the type of goal you would like to set.</p>
26
+ <form action='' method="post" id="gawd_goal_form">
27
+ <div class="gawd_goal_row">
28
+ <span class="gawd_goal_label">View</span>
29
+ <span class="gawd_goal_input">
30
+ <select name="gawd_goal_profile" class="gawd_goal_profile">
31
+ <?php foreach ($profiles as $profile) {
32
+ echo '<option value="' . $profile['id'] . '">' . $profile['webPropertyName'] . ' - ' . $profile['name'] . '</option>';
33
+ } ?>
34
+ </select>
35
+ </span>
36
+ <div class="gawd_info" title="Choose the website, to which you would like to set Google Analytics Goals. "></div>
37
+ <div class='clear'></div>
38
+ </div>
39
+ <div class="gawd_goal_row">
40
+ <span class="gawd_goal_label">Name</span>
41
+ <span class="gawd_goal_input">
42
+ <input id="gawd_goal_name" name="gawd_goal_name" class="" type="text" value="">
43
+ </span>
44
+ <div class="gawd_info" title="Provide a name for this goal"></div>
45
+ <div class='clear'></div>
46
+ </div>
47
+ <div class="gawd_goal_row">
48
+ <span class="gawd_goal_label">Type</span>
49
+ <span class="gawd_goal_input">
50
+ <select name="gawd_goal_type" class="gawd_goal_type">
51
+ <option value="URL_DESTINATION">Destination</option>
52
+ <option value="VISIT_TIME_ON_SITE">Duration</option>
53
+ <option value="VISIT_NUM_PAGES">Pages/Screens per session</option>
54
+ <!-- <option value="EVENT">Event</option> -->
55
+ </select>
56
+ </span>
57
+ <div class="gawd_info" title="Select its type (Destination, Duration, Pages/Screens per session or Event)."></div>
58
+ <div class='clear'></div>
59
+ </div>
60
+ <div class="gawd_goal_duration_wrap" id="gawd_goal_duration_wrap">
61
+ <div class="gawd_duration_label">Duration</div>
62
+ <div class="gawd_comparison_input">
63
+ <select name="gawd_goal_duration_comparison" class="gawd_goal_duration_comparison">
64
+ <option value="GREATER_THAN">Greater than</option>
65
+ </select>
66
+ </div>
67
+ <div class="gawd_duration">
68
+ <div class="time_wrap">
69
+ <!--<div class="time_label">Hour</div> -->
70
+ <div class="time_input"><input placeholder="hour" type="number" min='0' name="gawd_visit_hour"/></div>
71
+ </div>
72
+ <div class="time_wrap">
73
+ <!--<div class="time_label">Minute</div> -->
74
+ <div class="time_input"><input placeholder="min." type="number" min='0' name="gawd_visit_minute"/></div>
75
+ </div>
76
+ <div class="time_wrap" id="time_wrap">
77
+ <!--<div class="time_label">Second</div> -->
78
+ <div class="time_input"><input placeholder="sec." type="number" min='0' name="gawd_visit_second"/></div>
79
+ </div>
80
+ <div class='clear'></div>
81
+ </div>
82
+ <div class="gawd_info" style="margin-left: 15px" title="Set a duration for this goal. For example, if you select 20 minutes, each time users spend 20 minutes or more on your site, it will be counted as goal completion."></div>
83
+ <div class='clear'></div>
84
+ </div>
85
+ <div class="gawd_page_sessions" id="gawd_page_sessions">
86
+ <div class="gawd_duration_label">Pages per session</div>
87
+ <div class="gawd_comparison_input">
88
+ <select name="gawd_goal_page_comparison" class="gawd_goal_duration_comparison">
89
+ <option value="GREATER_THAN">Greater than</option>
90
+ </select>
91
+ </div>
92
+ <div class="gawd_duration">
93
+ <div class="time_wrap">
94
+ <!--<div class="time_label">Hour</div> -->
95
+ <input type="number" min='0' name="gawd_page_sessions"/>
96
+ </div>
97
+ <div class='clear'></div>
98
+ </div>
99
+ <div class="gawd_info" style="margin-left: 15px" title="Choose the number of pages/screens users should view to complete this goal."></div>
100
+ <div class='clear'></div>
101
+ </div>
102
+ <div class="gawd_page_destination" id="gawd_page_destination">
103
+ <div class="gawd_duration_label">Destination</div>
104
+ <div class="gawd_url_comparison_input" >
105
+ <select name="gawd_goal_page_destination_match" class="gawd_goal_duration_comparison">
106
+ <option value="EXACT">Equals to</option>
107
+ <option value="HEAD">Begins with</option>
108
+ <option value="REGEX">Regular expression</option>
109
+ </select>
110
+ </div>
111
+ <div class="gawd_info" style="margin-left: 8px;" title="Set the destination of your goal. It can be equal to the specified value, as well as begin with it. You can also add a Regular Expression as destination value."></div>
112
+ <div class="gawd_destination_url">
113
+ <label for="gawd_case_sensitive" class="case_sensitive gawd_duration_label">URL</label>
114
+ <div class="time_wrap">
115
+ <div class="time_input"><input type="text" name="gawd_page_url"/></div>
116
+ </div>
117
+ <div class="gawd_info" title="Set destination URL."></div>
118
+ <div class='clear'></div>
119
+ </div>
120
+ <div class="gawd_destination_url">
121
+ <label for="gawd_case_sensitive" class="case_sensitive gawd_duration_label">URL Case sensitive</label>
122
+ <div class="time_wrap">
123
+ <div class="onoffswitch" style="margin: 3px 0 0 6px;">
124
+ <input type="checkbox" name="url_case_sensitve" class="onoffswitch-checkbox" id="gawd_case_sensitive">
125
+ <label class="onoffswitch-label" for="gawd_case_sensitive">
126
+ <span class="onoffswitch-inner"></span>
127
+ <span class="onoffswitch-switch"></span>
128
+ </label>
129
+ </div>
130
+ </div>
131
+ <div class="gawd_info" title="Enable this option to set destination URL case sensitive."></div>
132
+ </div>
133
+
134
+ <div class='clear'></div>
135
+ </div>
136
+ <!-- <div class="gawd_page_event" id="gawd_page_event">
137
+ <div class="event_type_row">
138
+ <div class="gawd_duration_label">Category</div>
139
+ <div class="gawd_event_comparison_input" >
140
+ <select name="gawd_goal_event_match" class="gawd_goal_duration_comparison">
141
+ <option value="EXACT">Equals to</option>
142
+ <option value="HEAD">Begins with</option>
143
+ <option value="REGEX">Regular expresion</option>
144
+ </select>
145
+ </div>
146
+ <div class="gawd_event_name">
147
+ <input type="text" name="gawd_category_name"/>
148
+ <div class='clear'></div>
149
+ </div>
150
+ <div class='clear'></div>
151
+ </div>
152
+ <div class="event_type_row">
153
+ <div class="gawd_duration_label">Action</div>
154
+ <div class="gawd_event_comparison_input" >
155
+ <select name="gawd_goal_event_match" class="gawd_goal_duration_comparison">
156
+ <option value="EXACT">Equals to</option>
157
+ <option value="HEAD">Begins with</option>
158
+ <option value="REGEX">Regular expresion</option>
159
+ </select>
160
+ </div>
161
+ <div class="gawd_event_name">
162
+ <input type="text" name="gawd_action_name"/>
163
+ <div class='clear'></div>
164
+ </div>
165
+ <div class='clear'></div>
166
+ </div>
167
+ <div class="event_type_row">
168
+ <div class="gawd_duration_label">Label</div>
169
+ <div class="gawd_event_comparison_input" >
170
+ <select name="gawd_goal_event_match" class="gawd_goal_duration_comparison">
171
+ <option value="EXACT">Equals to</option>
172
+ <option value="HEAD">Begins with</option>
173
+ <option value="REGEX">Regular expresion</option>
174
+ </select>
175
+ </div>
176
+ <div class="gawd_event_name">
177
+ <input type="text" name="gawd_label_name"/>
178
+ <div class='clear'></div>
179
+ </div>
180
+ <div class='clear'></div>
181
+ </div>
182
+ <div class="event_type_row">
183
+ <div class="gawd_duration_label">Value</div>
184
+ <div class="gawd_event_comparison_input" >
185
+ <select name="gawd_goal_event_match" class="gawd_goal_duration_comparison">
186
+ <option value="EXACT">Equals to</option>
187
+ <option value="GREATER_THAN">Greater than</option>
188
+ <option value="LESS_THAN">Less than</option>
189
+ </select>
190
+ </div>
191
+ <div class="gawd_event_name">
192
+ <input type="text" name="gawd_value_name"/>
193
+ <div class='clear'></div>
194
+ </div>
195
+ <div class='clear'></div>
196
+ </div>
197
+
198
+ </div>-->
199
+ <div class="gawd_buttons" id="goal_submit">
200
+ <input class="button_gawd" type="button" name="add_goal" value="Save"/>
201
+ </div>
202
+ <?php wp_nonce_field('gawd_save_form', 'gawd_save_form_fild'); ?>
203
+ <?php if (!empty($goals)) {?>
204
+ <input class="goal_max_id" id="goal_max_id" name="goal_max_id" type="hidden" value="<?php echo count($goals[$profile_id]);?>"/>
205
+ <?php } ?>
206
+
207
+ </form>
208
+ <?php if (!empty($goals)) {
209
+ $counter = 0;
210
+ foreach ($goals as $profile_id => $profile_goals) { ?>
211
+ <table border="1" class="gawd_table" id="<?php echo $profile_id; ?>" style="<?php echo (($counter != 0) ? 'display:none;' : ''); ?>">
212
+ <tr>
213
+ <th>Id</th>
214
+ <th>Name</th>
215
+ <th>Type</th>
216
+ <th>Match Type</th>
217
+ <th>Value</th>
218
+ </tr>
219
+ <?php
220
+ foreach ($profile_goals as $goal) {
221
+ $case_sensitive = $goal['caseSensitive'] ? ' - case sensitive' : '';
222
+ ?>
223
+ <tr class="gawd_rows">
224
+ <td><?php echo $goal['id']; ?></td>
225
+ <td><?php echo $goal['name']; ?></td>
226
+ <td><?php echo $goal['type']; ?></td>
227
+ <td><?php echo $goal['match_type']; ?></td>
228
+ <td><?php echo $goal['value'].$case_sensitive; ?></td>
229
+ </tr>
230
+ <?php
231
+ }
232
+ ?>
233
+ </table>
234
+ <?php $counter++; }
235
+ } ?>
236
+
237
+ </div>
238
+ <script>
239
+ jQuery('.gawd_goal_type').on('change', function () {
240
+ if (jQuery('.gawd_goal_type :selected').val() == 'VISIT_TIME_ON_SITE') {
241
+ jQuery('.gawd_goal_duration_wrap').show();
242
+ jQuery('.gawd_page_sessions').hide();
243
+ jQuery('.gawd_page_destination').hide();
244
+ jQuery('.gawd_page_event').hide();
245
+ } else if (jQuery('.gawd_goal_type :selected').val() == 'VISIT_NUM_PAGES') {
246
+ jQuery('.gawd_goal_duration_wrap').hide();
247
+ jQuery('.gawd_page_destination').hide();
248
+ jQuery('.gawd_page_event').hide();
249
+ jQuery('.gawd_page_sessions').show();
250
+ } else if (jQuery('.gawd_goal_type :selected').val() == 'EVENT') {
251
+ jQuery('.gawd_goal_duration_wrap').hide();
252
+ jQuery('.gawd_page_sessions').hide();
253
+ jQuery('.gawd_page_destination').hide();
254
+ jQuery('.gawd_page_event').show();
255
+ } else {
256
+ jQuery('.gawd_goal_duration_wrap').hide();
257
+ jQuery('.gawd_page_sessions').hide();
258
+ jQuery('.gawd_page_event').hide();
259
+ jQuery('.gawd_page_destination').show();
260
+ }
261
+ });
262
+ jQuery('.button_gawd').on('click',function(){
263
+ if(jQuery('.gawd_table tr').length -1 >= 20){
264
+ alert('You have reached the maximum number of goals.')
265
+ return;
266
+ }
267
+ jQuery('#goal_max_id').val(jQuery('.gawd_rows').length);
268
+ jQuery('#gawd_goal_form').submit();
269
+ });
270
+ jQuery('.gawd_goal_profile').on('change', function(){
271
+ jQuery('.gawd_table').each(function(){
272
+ jQuery(this).hide();
273
+ });
274
+ var id = jQuery(this).val();
275
+ jQuery('#' + id).show();
276
+ });
277
+ </script>
admin/pages/overview.php CHANGED
@@ -1,76 +1,80 @@
1
-
2
- <?php
3
- wp_nonce_field('closedpostboxes', 'closedpostboxesnonce', false );
4
- wp_nonce_field('meta-box-order', 'meta-box-order-nonce', false );
5
- $new_buttons_refresh = '<button data-hint="Click to refresh this report block." class="handlediv load_tooltip button-link gawd-refresh" type="button" id="{{refreshid}}">' . gawd_icons( 'dashicons-update' ) . '</button>';
6
- $new_buttons_full = '<button data-hint="Click to navigate to Real Time report on your Reports page." class="handlediv load_tooltip button-link gawd-more" type="button" id="{{moreid}}">' . gawd_icons( 'dashicons-migrate' ) . '</button>';
7
-
8
- function gawd_icons($dashicons) {
9
-
10
- return '<img src="' . GAWD_URL . '/assets/' . $dashicons . '.png"/>';
11
- }
12
- ?>
13
-
14
- <?php screen_icon('options-general'); ?>
15
- <h2 style="margin-top:10px" class="gawd_page_titles"><?php echo get_admin_page_title(); ?></h2>
16
- <div class="gawd_wrap">
17
- <div class="gawd_row" style="float:left;width:35%; margin-bottom:0">
18
- <div class="gawd_text" style="width: 20%;padding: 9px 12px 9px 14px;">
19
- DATE RANGE
20
- </div>
21
- <div class="gawd_content load_tooltip" style="width: 42%;height: 22px;line-height: 22px;" id="gawd_content_range" data-hint="Choose a date range to display Google Analytics report. Select a predefined or custom period and click Apply.">
22
- <div id="reportrange" class="pull-right" style="float:none !important">
23
- <span></span> <b class="caret"></b>
24
- </div>
25
- <input type="hidden" id="gawd_start_end_date_compact"/>
26
- </div>
27
- <div class='clear'></div>
28
- </div>
29
- <div class="gawd_profiles" id="gawd_profile_wrapper" style="float:right;width: 63%; margin:0">
30
- <form method="post" id="gawd_overview">
31
- <select data-hint="Click to pick the website, overview reports of which you’d like to display." style="width: 41%;" class="gawd_profile_select load_tooltip" name="gawd_id" onchange="change_account(this)">
32
- <?php foreach ($profiles as $property_name => $property): ?>
33
- <optgroup label="<?php echo $property_name; ?>">
34
- <?php foreach ($property as $profile):
35
- $webPropertyId = $profile['webPropertyId'];
36
- $id = $profile['id'];
37
- $name = $profile['name'];
38
- $selected = '';
39
- if($id == $gawd_user_data['gawd_id']){
40
- $selected = 'selected="selected"';
41
- }
42
- ?>
43
- <option value="<?php echo $id; ?>" <?php echo $selected; ?>><?php echo $property_name.' - '.$name ; ?></option>
44
- <?php endforeach ?>
45
- </optgroup>
46
- <?php endforeach ?>
47
- </select>
48
- <div class="clear"></div>
49
- <input type="hidden" name='web_property_name' id='web_property_name'/>
50
- </form>
51
- </div>
52
- <div class="clear"></div>
53
- <?php wp_nonce_field('closedpostboxes', 'closedpostboxesnonce', false ); ?>
54
- <?php wp_nonce_field('meta-box-order', 'meta-box-order-nonce', false ); ?>
55
- <div class="metabox-holder" >
56
- <div class="postbox-container gawd_normal_metabox_conteiner" >
57
- <?php do_meta_boxes( 'gawd_analytics', 'normal', '' ); ?>
58
- </div>
59
- <div class="postbox-container gawd_side_metabox_conteiner" >
60
- <?php do_meta_boxes( 'gawd_analytics', 'side', '' ); ?>
61
- </div>
62
- </div>
63
- </div>
64
-
65
- <script>
66
- function change_account(that){
67
- jQuery('#web_property_name').val(jQuery(that).find(':selected').closest('optgroup').attr('label'));
68
- jQuery('#gawd_overview').submit();
69
- }
70
- var buttons_refresh = '<?php echo $new_buttons_refresh; ?>';
71
- var buttons_full = '<?php echo $new_buttons_full; ?>';
72
- datepicker_js_compact();
73
-
74
- </script>
75
-
 
 
 
 
76
 
1
+
2
+ <?php
3
+ wp_nonce_field('closedpostboxes', 'closedpostboxesnonce', false );
4
+ wp_nonce_field('meta-box-order', 'meta-box-order-nonce', false );
5
+ $new_buttons_refresh = '<button data-hint="Click to refresh this report block." class="handlediv load_tooltip button-link gawd-refresh" type="button" id="{{refreshid}}">' . gawd_icons( 'dashicons-update' ) . '</button>';
6
+ $new_buttons_full = '<button data-hint="Click to navigate to Real Time report on your Reports page." class="handlediv load_tooltip button-link gawd-more" type="button" id="{{moreid}}">' . gawd_icons( 'dashicons-migrate' ) . '</button>';
7
+
8
+ function gawd_icons($dashicons) {
9
+
10
+ return '<img src="' . GAWD_URL . '/assets/' . $dashicons . '.png"/>';
11
+ }
12
+ ?>
13
+
14
+ <?php screen_icon('options-general'); ?>
15
+ <div style="font-size: 14px; font-weight: bold; margin:15px 0">
16
+ This section lets you check the audience overview of your website. Read more in User Guide.
17
+ <a style="color: #00A0D2; text-decoration: none;" target="_blank" href="https://web-dorado.com/wordpress-google-analytics/quick-start/overview.html">Read More in User Manual.</a>
18
+ </div>
19
+ <h2 style="margin-top:10px" class="gawd_page_titles"><?php echo get_admin_page_title(); ?></h2>
20
+ <div class="gawd_wrap">
21
+ <div class="gawd_row" style="float:left;width:35%; margin-bottom:0">
22
+ <div class="gawd_text" style="width: 20%;padding: 9px 12px 9px 14px;">
23
+ DATE RANGE
24
+ </div>
25
+ <div class="gawd_content load_tooltip" style="width: 42%;height: 22px;line-height: 22px;" id="gawd_content_range" data-hint="Choose a date range to display Google Analytics report. Select a predefined or custom period and click Apply.">
26
+ <div id="reportrange" class="pull-right" style="float:none !important">
27
+ <span></span> <b class="caret"></b>
28
+ </div>
29
+ <input type="hidden" id="gawd_start_end_date_compact"/>
30
+ </div>
31
+ <div class='clear'></div>
32
+ </div>
33
+ <div class="gawd_profiles" id="gawd_profile_wrapper" style="float:right;width: 63%; margin:0">
34
+ <form method="post" id="gawd_overview">
35
+ <select data-hint="Click to pick the website, overview reports of which you’d like to display." style="width: 41%;" class="gawd_profile_select load_tooltip" name="gawd_id" onchange="change_account(this)">
36
+ <?php foreach ($profiles as $property_name => $property): ?>
37
+ <optgroup label="<?php echo $property_name; ?>">
38
+ <?php foreach ($property as $profile):
39
+ $webPropertyId = $profile['webPropertyId'];
40
+ $id = $profile['id'];
41
+ $name = $profile['name'];
42
+ $selected = '';
43
+ if($id == $gawd_user_data['gawd_id']){
44
+ $selected = 'selected="selected"';
45
+ }
46
+ ?>
47
+ <option value="<?php echo $id; ?>" <?php echo $selected; ?>><?php echo $property_name.' - '.$name ; ?></option>
48
+ <?php endforeach ?>
49
+ </optgroup>
50
+ <?php endforeach ?>
51
+ </select>
52
+ <div class="clear"></div>
53
+ <input type="hidden" name='web_property_name' id='web_property_name'/>
54
+ </form>
55
+ </div>
56
+ <div class="clear"></div>
57
+ <?php wp_nonce_field('closedpostboxes', 'closedpostboxesnonce', false ); ?>
58
+ <?php wp_nonce_field('meta-box-order', 'meta-box-order-nonce', false ); ?>
59
+ <div class="metabox-holder" >
60
+ <div class="postbox-container gawd_normal_metabox_conteiner" >
61
+ <?php do_meta_boxes( 'gawd_analytics', 'normal', '' ); ?>
62
+ </div>
63
+ <div class="postbox-container gawd_side_metabox_conteiner" >
64
+ <?php do_meta_boxes( 'gawd_analytics', 'side', '' ); ?>
65
+ </div>
66
+ </div>
67
+ </div>
68
+
69
+ <script>
70
+ function change_account(that){
71
+ jQuery('#web_property_name').val(jQuery(that).find(':selected').closest('optgroup').attr('label'));
72
+ jQuery('#gawd_overview').submit();
73
+ }
74
+ var buttons_refresh = '<?php echo $new_buttons_refresh; ?>';
75
+ var buttons_full = '<?php echo $new_buttons_full; ?>';
76
+ datepicker_js_compact();
77
+
78
+ </script>
79
+
80
 
admin/pages/settings.php CHANGED
@@ -1,546 +1,556 @@
1
- <?php
2
- $gawd_settings = get_option('gawd_settings');
3
- $gawd_own_project = get_option('gawd_own_project');
4
- $gawd_client = GAWD_google_client::get_instance();
5
- $profiles = $gawd_client->get_profiles();
6
- $accounts = $gawd_client->get_management_accounts();
7
- $tabs = get_option('gawd_menu_items');
8
- $current_user = get_current_user_id();
9
- $saved_user_menues = get_option('gawd_menu_for_user');
10
-
11
- if(isset($gawd_own_project) && $gawd_own_project && intval($gawd_own_project)==1){
12
- $own_credentials = get_option("gawd_credentials");
13
- $own_cliend_secret = $own_credentials['project_secret'];
14
- $own_cliend_id = $own_credentials['project_id'];
15
- echo'<form method="post" style="width: 92.9%;">
16
- <div class="">
17
- <input type="hidden" name="reset_data" id="reset_data"/>
18
- <input type="button" class="button_gawd" id="gawd_reset_button" value="RESET"/>
19
- <div class="clear"></div>
20
- </div>
21
- </form>';
22
- }
23
- $filters = $gawd_client->get_management_filters();
24
- if (!is_array($filters)) {
25
- $filters = array();
26
- }
27
-
28
- $gawd_permissions = isset($gawd_settings['gawd_permissions']) ? $gawd_settings['gawd_permissions'] : array();
29
- $gawd_excluded_users = isset($gawd_settings['gawd_excluded_users']) ? $gawd_settings['gawd_excluded_users'] : array();
30
- $gawd_excluded_roles = isset($gawd_settings['gawd_excluded_roles']) ? $gawd_settings['gawd_excluded_roles'] : array();
31
- $gawd_backend_roles = isset($gawd_settings['gawd_backend_roles']) ? $gawd_settings['gawd_backend_roles'] : array();
32
- $gawd_frontend_roles = isset($gawd_settings['gawd_frontend_roles']) ? $gawd_settings['gawd_frontend_roles'] : array();
33
- $gawd_post_page_roles = isset($gawd_settings['gawd_post_page_roles']) ? $gawd_settings['gawd_post_page_roles'] : array();
34
- $gawd_file_formats = isset($gawd_settings['gawd_file_formats']) ? $gawd_settings['gawd_file_formats'] : '';
35
- $enable_hover_tooltip = isset($gawd_settings['enable_hover_tooltip']) ? $gawd_settings['enable_hover_tooltip'] : 'on';
36
- $exclude_events = isset($gawd_settings['exclude_events']) ? $gawd_settings['exclude_events'] : '';
37
- $enable_cross_domain = isset($gawd_settings['enable_cross_domain']) ? $gawd_settings['enable_cross_domain'] : '';
38
- $default_date = isset($gawd_settings['default_date']) ? $gawd_settings['default_date'] : '';
39
- $default_date_format = isset($gawd_settings['default_date_format']) ? $gawd_settings['default_date_format'] : '';
40
- $post_page_chart = isset($gawd_settings['post_page_chart']) ? $gawd_settings['post_page_chart'] : '';
41
-
42
- ?>
43
-
44
- <div id="gawd_body">
45
- <div class="resp_menu"><div class="menu_img"></div><div class="button_label">SETTINGS</div><div class="clear"></div></div>
46
- <div class="gawd_menu_coteiner gawd_settings_menu_coteiner">
47
- <ul class="gawd_menu_ul">
48
- <li class="gawd_menu_li" id="gawd_authenicate">
49
- Authenticate
50
- </li>
51
- <li class="gawd_menu_li" id="gawd_alerts">
52
- Alerts
53
- </li>
54
- <li class="gawd_menu_li" id="gawd_pushover">
55
- Pushover
56
- </li>
57
- <li class="gawd_menu_li" id="gawd_filters">
58
- Filters
59
- </li>
60
- <li class="gawd_menu_li" id="gawd_emails">
61
- Emails
62
- </li>
63
- <li class=" gawd_menu_li" id="gawd_advanced">
64
- Advanced
65
- </li>
66
- </ul>
67
- </div>
68
- <div id="gawd_right_conteiner">
69
- <h3 class="gawd_page_titles">Settings</h3>
70
-
71
- <form method="post" id="gawd_form">
72
- <div class="gawd_authenicate">
73
- <div id="opacity_div" style="display: none; background-color: rgba(0, 0, 0, 0.2); position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 99998;"></div>
74
- <div id="loading_div" style="display:none; text-align: center; position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 99999;">
75
- <img src="<?php echo GAWD_URL . '/assets/ajax_loader.gif'; ?>" style="margin-top: 200px; width:50px;">
76
- </div>
77
- <div id="gawd_auth_url" onclick="gawd_auth_popup(<?php echo GAWD_google_client::create_authentication_url();?>, 800,400)" style="cursor: pointer;"> REAUTHENTICATE
78
- </div>
79
- <div id="gawd_auth_code">
80
- <input id="gawd_token" type="text">
81
- <div id="gawd_auth_code_submit">SUBMIT</div>
82
- </div>
83
-
84
- <div class="gawd_own_wrap">
85
- <label for="gawd_own_project">
86
- <input type="checkbox" <?php echo $gawd_own_project != '' ? 'checked disabled' : '';?> name="gawd_own_project" id="gawd_own_project"/>
87
- <span>Use your own project</span>
88
- <div class="gawd_info" title="Mark as checked to use your project, which you created on console.developers.google.com"></div>
89
- </label>
90
- <div class="own_inputs" <?php echo $gawd_own_project != '' ? 'checked' : 'style="display:none"';?>>
91
- <div class="gawd_goal_row">
92
- <div class="gawd_goal_label">Client ID</div>
93
- <div class="gawd_goal_input">
94
- <input type="text" value="<?php echo isset($own_cliend_id) ? $own_cliend_id : '';?>" name="gawd_own_client_id"/>
95
- </div>
96
- <div class="gawd_info" title="Paste Client ID key. For more information about getting project keys please check the plugin documentation."></div>
97
- <div class='clear'></div>
98
- </div>
99
- <div class="gawd_goal_row">
100
- <div class="gawd_goal_label">Client Secret</div>
101
- <div class="gawd_goal_input">
102
- <input type="text" value="<?php echo isset($own_cliend_secret) ? $own_cliend_secret : '';?>" name="gawd_own_client_secret"/>
103
- </div>
104
- <div class="gawd_info" title="Paste Client Secret key. For more information about getting project keys please check the plugin documentation."></div>
105
- <div class='clear'></div>
106
- </div>
107
- </div>
108
- </div>
109
- </div>
110
- <div class="gawd_alerts">
111
- <img style="margin-top:10px" src="<?php echo GAWD_URL . '/assets/freePages/alerts.png';?>"/>
112
- </div>
113
- <div class="gawd_pushover">
114
- <img style="margin-top:10px" src="<?php echo GAWD_URL . '/assets/freePages/pushovers.png';?>"/>
115
- </div>
116
- <div class="gawd_filters">
117
- <div class="gawd_goal_row">
118
- <span class="gawd_goal_label">View</span>
119
-
120
- <span class="gawd_goal_input">
121
- <!--<select title="Click to pick the website, filters of which you’d like to display." name="gawd_id" onchange="change_filter_account(this)">
122
- <?php
123
-
124
- /* foreach ($accounts as $account_name ){
125
- $selected = $account_name['id'] == $gawd_user_data['accountId'] ? 'selected="selected"' : "";
126
- */
127
- ?>
128
- <option value="<?php echo $account_name['id']; ?>" <?php echo $selected; ?>><?php echo $account_name['name'] ; ?></option>
129
- <?php //} ?>-->
130
- </select>
131
- <select title="Click to pick the website, filters of which you’d like to display." name="gawd_id" onchange="change_filter_account(this)">
132
- <?php
133
- foreach ($profiles as $property_name => $property): ?>
134
- <optgroup label="<?php echo $property_name; ?>">
135
- <?php foreach ($property as $profile):
136
- $webPropertyId = $profile['webPropertyId'];
137
- $id = $profile['id'];
138
- $name = $profile['name'];
139
- $selected = '';
140
- if($id == $gawd_user_data['gawd_id']){
141
- $selected = 'selected="selected"';
142
- $filter_account_name = $property_name;
143
- }
144
- ?>
145
- <option value="<?php echo $id; ?>" <?php echo $selected; ?>><?php echo $property_name.' - '.$name ; ?></option>
146
- <?php endforeach ?>
147
- </optgroup>
148
- <?php endforeach ?>
149
- </select>
150
- <input type="hidden" name='account_name' id='account_name'/>
151
- <input type="hidden" name='web_property_name' id='web_property_name'/>
152
- </span>
153
- <div class="gawd_info" title="Select the website, to which you would like to configure this filter."></div>
154
- <div class='clear'></div>
155
- </div>
156
- <div class="gawd_goal_row">
157
- <span class="gawd_goal_label">Name</span>
158
- <span class="gawd_goal_input">
159
- <input id="gawd_goal_name " class="gawd_filter_name_fild" name="gawd_filter_name" type="text">
160
- </span>
161
- <div class="gawd_info" title="Write a title for the filter."></div>
162
- <div class='clear'></div>
163
- </div>
164
- <div class="gawd_goal_row">
165
- <span class="gawd_goal_label">Type</span>
166
- <span class="gawd_goal_input">
167
- <select name="gawd_filter_type" id="gawd_filter_type">
168
- <option data-name="IP" value="GEO_IP_ADDRESS">Exclude Traffic From IP Address</option>
169
- <option data-name="Country" value="GEO_COUNTRY">Exclude Traffic From Country</option>
170
- <option data-name="Region" value="GEO_REGION">Exclude Traffic From Region</option>
171
- <option data-name="City" value="GEO_CITY">Exclude Traffic From City</option>
172
- </select>
173
- </span>
174
- <div class="gawd_info" title="Choose a type for tracking exclusions: IP address, Country, Region or City."></div>
175
- <div class='clear'></div>
176
- </div>
177
- <div class="gawd_goal_row" id="gawd_filter_value_cont">
178
- <span class="gawd_goal_label" id="gawd_filter_name">IP</span>
179
- <span class="gawd_goal_input">
180
- <div class="time_input"><input id="gawd_filter_value" type="text" name="gawd_filter_value"/></div>
181
- </span>
182
- <div class="gawd_info" title="Define IP address to filter from Google Analytics tracking."></div>
183
- <div class='clear'></div>
184
- </div>
185
- <?php
186
- if (!empty($filters)) {
187
- ?>
188
- <table border="1" class="gawd_table">
189
- <tr>
190
- <th>Name</th>
191
- <th>Type</th>
192
- <th>Value</th>
193
- <th>View</th>
194
- <th>Action</th>
195
-
196
- </tr>
197
- <?php
198
- foreach ($filters as $filter) {
199
- $filter_type = 'Not Supported';
200
- $filter_value = $filter['value'] != "" ? $filter['value'] : 'Not Suported';
201
- if($filter['type'] == "GEO_COUNTRY"){
202
- $filter_type = 'Exclude Traffic From Country';
203
- }
204
- elseif($filter['type'] == "GEO_REGION"){
205
- $filter_type = 'Exclude Traffic From Region';
206
- }
207
- elseif($filter['type'] == "GEO_CITY"){
208
- $filter_type = 'Exclude Traffic From City';
209
- }
210
- elseif($filter['type'] == "GEO_IP_ADDRESS"){
211
- $filter_type = 'Exclude Traffic From IP Address';
212
- }
213
- ?>
214
- <tr data-key="<?php echo $filter['id']; ?>" >
215
- <td><?php echo $filter['name']; ?></td>
216
- <td><?php echo $filter_type; ?></td>
217
- <td><?php echo $filter_value; ?></td>
218
- <td><?php echo $filter['view']; ?></td>
219
- <td><a href="" class="gawd_filter_remove" onclick="if (confirm('<?php echo addslashes(__("Do you want to delete selected item?", 'gawd')); ?>')) {gawd_remove_item('<?php echo $filter['id']; ?>','gawd_filter_remove');return false;} else {return false;}">remove</a></td>
220
- </tr>
221
- <?php
222
- }
223
- ?>
224
- </table>
225
- <?php
226
- }
227
- else{
228
- echo 'There is no data for this view.';
229
- }
230
- ?>
231
- </div>
232
- <div class="gawd_emails">
233
- <?php
234
- $gawd_emails = get_option('gawd_email');
235
-
236
- if($gawd_emails){
237
- ?>
238
- <table border="1" class="gawd_table">
239
- <tr>
240
- <th>Subject</th>
241
- <th>Frequency</th>
242
- <th>Start Date</th>
243
- <th>Recipients</th>
244
- <th>View</th>
245
- <th>Action</th>
246
- </tr>
247
- <?php
248
- foreach($gawd_emails as $key => $email){
249
- if($email['period'] == 'gawd_weekly'){
250
- $email['period'] = 'Weekly';
251
- }
252
- elseif($email['period'] == 'gawd_monthly'){
253
- $email['period'] = 'Monthly';
254
- }
255
- else{
256
- $email['period'] = 'Daily';
257
- }
258
- ?>
259
- <tr data-key="<?php echo $key +1; ?>" >
260
- <td><?php echo $email['name']; ?></td>
261
- <td><?php echo $email['period']; ?></td>
262
- <td><?php echo $email['creation_date']; ?></td>
263
- <td><span class="gawd_break"><?php echo implode(', ',$email['emails']); ?></span></td>
264
- <td><span class="gawd_break"><?php echo $email['view_id']; ?></span></td>
265
- <td><a href="" class="gawd_remove_emails" onclick="if (confirm('<?php echo addslashes(__("Do you want to delete selected item?", 'gawd')); ?>')) {gawd_remove_item('<?php echo $key +1; ?>','gawd_email_remove');return false;} else {return false;}">remove</a></td>
266
- </tr>
267
- <?php
268
- }
269
- ?>
270
- </table>
271
- <?php
272
- }
273
- else{
274
- echo '<a href="' . admin_url() . 'admin.php?page=gawd_reports">You can setup sending e-mail to recipients for any report.</a>';
275
- }
276
- ?>
277
- </div>
278
- <div class="gawd_advanced">
279
- <div class="settings_row">
280
- <div class="onoffswitch">
281
- <input type="checkbox" name="gawd_show_in_dashboard" class="onoffswitch-checkbox" id="gawd_show_in_dashboard" <?php echo isset($gawd_settings['gawd_show_in_dashboard']) && 'on' == $gawd_settings['gawd_show_in_dashboard'] ? 'checked' : '';?>>
282
- <label class="onoffswitch-label" for="gawd_show_in_dashboard">
283
- <span class="onoffswitch-inner"></span>
284
- <span class="onoffswitch-switch"></span>
285
- </label>
286
- </div>
287
- <div class="gawd_info" title="Enable this option to display Google Analytics overview report on WordPress Dashboard."></div>
288
- <div class="onoffswitch_text">
289
- Analytics on WordPress Dashboard
290
- </div>
291
- <div class="clear"></div>
292
- </div>
293
- <div class="settings_row">
294
- <div class="onoffswitch">
295
- <input type="checkbox" name="enable_hover_tooltip" class="onoffswitch-checkbox" id="enable_hover_tooltip" <?php echo $enable_hover_tooltip != '' ? 'checked' : '';?>>
296
- <label class="onoffswitch-label" for="enable_hover_tooltip">
297
- <span class="onoffswitch-inner"></span>
298
- <span class="onoffswitch-switch"></span>
299
- </label>
300
- </div>
301
- <div class="gawd_info" title="Click to enable/disable help text for WD Google Analytics reports."></div>
302
- <div class="onoffswitch_text">
303
- Enable reports tooltips
304
- </div>
305
- <div class="clear"></div>
306
- </div>
307
- <div class="settings_row">
308
- <div class="onoffswitch onoffswitch_disabled">
309
- <input disabled type="checkbox" name="adsense_acc_linking" class="onoffswitch-checkbox" id="adsense_acc_linking" >
310
- <label class="onoffswitch-label" for="adsense_acc_linking">
311
- <span class="onoffswitch-inner"></span>
312
- <span class="onoffswitch-switch"></span>
313
- </label>
314
- </div>
315
- <div class="gawd_info" title="Turn this option on to get AdSense tracking reports. Make sure to link your Google AdSense to Google Analytics first (find out more in plugin documentation)"></div>
316
- <div class="onoffswitch_text">
317
- Enable AdSense link tracking <a target="_blank" href="https://web-dorado.com/products/wordpress-google-analytics-plugin.html" class="gawd_pro"> ( This feature is available in Google Analytics WD Pro. )</a>
318
- </div>
319
- <div class="clear"></div>
320
- </div>
321
- <div class="settings_row">
322
- <div class="onoffswitch">
323
- <input type="checkbox" name="post_page_chart" class="onoffswitch-checkbox" id="post_page_chart" <?php echo $post_page_chart != '' ? 'checked' : '';?>>
324
- <label class="onoffswitch-label" for="post_page_chart">
325
- <span class="onoffswitch-inner"></span>
326
- <span class="onoffswitch-switch"></span>
327
- </label>
328
- </div>
329
- <div class="gawd_info" title="Enable this option to display individual page and post reports on frontend and backend."></div>
330
- <div class="onoffswitch_text">
331
- Enable reports on posts/pages (frontend and backend)
332
- </div>
333
- <div class="clear"></div>
334
- </div>
335
- <div class="settings_row">
336
- <div class="onoffswitch">
337
- <input type="checkbox" name="exclude_events" class="onoffswitch-checkbox" id="exclude_events" <?php echo $exclude_events != '' ? 'checked' : '';?>>
338
- <label class="onoffswitch-label" for="exclude_events">
339
- <span class="onoffswitch-inner"></span>
340
- <span class="onoffswitch-switch"></span>
341
- </label>
342
- </div>
343
- <div class="gawd_info" title="For example, watching a video is a non-interactive event, whereas submitting a form is interactive. Enable this option to filter non-interactive events while calculating bounce-rate."></div>
344
- <div class="onoffswitch_text">
345
- Exclude non-interactive events from bounce-rate calculation
346
- </div>
347
- <div class="clear"></div>
348
- </div>
349
- <div class="settings_row">
350
- <div class="onoffswitch">
351
- <input type="checkbox" name="enable_cross_domain" class="onoffswitch-checkbox" id="enable_cross_domain" <?php echo $enable_cross_domain != '' ? 'checked' : '';?>>
352
- <label class="onoffswitch-label" for="enable_cross_domain">
353
- <span class="onoffswitch-inner"></span>
354
- <span class="onoffswitch-switch"></span>
355
- </label>
356
- </div>
357
- <div class="gawd_info" title="Enable Cross domain tracking to let Google Analytics see similar activities on two related websites as single session."></div>
358
- <div class="onoffswitch_text">
359
- Enable Cross Domain Tracking
360
- </div>
361
- <div class="clear"></div>
362
- </div>
363
- <?php
364
- $cross_dom_show = $enable_cross_domain == '' ? 'style="display:none"' : '';
365
- ?>
366
- <div id="cross_domains" class="gawd_goal_row" <?php echo $cross_dom_show;?>>
367
- <span class="gawd_goal_label">Cross Domains</span>
368
- <span class="gawd_goal_input">
369
- <div class="time_input">
370
- <?php $gawd_settings_cross_domains = get_option("gawd_settings");
371
- if(isset($gawd_settings_cross_domains) && isset($gawd_settings_cross_domains["cross_domains"])){
372
- $gawd_settings_cross_domains = $gawd_settings_cross_domains["cross_domains"];
373
- }else{
374
- $gawd_settings_cross_domains = "";
375
- }
376
- ?>
377
- <input type="text" value="<?php echo $gawd_settings_cross_domains;?>" name="cross_domains">
378
- </div>
379
- </span>
380
- <div class="gawd_info" title="Provide cross domain links separated by commas. The links should have the following format: http://example.com"></div>
381
- <div class="clear"></div>
382
- </div>
383
-
384
- <div class="gawd_goal_row">
385
- <?php $gawd_settings_site_speed_rate = get_option("gawd_settings");
386
- if(isset($gawd_settings_site_speed_rate) && isset($gawd_settings_site_speed_rate["site_speed_rate"])){
387
- $gawd_settings_site_speed_rate = intval($gawd_settings_site_speed_rate["site_speed_rate"]);
388
- }else{
389
- $gawd_settings_site_speed_rate = 1;
390
- }
391
- ?>
392
- <span class="gawd_goal_label">Site Speed SR (%)</span>
393
- <span class="gawd_goal_input">
394
- <div class="time_input"><input value="<?php echo $gawd_settings_site_speed_rate;?>" type="number" min="1" name="site_speed_rate"></div>
395
- </span>
396
- <div class="gawd_info" title="Define the percentage of users, which activity should be evaluated for Site Speed report."></div>
397
- <div class="clear"></div>
398
- </div>
399
- <div class="gawd_goal_row">
400
- <div class="gawd_goal_label">Back end plugin permissions</div>
401
- <div class="checkbox_wrap">
402
- <?php
403
- $roles = new WP_Roles();
404
- $settings_label_count = 0;
405
- foreach($roles->role_names as $key => $name){
406
- $settings_label_count++;
407
- if($name == 'Administrator'){
408
- $key = 'manage_options';
409
- }
410
- elseif($name == 'Editor'){
411
- $key = 'moderate_comments';
412
- }
413
- elseif($name == 'Author'){
414
- $key = 'publish_posts';
415
- }
416
- elseif($name == 'Contributor'){
417
- $key = 'edit_posts';
418
- }
419
- else{
420
- $key = 'read';
421
- }
422
- ?>
423
- <div class="setting_time_wrap time_wrap">
424
- <input id="inp<?php echo $settings_label_count;?>"<?php echo $key == 'manage_options' ? 'disabled' : '';?> class="gawd_perm" type="checkbox" name="gawd_permissions[]" <?php echo in_array($key,$gawd_permissions) || $key == 'manage_options' ? 'checked' : '';?> value="<?php echo $key;?>"/>
425
- <label for="inp<?php echo $settings_label_count;?>"><?php echo $name;?></label>
426
- </div>
427
- <?php
428
- }
429
- ?>
430
- <div class='clear'></div>
431
- </div>
432
- <div class="gawd_info" title="Select user roles to permit access to WD Google Analytics plugin. Only Administrator users can view it by default."></div>
433
- <div class='clear'></div>
434
- </div>
435
- <div class="gawd_goal_row">
436
- <div class="gawd_goal_label">Dashboard overview permissions</div>
437
- <div class="checkbox_wrap">
438
- <?php $roles = new WP_Roles();
439
- $inp_id = 0;
440
- foreach($roles->role_names as $key => $name){
441
- $inp_id++;
442
- ?>
443
- <div class="time_wrap">
444
- <input id="dashboard_overview_permissions<?php echo $inp_id;?>" <?php echo $key == 'administrator' ? 'disabled' : '';?> class="gawd_perm" type="checkbox" name="gawd_backend_roles[]" <?php echo in_array($key,$gawd_backend_roles) || $key == 'administrator' ? 'checked' : '';?> value="<?php echo $key;?>"/>
445
- <label for="dashboard_overview_permissions<?php echo $inp_id;?>"><?php echo $name;?></label>
446
- </div>
447
- <?php
448
- }
449
- ?>
450
- <div class='clear'></div>
451
- </div>
452
- <div class="gawd_info" title="Select user roles, which will have access to view WordPress Dashboard report."></div>
453
- <div class='clear'></div>
454
- </div>
455
- <div class="gawd_goal_row">
456
- <div class="gawd_goal_label">Post/Page report permissions</div>
457
- <div class="checkbox_wrap">
458
- <?php $roles = new WP_Roles();
459
- $inp_id = 0;
460
- foreach($roles->role_names as $key => $name){
461
- $inp_id++;
462
- ?>
463
- <div class="time_wrap">
464
- <input id="gawd_post_page_roles<?php echo $inp_id?>" <?php echo $key == 'administrator' ? 'disabled' : '';?> class="gawd_perm" type="checkbox" name="gawd_post_page_roles[]" <?php echo in_array($key,$gawd_post_page_roles) || $key == 'administrator' ? 'checked' : '';?> value="<?php echo $key;?>"/>
465
- <label for="gawd_post_page_roles<?php echo $inp_id?>"><?php echo $name;?></label>
466
- </div>
467
- <?php
468
- }
469
- ?>
470
- <div class='clear'></div>
471
- </div>
472
- <div class="gawd_info" title="Select user roles, which will have access to view reports from frontend of your website."></div>
473
- <div class='clear'></div>
474
- </div>
475
- <div class="gawd_goal_row">
476
- <div class="gawd_goal_label">Frontend report permissions</div>
477
- <div class="checkbox_wrap">
478
- <?php $roles = new WP_Roles();
479
- $inp_id = 0;
480
- foreach($roles->role_names as $key => $name){
481
- $inp_id++;
482
- ?>
483
- <div class="time_wrap">
484
- <input id="frontend_report_permissions<?php echo $inp_id?>" <?php echo $key == 'administrator' ? 'disabled' : '';?> class="gawd_perm" type="checkbox" name="gawd_frontend_roles[]" <?php echo in_array($key,$gawd_frontend_roles) || $key == 'administrator' ? 'checked' : '';?> value="<?php echo $key;?>"/>
485
- <label for="frontend_report_permissions<?php echo $inp_id?>"><?php echo $name;?></label>
486
- </div>
487
- <?php
488
- }
489
- ?>
490
- <div class='clear'></div>
491
- </div>
492
- <div class="gawd_info" title="Select user roles, which will have access to view reports from frontend of your website."></div>
493
- <div class='clear'></div>
494
- </div>
495
- <div class="gawd_goal_row">
496
- <span class="gawd_goal_label">Date format</span>
497
- <span class="gawd_goal_input">
498
- <select name="default_date_format" id="default_date_format">
499
- <option <?php selected($default_date_format,'ymd_with_week');?> value="ymd_with_week">l, Y-m-d</option>
500
- <option <?php selected($default_date_format,'ymd_without_week');?> value="ymd_without_week">Y-m-d</option>
501
- <option <?php selected($default_date_format,'month_name_with_week');?> value="month_name_with_week">l, F d, Y</option>
502
- <option <?php selected($default_date_format,'month_name_without_week');?> value="month_name_without_week">F d, Y</option>
503
- </select>
504
- </span>
505
- <div class="gawd_info" title="Choose the date format"></div>
506
- <div class='clear'></div>
507
- </div>
508
- <div class="gawd_goal_row">
509
- <span class="gawd_goal_label">Default Date</span>
510
- <span class="gawd_goal_input">
511
- <select name="default_date" id="default_date">
512
- <option id='gawd_last_30days' <?php selected($default_date,'last_30days');?> value="last_30days">Last 30 Days</option>
513
- <option id='gawd_last_7days' <?php selected($default_date,'last_7days');?> value="last_7days">Last 7 Days</option>
514
- <option id='gawd_last_week' <?php selected($default_date,'last_week');?> value="last_week">Last Week</option>
515
- <option id='gawd_this_month' <?php selected($default_date,'this_month');?> value="this_month">This Month</option>
516
- <option id='gawd_last_month' <?php selected($default_date,'last_month');?> value="last_month">Last Month</option>
517
- <option id='gawd_today' <?php selected($default_date,'today');?> value="today">Today</option>
518
- <option id='gawd_yesterday' <?php selected($default_date,'yesterday');?> value="yesterday">Yesterday</option>
519
- </select>
520
- </span>
521
- <div class="gawd_info" title="Choose the initial time period, which will be applied to all reports as their date range."></div>
522
- <div class='clear'></div>
523
- </div>
524
- </div>
525
- <div class="gawd_submit">
526
- <input type="button" class="button_gawd" id="gawd_settings_button"value="SAVE"/>
527
- <input type="button" style="display:none;" class="button_gawd" id="gawd_settings_logout"value="Logout"/>
528
- </div>
529
- <input type='hidden' name="gawd_alert_remove" id="gawd_alert_remove"/>
530
- <input type='hidden' name="gawd_menu_remove" id="gawd_menu_remove"/>
531
- <input type='hidden' name="gawd_pushover_remove" id="gawd_pushover_remove"/>
532
- <input type='hidden' name="gawd_email_remove" id="gawd_email_remove"/>
533
- <input type='hidden' name="gawd_filter_remove" id="gawd_filter_remove"/>
534
- <input type='hidden' name="gawd_settings_tab" id="gawd_settings_tab"/>
535
- <input type='hidden' name="settings_submit" id="gawd_settings_submit"/>
536
- <input type='hidden' name="gawd_settings_logout" id="gawd_settings_logout_val"/>
537
- <?php wp_nonce_field('gawd_save_form', 'gawd_save_form_fild'); ?>
538
- </form>
539
- </div>
540
-
541
- <div class="clear"></div>
542
- </div>
543
-
544
- <script>
545
-
546
- </script>
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $gawd_settings = get_option('gawd_settings');
3
+ $gawd_own_project = get_option('gawd_own_project');
4
+ $gawd_client = GAWD_google_client::get_instance();
5
+ $profiles = $gawd_client->get_profiles();
6
+ $accounts = $gawd_client->get_management_accounts();
7
+ $tabs = get_option('gawd_menu_items');
8
+ $current_user = get_current_user_id();
9
+ $saved_user_menues = get_option('gawd_menu_for_user');
10
+
11
+ if(isset($gawd_own_project) && $gawd_own_project && intval($gawd_own_project)==1){
12
+ $own_credentials = get_option("gawd_credentials");
13
+ $own_cliend_secret = $own_credentials['project_secret'];
14
+ $own_cliend_id = $own_credentials['project_id'];
15
+ echo'<form method="post" style="width: 92.9%;">
16
+ <div class="">
17
+ <input type="hidden" name="reset_data" id="reset_data"/>
18
+ <input type="button" class="button_gawd" id="gawd_reset_button" value="RESET"/>
19
+ <div class="clear"></div>
20
+ </div>
21
+ </form>';
22
+ }
23
+ $filters = $gawd_client->get_management_filters();
24
+ if (!is_array($filters)) {
25
+ $filters = array();
26
+ }
27
+
28
+ $gawd_permissions = isset($gawd_settings['gawd_permissions']) ? $gawd_settings['gawd_permissions'] : array();
29
+ $gawd_excluded_users = isset($gawd_settings['gawd_excluded_users']) ? $gawd_settings['gawd_excluded_users'] : array();
30
+ $gawd_excluded_roles = isset($gawd_settings['gawd_excluded_roles']) ? $gawd_settings['gawd_excluded_roles'] : array();
31
+ $gawd_backend_roles = isset($gawd_settings['gawd_backend_roles']) ? $gawd_settings['gawd_backend_roles'] : array();
32
+ $gawd_frontend_roles = isset($gawd_settings['gawd_frontend_roles']) ? $gawd_settings['gawd_frontend_roles'] : array();
33
+ $gawd_post_page_roles = isset($gawd_settings['gawd_post_page_roles']) ? $gawd_settings['gawd_post_page_roles'] : array();
34
+ $gawd_file_formats = isset($gawd_settings['gawd_file_formats']) ? $gawd_settings['gawd_file_formats'] : '';
35
+ $enable_hover_tooltip = isset($gawd_settings['enable_hover_tooltip']) ? $gawd_settings['enable_hover_tooltip'] : 'on';
36
+ $exclude_events = isset($gawd_settings['exclude_events']) ? $gawd_settings['exclude_events'] : '';
37
+ $enable_cross_domain = isset($gawd_settings['enable_cross_domain']) ? $gawd_settings['enable_cross_domain'] : '';
38
+ $default_date = isset($gawd_settings['default_date']) ? $gawd_settings['default_date'] : '';
39
+ $default_date_format = isset($gawd_settings['default_date_format']) ? $gawd_settings['default_date_format'] : '';
40
+ $post_page_chart = isset($gawd_settings['post_page_chart']) ? $gawd_settings['post_page_chart'] : '';
41
+
42
+ ?>
43
+
44
+ <div id="gawd_body">
45
+ <div style="font-size: 14px; font-weight: bold; margin:15px 0">
46
+ Authenticate your Google account and customize Google Analytics settings in this section. Read more in User Guide.
47
+ <a style="color: #00A0D2; text-decoration: none;" target="_blank" href="https://web-dorado.com/wordpress-google-analytics/settings.html">Read More in User Manual.</a>
48
+ </div>
49
+ <div class="resp_menu"><div class="menu_img"></div><div class="button_label">SETTINGS</div><div class="clear"></div></div>
50
+ <div class="gawd_menu_coteiner gawd_settings_menu_coteiner">
51
+ <ul class="gawd_menu_ul">
52
+ <li class="gawd_menu_li" id="gawd_authenicate">
53
+ Authenticate
54
+ </li>
55
+ <li class="gawd_menu_li gawd_pro_menu" id="gawd_alerts">
56
+ Alerts
57
+ <span class="gawd_pro_flag">Paid</span>
58
+ </li>
59
+ <li class="gawd_menu_li gawd_pro_menu" id="gawd_pushover">
60
+ Pushover
61
+ <span class="gawd_pro_flag">Paid</span>
62
+ </li>
63
+ <li class="gawd_menu_li" id="gawd_filters">
64
+ Filters
65
+ </li>
66
+ <li class="gawd_menu_li" id="gawd_emails">
67
+ Emails
68
+ </li>
69
+ <li class=" gawd_menu_li" id="gawd_advanced">
70
+ Advanced
71
+ </li>
72
+ </ul>
73
+ </div>
74
+ <div id="gawd_right_conteiner">
75
+ <h3 class="gawd_page_titles">Settings</h3>
76
+
77
+ <form method="post" id="gawd_form">
78
+ <div class="gawd_authenicate">
79
+ <div id="opacity_div" style="display: none; background-color: rgba(0, 0, 0, 0.2); position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 99998;"></div>
80
+ <div id="loading_div" style="display:none; text-align: center; position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 99999;">
81
+ <img src="<?php echo GAWD_URL . '/assets/ajax_loader.gif'; ?>" style="margin-top: 200px; width:50px;">
82
+ </div>
83
+ <div id="gawd_auth_url" style="cursor: pointer; margin: -10px 0 20px 0;">
84
+ <div style="float:left; color:#444;padding:5px 5px 5px 0">Press <b>Reauthenticate</b> button to change your Google account.</div>
85
+ <div class="gawd_auth_button" onclick="gawd_auth_popup(<?php echo GAWD_google_client::create_authentication_url();?>, 800,400)">REAUTHENTICATE</div>
86
+ <div class="clear"></div>
87
+ </div>
88
+ <div id="gawd_auth_code">
89
+ <p style="margin:0;color: #444;">Paste the authentication code from the popup to this input.</p>
90
+ <input id="gawd_token" type="text">
91
+ <div id="gawd_auth_code_submit">SUBMIT</div>
92
+ </div>
93
+
94
+ <div class="gawd_own_wrap">
95
+ <label for="gawd_own_project">
96
+ <input type="checkbox" <?php echo $gawd_own_project != '' ? 'checked disabled' : '';?> name="gawd_own_project" id="gawd_own_project"/>
97
+ <span>Use your own project</span>
98
+ <div class="gawd_info" title="Mark as checked to use your project, which you created on console.developers.google.com"></div>
99
+ </label>
100
+ <div class="own_inputs" <?php echo $gawd_own_project != '' ? 'checked' : 'style="display:none"';?>>
101
+ <div class="gawd_goal_row">
102
+ <div class="gawd_goal_label">Client ID</div>
103
+ <div class="gawd_goal_input">
104
+ <input type="text" value="<?php echo isset($own_cliend_id) ? $own_cliend_id : '';?>" name="gawd_own_client_id"/>
105
+ </div>
106
+ <div class="gawd_info" title="Paste Client ID key. For more information about getting project keys please check the plugin documentation."></div>
107
+ <div class='clear'></div>
108
+ </div>
109
+ <div class="gawd_goal_row">
110
+ <div class="gawd_goal_label">Client Secret</div>
111
+ <div class="gawd_goal_input">
112
+ <input type="text" value="<?php echo isset($own_cliend_secret) ? $own_cliend_secret : '';?>" name="gawd_own_client_secret"/>
113
+ </div>
114
+ <div class="gawd_info" title="Paste Client Secret key. For more information about getting project keys please check the plugin documentation."></div>
115
+ <div class='clear'></div>
116
+ </div>
117
+ </div>
118
+ </div>
119
+ </div>
120
+ <div class="gawd_alerts">
121
+ <img style="margin-top:10px" src="<?php echo GAWD_URL . '/assets/freePages/alerts.png';?>"/>
122
+ </div>
123
+ <div class="gawd_pushover">
124
+ <img style="margin-top:10px" src="<?php echo GAWD_URL . '/assets/freePages/pushovers.png';?>"/>
125
+ </div>
126
+ <div class="gawd_filters">
127
+ <div class="gawd_goal_row">
128
+ <span class="gawd_goal_label">View</span>
129
+
130
+ <span class="gawd_goal_input">
131
+ <!--<select title="Click to pick the website, filters of which you’d like to display." name="gawd_id" onchange="change_filter_account(this)">
132
+ <?php
133
+
134
+ /* foreach ($accounts as $account_name ){
135
+ $selected = $account_name['id'] == $gawd_user_data['accountId'] ? 'selected="selected"' : "";
136
+ */
137
+ ?>
138
+ <option value="<?php echo $account_name['id']; ?>" <?php echo $selected; ?>><?php echo $account_name['name'] ; ?></option>
139
+ <?php //} ?>-->
140
+ </select>
141
+ <select title="Click to pick the website, filters of which you’d like to display." name="gawd_id" onchange="change_filter_account(this)">
142
+ <?php
143
+ foreach ($profiles as $property_name => $property): ?>
144
+ <optgroup label="<?php echo $property_name; ?>">
145
+ <?php foreach ($property as $profile):
146
+ $webPropertyId = $profile['webPropertyId'];
147
+ $id = $profile['id'];
148
+ $name = $profile['name'];
149
+ $selected = '';
150
+ if($id == $gawd_user_data['gawd_id']){
151
+ $selected = 'selected="selected"';
152
+ $filter_account_name = $property_name;
153
+ }
154
+ ?>
155
+ <option value="<?php echo $id; ?>" <?php echo $selected; ?>><?php echo $property_name.' - '.$name ; ?></option>
156
+ <?php endforeach ?>
157
+ </optgroup>
158
+ <?php endforeach ?>
159
+ </select>
160
+ <input type="hidden" name='account_name' id='account_name'/>
161
+ <input type="hidden" name='web_property_name' id='web_property_name'/>
162
+ </span>
163
+ <div class="gawd_info" title="Select the website, to which you would like to configure this filter."></div>
164
+ <div class='clear'></div>
165
+ </div>
166
+ <div class="gawd_goal_row">
167
+ <span class="gawd_goal_label">Name</span>
168
+ <span class="gawd_goal_input">
169
+ <input id="gawd_goal_name " class="gawd_filter_name_fild" name="gawd_filter_name" type="text">
170
+ </span>
171
+ <div class="gawd_info" title="Write a title for the filter."></div>
172
+ <div class='clear'></div>
173
+ </div>
174
+ <div class="gawd_goal_row">
175
+ <span class="gawd_goal_label">Type</span>
176
+ <span class="gawd_goal_input">
177
+ <select name="gawd_filter_type" id="gawd_filter_type">
178
+ <option data-name="IP" value="GEO_IP_ADDRESS">Exclude Traffic From IP Address</option>
179
+ <option data-name="Country" value="GEO_COUNTRY">Exclude Traffic From Country</option>
180
+ <option data-name="Region" value="GEO_REGION">Exclude Traffic From Region</option>
181
+ <option data-name="City" value="GEO_CITY">Exclude Traffic From City</option>
182
+ </select>
183
+ </span>
184
+ <div class="gawd_info" title="Choose a type for tracking exclusions: IP address, Country, Region or City."></div>
185
+ <div class='clear'></div>
186
+ </div>
187
+ <div class="gawd_goal_row" id="gawd_filter_value_cont">
188
+ <span class="gawd_goal_label" id="gawd_filter_name">IP</span>
189
+ <span class="gawd_goal_input">
190
+ <div class="time_input"><input id="gawd_filter_value" type="text" name="gawd_filter_value"/></div>
191
+ </span>
192
+ <div class="gawd_info" title="Define IP address to filter from Google Analytics tracking."></div>
193
+ <div class='clear'></div>
194
+ </div>
195
+ <?php
196
+ if (!empty($filters)) {
197
+ ?>
198
+ <table border="1" class="gawd_table">
199
+ <tr>
200
+ <th>Name</th>
201
+ <th>Type</th>
202
+ <th>Value</th>
203
+ <th>View</th>
204
+ <th>Action</th>
205
+
206
+ </tr>
207
+ <?php
208
+ foreach ($filters as $filter) {
209
+ $filter_type = 'Not Supported';
210
+ $filter_value = $filter['value'] != "" ? $filter['value'] : 'Not Suported';
211
+ if($filter['type'] == "GEO_COUNTRY"){
212
+ $filter_type = 'Exclude Traffic From Country';
213
+ }
214
+ elseif($filter['type'] == "GEO_REGION"){
215
+ $filter_type = 'Exclude Traffic From Region';
216
+ }
217
+ elseif($filter['type'] == "GEO_CITY"){
218
+ $filter_type = 'Exclude Traffic From City';
219
+ }
220
+ elseif($filter['type'] == "GEO_IP_ADDRESS"){
221
+ $filter_type = 'Exclude Traffic From IP Address';
222
+ }
223
+ ?>
224
+ <tr data-key="<?php echo $filter['id']; ?>" >
225
+ <td><?php echo $filter['name']; ?></td>
226
+ <td><?php echo $filter_type; ?></td>
227
+ <td><?php echo $filter_value; ?></td>
228
+ <td><?php echo $filter['view']; ?></td>
229
+ <td><a href="" class="gawd_filter_remove" onclick="if (confirm('<?php echo addslashes(__("Do you want to delete selected item?", 'gawd')); ?>')) {gawd_remove_item('<?php echo $filter['id']; ?>','gawd_filter_remove');return false;} else {return false;}">remove</a></td>
230
+ </tr>
231
+ <?php
232
+ }
233
+ ?>
234
+ </table>
235
+ <?php
236
+ }
237
+ else{
238
+ echo 'There is no data for this view.';
239
+ }
240
+ ?>
241
+ </div>
242
+ <div class="gawd_emails">
243
+ <?php
244
+ $gawd_emails = get_option('gawd_email');
245
+
246
+ if($gawd_emails){
247
+ ?>
248
+ <table border="1" class="gawd_table">
249
+ <tr>
250
+ <th>Subject</th>
251
+ <th>Frequency</th>
252
+ <th>Start Date</th>
253
+ <th>Recipients</th>
254
+ <th>View</th>
255
+ <th>Action</th>
256
+ </tr>
257
+ <?php
258
+ foreach($gawd_emails as $key => $email){
259
+ if($email['period'] == 'gawd_weekly'){
260
+ $email['period'] = 'Weekly';
261
+ }
262
+ elseif($email['period'] == 'gawd_monthly'){
263
+ $email['period'] = 'Monthly';
264
+ }
265
+ else{
266
+ $email['period'] = 'Daily';
267
+ }
268
+ ?>
269
+ <tr data-key="<?php echo $key +1; ?>" >
270
+ <td><?php echo $email['name']; ?></td>
271
+ <td><?php echo $email['period']; ?></td>
272
+ <td><?php echo $email['creation_date']; ?></td>
273
+ <td><span class="gawd_break"><?php echo implode(', ',$email['emails']); ?></span></td>
274
+ <td><span class="gawd_break"><?php echo $email['view_id']; ?></span></td>
275
+ <td><a href="" class="gawd_remove_emails" onclick="if (confirm('<?php echo addslashes(__("Do you want to delete selected item?", 'gawd')); ?>')) {gawd_remove_item('<?php echo $key +1; ?>','gawd_email_remove');return false;} else {return false;}">remove</a></td>
276
+ </tr>
277
+ <?php
278
+ }
279
+ ?>
280
+ </table>
281
+ <?php
282
+ }
283
+ else{
284
+ echo '<a href="' . admin_url() . 'admin.php?page=gawd_reports">You can setup sending e-mail to recipients for any report.</a>';
285
+ }
286
+ ?>
287
+ </div>
288
+ <div class="gawd_advanced">
289
+ <div class="settings_row">
290
+ <div class="onoffswitch">
291
+ <input type="checkbox" name="gawd_show_in_dashboard" class="onoffswitch-checkbox" id="gawd_show_in_dashboard" <?php echo isset($gawd_settings['gawd_show_in_dashboard']) && 'on' == $gawd_settings['gawd_show_in_dashboard'] ? 'checked' : '';?>>
292
+ <label class="onoffswitch-label" for="gawd_show_in_dashboard">
293
+ <span class="onoffswitch-inner"></span>
294
+ <span class="onoffswitch-switch"></span>
295
+ </label>
296
+ </div>
297
+ <div class="gawd_info" title="Enable this option to display Google Analytics overview report on WordPress Dashboard."></div>
298
+ <div class="onoffswitch_text">
299
+ Analytics on WordPress Dashboard
300
+ </div>
301
+ <div class="clear"></div>
302
+ </div>
303
+ <div class="settings_row">
304
+ <div class="onoffswitch">
305
+ <input type="checkbox" name="enable_hover_tooltip" class="onoffswitch-checkbox" id="enable_hover_tooltip" <?php echo $enable_hover_tooltip != '' ? 'checked' : '';?>>
306
+ <label class="onoffswitch-label" for="enable_hover_tooltip">
307
+ <span class="onoffswitch-inner"></span>
308
+ <span class="onoffswitch-switch"></span>
309
+ </label>
310
+ </div>
311
+ <div class="gawd_info" title="Click to enable/disable help text for WD Google Analytics reports."></div>
312
+ <div class="onoffswitch_text">
313
+ Enable reports tooltips
314
+ </div>
315
+ <div class="clear"></div>
316
+ </div>
317
+ <div class="settings_row">
318
+ <div class="onoffswitch onoffswitch_disabled">
319
+ <input disabled type="checkbox" name="adsense_acc_linking" class="onoffswitch-checkbox" id="adsense_acc_linking" >
320
+ <label class="onoffswitch-label" for="adsense_acc_linking">
321
+ <span class="onoffswitch-inner"></span>
322
+ <span class="onoffswitch-switch"></span>
323
+ </label>
324
+ </div>
325
+ <div class="gawd_info" title="Turn this option on to get AdSense tracking reports. Make sure to link your Google AdSense to Google Analytics first (find out more in plugin documentation)"></div>
326
+ <div class="onoffswitch_text">
327
+ Enable AdSense link tracking <a target="_blank" href="https://web-dorado.com/products/wordpress-google-analytics-plugin.html" class="gawd_pro"> ( This feature is available in Google Analytics WD Pro. )</a>
328
+ </div>
329
+ <div class="clear"></div>
330
+ </div>
331
+ <div class="settings_row">
332
+ <div class="onoffswitch">
333
+ <input type="checkbox" name="post_page_chart" class="onoffswitch-checkbox" id="post_page_chart" <?php echo $post_page_chart != '' ? 'checked' : '';?>>
334
+ <label class="onoffswitch-label" for="post_page_chart">
335
+ <span class="onoffswitch-inner"></span>
336
+ <span class="onoffswitch-switch"></span>
337
+ </label>
338
+ </div>
339
+ <div class="gawd_info" title="Enable this option to display individual page and post reports on frontend and backend."></div>
340
+ <div class="onoffswitch_text">
341
+ Enable reports on posts/pages (frontend and backend)
342
+ </div>
343
+ <div class="clear"></div>
344
+ </div>
345
+ <div class="settings_row">
346
+ <div class="onoffswitch">
347
+ <input type="checkbox" name="exclude_events" class="onoffswitch-checkbox" id="exclude_events" <?php echo $exclude_events != '' ? 'checked' : '';?>>
348
+ <label class="onoffswitch-label" for="exclude_events">
349
+ <span class="onoffswitch-inner"></span>
350
+ <span class="onoffswitch-switch"></span>
351
+ </label>
352
+ </div>
353
+ <div class="gawd_info" title="For example, watching a video is a non-interactive event, whereas submitting a form is interactive. Enable this option to filter non-interactive events while calculating bounce-rate."></div>
354
+ <div class="onoffswitch_text">
355
+ Exclude non-interactive events from bounce-rate calculation
356
+ </div>
357
+ <div class="clear"></div>
358
+ </div>
359
+ <div class="settings_row">
360
+ <div class="onoffswitch">
361
+ <input type="checkbox" name="enable_cross_domain" class="onoffswitch-checkbox" id="enable_cross_domain" <?php echo $enable_cross_domain != '' ? 'checked' : '';?>>
362
+ <label class="onoffswitch-label" for="enable_cross_domain">
363
+ <span class="onoffswitch-inner"></span>
364
+ <span class="onoffswitch-switch"></span>
365
+ </label>
366
+ </div>
367
+ <div class="gawd_info" title="Enable Cross domain tracking to let Google Analytics see similar activities on two related websites as single session."></div>
368
+ <div class="onoffswitch_text">
369
+ Enable Cross Domain Tracking
370
+ </div>
371
+ <div class="clear"></div>
372
+ </div>
373
+ <?php
374
+ $cross_dom_show = $enable_cross_domain == '' ? 'style="display:none"' : '';
375
+ ?>
376
+ <div id="cross_domains" class="gawd_goal_row" <?php echo $cross_dom_show;?>>
377
+ <span class="gawd_goal_label">Cross Domains</span>
378
+ <span class="gawd_goal_input">
379
+ <div class="time_input">
380
+ <?php $gawd_settings_cross_domains = get_option("gawd_settings");
381
+ if(isset($gawd_settings_cross_domains) && isset($gawd_settings_cross_domains["cross_domains"])){
382
+ $gawd_settings_cross_domains = $gawd_settings_cross_domains["cross_domains"];
383
+ }else{
384
+ $gawd_settings_cross_domains = "";
385
+ }
386
+ ?>
387
+ <input type="text" value="<?php echo $gawd_settings_cross_domains;?>" name="cross_domains">
388
+ </div>
389
+ </span>
390
+ <div class="gawd_info" title="Provide cross domain links separated by commas. The links should have the following format: http://example.com"></div>
391
+ <div class="clear"></div>
392
+ </div>
393
+
394
+ <div class="gawd_goal_row">
395
+ <?php $gawd_settings_site_speed_rate = get_option("gawd_settings");
396
+ if(isset($gawd_settings_site_speed_rate) && isset($gawd_settings_site_speed_rate["site_speed_rate"])){
397
+ $gawd_settings_site_speed_rate = intval($gawd_settings_site_speed_rate["site_speed_rate"]);
398
+ }else{
399
+ $gawd_settings_site_speed_rate = 1;
400
+ }
401
+ ?>
402
+ <span class="gawd_goal_label">Site Speed SR (%)</span>
403
+ <span class="gawd_goal_input">
404
+ <div class="time_input"><input value="<?php echo $gawd_settings_site_speed_rate;?>" type="number" min="1" name="site_speed_rate"></div>
405
+ </span>
406
+ <div class="gawd_info" title="Define the percentage of users, which activity should be evaluated for Site Speed report."></div>
407
+ <div class="clear"></div>
408
+ </div>
409
+ <div class="gawd_goal_row">
410
+ <div class="gawd_goal_label">Back end plugin permissions</div>
411
+ <div class="checkbox_wrap">
412
+ <?php
413
+ $roles = new WP_Roles();
414
+ $settings_label_count = 0;
415
+ foreach($roles->role_names as $key => $name){
416
+ $settings_label_count++;
417
+ if($name == 'Administrator'){
418
+ $key = 'manage_options';
419
+ }
420
+ elseif($name == 'Editor'){
421
+ $key = 'moderate_comments';
422
+ }
423
+ elseif($name == 'Author'){
424
+ $key = 'publish_posts';
425
+ }
426
+ elseif($name == 'Contributor'){
427
+ $key = 'edit_posts';
428
+ }
429
+ else{
430
+ $key = 'read';
431
+ }
432
+ ?>
433
+ <div class="setting_time_wrap time_wrap">
434
+ <input id="inp<?php echo $settings_label_count;?>"<?php echo $key == 'manage_options' ? 'disabled' : '';?> class="gawd_perm" type="checkbox" name="gawd_permissions[]" <?php echo in_array($key,$gawd_permissions) || $key == 'manage_options' ? 'checked' : '';?> value="<?php echo $key;?>"/>
435
+ <label for="inp<?php echo $settings_label_count;?>"><?php echo $name;?></label>
436
+ </div>
437
+ <?php
438
+ }
439
+ ?>
440
+ <div class='clear'></div>
441
+ </div>
442
+ <div class="gawd_info" title="Select user roles to permit access to WD Google Analytics plugin. Only Administrator users can view it by default."></div>
443
+ <div class='clear'></div>
444
+ </div>
445
+ <div class="gawd_goal_row">
446
+ <div class="gawd_goal_label">Dashboard overview permissions</div>
447
+ <div class="checkbox_wrap">
448
+ <?php $roles = new WP_Roles();
449
+ $inp_id = 0;
450
+ foreach($roles->role_names as $key => $name){
451
+ $inp_id++;
452
+ ?>
453
+ <div class="time_wrap">
454
+ <input id="dashboard_overview_permissions<?php echo $inp_id;?>" <?php echo $key == 'administrator' ? 'disabled' : '';?> class="gawd_perm" type="checkbox" name="gawd_backend_roles[]" <?php echo in_array($key,$gawd_backend_roles) || $key == 'administrator' ? 'checked' : '';?> value="<?php echo $key;?>"/>
455
+ <label for="dashboard_overview_permissions<?php echo $inp_id;?>"><?php echo $name;?></label>
456
+ </div>
457
+ <?php
458
+ }
459
+ ?>
460
+ <div class='clear'></div>
461
+ </div>
462
+ <div class="gawd_info" title="Select user roles, which will have access to view WordPress Dashboard report."></div>
463
+ <div class='clear'></div>
464
+ </div>
465
+ <div class="gawd_goal_row">
466
+ <div class="gawd_goal_label">Post/Page report permissions</div>
467
+ <div class="checkbox_wrap">
468
+ <?php $roles = new WP_Roles();
469
+ $inp_id = 0;
470
+ foreach($roles->role_names as $key => $name){
471
+ $inp_id++;
472
+ ?>
473
+ <div class="time_wrap">
474
+ <input id="gawd_post_page_roles<?php echo $inp_id?>" <?php echo $key == 'administrator' ? 'disabled' : '';?> class="gawd_perm" type="checkbox" name="gawd_post_page_roles[]" <?php echo in_array($key,$gawd_post_page_roles) || $key == 'administrator' ? 'checked' : '';?> value="<?php echo $key;?>"/>
475
+ <label for="gawd_post_page_roles<?php echo $inp_id?>"><?php echo $name;?></label>
476
+ </div>
477
+ <?php
478
+ }
479
+ ?>
480
+ <div class='clear'></div>
481
+ </div>
482
+ <div class="gawd_info" title="Select user roles, which will have access to view reports from frontend of your website."></div>
483
+ <div class='clear'></div>
484
+ </div>
485
+ <div class="gawd_goal_row">
486
+ <div class="gawd_goal_label">Frontend report permissions</div>
487
+ <div class="checkbox_wrap">
488
+ <?php $roles = new WP_Roles();
489
+ $inp_id = 0;
490
+ foreach($roles->role_names as $key => $name){
491
+ $inp_id++;
492
+ ?>
493
+ <div class="time_wrap">
494
+ <input id="frontend_report_permissions<?php echo $inp_id?>" <?php echo $key == 'administrator' ? 'disabled' : '';?> class="gawd_perm" type="checkbox" name="gawd_frontend_roles[]" <?php echo in_array($key,$gawd_frontend_roles) || $key == 'administrator' ? 'checked' : '';?> value="<?php echo $key;?>"/>
495
+ <label for="frontend_report_permissions<?php echo $inp_id?>"><?php echo $name;?></label>
496
+ </div>
497
+ <?php
498
+ }
499
+ ?>
500
+ <div class='clear'></div>
501
+ </div>
502
+ <div class="gawd_info" title="Select user roles, which will have access to view reports from frontend of your website."></div>
503
+ <div class='clear'></div>
504
+ </div>
505
+ <div class="gawd_goal_row">
506
+ <span class="gawd_goal_label">Date format</span>
507
+ <span class="gawd_goal_input">
508
+ <select name="default_date_format" id="default_date_format">
509
+ <option <?php selected($default_date_format,'ymd_with_week');?> value="ymd_with_week">l, Y-m-d</option>
510
+ <option <?php selected($default_date_format,'ymd_without_week');?> value="ymd_without_week">Y-m-d</option>
511
+ <option <?php selected($default_date_format,'month_name_with_week');?> value="month_name_with_week">l, F d, Y</option>
512
+ <option <?php selected($default_date_format,'month_name_without_week');?> value="month_name_without_week">F d, Y</option>
513
+ </select>
514
+ </span>
515
+ <div class="gawd_info" title="Choose the date format"></div>
516
+ <div class='clear'></div>
517
+ </div>
518
+ <div class="gawd_goal_row">
519
+ <span class="gawd_goal_label">Default Date</span>
520
+ <span class="gawd_goal_input">
521
+ <select name="default_date" id="default_date">
522
+ <option id='gawd_last_30days' <?php selected($default_date,'last_30days');?> value="last_30days">Last 30 Days</option>
523
+ <option id='gawd_last_7days' <?php selected($default_date,'last_7days');?> value="last_7days">Last 7 Days</option>
524
+ <option id='gawd_last_week' <?php selected($default_date,'last_week');?> value="last_week">Last Week</option>
525
+ <option id='gawd_this_month' <?php selected($default_date,'this_month');?> value="this_month">This Month</option>
526
+ <option id='gawd_last_month' <?php selected($default_date,'last_month');?> value="last_month">Last Month</option>
527
+ <option id='gawd_today' <?php selected($default_date,'today');?> value="today">Today</option>
528
+ <option id='gawd_yesterday' <?php selected($default_date,'yesterday');?> value="yesterday">Yesterday</option>
529
+ </select>
530
+ </span>
531
+ <div class="gawd_info" title="Choose the initial time period, which will be applied to all reports as their date range."></div>
532
+ <div class='clear'></div>
533
+ </div>
534
+ </div>
535
+ <div class="gawd_submit">
536
+ <input type="button" class="button_gawd" id="gawd_settings_button"value="SAVE"/>
537
+ <input type="button" style="display:none;" class="button_gawd" id="gawd_settings_logout"value="Logout"/>
538
+ </div>
539
+ <input type='hidden' name="gawd_alert_remove" id="gawd_alert_remove"/>
540
+ <input type='hidden' name="gawd_menu_remove" id="gawd_menu_remove"/>
541
+ <input type='hidden' name="gawd_pushover_remove" id="gawd_pushover_remove"/>
542
+ <input type='hidden' name="gawd_email_remove" id="gawd_email_remove"/>
543
+ <input type='hidden' name="gawd_filter_remove" id="gawd_filter_remove"/>
544
+ <input type='hidden' name="gawd_settings_tab" id="gawd_settings_tab"/>
545
+ <input type='hidden' name="settings_submit" id="gawd_settings_submit"/>
546
+ <input type='hidden' name="gawd_settings_logout" id="gawd_settings_logout_val"/>
547
+ <?php wp_nonce_field('gawd_save_form', 'gawd_save_form_fild'); ?>
548
+ </form>
549
+ </div>
550
+
551
+ <div class="clear"></div>
552
+ </div>
553
+
554
+ <script>
555
+
556
+ </script>
admin/pages/tracking.php CHANGED
@@ -1,257 +1,262 @@
1
- <?php
2
- $gawd_settings = get_option('gawd_settings');
3
- if (isset($gawd_user_data['default_webPropertyId'])) {
4
- $tracking_dimensions = $gawd_client->get_custom_dimensions_tracking();
5
- } else {
6
- $tracking_dimensions = 'no_custom_dimensions_exist';
7
- }
8
- try{
9
- $existing_custom_dimensions = $gawd_client->get_custom_dimensions('default');
10
- }catch (Exception $e){
11
- $existing_custom_dimensions = array();
12
- }
13
- if (!is_array($existing_custom_dimensions)) {
14
- $existing_custom_dimensions = array();
15
- }
16
- $supported_dimensions = array("Logged in","Post type","Author","Category","Tags","Published Month","Published Year");
17
- $ua_code = isset($gawd_user_data['default_webPropertyId']) ? $gawd_user_data['default_webPropertyId'] : '';
18
- $gawd_permissions = isset($gawd_settings['gawd_permissions']) ? $gawd_settings['gawd_permissions'] : array();
19
- $gawd_anonymize = isset($gawd_settings['gawd_anonymize']) ? $gawd_settings['gawd_anonymize'] : '';
20
- $gawd_tracking_enable = isset($gawd_settings['gawd_tracking_enable']) ? $gawd_settings['gawd_tracking_enable'] : 'on';
21
- $gawd_outbound = isset($gawd_settings['gawd_outbound']) ? $gawd_settings['gawd_outbound'] : '';
22
-
23
- $gawd_enhanced = isset($gawd_settings['gawd_enhanced']) ? $gawd_settings['gawd_enhanced'] : '';
24
- $gawd_file_formats = isset($gawd_settings['gawd_file_formats']) ? $gawd_settings['gawd_file_formats'] : '';
25
- $gawd_tracking_enable = isset($_GET['enableTracking']) ? 'on' : $gawd_tracking_enable;
26
- $domain = GAWD::get_domain(esc_html(get_option('siteurl')));
27
- ?>
28
-
29
- <div id="gawd_body">
30
- <div class="resp_menu"><div class="menu_img"></div><div class="button_label">TRACKING</div><div class="clear"></div></div>
31
- <div class="gawd_menu_coteiner gawd_settings_menu_coteiner">
32
- <ul class="gawd_menu_ul">
33
- <li class=" gawd_menu_li_tracking" id="gawd_tracking">
34
- Tracking
35
- </li>
36
- <li class=" gawd_menu_li_tracking" id="gawd_exclude_tracking">
37
- Exclude
38
- </li>
39
- </ul>
40
- </div>
41
- <div id="gawd_right_conteiner">
42
- <h3 class="gawd_page_titles">Tracking</h3>
43
-
44
- <form method="post" id="gawd_form">
45
- <div class="gawd_tracking">
46
- <div class="gawd_settings_wrapper">
47
- <div class="settings_row">
48
- <div class="onoffswitch">
49
- <input type="checkbox" name="gawd_tracking_enable" class="onoffswitch-checkbox" id="gawd_tracking_enable" <?php echo $gawd_tracking_enable != '' ? 'checked' : '';?>>
50
- <label class="onoffswitch-label" for="gawd_tracking_enable">
51
- <span class="onoffswitch-inner"></span>
52
- <span class="onoffswitch-switch"></span>
53
- </label>
54
- </div>
55
- <div class="gawd_info" title="Enable to add Google Analytics tracking code to <head> tag of your website HTML."></div>
56
- <div class="onoffswitch_text">
57
- Enable Tracking
58
- </div>
59
- <div class="clear"></div>
60
- </div>
61
- <div class="settings_row independent_setting">
62
- <div class="onoffswitch <?php echo (($gawd_tracking_enable == '') ? 'onoffswitch_disabled' : ''); ?> independent_switch">
63
- <input type="checkbox" name="gawd_anonymize" class="onoffswitch-checkbox independent_input" id="gawd_anonymize" <?php echo $gawd_anonymize != '' ? 'checked' : '';?> <?php echo (($gawd_tracking_enable == '') ? 'disabled' : ''); ?>>
64
- <label class="onoffswitch-label" for="gawd_anonymize">
65
- <span class="onoffswitch-inner"></span>
66
- <span class="onoffswitch-switch"></span>
67
- </label>
68
- </div>
69
- <div class="gawd_info" title="Turn this option on, in case you’d like to hide the last block of users’ IP addresses."></div>
70
- <div class="onoffswitch_text">
71
- Anonymize IP address
72
- </div>
73
- <div class="clear"></div>
74
- </div>
75
- <div class="settings_row independent_setting">
76
- <div class="onoffswitch <?php echo (($gawd_tracking_enable == '') ? 'onoffswitch_disabled' : ''); ?> independent_switch">
77
- <input type="checkbox" name="gawd_enhanced" class="onoffswitch-checkbox independent_input" id="gawd_enhanced" <?php echo $gawd_enhanced != '' ? 'checked' : '';?> <?php echo (($gawd_tracking_enable == '') ? 'disabled' : ''); ?>>
78
- <label class="onoffswitch-label" for="gawd_enhanced">
79
- <span class="onoffswitch-inner"></span>
80
- <span class="onoffswitch-switch"></span>
81
- </label>
82
- </div>
83
- <div class="gawd_info" title="Enable this option to track multiple links with the same destination. Get information for buttons, menus, as well as elements with multiple destinations, e.g. search boxes. You can find out more about Enhanced Link Attribution in the plugin documentation."></div>
84
- <div class="onoffswitch_text">
85
- Enhanced Link Attribution
86
- </div>
87
- <div class="clear"></div>
88
- </div>
89
- <div class="settings_row independent_setting">
90
- <div class="onoffswitch <?php echo (($gawd_tracking_enable == '') ? 'onoffswitch_disabled' : ''); ?> independent_switch">
91
- <input type="checkbox" name="gawd_outbound" class="onoffswitch-checkbox independent_input" id="gawd_outbound" <?php echo $gawd_outbound != '' ? 'checked' : '';?> <?php echo (($gawd_tracking_enable == '') ? 'disabled' : ''); ?>>
92
- <label class="onoffswitch-label" for="gawd_outbound">
93
- <span class="onoffswitch-inner"></span>
94
- <span class="onoffswitch-switch"></span>
95
- </label>
96
- </div>
97
- <div class="gawd_info" title="Turn outbound clicks tracking on to track the links users click to leave your website."></div>
98
- <div class="onoffswitch_text">
99
- Outbound clicks tracking
100
- </div>
101
- <div class="clear"></div>
102
- </div>
103
- <div class="settings_row independent_setting">
104
- <div class="onoffswitch <?php echo (($gawd_tracking_enable == '') ? 'onoffswitch_disabled' : ''); ?> independent_switch">
105
- <input type="checkbox" name="gawd_file_formats" value="zip|mp3*|mpe*g|pdf|docx*|pptx*|xlsx*|rar*" class="onoffswitch-checkbox independent_input" id="gawd_file_formats" <?php echo $gawd_file_formats != '' ? 'checked' : '';?> <?php echo (($gawd_tracking_enable == '') ? 'disabled' : ''); ?>>
106
- <label class="onoffswitch-label" for="gawd_file_formats">
107
- <span class="onoffswitch-inner"></span>
108
- <span class="onoffswitch-switch"></span>
109
- </label>
110
- </div>
111
- <div class="gawd_info" title="Enable to track file downloads and mailing links."></div>
112
- <div class="onoffswitch_text track_label">
113
- Mailto, Download tracking (ex.: .doc, .pdf, .jpg, etc.)
114
- </div>
115
- <div class="clear"></div>
116
- </div>
117
- <div style="margin-top:25px">
118
- <img src="<?php echo GAWD_URL.'/assets/freePages/custom_dimensions.png';?>"/>
119
- </div>
120
- </div>
121
- <input name="gawd_custom_dimension_id" type="hidden" value="<?php echo count($existing_custom_dimensions);?>"/>
122
- <div class="gawd_tracking_display">
123
- <p>CODE ADDED TO SITE:</p>
124
- <div id="gawd_tracking_enable_code" <?php if('on' != $gawd_tracking_enable): ?>style="display: none;"<?php endif; ?>>
125
- <code class="html">&#60;script&#62;</code>
126
- <code class="javascript">
127
- (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
128
- (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
129
- m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
130
- })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
131
- <br /><br />
132
- ga('create', '<?php echo $ua_code ?>', 'auto');
133
- </code>
134
- <code id="gawd_anonymize_code" class="javascript" <?php if('on' != $gawd_anonymize): ?>style="display: none;"<?php endif; ?>>
135
- ga('set', 'anonymizeIp', true);
136
- </code>
137
- <code id="gawd_enhanced_code" class="javascript" <?php if('on' != $gawd_enhanced): ?>style="display: none;"<?php endif; ?>>
138
- ga('require', 'linkid', 'linkid.js');
139
- </code>
140
- <code id="gawd_outbound_code" class="javascript" <?php echo $gawd_outbound != '' && isset($domain) && $domain != '' ? '' : 'style="display: none;"';?>>
141
- jQuery(a[href^="http"]).filter(function () {
142
- if (!this.href.match(/.*\.(zip|mp3*|mpe*g|pdf|docx*|pptx*|xlsx*|rar*)(\?.*)?$/)) {
143
- if (this.href.indexOf('devops.web-dorado.info') == -1) {
144
- return this.href
145
- };
146
- }
147
- }).click(function (e) {
148
- ga('send', 'event', 'outbound', 'click', this.href, {'nonInteraction': 1});
149
- });
150
- </code>
151
- <code id="gawd_file_formats_code" class="javascript" <?php echo isset($gawd_file_formats) && $gawd_file_formats != '' ? '' : 'style="display: none"';?>>
152
- jQuery('a').filter(function () {
153
- return this.href.match(/.*\.(zip|mp3*|mpe*g|pdf|docx*|pptx*|xlsx*|rar*)(\?.*)?$/);
154
- }).click(function (e) {
155
- ga('send', 'event', 'download', 'click', this.href, {'nonInteraction': 1});
156
- });
157
- jQuery('a[href^="mailto"]').click(function (e) {
158
- ga('send', 'event', 'email', 'send', this.href, {'nonInteraction': 1});
159
- });
160
- </code>
161
- <code class="javascript">
162
- ga('send', 'pageview');
163
- </code>
164
- <code class="html">&#60;/script&#62;</code>
165
- </div>
166
- </div>
167
- <div class="clear"></div>
168
- </div>
169
- <div class="gawd_exclude_tracking">
170
- <img src="<?php echo GAWD_URL.'/assets/freePages/exclude_tracking.png';?>"/>
171
- </div>
172
- <input type='hidden' name="settings_submit" id="settings_submit"/>
173
- <div class="gawd_submit"><input type="submit" name="settings_submit" class="button_gawd" value="SAVE"/></div>
174
- <input type='hidden' name="gawd_settings_tab" id="gawd_settings_tab"/>
175
- <input type='hidden' name="add_dimension_value" id="add_dimension_value"/>
176
- <?php wp_nonce_field('gawd_save_form', 'gawd_save_form_fild'); ?>
177
- </form>
178
- </div>
179
-
180
- <div class="clear"></div>
181
- </div>
182
- <script>
183
- jQuery(function() {
184
- jQuery('.chosen-select').chosen();
185
- jQuery('.chosen-select-deselect').chosen({ allow_single_deselect: true });
186
- });
187
- jQuery(document).ready(function(){
188
- jQuery('.button_gawd_add').on('click',function(){
189
- jQuery('#add_dimension_value').val(jQuery(this).data('name'));
190
- jQuery('#settings_submit').val('1');
191
- jQuery('#gawd_form').submit();
192
- })
193
- jQuery("#gawd_right_conteiner").show();
194
- if(window.location.hash===''){
195
- jQuery('.gawd_submit').width('92.9%');
196
- jQuery('.gawd_tracking').show();
197
- jQuery('#gawd_tracking').addClass('gawd_active_li');
198
- if(jQuery(window).width() < 720){
199
- jQuery('#gawd_tracking').addClass('gawd_resp_active_li');
200
- }
201
- }
202
-
203
- else if(window.location.hash==='#gawd_exclude_tracking_tab'){
204
- jQuery('.gawd_submit').width('92.9%');
205
- jQuery('#gawd_exclude_tracking').addClass('gawd_active_li');
206
- jQuery('.gawd_submit').hide();
207
- jQuery('.gawd_exclude_tracking').show();
208
- if(jQuery(window).width() < 720){
209
- jQuery('#gawd_exclude_tracking').addClass('gawd_resp_active_li');
210
- }
211
- }
212
- else if(window.location.hash==='#gawd_tracking_tab'){
213
- jQuery('.gawd_submit').width('92.9%');
214
- jQuery('#gawd_tracking').addClass('gawd_active_li');
215
- jQuery('.gawd_submit').show();
216
- jQuery('.gawd_tracking').show();
217
- if(jQuery(window).width() < 720){
218
- jQuery('#gawd_tracking').addClass('gawd_resp_active_li');
219
- }
220
- }
221
-
222
- else{
223
- jQuery('.gawd_submit').hide();
224
- jQuery('.gawd_tracking').show();
225
- jQuery('#gawd_tracking').addClass('gawd_active_li');
226
- if(jQuery(window).width() < 720){
227
- jQuery('#gawd_tracking').addClass('gawd_resp_active_li');
228
- }
229
- }
230
- })
231
- jQuery('.gawd_menu_li_tracking').on('click',function(){
232
- var tab = jQuery(this).attr('id');
233
- jQuery('.gawd_menu_li_tracking').removeClass('gawd_active_li');
234
- jQuery('.gawd_menu_li_tracking').removeClass('gawd_resp_active_li');
235
- jQuery(this).addClass('gawd_active_li');
236
- if(jQuery(window).width() < 720){
237
- jQuery(this).addClass('gawd_resp_active_li');
238
- }
239
-
240
- jQuery('#gawd_settings_tab').val(tab);
241
- if(tab == 'gawd_tracking'){
242
- window.location.hash = "gawd_tracking_tab";
243
- jQuery(this).addClass('gawd_active_li');
244
- jQuery('.gawd_exclude_tracking').hide();
245
- jQuery('.gawd_submit').show();
246
- jQuery('.gawd_tracking').show();
247
- }
248
- else if(tab == 'gawd_exclude_tracking'){
249
- window.location.hash = "gawd_exclude_tracking_tab";
250
- jQuery(this).addClass('gawd_active_li');
251
- jQuery('.gawd_tracking').hide();
252
- jQuery('.gawd_submit').hide();
253
- jQuery('.gawd_exclude_tracking').show();
254
- }
255
- })
256
- </script>
257
-
 
 
 
 
 
1
+ <?php
2
+ $gawd_settings = get_option('gawd_settings');
3
+ if (isset($gawd_user_data['default_webPropertyId'])) {
4
+ $tracking_dimensions = $gawd_client->get_custom_dimensions_tracking();
5
+ } else {
6
+ $tracking_dimensions = 'no_custom_dimensions_exist';
7
+ }
8
+ try{
9
+ $existing_custom_dimensions = $gawd_client->get_custom_dimensions('default');
10
+ }catch (Exception $e){
11
+ $existing_custom_dimensions = array();
12
+ }
13
+ if (!is_array($existing_custom_dimensions)) {
14
+ $existing_custom_dimensions = array();
15
+ }
16
+ $supported_dimensions = array("Logged in","Post type","Author","Category","Tags","Published Month","Published Year");
17
+ $ua_code = isset($gawd_user_data['default_webPropertyId']) ? $gawd_user_data['default_webPropertyId'] : '';
18
+ $gawd_permissions = isset($gawd_settings['gawd_permissions']) ? $gawd_settings['gawd_permissions'] : array();
19
+ $gawd_anonymize = isset($gawd_settings['gawd_anonymize']) ? $gawd_settings['gawd_anonymize'] : '';
20
+ $gawd_tracking_enable = isset($gawd_settings['gawd_tracking_enable']) ? $gawd_settings['gawd_tracking_enable'] : 'on';
21
+ $gawd_outbound = isset($gawd_settings['gawd_outbound']) ? $gawd_settings['gawd_outbound'] : '';
22
+
23
+ $gawd_enhanced = isset($gawd_settings['gawd_enhanced']) ? $gawd_settings['gawd_enhanced'] : '';
24
+ $gawd_file_formats = isset($gawd_settings['gawd_file_formats']) ? $gawd_settings['gawd_file_formats'] : '';
25
+ $gawd_tracking_enable = isset($_GET['enableTracking']) ? 'on' : $gawd_tracking_enable;
26
+ $domain = GAWD::get_domain(esc_html(get_option('siteurl')));
27
+ ?>
28
+
29
+ <div id="gawd_body">
30
+ <div style="font-size: 14px; font-weight: bold; margin:15px 0">
31
+ Create a web property and manage tracking settings in this section. Read more in User Guide.
32
+ <a style="color: #00A0D2; text-decoration: none;" target="_blank" href="https://web-dorado.com/wordpress-google-analytics/tracking.html">Read More in User Manual.</a>
33
+ </div>
34
+ <div class="resp_menu"><div class="menu_img"></div><div class="button_label">TRACKING</div><div class="clear"></div></div>
35
+ <div class="gawd_menu_coteiner gawd_settings_menu_coteiner">
36
+ <ul class="gawd_menu_ul">
37
+ <li class=" gawd_menu_li_tracking" id="gawd_tracking">
38
+ Tracking
39
+ </li>
40
+ <li class=" gawd_menu_li_tracking gawd_pro_menu" id="gawd_exclude_tracking">
41
+ Exclude
42
+ <span class="gawd_pro_flag">Paid</span>
43
+ </li>
44
+ </ul>
45
+ </div>
46
+ <div id="gawd_right_conteiner">
47
+ <h3 class="gawd_page_titles">Tracking</h3>
48
+
49
+ <form method="post" id="gawd_form">
50
+ <div class="gawd_tracking">
51
+ <div class="gawd_settings_wrapper">
52
+ <div class="settings_row">
53
+ <div class="onoffswitch">
54
+ <input type="checkbox" name="gawd_tracking_enable" class="onoffswitch-checkbox" id="gawd_tracking_enable" <?php echo $gawd_tracking_enable != '' ? 'checked' : '';?>>
55
+ <label class="onoffswitch-label" for="gawd_tracking_enable">
56
+ <span class="onoffswitch-inner"></span>
57
+ <span class="onoffswitch-switch"></span>
58
+ </label>
59
+ </div>
60
+ <div class="gawd_info" title="Enable to add Google Analytics tracking code to <head> tag of your website HTML."></div>
61
+ <div class="onoffswitch_text">
62
+ Enable Tracking
63
+ </div>
64
+ <div class="clear"></div>
65
+ </div>
66
+ <div class="settings_row independent_setting">
67
+ <div class="onoffswitch <?php echo (($gawd_tracking_enable == '') ? 'onoffswitch_disabled' : ''); ?> independent_switch">
68
+ <input type="checkbox" name="gawd_anonymize" class="onoffswitch-checkbox independent_input" id="gawd_anonymize" <?php echo $gawd_anonymize != '' ? 'checked' : '';?> <?php echo (($gawd_tracking_enable == '') ? 'disabled' : ''); ?>>
69
+ <label class="onoffswitch-label" for="gawd_anonymize">
70
+ <span class="onoffswitch-inner"></span>
71
+ <span class="onoffswitch-switch"></span>
72
+ </label>
73
+ </div>
74
+ <div class="gawd_info" title="Turn this option on, in case you’d like to hide the last block of users’ IP addresses."></div>
75
+ <div class="onoffswitch_text">
76
+ Anonymize IP address
77
+ </div>
78
+ <div class="clear"></div>
79
+ </div>
80
+ <div class="settings_row independent_setting">
81
+ <div class="onoffswitch <?php echo (($gawd_tracking_enable == '') ? 'onoffswitch_disabled' : ''); ?> independent_switch">
82
+ <input type="checkbox" name="gawd_enhanced" class="onoffswitch-checkbox independent_input" id="gawd_enhanced" <?php echo $gawd_enhanced != '' ? 'checked' : '';?> <?php echo (($gawd_tracking_enable == '') ? 'disabled' : ''); ?>>
83
+ <label class="onoffswitch-label" for="gawd_enhanced">
84
+ <span class="onoffswitch-inner"></span>
85
+ <span class="onoffswitch-switch"></span>
86
+ </label>
87
+ </div>
88
+ <div class="gawd_info" title="Enable this option to track multiple links with the same destination. Get information for buttons, menus, as well as elements with multiple destinations, e.g. search boxes. You can find out more about Enhanced Link Attribution in the plugin documentation."></div>
89
+ <div class="onoffswitch_text">
90
+ Enhanced Link Attribution
91
+ </div>
92
+ <div class="clear"></div>
93
+ </div>
94
+ <div class="settings_row independent_setting">
95
+ <div class="onoffswitch <?php echo (($gawd_tracking_enable == '') ? 'onoffswitch_disabled' : ''); ?> independent_switch">
96
+ <input type="checkbox" name="gawd_outbound" class="onoffswitch-checkbox independent_input" id="gawd_outbound" <?php echo $gawd_outbound != '' ? 'checked' : '';?> <?php echo (($gawd_tracking_enable == '') ? 'disabled' : ''); ?>>
97
+ <label class="onoffswitch-label" for="gawd_outbound">
98
+ <span class="onoffswitch-inner"></span>
99
+ <span class="onoffswitch-switch"></span>
100
+ </label>
101
+ </div>
102
+ <div class="gawd_info" title="Turn outbound clicks tracking on to track the links users click to leave your website."></div>
103
+ <div class="onoffswitch_text">
104
+ Outbound clicks tracking
105
+ </div>
106
+ <div class="clear"></div>
107
+ </div>
108
+ <div class="settings_row independent_setting">
109
+ <div class="onoffswitch <?php echo (($gawd_tracking_enable == '') ? 'onoffswitch_disabled' : ''); ?> independent_switch">
110
+ <input type="checkbox" name="gawd_file_formats" value="zip|mp3*|mpe*g|pdf|docx*|pptx*|xlsx*|rar*" class="onoffswitch-checkbox independent_input" id="gawd_file_formats" <?php echo $gawd_file_formats != '' ? 'checked' : '';?> <?php echo (($gawd_tracking_enable == '') ? 'disabled' : ''); ?>>
111
+ <label class="onoffswitch-label" for="gawd_file_formats">
112
+ <span class="onoffswitch-inner"></span>
113
+ <span class="onoffswitch-switch"></span>
114
+ </label>
115
+ </div>
116
+ <div class="gawd_info" title="Enable to track file downloads and mailing links."></div>
117
+ <div class="onoffswitch_text track_label">
118
+ Mailto, Download tracking (ex.: .doc, .pdf, .jpg, etc.)
119
+ </div>
120
+ <div class="clear"></div>
121
+ </div>
122
+ <div style="margin-top:25px">
123
+ <img src="<?php echo GAWD_URL.'/assets/freePages/custom_dimensions.png';?>"/>
124
+ </div>
125
+ </div>
126
+ <input name="gawd_custom_dimension_id" type="hidden" value="<?php echo count($existing_custom_dimensions);?>"/>
127
+ <div class="gawd_tracking_display">
128
+ <p>CODE ADDED TO SITE:</p>
129
+ <div id="gawd_tracking_enable_code" <?php if('on' != $gawd_tracking_enable): ?>style="display: none;"<?php endif; ?>>
130
+ <code class="html">&#60;script&#62;</code>
131
+ <code class="javascript">
132
+ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
133
+ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
134
+ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
135
+ })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
136
+ <br /><br />
137
+ ga('create', '<?php echo $ua_code ?>', 'auto');
138
+ </code>
139
+ <code id="gawd_anonymize_code" class="javascript" <?php if('on' != $gawd_anonymize): ?>style="display: none;"<?php endif; ?>>
140
+ ga('set', 'anonymizeIp', true);
141
+ </code>
142
+ <code id="gawd_enhanced_code" class="javascript" <?php if('on' != $gawd_enhanced): ?>style="display: none;"<?php endif; ?>>
143
+ ga('require', 'linkid', 'linkid.js');
144
+ </code>
145
+ <code id="gawd_outbound_code" class="javascript" <?php echo $gawd_outbound != '' && isset($domain) && $domain != '' ? '' : 'style="display: none;"';?>>
146
+ jQuery(a[href^="http"]).filter(function () {
147
+ if (!this.href.match(/.*\.(zip|mp3*|mpe*g|pdf|docx*|pptx*|xlsx*|rar*)(\?.*)?$/)) {
148
+ if (this.href.indexOf('devops.web-dorado.info') == -1) {
149
+ return this.href
150
+ };
151
+ }
152
+ }).click(function (e) {
153
+ ga('send', 'event', 'outbound', 'click', this.href, {'nonInteraction': 1});
154
+ });
155
+ </code>
156
+ <code id="gawd_file_formats_code" class="javascript" <?php echo isset($gawd_file_formats) && $gawd_file_formats != '' ? '' : 'style="display: none"';?>>
157
+ jQuery('a').filter(function () {
158
+ return this.href.match(/.*\.(zip|mp3*|mpe*g|pdf|docx*|pptx*|xlsx*|rar*)(\?.*)?$/);
159
+ }).click(function (e) {
160
+ ga('send', 'event', 'download', 'click', this.href, {'nonInteraction': 1});
161
+ });
162
+ jQuery('a[href^="mailto"]').click(function (e) {
163
+ ga('send', 'event', 'email', 'send', this.href, {'nonInteraction': 1});
164
+ });
165
+ </code>
166
+ <code class="javascript">
167
+ ga('send', 'pageview');
168
+ </code>
169
+ <code class="html">&#60;/script&#62;</code>
170
+ </div>
171
+ </div>
172
+ <div class="clear"></div>
173
+ </div>
174
+ <div class="gawd_exclude_tracking">
175
+ <img src="<?php echo GAWD_URL.'/assets/freePages/exclude_tracking.png';?>"/>
176
+ </div>
177
+ <input type='hidden' name="settings_submit" id="settings_submit"/>
178
+ <div class="gawd_submit"><input type="submit" name="settings_submit" class="button_gawd" value="SAVE"/></div>
179
+ <input type='hidden' name="gawd_settings_tab" id="gawd_settings_tab"/>
180
+ <input type='hidden' name="add_dimension_value" id="add_dimension_value"/>
181
+ <?php wp_nonce_field('gawd_save_form', 'gawd_save_form_fild'); ?>
182
+ </form>
183
+ </div>
184
+
185
+ <div class="clear"></div>
186
+ </div>
187
+ <script>
188
+ jQuery(function() {
189
+ jQuery('.chosen-select').chosen();
190
+ jQuery('.chosen-select-deselect').chosen({ allow_single_deselect: true });
191
+ });
192
+ jQuery(document).ready(function(){
193
+ jQuery('.button_gawd_add').on('click',function(){
194
+ jQuery('#add_dimension_value').val(jQuery(this).data('name'));
195
+ jQuery('#settings_submit').val('1');
196
+ jQuery('#gawd_form').submit();
197
+ })
198
+ jQuery("#gawd_right_conteiner").show();
199
+ if(window.location.hash===''){
200
+ jQuery('.gawd_submit').width('92.9%');
201
+ jQuery('.gawd_tracking').show();
202
+ jQuery('#gawd_tracking').addClass('gawd_active_li');
203
+ if(jQuery(window).width() < 720){
204
+ jQuery('#gawd_tracking').addClass('gawd_resp_active_li');
205
+ }
206
+ }
207
+
208
+ else if(window.location.hash==='#gawd_exclude_tracking_tab'){
209
+ jQuery('.gawd_submit').width('92.9%');
210
+ jQuery('#gawd_exclude_tracking').addClass('gawd_active_li');
211
+ jQuery('.gawd_submit').hide();
212
+ jQuery('.gawd_exclude_tracking').show();
213
+ if(jQuery(window).width() < 720){
214
+ jQuery('#gawd_exclude_tracking').addClass('gawd_resp_active_li');
215
+ }
216
+ }
217
+ else if(window.location.hash==='#gawd_tracking_tab'){
218
+ jQuery('.gawd_submit').width('92.9%');
219
+ jQuery('#gawd_tracking').addClass('gawd_active_li');
220
+ jQuery('.gawd_submit').show();
221
+ jQuery('.gawd_tracking').show();
222
+ if(jQuery(window).width() < 720){
223
+ jQuery('#gawd_tracking').addClass('gawd_resp_active_li');
224
+ }
225
+ }
226
+
227
+ else{
228
+ jQuery('.gawd_submit').hide();
229
+ jQuery('.gawd_tracking').show();
230
+ jQuery('#gawd_tracking').addClass('gawd_active_li');
231
+ if(jQuery(window).width() < 720){
232
+ jQuery('#gawd_tracking').addClass('gawd_resp_active_li');
233
+ }
234
+ }
235
+ })
236
+ jQuery('.gawd_menu_li_tracking').on('click',function(){
237
+ var tab = jQuery(this).attr('id');
238
+ jQuery('.gawd_menu_li_tracking').removeClass('gawd_active_li');
239
+ jQuery('.gawd_menu_li_tracking').removeClass('gawd_resp_active_li');
240
+ jQuery(this).addClass('gawd_active_li');
241
+ if(jQuery(window).width() < 720){
242
+ jQuery(this).addClass('gawd_resp_active_li');
243
+ }
244
+
245
+ jQuery('#gawd_settings_tab').val(tab);
246
+ if(tab == 'gawd_tracking'){
247
+ window.location.hash = "gawd_tracking_tab";
248
+ jQuery(this).addClass('gawd_active_li');
249
+ jQuery('.gawd_exclude_tracking').hide();
250
+ jQuery('.gawd_submit').show();
251
+ jQuery('.gawd_tracking').show();
252
+ }
253
+ else if(tab == 'gawd_exclude_tracking'){
254
+ window.location.hash = "gawd_exclude_tracking_tab";
255
+ jQuery(this).addClass('gawd_active_li');
256
+ jQuery('.gawd_tracking').hide();
257
+ jQuery('.gawd_submit').hide();
258
+ jQuery('.gawd_exclude_tracking').show();
259
+ }
260
+ })
261
+ </script>
262
+
gawd_class.php CHANGED
@@ -1,2288 +1,2299 @@
1
- <?php
2
-
3
- require_once( GAWD_DIR . '/admin/gawd_google_class.php' );
4
-
5
- class GAWD {
6
-
7
- /**
8
- * @var GAWD The reference to Singleton instance of this class
9
- */
10
- private static $instance;
11
- private $project_client_id = null;
12
- private $project_client_secret = null;
13
- public $redirect_uri = "urn:ietf:wg:oauth:2.0:oob";
14
-
15
- /**
16
- * Protected constructor to prevent creating a new instance of the
17
- * Singleton via the `new` operator from outside of this class.
18
- */
19
- protected function __construct() {
20
-
21
- if ( isset( $_POST["reset_data"] ) && $_POST["reset_data"] != '' ) {
22
- $this->reset_user_data();
23
- }
24
- add_action( 'admin_menu', array( $this, 'gawd_check_id' ), 1 );
25
-
26
- add_action( 'admin_notices', array( $this, 'upgrade_pro' ) );
27
-
28
- add_action( 'admin_menu', array( $this, 'gawd_add_menu' ), 19 );
29
- add_action( 'admin_enqueue_scripts', array( $this, 'gawd_enqueue_scripts' ) );
30
-
31
- add_action( 'wp_ajax_gawd_auth', array( $this, 'gawd_auth' ) );
32
- add_action( 'wp_ajax_create_pdf_file', array( $this, 'create_pdf_file' ) );
33
- add_action( 'wp_ajax_create_csv_file', array( $this, 'create_csv_file' ) );
34
- add_action( 'wp_ajax_show_data', array( $this, 'show_data' ) );
35
- add_action( 'wp_ajax_remove_zoom_message', array( $this, 'remove_zoom_message' ) );
36
- add_action( 'wp_ajax_show_page_post_data', array( $this, 'show_page_post_data' ) );
37
- add_action( 'wp_ajax_show_data_compact', array( $this, 'show_data_compact' ) );
38
- add_action( 'wp_ajax_get_realtime', array( $this, 'get_realtime' ) );
39
- add_action( 'wp_dashboard_setup', array( $this, 'google_analytics_wd_dashboard_widget' ) );
40
- add_action( 'admin_menu', array( $this, 'overview_date_meta' ) );
41
- add_filter( 'cron_schedules', array( $this, 'gawd_my_schedule' ) );
42
- add_action( 'admin_init', array( $this, 'gawd_export' ) );
43
- add_action( 'gawd_pushover_daily', array( $this, 'gawd_pushover_daily' ) );
44
- add_action( 'gawd_pushover_gawd_weekly', array( $this, 'gawd_pushover_weekly' ) );
45
- add_action( 'gawd_pushover_gawd_monthly', array( $this, 'gawd_pushover_monthly' ) );
46
- add_action( 'gawd_alert_daily', array( $this, 'gawd_alert_daily' ) );
47
- add_action( 'gawd_alert_gawd_monthly', array( $this, 'gawd_alert_monthly' ) );
48
- add_action( 'gawd_alert_gawd_weekly', array( $this, 'gawd_alert_weekly' ) );
49
- add_action( 'gawd_email_daily', array( $this, 'gawd_daily_email' ), 0 );
50
- add_action( 'gawd_email_gawd_weekly', array( $this, 'gawd_weekly_email' ) );
51
- add_action( 'gawd_email_gawd_monthly', array( $this, 'gawd_monthly_email' ) );
52
- //add_action('init', array($this, 'gawd_daily_email'));
53
- add_action( 'wp_head', array( $this, 'gawd_tracking_code' ), 99 );
54
- $gawd_settings = get_option( 'gawd_settings' );
55
- $gawd_post_page_roles = isset( $gawd_settings['gawd_post_page_roles'] ) ? $gawd_settings['gawd_post_page_roles'] : array();
56
- $roles = $this->get_current_user_role();
57
- if ( ( isset( $gawd_settings['gawd_tracking_enable'] ) && $gawd_settings['gawd_tracking_enable'] == 'on' ) && ( isset( $gawd_settings['post_page_chart'] ) && $gawd_settings['post_page_chart'] != '' ) && ( in_array( $roles, $gawd_post_page_roles ) || current_user_can( 'manage_options' ) ) ) {
58
- add_filter( 'manage_posts_columns', array( $this, 'gawd_add_columns' ) );
59
- // Populate custom column in Posts List
60
- add_action( 'manage_posts_custom_column', array( $this, 'gawd_add_icons' ), 10, 2 );
61
- // Add custom column in Pages List
62
- add_filter( 'manage_pages_columns', array( $this, 'gawd_add_columns' ) );
63
- // Populate custom column in Pages List
64
- add_action( 'manage_pages_custom_column', array( $this, 'gawd_add_icons' ), 10, 2 );
65
- add_action( 'add_meta_boxes', array( $this, 'gawd_add_custom_box' ) );
66
- }
67
- $gawd_frontend_roles = isset( $gawd_settings['gawd_frontend_roles'] ) ? $gawd_settings['gawd_frontend_roles'] : array();
68
- if ( ( isset( $gawd_settings['gawd_tracking_enable'] ) && $gawd_settings['gawd_tracking_enable'] == 'on' ) && ( in_array( $roles, $gawd_frontend_roles ) || current_user_can( 'manage_options' ) ) ) {
69
- add_action( 'wp_enqueue_scripts', array( $this, 'gawd_front_scripts' ) );
70
- add_action( 'admin_bar_menu', array( $this, 'report_adminbar' ), 999 );
71
- }
72
-
73
-
74
- $this->update_credentials();
75
- $credentials = get_option( 'gawd_credentials' );
76
-
77
-
78
- if ( is_array( $credentials ) ) {
79
- $this->set_project_client_id( $credentials['project_id'] );
80
- $this->set_project_client_secret( $credentials['project_secret'] );
81
- } else {
82
- //send error
83
- return;
84
- }
85
-
86
- }
87
-
88
- function get_current_user_role() {
89
- global $wp_roles;
90
- if ( is_user_logged_in() ) {
91
- $current_user = wp_get_current_user();
92
- $roles = $current_user->roles;
93
- $role = array_shift( $roles );
94
-
95
- return $role;
96
- } else {
97
- return "";
98
- }
99
- }
100
-
101
-
102
- function report_adminbar( $wp_admin_bar ) {
103
- /* @formatter:off */
104
- $gawd_settings = get_option( 'gawd_settings' );
105
- $gawd_frontend_roles = isset( $gawd_settings['gawd_frontend_roles'] ) ? $gawd_settings['gawd_frontend_roles'] : array();
106
- $roles = $this->get_current_user_role();
107
- if ( ( ( in_array( $roles, $gawd_frontend_roles ) || current_user_can( 'manage_options' ) ) && ! is_admin() ) && $gawd_settings['post_page_chart'] != '' ) {
108
- $id = get_the_ID();
109
- $uri_parts = explode( '/', get_permalink( $id ), 4 );
110
- if ( $uri_parts[0] != '' ) {
111
- if ( isset( $uri_parts[3] ) ) {
112
- $uri = '/' . $uri_parts[3];
113
- }
114
- $uri = explode( '/', $uri );
115
- end( $uri );
116
- $key = key( $uri );
117
- $uri = '/' . $uri[ $key - 1 ];
118
- $filter = rawurlencode( rawurldecode( $uri ) );
119
-
120
- $args = array(
121
- 'id' => 'gawd',
122
- 'title' => '<span data-url="' . $filter . '" class="ab-icon"></span><span class="">' . __( "Analytics WD", 'gawd' ) . '</span>',
123
- 'href' => '#1',
124
- );
125
- /* @formatter:on */
126
- $wp_admin_bar->add_node( $args );
127
- }
128
- }
129
- }
130
-
131
- public function update_credentials() {
132
- //check_admin_referer('gawd_save_form', 'gawd_save_form_fild');
133
- if ( $_POST ) {
134
- $gawd_own_project = isset( $_POST['gawd_own_project'] ) ? $_POST['gawd_own_project'] : '';
135
- $gawd_own_client_id = isset( $_POST['gawd_own_client_id'] ) ? $_POST['gawd_own_client_id'] : '';
136
- $gawd_own_client_secret = isset( $_POST['gawd_own_client_secret'] ) ? $_POST['gawd_own_client_secret'] : '';
137
- $gawd_credentials['project_id'] = $gawd_own_client_id;
138
- $gawd_credentials['project_secret'] = $gawd_own_client_secret;
139
- if ( $gawd_own_project && $gawd_own_client_id != '' && $gawd_own_client_secret != '' ) {
140
- update_option( 'gawd_credentials', $gawd_credentials );
141
- delete_option( 'gawd_user_data' );
142
- add_option( 'gawd_own_project', 1 );
143
- }
144
- }
145
- }
146
-
147
- public function set_project_client_id( $id ) {
148
- $this->project_client_id = $id;
149
- }
150
-
151
- public function get_project_client_id() {
152
- return $this->project_client_id;
153
- }
154
-
155
- public function set_project_client_secret( $secret ) {
156
- $this->project_client_secret = $secret;
157
- }
158
-
159
- public function get_project_client_secret() {
160
- return $this->project_client_secret;
161
- }
162
-
163
- function gawd_check_id() {
164
- global $gawd_redirect_to_settings;
165
- $current_page = isset( $_GET['page'] ) ? $_GET['page'] : "";
166
- if ( strpos( $current_page, 'gawd' ) !== false ) {
167
- $gawd_user_data = get_option( 'gawd_user_data' );
168
- if ( ! isset( $gawd_user_data['refresh_token'] ) || ( $gawd_user_data['refresh_token'] == '' ) ) {
169
- update_option( 'gawd_redirect_to_settings', 'yes' );
170
- } else {
171
- update_option( 'gawd_redirect_to_settings', 'no' );
172
- }
173
- }
174
- $gawd_redirect_to_settings = get_option( 'gawd_redirect_to_settings' );
175
- }
176
-
177
- function gawd_add_custom_box() {
178
- $screens = array( 'post', 'page' );
179
- foreach ( $screens as $screen ) {
180
- add_meta_box( 'gawd_page_post_meta', 'Sessions in month', array(
181
- $this,
182
- 'gawd_add_custom_box_callback'
183
- ), $screen, 'normal' );
184
- }
185
- }
186
-
187
- function gawd_add_custom_box_callback() {
188
- require_once( 'admin/post_page_view.php' );
189
- }
190
-
191
- public function gawd_add_icons( $column, $id ) {
192
- if ( $column != 'gawd_stats' ) {
193
- return;
194
- }
195
- $uri_parts = explode( '/', get_permalink( $id ), 4 );
196
- if ( isset( $uri_parts[3] ) ) {
197
- $uri = '/' . $uri_parts[3];
198
- }
199
- $uri = explode( '/', $uri );
200
- end( $uri );
201
- $key = key( $uri );
202
- $uri = '/' . $uri[ $key - 1 ];
203
- $filter = rawurlencode( rawurldecode( $uri ) );
204
- echo '<a id="gawd-' . $id . '" class="gawd_page_post_stats" title="' . get_the_title( $id ) . '" href="#' . $filter . '"><img src="' . GAWD_URL . '/assets/back_logo.png"</a>';
205
- }
206
-
207
- public function gawd_add_columns( $columns ) {
208
- return array_merge( $columns, array( 'gawd_stats' => __( 'Analytics WD', 'gawd' ) ) );
209
- }
210
-
211
- public static function gawd_roles( $access_level, $tracking = false ) {
212
- if ( is_user_logged_in() && isset( $access_level ) ) {
213
- $current_user = wp_get_current_user();
214
- $roles = (array) $current_user->roles;
215
- if ( ( current_user_can( 'manage_options' ) ) && ! $tracking ) {
216
- return true;
217
- }
218
- if ( count( array_intersect( $roles, $access_level ) ) > 0 ) {
219
- return true;
220
- } else {
221
- return false;
222
- }
223
- }
224
-
225
- return false;
226
- }
227
-
228
- public function gawd_tracking_code() {
229
- $gawd_user_data = get_option( 'gawd_user_data' );
230
- if ( isset( $gawd_user_data['default_webPropertyId'] ) && ( $gawd_user_data['default_webPropertyId'] ) ) {
231
- global $gawd_client;
232
- $gawd_client = GAWD_google_client::get_instance();
233
- require_once( GAWD_DIR . '/admin/tracking.php' );
234
- }
235
- }
236
-
237
- public function create_pdf_file( $ajax = true, $data = null, $dimension = null, $start_date = null, $end_date = null, $metric_compare_recc = null, $metric_recc = null ) {
238
- $first_data = isset( $_REQUEST["first_data"] ) ? sanitize_text_field( $_REQUEST["first_data"] ) : '';
239
- $_data_compare = isset( $_REQUEST["_data_compare"] ) ? ( $_REQUEST["_data_compare"] ) : '';
240
- if ( $ajax == true ) {
241
- $export_type = isset( $_REQUEST["export_type"] ) ? sanitize_text_field( $_REQUEST["export_type"] ) : '';
242
- if ( $export_type != 'pdf' ) {
243
- return;
244
- }
245
-
246
- $report_type = isset( $_REQUEST["report_type"] ) ? sanitize_text_field( $_REQUEST["report_type"] ) : '';
247
-
248
-
249
- if ( $report_type !== 'alert' ) {
250
- return;
251
- }
252
-
253
- }
254
-
255
- include_once GAWD_DIR . '/include/gawd_pdf_file.php';
256
- $file = new GAWD_PDF_FILE();
257
-
258
- /*
259
- require_once(GAWD_DIR . '/admin/gawd_google_class.php');
260
- $this->gawd_google_client = GAWD_google_client::get_instance();
261
- */
262
- $file->get_request_data( $this, $ajax, $data, $dimension, $start_date, $end_date, $metric_compare_recc, $metric_recc );
263
-
264
- $file->sort_data();
265
- if ( $first_data != '' ) {
266
- $file->create_file( 'pages' );
267
- } elseif ( ( $_data_compare ) != '' ) {
268
- $file->create_file( 'compare' );
269
- } else {
270
- $file->create_file( true );
271
- }
272
- if ( $ajax == true ) {
273
- die();
274
- } else {
275
- return $file->file_dir;
276
- }
277
- }
278
-
279
- public function create_csv_file( $ajax = true, $data = null, $dimension = null, $start_date = null, $end_date = null, $metric_compare_recc = null, $metric_recc = null ) {
280
- if ( $ajax == true ) {
281
- $export_type = isset( $_REQUEST["export_type"] ) ? sanitize_text_field( $_REQUEST["export_type"] ) : '';
282
- if ( $export_type != 'csv' ) {
283
- return;
284
- }
285
- $report_type = isset( $_REQUEST["report_type"] ) ? sanitize_text_field( $_REQUEST["report_type"] ) : '';
286
- if ( $report_type !== 'alert' ) {
287
- return;
288
- }
289
- }
290
- require_once( GAWD_DIR . '/admin/gawd_google_class.php' );
291
- $this->gawd_google_client = GAWD_google_client::get_instance();
292
-
293
- $first_data = isset( $_REQUEST["first_data"] ) ? sanitize_text_field( $_REQUEST["first_data"] ) : '';
294
-
295
-
296
- include_once GAWD_DIR . '/include/gawd_csv_file.php';
297
-
298
- $file = new GAWD_CSV_FILE();
299
- $file->get_request_data( $this, $ajax, $data, $dimension, $start_date, $end_date, $metric_compare_recc, $metric_recc );
300
-
301
- $file->sort_data();
302
-
303
- //$file->get_request_data($this);
304
-
305
- $file->sort_data();
306
- if ( $first_data != '' ) {
307
- $file->create_file( false );
308
- } else {
309
- $file->create_file();
310
- }
311
- if ( $ajax == true ) {
312
- die();
313
- } else {
314
- return $file->file_dir;
315
- }
316
- }
317
-
318
- public static function get_domain( $domain ) {
319
- $root = explode( '/', $domain );
320
- $ret_domain = str_ireplace( 'www', '', isset( $root[2] ) ? $root[2] : $domain );
321
-
322
- return $ret_domain;
323
- }
324
-
325
- public static function error_message( $type, $message ) {
326
- echo '<div style="width:99%"><div class="' . $type . '"><p><strong>' . $message . '</strong></p></div></div>';
327
- }
328
-
329
- public function gawd_export() {
330
- if ( ! isset( $_REQUEST['action'] ) || ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] !== 'gawd_export' ) ) {
331
- return;
332
- }
333
-
334
- $export_type = isset( $_REQUEST["export_type"] ) ? sanitize_text_field( $_REQUEST["export_type"] ) : '';
335
- if ( $export_type != 'pdf' && $export_type != 'csv' ) {
336
- return;
337
- }
338
-
339
- $report_type = isset( $_REQUEST["report_type"] ) ? sanitize_text_field( $_REQUEST["report_type"] ) : '';
340
-
341
- require_once( GAWD_DIR . '/admin/gawd_google_class.php' );
342
- $this->gawd_google_client = GAWD_google_client::get_instance();
343
-
344
- if ( $export_type == 'pdf' ) {
345
- include_once GAWD_DIR . '/include/gawd_pdf_file.php';
346
- $file = new GAWD_PDF_FILE();
347
- } else {
348
- include_once GAWD_DIR . '/include/gawd_csv_file.php';
349
- $file = new GAWD_CSV_FILE();
350
- }
351
-
352
- if ( $report_type == 'alert' ) {
353
- if ( $export_type == 'pdf' ) {
354
- $file->export_file();
355
- } else {
356
- $file->export_file();
357
- }
358
- } else {
359
- $metric = isset( $_REQUEST["gawd_metric"] ) ? sanitize_text_field( $_REQUEST["gawd_metric"] ) : '';
360
- $_data_compare = isset( $_REQUEST["_data_compare"] ) ? ( $_REQUEST["_data_compare"] ) : '';
361
- $first_data = isset( $_REQUEST["first_data"] ) ? ( $_REQUEST["first_data"] ) : '';
362
- $view_id = isset( $_REQUEST["view_id"] ) ? sanitize_text_field( $_REQUEST["view_id"] ) : '';
363
- $metric_compare = isset( $_REQUEST["gawd_metric_compare"] ) ? sanitize_text_field( $_REQUEST["gawd_metric_compare"] ) : '';
364
- $dimension = isset( $_REQUEST["gawd_dimension"] ) ? sanitize_text_field( $_REQUEST["gawd_dimension"] ) : '';
365
- $tab_name = isset( $_REQUEST["tab_name"] ) ? sanitize_text_field( $_REQUEST["tab_name"] ) : '';
366
- $img = isset( $_REQUEST["img"] ) ? sanitize_text_field( $_REQUEST["img"] ) : '';
367
- $gawd_email_subject = isset( $_REQUEST["gawd_email_subject"] ) ? sanitize_text_field( $_REQUEST["gawd_email_subject"] ) : '';
368
- $gawd_email_body = isset( $_REQUEST["gawd_email_body"] ) && $_REQUEST["gawd_email_body"] != '' ? sanitize_text_field( $_REQUEST["gawd_email_body"] ) : ' ';
369
- $email_from = isset( $_REQUEST["gawd_email_from"] ) ? sanitize_email( $_REQUEST["gawd_email_from"] ) : '';
370
- $email_to = isset( $_REQUEST["gawd_email_to"] ) ? sanitize_email( $_REQUEST["gawd_email_to"] ) : '';
371
- $email_period = isset( $_REQUEST["gawd_email_period"] ) ? sanitize_text_field( $_REQUEST["gawd_email_period"] ) : '';
372
- $week_day = isset( $_REQUEST["gawd_email_week_day"] ) ? sanitize_text_field( $_REQUEST["gawd_email_week_day"] ) : '';
373
- $month_day = isset( $_REQUEST["gawd_email_month_day"] ) ? sanitize_text_field( $_REQUEST["gawd_email_month_day"] ) : '';
374
- $emails = array();
375
- $invalid_email = false;
376
- $email_to = explode( ',', $email_to );
377
- foreach ( $email_to as $email ) {
378
- if ( is_email( $email ) == false ) {
379
- $emails = $email;
380
- }
381
- }
382
- if ( count( $emails ) > 0 ) {
383
- $invalid_email = true;
384
- }
385
- if ( ( $invalid_email != true ) && is_email( $email_from ) && $gawd_email_subject != '' ) {
386
- if ( $email_period == "once" ) {
387
- $file->get_request_data( $this );
388
- $file->sort_data();
389
- if ( $export_type == 'csv' ) {
390
- if ( $first_data != '' ) {
391
- $file->create_file( false );
392
- } else {
393
- $file->create_file();
394
- }
395
- } else {
396
- if ( $first_data != '' ) {
397
- $file->create_file( 'pages' );
398
- } elseif ( ( $_data_compare ) != '' ) {
399
- $file->create_file( 'compare' );
400
- } else {
401
- $file->create_file( false );
402
- }
403
- }
404
- $attachment = $file->file_dir;
405
-
406
- if ( $report_type == 'email' ) {
407
- $headers = 'From: <' . $email_from . '>';
408
- wp_mail( $email_to, $gawd_email_subject, $gawd_email_body, $headers, $attachment );
409
- }
410
- echo json_encode( array( 'status' => 'success', 'msg' => 'Email successfuly sent' ) );
411
- } else {
412
- if ( $email_period == 'gawd_weekly' ) {
413
- $period_day = $week_day;
414
- $timestamp = strtotime( 'this ' . $period_day );
415
- } elseif ( $email_period == 'gawd_monthly' ) {
416
- $period_day = $month_day;
417
- $timestamp = strtotime( date( 'Y-m-' . $period_day ) );
418
- } else {
419
- $period_day = '';
420
- $timestamp = time();
421
- }
422
- $saved_email = get_option( 'gawd_email' );
423
- if ( $saved_email ) {
424
- $gawd_email_options = array(
425
- 'name' => $gawd_email_subject,
426
- 'period' => $email_period,
427
- 'metric' => $metric,
428
- 'metric_compare' => $metric_compare,
429
- 'dimension' => $dimension,
430
- 'creation_date' => date( 'Y-m-d' ),
431
- 'emails' => $email_to,
432
- 'email_from' => $email_from,
433
- 'email_subject' => $gawd_email_subject,
434
- 'email_body' => $gawd_email_body,
435
- 'period_day' => $period_day,
436
- 'img' => $img,
437
- 'tab_name' => $tab_name,
438
- 'view_id' => $view_id,
439
- 'export_type' => $export_type
440
- );
441
- $saved_email[] = $gawd_email_options;
442
- update_option( 'gawd_email', $saved_email );
443
- } else {
444
- $gawd_email_options = array(
445
- 0 => array(
446
- 'name' => $gawd_email_subject,
447
- 'period' => $email_period,
448
- 'metric' => $metric,
449
- 'metric_compare' => $metric_compare,
450
- 'dimension' => $dimension,
451
- 'creation_date' => date( 'Y-m-d' ),
452
- 'emails' => $email_to,
453
- 'email_from' => $email_from,
454
- 'email_subject' => $gawd_email_subject,
455
- 'email_body' => $gawd_email_body,
456
- 'period_day' => $period_day,
457
- 'img' => $img,
458
- 'tab_name' => $tab_name,
459
- 'view_id' => $view_id,
460
- 'export_type' => $export_type
461
- )
462
- );
463
- update_option( 'gawd_email', $gawd_email_options );
464
- }
465
- $saved_email = get_option( 'gawd_email' );
466
- if ( $saved_email ) {
467
- foreach ( $saved_email as $email ) {
468
- if ( ! wp_next_scheduled( 'gawd_email_' . $email['period'] ) ) {
469
- wp_schedule_event( $timestamp, $email['period'], 'gawd_email_' . $email['period'] );
470
- }
471
- }
472
- }
473
- $success_message = 'Email successfuly Scheduled </br> Go to <a href="' . admin_url() . 'admin.php?page=gawd_settings#gawd_emails_tab">Settings page</a> to delete scheduled e-mails.';
474
- echo json_encode( array( 'status' => 'success', 'msg' => $success_message ) );
475
- }
476
-
477
- die;
478
- } else {
479
- if ( $invalid_email == true ) {
480
- echo json_encode( 'Invalid email' );
481
- die;
482
- } else if ( $gawd_email_subject == '' ) {
483
- echo json_encode( "Can't send email with empty subject" );
484
- die;
485
- }
486
- }
487
- }
488
- }
489
-
490
- public function overview_date_meta( $screen = null, $context = 'advanced' ) {
491
- //righ side wide meta..
492
- $orintation = wp_is_mobile() ? 'side' : 'normal';
493
- add_meta_box( 'gawd-real-time', __( 'Real Time', 'gawd' ), array(
494
- $this,
495
- 'gawd_real_time'
496
- ), 'gawd_analytics', 'side', 'high' );
497
- add_meta_box( 'gawd-date-meta', __( 'Audience', 'gawd' ), array(
498
- $this,
499
- 'gawd_date_box'
500
- ), 'gawd_analytics', $orintation, null );
501
- add_meta_box( 'gawd-country-box', __( 'Location', 'gawd' ), array(
502
- $this,
503
- 'gawd_country_box'
504
- ), 'gawd_analytics', $orintation, null );
505
- //left side thin meta.
506
- add_meta_box( 'gawd-visitors-meta', __( 'Visitors', 'gawd' ), array(
507
- $this,
508
- 'gawd_visitors'
509
- ), 'gawd_analytics', 'side', null );
510
- add_meta_box( 'gawd-browser-meta', __( 'Browsers', 'gawd' ), array(
511
- $this,
512
- 'gawd_browser'
513
- ), 'gawd_analytics', 'side', null );
514
- }
515
-
516
- public function gawd_date_box() {
517
- require_once( 'admin/pages/date.php' );
518
- }
519
-
520
- public function gawd_country_box() {
521
- require_once( 'admin/pages/location.php' );
522
- }
523
-
524
- public function gawd_real_time() {
525
- require_once( 'admin/pages/real_time.php' );
526
- }
527
-
528
- public function gawd_visitors() {
529
- require_once( 'admin/pages/visitors.php' );
530
- }
531
-
532
- public function gawd_browser() {
533
- require_once( 'admin/pages/browser.php' );
534
- }
535
-
536
- /**
537
- * Activation function needed for the activation hook.
538
- */
539
- public static function activate() {
540
- $credentials['project_id'] = '115052745574-5vbr7tci4hjkr9clkflmnpto5jisgstg.apps.googleusercontent.com';
541
- $credentials['project_secret'] = 'wtNiu3c_bA_g7res6chV0Trt';
542
- if ( ! get_option( 'gawd_credentials' ) ) {
543
- update_option( 'gawd_credentials', $credentials );
544
- }
545
- self::gawd_settings_defaults();
546
- self::add_dashboard_menu();
547
- }
548
-
549
- /**
550
- * Deactivation function needed for the deactivation hook.
551
- */
552
- public static function deactivate() {
553
-
554
- }
555
-
556
- /**
557
- * Enqueues the required styles and scripts, localizes some js variables.
558
- */
559
- public function gawd_front_scripts() {
560
- if ( is_user_logged_in() ) {
561
- wp_enqueue_style( 'admin_css', GAWD_URL . '/inc/css/gawd_admin.css', false, GAWD_VERSION );
562
- wp_enqueue_script( 'gawd_amcharts', GAWD_URL . '/inc/js/amcharts.js', false, GAWD_VERSION );
563
- wp_enqueue_script( 'gawd_pie', GAWD_URL . '/inc/js/pie.js', false, GAWD_VERSION );
564
- wp_enqueue_script( 'gawd_serial', GAWD_URL . '/inc/js/serial.js', false, GAWD_VERSION );
565
- wp_enqueue_script( 'gawd_light_theme', GAWD_URL . '/inc/js/light.js', array( 'jquery' ), GAWD_VERSION );
566
- wp_enqueue_script( 'gawd_dataloader', GAWD_URL . '/inc/js/dataloader.min.js', array( 'jquery' ), GAWD_VERSION );
567
- wp_enqueue_script( 'date-js', GAWD_URL . '/inc/js/date.js', array( 'jquery' ), GAWD_VERSION );
568
- wp_enqueue_script( 'gawd_front_js', GAWD_URL . '/inc/js/gawd_front.js', array( 'jquery' ), GAWD_VERSION );
569
- wp_localize_script( 'gawd_front_js', 'gawd_front', array(
570
- 'ajaxurl' => admin_url( 'admin-ajax.php' ),
571
- 'ajaxnonce' => wp_create_nonce( 'gawd_admin_page_nonce' ),
572
- 'gawd_plugin_url' => GAWD_URL,
573
- 'date_30' => date( 'Y-m-d', strtotime( '-31 day' ) ) . '/-/' . date( 'Y-m-d', strtotime( '-1 day' ) ),
574
- 'date_7' => date( 'Y-m-d', strtotime( '-8 day' ) ) . '/-/' . date( 'Y-m-d', strtotime( '-1 day' ) ),
575
- 'date_last_week' => date( 'Y-m-d', strtotime( 'last week -1day' ) ) . '/-/' . date( 'Y-m-d', strtotime( 'last week +5day' ) ),
576
- 'date_last_month' => date( 'Y-m-01', strtotime( 'last month' ) ) . '/-/' . date( 'Y-m-t', strtotime( 'last month' ) ),
577
- 'date_this_month' => date( 'Y-m-01' ) . '/-/' . date( 'Y-m-d' ),
578
- 'date_today' => date( 'Y-m-d' ) . '/-/' . date( 'Y-m-d' ),
579
- 'date_yesterday' => date( 'Y-m-d', strtotime( '-1 day' ) ) . '/-/' . date( 'Y-m-d', strtotime( '-1 day' ) ),
580
- 'wp_admin_url' => admin_url(),
581
- 'exportUrl' => add_query_arg( array( 'action' => 'gawd_export' ), admin_url( 'admin-ajax.php' ) )
582
- ) );
583
- }
584
- }
585
-
586
- public function gawd_enqueue_scripts() {
587
- $options = get_option( 'gawd_settings' );
588
- $default_date = ( isset( $options['default_date'] ) && $options['default_date'] != '' ) ? $options['default_date'] : 'last_30days';
589
- $default_date_format = ( isset( $options['default_date_format'] ) && $options['default_date_format'] != '' ) ? $options['default_date_format'] : 'ymd_with_week';
590
- $enable_hover_tooltip = ( isset( $options['enable_hover_tooltip'] ) && $options['enable_hover_tooltip'] != '' ) ? $options['enable_hover_tooltip'] : '';
591
- $screen = get_current_screen();
592
- if ( strpos( $screen->base, 'gawd' ) !== false || strpos( $screen->post_type, 'page' ) !== false || strpos( $screen->post_type, 'post' ) !== false || strpos( $screen->base, 'dashboard' ) !== false ) {
593
- wp_enqueue_script( 'common' );
594
- wp_enqueue_script( 'wp-lists' );
595
- wp_enqueue_script( 'postbox' );
596
- wp_enqueue_script( 'jquery-ui-tooltip' );
597
- wp_enqueue_script( 'gawd_paging', GAWD_URL . '/inc/js/paging.js', false, GAWD_VERSION );
598
- wp_enqueue_script( 'jquery.cookie', GAWD_URL . '/inc/js/jquery.cookie.js', false, GAWD_VERSION );
599
- wp_enqueue_style( 'admin_css', GAWD_URL . '/inc/css/gawd_admin.css', false, GAWD_VERSION );
600
- wp_enqueue_style( 'gawd_licensing', GAWD_URL . '/inc/css/gawd_licensing.css', false, GAWD_VERSION );
601
- wp_enqueue_style( 'gawd_featured', GAWD_URL . '/featured/style.css', array(), GAWD_VERSION );
602
- wp_enqueue_style( 'font_awesome', GAWD_URL . '/inc/css/font_awesome.css', false, GAWD_VERSION );
603
- wp_enqueue_style( 'jquery-ui.css', GAWD_URL . '/inc/css/jquery-ui.css', false, GAWD_VERSION );
604
- wp_enqueue_style( 'gawd_bootstrap', GAWD_URL . '/inc/css/bootstrap.css', false, GAWD_VERSION );
605
- wp_enqueue_style( 'gawd_bootstrap-chosen', GAWD_URL . '/inc/css/bootstrap-chosen.css', false, GAWD_VERSION );
606
- wp_enqueue_style( 'gawd_bootstrap-select', GAWD_URL . '/inc/css/bootstrap-select.css', false, GAWD_VERSION );
607
- wp_enqueue_style( 'gawd_datepicker', GAWD_URL . '/inc/css/daterangepicker.css', false, GAWD_VERSION );
608
- wp_enqueue_style( 'ui.jqgrid.css', GAWD_URL . '/inc/css/ui.jqgrid.css', false, GAWD_VERSION );
609
- wp_enqueue_script( 'gawd_moment', GAWD_URL . '/inc/js/moment.min.js', false, GAWD_VERSION );
610
- wp_enqueue_script( 'gawd_daterangepicker', GAWD_URL . '/inc/js/daterangepicker.js', false, GAWD_VERSION );
611
- wp_enqueue_script( 'gawd_amcharts', GAWD_URL . '/inc/js/amcharts.js', false, GAWD_VERSION );
612
- wp_enqueue_script( 'ddd', 'http://www.amcharts.com/lib/3/plugins/responsive/responsive.min.js?0.9.1a', false, GAWD_VERSION );
613
- wp_enqueue_script( 'gawd_pie', GAWD_URL . '/inc/js/pie.js', false, GAWD_VERSION );
614
- wp_enqueue_script( 'gawd_serial', GAWD_URL . '/inc/js/serial.js', false, GAWD_VERSION );
615
- /*Map*/
616
- wp_enqueue_script( 'gawd_ammap', GAWD_URL . '/inc/js/ammap.js', false, GAWD_VERSION );
617
- wp_enqueue_script( 'gawd_worldLow', GAWD_URL . '/inc/js/worldLow.js', false, GAWD_VERSION );
618
- wp_enqueue_script( 'gawd_map_chart', GAWD_URL . '/inc/js/gawd_map_chart.js', false, GAWD_VERSION );
619
- /*End Map*/
620
- wp_enqueue_script( 'gawd_light_theme', GAWD_URL . '/inc/js/light.js', array( 'jquery' ), GAWD_VERSION );
621
- wp_enqueue_script( 'gawd_dataloader', GAWD_URL . '/inc/js/dataloader.min.js', array( 'jquery' ), GAWD_VERSION );
622
- wp_enqueue_script( 'rgbcolor.js', GAWD_URL . '/inc/js/rgbcolor.js', array( 'jquery' ), GAWD_VERSION );
623
- wp_enqueue_script( 'StackBlur.js', GAWD_URL . '/inc/js/StackBlur.js', array( 'jquery' ), GAWD_VERSION );
624
- wp_enqueue_script( 'canvg.js', GAWD_URL . '/inc/js/canvg.js', array( 'jquery' ), GAWD_VERSION );
625
- wp_enqueue_script( 'gawd_tables', GAWD_URL . '/inc/js/loader.js', array( 'jquery' ), GAWD_VERSION );
626
- wp_enqueue_script( 'gawd_grid', GAWD_URL . '/inc/js/jquery.jqGrid.min.js', array( 'jquery' ), GAWD_VERSION );
627
- wp_enqueue_script( 'gawd_grid_locale', GAWD_URL . '/inc/js/grid.locale-en.js', array( 'jquery' ), GAWD_VERSION );
628
- wp_enqueue_script( 'date-js', GAWD_URL . '/inc/js/date.js', array( 'jquery' ), GAWD_VERSION );
629
- wp_enqueue_script( 'admin_js', GAWD_URL . '/inc/js/gawd_admin.js', array( 'jquery' ), GAWD_VERSION );
630
- wp_enqueue_script( 'chosen.jquery.js', GAWD_URL . '/inc/js/chosen.jquery.js', array( 'jquery' ), GAWD_VERSION );
631
- wp_enqueue_script( 'bootstrap_js', GAWD_URL . '/inc/js/bootstrap_js.js', array( 'jquery' ), GAWD_VERSION );
632
- wp_enqueue_script( 'bootstrap-select', GAWD_URL . '/inc/js/bootstrap-select.js', array( 'jquery' ), GAWD_VERSION );
633
- wp_enqueue_script( 'highlight_js', GAWD_URL . '/inc/js/js_highlight.js', array( 'jquery' ), GAWD_VERSION );
634
- wp_enqueue_script( 'settings_js', GAWD_URL . '/inc/js/gawd_settings.js', array( 'jquery' ), GAWD_VERSION );
635
- wp_enqueue_script( 'overview', GAWD_URL . '/inc/js/gawd_overview.js', array( 'jquery' ), GAWD_VERSION );
636
- wp_localize_script( 'overview', 'gawd_overview', array(
637
- 'ajaxurl' => admin_url( 'admin-ajax.php' ),
638
- 'ajaxnonce' => wp_create_nonce( 'gawd_admin_page_nonce' ),
639
- 'gawd_plugin_url' => GAWD_URL,
640
- 'default_date' => $default_date,
641
- 'enableHoverTooltip' => $enable_hover_tooltip,
642
- 'wp_admin_url' => admin_url()
643
- ) );
644
- wp_localize_script( 'admin_js', 'gawd_admin', array(
645
- 'ajaxurl' => admin_url( 'admin-ajax.php' ),
646
- 'ajaxnonce' => wp_create_nonce( 'gawd_admin_page_nonce' ),
647
- 'gawd_plugin_url' => GAWD_URL,
648
- 'wp_admin_url' => admin_url(),
649
- 'enableHoverTooltip' => $enable_hover_tooltip,
650
- 'default_date' => $default_date,
651
- 'default_date_format' => $default_date_format,
652
- 'date_30' => date( 'Y-m-d', strtotime( '-31 day' ) ) . '/-/' . date( 'Y-m-d', strtotime( '-1 day' ) ),
653
- 'date_7' => date( 'Y-m-d', strtotime( '-8 day' ) ) . '/-/' . date( 'Y-m-d', strtotime( '-1 day' ) ),
654
- 'date_last_week' => date( 'Y-m-d', strtotime( 'last week -1day' ) ) . '/-/' . date( 'Y-m-d', strtotime( 'last week +5day' ) ),
655
- 'date_last_month' => date( 'Y-m-01', strtotime( 'last month' ) ) . '/-/' . date( 'Y-m-t', strtotime( 'last month' ) ),
656
- 'date_this_month' => date( 'Y-m-01' ) . '/-/' . date( 'Y-m-d' ),
657
- 'date_today' => date( 'Y-m-d' ) . '/-/' . date( 'Y-m-d' ),
658
- 'date_yesterday' => date( 'Y-m-d', strtotime( '-1 day' ) ) . '/-/' . date( 'Y-m-d', strtotime( '-1 day' ) ),
659
- 'exportUrl' => add_query_arg( array( 'action' => 'gawd_export' ), admin_url( 'admin-ajax.php' ) )
660
- ) );
661
- }
662
- }
663
-
664
- /**
665
- * Adds the menu page with its submenus.
666
- */
667
- public function gawd_add_menu() {
668
-
669
-
670
- $gawd_settings = get_option( 'gawd_settings' );
671
- $gawd_permissions = isset( $gawd_settings['gawd_permissions'] ) ? $gawd_settings['gawd_permissions'] : array();
672
- if ( empty( $gawd_permissions ) ) {
673
- $permission = 'manage_options';
674
- } else {
675
- if ( in_array( 'manage_options', $gawd_permissions ) ) {
676
- $permission = 'manage_options';
677
- }
678
- if ( in_array( 'moderate_comments', $gawd_permissions ) ) {
679
- $permission = 'moderate_comments';
680
- }
681
- if ( in_array( 'publish_posts', $gawd_permissions ) ) {
682
- $permission = 'publish_posts';
683
- }
684
- if ( in_array( 'edit_posts', $gawd_permissions ) ) {
685
- $permission = 'edit_posts';
686
- }
687
- }
688
- add_menu_page(
689
- __( 'Analytics', 'gawd' ), //$page_title
690
- __( 'Analytics', 'gawd' ), //$menu_title
691
- $permission, //$capability
692
- 'gawd_analytics', //$menu_slug
693
- array( $this, $this->gawd_set_display( 'gawd_display_overview_page' ) ), //$function = '',
694
- GAWD_URL . '/assets/main_icon.png'
695
- //$position = null
696
- );
697
-
698
- add_submenu_page(
699
- 'gawd_analytics', //$parent_slug
700
- __( 'Overview', 'gawd' ), //$page_title
701
- __( 'Overview', 'gawd' ), //$menu_title
702
- $permission, //$capability
703
- $this->gawd_set_slug( 'gawd_analytics' ), //$menu_slug
704
- array( $this, $this->gawd_set_display( 'gawd_display_overview_page' ) ) //$function = '',
705
- );
706
- add_submenu_page(
707
- 'gawd_analytics', //$parent_slug
708
- __( 'Reports', 'gawd' ), //$page_title
709
- __( 'Reports', 'gawd' ), //$menu_title
710
- $permission, //$capability
711
- $this->gawd_set_slug( 'gawd_reports' ), //$menu_slug
712
- array( $this, $this->gawd_set_display( 'gawd_display_reports_page' ) ) //$function = '',
713
- );
714
-
715
- add_submenu_page(
716
- 'gawd_analytics', //$parent_slug
717
- __( 'Settings', 'gawd' ), //$page_title
718
- __( 'Settings', 'gawd' ), //$menu_title
719
- $permission, //$capability
720
- 'gawd_settings', //$menu_slug
721
- array( $this, 'gawd_display_settings_page' ) //$function = '',
722
-
723
- );
724
- add_submenu_page(
725
- 'gawd_analytics', //$parent_slug
726
- __( 'Tracking', 'gawd' ), //$page_title
727
- __( 'Tracking', 'gawd' ), //$menu_title
728
- $permission, //$capability
729
- $this->gawd_set_slug( 'gawd_tracking' ), //$menu_slug
730
- array( $this, $this->gawd_set_display( 'gawd_display_tracking_page' ) ) //$function = '',
731
- );
732
- add_submenu_page(
733
- 'gawd_analytics', //$parent_slug
734
- __( 'Goal Management', 'gawd' ), //$page_title
735
- __( 'Goal Management', 'gawd' ), //$menu_title
736
- $permission, //$capability
737
- $this->gawd_set_slug( 'gawd_goals' ), //$menu_slug
738
- array( $this, $this->gawd_set_display( 'gawd_display_goals_page' ) ) //$function = '',
739
- );
740
-
741
- add_submenu_page(
742
- 'gawd_analytics', //$parent_slug
743
- __( 'Custom Reports', 'gawd' ), //$page_title
744
- __( 'Custom Reports', 'gawd' ), //$menu_title
745
- $permission, //$capability
746
- $this->gawd_set_slug( 'gawd_custom_reports' ), //$menu_slug
747
- array( $this, $this->gawd_set_display( 'gawd_display_custom_reports_page' ) ) //$function = '',
748
- );
749
- add_submenu_page(
750
- 'gawd_analytics', //$parent_slug
751
- __( 'Get Pro', 'gawd' ), //$page_title
752
- __( 'Get Pro', 'gawd' ), //$menu_title
753
- $permission, //$capability
754
- 'gawd_licensing', //$menu_slug
755
- array( $this, 'gawd_display_licensing_page' ) //$function = '',
756
- );
757
- add_submenu_page(
758
- 'gawd_analytics', //$parent_slug
759
- __( 'Featured Plugins', 'gawd' ), //$page_title
760
- __( 'Featured Plugins', 'gawd' ), //$menu_title
761
- $permission, //$capability
762
- 'gawd_featured_plugins', //$menu_slug
763
- array( $this, 'gawd_display_featured_plugins_page' ) //$function = '',
764
- );
765
- add_submenu_page(
766
- 'gawd_analytics', //$parent_slug
767
- __( 'Featured Themes', 'gawd' ), //$page_title
768
- __( 'Featured Themes', 'gawd' ), //$menu_title
769
- $permission, //$capability
770
- 'gawd_featured_themes', //$menu_slug
771
- array( $this, 'gawd_display_featured_themes_page' ) //$function = '',
772
- );
773
- add_submenu_page(
774
- 'gawd_analytics', //$parent_slug
775
- __( 'Uninstall', 'gawd' ), //$page_title
776
- __( 'Uninstall', 'gawd' ), //$menu_title
777
- $permission, //$capability
778
- 'gawd_uninstall', //$menu_slug
779
- array( $this, 'gawd_display_uninstall_page' ) //$function = '',
780
- );
781
-
782
- }
783
-
784
-
785
- public function gawd_set_slug( $slug ) {
786
- global $gawd_redirect_to_settings;
787
- if ( $gawd_redirect_to_settings == 'yes' ) {
788
- return 'gawd_settings';
789
- } else {
790
- return $slug;
791
- }
792
- }
793
-
794
- public function gawd_set_display( $slug ) {
795
- global $gawd_redirect_to_settings;
796
- if ( $gawd_redirect_to_settings == 'yes' ) {
797
- return 'gawd_display_settings_page';
798
- } else {
799
- return $slug;
800
- }
801
- }
802
-
803
- public function gawd_display_licensing_page() {
804
- require_once( GAWD_DIR . '/admin/licensing.php' );
805
- }
806
-
807
- function upgrade_pro() {
808
- $screen = get_current_screen();
809
- if ( strpos( $screen->base, 'gawd' ) !== false && strpos( $screen->base, 'gawd_featured' ) === false ) {
810
- ?>
811
- <div class="gawd_upgrade wd-clear">
812
- <div class="wd-right">
813
- <a href="https://web-dorado.com/products/wordpress-google-analytics-plugin.html" target="_blank">
814
- <div class="wd-table">
815
- <div class="wd-cell wd-cell-valign-middle">
816
- <?php _e( "Upgrade to paid version", "gawd" ); ?>
817
- </div>
818
-
819
- <div class="wd-cell wd-cell-valign-middle">
820
- <img src="<?php echo GAWD_URL; ?>/assets/web-dorado.png">
821
- </div>
822
- </div>
823
- </a>
824
- </div>
825
- </div>
826
- <?php
827
- }
828
- }
829
-
830
- public function gawd_display_featured_plugins_page() {
831
- require_once( GAWD_DIR . '/featured/featured.php' );
832
- gawd_featured_plugins( 'wd-google-analytics' );
833
-
834
- }
835
-
836
- public function gawd_display_featured_themes_page() {
837
- require_once( GAWD_DIR . '/featured/featured_themes.php' );
838
- $controller = new gawd_featured_themes();
839
- $controller->display();
840
- }
841
-
842
- public function gawd_auth() {
843
- check_ajax_referer( 'gawd_admin_page_nonce', 'security' );
844
- $code = $_POST['token'];
845
- $status = GAWD_google_client::authenticate( $code );
846
- if ( $status === true ) {
847
- $res = array(
848
- 'message' => 'successfully saved',
849
- 'status' => $status,
850
- );
851
- } else {
852
- $res = array(
853
- 'message' => 'there is an error',
854
- 'status' => $status
855
- );
856
- }
857
- header( 'content-type: application/json' );
858
- echo json_encode( $res );
859
- wp_die();
860
- }
861
-
862
- /**
863
- * Displays the Dashboard page.
864
- */
865
- public function gawd_display_uninstall_page() {
866
- require_once( 'admin/pages/uninstall.php' );
867
- $gawd_uninstall = new GAWDUninstall();
868
- $deactivate_url = wp_nonce_url( 'plugins.php?action=deactivate&plugin=' . GWD_NAME . '/google-analytics-wd.php', 'deactivate-plugin_' . GWD_NAME . '/google-analytics-wd.php' );
869
- $deactivate_url = str_replace( '&amp;', '&', $deactivate_url );
870
- if ( isset( $_POST['unistall_gawd'] ) ) {
871
- check_admin_referer( 'gawd_save_form', 'gawd_save_form_fild' );
872
- delete_option( 'gawd_custom_reports' );
873
- delete_option( 'gawd_menu_for_user' );
874
- delete_option( 'gawd_all_metrics' );
875
- delete_option( 'gawd_all_dimensions' );
876
- delete_option( 'gawd_custom_dimensions' );
877
- delete_option( 'gawd_settings' );
878
- delete_option( 'gawd_user_data' );
879
- delete_option( 'gawd_credentials' );
880
- delete_option( 'gawd_menu_items' );
881
- delete_option( 'gawd_export_chart_data' );
882
- delete_option( 'gawd_email' );
883
- delete_option( 'gawd_custom_reports' );
884
- delete_option( 'gawd_alerts' );
885
- delete_option( 'gawd_pushovers' );
886
- delete_option( 'gawd_menu_for_users' );
887
- delete_option( 'gawd_own_project' );
888
- delete_option( 'gawd_zoom_message' );
889
- delete_transient( 'gawd_user_profiles' );
890
- echo '<script>window.location.href="' . $deactivate_url . '";</script>';
891
- }
892
- if ( get_option( 'gawd_credentials' ) ) {
893
- $gawd_uninstall->uninstall();
894
- }
895
- }
896
-
897
- public function gawd_display_goals_page() {
898
- global $gawd_client;
899
- if ( $this->manage_ua_code_selection() != 'done' ) {
900
- return;
901
- }
902
- $gawd_client = GAWD_google_client::get_instance();
903
- if ( ! empty( $_POST ) ) {
904
- check_admin_referer( 'gawd_save_form', 'gawd_save_form_fild' );
905
- }
906
- $gawd_goal_profile = isset( $_POST['gawd_goal_profile'] ) ? sanitize_text_field( $_POST['gawd_goal_profile'] ) : '';
907
- $gawd_goal_name = isset( $_POST['gawd_goal_name'] ) ? sanitize_text_field( $_POST['gawd_goal_name'] ) : '';
908
- $gawd_goal_type = isset( $_POST['gawd_goal_type'] ) ? sanitize_text_field( $_POST['gawd_goal_type'] ) : '';
909
- $gawd_visit_hour = isset( $_POST['gawd_visit_hour'] ) ? sanitize_text_field( $_POST['gawd_visit_hour'] ) : '';
910
- $gawd_visit_minute = isset( $_POST['gawd_visit_minute'] ) ? sanitize_text_field( $_POST['gawd_visit_minute'] ) : '';
911
- $gawd_visit_second = isset( $_POST['gawd_visit_second'] ) ? sanitize_text_field( $_POST['gawd_visit_second'] ) : '';
912
- $gawd_goal_duration_comparison = isset( $_POST['gawd_goal_duration_comparison'] ) ? sanitize_text_field( $_POST['gawd_goal_duration_comparison'] ) : '';
913
- $gawd_goal_page_comparison = isset( $_POST['gawd_goal_page_comparison'] ) ? sanitize_text_field( $_POST['gawd_goal_page_comparison'] ) : '';
914
- $gawd_page_sessions = isset( $_POST['gawd_page_sessions'] ) ? sanitize_text_field( $_POST['gawd_page_sessions'] ) : '';
915
- $goal_max_id = isset( $_POST['goal_max_id'] ) ? $_POST['goal_max_id'] + 1 : 1;
916
- $gawd_goal_page_destination_match = isset( $_POST['gawd_goal_page_destination_match'] ) ? sanitize_text_field( $_POST['gawd_goal_page_destination_match'] ) : '';
917
- $gawd_page_url = isset( $_POST['gawd_page_url'] ) ? sanitize_text_field( $_POST['gawd_page_url'] ) : '';
918
- $url_case_sensitve = isset( $_POST['url_case_sensitve'] ) ? $_POST['url_case_sensitve'] : '';
919
- if ( $gawd_goal_type == 'VISIT_TIME_ON_SITE' ) {
920
- if ( $gawd_visit_hour != '' || $gawd_visit_minute != '' || $gawd_visit_second != '' ) {
921
- $value = 0;
922
- if ( $gawd_visit_hour != '' ) {
923
- $value += $gawd_visit_hour * 60 * 60;
924
- }
925
- if ( $gawd_visit_minute != '' ) {
926
- $value += $gawd_visit_minute * 60;
927
- }
928
- if ( $gawd_visit_second != '' ) {
929
- $value += $gawd_visit_second;
930
- }
931
- }
932
- $gawd_client->add_goal( $gawd_goal_profile, $goal_max_id, $gawd_goal_type, $gawd_goal_name, $gawd_goal_duration_comparison, $value );
933
- } elseif ( $gawd_goal_type == 'VISIT_NUM_PAGES' ) {
934
- if ( $gawd_page_sessions != '' ) {
935
- $gawd_client->add_goal( $gawd_goal_profile, $goal_max_id, $gawd_goal_type, $gawd_goal_name, $gawd_goal_page_comparison, $gawd_page_sessions );
936
- }
937
- } elseif ( $gawd_goal_type == 'URL_DESTINATION' ) {
938
- if ( $gawd_page_url != '' ) {
939
- $gawd_client->add_goal( $gawd_goal_profile, $goal_max_id, $gawd_goal_type, $gawd_goal_name, $gawd_goal_page_destination_match, $gawd_page_url, $url_case_sensitve );
940
- }
941
- } elseif ( $gawd_goal_type == 'EVENT' ) {
942
- if ( $gawd_page_url != '' ) {
943
- $gawd_client->add_goal( $gawd_goal_profile, $goal_max_id, $gawd_goal_type, $gawd_goal_name, $gawd_goal_page_comparison, $gawd_page_url, $url_case_sensitve );
944
- }
945
- }
946
- require_once( 'admin/pages/goals.php' );
947
-
948
- }
949
-
950
- public function gawd_display_custom_reports_page() {
951
- global $gawd_client;
952
- if ( ! empty( $_POST ) ) {
953
- check_admin_referer( 'gawd_save_form', 'gawd_save_form_fild' );
954
- }
955
- $gawd_client = GAWD_google_client::get_instance();
956
- $gawd_remove_custom_report = isset( $_POST['gawd_remove_custom_report'] ) ? sanitize_text_field( $_POST['gawd_remove_custom_report'] ) : '';
957
- if ( $gawd_remove_custom_report ) {
958
- $all_reports = get_option( "gawd_custom_reports" );
959
- if ( $all_reports ) {
960
- unset( $all_reports[ $gawd_remove_custom_report ] );
961
- update_option( 'gawd_custom_reports', $all_reports );
962
- self::add_dashboard_menu();
963
- }
964
- }
965
- if ( isset( $_POST['gawd_add_custom_report'] ) ) {
966
- $gawd_custom_report_name = isset( $_POST['gawd_custom_report_name'] ) ? sanitize_text_field( $_POST['gawd_custom_report_name'] ) : '';
967
- $gawd_custom_report_metric = isset( $_POST['gawd_custom_report_metric'] ) ? sanitize_text_field( $_POST['gawd_custom_report_metric'] ) : '';
968
- $gawd_custom_report_dimension = isset( $_POST['gawd_custom_report_dimension'] ) ? sanitize_text_field( $_POST['gawd_custom_report_dimension'] ) : '';
969
-
970
- if ( $gawd_custom_report_name != '' && $gawd_custom_report_metric != '' && $gawd_custom_report_dimension != '' ) {
971
- $saved_custom_reports = get_option( "gawd_custom_reports" );
972
- if ( ! isset( $saved_custom_reports[ $gawd_custom_report_name ] ) ) {
973
- if ( $saved_custom_reports ) {
974
- $custom_reports = array(
975
- 'metric' => $gawd_custom_report_metric,
976
- 'dimension' => $gawd_custom_report_dimension,
977
- 'id' => count( $saved_custom_reports ) + 1
978
- );
979
- $saved_custom_reports[ $gawd_custom_report_name ] = $custom_reports;
980
-
981
- update_option( 'gawd_custom_reports', $saved_custom_reports );
982
- } else {
983
- $custom_reports = array(
984
- $gawd_custom_report_name => array(
985
- 'metric' => $gawd_custom_report_metric,
986
- 'dimension' => $gawd_custom_report_dimension,
987
- 'id' => 1
988
- )
989
- );
990
- update_option( 'gawd_custom_reports', $custom_reports );
991
- }
992
- }
993
- }
994
- self::add_dashboard_menu();
995
- }
996
- require_once( 'admin/pages/custom_reports.php' );
997
- }
998
-
999
- public function gawd_display_overview_page() {
1000
- global $gawd_client, $gawd_user_data;
1001
- $gawd_client = GAWD_google_client::get_instance();
1002
- $profiles = $gawd_client->get_profiles();
1003
- $gawd_user_data = get_option( 'gawd_user_data' );
1004
- if ( isset( $_POST['gawd_id'] ) ) {
1005
- $gawd_user_data['gawd_id'] = isset( $_POST['gawd_id'] ) ? $_POST['gawd_id'] : '';
1006
- foreach ( $gawd_user_data['gawd_profiles'] as $web_property_name => $web_property ) {
1007
- foreach ( $web_property as $profile ) {
1008
- if ( $profile['id'] == $gawd_user_data['gawd_id'] ) {
1009
- $gawd_user_data['web_property_name'] = $web_property_name;
1010
- $gawd_user_data['webPropertyId'] = $profile['webPropertyId'];
1011
- $gawd_user_data['accountId'] = $profile['accountId'];
1012
- }
1013
- }
1014
- }
1015
- $gawd_user_data['web_property_name'] = isset( $_POST['web_property_name'] ) ? $_POST['web_property_name'] : '';
1016
- update_option( 'gawd_user_data', $gawd_user_data );
1017
- }
1018
- require_once( 'admin/pages/overview.php' );
1019
- }
1020
-
1021
- public function gawd_display_reports_page() {
1022
- global $gawd_client, $gawd_user_data;
1023
- $gawd_client = GAWD_google_client::get_instance();
1024
- $profiles = $gawd_client->get_profiles();
1025
- $gawd_user_data = get_option( 'gawd_user_data' );
1026
- if ( isset( $_POST['gawd_id'] ) ) {
1027
- $gawd_user_data['gawd_id'] = isset( $_POST['gawd_id'] ) ? $_POST['gawd_id'] : '';
1028
- foreach ( $gawd_user_data['gawd_profiles'] as $web_property_name => $web_property ) {
1029
- foreach ( $web_property as $profile ) {
1030
- if ( $profile['id'] == $gawd_user_data['gawd_id'] ) {
1031
- $gawd_user_data['web_property_name'] = $web_property_name;
1032
- $gawd_user_data['webPropertyId'] = $profile['webPropertyId'];
1033
- $gawd_user_data['accountId'] = $profile['accountId'];
1034
- }
1035
- }
1036
- }
1037
- $gawd_user_data['web_property_name'] = isset( $_POST['web_property_name'] ) ? $_POST['web_property_name'] : '';
1038
- update_option( 'gawd_user_data', $gawd_user_data );
1039
- }
1040
- require_once( 'admin/pages/dashboard.php' );
1041
- }
1042
-
1043
- public function gawd_daily_email() {
1044
- require_once( GAWD_DIR . '/admin/gawd_google_class.php' );
1045
- $gawd_client = GAWD_google_client::get_instance();
1046
- $emails = get_option( 'gawd_email' );
1047
- $gawd_user_data = get_option( 'gawd_user_data' );
1048
- $data = '';
1049
- foreach ( $emails as $email ) {
1050
- if ( isset( $email['period'] ) && $email['period'] == 'daily' ) {
1051
- //pls send email if ....
1052
- $date = date( 'Y-m-d', strtotime( 'yesterday' ) );
1053
- $email_subject = preg_match( '/\(([0-9]{4}-[0-1][0-9]-[0-3][0-9] \- [0-9]{4}-[0-1][0-9]-[0-3][0-9])\)/', $email['email_subject'] ) ? preg_replace( '/\(([0-9]{4}-[0-1][0-9]-[0-3][0-9] \- [0-9]{4}-[0-1][0-9]-[0-3][0-9])\)/', '(' . $date . ' - ' . $date . ')', $email['email_subject'] ) : $email['email_subject'] . ' (' . $date . ' - ' . $date . ')';
1054
- $data = $this->show_data( array(
1055
- 'metric' => 'ga:' . $email['metric'],
1056
- 'dimension' => $email['dimension'],
1057
- 'start_date' => $date,
1058
- 'end_date' => $date
1059
- ) );
1060
- if ( $email['export_type'] == 'pdf' ) {
1061
- $filedir = $this->create_pdf_file( false, $data, $email['dimension'], $date, $date, $email['metric_compare'], $email['metric'] );
1062
- } else {
1063
- $filedir = $this->create_csv_file( false, $data, $email['dimension'], $date, $date, $email['metric_compare'], $email['metric'] );
1064
- }
1065
- //$attachment = gawd_export_data($data, $export_type, 'email', $email['dimension'], $email['metric'], $email['metric_compare'], $email['img'], $email['tab_name'], $start_date, $end_date, $gawd_user_data['web_property_name'],$filter_type);
1066
- $attachment = $filedir;
1067
- $headers = 'From: <' . $email['email_from'] . '>';
1068
- wp_mail( $email['emails'], $email_subject, $email['email_body'], $headers, $attachment );
1069
- }
1070
- }
1071
- }
1072
-
1073
- public function gawd_weekly_email() {
1074
- require_once( GAWD_DIR . '/admin/gawd_google_class.php' );
1075
- $gawd_client = GAWD_google_client::get_instance();
1076
- $emails = get_option( 'gawd_email' );
1077
- $gawd_user_data = get_option( 'gawd_user_data' );
1078
- $data = '';
1079
- foreach ( $emails as $email ) {
1080
- if ( isset( $email['period'] ) && $email['period'] == 'gawd_weekly' ) {
1081
- //pls send email if ....
1082
- /*$start_date = date('Y-m-d', strtotime('last' . $email['period_day']));
1083
- $end_date = date('Y-m-d', strtotime('this' . $email['period_day']));*/
1084
- $start_date = date( 'Y-m-d', strtotime( 'last week -1 day' ) );
1085
- $end_date = date( 'l' ) != 'Sunday' ? date( 'Y-m-d', strtotime( 'last sunday -1 day' ) ) : date( 'Y-m-d', strtotime( '-1 day' ) );
1086
- $email_subject = preg_match( '/\(([0-9]{4}-[0-1][0-9]-[0-3][0-9] \- [0-9]{4}-[0-1][0-9]-[0-3][0-9])\)/', $email['email_subject'] ) ? preg_replace( '/\(([0-9]{4}-[0-1][0-9]-[0-3][0-9] \- [0-9]{4}-[0-1][0-9]-[0-3][0-9])\)/', '(' . $start_date . ' - ' . $end_date . ')', $email['email_subject'] ) : $email['email_subject'] . ' (' . $start_date . ' - ' . $end_date . ')';
1087
- $data = $this->show_data( array(
1088
- 'metric' => 'ga:' . $email['metric'],
1089
- 'dimension' => $email['dimension'],
1090
- 'start_date' => $start_date,
1091
- 'end_date' => $end_date
1092
- ) );
1093
- if ( $email['export_type'] == 'pdf' ) {
1094
- $filedir = $this->create_pdf_file( false, $data, $email['dimension'], $start_date, $end_date, $email['metric_compare'], $email['metric'] );
1095
- } else {
1096
- $filedir = $this->create_csv_file( false, $data, $email['dimension'], $start_date, $end_date, $email['metric_compare'], $email['metric'] );
1097
- }
1098
- //$attachment = gawd_export_data($data, $export_type, 'email', $email['dimension'], $email['metric'], $email['metric_compare'], $email['img'], $email['tab_name'], $start_date, $end_date, $gawd_user_data['web_property_name'],$filter_type);
1099
- $attachment = $filedir;
1100
-
1101
- $headers = 'From: <' . $email['email_from'] . '>';
1102
- wp_mail( $email['emails'], $email_subject, $email['email_body'], $headers, $attachment );
1103
- }
1104
- }
1105
- }
1106
-
1107
- public function gawd_monthly_email() {
1108
- require_once( GAWD_DIR . '/admin/gawd_google_class.php' );
1109
- $gawd_client = GAWD_google_client::get_instance();
1110
- $emails = get_option( 'gawd_email' );
1111
- $gawd_user_data = get_option( 'gawd_user_data' );
1112
- $data = '';
1113
- foreach ( $emails as $email ) {
1114
- if ( isset( $email['period'] ) && $email['period'] == 'gawd_monthly' ) {
1115
- //pls send email if ....
1116
- $end_date = date( 'Y-m-d', strtotime( date( 'Y-' . date( 'm' ) . '-1' ) . '-1 day' ) );
1117
- $start_date = date( 'Y-m-d', strtotime( $end_date . '- 1 month' ) );
1118
- $data = $this->show_data( array(
1119
- 'metric' => 'ga:' . $email['metric'],
1120
- 'dimension' => $email['dimension'],
1121
- 'start_date' => $start_date,
1122
- 'end_date' => $end_date
1123
- ) );
1124
- $email_subject = preg_match( '/\(([0-9]{4}-[0-1][0-9]-[0-3][0-9] \- [0-9]{4}-[0-1][0-9]-[0-3][0-9])\)/', $email['email_subject'] ) ? preg_replace( '/\(([0-9]{4}-[0-1][0-9]-[0-3][0-9] \- [0-9]{4}-[0-1][0-9]-[0-3][0-9])\)/', '(' . $start_date . ' - ' . $end_date . ')', $email['email_subject'] ) : $email['email_subject'] . ' (' . $start_date . ' - ' . $end_date . ')';
1125
- if ( $email['export_type'] == 'pdf' ) {
1126
- $filedir = $this->create_pdf_file( false, $data, $email['dimension'], $start_date, $end_date, $email['metric_compare'], $email['metric'] );
1127
- } else {
1128
- $filedir = $this->create_csv_file( false, $data, $email['dimension'], $start_date, $end_date, $email['metric_compare'], $email['metric'] );
1129
- }
1130
- //$attachment = gawd_export_data($data, $export_type, 'email', $email['dimension'], $email['metric'], $email['metric_compare'], $email['img'], $email['tab_name'], $start_date, $end_date, $gawd_user_data['web_property_name'],$filter_type);
1131
- $attachment = $filedir;
1132
- $headers = 'From: <' . $email['email_from'] . '>';
1133
- wp_mail( $email['emails'], $email_subject, $email['email_body'], $headers, $attachment );
1134
- }
1135
- }
1136
- }
1137
-
1138
- /**
1139
- * Prepares the settings to be displayed then displays the settings page.
1140
- */
1141
- public static function gawd_settings_defaults() {
1142
- $settings = get_option( 'gawd_settings' );
1143
- $settings['gawd_tracking_enable'] = 'on';
1144
- $settings['gawd_custom_dimension_Logged_in'] = 'on';
1145
- $settings['gawd_custom_dimension_Post_type'] = 'on';
1146
- $settings['gawd_custom_dimension_Author'] = 'on';
1147
- $settings['gawd_custom_dimension_Category'] = 'on';
1148
- $settings['gawd_custom_dimension_Published_Month'] = 'on';
1149
- $settings['gawd_custom_dimension_Published_Year'] = 'on';
1150
- $settings['gawd_custom_dimension_Tags'] = 'on';
1151
- $settings['enable_hover_tooltip'] = 'on';
1152
- update_option( 'gawd_settings', $settings );
1153
- }
1154
-
1155
- public function manage_ua_code_selection() {
1156
- global $gawd_user_data, $gawd_client;
1157
- $gawd_user_data = get_option( 'gawd_user_data' );
1158
- if ( isset( $gawd_user_data['default_webPropertyId'] ) && $gawd_user_data['default_webPropertyId'] ) {
1159
- return 'done';
1160
- } else {
1161
- $gawd_client = GAWD_google_client::get_instance();
1162
- $property = $gawd_client->property_exists();
1163
- if ( $property == 'no_matches' ) {
1164
- $this->gawd_admin_notice( "<p class='gawd_notice'>You don't have any web-properties with current site url, go with <a href='" . admin_url( 'admin.php?page=gawd_tracking' ) . "'>this</a> link to add.</p>", 'error' );
1165
- // show notice that you don't have property with current site url
1166
- // add account or property to an existing account
1167
- } elseif ( count( $property ) == 1 ) {
1168
- $property = $property[0];
1169
- $gawd_user_data['webPropertyId'] = $property['id'];
1170
- $gawd_user_data['default_webPropertyId'] = $property['id'];
1171
- $gawd_user_data['accountId'] = $property['accountId'];
1172
- $gawd_user_data['default_accountId'] = $property['accountId'];
1173
- $gawd_user_data['gawd_id'] = $property['defaultProfileId'];
1174
- update_option( 'gawd_user_data', $gawd_user_data );
1175
- $this->gawd_admin_notice( "In order to enable tracking for your website, you have to go with
1176
- <a href='" . admin_url( 'admin.php?page=gawd_tracking' ) . "'>this</a> link and turn the option on.", 'warning is-dismissible' );
1177
- // show notice that you have to enable tracking code, link to tracking submenu
1178
- } else {
1179
- $this->gawd_admin_notice( "You have two or more web-properties configured with current site url. Please go with
1180
- <a href='" . admin_url( 'admin.php?page=gawd_tracking' ) . "'>this</a> link to select the proper one.", 'error' );
1181
- // show notice that you have >=2 properties with current site url
1182
- // select property from same url properties
1183
- }
1184
- }
1185
- }
1186
-
1187
- public function manage_ua_code_selection_tracking() {
1188
- global $gawd_user_data;
1189
- if ( isset( $gawd_user_data['default_webPropertyId'] ) && $gawd_user_data['default_webPropertyId'] ) {
1190
- return 'done';
1191
- } else {
1192
- $gawd_client = GAWD_google_client::get_instance();
1193
- $property = $gawd_client->property_exists();
1194
- if ( $property == 'no_matches' ) {
1195
- $accounts = $gawd_client->get_management_accounts();
1196
- if ( ! empty( $accounts ) ) {
1197
- echo "<h3 style='margin-top:10px' class='gawd_page_titles'>Tracking</h3>
1198
- <p class='gawd_notice notice'>Here you can add a <b>web property</b> on your Google Analytics account using current WordPress website.<br>
1199
- Provide a <b>Name</b> for the property and click <b>Add</b>. You can check and manage web properties from your Google Analytics account, <b>Admin</b> page.<br>
1200
- Alternatively, you can click <b>Later</b> and configure the web property any other time.</p>
1201
- <br/>
1202
- <form method='post' id='gawd_property_add'>
1203
- <div class='gawd_settings_wrapper'>
1204
- <div class='gawd_goal_row'>
1205
- <span class='gawd_goal_label'>Account</span>
1206
- <span class='gawd_goal_input'>
1207
- <select name='gawd_account_select' class='gawd_account_select' style='padding: 2px;width: 96%;line-height: 30px;height: 30px !important;'>";
1208
- foreach ( $accounts as $account ) {
1209
- echo "<option value='" . $account['id'] . "'>" . $account['name'] . "</option>";
1210
- }
1211
- echo "</select>
1212
- </span>
1213
- <div class='gawd_info' title='this_is_tooltip'></div>
1214
- <div class='clear'></div>
1215
- </div>
1216
- <div class='gawd_goal_row'>
1217
- <span class='gawd_goal_label'>Name</span>
1218
- <span class='gawd_goal_input'>
1219
- <input id='gawd_property_name' name='gawd_property_name' type='text'>
1220
- </span>
1221
- <div class='gawd_info' title='this_is_tooltip'></div>
1222
- <div class='clear'></div>
1223
- </div>
1224
- </div>
1225
- <div class='gawd_add_prop gawd_submit'>
1226
- <a href='" . admin_url() . "admin.php?page=gawd_analytics' class='gawd_later button_gawd'>Later</a>
1227
- <input type='submit' name='add_property' class='button_gawd' value='ADD'/>
1228
- </div>
1229
- </form>";
1230
- // account select to add web property and web property parameters
1231
- // and add link to google analytics for manually creating an account
1232
- // wp_die();
1233
- } else {
1234
- $this->gawd_admin_notice( "You do not have any google analytics accounts set. Please go with <a href='https://analytics.google.com/' target='_blank'>this</a> link to add one.", "error" );
1235
- // link to google analytics to add account
1236
- // wp_die();
1237
- }
1238
- } elseif ( count( $property ) == 1 ) {
1239
- $property = $property[0];
1240
- $gawd_user_data['webPropertyId'] = $property['id'];
1241
- $gawd_user_data['default_webPropertyId'] = $property['id'];
1242
- $gawd_user_data['accountId'] = $property['accountId'];
1243
- $gawd_user_data['default_accountId'] = $property['accountId'];
1244
- $gawd_user_data['gawd_id'] = $property['defaultProfileId'];
1245
- update_option( 'gawd_user_data', $gawd_user_data );
1246
- } else {
1247
- echo "<p class='notice'>You have multiple web-properties set with current site url. Please select the one which you want to use for tracking from the list below.</p>
1248
- <br/>
1249
- <form method='post' id='gawd_property_select'>
1250
- <div class='gawd_settings_wrapper'>
1251
- <div class='gawd_goal_row'>
1252
- <span class='gawd_goal_label'>Web-property</span>
1253
- <span class='gawd_goal_input'>
1254
- <select name='gawd_property_select' class='gawd_property_select' style='padding: 2px;width: 96%;line-height: 30px;height: 30px !important;'>";
1255
- foreach ( $property as $select_property ) {
1256
- echo "<option value='" . $select_property['id'] . "'>" . $select_property['name'] . " (" . $select_property['id'] . ")</option>";
1257
- }
1258
- echo "</select>
1259
- </span>
1260
- <div class='gawd_info' title='this_is_tooltip'></div>
1261
- <div class='clear'></div>
1262
- </div>
1263
- </div>
1264
- <div class='gawd_submit'><input type='submit' name='lock_property' class='button_gawd' value='SAVE'/></div>
1265
- </form>";
1266
- // web property select to select from properties with same site url
1267
- // wp_die();
1268
- }
1269
- }
1270
- }
1271
-
1272
- public function gawd_admin_notice( $message, $type ) {
1273
- $class = 'notice notice-' . $type;
1274
- echo '<div class="' . $class . '"><p>' . $message . '</p></div>';
1275
- }
1276
-
1277
- public function gawd_display_settings_page() {
1278
-
1279
- global $gawd_user_data;
1280
- $gawd_user_data = get_option( 'gawd_user_data' );
1281
- if ( isset( $_GET['defaultExist'] ) && $_GET['defaultExist'] == 1 ) {
1282
- $redirect_url = admin_url() . 'admin.php?page=gawd_tracking';
1283
- echo '<script>window.location.href="' . $redirect_url . '";</script>';
1284
- }
1285
- if ( isset( $_POST['gawd_settings_logout'] ) && $_POST['gawd_settings_logout'] == 1 ) {
1286
- delete_option( 'gawd_user_data' );
1287
- $redirect_url = admin_url() . 'admin.php?page=gawd_settings';
1288
- echo '<script>window.location.href="' . $redirect_url . '";</script>';
1289
- }
1290
- if ( isset( $_POST['web_property_name'] ) && $_POST['web_property_name'] != '' ) {
1291
- $gawd_user_data['gawd_id'] = isset( $_POST['gawd_id'] ) ? $_POST['gawd_id'] : '';
1292
- foreach ( $gawd_user_data['gawd_profiles'] as $web_property_name => $web_property ) {
1293
- foreach ( $web_property as $profile ) {
1294
- if ( $profile['id'] == $gawd_user_data['gawd_id'] ) {
1295
- $gawd_user_data['web_property_name'] = $web_property_name;
1296
- $gawd_user_data['webPropertyId'] = $profile['webPropertyId'];
1297
- $gawd_user_data['accountId'] = $profile['accountId'];
1298
- }
1299
- }
1300
- }
1301
- $gawd_user_data['web_property_name'] = isset( $_POST['web_property_name'] ) ? $_POST['web_property_name'] : '';
1302
- update_option( 'gawd_user_data', $gawd_user_data );
1303
- $redirect_url = admin_url() . 'admin.php?page=gawd_settings';
1304
- //echo '<script>window.location.href="'.$redirect_url.'";</script>';
1305
- }
1306
- /* if(isset($_POST['account_name']) && $_POST['account_name'] != ''){
1307
- $gawd_user_data['accountId'] = isset($_POST['gawd_id']) ? $_POST['gawd_id'] : '';
1308
- foreach ($gawd_user_data['gawd_profiles'] as $web_property_name => $web_property) {
1309
- foreach ($web_property as $profile) {
1310
- if ($profile['accountId'] == $gawd_user_data['accountId']) {
1311
- $gawd_user_data['web_property_name'] = $web_property_name;
1312
- $gawd_user_data['webPropertyId'] = $profile['webPropertyId'];
1313
- $gawd_user_data['accountId'] = $profile['accountId'];
1314
- }
1315
- }
1316
- }
1317
- $gawd_user_data['web_property_name'] = isset($_POST['web_property_name']) ? $_POST['web_property_name'] : '';
1318
- update_option('gawd_user_data', $gawd_user_data);
1319
- $redirect_url = admin_url() . 'admin.php?page=gawd_settings';
1320
- //echo '<script>window.location.href="'.$redirect_url.'";</script>';
1321
- } */
1322
- if ( isset( $_GET['errorMsg'] ) ) {
1323
- self::error_message( 'error', 'User does not have sufficient permissions for this account to add filter' );
1324
- }
1325
- if ( ! isset( $gawd_user_data['refresh_token'] ) || ( $gawd_user_data['refresh_token'] == '' ) ) {
1326
- echo '<div class="gawd_auth_wrap"><p class="auth_description">Click <b>Authenticate</b> button and login to your Google account. A window asking for relevant permissions will appear. Click <b>Allow</b> and copy the authentication code from the text input.</p><div id="gawd_auth_url" onclick="gawd_auth_popup(' . GAWD_google_client::create_authentication_url() . ',800,400)" style="cursor: pointer;">AUTHENTICATE</div>';
1327
- echo '<div id="gawd_auth_code"><form id="gawd_auth_code_paste" action="" method="post"><input id="gawd_token" type="text">';
1328
- wp_nonce_field( "gawd_save_form", "gawd_save_form_fild" );
1329
- echo '</form>
1330
- <div id="gawd_auth_code_submit">SUBMIT</div></div>';
1331
- $gawd_own_project = get_option( 'gawd_own_project' );
1332
- if ( isset( $gawd_own_project ) && $gawd_own_project && intval( $gawd_own_project ) == 1 ) {
1333
- echo '<form method="post">
1334
- <div class="gawd_reset_button">
1335
- <input type="hidden" name="reset_data" id="reset_data"/>
1336
- <input type="button" class="button_gawd" id="gawd_reset_button" value="RESET"/>
1337
- </div>
1338
- </form>';
1339
- }
1340
- echo '</div><div id="opacity_div" style="display: none; background-color: rgba(0, 0, 0, 0.2); position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 99998;"></div>
1341
- <div id="loading_div" style="display:none; text-align: center; position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 99999;">
1342
- <img src="' . GAWD_URL . '/assets/ajax_loader.gif" style="margin-top: 200px; width:50px;">
1343
- </div>';
1344
- } else {
1345
- if ( $this->manage_ua_code_selection() != 'done' ) {
1346
- // return;
1347
- }
1348
- try {
1349
- $gawd_client = GAWD_google_client::get_instance();
1350
- $gawd_client->get_profiles();
1351
-
1352
- } catch ( Google_Service_Exception $e ) {
1353
- $errors = $e->getErrors();
1354
-
1355
- return $errors[0]["message"];
1356
- } catch ( Exception $e ) {
1357
- return $e->getMessage();
1358
- }
1359
-
1360
- $gawd_alert_remove = isset( $_POST['gawd_alert_remove'] ) ? intval( $_POST['gawd_alert_remove'] ) : false;
1361
- $gawd_menu_remove = isset( $_POST['gawd_menu_remove'] ) ? intval( $_POST['gawd_menu_remove'] ) : false;
1362
- $gawd_pushover_remove = isset( $_POST['gawd_pushover_remove'] ) ? intval( $_POST['gawd_pushover_remove'] ) : false;
1363
- $gawd_email_remove = isset( $_POST['gawd_email_remove'] ) ? intval( $_POST['gawd_email_remove'] ) : false;
1364
- $gawd_filter_remove = isset( $_POST['gawd_filter_remove'] ) ? intval( $_POST['gawd_filter_remove'] ) : false;
1365
- if ( $gawd_alert_remove ) {
1366
- $all_alerts = get_option( 'gawd_alerts' );
1367
- if ( $all_alerts ) {
1368
- foreach ( $all_alerts as $alert ) {
1369
- wp_unschedule_event( wp_next_scheduled( 'gawd_alert_' . $alert['period'] ), 'gawd_alert_' . $alert['period'] );
1370
- }
1371
- unset( $all_alerts[ $gawd_alert_remove - 1 ] );
1372
- update_option( 'gawd_alerts', $all_alerts );
1373
- }
1374
- }
1375
- if ( $gawd_menu_remove ) {
1376
- $all_menues = get_option( 'gawd_menu_for_user' );
1377
- if ( $all_menues ) {
1378
- unset( $all_menues[ $gawd_menu_remove ] );
1379
- update_option( 'gawd_menu_for_user', $all_menues );
1380
- }
1381
- }
1382
- if ( $gawd_email_remove ) {
1383
- $all_emails = get_option( 'gawd_email' );
1384
- if ( $all_emails ) {
1385
- foreach ( $all_emails as $email ) {
1386
- wp_unschedule_event( wp_next_scheduled( 'gawd_email_' . $email['period'] ), 'gawd_email_' . $email['period'] );
1387
- }
1388
- unset( $all_emails[ $gawd_email_remove - 1 ] );
1389
- update_option( 'gawd_email', $all_emails );
1390
- }
1391
- }
1392
- if ( $gawd_filter_remove ) {
1393
- $analytics = $gawd_client->analytics_member;
1394
- $accountId = $gawd_client->get_profile_accountId();
1395
- try {
1396
- $analytics->management_filters->delete( $accountId, $gawd_filter_remove );
1397
- } catch ( apiServiceException $e ) {
1398
- print 'There was an Analytics API service error '
1399
- . $e->getCode() . ':' . $e->getMessage();
1400
- } catch ( apiException $e ) {
1401
- print 'There was a general API error '
1402
- . $e->getCode() . ':' . $e->getMessage();
1403
- } catch ( Exception $e ) {
1404
- echo '<script>window.location.href="' . admin_url() . 'admin.php?page=gawd_settings&errorMsg=1#gawd_filters_tab";</script>';
1405
- }
1406
- }
1407
- $gawd_pushover_remove = isset( $_POST['gawd_pushover_remove'] ) ? $_POST['gawd_pushover_remove'] : false;
1408
- if ( $gawd_pushover_remove ) {
1409
- $all_pushovers = get_option( 'gawd_pushovers' );
1410
- if ( $all_pushovers ) {
1411
- foreach ( $all_pushovers as $pushover ) {
1412
- wp_unschedule_event( wp_next_scheduled( 'gawd_pushover_' . $pushover['period'] ), 'gawd_pushover_' . $pushover['period'] );
1413
- }
1414
- unset( $all_pushovers[ $gawd_pushover_remove - 1 ] );
1415
- update_option( 'gawd_pushovers', $all_pushovers );
1416
- }
1417
- }
1418
- if ( isset( $_POST['settings_submit'] ) ) {
1419
- check_admin_referer( 'gawd_save_form', 'gawd_save_form_fild' );
1420
- $gawd_user_data = get_option( 'gawd_user_data' );
1421
- $gawd_alert_name = isset( $_POST['gawd_alert_name'] ) ? sanitize_text_field( $_POST['gawd_alert_name'] ) : '';
1422
- $gawd_alert_period = isset( $_POST['gawd_alert_name'] ) ? sanitize_text_field( $_POST['gawd_alert_period'] ) : '';
1423
- $gawd_alert_metric = isset( $_POST['gawd_alert_metric'] ) ? sanitize_text_field( $_POST['gawd_alert_metric'] ) : '';
1424
- $gawd_alert_condition = isset( $_POST['gawd_alert_condition'] ) ? sanitize_text_field( $_POST['gawd_alert_condition'] ) : '';
1425
- $gawd_alert_value = isset( $_POST['gawd_alert_value'] ) ? sanitize_text_field( $_POST['gawd_alert_value'] ) : '';
1426
- $gawd_alert_emails = isset( $_POST['gawd_alert_emails'] ) ? sanitize_email( $_POST['gawd_alert_emails'] ) : '';
1427
- $gawd_alert_view = isset( $_POST['gawd_alert_view'] ) ? sanitize_text_field( $_POST['gawd_alert_view'] ) : '';
1428
- $alert_view_name = isset( $_POST['alert_view_name'] ) ? sanitize_text_field( $_POST['alert_view_name'] ) : '';
1429
- if ( $gawd_alert_name != '' && $gawd_alert_period != '' && $gawd_alert_metric != '' && $gawd_alert_condition != '' && $gawd_alert_value != '' && $gawd_alert_emails != '' ) {
1430
- $saved_alerts = get_option( 'gawd_alerts' );
1431
- if ( $saved_alerts ) {
1432
- $gawd_alert_options = array(
1433
- 'name' => $gawd_alert_name,
1434
- 'period' => $gawd_alert_period,
1435
- 'metric' => $gawd_alert_metric,
1436
- 'condition' => $gawd_alert_condition,
1437
- 'value' => $gawd_alert_value,
1438
- 'creation_date' => date( 'Y-m-d' ),
1439
- 'emails' => $gawd_alert_emails,
1440
- 'alert_view' => $gawd_alert_view,
1441
- 'alert_view_name' => $alert_view_name
1442
- );
1443
- $saved_alerts[] = $gawd_alert_options;
1444
- update_option( 'gawd_alerts', $saved_alerts );
1445
- } else {
1446
- $gawd_alert_options = array(
1447
- 0 => array(
1448
- 'name' => $gawd_alert_name,
1449
- 'period' => $gawd_alert_period,
1450
- 'metric' => $gawd_alert_metric,
1451
- 'condition' => $gawd_alert_condition,
1452
- 'value' => $gawd_alert_value,
1453
- 'creation_date' => date( 'Y-m-d' ),
1454
- 'emails' => $gawd_alert_emails,
1455
- 'alert_view' => $gawd_alert_view,
1456
- 'alert_view_name' => $alert_view_name
1457
- )
1458
- );
1459
- update_option( 'gawd_alerts', $gawd_alert_options );
1460
- }
1461
- $saved_alerts = get_option( 'gawd_alerts' );
1462
- if ( $saved_alerts ) {
1463
- foreach ( $saved_alerts as $alert ) {
1464
- if ( ! wp_next_scheduled( 'gawd_alert_' . $alert['period'] ) ) {
1465
- wp_schedule_event( time(), $alert['period'], 'gawd_alert_' . $alert['period'] );
1466
- }
1467
- }
1468
- }
1469
- }
1470
- $gawd_pushover_name = isset( $_POST['gawd_pushover_name'] ) ? sanitize_text_field( $_POST['gawd_pushover_name'] ) : '';
1471
- $gawd_pushover_period = isset( $_POST['gawd_pushover_period'] ) ? sanitize_text_field( $_POST['gawd_pushover_period'] ) : '';
1472
- $gawd_pushover_metric = isset( $_POST['gawd_pushover_metric'] ) ? sanitize_text_field( $_POST['gawd_pushover_metric'] ) : '';
1473
- $gawd_pushover_condition = isset( $_POST['gawd_pushover_condition'] ) ? sanitize_text_field( $_POST['gawd_pushover_condition'] ) : '';
1474
- $gawd_pushover_value = isset( $_POST['gawd_pushover_value'] ) ? intval( $_POST['gawd_pushover_value'] ) : '';
1475
-
1476
- $gawd_pushover_user_keys = isset( $_POST['gawd_pushover_user_keys'] ) ? sanitize_text_field( $_POST['gawd_pushover_user_keys'] ) : '';
1477
- $gawd_pushover_view = isset( $_POST['gawd_pushover_view'] ) ? sanitize_text_field( $_POST['gawd_pushover_view'] ) : '';
1478
- $pushover_view_name = isset( $_POST['pushover_view_name'] ) ? sanitize_text_field( $_POST['pushover_view_name'] ) : '';
1479
- if ( $gawd_pushover_name != '' && $gawd_pushover_period != '' && $gawd_pushover_metric != '' && $gawd_pushover_condition != '' && $gawd_pushover_value !== '' && $gawd_pushover_user_keys != '' ) {
1480
- $saved_pushovers = get_option( 'gawd_pushovers' );
1481
- if ( $saved_pushovers ) {
1482
- $gawd_pushover_options = array(
1483
- 'name' => $gawd_pushover_name,
1484
- 'period' => $gawd_pushover_period,
1485
- 'metric' => $gawd_pushover_metric,
1486
- 'condition' => $gawd_pushover_condition,
1487
- 'value' => $gawd_pushover_value,
1488
- 'creation_date' => date( 'Y-m-d' ),
1489
- 'user_key' => $gawd_pushover_user_keys,
1490
- 'pushover_view' => $gawd_pushover_view,
1491
- 'pushover_view_name' => $pushover_view_name
1492
- );
1493
- $saved_pushovers[] = $gawd_pushover_options;
1494
- update_option( 'gawd_pushovers', $saved_pushovers );
1495
- } else {
1496
- $gawd_pushover_options = array(
1497
- 0 => array(
1498
- 'name' => $gawd_pushover_name,
1499
- 'period' => $gawd_pushover_period,
1500
- 'metric' => $gawd_pushover_metric,
1501
- 'condition' => $gawd_pushover_condition,
1502
- 'value' => $gawd_pushover_value,
1503
- 'creation_date' => date( 'Y-m-d' ),
1504
- 'user_key' => $gawd_pushover_user_keys,
1505
- 'pushover_view' => $gawd_pushover_view,
1506
- 'pushover_view_name' => $pushover_view_name
1507
- )
1508
- );
1509
- update_option( 'gawd_pushovers', $gawd_pushover_options );
1510
- }
1511
- $saved_pushovers = get_option( 'gawd_pushovers' );
1512
- if ( $saved_pushovers ) {
1513
-
1514
- foreach ( $saved_pushovers as $pushover ) {
1515
- $this->gawd_pushover_api( $pushover['user_key'], $pushover['metric'], $pushover['condition'], $pushover['value'] );
1516
- if ( ! wp_next_scheduled( 'gawd_pushover_' . $pushover['period'] ) ) {
1517
- wp_schedule_event( time(), $pushover['period'], 'gawd_pushover_' . $pushover['period'] );
1518
- }
1519
- }
1520
- }
1521
- }
1522
- $gawd_show_in_dashboard = isset( $_POST['gawd_show_in_dashboard'] ) ? sanitize_text_field( $_POST['gawd_show_in_dashboard'] ) : '';
1523
-
1524
- $gawd_permissions = isset( $_POST['gawd_permissions'] ) ? $_POST['gawd_permissions'] : array();
1525
- $gawd_own_project = isset( $_POST['gawd_own_project'] ) ? sanitize_text_field( $_POST['gawd_own_project'] ) : '';
1526
- $site_speed_rate = isset( $_POST['site_speed_rate'] ) ? intval( $_POST['site_speed_rate'] ) : '1';
1527
- $post_page_chart = isset( $_POST['post_page_chart'] ) ? sanitize_text_field( $_POST['post_page_chart'] ) : '';
1528
- $enable_cross_domain = isset( $_POST['enable_cross_domain'] ) ? sanitize_text_field( $_POST['enable_cross_domain'] ) : '';
1529
- $cross_domains = isset( $_POST['cross_domains'] ) ? sanitize_text_field( $_POST['cross_domains'] ) : '';
1530
- $default_date = isset( $_POST['default_date'] ) ? $_POST['default_date'] : 'last_7_days';
1531
- $default_date_format = isset( $_POST['default_date_format'] ) ? $_POST['default_date_format'] : 'ymd_with_week';
1532
- $enable_hover_tooltip = isset( $_POST['enable_hover_tooltip'] ) ? $_POST['enable_hover_tooltip'] : '';
1533
- $gawd_backend_roles = isset( $_POST['gawd_backend_roles'] ) ? ( $_POST['gawd_backend_roles'] ) : array();
1534
- $gawd_frontend_roles = isset( $_POST['gawd_frontend_roles'] ) ? ( $_POST['gawd_frontend_roles'] ) : array();
1535
- $gawd_post_page_roles = isset( $_POST['gawd_post_page_roles'] ) ? ( $_POST['gawd_post_page_roles'] ) : array();
1536
- $exclude_events = isset( $_POST['exclude_events'] ) ? sanitize_text_field( $_POST['exclude_events'] ) : array();
1537
- $gawd_settings_exist = get_option( 'gawd_settings' );
1538
- $gawd_settings_exist['gawd_show_in_dashboard'] = $gawd_show_in_dashboard;
1539
- $gawd_settings_exist['site_speed_rate'] = $site_speed_rate;
1540
- $gawd_settings_exist['post_page_chart'] = $post_page_chart;
1541
- $gawd_settings_exist['enable_cross_domain'] = $enable_cross_domain;
1542
- $gawd_settings_exist['cross_domains'] = $cross_domains;
1543
- $gawd_settings_exist['gawd_backend_roles'] = $gawd_backend_roles;
1544
- $gawd_settings_exist['gawd_frontend_roles'] = $gawd_frontend_roles;
1545
- $gawd_settings_exist['gawd_post_page_roles'] = $gawd_post_page_roles;
1546
- $gawd_settings_exist['default_date'] = $default_date;
1547
- $gawd_settings_exist['default_date_format'] = $default_date_format;
1548
- $gawd_settings_exist['enable_hover_tooltip'] = $enable_hover_tooltip;
1549
- $gawd_settings_exist['exclude_events'] = $exclude_events;
1550
- $gawd_settings_exist['gawd_permissions'] = $gawd_permissions;
1551
- update_option( 'gawd_settings', $gawd_settings_exist );
1552
- $gawd_filter_name = isset( $_POST['gawd_filter_name'] ) ? sanitize_text_field( $_POST['gawd_filter_name'] ) : '';
1553
- $gawd_filter_type = isset( $_POST['gawd_filter_type'] ) ? sanitize_text_field( $_POST['gawd_filter_type'] ) : '';
1554
- $gawd_filter_value = isset( $_POST['gawd_filter_value'] ) ? $gawd_filter_type == 'GEO_IP_ADDRESS' ? ( $_POST['gawd_filter_value'] ) : sanitize_text_field( $_POST['gawd_filter_value'] ) : '';
1555
- if ( $gawd_filter_name != '' && $gawd_filter_type != '' && $gawd_filter_value != '' ) {
1556
- $gawd_client->add_filter( $gawd_filter_name, $gawd_filter_type, $gawd_filter_value );
1557
- }
1558
- add_option( "gawd_save_settings", 1 );
1559
- }
1560
- if ( get_option( 'gawd_save_settings' ) == 1 ) {
1561
- $this->gawd_admin_notice( 'Your changes have been saved successfully.', 'success is-dismissible' );
1562
- }
1563
- delete_option( 'gawd_save_settings' );
1564
- require_once( 'admin/pages/settings.php' );
1565
- }
1566
- }
1567
-
1568
- public function reset_user_data() {
1569
- delete_option( "gawd_credentials" );
1570
- $credentials['project_id'] = '115052745574-5vbr7tci4hjkr9clkflmnpto5jisgstg.apps.googleusercontent.com';
1571
- $credentials['project_secret'] = 'wtNiu3c_bA_g7res6chV0Trt';
1572
- update_option( 'gawd_credentials', $credentials );
1573
- delete_option( 'gawd_own_project' );
1574
- delete_option( 'gawd_user_data' );
1575
-
1576
- }
1577
-
1578
- public function gawd_display_tracking_page() {
1579
- global $gawd_client, $gawd_user_data;
1580
- $gawd_client = GAWD_google_client::get_instance();
1581
- $gawd_user_data = get_option( 'gawd_user_data' );
1582
- $add_dimension_value = isset( $_POST['add_dimension_value'] ) ? $_POST['add_dimension_value'] : '';
1583
- if ( isset( $_GET['errorMsg'] ) ) {
1584
- self::error_message( 'error', 'User does not have sufficient permissions for this account' );
1585
- }
1586
- if ( isset( $_POST['add_property'] ) ) {
1587
- $gawd_account_select = isset( $_POST['gawd_account_select'] ) ? $_POST['gawd_account_select'] : '';
1588
- $gawd_property_name = isset( $_POST['gawd_property_name'] ) ? $_POST['gawd_property_name'] : '';
1589
- if ( $gawd_account_select && $gawd_property_name ) {
1590
- $err_msg = $gawd_client->add_webproperty( $gawd_account_select, $gawd_property_name );
1591
- $redirect_url = admin_url() . 'admin.php?page=gawd_tracking&enableTracking=1';
1592
- if ( $err_msg ) {
1593
- $redirect_url .= '&errorMsg=1';
1594
- }
1595
- echo '<script>window.location.href="' . $redirect_url . '";</script>';
1596
- }
1597
- }
1598
- if ( isset( $_POST['lock_property'] ) ) {
1599
- $property = $gawd_client->property_exists();
1600
- $gawd_property_select = $_POST['gawd_property_select'];
1601
- foreach ( $property as $property_select ) {
1602
- if ( $property_select['id'] == $gawd_property_select ) {
1603
- $property = $property_select;
1604
- break;
1605
- }
1606
- }
1607
- $gawd_user_data['webPropertyId'] = $property['id'];
1608
- $gawd_user_data['default_webPropertyId'] = $property['id'];
1609
- $gawd_user_data['accountId'] = $property['accountId'];
1610
- $gawd_user_data['default_accountId'] = $property['accountId'];
1611
- $gawd_user_data['gawd_id'] = $property['defaultProfileId'];
1612
- update_option( 'gawd_user_data', $gawd_user_data );
1613
- }
1614
- if ( $this->manage_ua_code_selection_tracking() != 'done' ) {
1615
- $redirect_url = admin_url() . 'admin.php?page=gawd_tracking';
1616
-
1617
- //echo '<script>window.location.href="'.$redirect_url.'";</script>';
1618
- return;
1619
- }
1620
-
1621
- if ( $add_dimension_value == 'add_dimension_Logged_in' ) {
1622
- $id = isset( $_POST['gawd_custom_dimension_id'] ) ? ( $_POST['gawd_custom_dimension_id'] + 1 ) : 1;
1623
- $gawd_client->add_custom_dimension( 'Logged in', $id );
1624
- $settings = get_option( 'gawd_settings' );
1625
- $optname = 'gawd_custom_dimension_Logged_in';
1626
- $settings[ $optname ] = isset( $_POST['gawd_tracking_enable'] ) ? $_POST['gawd_tracking_enable'] : '';
1627
- update_option( 'gawd_settings', $settings );
1628
-
1629
- }
1630
- if ( $add_dimension_value == 'add_dimension_Post_type' ) {
1631
- $id = isset( $_POST['gawd_custom_dimension_id'] ) ? ( $_POST['gawd_custom_dimension_id'] + 1 ) : 1;
1632
- $gawd_client->add_custom_dimension( 'Post type', $id );
1633
- $settings = get_option( 'gawd_settings' );
1634
- $optname = 'gawd_custom_dimension_Post_type';
1635
- $settings[ $optname ] = isset( $_POST['gawd_tracking_enable'] ) ? $_POST['gawd_tracking_enable'] : '';
1636
- update_option( 'gawd_settings', $settings );
1637
-
1638
- }
1639
- if ( $add_dimension_value == 'add_dimension_Author' ) {
1640
- $id = isset( $_POST['gawd_custom_dimension_id'] ) ? ( $_POST['gawd_custom_dimension_id'] + 1 ) : 1;
1641
- $gawd_client->add_custom_dimension( 'Author', $id );
1642
- $settings = get_option( 'gawd_settings' );
1643
- $optname = 'gawd_custom_dimension_Author';
1644
- $settings[ $optname ] = isset( $_POST['gawd_tracking_enable'] ) ? $_POST['gawd_tracking_enable'] : '';
1645
- update_option( 'gawd_settings', $settings );
1646
-
1647
- }
1648
- if ( $add_dimension_value == 'add_dimension_Category' ) {
1649
- $id = isset( $_POST['gawd_custom_dimension_id'] ) ? ( $_POST['gawd_custom_dimension_id'] + 1 ) : 1;
1650
- $gawd_client->add_custom_dimension( 'Category', $id );
1651
- $settings = get_option( 'gawd_settings' );
1652
- $optname = 'gawd_custom_dimension_Category';
1653
-
1654
- $settings[ $optname ] = isset( $_POST['gawd_tracking_enable'] ) ? $_POST['gawd_tracking_enable'] : '';
1655
- update_option( 'gawd_settings', $settings );
1656
- }
1657
- if ( $add_dimension_value == 'add_dimension_Published_Month' ) {
1658
- $id = isset( $_POST['gawd_custom_dimension_id'] ) ? ( $_POST['gawd_custom_dimension_id'] + 1 ) : 1;
1659
- $gawd_client->add_custom_dimension( 'Published Month', $id );
1660
- $settings = get_option( 'gawd_settings' );
1661
- $optname = 'gawd_custom_dimension_Published_Month';
1662
- $settings[ $optname ] = isset( $_POST['gawd_tracking_enable'] ) ? $_POST['gawd_tracking_enable'] : '';
1663
- update_option( 'gawd_settings', $settings );
1664
-
1665
- }
1666
- if ( $add_dimension_value == 'add_dimension_Published_Year' ) {
1667
- $id = isset( $_POST['gawd_custom_dimension_id'] ) ? ( $_POST['gawd_custom_dimension_id'] + 1 ) : 1;
1668
- $gawd_client->add_custom_dimension( 'Published Year', $id );
1669
- $settings = get_option( 'gawd_settings' );
1670
- $optname = 'gawd_custom_dimension_Published_Year';
1671
- $settings[ $optname ] = isset( $_POST['gawd_tracking_enable'] ) ? $_POST['gawd_tracking_enable'] : '';
1672
- update_option( 'gawd_settings', $settings );
1673
-
1674
- }
1675
- if ( $add_dimension_value == 'add_dimension_Tags' ) {
1676
- $id = isset( $_POST['gawd_custom_dimension_id'] ) ? ( $_POST['gawd_custom_dimension_id'] + 1 ) : 1;
1677
- $gawd_client->add_custom_dimension( 'Tags', $id );
1678
- $settings = get_option( 'gawd_settings' );
1679
- $optname = 'gawd_custom_dimension_Tags';
1680
- $settings[ $optname ] = isset( $_POST['gawd_tracking_enable'] ) ? $_POST['gawd_tracking_enable'] : '';
1681
- update_option( 'gawd_settings', $settings );
1682
- }
1683
- if ( isset( $_POST['settings_submit'] ) ) {
1684
- check_admin_referer( 'gawd_save_form', 'gawd_save_form_fild' );
1685
- $gawd_user_data = get_option( 'gawd_user_data' );
1686
- $gawd_file_formats = isset( $_POST['gawd_file_formats'] ) ? sanitize_text_field( $_POST['gawd_file_formats'] ) : '';
1687
- $gawd_anonymize = isset( $_POST['gawd_anonymize'] ) ? sanitize_text_field( $_POST['gawd_anonymize'] ) : '';
1688
- $gawd_tracking_enable = isset( $_POST['gawd_tracking_enable'] ) ? sanitize_text_field( $_POST['gawd_tracking_enable'] ) : '';
1689
- $gawd_outbound = isset( $_POST['gawd_outbound'] ) ? sanitize_text_field( $_POST['gawd_outbound'] ) : '';
1690
- $gawd_enhanced = isset( $_POST['gawd_enhanced'] ) ? sanitize_text_field( $_POST['gawd_enhanced'] ) : '';
1691
- if ( $add_dimension_value == '' ) {
1692
- $gawd_cd_Logged_in = isset( $_POST['gawd_custom_dimension_Logged_in'] ) ? sanitize_text_field( $_POST['gawd_custom_dimension_Logged_in'] ) : '';
1693
- $gawd_cd_Post_type = isset( $_POST['gawd_custom_dimension_Post_type'] ) ? sanitize_text_field( $_POST['gawd_custom_dimension_Post_type'] ) : '';
1694
- $gawd_cd_Author = isset( $_POST['gawd_custom_dimension_Author'] ) ? sanitize_text_field( $_POST['gawd_custom_dimension_Author'] ) : '';
1695
- $gawd_cd_Category = isset( $_POST['gawd_custom_dimension_Category'] ) ? sanitize_text_field( $_POST['gawd_custom_dimension_Category'] ) : '';
1696
- $gawd_cd_Published_Month = isset( $_POST['gawd_custom_dimension_Published_Month'] ) ? sanitize_text_field( $_POST['gawd_custom_dimension_Published_Month'] ) : '';
1697
- $gawd_cd_Published_Year = isset( $_POST['gawd_custom_dimension_Published_Year'] ) ? sanitize_text_field( $_POST['gawd_custom_dimension_Published_Year'] ) : '';
1698
- $gawd_cd_Tags = isset( $_POST['gawd_custom_dimension_Tags'] ) ? sanitize_text_field( $_POST['gawd_custom_dimension_Tags'] ) : '';
1699
- $gawd_settings['gawd_custom_dimension_Logged_in'] = $gawd_cd_Logged_in;
1700
- $gawd_settings['gawd_custom_dimension_Post_type'] = $gawd_cd_Post_type;
1701
- $gawd_settings['gawd_custom_dimension_Author'] = $gawd_cd_Author;
1702
- $gawd_settings['gawd_custom_dimension_Category'] = $gawd_cd_Category;
1703
- $gawd_settings['gawd_custom_dimension_Published_Month'] = $gawd_cd_Published_Month;
1704
- $gawd_settings['gawd_custom_dimension_Published_Year'] = $gawd_cd_Published_Year;
1705
- $gawd_settings['gawd_custom_dimension_Tags'] = $gawd_cd_Tags;
1706
- }
1707
- $gawd_excluded_roles = isset( $_POST['gawd_excluded_roles'] ) ? $_POST['gawd_excluded_roles'] : array();
1708
- $gawd_excluded_users = isset( $_POST['gawd_excluded_users'] ) ? $_POST['gawd_excluded_users'] : array();
1709
- $gawd_settings = get_option( 'gawd_settings' );
1710
- $gawd_settings['gawd_file_formats'] = $gawd_file_formats;
1711
- $gawd_settings['gawd_anonymize'] = $gawd_anonymize;
1712
- $gawd_settings['gawd_file_formats'] = $gawd_file_formats;
1713
- $gawd_settings['gawd_tracking_enable'] = $gawd_tracking_enable;
1714
- $gawd_settings['gawd_outbound'] = $gawd_outbound;
1715
- $gawd_settings['gawd_enhanced'] = $gawd_enhanced;
1716
- $gawd_settings['gawd_excluded_roles'] = $gawd_excluded_roles;
1717
- $gawd_settings['gawd_excluded_users'] = $gawd_excluded_users;
1718
- update_option( 'gawd_settings', $gawd_settings );
1719
- add_option( "gawd_save_tracking", 1 );
1720
- }
1721
- if ( get_option( 'gawd_save_tracking' ) == 1 ) {
1722
- $this->gawd_admin_notice( 'Your changes have been saved successfully.', 'success is-dismissible' );
1723
- }
1724
- delete_option( 'gawd_save_tracking' );
1725
- $gawd_settings = get_option( 'gawd_settings' );
1726
- if ( $add_dimension_value != '' ) {
1727
- $redirect_url = admin_url() . 'admin.php?page=gawd_tracking';
1728
- echo '<script>window.location.href="' . $redirect_url . '";</script>';
1729
- }
1730
- require_once( 'admin/pages/tracking.php' );
1731
- }
1732
-
1733
- public function gawd_my_schedule() {
1734
- $schedules['gawd_weekly'] = array(
1735
- 'interval' => 604800,
1736
- 'display' => __( 'Every week' )
1737
- );
1738
- $schedules['gawd_monthly'] = array(
1739
- 'interval' => 18748800,
1740
- 'display' => __( 'Every month' )
1741
- );
1742
-
1743
- return $schedules;
1744
- }
1745
-
1746
- public function gawd_pushover_api( $user_key, $metric, $condition, $value ) {
1747
- $ch = curl_init();
1748
- curl_setopt( $ch, CURLOPT_URL, "https://api.pushover.net/1/messages.json" );
1749
- curl_setopt( $ch, CURLOPT_POSTFIELDS, array(
1750
- "token" => "aJBDhTfhR87EaTzs7wpx1MMKwboBjB",
1751
- "user" => $user_key,
1752
- "message" => 'The ' . $metric . ' less ' . $value
1753
- ) );
1754
- // curl_setopt($ch, CURLOPT_SAFE_UPLOAD, true);
1755
- curl_exec( $ch );
1756
- curl_close( $ch );
1757
- }
1758
-
1759
- public function gawd_pushover_daily() {
1760
- require_once( GAWD_DIR . '/admin/gawd_google_class.php' );
1761
- $gawd_client = GAWD_google_client::get_instance();
1762
- $pushovers = get_option( 'gawd_pushovers' );
1763
- $data = '';
1764
- $condition = '';
1765
-
1766
- foreach ( $pushovers as $pushover ) {
1767
- if ( isset( $pushover['period'] ) && $pushover['period'] == 'daily' ) {
1768
- //pls send email if ....
1769
- $date = date( 'Y-m-d', strtotime( 'yesterday' ) );
1770
- $data = $gawd_client->get_data_alert( 'ga:' . $pushover['metric'], 'date', $date, $date, $pushover['pushover_view'] );
1771
- $pushover_condition = $pushover['condition'] == 'greater' ? '>' : '<';
1772
- if ( ! eval( $data . $pushover_condition . $pushover['value'] . ';' ) ) {
1773
- $cond = ' ' . $pushover['condition'] . ' than';
1774
- $this->gawd_pushover_api( $pushover['user_key'], $pushover['metric'], $pushover['condition'], $pushover['value'] );
1775
- }
1776
- }
1777
- }
1778
- }
1779
-
1780
- public function gawd_pushover_weekly() {
1781
- require_once( GAWD_DIR . '/admin/gawd_google_class.php' );
1782
- $gawd_client = GAWD_google_client::get_instance();
1783
- $pushovers = get_option( 'gawd_pushovers' );
1784
- $data = '';
1785
- $condition = '';
1786
- foreach ( $pushovers as $pushover ) {
1787
- if ( isset( $pushover['period'] ) && $pushover['period'] == 'gawd_weekly' ) {
1788
- //pls send email if ....
1789
- $start_date = date( 'Y-m-d', strtotime( 'last week -1 day' ) );
1790
- $end_date = date( 'l' ) != 'Sunday' ? date( 'Y-m-d', strtotime( 'last sunday -1 day' ) ) : date( 'Y-m-d', strtotime( '-1 day' ) );
1791
- $data = $gawd_client->get_data_alert( 'ga:' . $pushover['metric'], 'date', $start_date, $end_date, $pushover['pushover_view'] );
1792
- $pushover_condition = $pushover['condition'] == 'greater' ? '>' : '<';
1793
- if ( ! eval( $data . $pushover_condition . $pushover['value'] . ';' ) ) {
1794
- $cond = ' ' . $pushover['condition'] . ' than';
1795
- $this->gawd_pushover_api( $pushover['user_key'], $pushover['metric'], $pushover['condition'], $pushover['value'] );
1796
- }
1797
- }
1798
- }
1799
- }
1800
-
1801
- public function gawd_pushover_monthly() {
1802
- require_once( GAWD_DIR . '/admin/gawd_google_class.php' );
1803
- $gawd_client = GAWD_google_client::get_instance();
1804
- $pushovers = get_option( 'gawd_pushovers' );
1805
- $data = '';
1806
- $condition = '';
1807
- foreach ( $pushovers as $pushover ) {
1808
- if ( isset( $pushover['period'] ) && $pushover['period'] == 'gawd_monthly' ) {
1809
- //pls send email if ....
1810
- $end_date = date( 'Y-m-t', strtotime( 'last month' ) );
1811
- $start_date = date( 'Y-m-01', strtotime( 'last month' ) );
1812
- $data = $gawd_client->get_data_alert( 'ga:' . $pushover['metric'], 'date', $start_date, $end_date, $pushover['pushover_view'] );
1813
- $pushover_condition = $pushover['condition'] == 'greater' ? '>' : '<';
1814
- if ( ! eval( $data . $pushover_condition . $pushover['value'] . ';' ) ) {
1815
- $cond = ' ' . $pushover['condition'] . ' than';
1816
- $this->gawd_pushover_api( $pushover['user_key'], $pushover['metric'], $pushover['condition'], $pushover['value'] );
1817
- }
1818
- }
1819
- }
1820
- }
1821
-
1822
- public function gawd_alert_daily() {
1823
- require_once( GAWD_DIR . '/admin/gawd_google_class.php' );
1824
- $gawd_client = GAWD_google_client::get_instance();
1825
- $alerts = get_option( 'gawd_alerts' );
1826
- $data = '';
1827
- $condition = '';
1828
- $email_from = get_option( 'admin_email' );
1829
- foreach ( $alerts as $alert ) {
1830
- if ( isset( $alert['period'] ) && $alert['period'] == 'daily' ) {
1831
- //pls send email if ....
1832
- $date = date( 'Y-m-d', strtotime( 'yesterday' ) );
1833
- $data = $gawd_client->get_data_alert( 'ga:' . $alert['metric'], 'date', $date, $date, $alert['alert_view'] );
1834
- $alert_condition = $alert['condition'] == 'greater' ? '>' : '<';
1835
- $color_condition = $alert['condition'] == 'greater' ? 'rgb(157, 207, 172)' : 'rgb(251, 133, 131)';
1836
- if ( ! eval( $data . $alert_condition . $alert['value'] . ';' ) ) {
1837
- $cond = ' ' . $alert['condition'] . ' than';
1838
- $headers = array();
1839
- $headers[] = 'From: <' . $email_from . '>';
1840
- $headers[] = 'Content-Type: text/html';
1841
- $content = '<div style="font-family: sans-serif;width:100%;height:50px;background-color:#FB8583;font-size:20px;color:#fff;margin-bottom:20px;text-align:center;line-height:50px">Google Analytics WD Alert!</div><p style="color:#808080;text-align: center;font-size: 26px;font-family: sans-serif;">' . preg_replace( '!\s+!', ' ', trim( ucfirst( preg_replace( '/([A-Z])/', ' $1', $alert['metric'] ) ) ) ) . ' in <a style="text-decoration:none;color:rgba(124,181,216,1);font-family: sans-serif;" href="' . $alert["alert_view_name"] . '" target="_blank">' . $alert["alert_view_name"] . '</a> are <span style="color:' . $color_condition . '">' . $cond . '</span></p><p style="color:rgba(124,181,216,1);font-size: 26px;font-family: sans-serif; text-align: center;">' . $alert['value'] . '</p>';
1842
- wp_mail( $alert['emails'], 'Analytics Alert', $content, $headers );
1843
- }
1844
- }
1845
- }
1846
- }
1847
-
1848
- public function gawd_alert_weekly() {
1849
- require_once( GAWD_DIR . '/admin/gawd_google_class.php' );
1850
- $gawd_client = GAWD_google_client::get_instance();
1851
- $alerts = get_option( 'gawd_alerts' );
1852
- $data = '';
1853
- $condition = '';
1854
- $email_from = get_option( 'admin_email' );
1855
- foreach ( $alerts as $alert ) {
1856
- if ( isset( $alert['period'] ) && $alert['period'] == 'gawd_weekly' ) {
1857
- //pls send email if ....
1858
- $start_date = date( 'Y-m-d', strtotime( 'last week -1 day' ) );
1859
- $end_date = date( 'l' ) != 'Sunday' ? date( 'Y-m-d', strtotime( 'last sunday -1 day' ) ) : date( 'Y-m-d', strtotime( '-1 day' ) );
1860
- $data = $gawd_client->get_data_alert( 'ga:' . $alert['metric'], 'date', $start_date, $end_date, $alert['alert_view'] );
1861
- $alert_condition = $alert['condition'] == 'greater' ? '>' : '<';
1862
- if ( ! eval( $data . $alert_condition . $alert['value'] . ';' ) ) {
1863
- $cond = ' ' . $alert['condition'] . ' than';
1864
- $headers = array();
1865
- $headers[] = 'From: <' . $email_from . '>';
1866
- $headers[] = 'Content-Type: text/html';
1867
- $content = '<div style="font-family: sans-serif;width:100%;height:50px;background-color:#FB8583;font-size:20px;color:#fff;margin-bottom:20px;text-align:center;line-height:50px">Google Analytics WD Alert!</div><p style="color:#808080;text-align: center;font-size: 26px;font-family: sans-serif;">' . preg_replace( '!\s+!', ' ', trim( ucfirst( preg_replace( '/([A-Z])/', ' $1', $alert['metric'] ) ) ) ) . ' in <a style="text-decoration:none;color:rgba(124,181,216,1);font-family: sans-serif;" href="' . $alert["alert_view_name"] . '" target="_blank">' . $alert["alert_view_name"] . '</a> are <span style="color:' . $color_condition . '">' . $cond . '</span></p><p style="color:rgba(124,181,216,1);font-size: 26px;font-family: sans-serif; text-align: center;">' . $alert['value'] . '</p>';
1868
- wp_mail( $alert['emails'], 'Analytics Alert', $content, $headers );
1869
- }
1870
- }
1871
- }
1872
- }
1873
-
1874
- public function gawd_alert_monthly() {
1875
- require_once( GAWD_DIR . '/admin/gawd_google_class.php' );
1876
- $gawd_client = GAWD_google_client::get_instance();
1877
- $alerts = get_option( 'gawd_alerts' );
1878
- $data = '';
1879
- $email_from = get_option( 'admin_email' );
1880
- foreach ( $alerts as $alert ) {
1881
- if ( isset( $alert['period'] ) && $alert['period'] == 'gawd_monthly' ) {
1882
- //pls send email if ....
1883
- $end_date = date( 'Y-m-t', strtotime( 'last month' ) );
1884
- $start_date = date( 'Y-m-01', strtotime( 'last month' ) );
1885
- $data = $gawd_client->get_data_alert( 'ga:' . $alert['metric'], 'date', $start_date, $end_date, $alert['alert_view'] );
1886
- $alert_condition = $alert['condition'] == 'greater' ? '>' : '<';
1887
- if ( ! eval( $data . $alert_condition . $alert['value'] . ';' ) ) {
1888
- $cond = ' ' . $alert['condition'] . ' than';
1889
- $headers = array();
1890
- $headers[] = 'From: <' . $email_from . '>';
1891
- $headers[] = 'Content-Type: text/html';
1892
- $content = '<div style="font-family: sans-serif;width:100%;height:50px;background-color:#FB8583;font-size:20px;color:#fff;margin-bottom:20px;text-align:center;line-height:50px">Google Analytics WD Alert!</div><p style="color:#808080;text-align: center;font-size: 26px;font-family: sans-serif;">' . preg_replace( '!\s+!', ' ', trim( ucfirst( preg_replace( '/([A-Z])/', ' $1', $alert['metric'] ) ) ) ) . ' in <a style="text-decoration:none;color:rgba(124,181,216,1);font-family: sans-serif;" href="' . $alert["alert_view_name"] . '" target="_blank">' . $alert["alert_view_name"] . '</a> are <span style="color:' . $color_condition . '">' . $cond . '</span></p><p style="color:rgba(124,181,216,1);font-size: 26px;font-family: sans-serif; text-align: center;">' . $alert['value'] . '</p>';
1893
- wp_mail( $alert['emails'], 'Analytics Alert', $content, $headers );
1894
- }
1895
- }
1896
- }
1897
- }
1898
-
1899
- public function wd_dashboard_widget() {
1900
- global $gawd_client, $gawd_user_data;
1901
- $gawd_client = GAWD_google_client::get_instance();
1902
- $profiles = $gawd_client->get_profiles();
1903
- $gawd_user_data = get_option( 'gawd_user_data' );
1904
- if ( isset( $_POST['gawd_id'] ) ) {
1905
- $gawd_user_data['gawd_id'] = isset( $_POST['gawd_id'] ) ? $_POST['gawd_id'] : '';
1906
- foreach ( $gawd_user_data['gawd_profiles'] as $web_property_name => $web_property ) {
1907
- foreach ( $web_property as $profile ) {
1908
- if ( $profile['id'] == $gawd_user_data['gawd_id'] ) {
1909
- $gawd_user_data['web_property_name'] = $web_property_name;
1910
- $gawd_user_data['webPropertyId'] = $profile['webPropertyId'];
1911
- $gawd_user_data['accountId'] = $profile['accountId'];
1912
- }
1913
- }
1914
- }
1915
- $gawd_user_data['web_property_name'] = isset( $_POST['web_property_name'] ) ? $_POST['web_property_name'] : '';
1916
- update_option( 'gawd_user_data', $gawd_user_data );
1917
- }
1918
- require_once( 'admin/pages/dashboard_widget.php' );
1919
- }
1920
-
1921
- public function google_analytics_wd_dashboard_widget() {
1922
- $gawd_settings = get_option( 'gawd_settings' );
1923
- $gawd_backend_roles = isset( $gawd_settings['gawd_backend_roles'] ) ? $gawd_settings['gawd_backend_roles'] : array();
1924
- $roles = $this->get_current_user_role();
1925
-
1926
- if ( isset( $gawd_settings['gawd_show_in_dashboard'] ) && $gawd_settings['gawd_show_in_dashboard'] == 'on' ) {
1927
- if ( in_array( $roles, $gawd_backend_roles ) || current_user_can( 'manage_options' ) ) {
1928
- wp_add_dashboard_widget( 'wd_dashboard_widget', 'WD Google Analytics', array(
1929
- $this,
1930
- 'wd_dashboard_widget'
1931
- ) );
1932
- }
1933
- }
1934
- }
1935
-
1936
- public function show_data( $params = array() ) {
1937
- /* if (isset($_REQUEST['security'])) {
1938
- check_ajax_referer('gawd_admin_page_nonce', 'security');
1939
- } else {
1940
- check_admin_referer('gawd_save_form', 'gawd_save_form_fild');
1941
- } */
1942
- require_once( GAWD_DIR . '/admin/gawd_google_class.php' );
1943
- $return = true;
1944
- if ( $params == '' ) {
1945
- $params = $_POST;
1946
- $return = false;
1947
- }
1948
- $gawd_client = GAWD_google_client::get_instance();
1949
- $start_date = isset( $params["start_date"] ) && $params["start_date"] != '' ? $params["start_date"] : date( 'Y-m-d', strtotime( '-7 days' ) );
1950
- $end_date = isset( $params["end_date"] ) && $params["end_date"] != '' ? $params["end_date"] : date( 'Y-m-d' );
1951
- $metric = isset( $params["metric"] ) ? $params["metric"] : 'ga:sessions';
1952
- $metric = is_array( $metric ) ? count( $metric ) > 1 ? implode( ",", $metric ) : $metric[0] : $metric;
1953
- $dimension = isset( $params["dimension"] ) ? $params["dimension"] : 'date';
1954
-
1955
- $country_filter = isset( $params["country_filter"] ) ? $params["country_filter"] : '';
1956
- $geo_type = isset( $params["geo_type"] ) ? $params["geo_type"] : '';
1957
- $filter_type = isset( $params["filter_type"] ) && $params["filter_type"] != '' ? $params["filter_type"] : '';
1958
- $custom = isset( $params["custom"] ) && $params["custom"] != '' ? $params["custom"] : '';
1959
- $same_dimension = $dimension;
1960
-
1961
- $dimension = $filter_type != '' && $dimension == 'date' ? $filter_type : $dimension;
1962
- if ( $dimension == 'week' || $dimension == 'month' ) {
1963
- $same_dimension = $dimension;
1964
- }
1965
-
1966
-
1967
- $timezone = isset( $params["timezone"] ) && $params["timezone"] != '' ? $params["timezone"] : 0;
1968
- if ( $dimension == 'pagePath' || $dimension == 'PagePath' || $dimension == 'landingPagePath' || $dimension == 'LandingPagePath' ) {
1969
- if ( get_transient( 'gawd-' . $gawd_client->get_profile_id() . '-' . $dimension . '-' . $start_date . '-' . $end_date ) ) {
1970
- $grid_data = get_transient( 'gawd-' . $gawd_client->get_profile_id() . '-' . $dimension . '-' . $start_date . '-' . $end_date );
1971
- } else {
1972
- $grid_data = $gawd_client->get_page_data( $dimension, $start_date, $end_date, $timezone );
1973
- }
1974
- if ( $return ) {
1975
- return $grid_data;
1976
- }
1977
- echo $grid_data;
1978
- die();
1979
- } elseif ( $dimension == 'goals' ) {
1980
- if ( get_transient( 'gawd-' . $gawd_client->get_profile_id() . '-' . $dimension . '-' . $start_date . '-' . $end_date ) ) {
1981
- $goal_data = get_transient( 'gawd-' . $gawd_client->get_profile_id() . '-' . $dimension . '-' . $start_date . '-' . $end_date );
1982
- } else {
1983
- $goal_data = $gawd_client->get_goal_data( 'date', $start_date, $end_date, $timezone, $same_dimension );
1984
- }
1985
- if ( $return ) {
1986
- return $goal_data;
1987
- }
1988
- echo $goal_data;
1989
- die();
1990
- } elseif ( ( $dimension == 'region' || $dimension == 'city' ) || ( $dimension == 'Region' || $dimension == 'City' ) ) {
1991
- if ( get_transient( 'gawd-' . $gawd_client->get_profile_id() . '-' . $country_filter . '-' . $start_date . '-' . $end_date ) ) {
1992
- $chart_data = get_transient( 'gawd-' . $gawd_client->get_profile_id() . '-' . $country_filter . '-' . $start_date . '-' . $end_date );
1993
- } else {
1994
-
1995
- $chart_data = $gawd_client->get_country_data( $metric, $dimension, $start_date, $end_date, $country_filter, $geo_type, $timezone );
1996
- }
1997
- if ( $return ) {
1998
- return $chart_data;
1999
- }
2000
- echo $chart_data;
2001
- die();
2002
- } else {
2003
- if ( $custom != '' ) {
2004
- $chart_data = $gawd_client->get_data( $metric, $dimension, $start_date, $end_date, $filter_type, $timezone, $same_dimension );
2005
- } else {
2006
- if ( $dimension == 'siteSpeed' ) {
2007
- if ( get_transient( 'gawd-' . $gawd_client->get_profile_id() . '-' . $same_dimension . '_' . $filter_type . '-' . $start_date . '-' . $end_date ) ) {
2008
- $chart_data = get_transient( 'gawd-' . $gawd_client->get_profile_id() . '-' . $dimension . '-' . $start_date . '-' . $end_date );
2009
- } else {
2010
- $chart_data = $gawd_client->get_data( $metric, $dimension, $start_date, $end_date, $filter_type, $timezone, $same_dimension );
2011
- }
2012
- if ( $return ) {
2013
- return $chart_data;
2014
- }
2015
- } else {
2016
-
2017
- /* if (get_transient('gawd-' . $gawd_client->get_profile_id() . '-' . $dimension . '-' . $start_date . '-' . $end_date)) {
2018
- $chart_data = get_transient('gawd-' . $gawd_client->get_profile_id() . '-' . $dimension . '-' . $start_date . '-' . $end_date);
2019
- } */
2020
- //else {
2021
-
2022
- $chart_data = $gawd_client->get_data( $metric, $dimension, $start_date, $end_date, $filter_type, $timezone, $same_dimension );
2023
- //}
2024
- if ( $return ) {
2025
- return $chart_data;
2026
- }
2027
- }
2028
- }
2029
- echo $chart_data;
2030
- die();
2031
- }
2032
- }
2033
-
2034
- public function show_data_compact() {
2035
- check_ajax_referer( 'gawd_admin_page_nonce', 'security' );
2036
- require_once( GAWD_DIR . '/admin/gawd_google_class.php' );
2037
- $gawd_client = GAWD_google_client::get_instance();
2038
- $start_date = isset( $_POST["start_date"] ) && $_POST["start_date"] != '' ? $_POST["start_date"] : date( 'Y-m-d', strtotime( '-30 days' ) );
2039
- $end_date = isset( $_POST["end_date"] ) && $_POST["end_date"] != '' ? $_POST["end_date"] : date( 'Y-m-d' );
2040
- $metric = isset( $_POST["metric"] ) ? $_POST["metric"] : 'sessions';
2041
- $metric = is_array( $metric ) ? count( $metric ) > 1 ? implode( ",", $metric ) : $metric[0] : 'ga:' . $metric;
2042
- $dimension = isset( $_POST["dimension"] ) ? $_POST["dimension"] : 'date';
2043
- $timezone = isset( $_POST["timezone"] ) ? $_POST["timezone"] : 0;
2044
- if ( get_transient( 'gawd-compact-' . $gawd_client->get_profile_id() . '-' . $dimension . '-' . $start_date . '-' . $end_date ) ) {
2045
- $chart_data = get_transient( 'gawd-compact-' . $gawd_client->get_profile_id() . '-' . $dimension . '-' . $start_date . '-' . $end_date );
2046
- } else {
2047
- $chart_data = $gawd_client->get_data_compact( $metric, $dimension, $start_date, $end_date, $timezone );
2048
- }
2049
- echo $chart_data;
2050
- die();
2051
- }
2052
-
2053
- public function show_page_post_data() {
2054
- check_ajax_referer( 'gawd_admin_page_nonce', 'security' );
2055
- require_once( GAWD_DIR . '/admin/gawd_google_class.php' );
2056
- $gawd_client = GAWD_google_client::get_instance();
2057
- $start_date = isset( $_POST["start_date"] ) && $_POST["start_date"] != '' ? $_POST["start_date"] : date( 'Y-m-d', strtotime( '-30 days' ) );
2058
- $end_date = isset( $_POST["end_date"] ) && $_POST["end_date"] != '' ? $_POST["end_date"] : date( 'Y-m-d' );
2059
- $metric = isset( $_POST["metric"] ) ? $_POST["metric"] : 'ga:sessions';
2060
- $metric = is_array( $metric ) ? count( $metric ) > 1 ? implode( ",", $metric ) : $metric[0] : $metric;
2061
- $dimension = isset( $_POST["dimension"] ) ? $_POST["dimension"] : 'date';
2062
- $timezone = isset( $_POST["timezone"] ) ? $_POST["timezone"] : 0;
2063
- $filter = isset( $_POST["filter"] ) ? substr( $_POST["filter"], 1 ) : '';
2064
- $chart = isset( $_POST["chart"] ) ? $_POST["chart"] : '';
2065
- $chart_data = get_transient( 'gawd-page-post-' . $gawd_client->get_profile_id() . '-' . $filter . '-' . '-' . $dimension . '-' . $start_date . '-' . $end_date . '-' . $chart );
2066
- if ( ! $chart_data ) {
2067
- $chart_data = $gawd_client->get_post_page_data( $metric, $dimension, $start_date, $end_date, $filter, $timezone, $chart );
2068
- }
2069
- echo $chart_data;
2070
- die();
2071
- }
2072
-
2073
- public function get_realtime() {
2074
- check_ajax_referer( 'gawd_admin_page_nonce', 'security' );
2075
- require_once( GAWD_DIR . '/admin/gawd_google_class.php' );
2076
- $gawd_client = GAWD_google_client::get_instance();
2077
- $chart_data = get_transient( 'gawd-real' . $gawd_client->get_profile_id() );
2078
- if ( ! $chart_data ) {
2079
- $chart_data = $gawd_client->gawd_realtime_data();
2080
- }
2081
-
2082
- return $chart_data;
2083
- }
2084
-
2085
- /**
2086
- * Checks if the protocol is secure.
2087
- *
2088
- * @return boolean
2089
- */
2090
- public static function is_ssl() {
2091
- if ( isset( $_SERVER['HTTPS'] ) ) {
2092
- if ( 'on' == strtolower( $_SERVER['HTTPS'] ) ) {
2093
- return true;
2094
- }
2095
- if ( '1' == $_SERVER['HTTPS'] ) {
2096
- return true;
2097
- }
2098
- } elseif ( isset( $_SERVER['SERVER_PORT'] ) && ( '443' == $_SERVER['SERVER_PORT'] ) ) {
2099
- return true;
2100
- }
2101
-
2102
- return false;
2103
- }
2104
-
2105
- /**
2106
- * Returns the Singleton instance of this class.
2107
- *
2108
- * @return GAWD The Singleton instance.
2109
- */
2110
- public static function get_instance() {
2111
- if ( null === static::$instance ) {
2112
- static::$instance = new static();
2113
- }
2114
-
2115
- return static::$instance;
2116
- }
2117
-
2118
- /**
2119
- * Private clone method to prevent cloning of the instance of the
2120
- * Singleton instance.
2121
- *
2122
- * @return void
2123
- */
2124
- private function __clone() {
2125
-
2126
- }
2127
-
2128
- /**
2129
- * Private unserialize method to prevent unserializing of the Singleton
2130
- * instance.
2131
- *
2132
- * @return void
2133
- */
2134
- private function __wakeup() {
2135
-
2136
- }
2137
-
2138
- public static function add_dashboard_menu() {
2139
- $get_custom_reports = get_option( 'gawd_custom_reports' );
2140
- if ( ! $get_custom_reports ) {
2141
- $custom_report = array();
2142
- } else {
2143
- foreach ( $get_custom_reports as $name => $report ) {
2144
- $custom_report[ 'custom_report_' . $name ] = __( $name, "gawd" );
2145
- }
2146
- }
2147
- $tabs = array(
2148
- "general" => array(
2149
- "title" => __( "Audience", "gawd" ),
2150
- "childs" => array(),
2151
- "desc" => "Report of your website audience. Provides details about new and returning users of your website, sessions, bounces, pageviews and session durations."
2152
- ),
2153
- "realtime" => array(
2154
- "title" => __( "Real Time", "gawd" ),
2155
- "childs" => array(),
2156
- "desc" => "Real Time statistics show the number of active users currently visiting your website pages."
2157
- ),
2158
- "demographics" => array(
2159
- "title" => __( "Demographics", "gawd" ),
2160
- "childs" => array(
2161
- "userGender" => __( "User Gender", "gawd" ),
2162
- "userAge" => __( "User Age", "gawd" )
2163
- ),
2164
- "desc" => "Demographics display tracking statistics of your website users based on their age and gender. "
2165
-
2166
- ),
2167
- "interests" => array(
2168
- "title" => __( "Interests", "gawd" ),
2169
- "childs" => array(
2170
- "inMarket" => __( "In-Market Segment", "gawd" ),
2171
- "affinityCategory" => __( "Affinity Category", "gawd" ),
2172
- "otherCategory" => __( "Other Category", "gawd" )
2173
- ),
2174
- "desc" => "Provides tracking information about site users depending on Affinity Categories (e.g. Music Lovers or Mobile Enthusiasts), In-Market Segments (based on online product purchase interests) and Other Categories (most specific identification, for example, tennis lovers among Sports Fans)."
2175
- ),
2176
- "geo" => array(
2177
- "title" => __( "GEO", "gawd" ),
2178
- "childs" => array(
2179
- "location" => __( "Location", "gawd" ),
2180
- "language" => __( "Language", "gawd" )
2181
- ),
2182
- "desc" => "Geo-identifier report is built from interactions of location (countries, cities) and language of your website users."
2183
- ),
2184
- "behavior" => array(
2185
- "title" => __( "Behavior", "gawd" ),
2186
- "childs" => array(
2187
- "behaviour" => __( "New vs Returning", "gawd" ),
2188
- "engagement" => __( "Engagement", "gawd" )
2189
- ),
2190
- "desc" => "Compares number of New visitors and Returning users of your website in percents. You can check the duration of sessions with Engagement report."
2191
- ),
2192
- "technology" => array(
2193
- "title" => __( "Technology", "gawd" ),
2194
- "childs" => array(
2195
- "os" => __( "OS", "gawd" ),
2196
- "browser" => __( "Browser", "gawd" )
2197
- ),
2198
- "desc" => "Identifies tracking of the site based on operating systems and browsers visitors use."
2199
- ),
2200
- "mobile" => array(
2201
- "title" => __( "Mobile", "gawd" ),
2202
- "childs" => array(
2203
- "device_overview" => __( "Overview", "gawd" ),
2204
- "devices" => __( "Devices", "gawd" )
2205
- ),
2206
- "desc" => "Shows statistics of mobile and desktop devices visitors have used while interacting with your website."
2207
- ),
2208
- "custom" => array(
2209
- "title" => __( "Custom Dimensions", "gawd" ),
2210
- "childs" => array(),
2211
- "desc" => "Set up Custom Dimensions based on Users, Post type, Author, Category, Publication date and Tags in Custom Dimensions page, and view their report in this tab."
2212
- ),
2213
- "trafficSource" => array(
2214
- "title" => __( "Traffic Source", "gawd" ),
2215
- "childs" => array(),
2216
- "desc" => "Displays overall graph of traffic sources directing to your website."
2217
- ),
2218
- "adWords" => array(
2219
- "title" => __( "AdWords", "gawd" ),
2220
- "childs" => array(),
2221
- "desc" => "If your website is registered on Google AdWords, you can link its Google Analytics to AdWords, and gather relevant tracking information with this report."
2222
- ),
2223
- /* "pagePath" => array(
2224
- "title" => __("Pages", "gawd"),
2225
- "childs" => array(),
2226
- "desc" => "Pages report table will provide you information about Bounces, Entrances, Pageviews, Unique Pageviews, time spent on pages, Exits and Average page loading time."
2227
- ), */
2228
- "siteContent" => array(
2229
- "title" => __( "Site Content", "gawd" ),
2230
- "childs" => array(
2231
- "pagePath" => __( "All Pages", "gawd" ),
2232
- "landingPagePath" => __( "Landing Pages", "gawd" ),
2233
- ),
2234
- "desc" => "Pages report table will provide you information about Bounces, Entrances, Pageviews, Unique Pageviews, time spent on pages, Exits and Average page loading time."
2235
- ),
2236
- "siteSpeed" => array(
2237
- "title" => __( "Site Speed", "gawd" ),
2238
- "childs" => array(),
2239
- "desc" => "Shows the average load time of your website users experienced during specified date range."
2240
- ),
2241
- "events" => array(
2242
- "title" => __( "Events", "gawd" ),
2243
- "childs" => array(
2244
- "eventsLabel" => __( "Events by Label", "gawd" ),
2245
- "eventsAction" => __( "Events by Action", "gawd" ),
2246
- "eventsCategory" => __( "Events by Category", "gawd" )
2247
- ),
2248
- "desc" => "Displays the report based on Events you set up on Google Analytics of your website. Graphs are built based on Event Labels, Categories and Actions."
2249
- ),
2250
- "goals" => array(
2251
- "title" => __( "Goals", "gawd" ),
2252
- "childs" => array(),
2253
- "desc" => "Set Goals from Goal Management and review their Google Analytics reports under this tab."
2254
- ),
2255
- "ecommerce" => array(
2256
- "title" => __( "Ecommerce", "gawd" ),
2257
- "childs" => array(
2258
- "daysToTransaction" => __( "TIme to Purchase", "gawd" ),
2259
- "transactionId" => __( "Transaction ID", "gawd" ),
2260
- "sales_performance" => __( "Sales Performance", "gawd" ),
2261
- "productSku" => __( "Product Sku", "gawd" ),
2262
- "productCategory" => __( "Product Category ", "gawd" ),
2263
- "productName" => __( "Product Name", "gawd" ),
2264
- ),
2265
- "desc" => "Check sales statistics of your website identified by revenues, transactions, products and performance."
2266
- ),
2267
- "adsense" => array(
2268
- "title" => __( "AdSense", "gawd" ),
2269
- "childs" => array(),
2270
- "desc" => "Link your Google Analytics and AdSense accounts from Google Analytics Admin setting and keep track of AdSense tracking under this report."
2271
- ),
2272
- "customReport" => array(
2273
- "title" => __( "Custom Report", "gawd" ),
2274
- "childs" => $custom_report,
2275
- "desc" => "Add Custom Reports from any metric and dimension in Custom Reports page, and view relevant Google Analytics tracking information in this tab."
2276
- ),
2277
- );
2278
- update_option( 'gawd_menu_items', $tabs );
2279
- }
2280
-
2281
- public function remove_zoom_message() {
2282
- check_ajax_referer( 'gawd_admin_page_nonce', 'security' );
2283
- $got_it = isset( $_REQUEST["got_it"] ) ? sanitize_text_field( $_REQUEST["got_it"] ) : '';
2284
- if ( $got_it != '' ) {
2285
- add_option( 'gawd_zoom_message', $got_it );
2286
- }
2287
- }
2288
- }
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ require_once( GAWD_DIR . '/admin/gawd_google_class.php' );
4
+
5
+ class GAWD {
6
+
7
+ /**
8
+ * @var GAWD The reference to Singleton instance of this class
9
+ */
10
+ private static $instance;
11
+ private $project_client_id = null;
12
+ private $project_client_secret = null;
13
+ public $redirect_uri = "urn:ietf:wg:oauth:2.0:oob";
14
+
15
+ /**
16
+ * Protected constructor to prevent creating a new instance of the
17
+ * Singleton via the `new` operator from outside of this class.
18
+ */
19
+ protected function __construct() {
20
+
21
+ if ( isset( $_POST["reset_data"] ) && $_POST["reset_data"] != '' ) {
22
+ $this->reset_user_data();
23
+ }
24
+ add_action( 'admin_menu', array( $this, 'gawd_check_id' ), 1 );
25
+
26
+ add_action( 'admin_notices', array( $this, 'upgrade_pro' ) );
27
+
28
+ add_action( 'admin_menu', array( $this, 'gawd_add_menu' ), 19 );
29
+ add_action( 'admin_enqueue_scripts', array( $this, 'gawd_enqueue_scripts' ) );
30
+
31
+ add_action( 'wp_ajax_gawd_auth', array( $this, 'gawd_auth' ) );
32
+ add_action( 'wp_ajax_create_pdf_file', array( $this, 'create_pdf_file' ) );
33
+ add_action( 'wp_ajax_create_csv_file', array( $this, 'create_csv_file' ) );
34
+ add_action( 'wp_ajax_show_data', array( $this, 'show_data' ) );
35
+ add_action( 'wp_ajax_remove_zoom_message', array( $this, 'remove_zoom_message' ) );
36
+ add_action( 'wp_ajax_show_page_post_data', array( $this, 'show_page_post_data' ) );
37
+ add_action( 'wp_ajax_show_data_compact', array( $this, 'show_data_compact' ) );
38
+ add_action( 'wp_ajax_get_realtime', array( $this, 'get_realtime' ) );
39
+ add_action( 'wp_dashboard_setup', array( $this, 'google_analytics_wd_dashboard_widget' ) );
40
+ add_action( 'admin_menu', array( $this, 'overview_date_meta' ) );
41
+ add_filter( 'cron_schedules', array( $this, 'gawd_my_schedule' ) );
42
+ add_action( 'admin_init', array( $this, 'gawd_export' ) );
43
+ add_action( 'gawd_pushover_daily', array( $this, 'gawd_pushover_daily' ) );
44
+ add_action( 'gawd_pushover_gawd_weekly', array( $this, 'gawd_pushover_weekly' ) );
45
+ add_action( 'gawd_pushover_gawd_monthly', array( $this, 'gawd_pushover_monthly' ) );
46
+ add_action( 'gawd_alert_daily', array( $this, 'gawd_alert_daily' ) );
47
+ add_action( 'gawd_alert_gawd_monthly', array( $this, 'gawd_alert_monthly' ) );
48
+ add_action( 'gawd_alert_gawd_weekly', array( $this, 'gawd_alert_weekly' ) );
49
+ add_action( 'gawd_email_daily', array( $this, 'gawd_daily_email' ), 0 );
50
+ add_action( 'gawd_email_gawd_weekly', array( $this, 'gawd_weekly_email' ) );
51
+ add_action( 'gawd_email_gawd_monthly', array( $this, 'gawd_monthly_email' ) );
52
+ //add_action('init', array($this, 'gawd_daily_email'));
53
+ add_action( 'wp_head', array( $this, 'gawd_tracking_code' ), 99 );
54
+ $gawd_settings = get_option( 'gawd_settings' );
55
+ $gawd_post_page_roles = isset( $gawd_settings['gawd_post_page_roles'] ) ? $gawd_settings['gawd_post_page_roles'] : array();
56
+ $roles = $this->get_current_user_role();
57
+ if ( ( isset( $gawd_settings['gawd_tracking_enable'] ) && $gawd_settings['gawd_tracking_enable'] == 'on' ) && ( isset( $gawd_settings['post_page_chart'] ) && $gawd_settings['post_page_chart'] != '' ) && ( in_array( $roles, $gawd_post_page_roles ) || current_user_can( 'manage_options' ) ) ) {
58
+ add_filter( 'manage_posts_columns', array( $this, 'gawd_add_columns' ) );
59
+ // Populate custom column in Posts List
60
+ add_action( 'manage_posts_custom_column', array( $this, 'gawd_add_icons' ), 10, 2 );
61
+ // Add custom column in Pages List
62
+ add_filter( 'manage_pages_columns', array( $this, 'gawd_add_columns' ) );
63
+ // Populate custom column in Pages List
64
+ add_action( 'manage_pages_custom_column', array( $this, 'gawd_add_icons' ), 10, 2 );
65
+ add_action( 'add_meta_boxes', array( $this, 'gawd_add_custom_box' ) );
66
+ }
67
+ $gawd_frontend_roles = isset( $gawd_settings['gawd_frontend_roles'] ) ? $gawd_settings['gawd_frontend_roles'] : array();
68
+ if ( ( isset( $gawd_settings['gawd_tracking_enable'] ) && $gawd_settings['gawd_tracking_enable'] == 'on' ) && ( in_array( $roles, $gawd_frontend_roles ) || current_user_can( 'manage_options' ) ) ) {
69
+ add_action( 'wp_enqueue_scripts', array( $this, 'gawd_front_scripts' ) );
70
+ add_action( 'admin_bar_menu', array( $this, 'report_adminbar' ), 999 );
71
+ }
72
+
73
+
74
+ $this->update_credentials();
75
+ $credentials = get_option( 'gawd_credentials' );
76
+
77
+
78
+ if ( is_array( $credentials ) ) {
79
+ $this->set_project_client_id( $credentials['project_id'] );
80
+ $this->set_project_client_secret( $credentials['project_secret'] );
81
+ } else {
82
+ //send error
83
+ return;
84
+ }
85
+
86
+ }
87
+
88
+ function get_current_user_role() {
89
+ global $wp_roles;
90
+ if ( is_user_logged_in() ) {
91
+ $current_user = wp_get_current_user();
92
+ $roles = $current_user->roles;
93
+ $role = array_shift( $roles );
94
+
95
+ return $role;
96
+ } else {
97
+ return "";
98
+ }
99
+ }
100
+
101
+
102
+ function report_adminbar( $wp_admin_bar ) {
103
+ /* @formatter:off */
104
+ $gawd_settings = get_option( 'gawd_settings' );
105
+ $gawd_frontend_roles = isset( $gawd_settings['gawd_frontend_roles'] ) ? $gawd_settings['gawd_frontend_roles'] : array();
106
+ $roles = $this->get_current_user_role();
107
+ if ( ( ( in_array( $roles, $gawd_frontend_roles ) || current_user_can( 'manage_options' ) ) && ! is_admin() ) && $gawd_settings['post_page_chart'] != '' ) {
108
+ $id = get_the_ID();
109
+ $uri_parts = explode( '/', get_permalink( $id ), 4 );
110
+ if ( $uri_parts[0] != '' ) {
111
+ if ( isset( $uri_parts[3] ) ) {
112
+ $uri = '/' . $uri_parts[3];
113
+ }
114
+ $uri = explode( '/', $uri );
115
+ end( $uri );
116
+ $key = key( $uri );
117
+ $uri = '/' . $uri[ $key - 1 ];
118
+ $filter = rawurlencode( rawurldecode( $uri ) );
119
+
120
+ $args = array(
121
+ 'id' => 'gawd',
122
+ 'title' => '<span data-url="' . $filter . '" class="ab-icon"></span><span class="">' . __( "Analytics WD", 'gawd' ) . '</span>',
123
+ 'href' => '#1',
124
+ );
125
+ /* @formatter:on */
126
+ $wp_admin_bar->add_node( $args );
127
+ }
128
+ }
129
+ }
130
+
131
+ public function update_credentials() {
132
+ //check_admin_referer('gawd_save_form', 'gawd_save_form_fild');
133
+ if ( $_POST ) {
134
+ $gawd_own_project = isset( $_POST['gawd_own_project'] ) ? $_POST['gawd_own_project'] : '';
135
+ $gawd_own_client_id = isset( $_POST['gawd_own_client_id'] ) ? $_POST['gawd_own_client_id'] : '';
136
+ $gawd_own_client_secret = isset( $_POST['gawd_own_client_secret'] ) ? $_POST['gawd_own_client_secret'] : '';
137
+ $gawd_credentials['project_id'] = $gawd_own_client_id;
138
+ $gawd_credentials['project_secret'] = $gawd_own_client_secret;
139
+ if ( $gawd_own_project && $gawd_own_client_id != '' && $gawd_own_client_secret != '' ) {
140
+ update_option( 'gawd_credentials', $gawd_credentials );
141
+ delete_option( 'gawd_user_data' );
142
+ add_option( 'gawd_own_project', 1 );
143
+ }
144
+ }
145
+ }
146
+
147
+ public function set_project_client_id( $id ) {
148
+ $this->project_client_id = $id;
149
+ }
150
+
151
+ public function get_project_client_id() {
152
+ return $this->project_client_id;
153
+ }
154
+
155
+ public function set_project_client_secret( $secret ) {
156
+ $this->project_client_secret = $secret;
157
+ }
158
+
159
+ public function get_project_client_secret() {
160
+ return $this->project_client_secret;
161
+ }
162
+
163
+ function gawd_check_id() {
164
+ global $gawd_redirect_to_settings;
165
+ $current_page = isset( $_GET['page'] ) ? $_GET['page'] : "";
166
+ if ( strpos( $current_page, 'gawd' ) !== false ) {
167
+ $gawd_user_data = get_option( 'gawd_user_data' );
168
+ if ( ! isset( $gawd_user_data['refresh_token'] ) || ( $gawd_user_data['refresh_token'] == '' ) ) {
169
+ update_option( 'gawd_redirect_to_settings', 'yes' );
170
+ } else {
171
+ update_option( 'gawd_redirect_to_settings', 'no' );
172
+ }
173
+ }
174
+ $gawd_redirect_to_settings = get_option( 'gawd_redirect_to_settings' );
175
+ }
176
+
177
+ function gawd_add_custom_box() {
178
+ $screens = array( 'post', 'page' );
179
+ foreach ( $screens as $screen ) {
180
+ add_meta_box( 'gawd_page_post_meta', 'Sessions in month', array(
181
+ $this,
182
+ 'gawd_add_custom_box_callback'
183
+ ), $screen, 'normal' );
184
+ }
185
+ }
186
+
187
+ function gawd_add_custom_box_callback() {
188
+ require_once( 'admin/post_page_view.php' );
189
+ }
190
+
191
+ public function gawd_add_icons( $column, $id ) {
192
+ if ( $column != 'gawd_stats' ) {
193
+ return;
194
+ }
195
+ $uri_parts = explode( '/', get_permalink( $id ), 4 );
196
+ if ( isset( $uri_parts[3] ) ) {
197
+ $uri = '/' . $uri_parts[3];
198
+ }
199
+ $uri = explode( '/', $uri );
200
+ end( $uri );
201
+ $key = key( $uri );
202
+ $uri = '/' . $uri[ $key - 1 ];
203
+ $filter = rawurlencode( rawurldecode( $uri ) );
204
+ echo '<a id="gawd-' . $id . '" class="gawd_page_post_stats" title="' . get_the_title( $id ) . '" href="#' . $filter . '"><img src="' . GAWD_URL . '/assets/back_logo.png"</a>';
205
+ }
206
+
207
+ public function gawd_add_columns( $columns ) {
208
+ return array_merge( $columns, array( 'gawd_stats' => __( 'Analytics WD', 'gawd' ) ) );
209
+ }
210
+
211
+ public static function gawd_roles( $access_level, $tracking = false ) {
212
+ if ( is_user_logged_in() && isset( $access_level ) ) {
213
+ $current_user = wp_get_current_user();
214
+ $roles = (array) $current_user->roles;
215
+ if ( ( current_user_can( 'manage_options' ) ) && ! $tracking ) {
216
+ return true;
217
+ }
218
+ if ( count( array_intersect( $roles, $access_level ) ) > 0 ) {
219
+ return true;
220
+ } else {
221
+ return false;
222
+ }
223
+ }
224
+
225
+ return false;
226
+ }
227
+
228
+ public function gawd_tracking_code() {
229
+ $gawd_user_data = get_option( 'gawd_user_data' );
230
+ if ( isset( $gawd_user_data['default_webPropertyId'] ) && ( $gawd_user_data['default_webPropertyId'] ) ) {
231
+ global $gawd_client;
232
+ $gawd_client = GAWD_google_client::get_instance();
233
+ require_once( GAWD_DIR . '/admin/tracking.php' );
234
+ }
235
+ }
236
+
237
+ public function create_pdf_file( $ajax = true, $data = null, $dimension = null, $start_date = null, $end_date = null, $metric_compare_recc = null, $metric_recc = null ) {
238
+ $first_data = isset( $_REQUEST["first_data"] ) ? sanitize_text_field( $_REQUEST["first_data"] ) : '';
239
+ $_data_compare = isset( $_REQUEST["_data_compare"] ) ? ( $_REQUEST["_data_compare"] ) : '';
240
+ if ( $ajax == true ) {
241
+ $export_type = isset( $_REQUEST["export_type"] ) ? sanitize_text_field( $_REQUEST["export_type"] ) : '';
242
+ if ( $export_type != 'pdf' ) {
243
+ return;
244
+ }
245
+
246
+ $report_type = isset( $_REQUEST["report_type"] ) ? sanitize_text_field( $_REQUEST["report_type"] ) : '';
247
+
248
+
249
+ if ( $report_type !== 'alert' ) {
250
+ return;
251
+ }
252
+
253
+ }
254
+
255
+ include_once GAWD_DIR . '/include/gawd_pdf_file.php';
256
+ $file = new GAWD_PDF_FILE();
257
+
258
+ /*
259
+ require_once(GAWD_DIR . '/admin/gawd_google_class.php');
260
+ $this->gawd_google_client = GAWD_google_client::get_instance();
261
+ */
262
+ $file->get_request_data( $this, $ajax, $data, $dimension, $start_date, $end_date, $metric_compare_recc, $metric_recc );
263
+
264
+ $file->sort_data();
265
+ if ( $first_data != '' ) {
266
+ $file->create_file( 'pages' );
267
+ } elseif ( ( $_data_compare ) != '' ) {
268
+ $file->create_file( 'compare' );
269
+ } else {
270
+ $file->create_file( true );
271
+ }
272
+ if ( $ajax == true ) {
273
+ die();
274
+ } else {
275
+ return $file->file_dir;
276
+ }
277
+ }
278
+
279
+ public function create_csv_file( $ajax = true, $data = null, $dimension = null, $start_date = null, $end_date = null, $metric_compare_recc = null, $metric_recc = null ) {
280
+ if ( $ajax == true ) {
281
+ $export_type = isset( $_REQUEST["export_type"] ) ? sanitize_text_field( $_REQUEST["export_type"] ) : '';
282
+ if ( $export_type != 'csv' ) {
283
+ return;
284
+ }
285
+ $report_type = isset( $_REQUEST["report_type"] ) ? sanitize_text_field( $_REQUEST["report_type"] ) : '';
286
+ if ( $report_type !== 'alert' ) {
287
+ return;
288
+ }
289
+ }
290
+ require_once( GAWD_DIR . '/admin/gawd_google_class.php' );
291
+ $this->gawd_google_client = GAWD_google_client::get_instance();
292
+
293
+ $first_data = isset( $_REQUEST["first_data"] ) ? sanitize_text_field( $_REQUEST["first_data"] ) : '';
294
+
295
+
296
+ include_once GAWD_DIR . '/include/gawd_csv_file.php';
297
+
298
+ $file = new GAWD_CSV_FILE();
299
+ $file->get_request_data( $this, $ajax, $data, $dimension, $start_date, $end_date, $metric_compare_recc, $metric_recc );
300
+
301
+ $file->sort_data();
302
+
303
+ //$file->get_request_data($this);
304
+
305
+ $file->sort_data();
306
+ if ( $first_data != '' ) {
307
+ $file->create_file( false );
308
+ } else {
309
+ $file->create_file();
310
+ }
311
+ if ( $ajax == true ) {
312
+ die();
313
+ } else {
314
+ return $file->file_dir;
315
+ }
316
+ }
317
+
318
+ public static function get_domain( $domain ) {
319
+ $root = explode( '/', $domain );
320
+ $ret_domain = str_ireplace( 'www', '', isset( $root[2] ) ? $root[2] : $domain );
321
+
322
+ return $ret_domain;
323
+ }
324
+
325
+ public static function error_message( $type, $message ) {
326
+ echo '<div style="width:99%"><div class="' . $type . '"><p><strong>' . $message . '</strong></p></div></div>';
327
+ }
328
+
329
+ public function gawd_export() {
330
+ if ( ! isset( $_REQUEST['action'] ) || ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] !== 'gawd_export' ) ) {
331
+ return;
332
+ }
333
+
334
+ $export_type = isset( $_REQUEST["export_type"] ) ? sanitize_text_field( $_REQUEST["export_type"] ) : '';
335
+ if ( $export_type != 'pdf' && $export_type != 'csv' ) {
336
+ return;
337
+ }
338
+
339
+ $report_type = isset( $_REQUEST["report_type"] ) ? sanitize_text_field( $_REQUEST["report_type"] ) : '';
340
+
341
+ require_once( GAWD_DIR . '/admin/gawd_google_class.php' );
342
+ $this->gawd_google_client = GAWD_google_client::get_instance();
343
+
344
+ if ( $export_type == 'pdf' ) {
345
+ include_once GAWD_DIR . '/include/gawd_pdf_file.php';
346
+ $file = new GAWD_PDF_FILE();
347
+ } else {
348
+ include_once GAWD_DIR . '/include/gawd_csv_file.php';
349
+ $file = new GAWD_CSV_FILE();
350
+ }
351
+
352
+ if ( $report_type == 'alert' ) {
353
+ if ( $export_type == 'pdf' ) {
354
+ $file->export_file();
355
+ } else {
356
+ $file->export_file();
357
+ }
358
+ } else {
359
+ $metric = isset( $_REQUEST["gawd_metric"] ) ? sanitize_text_field( $_REQUEST["gawd_metric"] ) : '';
360
+ $_data_compare = isset( $_REQUEST["_data_compare"] ) ? ( $_REQUEST["_data_compare"] ) : '';
361
+ $first_data = isset( $_REQUEST["first_data"] ) ? ( $_REQUEST["first_data"] ) : '';
362
+ $view_id = isset( $_REQUEST["view_id"] ) ? sanitize_text_field( $_REQUEST["view_id"] ) : '';
363
+ $metric_compare = isset( $_REQUEST["gawd_metric_compare"] ) ? sanitize_text_field( $_REQUEST["gawd_metric_compare"] ) : '';
364
+ $dimension = isset( $_REQUEST["gawd_dimension"] ) ? sanitize_text_field( $_REQUEST["gawd_dimension"] ) : '';
365
+ $tab_name = isset( $_REQUEST["tab_name"] ) ? sanitize_text_field( $_REQUEST["tab_name"] ) : '';
366
+ $img = isset( $_REQUEST["img"] ) ? sanitize_text_field( $_REQUEST["img"] ) : '';
367
+ $gawd_email_subject = isset( $_REQUEST["gawd_email_subject"] ) ? sanitize_text_field( $_REQUEST["gawd_email_subject"] ) : '';
368
+ $gawd_email_body = isset( $_REQUEST["gawd_email_body"] ) && $_REQUEST["gawd_email_body"] != '' ? sanitize_text_field( $_REQUEST["gawd_email_body"] ) : ' ';
369
+ $email_from = isset( $_REQUEST["gawd_email_from"] ) ? sanitize_email( $_REQUEST["gawd_email_from"] ) : '';
370
+ $email_to = isset( $_REQUEST["gawd_email_to"] ) ? sanitize_email( $_REQUEST["gawd_email_to"] ) : '';
371
+ $email_period = isset( $_REQUEST["gawd_email_period"] ) ? sanitize_text_field( $_REQUEST["gawd_email_period"] ) : '';
372
+ $week_day = isset( $_REQUEST["gawd_email_week_day"] ) ? sanitize_text_field( $_REQUEST["gawd_email_week_day"] ) : '';
373
+ $month_day = isset( $_REQUEST["gawd_email_month_day"] ) ? sanitize_text_field( $_REQUEST["gawd_email_month_day"] ) : '';
374
+ $emails = array();
375
+ $invalid_email = false;
376
+ $email_to = explode( ',', $email_to );
377
+ foreach ( $email_to as $email ) {
378
+ if ( is_email( $email ) == false ) {
379
+ $emails = $email;
380
+ }
381
+ }
382
+ if ( count( $emails ) > 0 ) {
383
+ $invalid_email = true;
384
+ }
385
+ if ( ( $invalid_email != true ) && is_email( $email_from ) && $gawd_email_subject != '' ) {
386
+ if ( $email_period == "once" ) {
387
+ $file->get_request_data( $this );
388
+ $file->sort_data();
389
+ if ( $export_type == 'csv' ) {
390
+ if ( $first_data != '' ) {
391
+ $file->create_file( false );
392
+ } else {
393
+ $file->create_file();
394
+ }
395
+ } else {
396
+ if ( $first_data != '' ) {
397
+ $file->create_file( 'pages' );
398
+ } elseif ( ( $_data_compare ) != '' ) {
399
+ $file->create_file( 'compare' );
400
+ } else {
401
+ $file->create_file( false );
402
+ }
403
+ }
404
+ $attachment = $file->file_dir;
405
+
406
+ if ( $report_type == 'email' ) {
407
+ $headers = 'From: <' . $email_from . '>';
408
+ wp_mail( $email_to, $gawd_email_subject, $gawd_email_body, $headers, $attachment );
409
+ }
410
+ echo json_encode( array( 'status' => 'success', 'msg' => 'Email successfuly sent' ) );
411
+ } else {
412
+ if ( $email_period == 'gawd_weekly' ) {
413
+ $period_day = $week_day;
414
+ $timestamp = strtotime( 'this ' . $period_day );
415
+ } elseif ( $email_period == 'gawd_monthly' ) {
416
+ $period_day = $month_day;
417
+ $timestamp = strtotime( date( 'Y-m-' . $period_day ) );
418
+ } else {
419
+ $period_day = '';
420
+ $timestamp = time();
421
+ }
422
+ $saved_email = get_option( 'gawd_email' );
423
+ if ( $saved_email ) {
424
+ $gawd_email_options = array(
425
+ 'name' => $gawd_email_subject,
426
+ 'period' => $email_period,
427
+ 'metric' => $metric,
428
+ 'metric_compare' => $metric_compare,
429
+ 'dimension' => $dimension,
430
+ 'creation_date' => date( 'Y-m-d' ),
431
+ 'emails' => $email_to,
432
+ 'email_from' => $email_from,
433
+ 'email_subject' => $gawd_email_subject,
434
+ 'email_body' => $gawd_email_body,
435
+ 'period_day' => $period_day,
436
+ 'img' => $img,
437
+ 'tab_name' => $tab_name,
438
+ 'view_id' => $view_id,
439
+ 'export_type' => $export_type
440
+ );
441
+ $saved_email[] = $gawd_email_options;
442
+ update_option( 'gawd_email', $saved_email );
443
+ } else {
444
+ $gawd_email_options = array(
445
+ 0 => array(
446
+ 'name' => $gawd_email_subject,
447
+ 'period' => $email_period,
448
+ 'metric' => $metric,
449
+ 'metric_compare' => $metric_compare,
450
+ 'dimension' => $dimension,
451
+ 'creation_date' => date( 'Y-m-d' ),
452
+ 'emails' => $email_to,
453
+ 'email_from' => $email_from,
454
+ 'email_subject' => $gawd_email_subject,
455
+ 'email_body' => $gawd_email_body,
456
+ 'period_day' => $period_day,
457
+ 'img' => $img,
458
+ 'tab_name' => $tab_name,
459
+ 'view_id' => $view_id,
460
+ 'export_type' => $export_type
461
+ )
462
+ );
463
+ update_option( 'gawd_email', $gawd_email_options );
464
+ }
465
+ $saved_email = get_option( 'gawd_email' );
466
+ if ( $saved_email ) {
467
+ foreach ( $saved_email as $email ) {
468
+ if ( ! wp_next_scheduled( 'gawd_email_' . $email['period'] ) ) {
469
+ wp_schedule_event( $timestamp, $email['period'], 'gawd_email_' . $email['period'] );
470
+ }
471
+ }
472
+ }
473
+ $success_message = 'Email successfuly Scheduled </br> Go to <a href="' . admin_url() . 'admin.php?page=gawd_settings#gawd_emails_tab">Settings page</a> to delete scheduled e-mails.';
474
+ echo json_encode( array( 'status' => 'success', 'msg' => $success_message ) );
475
+ }
476
+
477
+ die;
478
+ } else {
479
+ if ( $invalid_email == true ) {
480
+ echo json_encode( 'Invalid email' );
481
+ die;
482
+ } else if ( $gawd_email_subject == '' ) {
483
+ echo json_encode( "Can't send email with empty subject" );
484
+ die;
485
+ }
486
+ }
487
+ }
488
+ }
489
+
490
+ public function overview_date_meta( $screen = null, $context = 'advanced' ) {
491
+ //righ side wide meta..
492
+ $orintation = wp_is_mobile() ? 'side' : 'normal';
493
+ add_meta_box( 'gawd-real-time', __( 'Real Time', 'gawd' ), array(
494
+ $this,
495
+ 'gawd_real_time'
496
+ ), 'gawd_analytics', 'side', 'high' );
497
+ add_meta_box( 'gawd-date-meta', __( 'Audience', 'gawd' ), array(
498
+ $this,
499
+ 'gawd_date_box'
500
+ ), 'gawd_analytics', $orintation, null );
501
+ add_meta_box( 'gawd-country-box', __( 'Location', 'gawd' ), array(
502
+ $this,
503
+ 'gawd_country_box'
504
+ ), 'gawd_analytics', $orintation, null );
505
+ //left side thin meta.
506
+ add_meta_box( 'gawd-visitors-meta', __( 'Visitors', 'gawd' ), array(
507
+ $this,
508
+ 'gawd_visitors'
509
+ ), 'gawd_analytics', 'side', null );
510
+ add_meta_box( 'gawd-browser-meta', __( 'Browsers', 'gawd' ), array(
511
+ $this,
512
+ 'gawd_browser'
513
+ ), 'gawd_analytics', 'side', null );
514
+ }
515
+
516
+ public function gawd_date_box() {
517
+ require_once( 'admin/pages/date.php' );
518
+ }
519
+
520
+ public function gawd_country_box() {
521
+ require_once( 'admin/pages/location.php' );
522
+ }
523
+
524
+ public function gawd_real_time() {
525
+ require_once( 'admin/pages/real_time.php' );
526
+ }
527
+
528
+ public function gawd_visitors() {
529
+ require_once( 'admin/pages/visitors.php' );
530
+ }
531
+
532
+ public function gawd_browser() {
533
+ require_once( 'admin/pages/browser.php' );
534
+ }
535
+
536
+ /**
537
+ * Activation function needed for the activation hook.
538
+ */
539
+ public static function activate() {
540
+ $credentials['project_id'] = '115052745574-5vbr7tci4hjkr9clkflmnpto5jisgstg.apps.googleusercontent.com';
541
+ $credentials['project_secret'] = 'wtNiu3c_bA_g7res6chV0Trt';
542
+ if ( ! get_option( 'gawd_credentials' ) ) {
543
+ update_option( 'gawd_credentials', $credentials );
544
+ }
545
+ self::gawd_settings_defaults();
546
+ self::add_dashboard_menu();
547
+ }
548
+
549
+ /**
550
+ * Deactivation function needed for the deactivation hook.
551
+ */
552
+ public static function deactivate() {
553
+
554
+ }
555
+
556
+ /**
557
+ * Enqueues the required styles and scripts, localizes some js variables.
558
+ */
559
+ public function gawd_front_scripts() {
560
+ if ( is_user_logged_in() ) {
561
+ wp_enqueue_style( 'admin_css', GAWD_URL . '/inc/css/gawd_admin.css', false, GAWD_VERSION );
562
+ wp_enqueue_script( 'gawd_amcharts', GAWD_URL . '/inc/js/amcharts.js', false, GAWD_VERSION );
563
+ wp_enqueue_script( 'gawd_pie', GAWD_URL . '/inc/js/pie.js', false, GAWD_VERSION );
564
+ wp_enqueue_script( 'gawd_serial', GAWD_URL . '/inc/js/serial.js', false, GAWD_VERSION );
565
+ wp_enqueue_script( 'gawd_light_theme', GAWD_URL . '/inc/js/light.js', array( 'jquery' ), GAWD_VERSION );
566
+ wp_enqueue_script( 'gawd_dataloader', GAWD_URL . '/inc/js/dataloader.min.js', array( 'jquery' ), GAWD_VERSION );
567
+ wp_enqueue_script( 'date-js', GAWD_URL . '/inc/js/date.js', array( 'jquery' ), GAWD_VERSION );
568
+ wp_enqueue_script( 'gawd_front_js', GAWD_URL . '/inc/js/gawd_front.js', array( 'jquery' ), GAWD_VERSION );
569
+ wp_localize_script( 'gawd_front_js', 'gawd_front', array(
570
+ 'ajaxurl' => admin_url( 'admin-ajax.php' ),
571
+ 'ajaxnonce' => wp_create_nonce( 'gawd_admin_page_nonce' ),
572
+ 'gawd_plugin_url' => GAWD_URL,
573
+ 'date_30' => date( 'Y-m-d', strtotime( '-31 day' ) ) . '/-/' . date( 'Y-m-d', strtotime( '-1 day' ) ),
574
+ 'date_7' => date( 'Y-m-d', strtotime( '-8 day' ) ) . '/-/' . date( 'Y-m-d', strtotime( '-1 day' ) ),
575
+ 'date_last_week' => date( 'Y-m-d', strtotime( 'last week -1day' ) ) . '/-/' . date( 'Y-m-d', strtotime( 'last week +5day' ) ),
576
+ 'date_last_month' => date( 'Y-m-01', strtotime( 'last month' ) ) . '/-/' . date( 'Y-m-t', strtotime( 'last month' ) ),
577
+ 'date_this_month' => date( 'Y-m-01' ) . '/-/' . date( 'Y-m-d' ),
578
+ 'date_today' => date( 'Y-m-d' ) . '/-/' . date( 'Y-m-d' ),
579
+ 'date_yesterday' => date( 'Y-m-d', strtotime( '-1 day' ) ) . '/-/' . date( 'Y-m-d', strtotime( '-1 day' ) ),
580
+ 'wp_admin_url' => admin_url(),
581
+ 'exportUrl' => add_query_arg( array( 'action' => 'gawd_export' ), admin_url( 'admin-ajax.php' ) )
582
+ ) );
583
+ }
584
+ }
585
+
586
+ public function gawd_enqueue_scripts() {
587
+ $options = get_option( 'gawd_settings' );
588
+ $default_date = ( isset( $options['default_date'] ) && $options['default_date'] != '' ) ? $options['default_date'] : 'last_30days';
589
+ $default_date_format = ( isset( $options['default_date_format'] ) && $options['default_date_format'] != '' ) ? $options['default_date_format'] : 'ymd_with_week';
590
+ $enable_hover_tooltip = ( isset( $options['enable_hover_tooltip'] ) && $options['enable_hover_tooltip'] != '' ) ? $options['enable_hover_tooltip'] : '';
591
+ $screen = get_current_screen();
592
+ if ( strpos( $screen->base, 'gawd' ) !== false || strpos( $screen->post_type, 'page' ) !== false || strpos( $screen->post_type, 'post' ) !== false || strpos( $screen->base, 'dashboard' ) !== false ) {
593
+ wp_enqueue_script( 'common' );
594
+ wp_enqueue_script( 'wp-lists' );
595
+ wp_enqueue_script( 'postbox' );
596
+ wp_enqueue_script( 'jquery-ui-tooltip' );
597
+ wp_enqueue_script( 'gawd_paging', GAWD_URL . '/inc/js/paging.js', false, GAWD_VERSION );
598
+ wp_enqueue_script( 'jquery.cookie', GAWD_URL . '/inc/js/jquery.cookie.js', false, GAWD_VERSION );
599
+ wp_enqueue_style( 'admin_css', GAWD_URL . '/inc/css/gawd_admin.css', false, GAWD_VERSION );
600
+ wp_enqueue_style( 'gawd_licensing', GAWD_URL . '/inc/css/gawd_licensing.css', false, GAWD_VERSION );
601
+ wp_enqueue_style( 'gawd_featured', GAWD_URL . '/featured/style.css', array(), GAWD_VERSION );
602
+ wp_enqueue_style( 'font_awesome', GAWD_URL . '/inc/css/font_awesome.css', false, GAWD_VERSION );
603
+ wp_enqueue_style( 'jquery-ui.css', GAWD_URL . '/inc/css/jquery-ui.css', false, GAWD_VERSION );
604
+ wp_enqueue_style( 'gawd_bootstrap', GAWD_URL . '/inc/css/bootstrap.css', false, GAWD_VERSION );
605
+ wp_enqueue_style( 'gawd_bootstrap-chosen', GAWD_URL . '/inc/css/bootstrap-chosen.css', false, GAWD_VERSION );
606
+ wp_enqueue_style( 'gawd_bootstrap-select', GAWD_URL . '/inc/css/bootstrap-select.css', false, GAWD_VERSION );
607
+ wp_enqueue_style( 'gawd_datepicker', GAWD_URL . '/inc/css/daterangepicker.css', false, GAWD_VERSION );
608
+ wp_enqueue_style( 'ui.jqgrid.css', GAWD_URL . '/inc/css/ui.jqgrid.css', false, GAWD_VERSION );
609
+ wp_enqueue_script( 'gawd_moment', GAWD_URL . '/inc/js/moment.min.js', false, GAWD_VERSION );
610
+ wp_enqueue_script( 'gawd_daterangepicker', GAWD_URL . '/inc/js/daterangepicker.js', false, GAWD_VERSION );
611
+ wp_enqueue_script( 'gawd_amcharts', GAWD_URL . '/inc/js/amcharts.js', false, GAWD_VERSION );
612
+ wp_enqueue_script( 'gawd_pie', GAWD_URL . '/inc/js/pie.js', false, GAWD_VERSION );
613
+ wp_enqueue_script( 'gawd_serial', GAWD_URL . '/inc/js/serial.js', false, GAWD_VERSION );
614
+ /*Map*/
615
+ wp_enqueue_script( 'gawd_ammap', GAWD_URL . '/inc/js/ammap.js', false, GAWD_VERSION );
616
+ wp_enqueue_script( 'gawd_worldLow', GAWD_URL . '/inc/js/worldLow.js', false, GAWD_VERSION );
617
+ wp_enqueue_script( 'gawd_map_chart', GAWD_URL . '/inc/js/gawd_map_chart.js', false, GAWD_VERSION );
618
+ /*End Map*/
619
+ wp_enqueue_script( 'gawd_light_theme', GAWD_URL . '/inc/js/light.js', array( 'jquery' ), GAWD_VERSION );
620
+ wp_enqueue_script( 'gawd_dataloader', GAWD_URL . '/inc/js/dataloader.min.js', array( 'jquery' ), GAWD_VERSION );
621
+ wp_enqueue_script( 'rgbcolor.js', GAWD_URL . '/inc/js/rgbcolor.js', array( 'jquery' ), GAWD_VERSION );
622
+ wp_enqueue_script( 'StackBlur.js', GAWD_URL . '/inc/js/StackBlur.js', array( 'jquery' ), GAWD_VERSION );
623
+ wp_enqueue_script( 'canvg.js', GAWD_URL . '/inc/js/canvg.js', array( 'jquery' ), GAWD_VERSION );
624
+ wp_enqueue_script( 'gawd_tables', GAWD_URL . '/inc/js/loader.js', array( 'jquery' ), GAWD_VERSION );
625
+ wp_enqueue_script( 'gawd_grid', GAWD_URL . '/inc/js/jquery.jqGrid.min.js', array( 'jquery' ), GAWD_VERSION );
626
+ wp_enqueue_script( 'gawd_grid_locale', GAWD_URL . '/inc/js/grid.locale-en.js', array( 'jquery' ), GAWD_VERSION );
627
+ wp_enqueue_script( 'date-js', GAWD_URL . '/inc/js/date.js', array( 'jquery' ), GAWD_VERSION );
628
+ wp_enqueue_script( 'admin_js', GAWD_URL . '/inc/js/gawd_admin.js', array( 'jquery' ), GAWD_VERSION );
629
+ wp_enqueue_script( 'chosen.jquery.js', GAWD_URL . '/inc/js/chosen.jquery.js', array( 'jquery' ), GAWD_VERSION );
630
+ wp_enqueue_script( 'bootstrap_js', GAWD_URL . '/inc/js/bootstrap_js.js', array( 'jquery' ), GAWD_VERSION );
631
+ wp_enqueue_script( 'bootstrap-select', GAWD_URL . '/inc/js/bootstrap-select.js', array( 'jquery' ), GAWD_VERSION );
632
+ wp_enqueue_script( 'highlight_js', GAWD_URL . '/inc/js/js_highlight.js', array( 'jquery' ), GAWD_VERSION );
633
+ wp_enqueue_script( 'settings_js', GAWD_URL . '/inc/js/gawd_settings.js', array( 'jquery' ), GAWD_VERSION );
634
+ wp_enqueue_script( 'overview', GAWD_URL . '/inc/js/gawd_overview.js', array( 'jquery' ), GAWD_VERSION );
635
+ wp_localize_script( 'overview', 'gawd_overview', array(
636
+ 'ajaxurl' => admin_url( 'admin-ajax.php' ),
637
+ 'ajaxnonce' => wp_create_nonce( 'gawd_admin_page_nonce' ),
638
+ 'gawd_plugin_url' => GAWD_URL,
639
+ 'default_date' => $default_date,
640
+ 'enableHoverTooltip' => $enable_hover_tooltip,
641
+ 'wp_admin_url' => admin_url()
642
+ ) );
643
+ wp_localize_script( 'admin_js', 'gawd_admin', array(
644
+ 'ajaxurl' => admin_url( 'admin-ajax.php' ),
645
+ 'ajaxnonce' => wp_create_nonce( 'gawd_admin_page_nonce' ),
646
+ 'gawd_plugin_url' => GAWD_URL,
647
+ 'wp_admin_url' => admin_url(),
648
+ 'enableHoverTooltip' => $enable_hover_tooltip,
649
+ 'default_date' => $default_date,
650
+ 'default_date_format' => $default_date_format,
651
+ 'date_30' => date( 'Y-m-d', strtotime( '-31 day' ) ) . '/-/' . date( 'Y-m-d', strtotime( '-1 day' ) ),
652
+ 'date_7' => date( 'Y-m-d', strtotime( '-8 day' ) ) . '/-/' . date( 'Y-m-d', strtotime( '-1 day' ) ),
653
+ 'date_last_week' => date( 'Y-m-d', strtotime( 'last week -1day' ) ) . '/-/' . date( 'Y-m-d', strtotime( 'last week +5day' ) ),
654
+ 'date_last_month' => date( 'Y-m-01', strtotime( 'last month' ) ) . '/-/' . date( 'Y-m-t', strtotime( 'last month' ) ),
655
+ 'date_this_month' => date( 'Y-m-01' ) . '/-/' . date( 'Y-m-d' ),
656
+ 'date_today' => date( 'Y-m-d' ) . '/-/' . date( 'Y-m-d' ),
657
+ 'date_yesterday' => date( 'Y-m-d', strtotime( '-1 day' ) ) . '/-/' . date( 'Y-m-d', strtotime( '-1 day' ) ),
658
+ 'exportUrl' => add_query_arg( array( 'action' => 'gawd_export' ), admin_url( 'admin-ajax.php' ) )
659
+ ) );
660
+ }
661
+ }
662
+
663
+ /**
664
+ * Adds the menu page with its submenus.
665
+ */
666
+ public function gawd_add_menu() {
667
+
668
+
669
+ $gawd_settings = get_option( 'gawd_settings' );
670
+ $gawd_permissions = isset( $gawd_settings['gawd_permissions'] ) ? $gawd_settings['gawd_permissions'] : array();
671
+ if ( empty( $gawd_permissions ) ) {
672
+ $permission = 'manage_options';
673
+ } else {
674
+ if ( in_array( 'manage_options', $gawd_permissions ) ) {
675
+ $permission = 'manage_options';
676
+ }
677
+ if ( in_array( 'moderate_comments', $gawd_permissions ) ) {
678
+ $permission = 'moderate_comments';
679
+ }
680
+ if ( in_array( 'publish_posts', $gawd_permissions ) ) {
681
+ $permission = 'publish_posts';
682
+ }
683
+ if ( in_array( 'edit_posts', $gawd_permissions ) ) {
684
+ $permission = 'edit_posts';
685
+ }
686
+ }
687
+ add_menu_page(
688
+ __( 'Analytics', 'gawd' ), //$page_title
689
+ __( 'Analytics', 'gawd' ), //$menu_title
690
+ $permission, //$capability
691
+ 'gawd_analytics', //$menu_slug
692
+ array( $this, $this->gawd_set_display( 'gawd_display_overview_page' ) ), //$function = '',
693
+ GAWD_URL . '/assets/main_icon.png'
694
+ //$position = null
695
+ );
696
+
697
+ add_submenu_page(
698
+ 'gawd_analytics', //$parent_slug
699
+ __( 'Overview', 'gawd' ), //$page_title
700
+ __( 'Overview', 'gawd' ), //$menu_title
701
+ $permission, //$capability
702
+ $this->gawd_set_slug( 'gawd_analytics' ), //$menu_slug
703
+ array( $this, $this->gawd_set_display( 'gawd_display_overview_page' ) ) //$function = '',
704
+ );
705
+ add_submenu_page(
706
+ 'gawd_analytics', //$parent_slug
707
+ __( 'Reports', 'gawd' ), //$page_title
708
+ __( 'Reports', 'gawd' ), //$menu_title
709
+ $permission, //$capability
710
+ $this->gawd_set_slug( 'gawd_reports' ), //$menu_slug
711
+ array( $this, $this->gawd_set_display( 'gawd_display_reports_page' ) ) //$function = '',
712
+ );
713
+
714
+ add_submenu_page(
715
+ 'gawd_analytics', //$parent_slug
716
+ __( 'Settings', 'gawd' ), //$page_title
717
+ __( 'Settings', 'gawd' ), //$menu_title
718
+ $permission, //$capability
719
+ 'gawd_settings', //$menu_slug
720
+ array( $this, 'gawd_display_settings_page' ) //$function = '',
721
+
722
+ );
723
+ add_submenu_page(
724
+ 'gawd_analytics', //$parent_slug
725
+ __( 'Tracking', 'gawd' ), //$page_title
726
+ __( 'Tracking', 'gawd' ), //$menu_title
727
+ $permission, //$capability
728
+ $this->gawd_set_slug( 'gawd_tracking' ), //$menu_slug
729
+ array( $this, $this->gawd_set_display( 'gawd_display_tracking_page' ) ) //$function = '',
730
+ );
731
+ add_submenu_page(
732
+ 'gawd_analytics', //$parent_slug
733
+ __( 'Goal Management', 'gawd' ), //$page_title
734
+ __( 'Goal Management', 'gawd' ), //$menu_title
735
+ $permission, //$capability
736
+ $this->gawd_set_slug( 'gawd_goals' ), //$menu_slug
737
+ array( $this, $this->gawd_set_display( 'gawd_display_goals_page' ) ) //$function = '',
738
+ );
739
+
740
+ add_submenu_page(
741
+ 'gawd_analytics', //$parent_slug
742
+ __( 'Custom Reports', 'gawd' ), //$page_title
743
+ __( 'Custom Reports', 'gawd' ), //$menu_title
744
+ $permission, //$capability
745
+ $this->gawd_set_slug( 'gawd_custom_reports' ), //$menu_slug
746
+ array( $this, $this->gawd_set_display( 'gawd_display_custom_reports_page' ) ) //$function = '',
747
+ );
748
+ add_submenu_page(
749
+ 'gawd_analytics', //$parent_slug
750
+ __( 'Get Pro', 'gawd' ), //$page_title
751
+ __( 'Get Pro', 'gawd' ), //$menu_title
752
+ $permission, //$capability
753
+ 'gawd_licensing', //$menu_slug
754
+ array( $this, 'gawd_display_licensing_page' ) //$function = '',
755
+ );
756
+ add_submenu_page(
757
+ 'gawd_analytics', //$parent_slug
758
+ __( 'Featured Plugins', 'gawd' ), //$page_title
759
+ __( 'Featured Plugins', 'gawd' ), //$menu_title
760
+ $permission, //$capability
761
+ 'gawd_featured_plugins', //$menu_slug
762
+ array( $this, 'gawd_display_featured_plugins_page' ) //$function = '',
763
+ );
764
+ add_submenu_page(
765
+ 'gawd_analytics', //$parent_slug
766
+ __( 'Featured Themes', 'gawd' ), //$page_title
767
+ __( 'Featured Themes', 'gawd' ), //$menu_title
768
+ $permission, //$capability
769
+ 'gawd_featured_themes', //$menu_slug
770
+ array( $this, 'gawd_display_featured_themes_page' ) //$function = '',
771
+ );
772
+ add_submenu_page(
773
+ 'gawd_analytics', //$parent_slug
774
+ __( 'Uninstall', 'gawd' ), //$page_title
775
+ __( 'Uninstall', 'gawd' ), //$menu_title
776
+ $permission, //$capability
777
+ 'gawd_uninstall', //$menu_slug
778
+ array( $this, 'gawd_display_uninstall_page' ) //$function = '',
779
+ );
780
+
781
+ }
782
+
783
+
784
+ public function gawd_set_slug( $slug ) {
785
+ global $gawd_redirect_to_settings;
786
+ if ( $gawd_redirect_to_settings == 'yes' ) {
787
+ return 'gawd_settings';
788
+ } else {
789
+ return $slug;
790
+ }
791
+ }
792
+
793
+ public function gawd_set_display( $slug ) {
794
+ global $gawd_redirect_to_settings;
795
+ if ( $gawd_redirect_to_settings == 'yes' ) {
796
+ return 'gawd_display_settings_page';
797
+ } else {
798
+ return $slug;
799
+ }
800
+ }
801
+
802
+ public function gawd_display_licensing_page() {
803
+ require_once( GAWD_DIR . '/admin/licensing.php' );
804
+ }
805
+
806
+ function upgrade_pro() {
807
+ $screen = get_current_screen();
808
+ if ( strpos( $screen->base, 'gawd' ) !== false && strpos( $screen->base, 'gawd_featured' ) === false ) {
809
+ ?>
810
+ <div class="gawd_upgrade wd-clear">
811
+ <div class="wd-right">
812
+ <a href="https://web-dorado.com/products/wordpress-google-analytics-plugin.html" target="_blank">
813
+ <div class="wd-table">
814
+ <div class="wd-cell wd-cell-valign-middle">
815
+ <?php _e( "Upgrade to paid version", "gawd" ); ?>
816
+ </div>
817
+
818
+ <div class="wd-cell wd-cell-valign-middle">
819
+ <img src="<?php echo GAWD_URL; ?>/assets/web-dorado.png">
820
+ </div>
821
+ </div>
822
+ </a>
823
+ </div>
824
+ </div>
825
+ <?php
826
+ }
827
+ }
828
+
829
+ public function gawd_display_featured_plugins_page() {
830
+ require_once( GAWD_DIR . '/featured/featured.php' );
831
+ gawd_featured_plugins( 'wd-google-analytics' );
832
+
833
+ }
834
+
835
+ public function gawd_display_featured_themes_page() {
836
+ require_once( GAWD_DIR . '/featured/featured_themes.php' );
837
+ $controller = new gawd_featured_themes();
838
+ $controller->display();
839
+ }
840
+
841
+ public function gawd_auth() {
842
+ check_ajax_referer( 'gawd_admin_page_nonce', 'security' );
843
+ $code = $_POST['token'];
844
+ $status = GAWD_google_client::authenticate( $code );
845
+ if ( $status === true ) {
846
+ $res = array(
847
+ 'message' => 'successfully saved',
848
+ 'status' => $status,
849
+ );
850
+ } else {
851
+ $res = array(
852
+ 'message' => 'there is an error',
853
+ 'status' => $status
854
+ );
855
+ }
856
+ header( 'content-type: application/json' );
857
+ echo json_encode( $res );
858
+ wp_die();
859
+ }
860
+
861
+ /**
862
+ * Displays the Dashboard page.
863
+ */
864
+ public function gawd_display_uninstall_page() {
865
+ require_once( 'admin/pages/uninstall.php' );
866
+ $gawd_uninstall = new GAWDUninstall();
867
+ $deactivate_url = wp_nonce_url( 'plugins.php?action=deactivate&plugin=' . GWD_NAME . '/google-analytics-wd.php', 'deactivate-plugin_' . GWD_NAME . '/google-analytics-wd.php' );
868
+ $deactivate_url = str_replace( '&amp;', '&', $deactivate_url );
869
+ if ( isset( $_POST['unistall_gawd'] ) ) {
870
+ check_admin_referer( 'gawd_save_form', 'gawd_save_form_fild' );
871
+ delete_option( 'gawd_custom_reports' );
872
+ delete_option( 'gawd_menu_for_user' );
873
+ delete_option( 'gawd_all_metrics' );
874
+ delete_option( 'gawd_all_dimensions' );
875
+ delete_option( 'gawd_custom_dimensions' );
876
+ delete_option( 'gawd_settings' );
877
+ delete_option( 'gawd_user_data' );
878
+ delete_option( 'gawd_credentials' );
879
+ delete_option( 'gawd_menu_items' );
880
+ delete_option( 'gawd_export_chart_data' );
881
+ delete_option( 'gawd_email' );
882
+ delete_option( 'gawd_custom_reports' );
883
+ delete_option( 'gawd_alerts' );
884
+ delete_option( 'gawd_pushovers' );
885
+ delete_option( 'gawd_menu_for_users' );
886
+ delete_option( 'gawd_own_project' );
887
+ delete_option( 'gawd_zoom_message' );
888
+ delete_transient( 'gawd_user_profiles' );
889
+ echo '<script>window.location.href="' . $deactivate_url . '";</script>';
890
+ }
891
+ if ( get_option( 'gawd_credentials' ) ) {
892
+ $gawd_uninstall->uninstall();
893
+ }
894
+ }
895
+
896
+ public function gawd_display_goals_page() {
897
+ global $gawd_client;
898
+ if ( $this->manage_ua_code_selection() != 'done' ) {
899
+ return;
900
+ }
901
+ $gawd_client = GAWD_google_client::get_instance();
902
+ if ( ! empty( $_POST ) ) {
903
+ check_admin_referer( 'gawd_save_form', 'gawd_save_form_fild' );
904
+ }
905
+ $gawd_goal_profile = isset( $_POST['gawd_goal_profile'] ) ? sanitize_text_field( $_POST['gawd_goal_profile'] ) : '';
906
+ $gawd_goal_name = isset( $_POST['gawd_goal_name'] ) ? sanitize_text_field( $_POST['gawd_goal_name'] ) : '';
907
+ $gawd_goal_type = isset( $_POST['gawd_goal_type'] ) ? sanitize_text_field( $_POST['gawd_goal_type'] ) : '';
908
+ $gawd_visit_hour = isset( $_POST['gawd_visit_hour'] ) ? sanitize_text_field( $_POST['gawd_visit_hour'] ) : '';
909
+ $gawd_visit_minute = isset( $_POST['gawd_visit_minute'] ) ? sanitize_text_field( $_POST['gawd_visit_minute'] ) : '';
910
+ $gawd_visit_second = isset( $_POST['gawd_visit_second'] ) ? sanitize_text_field( $_POST['gawd_visit_second'] ) : '';
911
+ $gawd_goal_duration_comparison = isset( $_POST['gawd_goal_duration_comparison'] ) ? sanitize_text_field( $_POST['gawd_goal_duration_comparison'] ) : '';
912
+ $gawd_goal_page_comparison = isset( $_POST['gawd_goal_page_comparison'] ) ? sanitize_text_field( $_POST['gawd_goal_page_comparison'] ) : '';
913
+ $gawd_page_sessions = isset( $_POST['gawd_page_sessions'] ) ? sanitize_text_field( $_POST['gawd_page_sessions'] ) : '';
914
+ $goal_max_id = isset( $_POST['goal_max_id'] ) ? $_POST['goal_max_id'] + 1 : 1;
915
+ $gawd_goal_page_destination_match = isset( $_POST['gawd_goal_page_destination_match'] ) ? sanitize_text_field( $_POST['gawd_goal_page_destination_match'] ) : '';
916
+ $gawd_page_url = isset( $_POST['gawd_page_url'] ) ? sanitize_text_field( $_POST['gawd_page_url'] ) : '';
917
+ $url_case_sensitve = isset( $_POST['url_case_sensitve'] ) ? $_POST['url_case_sensitve'] : '';
918
+ if ( $gawd_goal_type == 'VISIT_TIME_ON_SITE' ) {
919
+ if ( $gawd_visit_hour != '' || $gawd_visit_minute != '' || $gawd_visit_second != '' ) {
920
+ $value = 0;
921
+ if ( $gawd_visit_hour != '' ) {
922
+ $value += $gawd_visit_hour * 60 * 60;
923
+ }
924
+ if ( $gawd_visit_minute != '' ) {
925
+ $value += $gawd_visit_minute * 60;
926
+ }
927
+ if ( $gawd_visit_second != '' ) {
928
+ $value += $gawd_visit_second;
929
+ }
930
+ }
931
+ $gawd_client->add_goal( $gawd_goal_profile, $goal_max_id, $gawd_goal_type, $gawd_goal_name, $gawd_goal_duration_comparison, $value );
932
+ add_option( "gawd_save_goal", 1 );
933
+ }
934
+ elseif ( $gawd_goal_type == 'VISIT_NUM_PAGES' ) {
935
+ if ( $gawd_page_sessions != '' ) {
936
+ $gawd_client->add_goal( $gawd_goal_profile, $goal_max_id, $gawd_goal_type, $gawd_goal_name, $gawd_goal_page_comparison, $gawd_page_sessions );
937
+ }
938
+ add_option( "gawd_save_goal", 1 );
939
+ }
940
+ elseif ( $gawd_goal_type == 'URL_DESTINATION' ) {
941
+ if ( $gawd_page_url != '' ) {
942
+ $gawd_client->add_goal( $gawd_goal_profile, $goal_max_id, $gawd_goal_type, $gawd_goal_name, $gawd_goal_page_destination_match, $gawd_page_url, $url_case_sensitve );
943
+ }
944
+ add_option( "gawd_save_goal", 1 );
945
+ }
946
+ elseif ( $gawd_goal_type == 'EVENT' ) {
947
+ if ( $gawd_page_url != '' ) {
948
+ $gawd_client->add_goal( $gawd_goal_profile, $goal_max_id, $gawd_goal_type, $gawd_goal_name, $gawd_goal_page_comparison, $gawd_page_url, $url_case_sensitve );
949
+ }
950
+ add_option( "gawd_save_goal", 1 );
951
+ }
952
+ if ( get_option( 'gawd_save_goal' ) == 1 ) {
953
+ $this->gawd_admin_notice( 'Goal successfully has been created.', 'success is-dismissible' );
954
+ }
955
+ delete_option( 'gawd_save_goal' );
956
+ require_once( 'admin/pages/goals.php' );
957
+
958
+ }
959
+
960
+ public function gawd_display_custom_reports_page() {
961
+ global $gawd_client;
962
+ if ( ! empty( $_POST ) ) {
963
+ check_admin_referer( 'gawd_save_form', 'gawd_save_form_fild' );
964
+ }
965
+ $gawd_client = GAWD_google_client::get_instance();
966
+ $gawd_remove_custom_report = isset( $_POST['gawd_remove_custom_report'] ) ? sanitize_text_field( $_POST['gawd_remove_custom_report'] ) : '';
967
+ if ( $gawd_remove_custom_report ) {
968
+ $all_reports = get_option( "gawd_custom_reports" );
969
+ if ( $all_reports ) {
970
+ unset( $all_reports[ $gawd_remove_custom_report ] );
971
+ update_option( 'gawd_custom_reports', $all_reports );
972
+ self::add_dashboard_menu();
973
+ }
974
+ }
975
+ if ( isset( $_POST['gawd_add_custom_report'] ) ) {
976
+ $gawd_custom_report_name = isset( $_POST['gawd_custom_report_name'] ) ? sanitize_text_field( $_POST['gawd_custom_report_name'] ) : '';
977
+ $gawd_custom_report_metric = isset( $_POST['gawd_custom_report_metric'] ) ? sanitize_text_field( $_POST['gawd_custom_report_metric'] ) : '';
978
+ $gawd_custom_report_dimension = isset( $_POST['gawd_custom_report_dimension'] ) ? sanitize_text_field( $_POST['gawd_custom_report_dimension'] ) : '';
979
+
980
+ if ( $gawd_custom_report_name != '' && $gawd_custom_report_metric != '' && $gawd_custom_report_dimension != '' ) {
981
+ $saved_custom_reports = get_option( "gawd_custom_reports" );
982
+ if ( ! isset( $saved_custom_reports[ $gawd_custom_report_name ] ) ) {
983
+ if ( $saved_custom_reports ) {
984
+ $custom_reports = array(
985
+ 'metric' => $gawd_custom_report_metric,
986
+ 'dimension' => $gawd_custom_report_dimension,
987
+ 'id' => count( $saved_custom_reports ) + 1
988
+ );
989
+ $saved_custom_reports[ $gawd_custom_report_name ] = $custom_reports;
990
+
991
+ update_option( 'gawd_custom_reports', $saved_custom_reports );
992
+ } else {
993
+ $custom_reports = array(
994
+ $gawd_custom_report_name => array(
995
+ 'metric' => $gawd_custom_report_metric,
996
+ 'dimension' => $gawd_custom_report_dimension,
997
+ 'id' => 1
998
+ )
999
+ );
1000
+ update_option( 'gawd_custom_reports', $custom_reports );
1001
+ }
1002
+ }
1003
+ }
1004
+ self::add_dashboard_menu();
1005
+ }
1006
+ require_once( 'admin/pages/custom_reports.php' );
1007
+ }
1008
+
1009
+ public function gawd_display_overview_page() {
1010
+ global $gawd_client, $gawd_user_data;
1011
+ $gawd_client = GAWD_google_client::get_instance();
1012
+ $profiles = $gawd_client->get_profiles();
1013
+ $gawd_user_data = get_option( 'gawd_user_data' );
1014
+ if ( isset( $_POST['gawd_id'] ) ) {
1015
+ $gawd_user_data['gawd_id'] = isset( $_POST['gawd_id'] ) ? $_POST['gawd_id'] : '';
1016
+ foreach ( $gawd_user_data['gawd_profiles'] as $web_property_name => $web_property ) {
1017
+ foreach ( $web_property as $profile ) {
1018
+ if ( $profile['id'] == $gawd_user_data['gawd_id'] ) {
1019
+ $gawd_user_data['web_property_name'] = $web_property_name;
1020
+ $gawd_user_data['webPropertyId'] = $profile['webPropertyId'];
1021
+ $gawd_user_data['accountId'] = $profile['accountId'];
1022
+ }
1023
+ }
1024
+ }
1025
+ $gawd_user_data['web_property_name'] = isset( $_POST['web_property_name'] ) ? $_POST['web_property_name'] : '';
1026
+ update_option( 'gawd_user_data', $gawd_user_data );
1027
+ }
1028
+ require_once( 'admin/pages/overview.php' );
1029
+ }
1030
+
1031
+ public function gawd_display_reports_page() {
1032
+ global $gawd_client, $gawd_user_data;
1033
+ $gawd_client = GAWD_google_client::get_instance();
1034
+ $profiles = $gawd_client->get_profiles();
1035
+ $gawd_user_data = get_option( 'gawd_user_data' );
1036
+ if ( isset( $_POST['gawd_id'] ) ) {
1037
+ $gawd_user_data['gawd_id'] = isset( $_POST['gawd_id'] ) ? $_POST['gawd_id'] : '';
1038
+ foreach ( $gawd_user_data['gawd_profiles'] as $web_property_name => $web_property ) {
1039
+ foreach ( $web_property as $profile ) {
1040
+ if ( $profile['id'] == $gawd_user_data['gawd_id'] ) {
1041
+ $gawd_user_data['web_property_name'] = $web_property_name;
1042
+ $gawd_user_data['webPropertyId'] = $profile['webPropertyId'];
1043
+ $gawd_user_data['accountId'] = $profile['accountId'];
1044
+ }
1045
+ }
1046
+ }
1047
+ $gawd_user_data['web_property_name'] = isset( $_POST['web_property_name'] ) ? $_POST['web_property_name'] : '';
1048
+ update_option( 'gawd_user_data', $gawd_user_data );
1049
+ }
1050
+ require_once( 'admin/pages/dashboard.php' );
1051
+ }
1052
+
1053
+ public function gawd_daily_email() {
1054
+ require_once( GAWD_DIR . '/admin/gawd_google_class.php' );
1055
+ $gawd_client = GAWD_google_client::get_instance();
1056
+ $emails = get_option( 'gawd_email' );
1057
+ $gawd_user_data = get_option( 'gawd_user_data' );
1058
+ $data = '';
1059
+ foreach ( $emails as $email ) {
1060
+ if ( isset( $email['period'] ) && $email['period'] == 'daily' ) {
1061
+ //pls send email if ....
1062
+ $date = date( 'Y-m-d', strtotime( 'yesterday' ) );
1063
+ $email_subject = preg_match( '/\(([0-9]{4}-[0-1][0-9]-[0-3][0-9] \- [0-9]{4}-[0-1][0-9]-[0-3][0-9])\)/', $email['email_subject'] ) ? preg_replace( '/\(([0-9]{4}-[0-1][0-9]-[0-3][0-9] \- [0-9]{4}-[0-1][0-9]-[0-3][0-9])\)/', '(' . $date . ' - ' . $date . ')', $email['email_subject'] ) : $email['email_subject'] . ' (' . $date . ' - ' . $date . ')';
1064
+ $data = $this->show_data( array(
1065
+ 'metric' => 'ga:' . $email['metric'],
1066
+ 'dimension' => $email['dimension'],
1067
+ 'start_date' => $date,
1068
+ 'end_date' => $date
1069
+ ) );
1070
+ if ( $email['export_type'] == 'pdf' ) {
1071
+ $filedir = $this->create_pdf_file( false, $data, $email['dimension'], $date, $date, $email['metric_compare'], $email['metric'] );
1072
+ } else {
1073
+ $filedir = $this->create_csv_file( false, $data, $email['dimension'], $date, $date, $email['metric_compare'], $email['metric'] );
1074
+ }
1075
+ //$attachment = gawd_export_data($data, $export_type, 'email', $email['dimension'], $email['metric'], $email['metric_compare'], $email['img'], $email['tab_name'], $start_date, $end_date, $gawd_user_data['web_property_name'],$filter_type);
1076
+ $attachment = $filedir;
1077
+ $headers = 'From: <' . $email['email_from'] . '>';
1078
+ wp_mail( $email['emails'], $email_subject, $email['email_body'], $headers, $attachment );
1079
+ }
1080
+ }
1081
+ }
1082
+
1083
+ public function gawd_weekly_email() {
1084
+ require_once( GAWD_DIR . '/admin/gawd_google_class.php' );
1085
+ $gawd_client = GAWD_google_client::get_instance();
1086
+ $emails = get_option( 'gawd_email' );
1087
+ $gawd_user_data = get_option( 'gawd_user_data' );
1088
+ $data = '';
1089
+ foreach ( $emails as $email ) {
1090
+ if ( isset( $email['period'] ) && $email['period'] == 'gawd_weekly' ) {
1091
+ //pls send email if ....
1092
+ /*$start_date = date('Y-m-d', strtotime('last' . $email['period_day']));
1093
+ $end_date = date('Y-m-d', strtotime('this' . $email['period_day']));*/
1094
+ $start_date = date( 'Y-m-d', strtotime( 'last week -1 day' ) );
1095
+ $end_date = date( 'l' ) != 'Sunday' ? date( 'Y-m-d', strtotime( 'last sunday -1 day' ) ) : date( 'Y-m-d', strtotime( '-1 day' ) );
1096
+ $email_subject = preg_match( '/\(([0-9]{4}-[0-1][0-9]-[0-3][0-9] \- [0-9]{4}-[0-1][0-9]-[0-3][0-9])\)/', $email['email_subject'] ) ? preg_replace( '/\(([0-9]{4}-[0-1][0-9]-[0-3][0-9] \- [0-9]{4}-[0-1][0-9]-[0-3][0-9])\)/', '(' . $start_date . ' - ' . $end_date . ')', $email['email_subject'] ) : $email['email_subject'] . ' (' . $start_date . ' - ' . $end_date . ')';
1097
+ $data = $this->show_data( array(
1098
+ 'metric' => 'ga:' . $email['metric'],
1099
+ 'dimension' => $email['dimension'],
1100
+ 'start_date' => $start_date,
1101
+ 'end_date' => $end_date
1102
+ ) );
1103
+ if ( $email['export_type'] == 'pdf' ) {
1104
+ $filedir = $this->create_pdf_file( false, $data, $email['dimension'], $start_date, $end_date, $email['metric_compare'], $email['metric'] );
1105
+ } else {
1106
+ $filedir = $this->create_csv_file( false, $data, $email['dimension'], $start_date, $end_date, $email['metric_compare'], $email['metric'] );
1107
+ }
1108
+ //$attachment = gawd_export_data($data, $export_type, 'email', $email['dimension'], $email['metric'], $email['metric_compare'], $email['img'], $email['tab_name'], $start_date, $end_date, $gawd_user_data['web_property_name'],$filter_type);
1109
+ $attachment = $filedir;
1110
+
1111
+ $headers = 'From: <' . $email['email_from'] . '>';
1112
+ wp_mail( $email['emails'], $email_subject, $email['email_body'], $headers, $attachment );
1113
+ }
1114
+ }
1115
+ }
1116
+
1117
+ public function gawd_monthly_email() {
1118
+ require_once( GAWD_DIR . '/admin/gawd_google_class.php' );
1119
+ $gawd_client = GAWD_google_client::get_instance();
1120
+ $emails = get_option( 'gawd_email' );
1121
+ $gawd_user_data = get_option( 'gawd_user_data' );
1122
+ $data = '';
1123
+ foreach ( $emails as $email ) {
1124
+ if ( isset( $email['period'] ) && $email['period'] == 'gawd_monthly' ) {
1125
+ //pls send email if ....
1126
+ $end_date = date( 'Y-m-d', strtotime( date( 'Y-' . date( 'm' ) . '-1' ) . '-1 day' ) );
1127
+ $start_date = date( 'Y-m-d', strtotime( $end_date . '- 1 month' ) );
1128
+ $data = $this->show_data( array(
1129
+ 'metric' => 'ga:' . $email['metric'],
1130
+ 'dimension' => $email['dimension'],
1131
+ 'start_date' => $start_date,
1132
+ 'end_date' => $end_date
1133
+ ) );
1134
+ $email_subject = preg_match( '/\(([0-9]{4}-[0-1][0-9]-[0-3][0-9] \- [0-9]{4}-[0-1][0-9]-[0-3][0-9])\)/', $email['email_subject'] ) ? preg_replace( '/\(([0-9]{4}-[0-1][0-9]-[0-3][0-9] \- [0-9]{4}-[0-1][0-9]-[0-3][0-9])\)/', '(' . $start_date . ' - ' . $end_date . ')', $email['email_subject'] ) : $email['email_subject'] . ' (' . $start_date . ' - ' . $end_date . ')';
1135
+ if ( $email['export_type'] == 'pdf' ) {
1136
+ $filedir = $this->create_pdf_file( false, $data, $email['dimension'], $start_date, $end_date, $email['metric_compare'], $email['metric'] );
1137
+ } else {
1138
+ $filedir = $this->create_csv_file( false, $data, $email['dimension'], $start_date, $end_date, $email['metric_compare'], $email['metric'] );
1139
+ }
1140
+ //$attachment = gawd_export_data($data, $export_type, 'email', $email['dimension'], $email['metric'], $email['metric_compare'], $email['img'], $email['tab_name'], $start_date, $end_date, $gawd_user_data['web_property_name'],$filter_type);
1141
+ $attachment = $filedir;
1142
+ $headers = 'From: <' . $email['email_from'] . '>';
1143
+ wp_mail( $email['emails'], $email_subject, $email['email_body'], $headers, $attachment );
1144
+ }
1145
+ }
1146
+ }
1147
+
1148
+ /**
1149
+ * Prepares the settings to be displayed then displays the settings page.
1150
+ */
1151
+ public static function gawd_settings_defaults() {
1152
+ $settings = get_option( 'gawd_settings' );
1153
+ $settings['gawd_tracking_enable'] = 'on';
1154
+ $settings['gawd_custom_dimension_Logged_in'] = 'on';
1155
+ $settings['gawd_custom_dimension_Post_type'] = 'on';
1156
+ $settings['gawd_custom_dimension_Author'] = 'on';
1157
+ $settings['gawd_custom_dimension_Category'] = 'on';
1158
+ $settings['gawd_custom_dimension_Published_Month'] = 'on';
1159
+ $settings['gawd_custom_dimension_Published_Year'] = 'on';
1160
+ $settings['gawd_custom_dimension_Tags'] = 'on';
1161
+ $settings['enable_hover_tooltip'] = 'on';
1162
+ $settings['gawd_show_in_dashboard'] = 'on';
1163
+ $settings['post_page_chart'] = 'on';
1164
+ update_option( 'gawd_settings', $settings );
1165
+ }
1166
+
1167
+ public function manage_ua_code_selection() {
1168
+ global $gawd_user_data, $gawd_client;
1169
+ $gawd_user_data = get_option( 'gawd_user_data' );
1170
+ if ( isset( $gawd_user_data['default_webPropertyId'] ) && $gawd_user_data['default_webPropertyId'] ) {
1171
+ return 'done';
1172
+ } else {
1173
+ $gawd_client = GAWD_google_client::get_instance();
1174
+ $property = $gawd_client->property_exists();
1175
+ if ( $property == 'no_matches' ) {
1176
+ $this->gawd_admin_notice( "<p class='gawd_notice'>You don't have any web-properties with current site url, go with <a href='" . admin_url( 'admin.php?page=gawd_tracking' ) . "'>this</a> link to add.</p>", 'error' );
1177
+ // show notice that you don't have property with current site url
1178
+ // add account or property to an existing account
1179
+ } elseif ( count( $property ) == 1 ) {
1180
+ $property = $property[0];
1181
+ $gawd_user_data['webPropertyId'] = $property['id'];
1182
+ $gawd_user_data['default_webPropertyId'] = $property['id'];
1183
+ $gawd_user_data['accountId'] = $property['accountId'];
1184
+ $gawd_user_data['default_accountId'] = $property['accountId'];
1185
+ $gawd_user_data['gawd_id'] = $property['defaultProfileId'];
1186
+ update_option( 'gawd_user_data', $gawd_user_data );
1187
+ $this->gawd_admin_notice( "In order to enable tracking for your website, you have to go with
1188
+ <a href='" . admin_url( 'admin.php?page=gawd_tracking' ) . "'>this</a> link and turn the option on.", 'warning is-dismissible' );
1189
+ // show notice that you have to enable tracking code, link to tracking submenu
1190
+ } else {
1191
+ $this->gawd_admin_notice( "You have two or more web-properties configured with current site url. Please go with
1192
+ <a href='" . admin_url( 'admin.php?page=gawd_tracking' ) . "'>this</a> link to select the proper one.", 'error' );
1193
+ // show notice that you have >=2 properties with current site url
1194
+ // select property from same url properties
1195
+ }
1196
+ }
1197
+ }
1198
+
1199
+ public function manage_ua_code_selection_tracking() {
1200
+ global $gawd_user_data;
1201
+ if ( isset( $gawd_user_data['default_webPropertyId'] ) && $gawd_user_data['default_webPropertyId'] ) {
1202
+ return 'done';
1203
+ } else {
1204
+ $gawd_client = GAWD_google_client::get_instance();
1205
+ $property = $gawd_client->property_exists();
1206
+ if ( $property == 'no_matches' ) {
1207
+ $accounts = $gawd_client->get_management_accounts();
1208
+ if ( ! empty( $accounts ) ) {
1209
+ echo "<h3 style='margin-top:10px' class='gawd_page_titles'>Tracking</h3>
1210
+ <p class='gawd_notice notice'>Here you can add a <b>web property</b> on your Google Analytics account using current WordPress website. After creating a <b>web property</b> Google Analytics tracking code will be added to your website.</p></br>
1211
+ <form method='post' id='gawd_property_add'>
1212
+ <div class='gawd_settings_wrapper'>
1213
+ <div class='gawd_goal_row'>
1214
+ <span class='gawd_goal_label'>Account</span>
1215
+ <span class='gawd_goal_input'>
1216
+ <select name='gawd_account_select' class='gawd_account_select' style='padding: 2px;width: 96%;line-height: 30px;height: 30px !important;'>";
1217
+ foreach ( $accounts as $account ) {
1218
+ echo "<option value='" . $account['id'] . "'>" . $account['name'] . "</option>";
1219
+ }
1220
+ echo "</select>
1221
+ </span>
1222
+ <div class='gawd_info' title='Choose the Google Analytics account to connect this property to.'></div>
1223
+ <div class='clear'></div>
1224
+ </div>
1225
+ <div class='gawd_goal_row'>
1226
+ <span class='gawd_goal_label'>Name</span>
1227
+ <span class='gawd_goal_input'>
1228
+ <input id='gawd_property_name' name='gawd_property_name' type='text'>
1229
+ </span>
1230
+ <div class='gawd_info' title='Provide a name for the property.'></div>
1231
+ <div class='clear'></div>
1232
+ </div>
1233
+ </div>
1234
+ <div class='gawd_add_prop gawd_submit'>
1235
+ <a href='" . admin_url() . "admin.php?page=gawd_analytics' class='gawd_later button_gawd'>Later</a>
1236
+ <input type='button' id='gawd_add_property' class='button_gawd' value='ADD'/>
1237
+ <input type='hidden' id='add_property' name='add_property'/>
1238
+ </div>
1239
+ </form>";
1240
+ // account select to add web property and web property parameters
1241
+ // and add link to google analytics for manually creating an account
1242
+ // wp_die();
1243
+ } else {
1244
+ $this->gawd_admin_notice( "You do not have any google analytics accounts set. Please go with <a href='https://analytics.google.com/' target='_blank'>this</a> link to add one.", "error" );
1245
+ // link to google analytics to add account
1246
+ // wp_die();
1247
+ }
1248
+ } elseif ( count( $property ) == 1 ) {
1249
+ $property = $property[0];
1250
+ $gawd_user_data['webPropertyId'] = $property['id'];
1251
+ $gawd_user_data['default_webPropertyId'] = $property['id'];
1252
+ $gawd_user_data['accountId'] = $property['accountId'];
1253
+ $gawd_user_data['default_accountId'] = $property['accountId'];
1254
+ $gawd_user_data['gawd_id'] = $property['defaultProfileId'];
1255
+ update_option( 'gawd_user_data', $gawd_user_data );
1256
+ } else {
1257
+ echo "<p class='notice'>You have multiple web-properties set with current site url. Please select the one which you want to use for tracking from the list below.</p>
1258
+ <br/>
1259
+ <form method='post' id='gawd_property_select'>
1260
+ <div class='gawd_settings_wrapper'>
1261
+ <div class='gawd_goal_row'>
1262
+ <span class='gawd_goal_label'>Web-property</span>
1263
+ <span class='gawd_goal_input'>
1264
+ <select name='gawd_property_select' class='gawd_property_select' style='padding: 2px;width: 96%;line-height: 30px;height: 30px !important;'>";
1265
+ foreach ( $property as $select_property ) {
1266
+ echo "<option value='" . $select_property['id'] . "'>" . $select_property['name'] . " (" . $select_property['id'] . ")</option>";
1267
+ }
1268
+ echo "</select>
1269
+ </span>
1270
+ <div class='gawd_info' title=''></div>
1271
+ <div class='clear'></div>
1272
+ </div>
1273
+ </div>
1274
+ <div class='gawd_submit'><input type='submit' name='lock_property' class='button_gawd' value='SAVE'/></div>
1275
+ </form>";
1276
+ // web property select to select from properties with same site url
1277
+ // wp_die();
1278
+ }
1279
+ }
1280
+ }
1281
+
1282
+ public function gawd_admin_notice( $message, $type ) {
1283
+ $class = 'notice notice-' . $type;
1284
+ echo '<div class="' . $class . '"><p>' . $message . '</p></div>';
1285
+ }
1286
+
1287
+ public function gawd_display_settings_page() {
1288
+
1289
+ global $gawd_user_data;
1290
+ $gawd_user_data = get_option( 'gawd_user_data' );
1291
+ if ( isset( $_GET['defaultExist'] ) && $_GET['defaultExist'] == 1 ) {
1292
+ $redirect_url = admin_url() . 'admin.php?page=gawd_tracking';
1293
+ echo '<script>window.location.href="' . $redirect_url . '";</script>';
1294
+ }
1295
+ if ( isset( $_POST['gawd_settings_logout'] ) && $_POST['gawd_settings_logout'] == 1 ) {
1296
+ delete_option( 'gawd_user_data' );
1297
+ $redirect_url = admin_url() . 'admin.php?page=gawd_settings';
1298
+ echo '<script>window.location.href="' . $redirect_url . '";</script>';
1299
+ }
1300
+ if ( isset( $_POST['web_property_name'] ) && $_POST['web_property_name'] != '' ) {
1301
+ $gawd_user_data['gawd_id'] = isset( $_POST['gawd_id'] ) ? $_POST['gawd_id'] : '';
1302
+ foreach ( $gawd_user_data['gawd_profiles'] as $web_property_name => $web_property ) {
1303
+ foreach ( $web_property as $profile ) {
1304
+ if ( $profile['id'] == $gawd_user_data['gawd_id'] ) {
1305
+ $gawd_user_data['web_property_name'] = $web_property_name;
1306
+ $gawd_user_data['webPropertyId'] = $profile['webPropertyId'];
1307
+ $gawd_user_data['accountId'] = $profile['accountId'];
1308
+ }
1309
+ }
1310
+ }
1311
+ $gawd_user_data['web_property_name'] = isset( $_POST['web_property_name'] ) ? $_POST['web_property_name'] : '';
1312
+ update_option( 'gawd_user_data', $gawd_user_data );
1313
+ $redirect_url = admin_url() . 'admin.php?page=gawd_settings';
1314
+ //echo '<script>window.location.href="'.$redirect_url.'";</script>';
1315
+ }
1316
+ /* if(isset($_POST['account_name']) && $_POST['account_name'] != ''){
1317
+ $gawd_user_data['accountId'] = isset($_POST['gawd_id']) ? $_POST['gawd_id'] : '';
1318
+ foreach ($gawd_user_data['gawd_profiles'] as $web_property_name => $web_property) {
1319
+ foreach ($web_property as $profile) {
1320
+ if ($profile['accountId'] == $gawd_user_data['accountId']) {
1321
+ $gawd_user_data['web_property_name'] = $web_property_name;
1322
+ $gawd_user_data['webPropertyId'] = $profile['webPropertyId'];
1323
+ $gawd_user_data['accountId'] = $profile['accountId'];
1324
+ }
1325
+ }
1326
+ }
1327
+ $gawd_user_data['web_property_name'] = isset($_POST['web_property_name']) ? $_POST['web_property_name'] : '';
1328
+ update_option('gawd_user_data', $gawd_user_data);
1329
+ $redirect_url = admin_url() . 'admin.php?page=gawd_settings';
1330
+ //echo '<script>window.location.href="'.$redirect_url.'";</script>';
1331
+ } */
1332
+ if ( isset( $_GET['errorMsg'] ) ) {
1333
+ self::error_message( 'error', 'User does not have sufficient permissions for this account to add filter' );
1334
+ }
1335
+ if ( ! isset( $gawd_user_data['refresh_token'] ) || ( $gawd_user_data['refresh_token'] == '' ) ) {
1336
+ echo '<div class="gawd_auth_wrap"><p class="auth_description">Click <b>Authenticate</b> button and login to your Google account. A window asking for relevant permissions will appear. Click <b>Allow</b> and copy the authentication code from the text input.</p><div id="gawd_auth_url" onclick="gawd_auth_popup(' . GAWD_google_client::create_authentication_url() . ',800,400)" style="cursor: pointer;"><div class="gawd_auth_button">AUTHENTICATE</div><div class="clear"></div></div>';
1337
+ echo '<div id="gawd_auth_code"><form id="gawd_auth_code_paste" action="" method="post">
1338
+ <p style="margin:0;color: #444;">Paste the authentication code from the popup to this input.</p>
1339
+ <input id="gawd_token" type="text">';
1340
+ wp_nonce_field( "gawd_save_form", "gawd_save_form_fild" );
1341
+ echo '</form>
1342
+ <div id="gawd_auth_code_submit">SUBMIT</div></div>';
1343
+ $gawd_own_project = get_option( 'gawd_own_project' );
1344
+ if ( isset( $gawd_own_project ) && $gawd_own_project && intval( $gawd_own_project ) == 1 ) {
1345
+ echo '<form method="post">
1346
+ <div class="gawd_reset_button">
1347
+ <input type="hidden" name="reset_data" id="reset_data"/>
1348
+ <input type="button" class="button_gawd" id="gawd_reset_button" value="RESET"/>
1349
+ </div>
1350
+ </form>';
1351
+ }
1352
+ echo '</div><div id="opacity_div" style="display: none; background-color: rgba(0, 0, 0, 0.2); position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 99998;"></div>
1353
+ <div id="loading_div" style="display:none; text-align: center; position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 99999;">
1354
+ <img src="' . GAWD_URL . '/assets/ajax_loader.gif" style="margin-top: 200px; width:50px;">
1355
+ </div>';
1356
+ } else {
1357
+ if ( $this->manage_ua_code_selection() != 'done' ) {
1358
+ // return;
1359
+ }
1360
+ try {
1361
+ $gawd_client = GAWD_google_client::get_instance();
1362
+ $gawd_client->get_profiles();
1363
+
1364
+ } catch ( Google_Service_Exception $e ) {
1365
+ $errors = $e->getErrors();
1366
+
1367
+ return $errors[0]["message"];
1368
+ } catch ( Exception $e ) {
1369
+ return $e->getMessage();
1370
+ }
1371
+
1372
+ $gawd_alert_remove = isset( $_POST['gawd_alert_remove'] ) ? intval( $_POST['gawd_alert_remove'] ) : false;
1373
+ $gawd_menu_remove = isset( $_POST['gawd_menu_remove'] ) ? intval( $_POST['gawd_menu_remove'] ) : false;
1374
+ $gawd_pushover_remove = isset( $_POST['gawd_pushover_remove'] ) ? intval( $_POST['gawd_pushover_remove'] ) : false;
1375
+ $gawd_email_remove = isset( $_POST['gawd_email_remove'] ) ? intval( $_POST['gawd_email_remove'] ) : false;
1376
+ $gawd_filter_remove = isset( $_POST['gawd_filter_remove'] ) ? intval( $_POST['gawd_filter_remove'] ) : false;
1377
+ if ( $gawd_alert_remove ) {
1378
+ $all_alerts = get_option( 'gawd_alerts' );
1379
+ if ( $all_alerts ) {
1380
+ foreach ( $all_alerts as $alert ) {
1381
+ wp_unschedule_event( wp_next_scheduled( 'gawd_alert_' . $alert['period'] ), 'gawd_alert_' . $alert['period'] );
1382
+ }
1383
+ unset( $all_alerts[ $gawd_alert_remove - 1 ] );
1384
+ update_option( 'gawd_alerts', $all_alerts );
1385
+ }
1386
+ }
1387
+ if ( $gawd_menu_remove ) {
1388
+ $all_menues = get_option( 'gawd_menu_for_user' );
1389
+ if ( $all_menues ) {
1390
+ unset( $all_menues[ $gawd_menu_remove ] );
1391
+ update_option( 'gawd_menu_for_user', $all_menues );
1392
+ }
1393
+ }
1394
+ if ( $gawd_email_remove ) {
1395
+ $all_emails = get_option( 'gawd_email' );
1396
+ if ( $all_emails ) {
1397
+ foreach ( $all_emails as $email ) {
1398
+ wp_unschedule_event( wp_next_scheduled( 'gawd_email_' . $email['period'] ), 'gawd_email_' . $email['period'] );
1399
+ }
1400
+ unset( $all_emails[ $gawd_email_remove - 1 ] );
1401
+ update_option( 'gawd_email', $all_emails );
1402
+ }
1403
+ }
1404
+ if ( $gawd_filter_remove ) {
1405
+ $analytics = $gawd_client->analytics_member;
1406
+ $accountId = $gawd_client->get_profile_accountId();
1407
+ try {
1408
+ $analytics->management_filters->delete( $accountId, $gawd_filter_remove );
1409
+ } catch ( apiServiceException $e ) {
1410
+ print 'There was an Analytics API service error '
1411
+ . $e->getCode() . ':' . $e->getMessage();
1412
+ } catch ( apiException $e ) {
1413
+ print 'There was a general API error '
1414
+ . $e->getCode() . ':' . $e->getMessage();
1415
+ } catch ( Exception $e ) {
1416
+ echo '<script>window.location.href="' . admin_url() . 'admin.php?page=gawd_settings&errorMsg=1#gawd_filters_tab";</script>';
1417
+ }
1418
+ }
1419
+ $gawd_pushover_remove = isset( $_POST['gawd_pushover_remove'] ) ? $_POST['gawd_pushover_remove'] : false;
1420
+ if ( $gawd_pushover_remove ) {
1421
+ $all_pushovers = get_option( 'gawd_pushovers' );
1422
+ if ( $all_pushovers ) {
1423
+ foreach ( $all_pushovers as $pushover ) {
1424
+ wp_unschedule_event( wp_next_scheduled( 'gawd_pushover_' . $pushover['period'] ), 'gawd_pushover_' . $pushover['period'] );
1425
+ }
1426
+ unset( $all_pushovers[ $gawd_pushover_remove - 1 ] );
1427
+ update_option( 'gawd_pushovers', $all_pushovers );
1428
+ }
1429
+ }
1430
+ if ( isset( $_POST['settings_submit'] ) ) {
1431
+ check_admin_referer( 'gawd_save_form', 'gawd_save_form_fild' );
1432
+ $gawd_user_data = get_option( 'gawd_user_data' );
1433
+ $gawd_alert_name = isset( $_POST['gawd_alert_name'] ) ? sanitize_text_field( $_POST['gawd_alert_name'] ) : '';
1434
+ $gawd_alert_period = isset( $_POST['gawd_alert_name'] ) ? sanitize_text_field( $_POST['gawd_alert_period'] ) : '';
1435
+ $gawd_alert_metric = isset( $_POST['gawd_alert_metric'] ) ? sanitize_text_field( $_POST['gawd_alert_metric'] ) : '';
1436
+ $gawd_alert_condition = isset( $_POST['gawd_alert_condition'] ) ? sanitize_text_field( $_POST['gawd_alert_condition'] ) : '';
1437
+ $gawd_alert_value = isset( $_POST['gawd_alert_value'] ) ? sanitize_text_field( $_POST['gawd_alert_value'] ) : '';
1438
+ $gawd_alert_emails = isset( $_POST['gawd_alert_emails'] ) ? sanitize_email( $_POST['gawd_alert_emails'] ) : '';
1439
+ $gawd_alert_view = isset( $_POST['gawd_alert_view'] ) ? sanitize_text_field( $_POST['gawd_alert_view'] ) : '';
1440
+ $alert_view_name = isset( $_POST['alert_view_name'] ) ? sanitize_text_field( $_POST['alert_view_name'] ) : '';
1441
+ if ( $gawd_alert_name != '' && $gawd_alert_period != '' && $gawd_alert_metric != '' && $gawd_alert_condition != '' && $gawd_alert_value != '' && $gawd_alert_emails != '' ) {
1442
+ $saved_alerts = get_option( 'gawd_alerts' );
1443
+ if ( $saved_alerts ) {
1444
+ $gawd_alert_options = array(
1445
+ 'name' => $gawd_alert_name,
1446
+ 'period' => $gawd_alert_period,
1447
+ 'metric' => $gawd_alert_metric,
1448
+ 'condition' => $gawd_alert_condition,
1449
+ 'value' => $gawd_alert_value,
1450
+ 'creation_date' => date( 'Y-m-d' ),
1451
+ 'emails' => $gawd_alert_emails,
1452
+ 'alert_view' => $gawd_alert_view,
1453
+ 'alert_view_name' => $alert_view_name
1454
+ );
1455
+ $saved_alerts[] = $gawd_alert_options;
1456
+ update_option( 'gawd_alerts', $saved_alerts );
1457
+ } else {
1458
+ $gawd_alert_options = array(
1459
+ 0 => array(
1460
+ 'name' => $gawd_alert_name,
1461
+ 'period' => $gawd_alert_period,
1462
+ 'metric' => $gawd_alert_metric,
1463
+ 'condition' => $gawd_alert_condition,
1464
+ 'value' => $gawd_alert_value,
1465
+ 'creation_date' => date( 'Y-m-d' ),
1466
+ 'emails' => $gawd_alert_emails,
1467
+ 'alert_view' => $gawd_alert_view,
1468
+ 'alert_view_name' => $alert_view_name
1469
+ )
1470
+ );
1471
+ update_option( 'gawd_alerts', $gawd_alert_options );
1472
+ }
1473
+ $saved_alerts = get_option( 'gawd_alerts' );
1474
+ if ( $saved_alerts ) {
1475
+ foreach ( $saved_alerts as $alert ) {
1476
+ if ( ! wp_next_scheduled( 'gawd_alert_' . $alert['period'] ) ) {
1477
+ wp_schedule_event( time(), $alert['period'], 'gawd_alert_' . $alert['period'] );
1478
+ }
1479
+ }
1480
+ }
1481
+ }
1482
+ $gawd_pushover_name = isset( $_POST['gawd_pushover_name'] ) ? sanitize_text_field( $_POST['gawd_pushover_name'] ) : '';
1483
+ $gawd_pushover_period = isset( $_POST['gawd_pushover_period'] ) ? sanitize_text_field( $_POST['gawd_pushover_period'] ) : '';
1484
+ $gawd_pushover_metric = isset( $_POST['gawd_pushover_metric'] ) ? sanitize_text_field( $_POST['gawd_pushover_metric'] ) : '';
1485
+ $gawd_pushover_condition = isset( $_POST['gawd_pushover_condition'] ) ? sanitize_text_field( $_POST['gawd_pushover_condition'] ) : '';
1486
+ $gawd_pushover_value = isset( $_POST['gawd_pushover_value'] ) ? intval( $_POST['gawd_pushover_value'] ) : '';
1487
+
1488
+ $gawd_pushover_user_keys = isset( $_POST['gawd_pushover_user_keys'] ) ? sanitize_text_field( $_POST['gawd_pushover_user_keys'] ) : '';
1489
+ $gawd_pushover_view = isset( $_POST['gawd_pushover_view'] ) ? sanitize_text_field( $_POST['gawd_pushover_view'] ) : '';
1490
+ $pushover_view_name = isset( $_POST['pushover_view_name'] ) ? sanitize_text_field( $_POST['pushover_view_name'] ) : '';
1491
+ if ( $gawd_pushover_name != '' && $gawd_pushover_period != '' && $gawd_pushover_metric != '' && $gawd_pushover_condition != '' && $gawd_pushover_value !== '' && $gawd_pushover_user_keys != '' ) {
1492
+ $saved_pushovers = get_option( 'gawd_pushovers' );
1493
+ if ( $saved_pushovers ) {
1494
+ $gawd_pushover_options = array(
1495
+ 'name' => $gawd_pushover_name,
1496
+ 'period' => $gawd_pushover_period,
1497
+ 'metric' => $gawd_pushover_metric,
1498
+ 'condition' => $gawd_pushover_condition,
1499
+ 'value' => $gawd_pushover_value,
1500
+ 'creation_date' => date( 'Y-m-d' ),
1501
+ 'user_key' => $gawd_pushover_user_keys,
1502
+ 'pushover_view' => $gawd_pushover_view,
1503
+ 'pushover_view_name' => $pushover_view_name
1504
+ );
1505
+ $saved_pushovers[] = $gawd_pushover_options;
1506
+ update_option( 'gawd_pushovers', $saved_pushovers );
1507
+ } else {
1508
+ $gawd_pushover_options = array(
1509
+ 0 => array(
1510
+ 'name' => $gawd_pushover_name,
1511
+ 'period' => $gawd_pushover_period,
1512
+ 'metric' => $gawd_pushover_metric,
1513
+ 'condition' => $gawd_pushover_condition,
1514
+ 'value' => $gawd_pushover_value,
1515
+ 'creation_date' => date( 'Y-m-d' ),
1516
+ 'user_key' => $gawd_pushover_user_keys,
1517
+ 'pushover_view' => $gawd_pushover_view,
1518
+ 'pushover_view_name' => $pushover_view_name
1519
+ )
1520
+ );
1521
+ update_option( 'gawd_pushovers', $gawd_pushover_options );
1522
+ }
1523
+ $saved_pushovers = get_option( 'gawd_pushovers' );
1524
+ if ( $saved_pushovers ) {
1525
+
1526
+ foreach ( $saved_pushovers as $pushover ) {
1527
+ $this->gawd_pushover_api( $pushover['user_key'], $pushover['metric'], $pushover['condition'], $pushover['value'] );
1528
+ if ( ! wp_next_scheduled( 'gawd_pushover_' . $pushover['period'] ) ) {
1529
+ wp_schedule_event( time(), $pushover['period'], 'gawd_pushover_' . $pushover['period'] );
1530
+ }
1531
+ }
1532
+ }
1533
+ }
1534
+ $gawd_show_in_dashboard = isset( $_POST['gawd_show_in_dashboard'] ) ? sanitize_text_field( $_POST['gawd_show_in_dashboard'] ) : '';
1535
+
1536
+ $gawd_permissions = isset( $_POST['gawd_permissions'] ) ? $_POST['gawd_permissions'] : array();
1537
+ $gawd_own_project = isset( $_POST['gawd_own_project'] ) ? sanitize_text_field( $_POST['gawd_own_project'] ) : '';
1538
+ $site_speed_rate = isset( $_POST['site_speed_rate'] ) ? intval( $_POST['site_speed_rate'] ) : '1';
1539
+ $post_page_chart = isset( $_POST['post_page_chart'] ) ? sanitize_text_field( $_POST['post_page_chart'] ) : '';
1540
+ $enable_cross_domain = isset( $_POST['enable_cross_domain'] ) ? sanitize_text_field( $_POST['enable_cross_domain'] ) : '';
1541
+ $cross_domains = isset( $_POST['cross_domains'] ) ? sanitize_text_field( $_POST['cross_domains'] ) : '';
1542
+ $default_date = isset( $_POST['default_date'] ) ? $_POST['default_date'] : 'last_7_days';
1543
+ $default_date_format = isset( $_POST['default_date_format'] ) ? $_POST['default_date_format'] : 'ymd_with_week';
1544
+ $enable_hover_tooltip = isset( $_POST['enable_hover_tooltip'] ) ? $_POST['enable_hover_tooltip'] : '';
1545
+ $gawd_backend_roles = isset( $_POST['gawd_backend_roles'] ) ? ( $_POST['gawd_backend_roles'] ) : array();
1546
+ $gawd_frontend_roles = isset( $_POST['gawd_frontend_roles'] ) ? ( $_POST['gawd_frontend_roles'] ) : array();
1547
+ $gawd_post_page_roles = isset( $_POST['gawd_post_page_roles'] ) ? ( $_POST['gawd_post_page_roles'] ) : array();
1548
+ $exclude_events = isset( $_POST['exclude_events'] ) ? sanitize_text_field( $_POST['exclude_events'] ) : array();
1549
+ $gawd_settings_exist = get_option( 'gawd_settings' );
1550
+ $gawd_settings_exist['gawd_show_in_dashboard'] = $gawd_show_in_dashboard;
1551
+ $gawd_settings_exist['site_speed_rate'] = $site_speed_rate;
1552
+ $gawd_settings_exist['post_page_chart'] = $post_page_chart;
1553
+ $gawd_settings_exist['enable_cross_domain'] = $enable_cross_domain;
1554
+ $gawd_settings_exist['cross_domains'] = $cross_domains;
1555
+ $gawd_settings_exist['gawd_backend_roles'] = $gawd_backend_roles;
1556
+ $gawd_settings_exist['gawd_frontend_roles'] = $gawd_frontend_roles;
1557
+ $gawd_settings_exist['gawd_post_page_roles'] = $gawd_post_page_roles;
1558
+ $gawd_settings_exist['default_date'] = $default_date;
1559
+ $gawd_settings_exist['default_date_format'] = $default_date_format;
1560
+ $gawd_settings_exist['enable_hover_tooltip'] = $enable_hover_tooltip;
1561
+ $gawd_settings_exist['exclude_events'] = $exclude_events;
1562
+ $gawd_settings_exist['gawd_permissions'] = $gawd_permissions;
1563
+ update_option( 'gawd_settings', $gawd_settings_exist );
1564
+ $gawd_filter_name = isset( $_POST['gawd_filter_name'] ) ? sanitize_text_field( $_POST['gawd_filter_name'] ) : '';
1565
+ $gawd_filter_type = isset( $_POST['gawd_filter_type'] ) ? sanitize_text_field( $_POST['gawd_filter_type'] ) : '';
1566
+ $gawd_filter_value = isset( $_POST['gawd_filter_value'] ) ? $gawd_filter_type == 'GEO_IP_ADDRESS' ? ( $_POST['gawd_filter_value'] ) : sanitize_text_field( $_POST['gawd_filter_value'] ) : '';
1567
+ if ( $gawd_filter_name != '' && $gawd_filter_type != '' && $gawd_filter_value != '' ) {
1568
+ $gawd_client->add_filter( $gawd_filter_name, $gawd_filter_type, $gawd_filter_value );
1569
+ }
1570
+ add_option( "gawd_save_settings", 1 );
1571
+ }
1572
+ if ( get_option( 'gawd_save_settings' ) == 1 ) {
1573
+ $this->gawd_admin_notice( 'Your changes have been saved successfully.', 'success is-dismissible' );
1574
+ }
1575
+ delete_option( 'gawd_save_settings' );
1576
+ require_once( 'admin/pages/settings.php' );
1577
+ }
1578
+ }
1579
+
1580
+ public function reset_user_data() {
1581
+ delete_option( "gawd_credentials" );
1582
+ $credentials['project_id'] = '115052745574-5vbr7tci4hjkr9clkflmnpto5jisgstg.apps.googleusercontent.com';
1583
+ $credentials['project_secret'] = 'wtNiu3c_bA_g7res6chV0Trt';
1584
+ update_option( 'gawd_credentials', $credentials );
1585
+ delete_option( 'gawd_own_project' );
1586
+ delete_option( 'gawd_user_data' );
1587
+
1588
+ }
1589
+
1590
+ public function gawd_display_tracking_page() {
1591
+ global $gawd_client, $gawd_user_data;
1592
+ $gawd_client = GAWD_google_client::get_instance();
1593
+ $gawd_user_data = get_option( 'gawd_user_data' );
1594
+ $add_dimension_value = isset( $_POST['add_dimension_value'] ) ? $_POST['add_dimension_value'] : '';
1595
+ if ( isset( $_GET['errorMsg'] ) ) {
1596
+ self::error_message( 'error', 'User does not have sufficient permissions for this account' );
1597
+ }
1598
+ if ( isset( $_POST['add_property'] ) ) {
1599
+ $gawd_account_select = isset( $_POST['gawd_account_select'] ) ? $_POST['gawd_account_select'] : '';
1600
+ $gawd_property_name = isset( $_POST['gawd_property_name'] ) ? $_POST['gawd_property_name'] : '';
1601
+ if ( $gawd_account_select && $gawd_property_name ) {
1602
+ $err_msg = $gawd_client->add_webproperty( $gawd_account_select, $gawd_property_name );
1603
+ $redirect_url = admin_url() . 'admin.php?page=gawd_tracking&enableTracking=1';
1604
+ if ( $err_msg ) {
1605
+ $redirect_url .= '&errorMsg=1';
1606
+ }
1607
+ echo '<script>window.location.href="' . $redirect_url . '";</script>';
1608
+ }
1609
+ }
1610
+ if ( isset( $_POST['lock_property'] ) ) {
1611
+ $property = $gawd_client->property_exists();
1612
+ $gawd_property_select = $_POST['gawd_property_select'];
1613
+ foreach ( $property as $property_select ) {
1614
+ if ( $property_select['id'] == $gawd_property_select ) {
1615
+ $property = $property_select;
1616
+ break;
1617
+ }
1618
+ }
1619
+ $gawd_user_data['webPropertyId'] = $property['id'];
1620
+ $gawd_user_data['default_webPropertyId'] = $property['id'];
1621
+ $gawd_user_data['accountId'] = $property['accountId'];
1622
+ $gawd_user_data['default_accountId'] = $property['accountId'];
1623
+ $gawd_user_data['gawd_id'] = $property['defaultProfileId'];
1624
+ update_option( 'gawd_user_data', $gawd_user_data );
1625
+ }
1626
+ if ( $this->manage_ua_code_selection_tracking() != 'done' ) {
1627
+ $redirect_url = admin_url() . 'admin.php?page=gawd_tracking';
1628
+
1629
+ //echo '<script>window.location.href="'.$redirect_url.'";</script>';
1630
+ return;
1631
+ }
1632
+
1633
+ if ( $add_dimension_value == 'add_dimension_Logged_in' ) {
1634
+ $id = isset( $_POST['gawd_custom_dimension_id'] ) ? ( $_POST['gawd_custom_dimension_id'] + 1 ) : 1;
1635
+ $gawd_client->add_custom_dimension( 'Logged in', $id );
1636
+ $settings = get_option( 'gawd_settings' );
1637
+ $optname = 'gawd_custom_dimension_Logged_in';
1638
+ $settings[ $optname ] = isset( $_POST['gawd_tracking_enable'] ) ? $_POST['gawd_tracking_enable'] : '';
1639
+ update_option( 'gawd_settings', $settings );
1640
+
1641
+ }
1642
+ if ( $add_dimension_value == 'add_dimension_Post_type' ) {
1643
+ $id = isset( $_POST['gawd_custom_dimension_id'] ) ? ( $_POST['gawd_custom_dimension_id'] + 1 ) : 1;
1644
+ $gawd_client->add_custom_dimension( 'Post type', $id );
1645
+ $settings = get_option( 'gawd_settings' );
1646
+ $optname = 'gawd_custom_dimension_Post_type';
1647
+ $settings[ $optname ] = isset( $_POST['gawd_tracking_enable'] ) ? $_POST['gawd_tracking_enable'] : '';
1648
+ update_option( 'gawd_settings', $settings );
1649
+
1650
+ }
1651
+ if ( $add_dimension_value == 'add_dimension_Author' ) {
1652
+ $id = isset( $_POST['gawd_custom_dimension_id'] ) ? ( $_POST['gawd_custom_dimension_id'] + 1 ) : 1;
1653
+ $gawd_client->add_custom_dimension( 'Author', $id );
1654
+ $settings = get_option( 'gawd_settings' );
1655
+ $optname = 'gawd_custom_dimension_Author';
1656
+ $settings[ $optname ] = isset( $_POST['gawd_tracking_enable'] ) ? $_POST['gawd_tracking_enable'] : '';
1657
+ update_option( 'gawd_settings', $settings );
1658
+
1659
+ }
1660
+ if ( $add_dimension_value == 'add_dimension_Category' ) {
1661
+ $id = isset( $_POST['gawd_custom_dimension_id'] ) ? ( $_POST['gawd_custom_dimension_id'] + 1 ) : 1;
1662
+ $gawd_client->add_custom_dimension( 'Category', $id );
1663
+ $settings = get_option( 'gawd_settings' );
1664
+ $optname = 'gawd_custom_dimension_Category';
1665
+
1666
+ $settings[ $optname ] = isset( $_POST['gawd_tracking_enable'] ) ? $_POST['gawd_tracking_enable'] : '';
1667
+ update_option( 'gawd_settings', $settings );
1668
+ }
1669
+ if ( $add_dimension_value == 'add_dimension_Published_Month' ) {
1670
+ $id = isset( $_POST['gawd_custom_dimension_id'] ) ? ( $_POST['gawd_custom_dimension_id'] + 1 ) : 1;
1671
+ $gawd_client->add_custom_dimension( 'Published Month', $id );
1672
+ $settings = get_option( 'gawd_settings' );
1673
+ $optname = 'gawd_custom_dimension_Published_Month';
1674
+ $settings[ $optname ] = isset( $_POST['gawd_tracking_enable'] ) ? $_POST['gawd_tracking_enable'] : '';
1675
+ update_option( 'gawd_settings', $settings );
1676
+
1677
+ }
1678
+ if ( $add_dimension_value == 'add_dimension_Published_Year' ) {
1679
+ $id = isset( $_POST['gawd_custom_dimension_id'] ) ? ( $_POST['gawd_custom_dimension_id'] + 1 ) : 1;
1680
+ $gawd_client->add_custom_dimension( 'Published Year', $id );
1681
+ $settings = get_option( 'gawd_settings' );
1682
+ $optname = 'gawd_custom_dimension_Published_Year';
1683
+ $settings[ $optname ] = isset( $_POST['gawd_tracking_enable'] ) ? $_POST['gawd_tracking_enable'] : '';
1684
+ update_option( 'gawd_settings', $settings );
1685
+
1686
+ }
1687
+ if ( $add_dimension_value == 'add_dimension_Tags' ) {
1688
+ $id = isset( $_POST['gawd_custom_dimension_id'] ) ? ( $_POST['gawd_custom_dimension_id'] + 1 ) : 1;
1689
+ $gawd_client->add_custom_dimension( 'Tags', $id );
1690
+ $settings = get_option( 'gawd_settings' );
1691
+ $optname = 'gawd_custom_dimension_Tags';
1692
+ $settings[ $optname ] = isset( $_POST['gawd_tracking_enable'] ) ? $_POST['gawd_tracking_enable'] : '';
1693
+ update_option( 'gawd_settings', $settings );
1694
+ }
1695
+ if ( isset( $_POST['settings_submit'] ) ) {
1696
+ check_admin_referer( 'gawd_save_form', 'gawd_save_form_fild' );
1697
+ $gawd_user_data = get_option( 'gawd_user_data' );
1698
+ $gawd_file_formats = isset( $_POST['gawd_file_formats'] ) ? sanitize_text_field( $_POST['gawd_file_formats'] ) : '';
1699
+ $gawd_anonymize = isset( $_POST['gawd_anonymize'] ) ? sanitize_text_field( $_POST['gawd_anonymize'] ) : '';
1700
+ $gawd_tracking_enable = isset( $_POST['gawd_tracking_enable'] ) ? sanitize_text_field( $_POST['gawd_tracking_enable'] ) : '';
1701
+ $gawd_outbound = isset( $_POST['gawd_outbound'] ) ? sanitize_text_field( $_POST['gawd_outbound'] ) : '';
1702
+ $gawd_enhanced = isset( $_POST['gawd_enhanced'] ) ? sanitize_text_field( $_POST['gawd_enhanced'] ) : '';
1703
+ if ( $add_dimension_value == '' ) {
1704
+ $gawd_cd_Logged_in = isset( $_POST['gawd_custom_dimension_Logged_in'] ) ? sanitize_text_field( $_POST['gawd_custom_dimension_Logged_in'] ) : '';
1705
+ $gawd_cd_Post_type = isset( $_POST['gawd_custom_dimension_Post_type'] ) ? sanitize_text_field( $_POST['gawd_custom_dimension_Post_type'] ) : '';
1706
+ $gawd_cd_Author = isset( $_POST['gawd_custom_dimension_Author'] ) ? sanitize_text_field( $_POST['gawd_custom_dimension_Author'] ) : '';
1707
+ $gawd_cd_Category = isset( $_POST['gawd_custom_dimension_Category'] ) ? sanitize_text_field( $_POST['gawd_custom_dimension_Category'] ) : '';
1708
+ $gawd_cd_Published_Month = isset( $_POST['gawd_custom_dimension_Published_Month'] ) ? sanitize_text_field( $_POST['gawd_custom_dimension_Published_Month'] ) : '';
1709
+ $gawd_cd_Published_Year = isset( $_POST['gawd_custom_dimension_Published_Year'] ) ? sanitize_text_field( $_POST['gawd_custom_dimension_Published_Year'] ) : '';
1710
+ $gawd_cd_Tags = isset( $_POST['gawd_custom_dimension_Tags'] ) ? sanitize_text_field( $_POST['gawd_custom_dimension_Tags'] ) : '';
1711
+ $gawd_settings['gawd_custom_dimension_Logged_in'] = $gawd_cd_Logged_in;
1712
+ $gawd_settings['gawd_custom_dimension_Post_type'] = $gawd_cd_Post_type;
1713
+ $gawd_settings['gawd_custom_dimension_Author'] = $gawd_cd_Author;
1714
+ $gawd_settings['gawd_custom_dimension_Category'] = $gawd_cd_Category;
1715
+ $gawd_settings['gawd_custom_dimension_Published_Month'] = $gawd_cd_Published_Month;
1716
+ $gawd_settings['gawd_custom_dimension_Published_Year'] = $gawd_cd_Published_Year;
1717
+ $gawd_settings['gawd_custom_dimension_Tags'] = $gawd_cd_Tags;
1718
+ }
1719
+ $gawd_excluded_roles = isset( $_POST['gawd_excluded_roles'] ) ? $_POST['gawd_excluded_roles'] : array();
1720
+ $gawd_excluded_users = isset( $_POST['gawd_excluded_users'] ) ? $_POST['gawd_excluded_users'] : array();
1721
+ $gawd_settings = get_option( 'gawd_settings' );
1722
+ $gawd_settings['gawd_file_formats'] = $gawd_file_formats;
1723
+ $gawd_settings['gawd_anonymize'] = $gawd_anonymize;
1724
+ $gawd_settings['gawd_file_formats'] = $gawd_file_formats;
1725
+ $gawd_settings['gawd_tracking_enable'] = $gawd_tracking_enable;
1726
+ $gawd_settings['gawd_outbound'] = $gawd_outbound;
1727
+ $gawd_settings['gawd_enhanced'] = $gawd_enhanced;
1728
+ $gawd_settings['gawd_excluded_roles'] = $gawd_excluded_roles;
1729
+ $gawd_settings['gawd_excluded_users'] = $gawd_excluded_users;
1730
+ update_option( 'gawd_settings', $gawd_settings );
1731
+ add_option( "gawd_save_tracking", 1 );
1732
+ }
1733
+ if ( get_option( 'gawd_save_tracking' ) == 1 ) {
1734
+ $this->gawd_admin_notice( 'Your changes have been saved successfully.', 'success is-dismissible' );
1735
+ }
1736
+ delete_option( 'gawd_save_tracking' );
1737
+ $gawd_settings = get_option( 'gawd_settings' );
1738
+ if ( $add_dimension_value != '' ) {
1739
+ $redirect_url = admin_url() . 'admin.php?page=gawd_tracking';
1740
+ echo '<script>window.location.href="' . $redirect_url . '";</script>';
1741
+ }
1742
+ require_once( 'admin/pages/tracking.php' );
1743
+ }
1744
+
1745
+ public function gawd_my_schedule() {
1746
+ $schedules['gawd_weekly'] = array(
1747
+ 'interval' => 604800,
1748
+ 'display' => __( 'Every week' )
1749
+ );
1750
+ $schedules['gawd_monthly'] = array(
1751
+ 'interval' => 18748800,
1752
+ 'display' => __( 'Every month' )
1753
+ );
1754
+
1755
+ return $schedules;
1756
+ }
1757
+
1758
+ public function gawd_pushover_api( $user_key, $metric, $condition, $value ) {
1759
+ $ch = curl_init();
1760
+ curl_setopt( $ch, CURLOPT_URL, "https://api.pushover.net/1/messages.json" );
1761
+ curl_setopt( $ch, CURLOPT_POSTFIELDS, array(
1762
+ "token" => "aJBDhTfhR87EaTzs7wpx1MMKwboBjB",
1763
+ "user" => $user_key,
1764
+ "message" => 'The ' . $metric . ' less ' . $value
1765
+ ) );
1766
+ // curl_setopt($ch, CURLOPT_SAFE_UPLOAD, true);
1767
+ curl_exec( $ch );
1768
+ curl_close( $ch );
1769
+ }
1770
+
1771
+ public function gawd_pushover_daily() {
1772
+ require_once( GAWD_DIR . '/admin/gawd_google_class.php' );
1773
+ $gawd_client = GAWD_google_client::get_instance();
1774
+ $pushovers = get_option( 'gawd_pushovers' );
1775
+ $data = '';
1776
+ $condition = '';
1777
+
1778
+ foreach ( $pushovers as $pushover ) {
1779
+ if ( isset( $pushover['period'] ) && $pushover['period'] == 'daily' ) {
1780
+ //pls send email if ....
1781
+ $date = date( 'Y-m-d', strtotime( 'yesterday' ) );
1782
+ $data = $gawd_client->get_data_alert( 'ga:' . $pushover['metric'], 'date', $date, $date, $pushover['pushover_view'] );
1783
+ $pushover_condition = $pushover['condition'] == 'greater' ? '>' : '<';
1784
+ if ( ! eval( $data . $pushover_condition . $pushover['value'] . ';' ) ) {
1785
+ $cond = ' ' . $pushover['condition'] . ' than';
1786
+ $this->gawd_pushover_api( $pushover['user_key'], $pushover['metric'], $pushover['condition'], $pushover['value'] );
1787
+ }
1788
+ }
1789
+ }
1790
+ }
1791
+
1792
+ public function gawd_pushover_weekly() {
1793
+ require_once( GAWD_DIR . '/admin/gawd_google_class.php' );
1794
+ $gawd_client = GAWD_google_client::get_instance();
1795
+ $pushovers = get_option( 'gawd_pushovers' );
1796
+ $data = '';
1797
+ $condition = '';
1798
+ foreach ( $pushovers as $pushover ) {
1799
+ if ( isset( $pushover['period'] ) && $pushover['period'] == 'gawd_weekly' ) {
1800
+ //pls send email if ....
1801
+ $start_date = date( 'Y-m-d', strtotime( 'last week -1 day' ) );
1802
+ $end_date = date( 'l' ) != 'Sunday' ? date( 'Y-m-d', strtotime( 'last sunday -1 day' ) ) : date( 'Y-m-d', strtotime( '-1 day' ) );
1803
+ $data = $gawd_client->get_data_alert( 'ga:' . $pushover['metric'], 'date', $start_date, $end_date, $pushover['pushover_view'] );
1804
+ $pushover_condition = $pushover['condition'] == 'greater' ? '>' : '<';
1805
+ if ( ! eval( $data . $pushover_condition . $pushover['value'] . ';' ) ) {
1806
+ $cond = ' ' . $pushover['condition'] . ' than';
1807
+ $this->gawd_pushover_api( $pushover['user_key'], $pushover['metric'], $pushover['condition'], $pushover['value'] );
1808
+ }
1809
+ }
1810
+ }
1811
+ }
1812
+
1813
+ public function gawd_pushover_monthly() {
1814
+ require_once( GAWD_DIR . '/admin/gawd_google_class.php' );
1815
+ $gawd_client = GAWD_google_client::get_instance();
1816
+ $pushovers = get_option( 'gawd_pushovers' );
1817
+ $data = '';
1818
+ $condition = '';
1819
+ foreach ( $pushovers as $pushover ) {
1820
+ if ( isset( $pushover['period'] ) && $pushover['period'] == 'gawd_monthly' ) {
1821
+ //pls send email if ....
1822
+ $end_date = date( 'Y-m-t', strtotime( 'last month' ) );
1823
+ $start_date = date( 'Y-m-01', strtotime( 'last month' ) );
1824
+ $data = $gawd_client->get_data_alert( 'ga:' . $pushover['metric'], 'date', $start_date, $end_date, $pushover['pushover_view'] );
1825
+ $pushover_condition = $pushover['condition'] == 'greater' ? '>' : '<';
1826
+ if ( ! eval( $data . $pushover_condition . $pushover['value'] . ';' ) ) {
1827
+ $cond = ' ' . $pushover['condition'] . ' than';
1828
+ $this->gawd_pushover_api( $pushover['user_key'], $pushover['metric'], $pushover['condition'], $pushover['value'] );
1829
+ }
1830
+ }
1831
+ }
1832
+ }
1833
+
1834
+ public function gawd_alert_daily() {
1835
+ require_once( GAWD_DIR . '/admin/gawd_google_class.php' );
1836
+ $gawd_client = GAWD_google_client::get_instance();
1837
+ $alerts = get_option( 'gawd_alerts' );
1838
+ $data = '';
1839
+ $condition = '';
1840
+ $email_from = get_option( 'admin_email' );
1841
+ foreach ( $alerts as $alert ) {
1842
+ if ( isset( $alert['period'] ) && $alert['period'] == 'daily' ) {
1843
+ //pls send email if ....
1844
+ $date = date( 'Y-m-d', strtotime( 'yesterday' ) );
1845
+ $data = $gawd_client->get_data_alert( 'ga:' . $alert['metric'], 'date', $date, $date, $alert['alert_view'] );
1846
+ $alert_condition = $alert['condition'] == 'greater' ? '>' : '<';
1847
+ $color_condition = $alert['condition'] == 'greater' ? 'rgb(157, 207, 172)' : 'rgb(251, 133, 131)';
1848
+ if ( ! eval( $data . $alert_condition . $alert['value'] . ';' ) ) {
1849
+ $cond = ' ' . $alert['condition'] . ' than';
1850
+ $headers = array();
1851
+ $headers[] = 'From: <' . $email_from . '>';
1852
+ $headers[] = 'Content-Type: text/html';
1853
+ $content = '<div style="font-family: sans-serif;width:100%;height:50px;background-color:#FB8583;font-size:20px;color:#fff;margin-bottom:20px;text-align:center;line-height:50px">Google Analytics WD Alert!</div><p style="color:#808080;text-align: center;font-size: 26px;font-family: sans-serif;">' . preg_replace( '!\s+!', ' ', trim( ucfirst( preg_replace( '/([A-Z])/', ' $1', $alert['metric'] ) ) ) ) . ' in <a style="text-decoration:none;color:rgba(124,181,216,1);font-family: sans-serif;" href="' . $alert["alert_view_name"] . '" target="_blank">' . $alert["alert_view_name"] . '</a> are <span style="color:' . $color_condition . '">' . $cond . '</span></p><p style="color:rgba(124,181,216,1);font-size: 26px;font-family: sans-serif; text-align: center;">' . $alert['value'] . '</p>';
1854
+ wp_mail( $alert['emails'], 'Analytics Alert', $content, $headers );
1855
+ }
1856
+ }
1857
+ }
1858
+ }
1859
+
1860
+ public function gawd_alert_weekly() {
1861
+ require_once( GAWD_DIR . '/admin/gawd_google_class.php' );
1862
+ $gawd_client = GAWD_google_client::get_instance();
1863
+ $alerts = get_option( 'gawd_alerts' );
1864
+ $data = '';
1865
+ $condition = '';
1866
+ $email_from = get_option( 'admin_email' );
1867
+ foreach ( $alerts as $alert ) {
1868
+ if ( isset( $alert['period'] ) && $alert['period'] == 'gawd_weekly' ) {
1869
+ //pls send email if ....
1870
+ $start_date = date( 'Y-m-d', strtotime( 'last week -1 day' ) );
1871
+ $end_date = date( 'l' ) != 'Sunday' ? date( 'Y-m-d', strtotime( 'last sunday -1 day' ) ) : date( 'Y-m-d', strtotime( '-1 day' ) );
1872
+ $data = $gawd_client->get_data_alert( 'ga:' . $alert['metric'], 'date', $start_date, $end_date, $alert['alert_view'] );
1873
+ $alert_condition = $alert['condition'] == 'greater' ? '>' : '<';
1874
+ if ( ! eval( $data . $alert_condition . $alert['value'] . ';' ) ) {
1875
+ $cond = ' ' . $alert['condition'] . ' than';
1876
+ $headers = array();
1877
+ $headers[] = 'From: <' . $email_from . '>';
1878
+ $headers[] = 'Content-Type: text/html';
1879
+ $content = '<div style="font-family: sans-serif;width:100%;height:50px;background-color:#FB8583;font-size:20px;color:#fff;margin-bottom:20px;text-align:center;line-height:50px">Google Analytics WD Alert!</div><p style="color:#808080;text-align: center;font-size: 26px;font-family: sans-serif;">' . preg_replace( '!\s+!', ' ', trim( ucfirst( preg_replace( '/([A-Z])/', ' $1', $alert['metric'] ) ) ) ) . ' in <a style="text-decoration:none;color:rgba(124,181,216,1);font-family: sans-serif;" href="' . $alert["alert_view_name"] . '" target="_blank">' . $alert["alert_view_name"] . '</a> are <span style="color:' . $color_condition . '">' . $cond . '</span></p><p style="color:rgba(124,181,216,1);font-size: 26px;font-family: sans-serif; text-align: center;">' . $alert['value'] . '</p>';
1880
+ wp_mail( $alert['emails'], 'Analytics Alert', $content, $headers );
1881
+ }
1882
+ }
1883
+ }
1884
+ }
1885
+
1886
+ public function gawd_alert_monthly() {
1887
+ require_once( GAWD_DIR . '/admin/gawd_google_class.php' );
1888
+ $gawd_client = GAWD_google_client::get_instance();
1889
+ $alerts = get_option( 'gawd_alerts' );
1890
+ $data = '';
1891
+ $email_from = get_option( 'admin_email' );
1892
+ foreach ( $alerts as $alert ) {
1893
+ if ( isset( $alert['period'] ) && $alert['period'] == 'gawd_monthly' ) {
1894
+ //pls send email if ....
1895
+ $end_date = date( 'Y-m-t', strtotime( 'last month' ) );
1896
+ $start_date = date( 'Y-m-01', strtotime( 'last month' ) );
1897
+ $data = $gawd_client->get_data_alert( 'ga:' . $alert['metric'], 'date', $start_date, $end_date, $alert['alert_view'] );
1898
+ $alert_condition = $alert['condition'] == 'greater' ? '>' : '<';
1899
+ if ( ! eval( $data . $alert_condition . $alert['value'] . ';' ) ) {
1900
+ $cond = ' ' . $alert['condition'] . ' than';
1901
+ $headers = array();
1902
+ $headers[] = 'From: <' . $email_from . '>';
1903
+ $headers[] = 'Content-Type: text/html';
1904
+ $content = '<div style="font-family: sans-serif;width:100%;height:50px;background-color:#FB8583;font-size:20px;color:#fff;margin-bottom:20px;text-align:center;line-height:50px">Google Analytics WD Alert!</div><p style="color:#808080;text-align: center;font-size: 26px;font-family: sans-serif;">' . preg_replace( '!\s+!', ' ', trim( ucfirst( preg_replace( '/([A-Z])/', ' $1', $alert['metric'] ) ) ) ) . ' in <a style="text-decoration:none;color:rgba(124,181,216,1);font-family: sans-serif;" href="' . $alert["alert_view_name"] . '" target="_blank">' . $alert["alert_view_name"] . '</a> are <span style="color:' . $color_condition . '">' . $cond . '</span></p><p style="color:rgba(124,181,216,1);font-size: 26px;font-family: sans-serif; text-align: center;">' . $alert['value'] . '</p>';
1905
+ wp_mail( $alert['emails'], 'Analytics Alert', $content, $headers );
1906
+ }
1907
+ }
1908
+ }
1909
+ }
1910
+
1911
+ public function wd_dashboard_widget() {
1912
+ global $gawd_client, $gawd_user_data;
1913
+ $gawd_client = GAWD_google_client::get_instance();
1914
+ $profiles = $gawd_client->get_profiles();
1915
+ $gawd_user_data = get_option( 'gawd_user_data' );
1916
+ if ( isset( $_POST['gawd_id'] ) ) {
1917
+ $gawd_user_data['gawd_id'] = isset( $_POST['gawd_id'] ) ? $_POST['gawd_id'] : '';
1918
+ foreach ( $gawd_user_data['gawd_profiles'] as $web_property_name => $web_property ) {
1919
+ foreach ( $web_property as $profile ) {
1920
+ if ( $profile['id'] == $gawd_user_data['gawd_id'] ) {
1921
+ $gawd_user_data['web_property_name'] = $web_property_name;
1922
+ $gawd_user_data['webPropertyId'] = $profile['webPropertyId'];
1923
+ $gawd_user_data['accountId'] = $profile['accountId'];
1924
+ }
1925
+ }
1926
+ }
1927
+ $gawd_user_data['web_property_name'] = isset( $_POST['web_property_name'] ) ? $_POST['web_property_name'] : '';
1928
+ update_option( 'gawd_user_data', $gawd_user_data );
1929
+ }
1930
+ require_once( 'admin/pages/dashboard_widget.php' );
1931
+ }
1932
+
1933
+ public function google_analytics_wd_dashboard_widget() {
1934
+ $gawd_settings = get_option( 'gawd_settings' );
1935
+ $gawd_backend_roles = isset( $gawd_settings['gawd_backend_roles'] ) ? $gawd_settings['gawd_backend_roles'] : array();
1936
+ $roles = $this->get_current_user_role();
1937
+
1938
+ if ( isset( $gawd_settings['gawd_show_in_dashboard'] ) && $gawd_settings['gawd_show_in_dashboard'] == 'on' ) {
1939
+ if ( in_array( $roles, $gawd_backend_roles ) || current_user_can( 'manage_options' ) ) {
1940
+ wp_add_dashboard_widget( 'wd_dashboard_widget', 'WD Google Analytics', array(
1941
+ $this,
1942
+ 'wd_dashboard_widget'
1943
+ ) );
1944
+ }
1945
+ }
1946
+ }
1947
+
1948
+ public function show_data( $params = array() ) {
1949
+ /* if (isset($_REQUEST['security'])) {
1950
+ check_ajax_referer('gawd_admin_page_nonce', 'security');
1951
+ } else {
1952
+ check_admin_referer('gawd_save_form', 'gawd_save_form_fild');
1953
+ } */
1954
+ require_once( GAWD_DIR . '/admin/gawd_google_class.php' );
1955
+ $return = true;
1956
+ if ( $params == '' ) {
1957
+ $params = $_POST;
1958
+ $return = false;
1959
+ }
1960
+ $gawd_client = GAWD_google_client::get_instance();
1961
+ $start_date = isset( $params["start_date"] ) && $params["start_date"] != '' ? $params["start_date"] : date( 'Y-m-d', strtotime( '-7 days' ) );
1962
+ $end_date = isset( $params["end_date"] ) && $params["end_date"] != '' ? $params["end_date"] : date( 'Y-m-d' );
1963
+ $metric = isset( $params["metric"] ) ? $params["metric"] : 'ga:sessions';
1964
+ $metric = is_array( $metric ) ? count( $metric ) > 1 ? implode( ",", $metric ) : $metric[0] : $metric;
1965
+ $dimension = isset( $params["dimension"] ) ? $params["dimension"] : 'date';
1966
+
1967
+ $country_filter = isset( $params["country_filter"] ) ? $params["country_filter"] : '';
1968
+ $geo_type = isset( $params["geo_type"] ) ? $params["geo_type"] : '';
1969
+ $filter_type = isset( $params["filter_type"] ) && $params["filter_type"] != '' ? $params["filter_type"] : '';
1970
+ $custom = isset( $params["custom"] ) && $params["custom"] != '' ? $params["custom"] : '';
1971
+ $same_dimension = $dimension;
1972
+
1973
+ $dimension = $filter_type != '' && $dimension == 'date' ? $filter_type : $dimension;
1974
+ if ( $dimension == 'week' || $dimension == 'month' ) {
1975
+ $same_dimension = $dimension;
1976
+ }
1977
+
1978
+
1979
+ $timezone = isset( $params["timezone"] ) && $params["timezone"] != '' ? $params["timezone"] : 0;
1980
+ if ( $dimension == 'pagePath' || $dimension == 'PagePath' || $dimension == 'landingPagePath' || $dimension == 'LandingPagePath' ) {
1981
+ if ( get_transient( 'gawd-' . $gawd_client->get_profile_id() . '-' . $dimension . '-' . $start_date . '-' . $end_date ) ) {
1982
+ $grid_data = get_transient( 'gawd-' . $gawd_client->get_profile_id() . '-' . $dimension . '-' . $start_date . '-' . $end_date );
1983
+ } else {
1984
+ $grid_data = $gawd_client->get_page_data( $dimension, $start_date, $end_date, $timezone );
1985
+ }
1986
+ if ( $return ) {
1987
+ return $grid_data;
1988
+ }
1989
+ echo $grid_data;
1990
+ die();
1991
+ } elseif ( $dimension == 'goals' ) {
1992
+ if ( get_transient( 'gawd-' . $gawd_client->get_profile_id() . '-' . $dimension . '-' . $start_date . '-' . $end_date ) ) {
1993
+ $goal_data = get_transient( 'gawd-' . $gawd_client->get_profile_id() . '-' . $dimension . '-' . $start_date . '-' . $end_date );
1994
+ } else {
1995
+ $goal_data = $gawd_client->get_goal_data( 'date', $start_date, $end_date, $timezone, $same_dimension );
1996
+ }
1997
+ if ( $return ) {
1998
+ return $goal_data;
1999
+ }
2000
+ echo $goal_data;
2001
+ die();
2002
+ } elseif ( ( $dimension == 'region' || $dimension == 'city' ) || ( $dimension == 'Region' || $dimension == 'City' ) ) {
2003
+ if ( get_transient( 'gawd-' . $gawd_client->get_profile_id() . '-' . $country_filter . '-' . $start_date . '-' . $end_date ) ) {
2004
+ $chart_data = get_transient( 'gawd-' . $gawd_client->get_profile_id() . '-' . $country_filter . '-' . $start_date . '-' . $end_date );
2005
+ } else {
2006
+
2007
+ $chart_data = $gawd_client->get_country_data( $metric, $dimension, $start_date, $end_date, $country_filter, $geo_type, $timezone );
2008
+ }
2009
+ if ( $return ) {
2010
+ return $chart_data;
2011
+ }
2012
+ echo $chart_data;
2013
+ die();
2014
+ } else {
2015
+ if ( $custom != '' ) {
2016
+ $chart_data = $gawd_client->get_data( $metric, $dimension, $start_date, $end_date, $filter_type, $timezone, $same_dimension );
2017
+ } else {
2018
+ if ( $dimension == 'siteSpeed' ) {
2019
+ if ( get_transient( 'gawd-' . $gawd_client->get_profile_id() . '-' . $same_dimension . '_' . $filter_type . '-' . $start_date . '-' . $end_date ) ) {
2020
+ $chart_data = get_transient( 'gawd-' . $gawd_client->get_profile_id() . '-' . $dimension . '-' . $start_date . '-' . $end_date );
2021
+ } else {
2022
+ $chart_data = $gawd_client->get_data( $metric, $dimension, $start_date, $end_date, $filter_type, $timezone, $same_dimension );
2023
+ }
2024
+ if ( $return ) {
2025
+ return $chart_data;
2026
+ }
2027
+ } else {
2028
+
2029
+ /* if (get_transient('gawd-' . $gawd_client->get_profile_id() . '-' . $dimension . '-' . $start_date . '-' . $end_date)) {
2030
+ $chart_data = get_transient('gawd-' . $gawd_client->get_profile_id() . '-' . $dimension . '-' . $start_date . '-' . $end_date);
2031
+ } */
2032
+ //else {
2033
+
2034
+ $chart_data = $gawd_client->get_data( $metric, $dimension, $start_date, $end_date, $filter_type, $timezone, $same_dimension );
2035
+ //}
2036
+ if ( $return ) {
2037
+ return $chart_data;
2038
+ }
2039
+ }
2040
+ }
2041
+ echo $chart_data;
2042
+ die();
2043
+ }
2044
+ }
2045
+
2046
+ public function show_data_compact() {
2047
+ check_ajax_referer( 'gawd_admin_page_nonce', 'security' );
2048
+ require_once( GAWD_DIR . '/admin/gawd_google_class.php' );
2049
+ $gawd_client = GAWD_google_client::get_instance();
2050
+ $start_date = isset( $_POST["start_date"] ) && $_POST["start_date"] != '' ? $_POST["start_date"] : date( 'Y-m-d', strtotime( '-30 days' ) );
2051
+ $end_date = isset( $_POST["end_date"] ) && $_POST["end_date"] != '' ? $_POST["end_date"] : date( 'Y-m-d' );
2052
+ $metric = isset( $_POST["metric"] ) ? $_POST["metric"] : 'sessions';
2053
+ $metric = is_array( $metric ) ? count( $metric ) > 1 ? implode( ",", $metric ) : $metric[0] : 'ga:' . $metric;
2054
+ $dimension = isset( $_POST["dimension"] ) ? $_POST["dimension"] : 'date';
2055
+ $timezone = isset( $_POST["timezone"] ) ? $_POST["timezone"] : 0;
2056
+ if ( get_transient( 'gawd-compact-' . $gawd_client->get_profile_id() . '-' . $dimension . '-' . $start_date . '-' . $end_date ) ) {
2057
+ $chart_data = get_transient( 'gawd-compact-' . $gawd_client->get_profile_id() . '-' . $dimension . '-' . $start_date . '-' . $end_date );
2058
+ } else {
2059
+ $chart_data = $gawd_client->get_data_compact( $metric, $dimension, $start_date, $end_date, $timezone );
2060
+ }
2061
+ echo $chart_data;
2062
+ die();
2063
+ }
2064
+
2065
+ public function show_page_post_data() {
2066
+ check_ajax_referer( 'gawd_admin_page_nonce', 'security' );
2067
+ require_once( GAWD_DIR . '/admin/gawd_google_class.php' );
2068
+ $gawd_client = GAWD_google_client::get_instance();
2069
+ $start_date = isset( $_POST["start_date"] ) && $_POST["start_date"] != '' ? $_POST["start_date"] : date( 'Y-m-d', strtotime( '-30 days' ) );
2070
+ $end_date = isset( $_POST["end_date"] ) && $_POST["end_date"] != '' ? $_POST["end_date"] : date( 'Y-m-d' );
2071
+ $metric = isset( $_POST["metric"] ) ? $_POST["metric"] : 'ga:sessions';
2072
+ $metric = is_array( $metric ) ? count( $metric ) > 1 ? implode( ",", $metric ) : $metric[0] : $metric;
2073
+ $dimension = isset( $_POST["dimension"] ) ? $_POST["dimension"] : 'date';
2074
+ $timezone = isset( $_POST["timezone"] ) ? $_POST["timezone"] : 0;
2075
+ $filter = isset( $_POST["filter"] ) ? substr( $_POST["filter"], 1 ) : '';
2076
+ $chart = isset( $_POST["chart"] ) ? $_POST["chart"] : '';
2077
+ $chart_data = get_transient( 'gawd-page-post-' . $gawd_client->get_profile_id() . '-' . $filter . '-' . '-' . $dimension . '-' . $start_date . '-' . $end_date . '-' . $chart );
2078
+ if ( ! $chart_data ) {
2079
+ $chart_data = $gawd_client->get_post_page_data( $metric, $dimension, $start_date, $end_date, $filter, $timezone, $chart );
2080
+ }
2081
+ echo $chart_data;
2082
+ die();
2083
+ }
2084
+
2085
+ public function get_realtime() {
2086
+ check_ajax_referer( 'gawd_admin_page_nonce', 'security' );
2087
+ require_once( GAWD_DIR . '/admin/gawd_google_class.php' );
2088
+ $gawd_client = GAWD_google_client::get_instance();
2089
+ $chart_data = get_transient( 'gawd-real' . $gawd_client->get_profile_id() );
2090
+ if ( ! $chart_data ) {
2091
+ $chart_data = $gawd_client->gawd_realtime_data();
2092
+ }
2093
+
2094
+ return $chart_data;
2095
+ }
2096
+
2097
+ public static function add_dashboard_menu() {
2098
+ $get_custom_reports = get_option( 'gawd_custom_reports' );
2099
+ if ( ! $get_custom_reports ) {
2100
+ $custom_report = array();
2101
+ } else {
2102
+ foreach ( $get_custom_reports as $name => $report ) {
2103
+ $custom_report[ 'custom_report_' . $name ] = __( $name, "gawd" );
2104
+ }
2105
+ }
2106
+ $tabs = array(
2107
+ "general" => array(
2108
+ "title" => __( "Audience", "gawd" ),
2109
+ "childs" => array(),
2110
+ "desc" => "Report of your website audience. Provides details about new and returning users of your website, sessions, bounces, pageviews and session durations."
2111
+ ),
2112
+ "realtime" => array(
2113
+ "title" => __( "Real Time", "gawd" ),
2114
+ "childs" => array(),
2115
+ "desc" => "Real Time statistics show the number of active users currently visiting your website pages."
2116
+ ),
2117
+ "demographics" => array(
2118
+ "title" => __( "Demographics", "gawd" ),
2119
+ "childs" => array(
2120
+ "userGender" => __( "User Gender", "gawd" ),
2121
+ "userAge" => __( "User Age", "gawd" )
2122
+ ),
2123
+ "desc" => "Demographics display tracking statistics of your website users based on their age and gender. "
2124
+
2125
+ ),
2126
+ "interests" => array(
2127
+ "title" => __( "Interests", "gawd" ),
2128
+ "childs" => array(
2129
+ "inMarket" => __( "In-Market Segment", "gawd" ),
2130
+ "affinityCategory" => __( "Affinity Category", "gawd" ),
2131
+ "otherCategory" => __( "Other Category", "gawd" )
2132
+ ),
2133
+ "desc" => "Provides tracking information about site users depending on Affinity Categories (e.g. Music Lovers or Mobile Enthusiasts), In-Market Segments (based on online product purchase interests) and Other Categories (most specific identification, for example, tennis lovers among Sports Fans)."
2134
+ ),
2135
+ "geo" => array(
2136
+ "title" => __( "GEO", "gawd" ),
2137
+ "childs" => array(
2138
+ "location" => __( "Location", "gawd" ),
2139
+ "language" => __( "Language", "gawd" )
2140
+ ),
2141
+ "desc" => "Geo-identifier report is built from interactions of location (countries, cities) and language of your website users."
2142
+ ),
2143
+ "behavior" => array(
2144
+ "title" => __( "Behavior", "gawd" ),
2145
+ "childs" => array(
2146
+ "behaviour" => __( "New vs Returning", "gawd" ),
2147
+ "engagement" => __( "Engagement", "gawd" )
2148
+ ),
2149
+ "desc" => "Compares number of New visitors and Returning users of your website in percents. You can check the duration of sessions with Engagement report."
2150
+ ),
2151
+ "technology" => array(
2152
+ "title" => __( "Technology", "gawd" ),
2153
+ "childs" => array(
2154
+ "os" => __( "OS", "gawd" ),
2155
+ "browser" => __( "Browser", "gawd" )
2156
+ ),
2157
+ "desc" => "Identifies tracking of the site based on operating systems and browsers visitors use."
2158
+ ),
2159
+ "mobile" => array(
2160
+ "title" => __( "Mobile", "gawd" ),
2161
+ "childs" => array(
2162
+ "device_overview" => __( "Overview", "gawd" ),
2163
+ "devices" => __( "Devices", "gawd" )
2164
+ ),
2165
+ "desc" => "Shows statistics of mobile and desktop devices visitors have used while interacting with your website."
2166
+ ),
2167
+ "custom" => array(
2168
+ "title" => __( "Custom Dimensions", "gawd" ),
2169
+ "childs" => array(),
2170
+ "desc" => "Set up Custom Dimensions based on Users, Post type, Author, Category, Publication date and Tags in Custom Dimensions page, and view their report in this tab."
2171
+ ),
2172
+ "trafficSource" => array(
2173
+ "title" => __( "Traffic Source", "gawd" ),
2174
+ "childs" => array(),
2175
+ "desc" => "Displays overall graph of traffic sources directing to your website."
2176
+ ),
2177
+ "adWords" => array(
2178
+ "title" => __( "AdWords", "gawd" ),
2179
+ "childs" => array(),
2180
+ "desc" => "If your website is registered on Google AdWords, you can link its Google Analytics to AdWords, and gather relevant tracking information with this report."
2181
+ ),
2182
+ /* "pagePath" => array(
2183
+ "title" => __("Pages", "gawd"),
2184
+ "childs" => array(),
2185
+ "desc" => "Pages report table will provide you information about Bounces, Entrances, Pageviews, Unique Pageviews, time spent on pages, Exits and Average page loading time."
2186
+ ), */
2187
+ "siteContent" => array(
2188
+ "title" => __( "Site Content", "gawd" ),
2189
+ "childs" => array(
2190
+ "pagePath" => __( "All Pages", "gawd" ),
2191
+ "landingPagePath" => __( "Landing Pages", "gawd" ),
2192
+ ),
2193
+ "desc" => "Pages report table will provide you information about Bounces, Entrances, Pageviews, Unique Pageviews, time spent on pages, Exits and Average page loading time."
2194
+ ),
2195
+ "siteSpeed" => array(
2196
+ "title" => __( "Site Speed", "gawd" ),
2197
+ "childs" => array(),
2198
+ "desc" => "Shows the average load time of your website users experienced during specified date range."
2199
+ ),
2200
+ "events" => array(
2201
+ "title" => __( "Events", "gawd" ),
2202
+ "childs" => array(
2203
+ "eventsLabel" => __( "Events by Label", "gawd" ),
2204
+ "eventsAction" => __( "Events by Action", "gawd" ),
2205
+ "eventsCategory" => __( "Events by Category", "gawd" )
2206
+ ),
2207
+ "desc" => "Displays the report based on Events you set up on Google Analytics of your website. Graphs are built based on Event Labels, Categories and Actions."
2208
+ ),
2209
+ "goals" => array(
2210
+ "title" => __( "Goals", "gawd" ),
2211
+ "childs" => array(),
2212
+ "desc" => "Set Goals from Goal Management and review their Google Analytics reports under this tab."
2213
+ ),
2214
+ "ecommerce" => array(
2215
+ "title" => __( "Ecommerce", "gawd" ),
2216
+ "childs" => array(
2217
+ "daysToTransaction" => __( "TIme to Purchase", "gawd" ),
2218
+ "transactionId" => __( "Transaction ID", "gawd" ),
2219
+ "sales_performance" => __( "Sales Performance", "gawd" ),
2220
+ "productSku" => __( "Product Sku", "gawd" ),
2221
+ "productCategory" => __( "Product Category ", "gawd" ),
2222
+ "productName" => __( "Product Name", "gawd" ),
2223
+ ),
2224
+ "desc" => "Check sales statistics of your website identified by revenues, transactions, products and performance."
2225
+ ),
2226
+ "adsense" => array(
2227
+ "title" => __( "AdSense", "gawd" ),
2228
+ "childs" => array(),
2229
+ "desc" => "Link your Google Analytics and AdSense accounts from Google Analytics Admin setting and keep track of AdSense tracking under this report."
2230
+ ),
2231
+ "customReport" => array(
2232
+ "title" => __( "Custom Report", "gawd" ),
2233
+ "childs" => $custom_report,
2234
+ "desc" => "Add Custom Reports from any metric and dimension in Custom Reports page, and view relevant Google Analytics tracking information in this tab."
2235
+ ),
2236
+ );
2237
+ update_option( 'gawd_menu_items', $tabs );
2238
+ }
2239
+
2240
+ public function remove_zoom_message() {
2241
+ check_ajax_referer( 'gawd_admin_page_nonce', 'security' );
2242
+ $got_it = isset( $_REQUEST["got_it"] ) ? sanitize_text_field( $_REQUEST["got_it"] ) : '';
2243
+ if ( $got_it != '' ) {
2244
+ add_option( 'gawd_zoom_message', $got_it );
2245
+ }
2246
+ }
2247
+ /**
2248
+ * Checks if the protocol is secure.
2249
+ *
2250
+ * @return boolean
2251
+ */
2252
+ public static function is_ssl() {
2253
+ if ( isset( $_SERVER['HTTPS'] ) ) {
2254
+ if ( 'on' == strtolower( $_SERVER['HTTPS'] ) ) {
2255
+ return true;
2256
+ }
2257
+ if ( '1' == $_SERVER['HTTPS'] ) {
2258
+ return true;
2259
+ }
2260
+ } elseif ( isset( $_SERVER['SERVER_PORT'] ) && ( '443' == $_SERVER['SERVER_PORT'] ) ) {
2261
+ return true;
2262
+ }
2263
+
2264
+ return false;
2265
+ }
2266
+
2267
+ /**
2268
+ * Returns the Singleton instance of this class.
2269
+ *
2270
+ * @return GAWD The Singleton instance.
2271
+ */
2272
+ public static function get_instance() {
2273
+ if ( null === self::$instance ) {
2274
+ self::$instance = new self();
2275
+ }
2276
+
2277
+ return self::$instance;
2278
+ }
2279
+
2280
+ /**
2281
+ * Private clone method to prevent cloning of the instance of the
2282
+ * Singleton instance.
2283
+ *
2284
+ * @return void
2285
+ */
2286
+ private function __clone() {
2287
+
2288
+ }
2289
+
2290
+ /**
2291
+ * Private unserialize method to prevent unserializing of the Singleton
2292
+ * instance.
2293
+ *
2294
+ * @return void
2295
+ */
2296
+ private function __wakeup() {
2297
+
2298
+ }
2299
+ }
google-analytics-wd.php CHANGED
@@ -1,37 +1,37 @@
1
- <?php
2
-
3
- /**
4
- * Plugin Name: WD Google Analytics
5
- * Plugin URI: https://web-dorado.com/products/wordpress-google-analytics-plugin.html
6
- * Description: WD Google Analytics is a user-friendly all in one plugin, which allows to manage and monitor your website analytics from WordPress dashboard.
7
- * Version: 1.0.4
8
- * Author: WebDorado
9
- * Author URI: https://web-dorado.com
10
- * License: GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
11
- */
12
- if (!defined('GAWD_DIR')) {
13
- define('GAWD_DIR', dirname(__FILE__));
14
- }
15
-
16
- if (!defined('GWD_NAME')) {
17
- define('GWD_NAME', plugin_basename(dirname(__FILE__)));
18
- }
19
-
20
- if (!defined('GAWD_URL')) {
21
- define('GAWD_URL', plugins_url(plugin_basename(dirname(__FILE__))));
22
- }
23
-
24
- if (!defined('GAWD_INC')) {
25
- define('GAWD_INC', GAWD_URL . '/inc');
26
- }
27
-
28
- if (!defined('GAWD_VERSION')) {
29
- define('GAWD_VERSION', '1.0.4');
30
- }
31
-
32
- require_once( 'gawd_class.php' );
33
-
34
- add_action('plugins_loaded', array('GAWD', 'get_instance'));
35
-
36
- register_activation_hook(__FILE__, array('GAWD', 'activate'));
37
- register_deactivation_hook(__FILE__, array('GAWD', 'deactivate'));
1
+ <?php
2
+
3
+ /**
4
+ * Plugin Name: WD Google Analytics
5
+ * Plugin URI: https://web-dorado.com/products/wordpress-google-analytics-plugin.html
6
+ * Description: WD Google Analytics is a user-friendly all in one plugin, which allows to manage and monitor your website analytics from WordPress dashboard.
7
+ * Version: 1.0.5
8
+ * Author: WebDorado
9
+ * Author URI: https://web-dorado.com
10
+ * License: GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
11
+ */
12
+ if (!defined('GAWD_DIR')) {
13
+ define('GAWD_DIR', dirname(__FILE__));
14
+ }
15
+
16
+ if (!defined('GWD_NAME')) {
17
+ define('GWD_NAME', plugin_basename(dirname(__FILE__)));
18
+ }
19
+
20
+ if (!defined('GAWD_URL')) {
21
+ define('GAWD_URL', plugins_url(plugin_basename(dirname(__FILE__))));
22
+ }
23
+
24
+ if (!defined('GAWD_INC')) {
25
+ define('GAWD_INC', GAWD_URL . '/inc');
26
+ }
27
+
28
+ if (!defined('GAWD_VERSION')) {
29
+ define('GAWD_VERSION', '1.0.5');
30
+ }
31
+
32
+ require_once( 'gawd_class.php' );
33
+
34
+ add_action('plugins_loaded', array('GAWD', 'get_instance'));
35
+
36
+ register_activation_hook(__FILE__, array('GAWD', 'activate'));
37
+ register_deactivation_hook(__FILE__, array('GAWD', 'deactivate'));
inc/css/bootstrap.css CHANGED
@@ -1,6712 +1,6709 @@
1
- /*!
2
- * Bootstrap v3.3.6 (http://getbootstrap.com)
3
- * Copyright 2011-2015 Twitter, Inc.
4
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
- */
6
- /*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
7
-
8
- body {
9
- margin: 0;
10
- }
11
- article,
12
- aside,
13
- details,
14
- figcaption,
15
- figure,
16
- footer,
17
- header,
18
- hgroup,
19
- main,
20
- menu,
21
- nav,
22
- section,
23
- summary {
24
- display: block;
25
- }
26
- audio,
27
- canvas,
28
- progress,
29
- video {
30
- display: inline-block;
31
- vertical-align: baseline;
32
- }
33
- audio:not([controls]) {
34
- display: none;
35
- height: 0;
36
- }
37
- [hidden],
38
- template {
39
- display: none;
40
- }
41
- a {
42
- background-color: transparent;
43
- }
44
- a:active,
45
- a:hover {
46
- outline: 0;
47
- }
48
- abbr[title] {
49
- border-bottom: 1px dotted;
50
- }
51
- b,
52
- strong {
53
- font-weight: bold;
54
- }
55
- dfn {
56
- font-style: italic;
57
- }
58
- h1 {
59
- margin: .67em 0;
60
- font-size: 2em;
61
- }
62
- mark {
63
- color: #000;
64
- background: #ff0;
65
- }
66
- small {
67
- font-size: 80%;
68
- }
69
- sub,
70
- sup {
71
- position: relative;
72
- font-size: 75%;
73
- line-height: 0;
74
- vertical-align: baseline;
75
- }
76
- sup {
77
- top: -.5em;
78
- }
79
- sub {
80
- bottom: -.25em;
81
- }
82
- img {
83
- border: 0;
84
- }
85
- /* svg:not(:root) {
86
- overflow: hidden;
87
- } */
88
- figure {
89
- margin: 1em 40px;
90
- }
91
- hr {
92
- height: 0;
93
- -webkit-box-sizing: content-box;
94
- -moz-box-sizing: content-box;
95
- box-sizing: content-box;
96
- }
97
- pre {
98
- overflow: auto;
99
- }
100
- code,
101
- kbd,
102
- pre,
103
- samp {
104
- font-family: monospace, monospace;
105
- font-size: 1em;
106
- }
107
- button,
108
- input,
109
- optgroup,
110
- select,
111
- textarea {
112
- margin: 0;
113
- font: inherit;
114
- color: inherit;
115
- }
116
- button {
117
- overflow: visible;
118
- }
119
- button,
120
- select {
121
- text-transform: none;
122
- }
123
- button,
124
- html input[type="button"],
125
- input[type="reset"],
126
- input[type="submit"] {
127
- -webkit-appearance: button;
128
- cursor: pointer;
129
- }
130
- button[disabled],
131
- html input[disabled] {
132
- cursor: default;
133
- }
134
- button::-moz-focus-inner,
135
- input::-moz-focus-inner {
136
- padding: 0;
137
- border: 0;
138
- }
139
- input {
140
- line-height: normal;
141
- }
142
- input[type="checkbox"],
143
- input[type="radio"] {
144
- -webkit-box-sizing: border-box;
145
- -moz-box-sizing: border-box;
146
- box-sizing: border-box;
147
- padding: 0;
148
- }
149
- input[type="number"]::-webkit-inner-spin-button,
150
- input[type="number"]::-webkit-outer-spin-button {
151
- height: auto;
152
- }
153
- input[type="search"] {
154
- -webkit-box-sizing: content-box;
155
- -moz-box-sizing: content-box;
156
- box-sizing: content-box;
157
- -webkit-appearance: textfield;
158
- }
159
- input[type="search"]::-webkit-search-cancel-button,
160
- input[type="search"]::-webkit-search-decoration {
161
- -webkit-appearance: none;
162
- }
163
- fieldset {
164
- padding: .35em .625em .75em;
165
- margin: 0 2px;
166
- border: 1px solid #c0c0c0;
167
- }
168
- legend {
169
- padding: 0;
170
- border: 0;
171
- }
172
- textarea {
173
- overflow: auto;
174
- }
175
- optgroup {
176
- font-weight: bold;
177
- }
178
- table {
179
- border-spacing: 0;
180
- border-collapse: collapse;
181
- }
182
-
183
- /*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
184
- @media print {
185
- *,
186
- *:before,
187
- *:after {
188
- color: #000 !important;
189
- text-shadow: none !important;
190
- background: transparent !important;
191
- -webkit-box-shadow: none !important;
192
- box-shadow: none !important;
193
- }
194
- a,
195
- a:visited {
196
- text-decoration: underline;
197
- }
198
- a[href]:after {
199
- content: " (" attr(href) ")";
200
- }
201
- abbr[title]:after {
202
- content: " (" attr(title) ")";
203
- }
204
- a[href^="#"]:after,
205
- a[href^="javascript:"]:after {
206
- content: "";
207
- }
208
- pre,
209
- blockquote {
210
- border: 1px solid #999;
211
-
212
- page-break-inside: avoid;
213
- }
214
- thead {
215
- display: table-header-group;
216
- }
217
- tr,
218
- img {
219
- page-break-inside: avoid;
220
- }
221
- img {
222
- max-width: 100% !important;
223
- }
224
- p,
225
- h2,
226
- h3 {
227
- orphans: 3;
228
- widows: 3;
229
- }
230
- h2,
231
- h3 {
232
- page-break-after: avoid;
233
- }
234
- .navbar {
235
- display: none;
236
- }
237
- .btn > .caret,
238
- .dropup > .btn > .caret {
239
- border-top-color: #000 !important;
240
- }
241
- .label {
242
- border: 1px solid #000;
243
- }
244
- .table {
245
- border-collapse: collapse !important;
246
- }
247
- .table td,
248
- .table th {
249
- background-color: #fff !important;
250
- }
251
- .table-bordered th,
252
- .table-bordered td {
253
- border: 1px solid #ddd !important;
254
- }
255
- }
256
-
257
- .glyphicon {
258
- position: relative;
259
- top: 1px;
260
- display: inline-block;
261
- font-style: normal;
262
- font-weight: normal;
263
- line-height: 1;
264
-
265
- -webkit-font-smoothing: antialiased;
266
- -moz-osx-font-smoothing: grayscale;
267
- }
268
- .glyphicon-asterisk:before {
269
- content: "\002a";
270
- }
271
- .glyphicon-plus:before {
272
- content: "\002b";
273
- }
274
- .glyphicon-euro:before,
275
- .glyphicon-eur:before {
276
- content: "\20ac";
277
- }
278
- .glyphicon-minus:before {
279
- content: "\2212";
280
- }
281
- .glyphicon-cloud:before {
282
- content: "\2601";
283
- }
284
- .glyphicon-envelope:before {
285
- content: "\2709";
286
- }
287
- .glyphicon-pencil:before {
288
- content: "\270f";
289
- }
290
- .glyphicon-glass:before {
291
- content: "\e001";
292
- }
293
- .glyphicon-music:before {
294
- content: "\e002";
295
- }
296
- .glyphicon-search:before {
297
- content: "\e003";
298
- }
299
- .glyphicon-heart:before {
300
- content: "\e005";
301
- }
302
- .glyphicon-star:before {
303
- content: "\e006";
304
- }
305
- .glyphicon-star-empty:before {
306
- content: "\e007";
307
- }
308
- .glyphicon-user:before {
309
- content: "\e008";
310
- }
311
- .glyphicon-film:before {
312
- content: "\e009";
313
- }
314
- .glyphicon-th-large:before {
315
- content: "\e010";
316
- }
317
- .glyphicon-th:before {
318
- content: "\e011";
319
- }
320
- .glyphicon-th-list:before {
321
- content: "\e012";
322
- }
323
- .glyphicon-ok:before {
324
- content: "\e013";
325
- }
326
- .glyphicon-remove:before {
327
- content: "\e014";
328
- }
329
- .glyphicon-zoom-in:before {
330
- content: "\e015";
331
- }
332
- .glyphicon-zoom-out:before {
333
- content: "\e016";
334
- }
335
- .glyphicon-off:before {
336
- content: "\e017";
337
- }
338
- .glyphicon-signal:before {
339
- content: "\e018";
340
- }
341
- .glyphicon-cog:before {
342
- content: "\e019";
343
- }
344
- .glyphicon-trash:before {
345
- content: "\e020";
346
- }
347
- .glyphicon-home:before {
348
- content: "\e021";
349
- }
350
- .glyphicon-file:before {
351
- content: "\e022";
352
- }
353
- .glyphicon-time:before {
354
- content: "\e023";
355
- }
356
- .glyphicon-road:before {
357
- content: "\e024";
358
- }
359
- .glyphicon-download-alt:before {
360
- content: "\e025";
361
- }
362
- .glyphicon-download:before {
363
- content: "\e026";
364
- }
365
- .glyphicon-upload:before {
366
- content: "\e027";
367
- }
368
- .glyphicon-inbox:before {
369
- content: "\e028";
370
- }
371
- .glyphicon-play-circle:before {
372
- content: "\e029";
373
- }
374
- .glyphicon-repeat:before {
375
- content: "\e030";
376
- }
377
- .glyphicon-refresh:before {
378
- content: "\e031";
379
- }
380
- .glyphicon-list-alt:before {
381
- content: "\e032";
382
- }
383
- .glyphicon-lock:before {
384
- content: "\e033";
385
- }
386
- .glyphicon-flag:before {
387
- content: "\e034";
388
- }
389
- .glyphicon-headphones:before {
390
- content: "\e035";
391
- }
392
- .glyphicon-volume-off:before {
393
- content: "\e036";
394
- }
395
- .glyphicon-volume-down:before {
396
- content: "\e037";
397
- }
398
- .glyphicon-volume-up:before {
399
- content: "\e038";
400
- }
401
- .glyphicon-qrcode:before {
402
- content: "\e039";
403
- }
404
- .glyphicon-barcode:before {
405
- content: "\e040";
406
- }
407
- .glyphicon-tag:before {
408
- content: "\e041";
409
- }
410
- .glyphicon-tags:before {
411
- content: "\e042";
412
- }
413
- .glyphicon-book:before {
414
- content: "\e043";
415
- }
416
- .glyphicon-bookmark:before {
417
- content: "\e044";
418
- }
419
- .glyphicon-print:before {
420
- content: "\e045";
421
- }
422
- .glyphicon-camera:before {
423
- content: "\e046";
424
- }
425
- .glyphicon-font:before {
426
- content: "\e047";
427
- }
428
- .glyphicon-bold:before {
429
- content: "\e048";
430
- }
431
- .glyphicon-italic:before {
432
- content: "\e049";
433
- }
434
- .glyphicon-text-height:before {
435
- content: "\e050";
436
- }
437
- .glyphicon-text-width:before {
438
- content: "\e051";
439
- }
440
- .glyphicon-align-left:before {
441
- content: "\e052";
442
- }
443
- .glyphicon-align-center:before {
444
- content: "\e053";
445
- }
446
- .glyphicon-align-right:before {
447
- content: "\e054";
448
- }
449
- .glyphicon-align-justify:before {
450
- content: "\e055";
451
- }
452
- .glyphicon-list:before {
453
- content: "\e056";
454
- }
455
- .glyphicon-indent-left:before {
456
- content: "\e057";
457
- }
458
- .glyphicon-indent-right:before {
459
- content: "\e058";
460
- }
461
- .glyphicon-facetime-video:before {
462
- content: "\e059";
463
- }
464
- .glyphicon-picture:before {
465
- content: "\e060";
466
- }
467
- .glyphicon-map-marker:before {
468
- content: "\e062";
469
- }
470
- .glyphicon-adjust:before {
471
- content: "\e063";
472
- }
473
- .glyphicon-tint:before {
474
- content: "\e064";
475
- }
476
- .glyphicon-edit:before {
477
- content: "\e065";
478
- }
479
- .glyphicon-share:before {
480
- content: "\e066";
481
- }
482
- .glyphicon-check:before {
483
- content: "\e067";
484
- }
485
- .glyphicon-move:before {
486
- content: "\e068";
487
- }
488
- .glyphicon-step-backward:before {
489
- content: "\e069";
490
- }
491
- .glyphicon-fast-backward:before {
492
- content: "\e070";
493
- }
494
- .glyphicon-backward:before {
495
- content: "\e071";
496
- }
497
- .glyphicon-play:before {
498
- content: "\e072";
499
- }
500
- .glyphicon-pause:before {
501
- content: "\e073";
502
- }
503
- .glyphicon-stop:before {
504
- content: "\e074";
505
- }
506
- .glyphicon-forward:before {
507
- content: "\e075";
508
- }
509
- .glyphicon-fast-forward:before {
510
- content: "\e076";
511
- }
512
- .glyphicon-step-forward:before {
513
- content: "\e077";
514
- }
515
- .glyphicon-eject:before {
516
- content: "\e078";
517
- }
518
- .glyphicon-chevron-left:before {
519
- //content: "\e079";
520
- }
521
- .glyphicon-chevron-right:before {
522
- //content: "\e080";
523
- }
524
- .glyphicon-plus-sign:before {
525
- content: "\e081";
526
- }
527
- .glyphicon-minus-sign:before {
528
- content: "\e082";
529
- }
530
- .glyphicon-remove-sign:before {
531
- content: "\e083";
532
- }
533
- .glyphicon-ok-sign:before {
534
- content: "\e084";
535
- }
536
- .glyphicon-question-sign:before {
537
- content: "\e085";
538
- }
539
- .glyphicon-info-sign:before {
540
- content: "\e086";
541
- }
542
- .glyphicon-screenshot:before {
543
- content: "\e087";
544
- }
545
- .glyphicon-remove-circle:before {
546
- content: "\e088";
547
- }
548
- .glyphicon-ok-circle:before {
549
- content: "\e089";
550
- }
551
- .glyphicon-ban-circle:before {
552
- content: "\e090";
553
- }
554
- .glyphicon-arrow-left:before {
555
- content: "\e091";
556
- }
557
- .glyphicon-arrow-right:before {
558
- content: "\e092";
559
- }
560
- .glyphicon-arrow-up:before {
561
- content: "\e093";
562
- }
563
- .glyphicon-arrow-down:before {
564
- content: "\e094";
565
- }
566
- .glyphicon-share-alt:before {
567
- content: "\e095";
568
- }
569
- .glyphicon-resize-full:before {
570
- content: "\e096";
571
- }
572
- .glyphicon-resize-small:before {
573
- content: "\e097";
574
- }
575
- .glyphicon-exclamation-sign:before {
576
- content: "\e101";
577
- }
578
- .glyphicon-gift:before {
579
- content: "\e102";
580
- }
581
- .glyphicon-leaf:before {
582
- content: "\e103";
583
- }
584
- .glyphicon-fire:before {
585
- content: "\e104";
586
- }
587
- .glyphicon-eye-open:before {
588
- content: "\e105";
589
- }
590
- .glyphicon-eye-close:before {
591
- content: "\e106";
592
- }
593
- .glyphicon-warning-sign:before {
594
- content: "\e107";
595
- }
596
- .glyphicon-plane:before {
597
- content: "\e108";
598
- }
599
- .glyphicon-calendar:before {
600
- //content: "\e109";
601
- }
602
- .glyphicon-random:before {
603
- content: "\e110";
604
- }
605
- .glyphicon-comment:before {
606
- content: "\e111";
607
- }
608
- .glyphicon-magnet:before {
609
- content: "\e112";
610
- }
611
- .glyphicon-chevron-up:before {
612
- content: "\e113";
613
- }
614
- .glyphicon-chevron-down:before {
615
- content: "\e114";
616
- }
617
- .glyphicon-retweet:before {
618
- content: "\e115";
619
- }
620
- .glyphicon-shopping-cart:before {
621
- content: "\e116";
622
- }
623
- .glyphicon-folder-close:before {
624
- content: "\e117";
625
- }
626
- .glyphicon-folder-open:before {
627
- content: "\e118";
628
- }
629
- .glyphicon-resize-vertical:before {
630
- content: "\e119";
631
- }
632
- .glyphicon-resize-horizontal:before {
633
- content: "\e120";
634
- }
635
- .glyphicon-hdd:before {
636
- content: "\e121";
637
- }
638
- .glyphicon-bullhorn:before {
639
- content: "\e122";
640
- }
641
- .glyphicon-bell:before {
642
- content: "\e123";
643
- }
644
- .glyphicon-certificate:before {
645
- content: "\e124";
646
- }
647
- .glyphicon-thumbs-up:before {
648
- content: "\e125";
649
- }
650
- .glyphicon-thumbs-down:before {
651
- content: "\e126";
652
- }
653
- .glyphicon-hand-right:before {
654
- content: "\e127";
655
- }
656
- .glyphicon-hand-left:before {
657
- content: "\e128";
658
- }
659
- .glyphicon-hand-up:before {
660
- content: "\e129";
661
- }
662
- .glyphicon-hand-down:before {
663
- content: "\e130";
664
- }
665
- .glyphicon-circle-arrow-right:before {
666
- content: "\e131";
667
- }
668
- .glyphicon-circle-arrow-left:before {
669
- content: "\e132";
670
- }
671
- .glyphicon-circle-arrow-up:before {
672
- content: "\e133";
673
- }
674
- .glyphicon-circle-arrow-down:before {
675
- content: "\e134";
676
- }
677
- .glyphicon-globe:before {
678
- content: "\e135";
679
- }
680
- .glyphicon-wrench:before {
681
- content: "\e136";
682
- }
683
- .glyphicon-tasks:before {
684
- content: "\e137";
685
- }
686
- .glyphicon-filter:before {
687
- content: "\e138";
688
- }
689
- .glyphicon-briefcase:before {
690
- content: "\e139";
691
- }
692
- .glyphicon-fullscreen:before {
693
- content: "\e140";
694
- }
695
- .glyphicon-dashboard:before {
696
- content: "\e141";
697
- }
698
- .glyphicon-paperclip:before {
699
- content: "\e142";
700
- }
701
- .glyphicon-heart-empty:before {
702
- content: "\e143";
703
- }
704
- .glyphicon-link:before {
705
- content: "\e144";
706
- }
707
- .glyphicon-phone:before {
708
- content: "\e145";
709
- }
710
- .glyphicon-pushpin:before {
711
- content: "\e146";
712
- }
713
- .glyphicon-usd:before {
714
- content: "\e148";
715
- }
716
- .glyphicon-gbp:before {
717
- content: "\e149";
718
- }
719
- .glyphicon-sort:before {
720
- content: "\e150";
721
- }
722
- .glyphicon-sort-by-alphabet:before {
723
- content: "\e151";
724
- }
725
- .glyphicon-sort-by-alphabet-alt:before {
726
- content: "\e152";
727
- }
728
- .glyphicon-sort-by-order:before {
729
- content: "\e153";
730
- }
731
- .glyphicon-sort-by-order-alt:before {
732
- content: "\e154";
733
- }
734
- .glyphicon-sort-by-attributes:before {
735
- content: "\e155";
736
- }
737
- .glyphicon-sort-by-attributes-alt:before {
738
- content: "\e156";
739
- }
740
- .glyphicon-unchecked:before {
741
- content: "\e157";
742
- }
743
- .glyphicon-expand:before {
744
- content: "\e158";
745
- }
746
- .glyphicon-collapse-down:before {
747
- content: "\e159";
748
- }
749
- .glyphicon-collapse-up:before {
750
- content: "\e160";
751
- }
752
- .glyphicon-log-in:before {
753
- content: "\e161";
754
- }
755
- .glyphicon-flash:before {
756
- content: "\e162";
757
- }
758
- .glyphicon-log-out:before {
759
- content: "\e163";
760
- }
761
- .glyphicon-new-window:before {
762
- content: "\e164";
763
- }
764
- .glyphicon-record:before {
765
- content: "\e165";
766
- }
767
- .glyphicon-save:before {
768
- content: "\e166";
769
- }
770
- .glyphicon-open:before {
771
- content: "\e167";
772
- }
773
- .glyphicon-saved:before {
774
- content: "\e168";
775
- }
776
- .glyphicon-import:before {
777
- content: "\e169";
778
- }
779
- .glyphicon-export:before {
780
- content: "\e170";
781
- }
782
- .glyphicon-send:before {
783
- content: "\e171";
784
- }
785
- .glyphicon-floppy-disk:before {
786
- content: "\e172";
787
- }
788
- .glyphicon-floppy-saved:before {
789
- content: "\e173";
790
- }
791
- .glyphicon-floppy-remove:before {
792
- content: "\e174";
793
- }
794
- .glyphicon-floppy-save:before {
795
- content: "\e175";
796
- }
797
- .glyphicon-floppy-open:before {
798
- content: "\e176";
799
- }
800
- .glyphicon-credit-card:before {
801
- content: "\e177";
802
- }
803
- .glyphicon-transfer:before {
804
- content: "\e178";
805
- }
806
- .glyphicon-cutlery:before {
807
- content: "\e179";
808
- }
809
- .glyphicon-header:before {
810
- content: "\e180";
811
- }
812
- .glyphicon-compressed:before {
813
- content: "\e181";
814
- }
815
- .glyphicon-earphone:before {
816
- content: "\e182";
817
- }
818
- .glyphicon-phone-alt:before {
819
- content: "\e183";
820
- }
821
- .glyphicon-tower:before {
822
- content: "\e184";
823
- }
824
- .glyphicon-stats:before {
825
- content: "\e185";
826
- }
827
- .glyphicon-sd-video:before {
828
- content: "\e186";
829
- }
830
- .glyphicon-hd-video:before {
831
- content: "\e187";
832
- }
833
- .glyphicon-subtitles:before {
834
- content: "\e188";
835
- }
836
- .glyphicon-sound-stereo:before {
837
- content: "\e189";
838
- }
839
- .glyphicon-sound-dolby:before {
840
- content: "\e190";
841
- }
842
- .glyphicon-sound-5-1:before {
843
- content: "\e191";
844
- }
845
- .glyphicon-sound-6-1:before {
846
- content: "\e192";
847
- }
848
- .glyphicon-sound-7-1:before {
849
- content: "\e193";
850
- }
851
- .glyphicon-copyright-mark:before {
852
- content: "\e194";
853
- }
854
- .glyphicon-registration-mark:before {
855
- content: "\e195";
856
- }
857
- .glyphicon-cloud-download:before {
858
- content: "\e197";
859
- }
860
- .glyphicon-cloud-upload:before {
861
- content: "\e198";
862
- }
863
- .glyphicon-tree-conifer:before {
864
- content: "\e199";
865
- }
866
- .glyphicon-tree-deciduous:before {
867
- content: "\e200";
868
- }
869
- .glyphicon-cd:before {
870
- content: "\e201";
871
- }
872
- .glyphicon-save-file:before {
873
- content: "\e202";
874
- }
875
- .glyphicon-open-file:before {
876
- content: "\e203";
877
- }
878
- .glyphicon-level-up:before {
879
- content: "\e204";
880
- }
881
- .glyphicon-copy:before {
882
- content: "\e205";
883
- }
884
- .glyphicon-paste:before {
885
- content: "\e206";
886
- }
887
- .glyphicon-alert:before {
888
- content: "\e209";
889
- }
890
- .glyphicon-equalizer:before {
891
- content: "\e210";
892
- }
893
- .glyphicon-king:before {
894
- content: "\e211";
895
- }
896
- .glyphicon-queen:before {
897
- content: "\e212";
898
- }
899
- .glyphicon-pawn:before {
900
- content: "\e213";
901
- }
902
- .glyphicon-bishop:before {
903
- content: "\e214";
904
- }
905
- .glyphicon-knight:before {
906
- content: "\e215";
907
- }
908
- .glyphicon-baby-formula:before {
909
- content: "\e216";
910
- }
911
- .glyphicon-tent:before {
912
- content: "\26fa";
913
- }
914
- .glyphicon-blackboard:before {
915
- content: "\e218";
916
- }
917
- .glyphicon-bed:before {
918
- content: "\e219";
919
- }
920
- .glyphicon-apple:before {
921
- content: "\f8ff";
922
- }
923
- .glyphicon-erase:before {
924
- content: "\e221";
925
- }
926
- .glyphicon-hourglass:before {
927
- content: "\231b";
928
- }
929
- .glyphicon-lamp:before {
930
- content: "\e223";
931
- }
932
- .glyphicon-duplicate:before {
933
- content: "\e224";
934
- }
935
- .glyphicon-piggy-bank:before {
936
- content: "\e225";
937
- }
938
- .glyphicon-scissors:before {
939
- content: "\e226";
940
- }
941
- .glyphicon-bitcoin:before {
942
- content: "\e227";
943
- }
944
- .glyphicon-btc:before {
945
- content: "\e227";
946
- }
947
- .glyphicon-xbt:before {
948
- content: "\e227";
949
- }
950
- .glyphicon-yen:before {
951
- content: "\00a5";
952
- }
953
- .glyphicon-jpy:before {
954
- content: "\00a5";
955
- }
956
- .glyphicon-ruble:before {
957
- content: "\20bd";
958
- }
959
- .glyphicon-rub:before {
960
- content: "\20bd";
961
- }
962
- .glyphicon-scale:before {
963
- content: "\e230";
964
- }
965
- .glyphicon-ice-lolly:before {
966
- content: "\e231";
967
- }
968
- .glyphicon-ice-lolly-tasted:before {
969
- content: "\e232";
970
- }
971
- .glyphicon-education:before {
972
- content: "\e233";
973
- }
974
- .glyphicon-option-horizontal:before {
975
- content: "\e234";
976
- }
977
- .glyphicon-option-vertical:before {
978
- content: "\e235";
979
- }
980
- .glyphicon-menu-hamburger:before {
981
- content: "\e236";
982
- }
983
- .glyphicon-modal-window:before {
984
- content: "\e237";
985
- }
986
- .glyphicon-oil:before {
987
- content: "\e238";
988
- }
989
- .glyphicon-grain:before {
990
- content: "\e239";
991
- }
992
- .glyphicon-sunglasses:before {
993
- content: "\e240";
994
- }
995
- .glyphicon-text-size:before {
996
- content: "\e241";
997
- }
998
- .glyphicon-text-color:before {
999
- content: "\e242";
1000
- }
1001
- .glyphicon-text-background:before {
1002
- content: "\e243";
1003
- }
1004
- .glyphicon-object-align-top:before {
1005
- content: "\e244";
1006
- }
1007
- .glyphicon-object-align-bottom:before {
1008
- content: "\e245";
1009
- }
1010
- .glyphicon-object-align-horizontal:before {
1011
- content: "\e246";
1012
- }
1013
- .glyphicon-object-align-left:before {
1014
- content: "\e247";
1015
- }
1016
- .glyphicon-object-align-vertical:before {
1017
- content: "\e248";
1018
- }
1019
- .glyphicon-object-align-right:before {
1020
- content: "\e249";
1021
- }
1022
- .glyphicon-triangle-right:before {
1023
- content: "\e250";
1024
- }
1025
- .glyphicon-triangle-left:before {
1026
- content: "\e251";
1027
- }
1028
- .glyphicon-triangle-bottom:before {
1029
- content: "\e252";
1030
- }
1031
- .glyphicon-triangle-top:before {
1032
- content: "\e253";
1033
- }
1034
- .glyphicon-console:before {
1035
- content: "\e254";
1036
- }
1037
- .glyphicon-superscript:before {
1038
- content: "\e255";
1039
- }
1040
- .glyphicon-subscript:before {
1041
- content: "\e256";
1042
- }
1043
- .glyphicon-menu-left:before {
1044
- content: "\e257";
1045
- }
1046
- .glyphicon-menu-right:before {
1047
- content: "\e258";
1048
- }
1049
- .glyphicon-menu-down:before {
1050
- content: "\e259";
1051
- }
1052
- .glyphicon-menu-up:before {
1053
- content: "\e260";
1054
- }
1055
-
1056
-
1057
-
1058
- input,
1059
- button,
1060
- select,
1061
- textarea {
1062
- font-family: inherit;
1063
- font-size: inherit;
1064
- line-height: inherit;
1065
- }
1066
- a {
1067
- color: #337ab7;
1068
- }
1069
- a:hover,
1070
- a:focus {
1071
- color: #23527c;
1072
- text-decoration: underline;
1073
- }
1074
- a:focus {
1075
- outline: none;
1076
- box-shadow:none;
1077
- }
1078
- figure {
1079
- margin: 0;
1080
- }
1081
- img {
1082
- vertical-align: middle;
1083
- }
1084
- .img-responsive,
1085
- .thumbnail > img,
1086
- .thumbnail a > img,
1087
- .carousel-inner > .item > img,
1088
- .carousel-inner > .item > a > img {
1089
- display: block;
1090
- max-width: 100%;
1091
- height: auto;
1092
- }
1093
- .img-rounded {
1094
- border-radius: 6px;
1095
- }
1096
- .img-thumbnail {
1097
- display: inline-block;
1098
- max-width: 100%;
1099
- height: auto;
1100
- padding: 4px;
1101
- line-height: 1.42857143;
1102
- background-color: #fff;
1103
- border: 1px solid #ddd;
1104
- border-radius: 4px;
1105
- -webkit-transition: all .2s ease-in-out;
1106
- -o-transition: all .2s ease-in-out;
1107
- transition: all .2s ease-in-out;
1108
- }
1109
- .img-circle {
1110
- border-radius: 50%;
1111
- }
1112
- hr {
1113
- margin-top: 20px;
1114
- margin-bottom: 20px;
1115
- border: 0;
1116
- border-top: 1px solid #eee;
1117
- }
1118
- .sr-only {
1119
- position: absolute;
1120
- width: 1px;
1121
- height: 1px;
1122
- padding: 0;
1123
- margin: -1px;
1124
- overflow: hidden;
1125
- clip: rect(0, 0, 0, 0);
1126
- border: 0;
1127
- }
1128
- .sr-only-focusable:active,
1129
- .sr-only-focusable:focus {
1130
- position: static;
1131
- width: auto;
1132
- height: auto;
1133
- margin: 0;
1134
- overflow: visible;
1135
- clip: auto;
1136
- }
1137
- [role="button"] {
1138
- cursor: pointer;
1139
- }
1140
- h1,
1141
- h2,
1142
- h3,
1143
- h4,
1144
- h5,
1145
- h6,
1146
- .h1,
1147
- .h2,
1148
- .h3,
1149
- .h4,
1150
- .h5,
1151
- .h6 {
1152
- font-family: inherit;
1153
- font-weight: 500;
1154
- line-height: 1.1;
1155
- color: inherit;
1156
- }
1157
- h1 small,
1158
- h2 small,
1159
- h3 small,
1160
- h4 small,
1161
- h5 small,
1162
- h6 small,
1163
- .h1 small,
1164
- .h2 small,
1165
- .h3 small,
1166
- .h4 small,
1167
- .h5 small,
1168
- .h6 small,
1169
- h1 .small,
1170
- h2 .small,
1171
- h3 .small,
1172
- h4 .small,
1173
- h5 .small,
1174
- h6 .small,
1175
- .h1 .small,
1176
- .h2 .small,
1177
- .h3 .small,
1178
- .h4 .small,
1179
- .h5 .small,
1180
- .h6 .small {
1181
- font-weight: normal;
1182
- line-height: 1;
1183
- color: #777;
1184
- }
1185
- h1,
1186
- .h1,
1187
- h2,
1188
- .h2,
1189
- h3,
1190
- .h3 {
1191
- margin-top: 20px;
1192
- margin-bottom: 10px;
1193
- }
1194
- h1 small,
1195
- .h1 small,
1196
- h2 small,
1197
- .h2 small,
1198
- h3 small,
1199
- .h3 small,
1200
- h1 .small,
1201
- .h1 .small,
1202
- h2 .small,
1203
- .h2 .small,
1204
- h3 .small,
1205
- .h3 .small {
1206
- font-size: 65%;
1207
- }
1208
- h4,
1209
- .h4,
1210
- h5,
1211
- .h5,
1212
- h6,
1213
- .h6 {
1214
- margin-top: 10px;
1215
- margin-bottom: 10px;
1216
- }
1217
- h4 small,
1218
- .h4 small,
1219
- h5 small,
1220
- .h5 small,
1221
- h6 small,
1222
- .h6 small,
1223
- h4 .small,
1224
- .h4 .small,
1225
- h5 .small,
1226
- .h5 .small,
1227
- h6 .small,
1228
- .h6 .small {
1229
- font-size: 75%;
1230
- }
1231
- h1,
1232
- .h1 {
1233
- font-size: 36px;
1234
- }
1235
- h2,
1236
- .h2 {
1237
- font-size: 30px;
1238
- }
1239
- h3,
1240
- .h3 {
1241
- font-size: 24px;
1242
- }
1243
- h4,
1244
- .h4 {
1245
- font-size: 18px;
1246
- }
1247
- h5,
1248
- .h5 {
1249
- font-size: 14px;
1250
- }
1251
- h6,
1252
- .h6 {
1253
- font-size: 12px;
1254
- }
1255
- p {
1256
- margin: 0 0 10px;
1257
- }
1258
- .lead {
1259
- margin-bottom: 20px;
1260
- font-size: 16px;
1261
- font-weight: 300;
1262
- line-height: 1.4;
1263
- }
1264
- @media (min-width: 768px) {
1265
- .lead {
1266
- font-size: 21px;
1267
- }
1268
- }
1269
- small,
1270
- .small {
1271
- font-size: 85%;
1272
- }
1273
- mark,
1274
- .mark {
1275
- padding: .2em;
1276
- background-color: #fcf8e3;
1277
- }
1278
- .text-left {
1279
- text-align: left;
1280
- }
1281
- .text-right {
1282
- text-align: right;
1283
- }
1284
- .text-center {
1285
- text-align: center;
1286
- }
1287
- .text-justify {
1288
- text-align: justify;
1289
- }
1290
- .text-nowrap {
1291
- white-space: nowrap;
1292
- }
1293
- .text-lowercase {
1294
- text-transform: lowercase;
1295
- }
1296
- .text-uppercase {
1297
- text-transform: uppercase;
1298
- }
1299
- .text-capitalize {
1300
- text-transform: capitalize;
1301
- }
1302
- .text-muted {
1303
- color: #777;
1304
- }
1305
- .text-primary {
1306
- color: #337ab7;
1307
- }
1308
- a.text-primary:hover,
1309
- a.text-primary:focus {
1310
- color: #286090;
1311
- }
1312
- .text-success {
1313
- color: #3c763d;
1314
- }
1315
- a.text-success:hover,
1316
- a.text-success:focus {
1317
- color: #2b542c;
1318
- }
1319
- .text-info {
1320
- color: #31708f;
1321
- }
1322
- a.text-info:hover,
1323
- a.text-info:focus {
1324
- color: #245269;
1325
- }
1326
- .text-warning {
1327
- color: #8a6d3b;
1328
- }
1329
- a.text-warning:hover,
1330
- a.text-warning:focus {
1331
- color: #66512c;
1332
- }
1333
- .text-danger {
1334
- color: #a94442;
1335
- }
1336
- a.text-danger:hover,
1337
- a.text-danger:focus {
1338
- color: #843534;
1339
- }
1340
- .bg-primary {
1341
- color: #fff;
1342
- background-color: #337ab7;
1343
- }
1344
- a.bg-primary:hover,
1345
- a.bg-primary:focus {
1346
- background-color: #286090;
1347
- }
1348
- .bg-success {
1349
- background-color: #dff0d8;
1350
- }
1351
- a.bg-success:hover,
1352
- a.bg-success:focus {
1353
- background-color: #c1e2b3;
1354
- }
1355
- .bg-info {
1356
- background-color: #d9edf7;
1357
- }
1358
- a.bg-info:hover,
1359
- a.bg-info:focus {
1360
- background-color: #afd9ee;
1361
- }
1362
- .bg-warning {
1363
- background-color: #fcf8e3;
1364
- }
1365
- a.bg-warning:hover,
1366
- a.bg-warning:focus {
1367
- background-color: #f7ecb5;
1368
- }
1369
- .bg-danger {
1370
- background-color: #f2dede;
1371
- }
1372
- a.bg-danger:hover,
1373
- a.bg-danger:focus {
1374
- background-color: #e4b9b9;
1375
- }
1376
- .page-header {
1377
- padding-bottom: 9px;
1378
- margin: 40px 0 20px;
1379
- border-bottom: 1px solid #eee;
1380
- }
1381
- ul,
1382
- ol {
1383
- margin-top: 0;
1384
- margin-bottom: 10px;
1385
- }
1386
- ul ul,
1387
- ol ul,
1388
- ul ol,
1389
- ol ol {
1390
- margin-bottom: 0;
1391
- }
1392
- .list-unstyled {
1393
- padding-left: 0;
1394
- list-style: none;
1395
- }
1396
- .list-inline {
1397
- padding-left: 0;
1398
- margin-left: -5px;
1399
- list-style: none;
1400
- }
1401
- .list-inline > li {
1402
- display: inline-block;
1403
- padding-right: 5px;
1404
- padding-left: 5px;
1405
- }
1406
- dl {
1407
- margin-top: 0;
1408
- margin-bottom: 20px;
1409
- }
1410
- dt,
1411
- dd {
1412
- line-height: 1.42857143;
1413
- }
1414
- dt {
1415
- font-weight: bold;
1416
- }
1417
- dd {
1418
- margin-left: 0;
1419
- }
1420
- @media (min-width: 768px) {
1421
- .dl-horizontal dt {
1422
- float: left;
1423
- width: 160px;
1424
- overflow: hidden;
1425
- clear: left;
1426
- text-align: right;
1427
- text-overflow: ellipsis;
1428
- white-space: nowrap;
1429
- }
1430
- .dl-horizontal dd {
1431
- margin-left: 180px;
1432
- }
1433
- }
1434
- abbr[title],
1435
- abbr[data-original-title] {
1436
- cursor: help;
1437
- border-bottom: 1px dotted #777;
1438
- }
1439
- .initialism {
1440
- font-size: 90%;
1441
- text-transform: uppercase;
1442
- }
1443
- blockquote {
1444
- padding: 10px 20px;
1445
- margin: 0 0 20px;
1446
- font-size: 17.5px;
1447
- border-left: 5px solid #eee;
1448
- }
1449
- blockquote p:last-child,
1450
- blockquote ul:last-child,
1451
- blockquote ol:last-child {
1452
- margin-bottom: 0;
1453
- }
1454
- blockquote footer,
1455
- blockquote small,
1456
- blockquote .small {
1457
- display: block;
1458
- font-size: 80%;
1459
- line-height: 1.42857143;
1460
- color: #777;
1461
- }
1462
- blockquote footer:before,
1463
- blockquote small:before,
1464
- blockquote .small:before {
1465
- content: '\2014 \00A0';
1466
- }
1467
- .blockquote-reverse,
1468
- blockquote.pull-right {
1469
- padding-right: 15px;
1470
- padding-left: 0;
1471
- text-align: right;
1472
- border-right: 5px solid #eee;
1473
- border-left: 0;
1474
- }
1475
- .blockquote-reverse footer:before,
1476
- blockquote.pull-right footer:before,
1477
- .blockquote-reverse small:before,
1478
- blockquote.pull-right small:before,
1479
- .blockquote-reverse .small:before,
1480
- blockquote.pull-right .small:before {
1481
- content: '';
1482
- }
1483
- .blockquote-reverse footer:after,
1484
- blockquote.pull-right footer:after,
1485
- .blockquote-reverse small:after,
1486
- blockquote.pull-right small:after,
1487
- .blockquote-reverse .small:after,
1488
- blockquote.pull-right .small:after {
1489
- content: '\00A0 \2014';
1490
- }
1491
- address {
1492
- margin-bottom: 20px;
1493
- font-style: normal;
1494
- line-height: 1.42857143;
1495
- }
1496
- code,
1497
- kbd,
1498
- pre,
1499
- samp {
1500
- font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
1501
- }
1502
- code {
1503
- padding: 2px 4px;
1504
- font-size: 90%;
1505
- color: #c7254e;
1506
- background-color: #f9f2f4;
1507
- border-radius: 4px;
1508
- }
1509
- kbd {
1510
- padding: 2px 4px;
1511
- font-size: 90%;
1512
- color: #fff;
1513
- background-color: #333;
1514
- border-radius: 3px;
1515
- -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);
1516
- box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);
1517
- }
1518
- kbd kbd {
1519
- padding: 0;
1520
- font-size: 100%;
1521
- font-weight: bold;
1522
- -webkit-box-shadow: none;
1523
- box-shadow: none;
1524
- }
1525
- pre {
1526
- display: block;
1527
- padding: 9.5px;
1528
- margin: 0 0 10px;
1529
- font-size: 13px;
1530
- line-height: 1.42857143;
1531
- color: #333;
1532
- word-break: break-all;
1533
- word-wrap: break-word;
1534
- background-color: #f5f5f5;
1535
- border: 1px solid #ccc;
1536
- border-radius: 4px;
1537
- }
1538
- pre code {
1539
- padding: 0;
1540
- font-size: inherit;
1541
- color: inherit;
1542
- white-space: pre-wrap;
1543
- background-color: transparent;
1544
- border-radius: 0;
1545
- }
1546
- .pre-scrollable {
1547
- max-height: 340px;
1548
- overflow-y: scroll;
1549
- }
1550
- .container {
1551
- padding-right: 15px;
1552
- padding-left: 15px;
1553
- margin-right: auto;
1554
- margin-left: auto;
1555
- }
1556
- @media (min-width: 768px) {
1557
- .container {
1558
- width: 750px;
1559
- }
1560
- }
1561
- @media (min-width: 992px) {
1562
- .container {
1563
- width: 970px;
1564
- }
1565
- }
1566
- @media (min-width: 1200px) {
1567
- .container {
1568
- width: 1170px;
1569
- }
1570
- }
1571
- .container-fluid {
1572
- padding-right: 15px;
1573
- padding-left: 15px;
1574
- margin-right: auto;
1575
- margin-left: auto;
1576
- }
1577
- .row {
1578
- margin-right: -15px;
1579
- margin-left: -15px;
1580
- }
1581
- .col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
1582
- position: relative;
1583
- min-height: 1px;
1584
- padding-right: 15px;
1585
- padding-left: 15px;
1586
- }
1587
- .col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
1588
- float: left;
1589
- }
1590
- .col-xs-12 {
1591
- width: 100%;
1592
- }
1593
- .col-xs-11 {
1594
- width: 91.66666667%;
1595
- }
1596
- .col-xs-10 {
1597
- width: 83.33333333%;
1598
- }
1599
- .col-xs-9 {
1600
- width: 75%;
1601
- }
1602
- .col-xs-8 {
1603
- width: 66.66666667%;
1604
- }
1605
- .col-xs-7 {
1606
- width: 58.33333333%;
1607
- }
1608
- .col-xs-6 {
1609
- width: 50%;
1610
- }
1611
- .col-xs-5 {
1612
- width: 41.66666667%;
1613
- }
1614
- .col-xs-4 {
1615
- width: 33.33333333%;
1616
- }
1617
- .col-xs-3 {
1618
- width: 25%;
1619
- }
1620
- .col-xs-2 {
1621
- width: 16.66666667%;
1622
- }
1623
- .col-xs-1 {
1624
- width: 8.33333333%;
1625
- }
1626
- .col-xs-pull-12 {
1627
- right: 100%;
1628
- }
1629
- .col-xs-pull-11 {
1630
- right: 91.66666667%;
1631
- }
1632
- .col-xs-pull-10 {
1633
- right: 83.33333333%;
1634
- }
1635
- .col-xs-pull-9 {
1636
- right: 75%;
1637
- }
1638
- .col-xs-pull-8 {
1639
- right: 66.66666667%;
1640
- }
1641
- .col-xs-pull-7 {
1642
- right: 58.33333333%;
1643
- }
1644
- .col-xs-pull-6 {
1645
- right: 50%;
1646
- }
1647
- .col-xs-pull-5 {
1648
- right: 41.66666667%;
1649
- }
1650
- .col-xs-pull-4 {
1651
- right: 33.33333333%;
1652
- }
1653
- .col-xs-pull-3 {
1654
- right: 25%;
1655
- }
1656
- .col-xs-pull-2 {
1657
- right: 16.66666667%;
1658
- }
1659
- .col-xs-pull-1 {
1660
- right: 8.33333333%;
1661
- }
1662
- .col-xs-pull-0 {
1663
- right: auto;
1664
- }
1665
- .col-xs-push-12 {
1666
- left: 100%;
1667
- }
1668
- .col-xs-push-11 {
1669
- left: 91.66666667%;
1670
- }
1671
- .col-xs-push-10 {
1672
- left: 83.33333333%;
1673
- }
1674
- .col-xs-push-9 {
1675
- left: 75%;
1676
- }
1677
- .col-xs-push-8 {
1678
- left: 66.66666667%;
1679
- }
1680
- .col-xs-push-7 {
1681
- left: 58.33333333%;
1682
- }
1683
- .col-xs-push-6 {
1684
- left: 50%;
1685
- }
1686
- .col-xs-push-5 {
1687
- left: 41.66666667%;
1688
- }
1689
- .col-xs-push-4 {
1690
- left: 33.33333333%;
1691
- }
1692
- .col-xs-push-3 {
1693
- left: 25%;
1694
- }
1695
- .col-xs-push-2 {
1696
- left: 16.66666667%;
1697
- }
1698
- .col-xs-push-1 {
1699
- left: 8.33333333%;
1700
- }
1701
- .col-xs-push-0 {
1702
- left: auto;
1703
- }
1704
- .col-xs-offset-12 {
1705
- margin-left: 100%;
1706
- }
1707
- .col-xs-offset-11 {
1708
- margin-left: 91.66666667%;
1709
- }
1710
- .col-xs-offset-10 {
1711
- margin-left: 83.33333333%;
1712
- }
1713
- .col-xs-offset-9 {
1714
- margin-left: 75%;
1715
- }
1716
- .col-xs-offset-8 {
1717
- margin-left: 66.66666667%;
1718
- }
1719
- .col-xs-offset-7 {
1720
- margin-left: 58.33333333%;
1721
- }
1722
- .col-xs-offset-6 {
1723
- margin-left: 50%;
1724
- }
1725
- .col-xs-offset-5 {
1726
- margin-left: 41.66666667%;
1727
- }
1728
- .col-xs-offset-4 {
1729
- margin-left: 33.33333333%;
1730
- }
1731
- .col-xs-offset-3 {
1732
- margin-left: 25%;
1733
- }
1734
- .col-xs-offset-2 {
1735
- margin-left: 16.66666667%;
1736
- }
1737
- .col-xs-offset-1 {
1738
- margin-left: 8.33333333%;
1739
- }
1740
- .col-xs-offset-0 {
1741
- margin-left: 0;
1742
- }
1743
- @media (min-width: 768px) {
1744
- .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
1745
- float: left;
1746
- }
1747
- .col-sm-12 {
1748
- width: 100%;
1749
- }
1750
- .col-sm-11 {
1751
- width: 91.66666667%;
1752
- }
1753
- .col-sm-10 {
1754
- width: 83.33333333%;
1755
- }
1756
- .col-sm-9 {
1757
- width: 75%;
1758
- }
1759
- .col-sm-8 {
1760
- width: 66.66666667%;
1761
- }
1762
- .col-sm-7 {
1763
- width: 58.33333333%;
1764
- }
1765
- .col-sm-6 {
1766
- width: 50%;
1767
- }
1768
- .col-sm-5 {
1769
- width: 41.66666667%;
1770
- }
1771
- .col-sm-4 {
1772
- width: 33.33333333%;
1773
- }
1774
- .col-sm-3 {
1775
- width: 25%;
1776
- }
1777
- .col-sm-2 {
1778
- width: 16.66666667%;
1779
- }
1780
- .col-sm-1 {
1781
- width: 8.33333333%;
1782
- }
1783
- .col-sm-pull-12 {
1784
- right: 100%;
1785
- }
1786
- .col-sm-pull-11 {
1787
- right: 91.66666667%;
1788
- }
1789
- .col-sm-pull-10 {
1790
- right: 83.33333333%;
1791
- }
1792
- .col-sm-pull-9 {
1793
- right: 75%;
1794
- }
1795
- .col-sm-pull-8 {
1796
- right: 66.66666667%;
1797
- }
1798
- .col-sm-pull-7 {
1799
- right: 58.33333333%;
1800
- }
1801
- .col-sm-pull-6 {
1802
- right: 50%;
1803
- }
1804
- .col-sm-pull-5 {
1805
- right: 41.66666667%;
1806
- }
1807
- .col-sm-pull-4 {
1808
- right: 33.33333333%;
1809
- }
1810
- .col-sm-pull-3 {
1811
- right: 25%;
1812
- }
1813
- .col-sm-pull-2 {
1814
- right: 16.66666667%;
1815
- }
1816
- .col-sm-pull-1 {
1817
- right: 8.33333333%;
1818
- }
1819
- .col-sm-pull-0 {
1820
- right: auto;
1821
- }
1822
- .col-sm-push-12 {
1823
- left: 100%;
1824
- }
1825
- .col-sm-push-11 {
1826
- left: 91.66666667%;
1827
- }
1828
- .col-sm-push-10 {
1829
- left: 83.33333333%;
1830
- }
1831
- .col-sm-push-9 {
1832
- left: 75%;
1833
- }
1834
- .col-sm-push-8 {
1835
- left: 66.66666667%;
1836
- }
1837
- .col-sm-push-7 {
1838
- left: 58.33333333%;
1839
- }
1840
- .col-sm-push-6 {
1841
- left: 50%;
1842
- }
1843
- .col-sm-push-5 {
1844
- left: 41.66666667%;
1845
- }
1846
- .col-sm-push-4 {
1847
- left: 33.33333333%;
1848
- }
1849
- .col-sm-push-3 {
1850
- left: 25%;
1851
- }
1852
- .col-sm-push-2 {
1853
- left: 16.66666667%;
1854
- }
1855
- .col-sm-push-1 {
1856
- left: 8.33333333%;
1857
- }
1858
- .col-sm-push-0 {
1859
- left: auto;
1860
- }
1861
- .col-sm-offset-12 {
1862
- margin-left: 100%;
1863
- }
1864
- .col-sm-offset-11 {
1865
- margin-left: 91.66666667%;
1866
- }
1867
- .col-sm-offset-10 {
1868
- margin-left: 83.33333333%;
1869
- }
1870
- .col-sm-offset-9 {
1871
- margin-left: 75%;
1872
- }
1873
- .col-sm-offset-8 {
1874
- margin-left: 66.66666667%;
1875
- }
1876
- .col-sm-offset-7 {
1877
- margin-left: 58.33333333%;
1878
- }
1879
- .col-sm-offset-6 {
1880
- margin-left: 50%;
1881
- }
1882
- .col-sm-offset-5 {
1883
- margin-left: 41.66666667%;
1884
- }
1885
- .col-sm-offset-4 {
1886
- margin-left: 33.33333333%;
1887
- }
1888
- .col-sm-offset-3 {
1889
- margin-left: 25%;
1890
- }
1891
- .col-sm-offset-2 {
1892
- margin-left: 16.66666667%;
1893
- }
1894
- .col-sm-offset-1 {
1895
- margin-left: 8.33333333%;
1896
- }
1897
- .col-sm-offset-0 {
1898
- margin-left: 0;
1899
- }
1900
- }
1901
- @media (min-width: 992px) {
1902
- .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
1903
- float: left;
1904
- }
1905
- .col-md-12 {
1906
- width: 100%;
1907
- }
1908
- .col-md-11 {
1909
- width: 91.66666667%;
1910
- }
1911
- .col-md-10 {
1912
- width: 83.33333333%;
1913
- }
1914
- .col-md-9 {
1915
- width: 75%;
1916
- }
1917
- .col-md-8 {
1918
- width: 66.66666667%;
1919
- }
1920
- .col-md-7 {
1921
- width: 58.33333333%;
1922
- }
1923
- .col-md-6 {
1924
- width: 50%;
1925
- }
1926
- .col-md-5 {
1927
- width: 41.66666667%;
1928
- }
1929
- .col-md-4 {
1930
- width: 33.33333333%;
1931
- }
1932
- .col-md-3 {
1933
- width: 25%;
1934
- }
1935
- .col-md-2 {
1936
- width: 16.66666667%;
1937
- }
1938
- .col-md-1 {
1939
- width: 8.33333333%;
1940
- }
1941
- .col-md-pull-12 {
1942
- right: 100%;
1943
- }
1944
- .col-md-pull-11 {
1945
- right: 91.66666667%;
1946
- }
1947
- .col-md-pull-10 {
1948
- right: 83.33333333%;
1949
- }
1950
- .col-md-pull-9 {
1951
- right: 75%;
1952
- }
1953
- .col-md-pull-8 {
1954
- right: 66.66666667%;
1955
- }
1956
- .col-md-pull-7 {
1957
- right: 58.33333333%;
1958
- }
1959
- .col-md-pull-6 {
1960
- right: 50%;
1961
- }
1962
- .col-md-pull-5 {
1963
- right: 41.66666667%;
1964
- }
1965
- .col-md-pull-4 {
1966
- right: 33.33333333%;
1967
- }
1968
- .col-md-pull-3 {
1969
- right: 25%;
1970
- }
1971
- .col-md-pull-2 {
1972
- right: 16.66666667%;
1973
- }
1974
- .col-md-pull-1 {
1975
- right: 8.33333333%;
1976
- }
1977
- .col-md-pull-0 {
1978
- right: auto;
1979
- }
1980
- .col-md-push-12 {
1981
- left: 100%;
1982
- }
1983
- .col-md-push-11 {
1984
- left: 91.66666667%;
1985
- }
1986
- .col-md-push-10 {
1987
- left: 83.33333333%;
1988
- }
1989
- .col-md-push-9 {
1990
- left: 75%;
1991
- }
1992
- .col-md-push-8 {
1993
- left: 66.66666667%;
1994
- }
1995
- .col-md-push-7 {
1996
- left: 58.33333333%;
1997
- }
1998
- .col-md-push-6 {
1999
- left: 50%;
2000
- }
2001
- .col-md-push-5 {
2002
- left: 41.66666667%;
2003
- }
2004
- .col-md-push-4 {
2005
- left: 33.33333333%;
2006
- }
2007
- .col-md-push-3 {
2008
- left: 25%;
2009
- }
2010
- .col-md-push-2 {
2011
- left: 16.66666667%;
2012
- }
2013
- .col-md-push-1 {
2014
- left: 8.33333333%;
2015
- }
2016
- .col-md-push-0 {
2017
- left: auto;
2018
- }
2019
- .col-md-offset-12 {
2020
- margin-left: 100%;
2021
- }
2022
- .col-md-offset-11 {
2023
- margin-left: 91.66666667%;
2024
- }
2025
- .col-md-offset-10 {
2026
- margin-left: 83.33333333%;
2027
- }
2028
- .col-md-offset-9 {
2029
- margin-left: 75%;
2030
- }
2031
- .col-md-offset-8 {
2032
- margin-left: 66.66666667%;
2033
- }
2034
- .col-md-offset-7 {
2035
- margin-left: 58.33333333%;
2036
- }
2037
- .col-md-offset-6 {
2038
- margin-left: 50%;
2039
- }
2040
- .col-md-offset-5 {
2041
- margin-left: 41.66666667%;
2042
- }
2043
- .col-md-offset-4 {
2044
- margin-left: 33.33333333%;
2045
- }
2046
- .col-md-offset-3 {
2047
- margin-left: 25%;
2048
- }
2049
- .col-md-offset-2 {
2050
- margin-left: 16.66666667%;
2051
- }
2052
- .col-md-offset-1 {
2053
- margin-left: 8.33333333%;
2054
- }
2055
- .col-md-offset-0 {
2056
- margin-left: 0;
2057
- }
2058
- }
2059
- @media (min-width: 1200px) {
2060
- .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
2061
- float: left;
2062
- }
2063
- .col-lg-12 {
2064
- width: 100%;
2065
- }
2066
- .col-lg-11 {
2067
- width: 91.66666667%;
2068
- }
2069
- .col-lg-10 {
2070
- width: 83.33333333%;
2071
- }
2072
- .col-lg-9 {
2073
- width: 75%;
2074
- }
2075
- .col-lg-8 {
2076
- width: 66.66666667%;
2077
- }
2078
- .col-lg-7 {
2079
- width: 58.33333333%;
2080
- }
2081
- .col-lg-6 {
2082
- width: 50%;
2083
- }
2084
- .col-lg-5 {
2085
- width: 41.66666667%;
2086
- }
2087
- .col-lg-4 {
2088
- width: 33.33333333%;
2089
- }
2090
- .col-lg-3 {
2091
- width: 25%;
2092
- }
2093
- .col-lg-2 {
2094
- width: 16.66666667%;
2095
- }
2096
- .col-lg-1 {
2097
- width: 8.33333333%;
2098
- }
2099
- .col-lg-pull-12 {
2100
- right: 100%;
2101
- }
2102
- .col-lg-pull-11 {
2103
- right: 91.66666667%;
2104
- }
2105
- .col-lg-pull-10 {
2106
- right: 83.33333333%;
2107
- }
2108
- .col-lg-pull-9 {
2109
- right: 75%;
2110
- }
2111
- .col-lg-pull-8 {
2112
- right: 66.66666667%;
2113
- }
2114
- .col-lg-pull-7 {
2115
- right: 58.33333333%;
2116
- }
2117
- .col-lg-pull-6 {
2118
- right: 50%;
2119
- }
2120
- .col-lg-pull-5 {
2121
- right: 41.66666667%;
2122
- }
2123
- .col-lg-pull-4 {
2124
- right: 33.33333333%;
2125
- }
2126
- .col-lg-pull-3 {
2127
- right: 25%;
2128
- }
2129
- .col-lg-pull-2 {
2130
- right: 16.66666667%;
2131
- }
2132
- .col-lg-pull-1 {
2133
- right: 8.33333333%;
2134
- }
2135
- .col-lg-pull-0 {
2136
- right: auto;
2137
- }
2138
- .col-lg-push-12 {
2139
- left: 100%;
2140
- }
2141
- .col-lg-push-11 {
2142
- left: 91.66666667%;
2143
- }
2144
- .col-lg-push-10 {
2145
- left: 83.33333333%;
2146
- }
2147
- .col-lg-push-9 {
2148
- left: 75%;
2149
- }
2150
- .col-lg-push-8 {
2151
- left: 66.66666667%;
2152
- }
2153
- .col-lg-push-7 {
2154
- left: 58.33333333%;
2155
- }
2156
- .col-lg-push-6 {
2157
- left: 50%;
2158
- }
2159
- .col-lg-push-5 {
2160
- left: 41.66666667%;
2161
- }
2162
- .col-lg-push-4 {
2163
- left: 33.33333333%;
2164
- }
2165
- .col-lg-push-3 {
2166
- left: 25%;
2167
- }
2168
- .col-lg-push-2 {
2169
- left: 16.66666667%;
2170
- }
2171
- .col-lg-push-1 {
2172
- left: 8.33333333%;
2173
- }
2174
- .col-lg-push-0 {
2175
- left: auto;
2176
- }
2177
- .col-lg-offset-12 {
2178
- margin-left: 100%;
2179
- }
2180
- .col-lg-offset-11 {
2181
- margin-left: 91.66666667%;
2182
- }
2183
- .col-lg-offset-10 {
2184
- margin-left: 83.33333333%;
2185
- }
2186
- .col-lg-offset-9 {
2187
- margin-left: 75%;
2188
- }
2189
- .col-lg-offset-8 {
2190
- margin-left: 66.66666667%;
2191
- }
2192
- .col-lg-offset-7 {
2193
- margin-left: 58.33333333%;
2194
- }
2195
- .col-lg-offset-6 {
2196
- margin-left: 50%;
2197
- }
2198
- .col-lg-offset-5 {
2199
- margin-left: 41.66666667%;
2200
- }
2201
- .col-lg-offset-4 {
2202
- margin-left: 33.33333333%;
2203
- }
2204
- .col-lg-offset-3 {
2205
- margin-left: 25%;
2206
- }
2207
- .col-lg-offset-2 {
2208
- margin-left: 16.66666667%;
2209
- }
2210
- .col-lg-offset-1 {
2211
- margin-left: 8.33333333%;
2212
- }
2213
- .col-lg-offset-0 {
2214
- margin-left: 0;
2215
- }
2216
- }
2217
- table {
2218
- background-color: transparent;
2219
- }
2220
- caption {
2221
- padding-top: 8px;
2222
- padding-bottom: 8px;
2223
- color: #777;
2224
- text-align: left;
2225
- }
2226
-
2227
- .table {
2228
- width: 100%;
2229
- max-width: 100%;
2230
- margin-bottom: 20px;
2231
- }
2232
- .table > thead > tr > th,
2233
- .table > tbody > tr > th,
2234
- .table > tfoot > tr > th,
2235
- .table > thead > tr > td,
2236
- .table > tbody > tr > td,
2237
- .table > tfoot > tr > td {
2238
- padding: 8px;
2239
- line-height: 1.42857143;
2240
- vertical-align: top;
2241
- border-top: 1px solid #ddd;
2242
- }
2243
- .table > thead > tr > th {
2244
- vertical-align: bottom;
2245
- border-bottom: 2px solid #ddd;
2246
- }
2247
- .table > caption + thead > tr:first-child > th,
2248
- .table > colgroup + thead > tr:first-child > th,
2249
- .table > thead:first-child > tr:first-child > th,
2250
- .table > caption + thead > tr:first-child > td,
2251
- .table > colgroup + thead > tr:first-child > td,
2252
- .table > thead:first-child > tr:first-child > td {
2253
- border-top: 0;
2254
- }
2255
- .table > tbody + tbody {
2256
- border-top: 2px solid #ddd;
2257
- }
2258
- .table .table {
2259
- background-color: #fff;
2260
- }
2261
-
2262
- .table-bordered {
2263
- border: 1px solid #ddd;
2264
- }
2265
- .table-bordered > thead > tr > th,
2266
- .table-bordered > tbody > tr > th,
2267
- .table-bordered > tfoot > tr > th,
2268
- .table-bordered > thead > tr > td,
2269
- .table-bordered > tbody > tr > td,
2270
- .table-bordered > tfoot > tr > td {
2271
- border: 1px solid #ddd;
2272
- }
2273
- .table-bordered > thead > tr > th,
2274
- .table-bordered > thead > tr > td {
2275
- border-bottom-width: 2px;
2276
- }
2277
- .table-striped > tbody > tr:nth-of-type(odd) {
2278
- background-color: #f9f9f9;
2279
- }
2280
- .table-hover > tbody > tr:hover {
2281
- background-color: #f5f5f5;
2282
- }
2283
- table col[class*="col-"] {
2284
- position: static;
2285
- display: table-column;
2286
- float: none;
2287
- }
2288
- table td[class*="col-"],
2289
- table th[class*="col-"] {
2290
- position: static;
2291
- display: table-cell;
2292
- float: none;
2293
- }
2294
- .table > thead > tr > td.active,
2295
- .table > tbody > tr > td.active,
2296
- .table > tfoot > tr > td.active,
2297
- .table > thead > tr > th.active,
2298
- .table > tbody > tr > th.active,
2299
- .table > tfoot > tr > th.active,
2300
- .table > thead > tr.active > td,
2301
- .table > tbody > tr.active > td,
2302
- .table > tfoot > tr.active > td,
2303
- .table > thead > tr.active > th,
2304
- .table > tbody > tr.active > th,
2305
- .table > tfoot > tr.active > th {
2306
- background-color: #f5f5f5;
2307
- }
2308
- .table-hover > tbody > tr > td.active:hover,
2309
- .table-hover > tbody > tr > th.active:hover,
2310
- .table-hover > tbody > tr.active:hover > td,
2311
- .table-hover > tbody > tr:hover > .active,
2312
- .table-hover > tbody > tr.active:hover > th {
2313
- background-color: #e8e8e8;
2314
- }
2315
- .table > thead > tr > td.success,
2316
- .table > tbody > tr > td.success,
2317
- .table > tfoot > tr > td.success,
2318
- .table > thead > tr > th.success,
2319
- .table > tbody > tr > th.success,
2320
- .table > tfoot > tr > th.success,
2321
- .table > thead > tr.success > td,
2322
- .table > tbody > tr.success > td,
2323
- .table > tfoot > tr.success > td,
2324
- .table > thead > tr.success > th,
2325
- .table > tbody > tr.success > th,
2326
- .table > tfoot > tr.success > th {
2327
- background-color: #dff0d8;
2328
- }
2329
- .table-hover > tbody > tr > td.success:hover,
2330
- .table-hover > tbody > tr > th.success:hover,
2331
- .table-hover > tbody > tr.success:hover > td,
2332
- .table-hover > tbody > tr:hover > .success,
2333
- .table-hover > tbody > tr.success:hover > th {
2334
- background-color: #d0e9c6;
2335
- }
2336
- .table > thead > tr > td.info,
2337
- .table > tbody > tr > td.info,
2338
- .table > tfoot > tr > td.info,
2339
- .table > thead > tr > th.info,
2340
- .table > tbody > tr > th.info,
2341
- .table > tfoot > tr > th.info,
2342
- .table > thead > tr.info > td,
2343
- .table > tbody > tr.info > td,
2344
- .table > tfoot > tr.info > td,
2345
- .table > thead > tr.info > th,
2346
- .table > tbody > tr.info > th,
2347
- .table > tfoot > tr.info > th {
2348
- background-color: #d9edf7;
2349
- }
2350
- .table-hover > tbody > tr > td.info:hover,
2351
- .table-hover > tbody > tr > th.info:hover,
2352
- .table-hover > tbody > tr.info:hover > td,
2353
- .table-hover > tbody > tr:hover > .info,
2354
- .table-hover > tbody > tr.info:hover > th {
2355
- background-color: #c4e3f3;
2356
- }
2357
- .table > thead > tr > td.warning,
2358
- .table > tbody > tr > td.warning,
2359
- .table > tfoot > tr > td.warning,
2360
- .table > thead > tr > th.warning,
2361
- .table > tbody > tr > th.warning,
2362
- .table > tfoot > tr > th.warning,
2363
- .table > thead > tr.warning > td,
2364
- .table > tbody > tr.warning > td,
2365
- .table > tfoot > tr.warning > td,
2366
- .table > thead > tr.warning > th,
2367
- .table > tbody > tr.warning > th,
2368
- .table > tfoot > tr.warning > th {
2369
- background-color: #fcf8e3;
2370
- }
2371
- .table-hover > tbody > tr > td.warning:hover,
2372
- .table-hover > tbody > tr > th.warning:hover,
2373
- .table-hover > tbody > tr.warning:hover > td,
2374
- .table-hover > tbody > tr:hover > .warning,
2375
- .table-hover > tbody > tr.warning:hover > th {
2376
- background-color: #faf2cc;
2377
- }
2378
- .table > thead > tr > td.danger,
2379
- .table > tbody > tr > td.danger,
2380
- .table > tfoot > tr > td.danger,
2381
- .table > thead > tr > th.danger,
2382
- .table > tbody > tr > th.danger,
2383
- .table > tfoot > tr > th.danger,
2384
- .table > thead > tr.danger > td,
2385
- .table > tbody > tr.danger > td,
2386
- .table > tfoot > tr.danger > td,
2387
- .table > thead > tr.danger > th,
2388
- .table > tbody > tr.danger > th,
2389
- .table > tfoot > tr.danger > th {
2390
- background-color: #f2dede;
2391
- }
2392
- .table-hover > tbody > tr > td.danger:hover,
2393
- .table-hover > tbody > tr > th.danger:hover,
2394
- .table-hover > tbody > tr.danger:hover > td,
2395
- .table-hover > tbody > tr:hover > .danger,
2396
- .table-hover > tbody > tr.danger:hover > th {
2397
- background-color: #ebcccc;
2398
- }
2399
- .table-responsive {
2400
- min-height: .01%;
2401
- overflow-x: auto;
2402
- }
2403
- @media screen and (max-width: 767px) {
2404
- .table-responsive {
2405
- width: 100%;
2406
- margin-bottom: 15px;
2407
- overflow-y: hidden;
2408
- -ms-overflow-style: -ms-autohiding-scrollbar;
2409
- border: 1px solid #ddd;
2410
- }
2411
- .table-responsive > .table {
2412
- margin-bottom: 0;
2413
- }
2414
- .table-responsive > .table > thead > tr > th,
2415
- .table-responsive > .table > tbody > tr > th,
2416
- .table-responsive > .table > tfoot > tr > th,
2417
- .table-responsive > .table > thead > tr > td,
2418
- .table-responsive > .table > tbody > tr > td,
2419
- .table-responsive > .table > tfoot > tr > td {
2420
- white-space: nowrap;
2421
- }
2422
- .table-responsive > .table-bordered {
2423
- border: 0;
2424
- }
2425
- .table-responsive > .table-bordered > thead > tr > th:first-child,
2426
- .table-responsive > .table-bordered > tbody > tr > th:first-child,
2427
- .table-responsive > .table-bordered > tfoot > tr > th:first-child,
2428
- .table-responsive > .table-bordered > thead > tr > td:first-child,
2429
- .table-responsive > .table-bordered > tbody > tr > td:first-child,
2430
- .table-responsive > .table-bordered > tfoot > tr > td:first-child {
2431
- border-left: 0;
2432
- }
2433
- .table-responsive > .table-bordered > thead > tr > th:last-child,
2434
- .table-responsive > .table-bordered > tbody > tr > th:last-child,
2435
- .table-responsive > .table-bordered > tfoot > tr > th:last-child,
2436
- .table-responsive > .table-bordered > thead > tr > td:last-child,
2437
- .table-responsive > .table-bordered > tbody > tr > td:last-child,
2438
- .table-responsive > .table-bordered > tfoot > tr > td:last-child {
2439
- border-right: 0;
2440
- }
2441
- .table-responsive > .table-bordered > tbody > tr:last-child > th,
2442
- .table-responsive > .table-bordered > tfoot > tr:last-child > th,
2443
- .table-responsive > .table-bordered > tbody > tr:last-child > td,
2444
- .table-responsive > .table-bordered > tfoot > tr:last-child > td {
2445
- border-bottom: 0;
2446
- }
2447
- }
2448
- fieldset {
2449
- min-width: 0;
2450
- padding: 0;
2451
- margin: 0;
2452
- border: 0;
2453
- }
2454
- legend {
2455
- display: block;
2456
- width: 100%;
2457
- padding: 0;
2458
- margin-bottom: 20px;
2459
- font-size: 21px;
2460
- line-height: inherit;
2461
- color: #333;
2462
- border: 0;
2463
- border-bottom: 1px solid #e5e5e5;
2464
- }
2465
- label {
2466
- display: inline-block;
2467
- max-width: 100%;
2468
- margin-bottom: 5px;
2469
- }
2470
- input[type="search"] {
2471
- -webkit-box-sizing: border-box;
2472
- -moz-box-sizing: border-box;
2473
- box-sizing: border-box;
2474
- }
2475
- input[type="radio"],
2476
- input[type="checkbox"] {
2477
- //margin: 4px 0 0;
2478
- margin-top: 1px \9;
2479
- line-height: normal;
2480
- }
2481
- input[type="file"] {
2482
- display: block;
2483
- }
2484
- input[type="range"] {
2485
- display: block;
2486
- width: 100%;
2487
- }
2488
- select[multiple],
2489
- select[size] {
2490
- height: auto;
2491
- }
2492
- input[type="file"]:focus,
2493
- input[type="radio"]:focus,
2494
- input[type="checkbox"]:focus {
2495
- /* outline: thin dotted;
2496
- outline: 5px auto -webkit-focus-ring-color;
2497
- outline-offset: -2px; */
2498
- }
2499
- output {
2500
- display: block;
2501
- padding-top: 7px;
2502
- font-size: 14px;
2503
- line-height: 1.42857143;
2504
- color: #555;
2505
- }
2506
- .form-control {
2507
- display: block;
2508
- width: 100%;
2509
- height: 34px;
2510
- padding: 6px 12px;
2511
- font-size: 14px;
2512
- line-height: 1.42857143;
2513
- color: #555;
2514
- background-color: #fff;
2515
- background-image: none;
2516
- border: 1px solid #ccc;
2517
- border-radius: 4px;
2518
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
2519
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
2520
- -webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;
2521
- -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
2522
- transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
2523
- }
2524
- .form-control:focus {
2525
- border-color: #66afe9;
2526
- outline: 0;
2527
- -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);
2528
- box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);
2529
- }
2530
- .form-control::-moz-placeholder {
2531
- color: #999;
2532
- opacity: 1;
2533
- }
2534
- .form-control:-ms-input-placeholder {
2535
- color: #999;
2536
- }
2537
- .form-control::-webkit-input-placeholder {
2538
- color: #999;
2539
- }
2540
- .form-control::-ms-expand {
2541
- background-color: transparent;
2542
- border: 0;
2543
- }
2544
- .form-control[disabled],
2545
- .form-control[readonly],
2546
- fieldset[disabled] .form-control {
2547
- background-color: #eee;
2548
- opacity: 1;
2549
- }
2550
- .form-control[disabled],
2551
- fieldset[disabled] .form-control {
2552
- cursor: not-allowed;
2553
- }
2554
- textarea.form-control {
2555
- height: auto;
2556
- }
2557
- input[type="search"] {
2558
- -webkit-appearance: none;
2559
- }
2560
- @media screen and (-webkit-min-device-pixel-ratio: 0) {
2561
- input[type="date"].form-control,
2562
- input[type="time"].form-control,
2563
- input[type="datetime-local"].form-control,
2564
- input[type="month"].form-control {
2565
- line-height: 34px;
2566
- }
2567
- input[type="date"].input-sm,
2568
- input[type="time"].input-sm,
2569
- input[type="datetime-local"].input-sm,
2570
- input[type="month"].input-sm,
2571
- .input-group-sm input[type="date"],
2572
- .input-group-sm input[type="time"],
2573
- .input-group-sm input[type="datetime-local"],
2574
- .input-group-sm input[type="month"] {
2575
- line-height: 30px;
2576
- }
2577
- input[type="date"].input-lg,
2578
- input[type="time"].input-lg,
2579
- input[type="datetime-local"].input-lg,
2580
- input[type="month"].input-lg,
2581
- .input-group-lg input[type="date"],
2582
- .input-group-lg input[type="time"],
2583
- .input-group-lg input[type="datetime-local"],
2584
- .input-group-lg input[type="month"] {
2585
- line-height: 46px;
2586
- }
2587
- }
2588
- .form-group {
2589
- margin-bottom: 15px;
2590
- }
2591
- .radio,
2592
- .checkbox {
2593
- position: relative;
2594
- display: block;
2595
- margin-top: 10px;
2596
- margin-bottom: 10px;
2597
- }
2598
- .radio label,
2599
- .checkbox label {
2600
- min-height: 20px;
2601
- padding-left: 20px;
2602
- margin-bottom: 0;
2603
- font-weight: normal;
2604
- cursor: pointer;
2605
- }
2606
- .radio input[type="radio"],
2607
- .radio-inline input[type="radio"],
2608
- .checkbox input[type="checkbox"],
2609
- .checkbox-inline input[type="checkbox"] {
2610
- position: absolute;
2611
- margin-top: 4px \9;
2612
- margin-left: -20px;
2613
- }
2614
- .radio + .radio,
2615
- .checkbox + .checkbox {
2616
- margin-top: -5px;
2617
- }
2618
- .radio-inline,
2619
- .checkbox-inline {
2620
- position: relative;
2621
- display: inline-block;
2622
- padding-left: 20px;
2623
- margin-bottom: 0;
2624
- font-weight: normal;
2625
- vertical-align: middle;
2626
- cursor: pointer;
2627
- }
2628
- .radio-inline + .radio-inline,
2629
- .checkbox-inline + .checkbox-inline {
2630
- margin-top: 0;
2631
- margin-left: 10px;
2632
- }
2633
- input[type="radio"][disabled],
2634
- input[type="checkbox"][disabled],
2635
- input[type="radio"].disabled,
2636
- input[type="checkbox"].disabled,
2637
- fieldset[disabled] input[type="radio"],
2638
- fieldset[disabled] input[type="checkbox"] {
2639
- cursor: not-allowed;
2640
- }
2641
- .radio-inline.disabled,
2642
- .checkbox-inline.disabled,
2643
- fieldset[disabled] .radio-inline,
2644
- fieldset[disabled] .checkbox-inline {
2645
- cursor: not-allowed;
2646
- }
2647
- .radio.disabled label,
2648
- .checkbox.disabled label,
2649
- fieldset[disabled] .radio label,
2650
- fieldset[disabled] .checkbox label {
2651
- cursor: not-allowed;
2652
- }
2653
- .form-control-static {
2654
- min-height: 34px;
2655
- padding-top: 7px;
2656
- padding-bottom: 7px;
2657
- margin-bottom: 0;
2658
- }
2659
- .form-control-static.input-lg,
2660
- .form-control-static.input-sm {
2661
- padding-right: 0;
2662
- padding-left: 0;
2663
- }
2664
- .input-sm {
2665
- height: 30px;
2666
- padding: 5px 10px;
2667
- font-size: 12px;
2668
- line-height: 1.5;
2669
- border-radius: 3px;
2670
- }
2671
- select.input-sm {
2672
- height: 30px;
2673
- line-height: 30px;
2674
- }
2675
- textarea.input-sm,
2676
- select[multiple].input-sm {
2677
- height: auto;
2678
- }
2679
- .form-group-sm .form-control {
2680
- height: 30px;
2681
- padding: 5px 10px;
2682
- font-size: 12px;
2683
- line-height: 1.5;
2684
- border-radius: 3px;
2685
- }
2686
- .form-group-sm select.form-control {
2687
- height: 30px;
2688
- line-height: 30px;
2689
- }
2690
- .form-group-sm textarea.form-control,
2691
- .form-group-sm select[multiple].form-control {
2692
- height: auto;
2693
- }
2694
- .form-group-sm .form-control-static {
2695
- height: 30px;
2696
- min-height: 32px;
2697
- padding: 6px 10px;
2698
- font-size: 12px;
2699
- line-height: 1.5;
2700
- }
2701
- .input-lg {
2702
- height: 46px;
2703
- padding: 10px 16px;
2704
- font-size: 18px;
2705
- line-height: 1.3333333;
2706
- border-radius: 6px;
2707
- }
2708
- select.input-lg {
2709
- height: 46px;
2710
- line-height: 46px;
2711
- }
2712
- textarea.input-lg,
2713
- select[multiple].input-lg {
2714
- height: auto;
2715
- }
2716
- .form-group-lg .form-control {
2717
- height: 46px;
2718
- padding: 10px 16px;
2719
- font-size: 18px;
2720
- line-height: 1.3333333;
2721
- border-radius: 6px;
2722
- }
2723
- .form-group-lg select.form-control {
2724
- height: 46px;
2725
- line-height: 46px;
2726
- }
2727
- .form-group-lg textarea.form-control,
2728
- .form-group-lg select[multiple].form-control {
2729
- height: auto;
2730
- }
2731
- .form-group-lg .form-control-static {
2732
- height: 46px;
2733
- min-height: 38px;
2734
- padding: 11px 16px;
2735
- font-size: 18px;
2736
- line-height: 1.3333333;
2737
- }
2738
- .has-feedback {
2739
- position: relative;
2740
- }
2741
- .has-feedback .form-control {
2742
- padding-right: 42.5px;
2743
- }
2744
- .form-control-feedback {
2745
- position: absolute;
2746
- top: 0;
2747
- right: 0;
2748
- z-index: 2;
2749
- display: block;
2750
- width: 34px;
2751
- height: 34px;
2752
- line-height: 34px;
2753
- text-align: center;
2754
- pointer-events: none;
2755
- }
2756
- .input-lg + .form-control-feedback,
2757
- .input-group-lg + .form-control-feedback,
2758
- .form-group-lg .form-control + .form-control-feedback {
2759
- width: 46px;
2760
- height: 46px;
2761
- line-height: 46px;
2762
- }
2763
- .input-sm + .form-control-feedback,
2764
- .input-group-sm + .form-control-feedback,
2765
- .form-group-sm .form-control + .form-control-feedback {
2766
- width: 30px;
2767
- height: 30px;
2768
- line-height: 30px;
2769
- }
2770
- .has-success .help-block,
2771
- .has-success .control-label,
2772
- .has-success .radio,
2773
- .has-success .checkbox,
2774
- .has-success .radio-inline,
2775
- .has-success .checkbox-inline,
2776
- .has-success.radio label,
2777
- .has-success.checkbox label,
2778
- .has-success.radio-inline label,
2779
- .has-success.checkbox-inline label {
2780
- color: #3c763d;
2781
- }
2782
- .has-success .form-control {
2783
- border-color: #3c763d;
2784
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
2785
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
2786
- }
2787
- .has-success .form-control:focus {
2788
- border-color: #2b542c;
2789
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168;
2790
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168;
2791
- }
2792
- .has-success .input-group-addon {
2793
- color: #3c763d;
2794
- background-color: #dff0d8;
2795
- border-color: #3c763d;
2796
- }
2797
- .has-success .form-control-feedback {
2798
- color: #3c763d;
2799
- }
2800
- .has-warning .help-block,
2801
- .has-warning .control-label,
2802
- .has-warning .radio,
2803
- .has-warning .checkbox,
2804
- .has-warning .radio-inline,
2805
- .has-warning .checkbox-inline,
2806
- .has-warning.radio label,
2807
- .has-warning.checkbox label,
2808
- .has-warning.radio-inline label,
2809
- .has-warning.checkbox-inline label {
2810
- color: #8a6d3b;
2811
- }
2812
- .has-warning .form-control {
2813
- border-color: #8a6d3b;
2814
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
2815
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
2816
- }
2817
- .has-warning .form-control:focus {
2818
- border-color: #66512c;
2819
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b;
2820
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b;
2821
- }
2822
- .has-warning .input-group-addon {
2823
- color: #8a6d3b;
2824
- background-color: #fcf8e3;
2825
- border-color: #8a6d3b;
2826
- }
2827
- .has-warning .form-control-feedback {
2828
- color: #8a6d3b;
2829
- }
2830
- .has-error .help-block,
2831
- .has-error .control-label,
2832
- .has-error .radio,
2833
- .has-error .checkbox,
2834
- .has-error .radio-inline,
2835
- .has-error .checkbox-inline,
2836
- .has-error.radio label,
2837
- .has-error.checkbox label,
2838
- .has-error.radio-inline label,
2839
- .has-error.checkbox-inline label {
2840
- color: #a94442;
2841
- }
2842
- .has-error .form-control {
2843
- border-color: #a94442;
2844
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
2845
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
2846
- }
2847
- .has-error .form-control:focus {
2848
- border-color: #843534;
2849
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483;
2850
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483;
2851
- }
2852
- .has-error .input-group-addon {
2853
- color: #a94442;
2854
- background-color: #f2dede;
2855
- border-color: #a94442;
2856
- }
2857
- .has-error .form-control-feedback {
2858
- color: #a94442;
2859
- }
2860
- .has-feedback label ~ .form-control-feedback {
2861
- top: 25px;
2862
- }
2863
- .has-feedback label.sr-only ~ .form-control-feedback {
2864
- top: 0;
2865
- }
2866
- .help-block {
2867
- display: block;
2868
- margin-top: 5px;
2869
- margin-bottom: 10px;
2870
- color: #737373;
2871
- }
2872
- @media (min-width: 768px) {
2873
- .form-inline .form-group {
2874
- display: inline-block;
2875
- margin-bottom: 0;
2876
- vertical-align: middle;
2877
- }
2878
- .form-inline .form-control {
2879
- display: inline-block;
2880
- width: auto;
2881
- vertical-align: middle;
2882
- }
2883
- .form-inline .form-control-static {
2884
- display: inline-block;
2885
- }
2886
- .form-inline .input-group {
2887
- display: inline-table;
2888
- vertical-align: middle;
2889
- }
2890
- .form-inline .input-group .input-group-addon,
2891
- .form-inline .input-group .input-group-btn,
2892
- .form-inline .input-group .form-control {
2893
- width: auto;
2894
- }
2895
- .form-inline .input-group > .form-control {
2896
- width: 100%;
2897
- }
2898
- .form-inline .control-label {
2899
- margin-bottom: 0;
2900
- vertical-align: middle;
2901
- }
2902
- .form-inline .radio,
2903
- .form-inline .checkbox {
2904
- display: inline-block;
2905
- margin-top: 0;
2906
- margin-bottom: 0;
2907
- vertical-align: middle;
2908
- }
2909
- .form-inline .radio label,
2910
- .form-inline .checkbox label {
2911
- padding-left: 0;
2912
- }
2913
- .form-inline .radio input[type="radio"],
2914
- .form-inline .checkbox input[type="checkbox"] {
2915
- position: relative;
2916
- margin-left: 0;
2917
- }
2918
- .form-inline .has-feedback .form-control-feedback {
2919
- top: 0;
2920
- }
2921
- }
2922
- .form-horizontal .radio,
2923
- .form-horizontal .checkbox,
2924
- .form-horizontal .radio-inline,
2925
- .form-horizontal .checkbox-inline {
2926
- padding-top: 7px;
2927
- margin-top: 0;
2928
- margin-bottom: 0;
2929
- }
2930
- .form-horizontal .radio,
2931
- .form-horizontal .checkbox {
2932
- min-height: 27px;
2933
- }
2934
- .form-horizontal .form-group {
2935
- margin-right: -15px;
2936
- margin-left: -15px;
2937
- }
2938
- @media (min-width: 768px) {
2939
- .form-horizontal .control-label {
2940
- padding-top: 7px;
2941
- margin-bottom: 0;
2942
- text-align: right;
2943
- }
2944
- }
2945
- .form-horizontal .has-feedback .form-control-feedback {
2946
- right: 15px;
2947
- }
2948
- @media (min-width: 768px) {
2949
- .form-horizontal .form-group-lg .control-label {
2950
- padding-top: 11px;
2951
- font-size: 18px;
2952
- }
2953
- }
2954
- @media (min-width: 768px) {
2955
- .form-horizontal .form-group-sm .control-label {
2956
- padding-top: 6px;
2957
- font-size: 12px;
2958
- }
2959
- }
2960
- .btn {
2961
- display: inline-block;
2962
- padding: 2px 5px 2px 2px;
2963
- line-height: 30px;
2964
- height: 30px !important;
2965
- width: 100%;
2966
- margin-bottom: 0;
2967
- font-size: 14px;
2968
- font-weight: normal;
2969
- line-height: 1.42857143;
2970
- text-align: center;
2971
- white-space: nowrap;
2972
- vertical-align: middle;
2973
- -ms-touch-action: manipulation;
2974
- touch-action: manipulation;
2975
- cursor: pointer;
2976
- -webkit-user-select: none;
2977
- -moz-user-select: none;
2978
- -ms-user-select: none;
2979
- user-select: none;
2980
- background-image: none;
2981
- border: 1px solid transparent;
2982
- //border-radius: 4px;
2983
- }
2984
- .btn:focus,
2985
- .btn:active:focus,
2986
- .btn.active:focus,
2987
- .btn.focus,
2988
- .btn:active.focus,
2989
- .btn.active.focus {
2990
- outline: thin dotted;
2991
- outline: 5px auto -webkit-focus-ring-color;
2992
- outline-offset: -2px;
2993
- }
2994
- .btn:hover,
2995
- .btn:focus,
2996
- .btn.focus {
2997
- color: #333;
2998
- text-decoration: none;
2999
- }
3000
- .btn:active,
3001
- .btn.active {
3002
- background-image: none;
3003
- outline: 0;
3004
- -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
3005
- box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
3006
- }
3007
- .btn.disabled,
3008
- .btn[disabled],
3009
- fieldset[disabled] .btn {
3010
- cursor: not-allowed;
3011
- filter: alpha(opacity=65);
3012
- -webkit-box-shadow: none;
3013
- box-shadow: none;
3014
- opacity: .65;
3015
- }
3016
- a.btn.disabled,
3017
- fieldset[disabled] a.btn {
3018
- pointer-events: none;
3019
- }
3020
- .btn-default {
3021
- color: #333;
3022
- background-color: #fff;
3023
- border-color: #ccc;
3024
- }
3025
- .btn-default:focus,
3026
- .btn-default.focus {
3027
- color: #333;
3028
- background-color: #e6e6e6;
3029
- border-color: #8c8c8c;
3030
- }
3031
- /* .btn-default:hover {
3032
- color: #333;
3033
- background-color: #e6e6e6;
3034
- border-color: #adadad;
3035
- } */
3036
- .btn-default:active,
3037
- .btn-default.active,
3038
- .open > .dropdown-toggle.btn-default {
3039
- color: #333;
3040
- background-color: #e6e6e6;
3041
- border-color: #adadad;
3042
- }
3043
- .btn-default:active:hover,
3044
- .btn-default.active:hover,
3045
-
3046
- .btn-default:active:focus,
3047
- .btn-default.active:focus,
3048
- .open > .dropdown-toggle.btn-default:focus,
3049
- .btn-default:active.focus,
3050
- .btn-default.active.focus,
3051
- .open > .dropdown-toggle.btn-default.focus {
3052
- color: #333;
3053
- background-color: #d4d4d4;
3054
- border-color: #8c8c8c;
3055
- }
3056
- .btn-default:active,
3057
- .btn-default.active,
3058
- .open > .dropdown-toggle.btn-default {
3059
- background-image: none;
3060
- }
3061
- .btn-default.disabled:hover,
3062
- .btn-default[disabled]:hover,
3063
- fieldset[disabled] .btn-default:hover,
3064
- .btn-default.disabled:focus,
3065
- .btn-default[disabled]:focus,
3066
- fieldset[disabled] .btn-default:focus,
3067
- .btn-default.disabled.focus,
3068
- .btn-default[disabled].focus,
3069
- fieldset[disabled] .btn-default.focus {
3070
- background-color: #fff;
3071
- border-color: #ccc;
3072
- }
3073
- .btn-default .badge {
3074
- color: #fff;
3075
- background-color: #333;
3076
- }
3077
- .btn-primary {
3078
- color: #fff;
3079
- background-color: #337ab7;
3080
- border-color: #2e6da4;
3081
- }
3082
- .btn-primary:focus,
3083
- .btn-primary.focus {
3084
- color: #fff;
3085
- background-color: #286090;
3086
- border-color: #122b40;
3087
- }
3088
- .btn-primary:hover {
3089
- color: #fff;
3090
- background-color: #286090;
3091
- border-color: #204d74;
3092
- }
3093
- .btn-primary:active,
3094
- .btn-primary.active,
3095
- .open > .dropdown-toggle.btn-primary {
3096
- color: #fff;
3097
- background-color: #286090;
3098
- border-color: #204d74;
3099
- }
3100
- .btn-primary:active:hover,
3101
- .btn-primary.active:hover,
3102
- .open > .dropdown-toggle.btn-primary:hover,
3103
- .btn-primary:active:focus,
3104
- .btn-primary.active:focus,
3105
- .open > .dropdown-toggle.btn-primary:focus,
3106
- .btn-primary:active.focus,
3107
- .btn-primary.active.focus,
3108
- .open > .dropdown-toggle.btn-primary.focus {
3109
- color: #fff;
3110
- background-color: #204d74;
3111
- border-color: #122b40;
3112
- }
3113
- .btn-primary:active,
3114
- .btn-primary.active,
3115
- .open > .dropdown-toggle.btn-primary {
3116
- background-image: none;
3117
- }
3118
- .btn-primary.disabled:hover,
3119
- .btn-primary[disabled]:hover,
3120
- fieldset[disabled] .btn-primary:hover,
3121
- .btn-primary.disabled:focus,
3122
- .btn-primary[disabled]:focus,
3123
- fieldset[disabled] .btn-primary:focus,
3124
- .btn-primary.disabled.focus,
3125
- .btn-primary[disabled].focus,
3126
- fieldset[disabled] .btn-primary.focus {
3127
- background-color: #337ab7;
3128
- border-color: #2e6da4;
3129
- }
3130
- .btn-primary .badge {
3131
- color: #337ab7;
3132
- background-color: #fff;
3133
- }
3134
- .btn-success {
3135
- color: #fff;
3136
- background-color: #5cb85c;
3137
- border-color: #4cae4c;
3138
- }
3139
- .btn-success:focus,
3140
- .btn-success.focus {
3141
- color: #fff;
3142
- background-color: #449d44;
3143
- border-color: #255625;
3144
- }
3145
- .btn-success:hover {
3146
- color: #fff;
3147
- background-color: #449d44;
3148
- border-color: #398439;
3149
- }
3150
- .btn-success:active,
3151
- .btn-success.active,
3152
- .open > .dropdown-toggle.btn-success {
3153
- color: #fff;
3154
- background-color: #449d44;
3155
- border-color: #398439;
3156
- }
3157
- .btn-success:active:hover,
3158
- .btn-success.active:hover,
3159
- .open > .dropdown-toggle.btn-success:hover,
3160
- .btn-success:active:focus,
3161
- .btn-success.active:focus,
3162
- .open > .dropdown-toggle.btn-success:focus,
3163
- .btn-success:active.focus,
3164
- .btn-success.active.focus,
3165
- .open > .dropdown-toggle.btn-success.focus {
3166
- color: #fff;
3167
- background-color: #398439;
3168
- border-color: #255625;
3169
- }
3170
- .btn-success:active,
3171
- .btn-success.active,
3172
- .open > .dropdown-toggle.btn-success {
3173
- background-image: none;
3174
- }
3175
- .btn-success.disabled:hover,
3176
- .btn-success[disabled]:hover,
3177
- fieldset[disabled] .btn-success:hover,
3178
- .btn-success.disabled:focus,
3179
- .btn-success[disabled]:focus,
3180
- fieldset[disabled] .btn-success:focus,
3181
- .btn-success.disabled.focus,
3182
- .btn-success[disabled].focus,
3183
- fieldset[disabled] .btn-success.focus {
3184
- background-color: #5cb85c;
3185
- border-color: #4cae4c;
3186
- }
3187
- .btn-success .badge {
3188
- color: #5cb85c;
3189
- background-color: #fff;
3190
- }
3191
- .btn-info {
3192
- color: #fff;
3193
- background-color: #5bc0de;
3194
- border-color: #46b8da;
3195
- }
3196
- .btn-info:focus,
3197
- .btn-info.focus {
3198
- color: #fff;
3199
- background-color: #31b0d5;
3200
- border-color: #1b6d85;
3201
- }
3202
- .btn-info:hover {
3203
- color: #fff;
3204
- background-color: #31b0d5;
3205
- border-color: #269abc;
3206
- }
3207
- .btn-info:active,
3208
- .btn-info.active,
3209
- .open > .dropdown-toggle.btn-info {
3210
- color: #fff;
3211
- background-color: #31b0d5;
3212
- border-color: #269abc;
3213
- }
3214
- .btn-info:active:hover,
3215
- .btn-info.active:hover,
3216
- .open > .dropdown-toggle.btn-info:hover,
3217
- .btn-info:active:focus,
3218
- .btn-info.active:focus,
3219
- .open > .dropdown-toggle.btn-info:focus,
3220
- .btn-info:active.focus,
3221
- .btn-info.active.focus,
3222
- .open > .dropdown-toggle.btn-info.focus {
3223
- color: #fff;
3224
- background-color: #269abc;
3225
- border-color: #1b6d85;
3226
- }
3227
- .btn-info:active,
3228
- .btn-info.active,
3229
- .open > .dropdown-toggle.btn-info {
3230
- background-image: none;
3231
- }
3232
- .btn-info.disabled:hover,
3233
- .btn-info[disabled]:hover,
3234
- fieldset[disabled] .btn-info:hover,
3235
- .btn-info.disabled:focus,
3236
- .btn-info[disabled]:focus,
3237
- fieldset[disabled] .btn-info:focus,
3238
- .btn-info.disabled.focus,
3239
- .btn-info[disabled].focus,
3240
- fieldset[disabled] .btn-info.focus {
3241
- background-color: #5bc0de;
3242
- border-color: #46b8da;
3243
- }
3244
- .btn-info .badge {
3245
- color: #5bc0de;
3246
- background-color: #fff;
3247
- }
3248
- .btn-warning {
3249
- color: #fff;
3250
- background-color: #f0ad4e;
3251
- border-color: #eea236;
3252
- }
3253
- .btn-warning:focus,
3254
- .btn-warning.focus {
3255
- color: #fff;
3256
- background-color: #ec971f;
3257
- border-color: #985f0d;
3258
- }
3259
- .btn-warning:hover {
3260
- color: #fff;
3261
- background-color: #ec971f;
3262
- border-color: #d58512;
3263
- }
3264
- .btn-warning:active,
3265
- .btn-warning.active,
3266
- .open > .dropdown-toggle.btn-warning {
3267
- color: #fff;
3268
- background-color: #ec971f;
3269
- border-color: #d58512;
3270
- }
3271
- .btn-warning:active:hover,
3272
- .btn-warning.active:hover,
3273
- .open > .dropdown-toggle.btn-warning:hover,
3274
- .btn-warning:active:focus,
3275
- .btn-warning.active:focus,
3276
- .open > .dropdown-toggle.btn-warning:focus,
3277
- .btn-warning:active.focus,
3278
- .btn-warning.active.focus,
3279
- .open > .dropdown-toggle.btn-warning.focus {
3280
- color: #fff;
3281
- background-color: #d58512;
3282
- border-color: #985f0d;
3283
- }
3284
- .btn-warning:active,
3285
- .btn-warning.active,
3286
- .open > .dropdown-toggle.btn-warning {
3287
- background-image: none;
3288
- }
3289
- .btn-warning.disabled:hover,
3290
- .btn-warning[disabled]:hover,
3291
- fieldset[disabled] .btn-warning:hover,
3292
- .btn-warning.disabled:focus,
3293
- .btn-warning[disabled]:focus,
3294
- fieldset[disabled] .btn-warning:focus,
3295
- .btn-warning.disabled.focus,
3296
- .btn-warning[disabled].focus,
3297
- fieldset[disabled] .btn-warning.focus {
3298
- background-color: #f0ad4e;
3299
- border-color: #eea236;
3300
- }
3301
- .btn-warning .badge {
3302
- color: #f0ad4e;
3303
- background-color: #fff;
3304
- }
3305
- .btn-danger {
3306
- color: #fff;
3307
- background-color: #d9534f;
3308
- border-color: #d43f3a;
3309
- }
3310
- .btn-danger:focus,
3311
- .btn-danger.focus {
3312
- color: #fff;
3313
- background-color: #c9302c;
3314
- border-color: #761c19;
3315
- }
3316
- .btn-danger:hover {
3317
- color: #fff;
3318
- background-color: #c9302c;
3319
- border-color: #ac2925;
3320
- }
3321
- .btn-danger:active,
3322
- .btn-danger.active,
3323
- .open > .dropdown-toggle.btn-danger {
3324
- color: #fff;
3325
- background-color: #c9302c;
3326
- border-color: #ac2925;
3327
- }
3328
- .btn-danger:active:hover,
3329
- .btn-danger.active:hover,
3330
- .open > .dropdown-toggle.btn-danger:hover,
3331
- .btn-danger:active:focus,
3332
- .btn-danger.active:focus,
3333
- .open > .dropdown-toggle.btn-danger:focus,
3334
- .btn-danger:active.focus,
3335
- .btn-danger.active.focus,
3336
- .open > .dropdown-toggle.btn-danger.focus {
3337
- color: #fff;
3338
- background-color: #ac2925;
3339
- border-color: #761c19;
3340
- }
3341
- .btn-danger:active,
3342
- .btn-danger.active,
3343
- .open > .dropdown-toggle.btn-danger {
3344
- background-image: none;
3345
- }
3346
- .btn-danger.disabled:hover,
3347
- .btn-danger[disabled]:hover,
3348
- fieldset[disabled] .btn-danger:hover,
3349
- .btn-danger.disabled:focus,
3350
- .btn-danger[disabled]:focus,
3351
- fieldset[disabled] .btn-danger:focus,
3352
- .btn-danger.disabled.focus,
3353
- .btn-danger[disabled].focus,
3354
- fieldset[disabled] .btn-danger.focus {
3355
- background-color: #d9534f;
3356
- border-color: #d43f3a;
3357
- }
3358
- .btn-danger .badge {
3359
- color: #d9534f;
3360
- background-color: #fff;
3361
- }
3362
- .btn-link {
3363
- font-weight: normal;
3364
- color: #337ab7;
3365
- border-radius: 0;
3366
- }
3367
- .btn-link,
3368
- .btn-link:active,
3369
- .btn-link.active,
3370
- .btn-link[disabled],
3371
- fieldset[disabled] .btn-link {
3372
- background-color: transparent;
3373
- -webkit-box-shadow: none;
3374
- box-shadow: none;
3375
- }
3376
- .btn-link,
3377
- .btn-link:hover,
3378
- .btn-link:focus,
3379
- .btn-link:active {
3380
- border-color: transparent;
3381
- }
3382
- .btn-link:hover,
3383
- .btn-link:focus {
3384
- color: #23527c;
3385
- text-decoration: underline;
3386
- background-color: transparent;
3387
- }
3388
- .btn-link[disabled]:hover,
3389
- fieldset[disabled] .btn-link:hover,
3390
- .btn-link[disabled]:focus,
3391
- fieldset[disabled] .btn-link:focus {
3392
- color: #777;
3393
- text-decoration: none;
3394
- }
3395
- .btn-lg,
3396
- .btn-group-lg > .btn {
3397
- padding: 10px 16px;
3398
- font-size: 18px;
3399
- line-height: 1.3333333;
3400
- border-radius: 6px;
3401
- }
3402
- .btn-sm,
3403
- .btn-group-sm > .btn {
3404
- padding: 5px 10px;
3405
- font-size: 12px;
3406
- line-height: 1.5;
3407
- border-radius: 3px;
3408
- }
3409
- .btn-xs,
3410
- .btn-group-xs > .btn {
3411
- padding: 1px 5px;
3412
- font-size: 12px;
3413
- line-height: 1.5;
3414
- border-radius: 3px;
3415
- }
3416
- .btn-block {
3417
- display: block;
3418
- width: 100%;
3419
- }
3420
- .btn-block + .btn-block {
3421
- margin-top: 5px;
3422
- }
3423
- input[type="submit"].btn-block,
3424
- input[type="reset"].btn-block,
3425
- input[type="button"].btn-block {
3426
- width: 100%;
3427
- }
3428
-
3429
- .fade.in {
3430
- opacity: 1;
3431
- }
3432
- .collapse {
3433
- display: none;
3434
- }
3435
- .collapse.in {
3436
- display: block;
3437
- }
3438
- tr.collapse.in {
3439
- display: table-row;
3440
- }
3441
- tbody.collapse.in {
3442
- display: table-row-group;
3443
- }
3444
- .collapsing {
3445
- position: relative;
3446
- height: 0;
3447
- overflow: hidden;
3448
- -webkit-transition-timing-function: ease;
3449
- -o-transition-timing-function: ease;
3450
- transition-timing-function: ease;
3451
- -webkit-transition-duration: .35s;
3452
- -o-transition-duration: .35s;
3453
- transition-duration: .35s;
3454
- -webkit-transition-property: height, visibility;
3455
- -o-transition-property: height, visibility;
3456
- transition-property: height, visibility;
3457
- }
3458
- .caret {
3459
- display: inline-block;
3460
- width: 0;
3461
- height: 0;
3462
- margin-left: 6px;
3463
- vertical-align: middle;
3464
- border-top: 4px dashed;
3465
- border-top: 4px solid \9;
3466
- border-right: 4px solid transparent;
3467
- border-left: 4px solid transparent;
3468
- }
3469
- .dropup,
3470
- .dropdown {
3471
- position: relative;
3472
- }
3473
- .dropdown-toggle:focus {
3474
- outline: 0;
3475
- }
3476
- .dropdown-menu {
3477
- position: absolute;
3478
- top: 100%;
3479
- left: 0;
3480
- z-index: 1000;
3481
- display: none;
3482
- float: left;
3483
- min-width: 160px;
3484
- padding: 5px 0;
3485
- margin: 2px 0 0;
3486
- font-size: 14px;
3487
- text-align: left;
3488
- list-style: none;
3489
- background-color: #fff;
3490
- -webkit-background-clip: padding-box;
3491
- background-clip: padding-box;
3492
- border: 1px solid #ccc;
3493
- border: 1px solid rgba(0, 0, 0, .15);
3494
- border-radius: 4px;
3495
- -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175);
3496
- box-shadow: 0 6px 12px rgba(0, 0, 0, .175);
3497
- }
3498
- .dropdown-menu.pull-right {
3499
- right: 0;
3500
- left: auto;
3501
- }
3502
- .dropdown-menu .divider {
3503
- height: 1px;
3504
- margin: 9px 0;
3505
- overflow: hidden;
3506
- background-color: #e5e5e5;
3507
- }
3508
- .dropdown-menu > li > a {
3509
- display: block;
3510
- padding: 3px 20px;
3511
- clear: both;
3512
- font-weight: normal;
3513
- line-height: 1.42857143;
3514
- color: #333;
3515
- white-space: nowrap;
3516
- }
3517
- .dropdown-menu > li > a:hover,
3518
- .dropdown-menu > li > a:focus {
3519
- color: #262626;
3520
- text-decoration: none;
3521
- background-color: #f5f5f5;
3522
- }
3523
- .dropdown-menu > .active > a,
3524
- .dropdown-menu > .active > a:hover,
3525
- .dropdown-menu > .active > a:focus {
3526
- color: #fff;
3527
- text-decoration: none;
3528
- background-color: #337ab7;
3529
- outline: 0;
3530
- }
3531
- .dropdown-menu > .disabled > a,
3532
- .dropdown-menu > .disabled > a:hover,
3533
- .dropdown-menu > .disabled > a:focus {
3534
- color: #777;
3535
- }
3536
- .dropdown-menu > .disabled > a:hover,
3537
- .dropdown-menu > .disabled > a:focus {
3538
- text-decoration: none;
3539
- cursor: not-allowed;
3540
- background-color: transparent;
3541
- background-image: none;
3542
- filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
3543
- }
3544
- .open > .dropdown-menu {
3545
- display: block;
3546
- }
3547
- .open > a {
3548
- outline: 0;
3549
- }
3550
- .dropdown-menu-right {
3551
- right: 0;
3552
- left: auto;
3553
- }
3554
- .dropdown-menu-left {
3555
- right: auto;
3556
- left: 0;
3557
- }
3558
- .dropdown-header {
3559
- display: block;
3560
- padding: 3px 20px;
3561
- font-size: 12px;
3562
- line-height: 1.42857143;
3563
- color: #777;
3564
- white-space: nowrap;
3565
- }
3566
- .dropdown-backdrop {
3567
- position: fixed;
3568
- top: 0;
3569
- right: 0;
3570
- bottom: 0;
3571
- left: 0;
3572
- z-index: 990;
3573
- }
3574
- .pull-right > .dropdown-menu {
3575
- right: 0;
3576
- left: auto;
3577
- }
3578
- .dropup .caret,
3579
- .navbar-fixed-bottom .dropdown .caret {
3580
- content: "";
3581
- border-top: 0;
3582
- border-bottom: 4px dashed;
3583
- border-bottom: 4px solid \9;
3584
- }
3585
- .dropup .dropdown-menu,
3586
- .navbar-fixed-bottom .dropdown .dropdown-menu {
3587
- top: auto;
3588
- bottom: 100%;
3589
- margin-bottom: 2px;
3590
- }
3591
- @media (min-width: 768px) {
3592
- .navbar-right .dropdown-menu {
3593
- right: 0;
3594
- left: auto;
3595
- }
3596
- .navbar-right .dropdown-menu-left {
3597
- right: auto;
3598
- left: 0;
3599
- }
3600
- }
3601
- .btn-group,
3602
- .btn-group-vertical {
3603
- position: relative;
3604
- display: inline-block;
3605
- vertical-align: middle;
3606
- }
3607
- .btn-group > .btn,
3608
- .btn-group-vertical > .btn {
3609
- position: relative;
3610
- float: left;
3611
- }
3612
- .btn-group > .btn:hover,
3613
- .btn-group-vertical > .btn:hover,
3614
- .btn-group > .btn:focus,
3615
- .btn-group-vertical > .btn:focus,
3616
- .btn-group > .btn:active,
3617
- .btn-group-vertical > .btn:active,
3618
- .btn-group > .btn.active,
3619
- .btn-group-vertical > .btn.active {
3620
- z-index: 2;
3621
- }
3622
- .btn-group .btn + .btn,
3623
- .btn-group .btn + .btn-group,
3624
- .btn-group .btn-group + .btn,
3625
- .btn-group .btn-group + .btn-group {
3626
- margin-left: -1px;
3627
- }
3628
- .btn-toolbar {
3629
- margin-left: -5px;
3630
- }
3631
- .btn-toolbar .btn,
3632
- .btn-toolbar .btn-group,
3633
- .btn-toolbar .input-group {
3634
- float: left;
3635
- }
3636
- .btn-toolbar > .btn,
3637
- .btn-toolbar > .btn-group,
3638
- .btn-toolbar > .input-group {
3639
- margin-left: 5px;
3640
- }
3641
- .btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
3642
- border-radius: 0;
3643
- }
3644
- .btn-group > .btn:first-child {
3645
- margin-left: 0;
3646
- }
3647
- .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
3648
- border-top-right-radius: 0;
3649
- border-bottom-right-radius: 0;
3650
- }
3651
- .btn-group > .btn:last-child:not(:first-child),
3652
- .btn-group > .dropdown-toggle:not(:first-child) {
3653
- border-top-left-radius: 0;
3654
- border-bottom-left-radius: 0;
3655
- }
3656
- .btn-group > .btn-group {
3657
- float: left;
3658
- }
3659
- .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
3660
- border-radius: 0;
3661
- }
3662
- .btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,
3663
- .btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
3664
- border-top-right-radius: 0;
3665
- border-bottom-right-radius: 0;
3666
- }
3667
- .btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
3668
- border-top-left-radius: 0;
3669
- border-bottom-left-radius: 0;
3670
- }
3671
- .btn-group .dropdown-toggle:active,
3672
- .btn-group.open .dropdown-toggle {
3673
- outline: 0;
3674
- }
3675
- .btn-group > .btn + .dropdown-toggle {
3676
- padding-right: 8px;
3677
- padding-left: 8px;
3678
- }
3679
- .btn-group > .btn-lg + .dropdown-toggle {
3680
- padding-right: 12px;
3681
- padding-left: 12px;
3682
- }
3683
- .btn-group.open .dropdown-toggle {
3684
- -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
3685
- box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
3686
- }
3687
- .btn-group.open .dropdown-toggle.btn-link {
3688
- -webkit-box-shadow: none;
3689
- box-shadow: none;
3690
- }
3691
- .btn .caret {
3692
- margin-left: 0;
3693
- }
3694
- .btn-lg .caret {
3695
- border-width: 5px 5px 0;
3696
- border-bottom-width: 0;
3697
- }
3698
- .dropup .btn-lg .caret {
3699
- border-width: 0 5px 5px;
3700
- }
3701
- .btn-group-vertical > .btn,
3702
- .btn-group-vertical > .btn-group,
3703
- .btn-group-vertical > .btn-group > .btn {
3704
- display: block;
3705
- float: none;
3706
- width: 100%;
3707
- max-width: 100%;
3708
- }
3709
- .btn-group-vertical > .btn-group > .btn {
3710
- float: none;
3711
- }
3712
- .btn-group-vertical > .btn + .btn,
3713
- .btn-group-vertical > .btn + .btn-group,
3714
- .btn-group-vertical > .btn-group + .btn,
3715
- .btn-group-vertical > .btn-group + .btn-group {
3716
- margin-top: -1px;
3717
- margin-left: 0;
3718
- }
3719
- .btn-group-vertical > .btn:not(:first-child):not(:last-child) {
3720
- border-radius: 0;
3721
- }
3722
- .btn-group-vertical > .btn:first-child:not(:last-child) {
3723
- border-top-left-radius: 4px;
3724
- border-top-right-radius: 4px;
3725
- border-bottom-right-radius: 0;
3726
- border-bottom-left-radius: 0;
3727
- }
3728
- .btn-group-vertical > .btn:last-child:not(:first-child) {
3729
- border-top-left-radius: 0;
3730
- border-top-right-radius: 0;
3731
- border-bottom-right-radius: 4px;
3732
- border-bottom-left-radius: 4px;
3733
- }
3734
- .btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
3735
- border-radius: 0;
3736
- }
3737
- .btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
3738
- .btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
3739
- border-bottom-right-radius: 0;
3740
- border-bottom-left-radius: 0;
3741
- }
3742
- .btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
3743
- border-top-left-radius: 0;
3744
- border-top-right-radius: 0;
3745
- }
3746
- .btn-group-justified {
3747
- display: table;
3748
- width: 100%;
3749
- table-layout: fixed;
3750
- border-collapse: separate;
3751
- }
3752
- .btn-group-justified > .btn,
3753
- .btn-group-justified > .btn-group {
3754
- display: table-cell;
3755
- float: none;
3756
- width: 1%;
3757
- }
3758
- .btn-group-justified > .btn-group .btn {
3759
- width: 100%;
3760
- }
3761
- .btn-group-justified > .btn-group .dropdown-menu {
3762
- left: auto;
3763
- }
3764
- [data-toggle="buttons"] > .btn input[type="radio"],
3765
- [data-toggle="buttons"] > .btn-group > .btn input[type="radio"],
3766
- [data-toggle="buttons"] > .btn input[type="checkbox"],
3767
- [data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] {
3768
- position: absolute;
3769
- clip: rect(0, 0, 0, 0);
3770
- pointer-events: none;
3771
- }
3772
- .input-group {
3773
- position: relative;
3774
- display: table;
3775
- border-collapse: separate;
3776
- }
3777
- .input-group[class*="col-"] {
3778
- float: none;
3779
- padding-right: 0;
3780
- padding-left: 0;
3781
- }
3782
- .input-group .form-control {
3783
- position: relative;
3784
- z-index: 2;
3785
- float: left;
3786
- width: 100%;
3787
- margin-bottom: 0;
3788
- }
3789
- .input-group .form-control:focus {
3790
- z-index: 3;
3791
- }
3792
- .input-group-lg > .form-control,
3793
- .input-group-lg > .input-group-addon,
3794
- .input-group-lg > .input-group-btn > .btn {
3795
- height: 46px;
3796
- padding: 10px 16px;
3797
- font-size: 18px;
3798
- line-height: 1.3333333;
3799
- border-radius: 6px;
3800
- }
3801
- select.input-group-lg > .form-control,
3802
- select.input-group-lg > .input-group-addon,
3803
- select.input-group-lg > .input-group-btn > .btn {
3804
- height: 46px;
3805
- line-height: 46px;
3806
- }
3807
- textarea.input-group-lg > .form-control,
3808
- textarea.input-group-lg > .input-group-addon,
3809
- textarea.input-group-lg > .input-group-btn > .btn,
3810
- select[multiple].input-group-lg > .form-control,
3811
- select[multiple].input-group-lg > .input-group-addon,
3812
- select[multiple].input-group-lg > .input-group-btn > .btn {
3813
- height: auto;
3814
- }
3815
- .input-group-sm > .form-control,
3816
- .input-group-sm > .input-group-addon,
3817
- .input-group-sm > .input-group-btn > .btn {
3818
- height: 30px;
3819
- padding: 5px 10px;
3820
- font-size: 12px;
3821
- line-height: 1.5;
3822
- border-radius: 3px;
3823
- }
3824
- select.input-group-sm > .form-control,
3825
- select.input-group-sm > .input-group-addon,
3826
- select.input-group-sm > .input-group-btn > .btn {
3827
- height: 30px;
3828
- line-height: 30px;
3829
- }
3830
- textarea.input-group-sm > .form-control,
3831
- textarea.input-group-sm > .input-group-addon,
3832
- textarea.input-group-sm > .input-group-btn > .btn,
3833
- select[multiple].input-group-sm > .form-control,
3834
- select[multiple].input-group-sm > .input-group-addon,
3835
- select[multiple].input-group-sm > .input-group-btn > .btn {
3836
- height: auto;
3837
- }
3838
- .input-group-addon,
3839
- .input-group-btn,
3840
- .input-group .form-control {
3841
- display: table-cell;
3842
- }
3843
- .input-group-addon:not(:first-child):not(:last-child),
3844
- .input-group-btn:not(:first-child):not(:last-child),
3845
- .input-group .form-control:not(:first-child):not(:last-child) {
3846
- border-radius: 0;
3847
- }
3848
- .input-group-addon,
3849
- .input-group-btn {
3850
- width: 1%;
3851
- white-space: nowrap;
3852
- vertical-align: middle;
3853
- }
3854
- .input-group-addon {
3855
- padding: 6px 12px;
3856
- font-size: 14px;
3857
- font-weight: normal;
3858
- line-height: 1;
3859
- color: #555;
3860
- text-align: center;
3861
- background-color: #eee;
3862
- border: 1px solid #ccc;
3863
- border-radius: 4px;
3864
- }
3865
- .input-group-addon.input-sm {
3866
- padding: 5px 10px;
3867
- font-size: 12px;
3868
- border-radius: 3px;
3869
- }
3870
- .input-group-addon.input-lg {
3871
- padding: 10px 16px;
3872
- font-size: 18px;
3873
- border-radius: 6px;
3874
- }
3875
- .input-group-addon input[type="radio"],
3876
- .input-group-addon input[type="checkbox"] {
3877
- margin-top: 0;
3878
- }
3879
- .input-group .form-control:first-child,
3880
- .input-group-addon:first-child,
3881
- .input-group-btn:first-child > .btn,
3882
- .input-group-btn:first-child > .btn-group > .btn,
3883
- .input-group-btn:first-child > .dropdown-toggle,
3884
- .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
3885
- .input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
3886
- border-top-right-radius: 0;
3887
- border-bottom-right-radius: 0;
3888
- }
3889
- .input-group-addon:first-child {
3890
- border-right: 0;
3891
- }
3892
- .input-group .form-control:last-child,
3893
- .input-group-addon:last-child,
3894
- .input-group-btn:last-child > .btn,
3895
- .input-group-btn:last-child > .btn-group > .btn,
3896
- .input-group-btn:last-child > .dropdown-toggle,
3897
- .input-group-btn:first-child > .btn:not(:first-child),
3898
- .input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
3899
- border-top-left-radius: 0;
3900
- border-bottom-left-radius: 0;
3901
- }
3902
- .input-group-addon:last-child {
3903
- border-left: 0;
3904
- }
3905
- .input-group-btn {
3906
- position: relative;
3907
- font-size: 0;
3908
- white-space: nowrap;
3909
- }
3910
- .input-group-btn > .btn {
3911
- position: relative;
3912
- }
3913
- .input-group-btn > .btn + .btn {
3914
- margin-left: -1px;
3915
- }
3916
- .input-group-btn > .btn:hover,
3917
- .input-group-btn > .btn:focus,
3918
- .input-group-btn > .btn:active {
3919
- z-index: 2;
3920
- }
3921
- .input-group-btn:first-child > .btn,
3922
- .input-group-btn:first-child > .btn-group {
3923
- margin-right: -1px;
3924
- }
3925
- .input-group-btn:last-child > .btn,
3926
- .input-group-btn:last-child > .btn-group {
3927
- z-index: 2;
3928
- margin-left: -1px;
3929
- }
3930
- .nav {
3931
- padding-left: 0;
3932
- margin-bottom: 0;
3933
- list-style: none;
3934
- }
3935
- .nav > li {
3936
- position: relative;
3937
- display: block;
3938
- }
3939
- .nav > li > a {
3940
- position: relative;
3941
- display: block;
3942
- padding: 10px 15px;
3943
- }
3944
- .nav > li > a:hover,
3945
- .nav > li > a:focus {
3946
- text-decoration: none;
3947
- background-color: #eee;
3948
- }
3949
- .nav > li.disabled > a {
3950
- color: #777;
3951
- }
3952
- .nav > li.disabled > a:hover,
3953
- .nav > li.disabled > a:focus {
3954
- color: #777;
3955
- text-decoration: none;
3956
- cursor: not-allowed;
3957
- background-color: transparent;
3958
- }
3959
- .nav .open > a,
3960
- .nav .open > a:hover,
3961
- .nav .open > a:focus {
3962
- background-color: #eee;
3963
- border-color: #337ab7;
3964
- }
3965
- .nav .nav-divider {
3966
- height: 1px;
3967
- margin: 9px 0;
3968
- overflow: hidden;
3969
- background-color: #e5e5e5;
3970
- }
3971
- .nav > li > a > img {
3972
- max-width: none;
3973
- }
3974
- .nav-tabs {
3975
- border-bottom: 1px solid #ddd;
3976
- }
3977
- .nav-tabs > li {
3978
- float: left;
3979
- margin-bottom: -1px;
3980
- }
3981
- .nav-tabs > li > a {
3982
- margin-right: 2px;
3983
- line-height: 1.42857143;
3984
- border: 1px solid transparent;
3985
- border-radius: 4px 4px 0 0;
3986
- }
3987
- .nav-tabs > li > a:hover {
3988
- border-color: #eee #eee #ddd;
3989
- }
3990
- .nav-tabs > li.active > a,
3991
- .nav-tabs > li.active > a:hover,
3992
- .nav-tabs > li.active > a:focus {
3993
- color: #555;
3994
- cursor: default;
3995
- background-color: #fff;
3996
- border: 1px solid #ddd;
3997
- border-bottom-color: transparent;
3998
- }
3999
- .nav-tabs.nav-justified {
4000
- width: 100%;
4001
- border-bottom: 0;
4002
- }
4003
- .nav-tabs.nav-justified > li {
4004
- float: none;
4005
- }
4006
- .nav-tabs.nav-justified > li > a {
4007
- margin-bottom: 5px;
4008
- text-align: center;
4009
- }
4010
- .nav-tabs.nav-justified > .dropdown .dropdown-menu {
4011
- top: auto;
4012
- left: auto;
4013
- }
4014
- @media (min-width: 768px) {
4015
- .nav-tabs.nav-justified > li {
4016
- display: table-cell;
4017
- width: 1%;
4018
- }
4019
- .nav-tabs.nav-justified > li > a {
4020
- margin-bottom: 0;
4021
- }
4022
- }
4023
- .nav-tabs.nav-justified > li > a {
4024
- margin-right: 0;
4025
- border-radius: 4px;
4026
- }
4027
- .nav-tabs.nav-justified > .active > a,
4028
- .nav-tabs.nav-justified > .active > a:hover,
4029
- .nav-tabs.nav-justified > .active > a:focus {
4030
- border: 1px solid #ddd;
4031
- }
4032
- @media (min-width: 768px) {
4033
- .nav-tabs.nav-justified > li > a {
4034
- border-bottom: 1px solid #ddd;
4035
- border-radius: 4px 4px 0 0;
4036
- }
4037
- .nav-tabs.nav-justified > .active > a,
4038
- .nav-tabs.nav-justified > .active > a:hover,
4039
- .nav-tabs.nav-justified > .active > a:focus {
4040
- border-bottom-color: #fff;
4041
- }
4042
- }
4043
- .nav-pills > li {
4044
- float: left;
4045
- }
4046
- .nav-pills > li > a {
4047
- border-radius: 4px;
4048
- }
4049
- .nav-pills > li + li {
4050
- margin-left: 2px;
4051
- }
4052
- .nav-pills > li.active > a,
4053
- .nav-pills > li.active > a:hover,
4054
- .nav-pills > li.active > a:focus {
4055
- color: #fff;
4056
- background-color: #337ab7;
4057
- }
4058
- .nav-stacked > li {
4059
- float: none;
4060
- }
4061
- .nav-stacked > li + li {
4062
- margin-top: 2px;
4063
- margin-left: 0;
4064
- }
4065
- .nav-justified {
4066
- width: 100%;
4067
- }
4068
- .nav-justified > li {
4069
- float: none;
4070
- }
4071
- .nav-justified > li > a {
4072
- margin-bottom: 5px;
4073
- text-align: center;
4074
- }
4075
- .nav-justified > .dropdown .dropdown-menu {
4076
- top: auto;
4077
- left: auto;
4078
- }
4079
- @media (min-width: 768px) {
4080
- .nav-justified > li {
4081
- display: table-cell;
4082
- width: 1%;
4083
- }
4084
- .nav-justified > li > a {
4085
- margin-bottom: 0;
4086
- }
4087
- }
4088
- .nav-tabs-justified {
4089
- border-bottom: 0;
4090
- }
4091
- .nav-tabs-justified > li > a {
4092
- margin-right: 0;
4093
- border-radius: 4px;
4094
- }
4095
- .nav-tabs-justified > .active > a,
4096
- .nav-tabs-justified > .active > a:hover,
4097
- .nav-tabs-justified > .active > a:focus {
4098
- border: 1px solid #ddd;
4099
- }
4100
- @media (min-width: 768px) {
4101
- .nav-tabs-justified > li > a {
4102
- border-bottom: 1px solid #ddd;
4103
- border-radius: 4px 4px 0 0;
4104
- }
4105
- .nav-tabs-justified > .active > a,
4106
- .nav-tabs-justified > .active > a:hover,
4107
- .nav-tabs-justified > .active > a:focus {
4108
- border-bottom-color: #fff;
4109
- }
4110
- }
4111
- .tab-content > .tab-pane {
4112
- display: none;
4113
- }
4114
- .tab-content > .active {
4115
- display: block;
4116
- }
4117
- .nav-tabs .dropdown-menu {
4118
- margin-top: -1px;
4119
- border-top-left-radius: 0;
4120
- border-top-right-radius: 0;
4121
- }
4122
- .navbar {
4123
- position: relative;
4124
- min-height: 50px;
4125
- margin-bottom: 20px;
4126
- border: 1px solid transparent;
4127
- }
4128
- @media (min-width: 768px) {
4129
- .navbar {
4130
- border-radius: 4px;
4131
- }
4132
- }
4133
- @media (min-width: 768px) {
4134
- .navbar-header {
4135
- float: left;
4136
- }
4137
- }
4138
- .navbar-collapse {
4139
- padding-right: 15px;
4140
- padding-left: 15px;
4141
- overflow-x: visible;
4142
- -webkit-overflow-scrolling: touch;
4143
- border-top: 1px solid transparent;
4144
- -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1);
4145
- box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1);
4146
- }
4147
- .navbar-collapse.in {
4148
- overflow-y: auto;
4149
- }
4150
- @media (min-width: 768px) {
4151
- .navbar-collapse {
4152
- width: auto;
4153
- border-top: 0;
4154
- -webkit-box-shadow: none;
4155
- box-shadow: none;
4156
- }
4157
- .navbar-collapse.collapse {
4158
- display: block !important;
4159
- height: auto !important;
4160
- padding-bottom: 0;
4161
- overflow: visible !important;
4162
- }
4163
- .navbar-collapse.in {
4164
- overflow-y: visible;
4165
- }
4166
- .navbar-fixed-top .navbar-collapse,
4167
- .navbar-static-top .navbar-collapse,
4168
- .navbar-fixed-bottom .navbar-collapse {
4169
- padding-right: 0;
4170
- padding-left: 0;
4171
- }
4172
- }
4173
- .navbar-fixed-top .navbar-collapse,
4174
- .navbar-fixed-bottom .navbar-collapse {
4175
- max-height: 340px;
4176
- }
4177
- @media (max-device-width: 480px) and (orientation: landscape) {
4178
- .navbar-fixed-top .navbar-collapse,
4179
- .navbar-fixed-bottom .navbar-collapse {
4180
- max-height: 200px;
4181
- }
4182
- }
4183
- .container > .navbar-header,
4184
- .container-fluid > .navbar-header,
4185
- .container > .navbar-collapse,
4186
- .container-fluid > .navbar-collapse {
4187
- margin-right: -15px;
4188
- margin-left: -15px;
4189
- }
4190
- @media (min-width: 768px) {
4191
- .container > .navbar-header,
4192
- .container-fluid > .navbar-header,
4193
- .container > .navbar-collapse,
4194
- .container-fluid > .navbar-collapse {
4195
- margin-right: 0;
4196
- margin-left: 0;
4197
- }
4198
- }
4199
- .navbar-static-top {
4200
- z-index: 1000;
4201
- border-width: 0 0 1px;
4202
- }
4203
- @media (min-width: 768px) {
4204
- .navbar-static-top {
4205
- border-radius: 0;
4206
- }
4207
- }
4208
- .navbar-fixed-top,
4209
- .navbar-fixed-bottom {
4210
- position: fixed;
4211
- right: 0;
4212
- left: 0;
4213
- z-index: 1030;
4214
- }
4215
- @media (min-width: 768px) {
4216
- .navbar-fixed-top,
4217
- .navbar-fixed-bottom {
4218
- border-radius: 0;
4219
- }
4220
- }
4221
- .navbar-fixed-top {
4222
- top: 0;
4223
- border-width: 0 0 1px;
4224
- }
4225
- .navbar-fixed-bottom {
4226
- bottom: 0;
4227
- margin-bottom: 0;
4228
- border-width: 1px 0 0;
4229
- }
4230
- .navbar-brand {
4231
- float: left;
4232
- height: 50px;
4233
- padding: 15px 15px;
4234
- font-size: 18px;
4235
- line-height: 20px;
4236
- }
4237
- .navbar-brand:hover,
4238
- .navbar-brand:focus {
4239
- text-decoration: none;
4240
- }
4241
- .navbar-brand > img {
4242
- display: block;
4243
- }
4244
- @media (min-width: 768px) {
4245
- .navbar > .container .navbar-brand,
4246
- .navbar > .container-fluid .navbar-brand {
4247
- margin-left: -15px;
4248
- }
4249
- }
4250
- .navbar-toggle {
4251
- position: relative;
4252
- float: right;
4253
- padding: 9px 10px;
4254
- margin-top: 8px;
4255
- margin-right: 15px;
4256
- margin-bottom: 8px;
4257
- background-color: transparent;
4258
- background-image: none;
4259
- border: 1px solid transparent;
4260
- border-radius: 4px;
4261
- }
4262
- .navbar-toggle:focus {
4263
- outline: 0;
4264
- }
4265
- .navbar-toggle .icon-bar {
4266
- display: block;
4267
- width: 22px;
4268
- height: 2px;
4269
- border-radius: 1px;
4270
- }
4271
- .navbar-toggle .icon-bar + .icon-bar {
4272
- margin-top: 4px;
4273
- }
4274
- @media (min-width: 768px) {
4275
- .navbar-toggle {
4276
- display: none;
4277
- }
4278
- }
4279
- .navbar-nav {
4280
- margin: 7.5px -15px;
4281
- }
4282
- .navbar-nav > li > a {
4283
- padding-top: 10px;
4284
- padding-bottom: 10px;
4285
- line-height: 20px;
4286
- }
4287
- @media (max-width: 767px) {
4288
- .navbar-nav .open .dropdown-menu {
4289
- position: static;
4290
- float: none;
4291
- width: auto;
4292
- margin-top: 0;
4293
- background-color: transparent;
4294
- border: 0;
4295
- -webkit-box-shadow: none;
4296
- box-shadow: none;
4297
- }
4298
- .navbar-nav .open .dropdown-menu > li > a,
4299
- .navbar-nav .open .dropdown-menu .dropdown-header {
4300
- padding: 5px 15px 5px 25px;
4301
- }
4302
- .navbar-nav .open .dropdown-menu > li > a {
4303
- line-height: 20px;
4304
- }
4305
- .navbar-nav .open .dropdown-menu > li > a:hover,
4306
- .navbar-nav .open .dropdown-menu > li > a:focus {
4307
- background-image: none;
4308
- }
4309
- }
4310
- @media (min-width: 768px) {
4311
- .navbar-nav {
4312
- float: left;
4313
- margin: 0;
4314
- }
4315
- .navbar-nav > li {
4316
- float: left;
4317
- }
4318
- .navbar-nav > li > a {
4319
- padding-top: 15px;
4320
- padding-bottom: 15px;
4321
- }
4322
- }
4323
- .navbar-form {
4324
- padding: 10px 15px;
4325
- margin-top: 8px;
4326
- margin-right: -15px;
4327
- margin-bottom: 8px;
4328
- margin-left: -15px;
4329
- border-top: 1px solid transparent;
4330
- border-bottom: 1px solid transparent;
4331
- -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1);
4332
- box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1);
4333
- }
4334
- @media (min-width: 768px) {
4335
- .navbar-form .form-group {
4336
- display: inline-block;
4337
- margin-bottom: 0;
4338
- vertical-align: middle;
4339
- }
4340
- .navbar-form .form-control {
4341
- display: inline-block;
4342
- width: auto;
4343
- vertical-align: middle;
4344
- }
4345
- .navbar-form .form-control-static {
4346
- display: inline-block;
4347
- }
4348
- .navbar-form .input-group {
4349
- display: inline-table;
4350
- vertical-align: middle;
4351
- }
4352
- .navbar-form .input-group .input-group-addon,
4353
- .navbar-form .input-group .input-group-btn,
4354
- .navbar-form .input-group .form-control {
4355
- width: auto;
4356
- }
4357
- .navbar-form .input-group > .form-control {
4358
- width: 100%;
4359
- }
4360
- .navbar-form .control-label {
4361
- margin-bottom: 0;
4362
- vertical-align: middle;
4363
- }
4364
- .navbar-form .radio,
4365
- .navbar-form .checkbox {
4366
- display: inline-block;
4367
- margin-top: 0;
4368
- margin-bottom: 0;
4369
- vertical-align: middle;
4370
- }
4371
- .navbar-form .radio label,
4372
- .navbar-form .checkbox label {
4373
- padding-left: 0;
4374
- }
4375
- .navbar-form .radio input[type="radio"],
4376
- .navbar-form .checkbox input[type="checkbox"] {
4377
- position: relative;
4378
- margin-left: 0;
4379
- }
4380
- .navbar-form .has-feedback .form-control-feedback {
4381
- top: 0;
4382
- }
4383
- }
4384
- @media (max-width: 767px) {
4385
- .navbar-form .form-group {
4386
- margin-bottom: 5px;
4387
- }
4388
- .navbar-form .form-group:last-child {
4389
- margin-bottom: 0;
4390
- }
4391
- }
4392
- @media (min-width: 768px) {
4393
- .navbar-form {
4394
- width: auto;
4395
- padding-top: 0;
4396
- padding-bottom: 0;
4397
- margin-right: 0;
4398
- margin-left: 0;
4399
- border: 0;
4400
- -webkit-box-shadow: none;
4401
- box-shadow: none;
4402
- }
4403
- }
4404
- .navbar-nav > li > .dropdown-menu {
4405
- margin-top: 0;
4406
- border-top-left-radius: 0;
4407
- border-top-right-radius: 0;
4408
- }
4409
- .navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
4410
- margin-bottom: 0;
4411
- border-top-left-radius: 4px;
4412
- border-top-right-radius: 4px;
4413
- border-bottom-right-radius: 0;
4414
- border-bottom-left-radius: 0;
4415
- }
4416
- .navbar-btn {
4417
- margin-top: 8px;
4418
- margin-bottom: 8px;
4419
- }
4420
- .navbar-btn.btn-sm {
4421
- margin-top: 10px;
4422
- margin-bottom: 10px;
4423
- }
4424
- .navbar-btn.btn-xs {
4425
- margin-top: 14px;
4426
- margin-bottom: 14px;
4427
- }
4428
- .navbar-text {
4429
- margin-top: 15px;
4430
- margin-bottom: 15px;
4431
- }
4432
- @media (min-width: 768px) {
4433
- .navbar-text {
4434
- float: left;
4435
- margin-right: 15px;
4436
- margin-left: 15px;
4437
- }
4438
- }
4439
- @media (min-width: 768px) {
4440
- .navbar-left {
4441
- float: left !important;
4442
- }
4443
- .navbar-right {
4444
- float: right !important;
4445
- margin-right: -15px;
4446
- }
4447
- .navbar-right ~ .navbar-right {
4448
- margin-right: 0;
4449
- }
4450
- }
4451
- .navbar-default {
4452
- background-color: #f8f8f8;
4453
- border-color: #e7e7e7;
4454
- }
4455
- .navbar-default .navbar-brand {
4456
- color: #777;
4457
- }
4458
- .navbar-default .navbar-brand:hover,
4459
- .navbar-default .navbar-brand:focus {
4460
- color: #5e5e5e;
4461
- background-color: transparent;
4462
- }
4463
- .navbar-default .navbar-text {
4464
- color: #777;
4465
- }
4466
- .navbar-default .navbar-nav > li > a {
4467
- color: #777;
4468
- }
4469
- .navbar-default .navbar-nav > li > a:hover,
4470
- .navbar-default .navbar-nav > li > a:focus {
4471
- color: #333;
4472
- background-color: transparent;
4473
- }
4474
- .navbar-default .navbar-nav > .active > a,
4475
- .navbar-default .navbar-nav > .active > a:hover,
4476
- .navbar-default .navbar-nav > .active > a:focus {
4477
- color: #555;
4478
- background-color: #e7e7e7;
4479
- }
4480
- .navbar-default .navbar-nav > .disabled > a,
4481
- .navbar-default .navbar-nav > .disabled > a:hover,
4482
- .navbar-default .navbar-nav > .disabled > a:focus {
4483
- color: #ccc;
4484
- background-color: transparent;
4485
- }
4486
- .navbar-default .navbar-toggle {
4487
- border-color: #ddd;
4488
- }
4489
- .navbar-default .navbar-toggle:hover,
4490
- .navbar-default .navbar-toggle:focus {
4491
- background-color: #ddd;
4492
- }
4493
- .navbar-default .navbar-toggle .icon-bar {
4494
- background-color: #888;
4495
- }
4496
- .navbar-default .navbar-collapse,
4497
- .navbar-default .navbar-form {
4498
- border-color: #e7e7e7;
4499
- }
4500
- .navbar-default .navbar-nav > .open > a,
4501
- .navbar-default .navbar-nav > .open > a:hover,
4502
- .navbar-default .navbar-nav > .open > a:focus {
4503
- color: #555;
4504
- background-color: #e7e7e7;
4505
- }
4506
- @media (max-width: 767px) {
4507
- .navbar-default .navbar-nav .open .dropdown-menu > li > a {
4508
- color: #777;
4509
- }
4510
- .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
4511
- .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
4512
- color: #333;
4513
- background-color: transparent;
4514
- }
4515
- .navbar-default .navbar-nav .open .dropdown-menu > .active > a,
4516
- .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
4517
- .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
4518
- color: #555;
4519
- background-color: #e7e7e7;
4520
- }
4521
- .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,
4522
- .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,
4523
- .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
4524
- color: #ccc;
4525
- background-color: transparent;
4526
- }
4527
- }
4528
- .navbar-default .navbar-link {
4529
- color: #777;
4530
- }
4531
- .navbar-default .navbar-link:hover {
4532
- color: #333;
4533
- }
4534
- .navbar-default .btn-link {
4535
- color: #777;
4536
- }
4537
- .navbar-default .btn-link:hover,
4538
- .navbar-default .btn-link:focus {
4539
- color: #333;
4540
- }
4541
- .navbar-default .btn-link[disabled]:hover,
4542
- fieldset[disabled] .navbar-default .btn-link:hover,
4543
- .navbar-default .btn-link[disabled]:focus,
4544
- fieldset[disabled] .navbar-default .btn-link:focus {
4545
- color: #ccc;
4546
- }
4547
- .navbar-inverse {
4548
- background-color: #222;
4549
- border-color: #080808;
4550
- }
4551
- .navbar-inverse .navbar-brand {
4552
- color: #9d9d9d;
4553
- }
4554
- .navbar-inverse .navbar-brand:hover,
4555
- .navbar-inverse .navbar-brand:focus {
4556
- color: #fff;
4557
- background-color: transparent;
4558
- }
4559
- .navbar-inverse .navbar-text {
4560
- color: #9d9d9d;
4561
- }
4562
- .navbar-inverse .navbar-nav > li > a {
4563
- color: #9d9d9d;
4564
- }
4565
- .navbar-inverse .navbar-nav > li > a:hover,
4566
- .navbar-inverse .navbar-nav > li > a:focus {
4567
- color: #fff;
4568
- background-color: transparent;
4569
- }
4570
- .navbar-inverse .navbar-nav > .active > a,
4571
- .navbar-inverse .navbar-nav > .active > a:hover,
4572
- .navbar-inverse .navbar-nav > .active > a:focus {
4573
- color: #fff;
4574
- background-color: #080808;
4575
- }
4576
- .navbar-inverse .navbar-nav > .disabled > a,
4577
- .navbar-inverse .navbar-nav > .disabled > a:hover,
4578
- .navbar-inverse .navbar-nav > .disabled > a:focus {
4579
- color: #444;
4580
- background-color: transparent;
4581
- }
4582
- .navbar-inverse .navbar-toggle {
4583
- border-color: #333;
4584
- }
4585
- .navbar-inverse .navbar-toggle:hover,
4586
- .navbar-inverse .navbar-toggle:focus {
4587
- background-color: #333;
4588
- }
4589
- .navbar-inverse .navbar-toggle .icon-bar {
4590
- background-color: #fff;
4591
- }
4592
- .navbar-inverse .navbar-collapse,
4593
- .navbar-inverse .navbar-form {
4594
- border-color: #101010;
4595
- }
4596
- .navbar-inverse .navbar-nav > .open > a,
4597
- .navbar-inverse .navbar-nav > .open > a:hover,
4598
- .navbar-inverse .navbar-nav > .open > a:focus {
4599
- color: #fff;
4600
- background-color: #080808;
4601
- }
4602
- @media (max-width: 767px) {
4603
- .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
4604
- border-color: #080808;
4605
- }
4606
- .navbar-inverse .navbar-nav .open .dropdown-menu .divider {
4607
- background-color: #080808;
4608
- }
4609
- .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
4610
- color: #9d9d9d;
4611
- }
4612
- .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
4613
- .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
4614
- color: #fff;
4615
- background-color: transparent;
4616
- }
4617
- .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,
4618
- .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,
4619
- .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
4620
- color: #fff;
4621
- background-color: #080808;
4622
- }
4623
- .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,
4624
- .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,
4625
- .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
4626
- color: #444;
4627
- background-color: transparent;
4628
- }
4629
- }
4630
- .navbar-inverse .navbar-link {
4631
- color: #9d9d9d;
4632
- }
4633
- .navbar-inverse .navbar-link:hover {
4634
- color: #fff;
4635
- }
4636
- .navbar-inverse .btn-link {
4637
- color: #9d9d9d;
4638
- }
4639
- .navbar-inverse .btn-link:hover,
4640
- .navbar-inverse .btn-link:focus {
4641
- color: #fff;
4642
- }
4643
- .navbar-inverse .btn-link[disabled]:hover,
4644
- fieldset[disabled] .navbar-inverse .btn-link:hover,
4645
- .navbar-inverse .btn-link[disabled]:focus,
4646
- fieldset[disabled] .navbar-inverse .btn-link:focus {
4647
- color: #444;
4648
- }
4649
- .breadcrumb {
4650
- padding: 8px 15px;
4651
- margin-bottom: 20px;
4652
- list-style: none;
4653
- background-color: #f5f5f5;
4654
- border-radius: 4px;
4655
- }
4656
- .breadcrumb > li {
4657
- display: inline-block;
4658
- }
4659
- .breadcrumb > li + li:before {
4660
- padding: 0 5px;
4661
- color: #ccc;
4662
- content: "/\00a0";
4663
- }
4664
- .breadcrumb > .active {
4665
- color: #777;
4666
- }
4667
- .pagination {
4668
- display: inline-block;
4669
- padding-left: 0;
4670
- margin: 20px 0;
4671
- border-radius: 4px;
4672
- }
4673
- .pagination > li {
4674
- display: inline;
4675
- }
4676
- .pagination > li > a,
4677
- .pagination > li > span {
4678
- position: relative;
4679
- float: left;
4680
- padding: 6px 12px;
4681
- margin-left: -1px;
4682
- line-height: 1.42857143;
4683
- color: #337ab7;
4684
- text-decoration: none;
4685
- background-color: #fff;
4686
- border: 1px solid #ddd;
4687
- }
4688
- .pagination > li:first-child > a,
4689
- .pagination > li:first-child > span {
4690
- margin-left: 0;
4691
- border-top-left-radius: 4px;
4692
- border-bottom-left-radius: 4px;
4693
- }
4694
- .pagination > li:last-child > a,
4695
- .pagination > li:last-child > span {
4696
- border-top-right-radius: 4px;
4697
- border-bottom-right-radius: 4px;
4698
- }
4699
- .pagination > li > a:hover,
4700
- .pagination > li > span:hover,
4701
- .pagination > li > a:focus,
4702
- .pagination > li > span:focus {
4703
- z-index: 2;
4704
- color: #23527c;
4705
- background-color: #eee;
4706
- border-color: #ddd;
4707
- }
4708
- .pagination > .active > a,
4709
- .pagination > .active > span,
4710
- .pagination > .active > a:hover,
4711
- .pagination > .active > span:hover,
4712
- .pagination > .active > a:focus,
4713
- .pagination > .active > span:focus {
4714
- z-index: 3;
4715
- color: #fff;
4716
- cursor: default;
4717
- background-color: #337ab7;
4718
- border-color: #337ab7;
4719
- }
4720
- .pagination > .disabled > span,
4721
- .pagination > .disabled > span:hover,
4722
- .pagination > .disabled > span:focus,
4723
- .pagination > .disabled > a,
4724
- .pagination > .disabled > a:hover,
4725
- .pagination > .disabled > a:focus {
4726
- color: #777;
4727
- cursor: not-allowed;
4728
- background-color: #fff;
4729
- border-color: #ddd;
4730
- }
4731
- .pagination-lg > li > a,
4732
- .pagination-lg > li > span {
4733
- padding: 10px 16px;
4734
- font-size: 18px;
4735
- line-height: 1.3333333;
4736
- }
4737
- .pagination-lg > li:first-child > a,
4738
- .pagination-lg > li:first-child > span {
4739
- border-top-left-radius: 6px;
4740
- border-bottom-left-radius: 6px;
4741
- }
4742
- .pagination-lg > li:last-child > a,
4743
- .pagination-lg > li:last-child > span {
4744
- border-top-right-radius: 6px;
4745
- border-bottom-right-radius: 6px;
4746
- }
4747
- .pagination-sm > li > a,
4748
- .pagination-sm > li > span {
4749
- padding: 5px 10px;
4750
- font-size: 12px;
4751
- line-height: 1.5;
4752
- }
4753
- .pagination-sm > li:first-child > a,
4754
- .pagination-sm > li:first-child > span {
4755
- border-top-left-radius: 3px;
4756
- border-bottom-left-radius: 3px;
4757
- }
4758
- .pagination-sm > li:last-child > a,
4759
- .pagination-sm > li:last-child > span {
4760
- border-top-right-radius: 3px;
4761
- border-bottom-right-radius: 3px;
4762
- }
4763
- .pager {
4764
- padding-left: 0;
4765
- margin: 20px 0;
4766
- text-align: center;
4767
- list-style: none;
4768
- }
4769
- .pager li {
4770
- display: inline;
4771
- }
4772
- .pager li > a,
4773
- .pager li > span {
4774
- display: inline-block;
4775
- padding: 5px 14px;
4776
- background-color: #fff;
4777
- border: 1px solid #ddd;
4778
- border-radius: 15px;
4779
- }
4780
- .pager li > a:hover,
4781
- .pager li > a:focus {
4782
- text-decoration: none;
4783
- background-color: #eee;
4784
- }
4785
- .pager .next > a,
4786
- .pager .next > span {
4787
- float: right;
4788
- }
4789
- .pager .previous > a,
4790
- .pager .previous > span {
4791
- float: left;
4792
- }
4793
- .pager .disabled > a,
4794
- .pager .disabled > a:hover,
4795
- .pager .disabled > a:focus,
4796
- .pager .disabled > span {
4797
- color: #777;
4798
- cursor: not-allowed;
4799
- background-color: #fff;
4800
- }
4801
- .label {
4802
- display: inline;
4803
- padding: .2em .6em .3em;
4804
- font-size: 75%;
4805
- line-height: 1;
4806
- color: #fff;
4807
- text-align: center;
4808
- white-space: nowrap;
4809
- vertical-align: baseline;
4810
- border-radius: .25em;
4811
- }
4812
- a.label:hover,
4813
- a.label:focus {
4814
- color: #fff;
4815
- text-decoration: none;
4816
- cursor: pointer;
4817
- }
4818
- .label:empty {
4819
- display: none;
4820
- }
4821
- .btn .label {
4822
- position: relative;
4823
- top: -1px;
4824
- }
4825
- .label-default {
4826
- background-color: #777;
4827
- }
4828
- .label-default[href]:hover,
4829
- .label-default[href]:focus {
4830
- background-color: #5e5e5e;
4831
- }
4832
- .label-primary {
4833
- background-color: #337ab7;
4834
- }
4835
- .label-primary[href]:hover,
4836
- .label-primary[href]:focus {
4837
- background-color: #286090;
4838
- }
4839
- .label-success {
4840
- background-color: #5cb85c;
4841
- }
4842
- .label-success[href]:hover,
4843
- .label-success[href]:focus {
4844
- background-color: #449d44;
4845
- }
4846
- .label-info {
4847
- background-color: #5bc0de;
4848
- }
4849
- .label-info[href]:hover,
4850
- .label-info[href]:focus {
4851
- background-color: #31b0d5;
4852
- }
4853
- .label-warning {
4854
- background-color: #f0ad4e;
4855
- }
4856
- .label-warning[href]:hover,
4857
- .label-warning[href]:focus {
4858
- background-color: #ec971f;
4859
- }
4860
- .label-danger {
4861
- background-color: #d9534f;
4862
- }
4863
- .label-danger[href]:hover,
4864
- .label-danger[href]:focus {
4865
- background-color: #c9302c;
4866
- }
4867
- .badge {
4868
- display: inline-block;
4869
- min-width: 10px;
4870
- padding: 3px 7px;
4871
- font-size: 12px;
4872
- font-weight: bold;
4873
- line-height: 1;
4874
- color: #fff;
4875
- text-align: center;
4876
- white-space: nowrap;
4877
- vertical-align: middle;
4878
- background-color: #777;
4879
- border-radius: 10px;
4880
- }
4881
- .badge:empty {
4882
- display: none;
4883
- }
4884
- .btn .badge {
4885
- position: relative;
4886
- top: -1px;
4887
- }
4888
- .btn-xs .badge,
4889
- .btn-group-xs > .btn .badge {
4890
- top: 0;
4891
- padding: 1px 5px;
4892
- }
4893
- a.badge:hover,
4894
- a.badge:focus {
4895
- color: #fff;
4896
- text-decoration: none;
4897
- cursor: pointer;
4898
- }
4899
- .list-group-item.active > .badge,
4900
- .nav-pills > .active > a > .badge {
4901
- color: #337ab7;
4902
- background-color: #fff;
4903
- }
4904
- .list-group-item > .badge {
4905
- float: right;
4906
- }
4907
- .list-group-item > .badge + .badge {
4908
- margin-right: 5px;
4909
- }
4910
- .nav-pills > li > a > .badge {
4911
- margin-left: 3px;
4912
- }
4913
- .jumbotron {
4914
- padding-top: 30px;
4915
- padding-bottom: 30px;
4916
- margin-bottom: 30px;
4917
- color: inherit;
4918
- background-color: #eee;
4919
- }
4920
- .jumbotron h1,
4921
- .jumbotron .h1 {
4922
- color: inherit;
4923
- }
4924
- .jumbotron p {
4925
- margin-bottom: 15px;
4926
- font-size: 21px;
4927
- font-weight: 200;
4928
- }
4929
- .jumbotron > hr {
4930
- border-top-color: #d5d5d5;
4931
- }
4932
- .container .jumbotron,
4933
- .container-fluid .jumbotron {
4934
- padding-right: 15px;
4935
- padding-left: 15px;
4936
- border-radius: 6px;
4937
- }
4938
- .jumbotron .container {
4939
- max-width: 100%;
4940
- }
4941
- @media screen and (min-width: 768px) {
4942
- .jumbotron {
4943
- padding-top: 48px;
4944
- padding-bottom: 48px;
4945
- }
4946
- .container .jumbotron,
4947
- .container-fluid .jumbotron {
4948
- padding-right: 60px;
4949
- padding-left: 60px;
4950
- }
4951
- .jumbotron h1,
4952
- .jumbotron .h1 {
4953
- font-size: 63px;
4954
- }
4955
- }
4956
- .thumbnail {
4957
- display: block;
4958
- padding: 4px;
4959
- margin-bottom: 20px;
4960
- line-height: 1.42857143;
4961
- background-color: #fff;
4962
- border: 1px solid #ddd;
4963
- border-radius: 4px;
4964
- -webkit-transition: border .2s ease-in-out;
4965
- -o-transition: border .2s ease-in-out;
4966
- transition: border .2s ease-in-out;
4967
- }
4968
- .thumbnail > img,
4969
- .thumbnail a > img {
4970
- margin-right: auto;
4971
- margin-left: auto;
4972
- }
4973
- a.thumbnail:hover,
4974
- a.thumbnail:focus,
4975
- a.thumbnail.active {
4976
- border-color: #337ab7;
4977
- }
4978
- .thumbnail .caption {
4979
- padding: 9px;
4980
- color: #333;
4981
- }
4982
- .alert {
4983
- padding: 15px;
4984
- margin-bottom: 20px;
4985
- border: 1px solid transparent;
4986
- border-radius: 4px;
4987
- }
4988
- .alert h4 {
4989
- margin-top: 0;
4990
- color: inherit;
4991
- }
4992
- .alert .alert-link {
4993
- font-weight: bold;
4994
- }
4995
- .alert > p,
4996
- .alert > ul {
4997
- margin-bottom: 0;
4998
- }
4999
- .alert > p + p {
5000
- margin-top: 5px;
5001
- }
5002
- .alert-dismissable,
5003
- .alert-dismissible {
5004
- padding-right: 35px;
5005
- }
5006
- .alert-dismissable .close,
5007
- .alert-dismissible .close {
5008
- position: relative;
5009
- top: -2px;
5010
- right: -21px;
5011
- color: inherit;
5012
- }
5013
- .alert-success {
5014
- color: #3c763d;
5015
- background-color: #dff0d8;
5016
- border-color: #d6e9c6;
5017
- }
5018
- .alert-success hr {
5019
- border-top-color: #c9e2b3;
5020
- }
5021
- .alert-success .alert-link {
5022
- color: #2b542c;
5023
- }
5024
- .alert-info {
5025
- color: #31708f;
5026
- background-color: #d9edf7;
5027
- border-color: #bce8f1;
5028
- }
5029
- .alert-info hr {
5030
- border-top-color: #a6e1ec;
5031
- }
5032
- .alert-info .alert-link {
5033
- color: #245269;
5034
- }
5035
- .alert-warning {
5036
- color: #8a6d3b;
5037
- background-color: #fcf8e3;
5038
- border-color: #faebcc;
5039
- }
5040
- .alert-warning hr {
5041
- border-top-color: #f7e1b5;
5042
- }
5043
- .alert-warning .alert-link {
5044
- color: #66512c;
5045
- }
5046
- .alert-danger {
5047
- color: #a94442;
5048
- background-color: #f2dede;
5049
- border-color: #ebccd1;
5050
- }
5051
- .alert-danger hr {
5052
- border-top-color: #e4b9c0;
5053
- }
5054
- .alert-danger .alert-link {
5055
- color: #843534;
5056
- }
5057
- @-webkit-keyframes progress-bar-stripes {
5058
- from {
5059
- background-position: 40px 0;
5060
- }
5061
- to {
5062
- background-position: 0 0;
5063
- }
5064
- }
5065
- @-o-keyframes progress-bar-stripes {
5066
- from {
5067
- background-position: 40px 0;
5068
- }
5069
- to {
5070
- background-position: 0 0;
5071
- }
5072
- }
5073
- @keyframes progress-bar-stripes {
5074
- from {
5075
- background-position: 40px 0;
5076
- }
5077
- to {
5078
- background-position: 0 0;
5079
- }
5080
- }
5081
- .progress {
5082
- height: 20px;
5083
- margin-bottom: 20px;
5084
- overflow: hidden;
5085
- background-color: #f5f5f5;
5086
- border-radius: 4px;
5087
- -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1);
5088
- box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1);
5089
- }
5090
- .progress-bar {
5091
- float: left;
5092
- width: 0;
5093
- height: 100%;
5094
- font-size: 12px;
5095
- line-height: 20px;
5096
- color: #fff;
5097
- text-align: center;
5098
- background-color: #337ab7;
5099
- -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15);
5100
- box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15);
5101
- -webkit-transition: width .6s ease;
5102
- -o-transition: width .6s ease;
5103
- transition: width .6s ease;
5104
- }
5105
- .progress-striped .progress-bar,
5106
- .progress-bar-striped {
5107
- background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
5108
- background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
5109
- background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
5110
- -webkit-background-size: 40px 40px;
5111
- background-size: 40px 40px;
5112
- }
5113
- .progress.active .progress-bar,
5114
- .progress-bar.active {
5115
- -webkit-animation: progress-bar-stripes 2s linear infinite;
5116
- -o-animation: progress-bar-stripes 2s linear infinite;
5117
- animation: progress-bar-stripes 2s linear infinite;
5118
- }
5119
- .progress-bar-success {
5120
- background-color: #5cb85c;
5121
- }
5122
- .progress-striped .progress-bar-success {
5123
- background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
5124
- background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
5125
- background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
5126
- }
5127
- .progress-bar-info {
5128
- background-color: #5bc0de;
5129
- }
5130
- .progress-striped .progress-bar-info {
5131
- background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
5132
- background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
5133
- background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
5134
- }
5135
- .progress-bar-warning {
5136
- background-color: #f0ad4e;
5137
- }
5138
- .progress-striped .progress-bar-warning {
5139
- background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
5140
- background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
5141
- background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
5142
- }
5143
- .progress-bar-danger {
5144
- background-color: #d9534f;
5145
- }
5146
- .progress-striped .progress-bar-danger {
5147
- background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
5148
- background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
5149
- background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
5150
- }
5151
- .media {
5152
- margin-top: 15px;
5153
- }
5154
- .media:first-child {
5155
- margin-top: 0;
5156
- }
5157
- .media,
5158
- .media-body {
5159
- overflow: hidden;
5160
- zoom: 1;
5161
- }
5162
- .media-body {
5163
- width: 10000px;
5164
- }
5165
- .media-object {
5166
- display: block;
5167
- }
5168
- .media-object.img-thumbnail {
5169
- max-width: none;
5170
- }
5171
- .media-right,
5172
- .media > .pull-right {
5173
- padding-left: 10px;
5174
- }
5175
- .media-left,
5176
- .media > .pull-left {
5177
- padding-right: 10px;
5178
- }
5179
- .media-left,
5180
- .media-right,
5181
- .media-body {
5182
- display: table-cell;
5183
- vertical-align: top;
5184
- }
5185
- .media-middle {
5186
- vertical-align: middle;
5187
- }
5188
- .media-bottom {
5189
- vertical-align: bottom;
5190
- }
5191
- .media-heading {
5192
- margin-top: 0;
5193
- margin-bottom: 5px;
5194
- }
5195
- .media-list {
5196
- padding-left: 0;
5197
- list-style: none;
5198
- }
5199
- .list-group {
5200
- padding-left: 0;
5201
- margin-bottom: 20px;
5202
- }
5203
- .list-group-item {
5204
- position: relative;
5205
- display: block;
5206
- padding: 10px 15px;
5207
- margin-bottom: -1px;
5208
- background-color: #fff;
5209
- border: 1px solid #ddd;
5210
- }
5211
- .list-group-item:first-child {
5212
- border-top-left-radius: 4px;
5213
- border-top-right-radius: 4px;
5214
- }
5215
- .list-group-item:last-child {
5216
- margin-bottom: 0;
5217
- border-bottom-right-radius: 4px;
5218
- border-bottom-left-radius: 4px;
5219
- }
5220
- a.list-group-item,
5221
- button.list-group-item {
5222
- color: #555;
5223
- }
5224
- a.list-group-item .list-group-item-heading,
5225
- button.list-group-item .list-group-item-heading {
5226
- color: #333;
5227
- }
5228
- a.list-group-item:hover,
5229
- button.list-group-item:hover,
5230
- a.list-group-item:focus,
5231
- button.list-group-item:focus {
5232
- color: #555;
5233
- text-decoration: none;
5234
- background-color: #f5f5f5;
5235
- }
5236
- button.list-group-item {
5237
- width: 100%;
5238
- text-align: left;
5239
- }
5240
- .list-group-item.disabled,
5241
- .list-group-item.disabled:hover,
5242
- .list-group-item.disabled:focus {
5243
- color: #777;
5244
- cursor: not-allowed;
5245
- background-color: #eee;
5246
- }
5247
- .list-group-item.disabled .list-group-item-heading,
5248
- .list-group-item.disabled:hover .list-group-item-heading,
5249
- .list-group-item.disabled:focus .list-group-item-heading {
5250
- color: inherit;
5251
- }
5252
- .list-group-item.disabled .list-group-item-text,
5253
- .list-group-item.disabled:hover .list-group-item-text,
5254
- .list-group-item.disabled:focus .list-group-item-text {
5255
- color: #777;
5256
- }
5257
- .list-group-item.active,
5258
- .list-group-item.active:hover,
5259
- .list-group-item.active:focus {
5260
- z-index: 2;
5261
- color: #fff;
5262
- background-color: #337ab7;
5263
- border-color: #337ab7;
5264
- }
5265
- .list-group-item.active .list-group-item-heading,
5266
- .list-group-item.active:hover .list-group-item-heading,
5267
- .list-group-item.active:focus .list-group-item-heading,
5268
- .list-group-item.active .list-group-item-heading > small,
5269
- .list-group-item.active:hover .list-group-item-heading > small,
5270
- .list-group-item.active:focus .list-group-item-heading > small,
5271
- .list-group-item.active .list-group-item-heading > .small,
5272
- .list-group-item.active:hover .list-group-item-heading > .small,
5273
- .list-group-item.active:focus .list-group-item-heading > .small {
5274
- color: inherit;
5275
- }
5276
- .list-group-item.active .list-group-item-text,
5277
- .list-group-item.active:hover .list-group-item-text,
5278
- .list-group-item.active:focus .list-group-item-text {
5279
- color: #c7ddef;
5280
- }
5281
- .list-group-item-success {
5282
- color: #3c763d;
5283
- background-color: #dff0d8;
5284
- }
5285
- a.list-group-item-success,
5286
- button.list-group-item-success {
5287
- color: #3c763d;
5288
- }
5289
- a.list-group-item-success .list-group-item-heading,
5290
- button.list-group-item-success .list-group-item-heading {
5291
- color: inherit;
5292
- }
5293
- a.list-group-item-success:hover,
5294
- button.list-group-item-success:hover,
5295
- a.list-group-item-success:focus,
5296
- button.list-group-item-success:focus {
5297
- color: #3c763d;
5298
- background-color: #d0e9c6;
5299
- }
5300
- a.list-group-item-success.active,
5301
- button.list-group-item-success.active,
5302
- a.list-group-item-success.active:hover,
5303
- button.list-group-item-success.active:hover,
5304
- a.list-group-item-success.active:focus,
5305
- button.list-group-item-success.active:focus {
5306
- color: #fff;
5307
- background-color: #3c763d;
5308
- border-color: #3c763d;
5309
- }
5310
- .list-group-item-info {
5311
- color: #31708f;
5312
- background-color: #d9edf7;
5313
- }
5314
- a.list-group-item-info,
5315
- button.list-group-item-info {
5316
- color: #31708f;
5317
- }
5318
- a.list-group-item-info .list-group-item-heading,
5319
- button.list-group-item-info .list-group-item-heading {
5320
- color: inherit;
5321
- }
5322
- a.list-group-item-info:hover,
5323
- button.list-group-item-info:hover,
5324
- a.list-group-item-info:focus,
5325
- button.list-group-item-info:focus {
5326
- color: #31708f;
5327
- background-color: #c4e3f3;
5328
- }
5329
- a.list-group-item-info.active,
5330
- button.list-group-item-info.active,
5331
- a.list-group-item-info.active:hover,
5332
- button.list-group-item-info.active:hover,
5333
- a.list-group-item-info.active:focus,
5334
- button.list-group-item-info.active:focus {
5335
- color: #fff;
5336
- background-color: #31708f;
5337
- border-color: #31708f;
5338
- }
5339
- .list-group-item-warning {
5340
- color: #8a6d3b;
5341
- background-color: #fcf8e3;
5342
- }
5343
- a.list-group-item-warning,
5344
- button.list-group-item-warning {
5345
- color: #8a6d3b;
5346
- }
5347
- a.list-group-item-warning .list-group-item-heading,
5348
- button.list-group-item-warning .list-group-item-heading {
5349
- color: inherit;
5350
- }
5351
- a.list-group-item-warning:hover,
5352
- button.list-group-item-warning:hover,
5353
- a.list-group-item-warning:focus,
5354
- button.list-group-item-warning:focus {
5355
- color: #8a6d3b;
5356
- background-color: #faf2cc;
5357
- }
5358
- a.list-group-item-warning.active,
5359
- button.list-group-item-warning.active,
5360
- a.list-group-item-warning.active:hover,
5361
- button.list-group-item-warning.active:hover,
5362
- a.list-group-item-warning.active:focus,
5363
- button.list-group-item-warning.active:focus {
5364
- color: #fff;
5365
- background-color: #8a6d3b;
5366
- border-color: #8a6d3b;
5367
- }
5368
- .list-group-item-danger {
5369
- color: #a94442;
5370
- background-color: #f2dede;
5371
- }
5372
- a.list-group-item-danger,
5373
- button.list-group-item-danger {
5374
- color: #a94442;
5375
- }
5376
- a.list-group-item-danger .list-group-item-heading,
5377
- button.list-group-item-danger .list-group-item-heading {
5378
- color: inherit;
5379
- }
5380
- a.list-group-item-danger:hover,
5381
- button.list-group-item-danger:hover,
5382
- a.list-group-item-danger:focus,
5383
- button.list-group-item-danger:focus {
5384
- color: #a94442;
5385
- background-color: #ebcccc;
5386
- }
5387
- a.list-group-item-danger.active,
5388
- button.list-group-item-danger.active,
5389
- a.list-group-item-danger.active:hover,
5390
- button.list-group-item-danger.active:hover,
5391
- a.list-group-item-danger.active:focus,
5392
- button.list-group-item-danger.active:focus {
5393
- color: #fff;
5394
- background-color: #a94442;
5395
- border-color: #a94442;
5396
- }
5397
- .list-group-item-heading {
5398
- margin-top: 0;
5399
- margin-bottom: 5px;
5400
- }
5401
- .list-group-item-text {
5402
- margin-bottom: 0;
5403
- line-height: 1.3;
5404
- }
5405
- .panel {
5406
- margin-bottom: 20px;
5407
- background-color: #fff;
5408
- border: 1px solid transparent;
5409
- border-radius: 4px;
5410
- -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
5411
- box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
5412
- }
5413
- .panel-body {
5414
- padding: 15px;
5415
- }
5416
- .panel-heading {
5417
- padding: 10px 15px;
5418
- border-bottom: 1px solid transparent;
5419
- border-top-left-radius: 3px;
5420
- border-top-right-radius: 3px;
5421
- }
5422
- .panel-heading > .dropdown .dropdown-toggle {
5423
- color: inherit;
5424
- }
5425
- .panel-title {
5426
- margin-top: 0;
5427
- margin-bottom: 0;
5428
- font-size: 16px;
5429
- color: inherit;
5430
- }
5431
- .panel-title > a,
5432
- .panel-title > small,
5433
- .panel-title > .small,
5434
- .panel-title > small > a,
5435
- .panel-title > .small > a {
5436
- color: inherit;
5437
- }
5438
- .panel-footer {
5439
- padding: 10px 15px;
5440
- background-color: #f5f5f5;
5441
- border-top: 1px solid #ddd;
5442
- border-bottom-right-radius: 3px;
5443
- border-bottom-left-radius: 3px;
5444
- }
5445
- .panel > .list-group,
5446
- .panel > .panel-collapse > .list-group {
5447
- margin-bottom: 0;
5448
- }
5449
- .panel > .list-group .list-group-item,
5450
- .panel > .panel-collapse > .list-group .list-group-item {
5451
- border-width: 1px 0;
5452
- border-radius: 0;
5453
- }
5454
- .panel > .list-group:first-child .list-group-item:first-child,
5455
- .panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {
5456
- border-top: 0;
5457
- border-top-left-radius: 3px;
5458
- border-top-right-radius: 3px;
5459
- }
5460
- .panel > .list-group:last-child .list-group-item:last-child,
5461
- .panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {
5462
- border-bottom: 0;
5463
- border-bottom-right-radius: 3px;
5464
- border-bottom-left-radius: 3px;
5465
- }
5466
- .panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {
5467
- border-top-left-radius: 0;
5468
- border-top-right-radius: 0;
5469
- }
5470
- .panel-heading + .list-group .list-group-item:first-child {
5471
- border-top-width: 0;
5472
- }
5473
- .list-group + .panel-footer {
5474
- border-top-width: 0;
5475
- }
5476
- .panel > .table,
5477
- .panel > .table-responsive > .table,
5478
- .panel > .panel-collapse > .table {
5479
- margin-bottom: 0;
5480
- }
5481
- .panel > .table caption,
5482
- .panel > .table-responsive > .table caption,
5483
- .panel > .panel-collapse > .table caption {
5484
- padding-right: 15px;
5485
- padding-left: 15px;
5486
- }
5487
- .panel > .table:first-child,
5488
- .panel > .table-responsive:first-child > .table:first-child {
5489
- border-top-left-radius: 3px;
5490
- border-top-right-radius: 3px;
5491
- }
5492
- .panel > .table:first-child > thead:first-child > tr:first-child,
5493
- .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,
5494
- .panel > .table:first-child > tbody:first-child > tr:first-child,
5495
- .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {
5496
- border-top-left-radius: 3px;
5497
- border-top-right-radius: 3px;
5498
- }
5499
- .panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
5500
- .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
5501
- .panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
5502
- .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,
5503
- .panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
5504
- .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,
5505
- .panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
5506
- .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {
5507
- border-top-left-radius: 3px;
5508
- }
5509
- .panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
5510
- .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,
5511
- .panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
5512
- .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,
5513
- .panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
5514
- .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,
5515
- .panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
5516
- .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {
5517
- border-top-right-radius: 3px;
5518
- }
5519
- .panel > .table:last-child,
5520
- .panel > .table-responsive:last-child > .table:last-child {
5521
- border-bottom-right-radius: 3px;
5522
- border-bottom-left-radius: 3px;
5523
- }
5524
- .panel > .table:last-child > tbody:last-child > tr:last-child,
5525
- .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,
5526
- .panel > .table:last-child > tfoot:last-child > tr:last-child,
5527
- .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {
5528
- border-bottom-right-radius: 3px;
5529
- border-bottom-left-radius: 3px;
5530
- }
5531
- .panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
5532
- .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
5533
- .panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
5534
- .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
5535
- .panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
5536
- .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,
5537
- .panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
5538
- .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {
5539
- border-bottom-left-radius: 3px;
5540
- }
5541
- .panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
5542
- .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,
5543
- .panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
5544
- .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
5545
- .panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
5546
- .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,
5547
- .panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
5548
- .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {
5549
- border-bottom-right-radius: 3px;
5550
- }
5551
- .panel > .panel-body + .table,
5552
- .panel > .panel-body + .table-responsive,
5553
- .panel > .table + .panel-body,
5554
- .panel > .table-responsive + .panel-body {
5555
- border-top: 1px solid #ddd;
5556
- }
5557
- .panel > .table > tbody:first-child > tr:first-child th,
5558
- .panel > .table > tbody:first-child > tr:first-child td {
5559
- border-top: 0;
5560
- }
5561
- .panel > .table-bordered,
5562
- .panel > .table-responsive > .table-bordered {
5563
- border: 0;
5564
- }
5565
- .panel > .table-bordered > thead > tr > th:first-child,
5566
- .panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
5567
- .panel > .table-bordered > tbody > tr > th:first-child,
5568
- .panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
5569
- .panel > .table-bordered > tfoot > tr > th:first-child,
5570
- .panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
5571
- .panel > .table-bordered > thead > tr > td:first-child,
5572
- .panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
5573
- .panel > .table-bordered > tbody > tr > td:first-child,
5574
- .panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
5575
- .panel > .table-bordered > tfoot > tr > td:first-child,
5576
- .panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
5577
- border-left: 0;
5578
- }
5579
- .panel > .table-bordered > thead > tr > th:last-child,
5580
- .panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
5581
- .panel > .table-bordered > tbody > tr > th:last-child,
5582
- .panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
5583
- .panel > .table-bordered > tfoot > tr > th:last-child,
5584
- .panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
5585
- .panel > .table-bordered > thead > tr > td:last-child,
5586
- .panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
5587
- .panel > .table-bordered > tbody > tr > td:last-child,
5588
- .panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
5589
- .panel > .table-bordered > tfoot > tr > td:last-child,
5590
- .panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
5591
- border-right: 0;
5592
- }
5593
- .panel > .table-bordered > thead > tr:first-child > td,
5594
- .panel > .table-responsive > .table-bordered > thead > tr:first-child > td,
5595
- .panel > .table-bordered > tbody > tr:first-child > td,
5596
- .panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,
5597
- .panel > .table-bordered > thead > tr:first-child > th,
5598
- .panel > .table-responsive > .table-bordered > thead > tr:first-child > th,
5599
- .panel > .table-bordered > tbody > tr:first-child > th,
5600
- .panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {
5601
- border-bottom: 0;
5602
- }
5603
- .panel > .table-bordered > tbody > tr:last-child > td,
5604
- .panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,
5605
- .panel > .table-bordered > tfoot > tr:last-child > td,
5606
- .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,
5607
- .panel > .table-bordered > tbody > tr:last-child > th,
5608
- .panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
5609
- .panel > .table-bordered > tfoot > tr:last-child > th,
5610
- .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {
5611
- border-bottom: 0;
5612
- }
5613
- .panel > .table-responsive {
5614
- margin-bottom: 0;
5615
- border: 0;
5616
- }
5617
- .panel-group {
5618
- margin-bottom: 20px;
5619
- }
5620
- .panel-group .panel {
5621
- margin-bottom: 0;
5622
- border-radius: 4px;
5623
- }
5624
- .panel-group .panel + .panel {
5625
- margin-top: 5px;
5626
- }
5627
- .panel-group .panel-heading {
5628
- border-bottom: 0;
5629
- }
5630
- .panel-group .panel-heading + .panel-collapse > .panel-body,
5631
- .panel-group .panel-heading + .panel-collapse > .list-group {
5632
- border-top: 1px solid #ddd;
5633
- }
5634
- .panel-group .panel-footer {
5635
- border-top: 0;
5636
- }
5637
- .panel-group .panel-footer + .panel-collapse .panel-body {
5638
- border-bottom: 1px solid #ddd;
5639
- }
5640
- .panel-default {
5641
- border-color: #ddd;
5642
- }
5643
- .panel-default > .panel-heading {
5644
- color: #333;
5645
- background-color: #f5f5f5;
5646
- border-color: #ddd;
5647
- }
5648
- .panel-default > .panel-heading + .panel-collapse > .panel-body {
5649
- border-top-color: #ddd;
5650
- }
5651
- .panel-default > .panel-heading .badge {
5652
- color: #f5f5f5;
5653
- background-color: #333;
5654
- }
5655
- .panel-default > .panel-footer + .panel-collapse > .panel-body {
5656
- border-bottom-color: #ddd;
5657
- }
5658
- .panel-primary {
5659
- border-color: #337ab7;
5660
- }
5661
- .panel-primary > .panel-heading {
5662
- color: #fff;
5663
- background-color: #337ab7;
5664
- border-color: #337ab7;
5665
- }
5666
- .panel-primary > .panel-heading + .panel-collapse > .panel-body {
5667
- border-top-color: #337ab7;
5668
- }
5669
- .panel-primary > .panel-heading .badge {
5670
- color: #337ab7;
5671
- background-color: #fff;
5672
- }
5673
- .panel-primary > .panel-footer + .panel-collapse > .panel-body {
5674
- border-bottom-color: #337ab7;
5675
- }
5676
- .panel-success {
5677
- border-color: #d6e9c6;
5678
- }
5679
- .panel-success > .panel-heading {
5680
- color: #3c763d;
5681
- background-color: #dff0d8;
5682
- border-color: #d6e9c6;
5683
- }
5684
- .panel-success > .panel-heading + .panel-collapse > .panel-body {
5685
- border-top-color: #d6e9c6;
5686
- }
5687
- .panel-success > .panel-heading .badge {
5688
- color: #dff0d8;
5689
- background-color: #3c763d;
5690
- }
5691
- .panel-success > .panel-footer + .panel-collapse > .panel-body {
5692
- border-bottom-color: #d6e9c6;
5693
- }
5694
- .panel-info {
5695
- border-color: #bce8f1;
5696
- }
5697
- .panel-info > .panel-heading {
5698
- color: #31708f;
5699
- background-color: #d9edf7;
5700
- border-color: #bce8f1;
5701
- }
5702
- .panel-info > .panel-heading + .panel-collapse > .panel-body {
5703
- border-top-color: #bce8f1;
5704
- }
5705
- .panel-info > .panel-heading .badge {
5706
- color: #d9edf7;
5707
- background-color: #31708f;
5708
- }
5709
- .panel-info > .panel-footer + .panel-collapse > .panel-body {
5710
- border-bottom-color: #bce8f1;
5711
- }
5712
- .panel-warning {
5713
- border-color: #faebcc;
5714
- }
5715
- .panel-warning > .panel-heading {
5716
- color: #8a6d3b;
5717
- background-color: #fcf8e3;
5718
- border-color: #faebcc;
5719
- }
5720
- .panel-warning > .panel-heading + .panel-collapse > .panel-body {
5721
- border-top-color: #faebcc;
5722
- }
5723
- .panel-warning > .panel-heading .badge {
5724
- color: #fcf8e3;
5725
- background-color: #8a6d3b;
5726
- }
5727
- .panel-warning > .panel-footer + .panel-collapse > .panel-body {
5728
- border-bottom-color: #faebcc;
5729
- }
5730
- .panel-danger {
5731
- border-color: #ebccd1;
5732
- }
5733
- .panel-danger > .panel-heading {
5734
- color: #a94442;
5735
- background-color: #f2dede;
5736
- border-color: #ebccd1;
5737
- }
5738
- .panel-danger > .panel-heading + .panel-collapse > .panel-body {
5739
- border-top-color: #ebccd1;
5740
- }
5741
- .panel-danger > .panel-heading .badge {
5742
- color: #f2dede;
5743
- background-color: #a94442;
5744
- }
5745
- .panel-danger > .panel-footer + .panel-collapse > .panel-body {
5746
- border-bottom-color: #ebccd1;
5747
- }
5748
- .embed-responsive {
5749
- position: relative;
5750
- display: block;
5751
- height: 0;
5752
- padding: 0;
5753
- overflow: hidden;
5754
- }
5755
- .embed-responsive .embed-responsive-item,
5756
- .embed-responsive iframe,
5757
- .embed-responsive embed,
5758
- .embed-responsive object,
5759
- .embed-responsive video {
5760
- position: absolute;
5761
- top: 0;
5762
- bottom: 0;
5763
- left: 0;
5764
- width: 100%;
5765
- height: 100%;
5766
- border: 0;
5767
- }
5768
- .embed-responsive-16by9 {
5769
- padding-bottom: 56.25%;
5770
- }
5771
- .embed-responsive-4by3 {
5772
- padding-bottom: 75%;
5773
- }
5774
- .well {
5775
- min-height: 20px;
5776
- padding: 19px;
5777
- margin-bottom: 20px;
5778
- background-color: #f5f5f5;
5779
- border: 1px solid #e3e3e3;
5780
- border-radius: 4px;
5781
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05);
5782
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05);
5783
- }
5784
- .well blockquote {
5785
- border-color: #ddd;
5786
- border-color: rgba(0, 0, 0, .15);
5787
- }
5788
- .well-lg {
5789
- padding: 24px;
5790
- border-radius: 6px;
5791
- }
5792
- .well-sm {
5793
- padding: 9px;
5794
- border-radius: 3px;
5795
- }
5796
- .close {
5797
- float: right;
5798
- font-size: 21px;
5799
- font-weight: bold;
5800
- line-height: 1;
5801
- color: #000;
5802
- text-shadow: 0 1px 0 #fff;
5803
- filter: alpha(opacity=20);
5804
- opacity: .2;
5805
- }
5806
- .close:hover,
5807
- .close:focus {
5808
- color: #000;
5809
- text-decoration: none;
5810
- cursor: pointer;
5811
- filter: alpha(opacity=50);
5812
- opacity: .5;
5813
- }
5814
- button.close {
5815
- -webkit-appearance: none;
5816
- padding: 0;
5817
- cursor: pointer;
5818
- background: transparent;
5819
- border: 0;
5820
- }
5821
- .modal-open {
5822
- overflow: hidden;
5823
- }
5824
- .modal {
5825
- position: fixed;
5826
- top: 0;
5827
- right: 0;
5828
- bottom: 0;
5829
- left: 0;
5830
- z-index: 1050;
5831
- display: none;
5832
- overflow: hidden;
5833
- -webkit-overflow-scrolling: touch;
5834
- outline: 0;
5835
- }
5836
- .modal.fade .modal-dialog {
5837
- -webkit-transition: -webkit-transform .3s ease-out;
5838
- -o-transition: -o-transform .3s ease-out;
5839
- transition: transform .3s ease-out;
5840
- -webkit-transform: translate(0, -25%);
5841
- -ms-transform: translate(0, -25%);
5842
- -o-transform: translate(0, -25%);
5843
- transform: translate(0, -25%);
5844
- }
5845
- .modal.in .modal-dialog {
5846
- -webkit-transform: translate(0, 0);
5847
- -ms-transform: translate(0, 0);
5848
- -o-transform: translate(0, 0);
5849
- transform: translate(0, 0);
5850
- }
5851
- .modal-open .modal {
5852
- overflow-x: hidden;
5853
- overflow-y: auto;
5854
- }
5855
- .modal-dialog {
5856
- position: relative;
5857
- width: auto;
5858
- margin: 10px;
5859
- }
5860
- .modal-content {
5861
- position: relative;
5862
- background-color: #fff;
5863
- -webkit-background-clip: padding-box;
5864
- background-clip: padding-box;
5865
- border: 1px solid #999;
5866
- border: 1px solid rgba(0, 0, 0, .2);
5867
- border-radius: 6px;
5868
- outline: 0;
5869
- -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5);
5870
- box-shadow: 0 3px 9px rgba(0, 0, 0, .5);
5871
- }
5872
- .modal-backdrop {
5873
- position: fixed;
5874
- top: 0;
5875
- right: 0;
5876
- bottom: 0;
5877
- left: 0;
5878
- z-index: 1040;
5879
- background-color: #000;
5880
- }
5881
- .modal-backdrop.fade {
5882
- filter: alpha(opacity=0);
5883
- opacity: 0;
5884
- }
5885
- .modal-backdrop.in {
5886
- filter: alpha(opacity=50);
5887
- opacity: .5;
5888
- }
5889
- .modal-header {
5890
- padding: 15px;
5891
- border-bottom: 1px solid #e5e5e5;
5892
- }
5893
- .modal-header .close {
5894
- margin-top: -2px;
5895
- }
5896
- .modal-title {
5897
- margin: 0;
5898
- line-height: 1.42857143;
5899
- }
5900
- .modal-body {
5901
- position: relative;
5902
- padding: 15px;
5903
- }
5904
- .modal-footer {
5905
- padding: 15px;
5906
- text-align: right;
5907
- border-top: 1px solid #e5e5e5;
5908
- }
5909
- .modal-footer .btn + .btn {
5910
- margin-bottom: 0;
5911
- margin-left: 5px;
5912
- }
5913
- .modal-footer .btn-group .btn + .btn {
5914
- margin-left: -1px;
5915
- }
5916
- .modal-footer .btn-block + .btn-block {
5917
- margin-left: 0;
5918
- }
5919
- .modal-scrollbar-measure {
5920
- position: absolute;
5921
- top: -9999px;
5922
- width: 50px;
5923
- height: 50px;
5924
- overflow: scroll;
5925
- }
5926
- @media (min-width: 768px) {
5927
- .modal-dialog {
5928
- width: 600px;
5929
- margin: 30px auto;
5930
- }
5931
- .modal-content {
5932
- -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5);
5933
- box-shadow: 0 5px 15px rgba(0, 0, 0, .5);
5934
- }
5935
- .modal-sm {
5936
- width: 300px;
5937
- }
5938
- }
5939
- @media (min-width: 992px) {
5940
- .modal-lg {
5941
- width: 900px;
5942
- }
5943
- }
5944
- .tooltip {
5945
- position: absolute;
5946
- z-index: 1070;
5947
- display: block;
5948
- font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
5949
- font-size: 12px;
5950
- font-style: normal;
5951
- font-weight: normal;
5952
- line-height: 1.42857143;
5953
- text-align: left;
5954
- text-align: start;
5955
- text-decoration: none;
5956
- text-shadow: none;
5957
- text-transform: none;
5958
- letter-spacing: normal;
5959
- word-break: normal;
5960
- word-spacing: normal;
5961
- word-wrap: normal;
5962
- white-space: normal;
5963
- filter: alpha(opacity=0);
5964
- opacity: 0;
5965
-
5966
- line-break: auto;
5967
- }
5968
- .tooltip.in {
5969
- filter: alpha(opacity=90);
5970
- opacity: .9;
5971
- }
5972
- .tooltip.top {
5973
- padding: 5px 0;
5974
- margin-top: -3px;
5975
- }
5976
- .tooltip.right {
5977
- padding: 0 5px;
5978
- margin-left: 3px;
5979
- }
5980
- .tooltip.bottom {
5981
- padding: 5px 0;
5982
- margin-top: 3px;
5983
- }
5984
- .tooltip.left {
5985
- padding: 0 5px;
5986
- margin-left: -3px;
5987
- }
5988
- .tooltip-inner {
5989
- max-width: 200px;
5990
- padding: 3px 8px;
5991
- color: #fff;
5992
- text-align: center;
5993
- background-color: #000;
5994
- border-radius: 4px;
5995
- }
5996
- .tooltip-arrow {
5997
- position: absolute;
5998
- width: 0;
5999
- height: 0;
6000
- border-color: transparent;
6001
- border-style: solid;
6002
- }
6003
- .tooltip.top .tooltip-arrow {
6004
- bottom: 0;
6005
- left: 50%;
6006
- margin-left: -5px;
6007
- border-width: 5px 5px 0;
6008
- border-top-color: #000;
6009
- }
6010
- .tooltip.top-left .tooltip-arrow {
6011
- right: 5px;
6012
- bottom: 0;
6013
- margin-bottom: -5px;
6014
- border-width: 5px 5px 0;
6015
- border-top-color: #000;
6016
- }
6017
- .tooltip.top-right .tooltip-arrow {
6018
- bottom: 0;
6019
- left: 5px;
6020
- margin-bottom: -5px;
6021
- border-width: 5px 5px 0;
6022
- border-top-color: #000;
6023
- }
6024
- .tooltip.right .tooltip-arrow {
6025
- top: 50%;
6026
- left: 0;
6027
- margin-top: -5px;
6028
- border-width: 5px 5px 5px 0;
6029
- border-right-color: #000;
6030
- }
6031
- .tooltip.left .tooltip-arrow {
6032
- top: 50%;
6033
- right: 0;
6034
- margin-top: -5px;
6035
- border-width: 5px 0 5px 5px;
6036
- border-left-color: #000;
6037
- }
6038
- .tooltip.bottom .tooltip-arrow {
6039
- top: 0;
6040
- left: 50%;
6041
- margin-left: -5px;
6042
- border-width: 0 5px 5px;
6043
- border-bottom-color: #000;
6044
- }
6045
- .tooltip.bottom-left .tooltip-arrow {
6046
- top: 0;
6047
- right: 5px;
6048
- margin-top: -5px;
6049
- border-width: 0 5px 5px;
6050
- border-bottom-color: #000;
6051
- }
6052
- .tooltip.bottom-right .tooltip-arrow {
6053
- top: 0;
6054
- left: 5px;
6055
- margin-top: -5px;
6056
- border-width: 0 5px 5px;
6057
- border-bottom-color: #000;
6058
- }
6059
- .popover {
6060
- position: absolute;
6061
- top: 0;
6062
- left: 0;
6063
- z-index: 1060;
6064
- display: none;
6065
- max-width: 276px;
6066
- padding: 1px;
6067
- font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
6068
- font-size: 14px;
6069
- font-style: normal;
6070
- font-weight: normal;
6071
- line-height: 1.42857143;
6072
- text-align: left;
6073
- text-align: start;
6074
- text-decoration: none;
6075
- text-shadow: none;
6076
- text-transform: none;
6077
- letter-spacing: normal;
6078
- word-break: normal;
6079
- word-spacing: normal;
6080
- word-wrap: normal;
6081
- white-space: normal;
6082
- background-color: #fff;
6083
- -webkit-background-clip: padding-box;
6084
- background-clip: padding-box;
6085
- border: 1px solid #ccc;
6086
- border: 1px solid rgba(0, 0, 0, .2);
6087
- border-radius: 6px;
6088
- -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2);
6089
- box-shadow: 0 5px 10px rgba(0, 0, 0, .2);
6090
-
6091
- line-break: auto;
6092
- }
6093
- .popover.top {
6094
- margin-top: -10px;
6095
- }
6096
- .popover.right {
6097
- margin-left: 10px;
6098
- }
6099
- .popover.bottom {
6100
- margin-top: 10px;
6101
- }
6102
- .popover.left {
6103
- margin-left: -10px;
6104
- }
6105
- .popover-title {
6106
- padding: 8px 14px;
6107
- margin: 0;
6108
- font-size: 14px;
6109
- background-color: #f7f7f7;
6110
- border-bottom: 1px solid #ebebeb;
6111
- border-radius: 5px 5px 0 0;
6112
- }
6113
- .popover-content {
6114
- padding: 9px 14px;
6115
- }
6116
- .popover > .arrow,
6117
- .popover > .arrow:after {
6118
- position: absolute;
6119
- display: block;
6120
- width: 0;
6121
- height: 0;
6122
- border-color: transparent;
6123
- border-style: solid;
6124
- }
6125
- .popover > .arrow {
6126
- border-width: 11px;
6127
- }
6128
- .popover > .arrow:after {
6129
- content: "";
6130
- border-width: 10px;
6131
- }
6132
- .popover.top > .arrow {
6133
- bottom: -11px;
6134
- left: 50%;
6135
- margin-left: -11px;
6136
- border-top-color: #999;
6137
- border-top-color: rgba(0, 0, 0, .25);
6138
- border-bottom-width: 0;
6139
- }
6140
- .popover.top > .arrow:after {
6141
- bottom: 1px;
6142
- margin-left: -10px;
6143
- content: " ";
6144
- border-top-color: #fff;
6145
- border-bottom-width: 0;
6146
- }
6147
- .popover.right > .arrow {
6148
- top: 50%;
6149
- left: -11px;
6150
- margin-top: -11px;
6151
- border-right-color: #999;
6152
- border-right-color: rgba(0, 0, 0, .25);
6153
- border-left-width: 0;
6154
- }
6155
- .popover.right > .arrow:after {
6156
- bottom: -10px;
6157
- left: 1px;
6158
- content: " ";
6159
- border-right-color: #fff;
6160
- border-left-width: 0;
6161
- }
6162
- .popover.bottom > .arrow {
6163
- top: -11px;
6164
- left: 50%;
6165
- margin-left: -11px;
6166
- border-top-width: 0;
6167
- border-bottom-color: #999;
6168
- border-bottom-color: rgba(0, 0, 0, .25);
6169
- }
6170
- .popover.bottom > .arrow:after {
6171
- top: 1px;
6172
- margin-left: -10px;
6173
- content: " ";
6174
- border-top-width: 0;
6175
- border-bottom-color: #fff;
6176
- }
6177
- .popover.left > .arrow {
6178
- top: 50%;
6179
- right: -11px;
6180
- margin-top: -11px;
6181
- border-right-width: 0;
6182
- border-left-color: #999;
6183
- border-left-color: rgba(0, 0, 0, .25);
6184
- }
6185
- .popover.left > .arrow:after {
6186
- right: 1px;
6187
- bottom: -10px;
6188
- content: " ";
6189
- border-right-width: 0;
6190
- border-left-color: #fff;
6191
- }
6192
- .carousel {
6193
- position: relative;
6194
- }
6195
- .carousel-inner {
6196
- position: relative;
6197
- width: 100%;
6198
- overflow: hidden;
6199
- }
6200
- .carousel-inner > .item {
6201
- position: relative;
6202
- display: none;
6203
- -webkit-transition: .6s ease-in-out left;
6204
- -o-transition: .6s ease-in-out left;
6205
- transition: .6s ease-in-out left;
6206
- }
6207
- .carousel-inner > .item > img,
6208
- .carousel-inner > .item > a > img {
6209
- line-height: 1;
6210
- }
6211
- @media all and (transform-3d), (-webkit-transform-3d) {
6212
- .carousel-inner > .item {
6213
- -webkit-transition: -webkit-transform .6s ease-in-out;
6214
- -o-transition: -o-transform .6s ease-in-out;
6215
- transition: transform .6s ease-in-out;
6216
-
6217
- -webkit-backface-visibility: hidden;
6218
- backface-visibility: hidden;
6219
- -webkit-perspective: 1000px;
6220
- perspective: 1000px;
6221
- }
6222
- .carousel-inner > .item.next,
6223
- .carousel-inner > .item.active.right {
6224
- left: 0;
6225
- -webkit-transform: translate3d(100%, 0, 0);
6226
- transform: translate3d(100%, 0, 0);
6227
- }
6228
- .carousel-inner > .item.prev,
6229
- .carousel-inner > .item.active.left {
6230
- left: 0;
6231
- -webkit-transform: translate3d(-100%, 0, 0);
6232
- transform: translate3d(-100%, 0, 0);
6233
- }
6234
- .carousel-inner > .item.next.left,
6235
- .carousel-inner > .item.prev.right,
6236
- .carousel-inner > .item.active {
6237
- left: 0;
6238
- -webkit-transform: translate3d(0, 0, 0);
6239
- transform: translate3d(0, 0, 0);
6240
- }
6241
- }
6242
- .carousel-inner > .active,
6243
- .carousel-inner > .next,
6244
- .carousel-inner > .prev {
6245
- display: block;
6246
- }
6247
- .carousel-inner > .active {
6248
- left: 0;
6249
- }
6250
- .carousel-inner > .next,
6251
- .carousel-inner > .prev {
6252
- position: absolute;
6253
- top: 0;
6254
- width: 100%;
6255
- }
6256
- .carousel-inner > .next {
6257
- left: 100%;
6258
- }
6259
- .carousel-inner > .prev {
6260
- left: -100%;
6261
- }
6262
- .carousel-inner > .next.left,
6263
- .carousel-inner > .prev.right {
6264
- left: 0;
6265
- }
6266
- .carousel-inner > .active.left {
6267
- left: -100%;
6268
- }
6269
- .carousel-inner > .active.right {
6270
- left: 100%;
6271
- }
6272
- .carousel-control {
6273
- position: absolute;
6274
- top: 0;
6275
- bottom: 0;
6276
- left: 0;
6277
- width: 15%;
6278
- font-size: 20px;
6279
- color: #fff;
6280
- text-align: center;
6281
- text-shadow: 0 1px 2px rgba(0, 0, 0, .6);
6282
- background-color: rgba(0, 0, 0, 0);
6283
- filter: alpha(opacity=50);
6284
- opacity: .5;
6285
- }
6286
- .carousel-control.left {
6287
- background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%);
6288
- background-image: -o-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%);
6289
- background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .5)), to(rgba(0, 0, 0, .0001)));
6290
- background-image: linear-gradient(to right, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%);
6291
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
6292
- background-repeat: repeat-x;
6293
- }
6294
- .carousel-control.right {
6295
- right: 0;
6296
- left: auto;
6297
- background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%);
6298
- background-image: -o-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%);
6299
- background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .0001)), to(rgba(0, 0, 0, .5)));
6300
- background-image: linear-gradient(to right, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%);
6301
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
6302
- background-repeat: repeat-x;
6303
- }
6304
- .carousel-control:hover,
6305
- .carousel-control:focus {
6306
- color: #fff;
6307
- text-decoration: none;
6308
- filter: alpha(opacity=90);
6309
- outline: 0;
6310
- opacity: .9;
6311
- }
6312
- .carousel-control .icon-prev,
6313
- .carousel-control .icon-next,
6314
- .carousel-control .glyphicon-chevron-left,
6315
- .carousel-control .glyphicon-chevron-right {
6316
- position: absolute;
6317
- top: 50%;
6318
- z-index: 5;
6319
- display: inline-block;
6320
- margin-top: -10px;
6321
- }
6322
- .carousel-control .icon-prev,
6323
- .carousel-control .glyphicon-chevron-left {
6324
- left: 50%;
6325
- margin-left: -10px;
6326
- }
6327
- .carousel-control .icon-next,
6328
- .carousel-control .glyphicon-chevron-right {
6329
- right: 50%;
6330
- margin-right: -10px;
6331
- }
6332
- .carousel-control .icon-prev,
6333
- .carousel-control .icon-next {
6334
- width: 20px;
6335
- height: 20px;
6336
- font-family: serif;
6337
- line-height: 1;
6338
- }
6339
- .carousel-control .icon-prev:before {
6340
- content: '\2039';
6341
- }
6342
- .carousel-control .icon-next:before {
6343
- content: '\203a';
6344
- }
6345
- .carousel-indicators {
6346
- position: absolute;
6347
- bottom: 10px;
6348
- left: 50%;
6349
- z-index: 15;
6350
- width: 60%;
6351
- padding-left: 0;
6352
- margin-left: -30%;
6353
- text-align: center;
6354
- list-style: none;
6355
- }
6356
- .carousel-indicators li {
6357
- display: inline-block;
6358
- width: 10px;
6359
- height: 10px;
6360
- margin: 1px;
6361
- text-indent: -999px;
6362
- cursor: pointer;
6363
- background-color: #000 \9;
6364
- background-color: rgba(0, 0, 0, 0);
6365
- border: 1px solid #fff;
6366
- border-radius: 10px;
6367
- }
6368
- .carousel-indicators .active {
6369
- width: 12px;
6370
- height: 12px;
6371
- margin: 0;
6372
- background-color: #fff;
6373
- }
6374
- .carousel-caption {
6375
- position: absolute;
6376
- right: 15%;
6377
- bottom: 20px;
6378
- left: 15%;
6379
- z-index: 10;
6380
- padding-top: 20px;
6381
- padding-bottom: 20px;
6382
- color: #fff;
6383
- text-align: center;
6384
- text-shadow: 0 1px 2px rgba(0, 0, 0, .6);
6385
- }
6386
- .carousel-caption .btn {
6387
- text-shadow: none;
6388
- }
6389
- @media screen and (min-width: 768px) {
6390
- .carousel-control .glyphicon-chevron-left,
6391
- .carousel-control .glyphicon-chevron-right,
6392
- .carousel-control .icon-prev,
6393
- .carousel-control .icon-next {
6394
- width: 30px;
6395
- height: 30px;
6396
- margin-top: -10px;
6397
- font-size: 30px;
6398
- }
6399
- .carousel-control .glyphicon-chevron-left,
6400
- .carousel-control .icon-prev {
6401
- margin-left: -10px;
6402
- }
6403
- .carousel-control .glyphicon-chevron-right,
6404
- .carousel-control .icon-next {
6405
- margin-right: -10px;
6406
- }
6407
- .carousel-caption {
6408
- right: 20%;
6409
- left: 20%;
6410
- padding-bottom: 30px;
6411
- }
6412
- .carousel-indicators {
6413
- bottom: 20px;
6414
- }
6415
- }
6416
- .clearfix:before,
6417
- .clearfix:after,
6418
- .dl-horizontal dd:before,
6419
- .dl-horizontal dd:after,
6420
- .container:before,
6421
- .container:after,
6422
- .container-fluid:before,
6423
- .container-fluid:after,
6424
- .row:before,
6425
- .row:after,
6426
- .form-horizontal .form-group:before,
6427
- .form-horizontal .form-group:after,
6428
- .btn-toolbar:before,
6429
- .btn-toolbar:after,
6430
- .btn-group-vertical > .btn-group:before,
6431
- .btn-group-vertical > .btn-group:after,
6432
- .nav:before,
6433
- .nav:after,
6434
- .navbar:before,
6435
- .navbar:after,
6436
- .navbar-header:before,
6437
- .navbar-header:after,
6438
- .navbar-collapse:before,
6439
- .navbar-collapse:after,
6440
- .pager:before,
6441
- .pager:after,
6442
- .panel-body:before,
6443
- .panel-body:after,
6444
- .modal-header:before,
6445
- .modal-header:after,
6446
- .modal-footer:before,
6447
- .modal-footer:after {
6448
- display: table;
6449
- content: " ";
6450
- }
6451
- .clearfix:after,
6452
- .dl-horizontal dd:after,
6453
- .container:after,
6454
- .container-fluid:after,
6455
- .row:after,
6456
- .form-horizontal .form-group:after,
6457
- .btn-toolbar:after,
6458
- .btn-group-vertical > .btn-group:after,
6459
- .nav:after,
6460
- .navbar:after,
6461
- .navbar-header:after,
6462
- .navbar-collapse:after,
6463
- .pager:after,
6464
- .panel-body:after,
6465
- .modal-header:after,
6466
- .modal-footer:after {
6467
- clear: both;
6468
- }
6469
- .center-block {
6470
- display: block;
6471
- margin-right: auto;
6472
- margin-left: auto;
6473
- }
6474
- .pull-right {
6475
- float: right !important;
6476
- }
6477
- .pull-left {
6478
- float: left !important;
6479
- }
6480
- .hide {
6481
- display: none !important;
6482
- }
6483
- .show {
6484
- display: block !important;
6485
- }
6486
- .invisible {
6487
- visibility: hidden;
6488
- }
6489
- .text-hide {
6490
- font: 0/0 a;
6491
- color: transparent;
6492
- text-shadow: none;
6493
- background-color: transparent;
6494
- border: 0;
6495
- }
6496
- .hidden {
6497
- display: none !important;
6498
- }
6499
- .affix {
6500
- position: fixed;
6501
- }
6502
- @-ms-viewport {
6503
- width: device-width;
6504
- }
6505
- .visible-xs,
6506
- .visible-sm,
6507
- .visible-md,
6508
- .visible-lg {
6509
- display: none !important;
6510
- }
6511
- .visible-xs-block,
6512
- .visible-xs-inline,
6513
- .visible-xs-inline-block,
6514
- .visible-sm-block,
6515
- .visible-sm-inline,
6516
- .visible-sm-inline-block,
6517
- .visible-md-block,
6518
- .visible-md-inline,
6519
- .visible-md-inline-block,
6520
- .visible-lg-block,
6521
- .visible-lg-inline,
6522
- .visible-lg-inline-block {
6523
- display: none !important;
6524
- }
6525
- @media (max-width: 767px) {
6526
- .visible-xs {
6527
- display: block !important;
6528
- }
6529
- table.visible-xs {
6530
- display: table !important;
6531
- }
6532
- tr.visible-xs {
6533
- display: table-row !important;
6534
- }
6535
- th.visible-xs,
6536
- td.visible-xs {
6537
- display: table-cell !important;
6538
- }
6539
- }
6540
- @media (max-width: 767px) {
6541
- .visible-xs-block {
6542
- display: block !important;
6543
- }
6544
- }
6545
- @media (max-width: 767px) {
6546
- .visible-xs-inline {
6547
- display: inline !important;
6548
- }
6549
- }
6550
- @media (max-width: 767px) {
6551
- .visible-xs-inline-block {
6552
- display: inline-block !important;
6553
- }
6554
- }
6555
- @media (min-width: 768px) and (max-width: 991px) {
6556
- .visible-sm {
6557
- display: block !important;
6558
- }
6559
- table.visible-sm {
6560
- display: table !important;
6561
- }
6562
- tr.visible-sm {
6563
- display: table-row !important;
6564
- }
6565
- th.visible-sm,
6566
- td.visible-sm {
6567
- display: table-cell !important;
6568
- }
6569
- }
6570
- @media (min-width: 768px) and (max-width: 991px) {
6571
- .visible-sm-block {
6572
- display: block !important;
6573
- }
6574
- }
6575
- @media (min-width: 768px) and (max-width: 991px) {
6576
- .visible-sm-inline {
6577
- display: inline !important;
6578
- }
6579
- }
6580
- @media (min-width: 768px) and (max-width: 991px) {
6581
- .visible-sm-inline-block {
6582
- display: inline-block !important;
6583
- }
6584
- }
6585
- @media (min-width: 992px) and (max-width: 1199px) {
6586
- .visible-md {
6587
- display: block !important;
6588
- }
6589
- table.visible-md {
6590
- display: table !important;
6591
- }
6592
- tr.visible-md {
6593
- display: table-row !important;
6594
- }
6595
- th.visible-md,
6596
- td.visible-md {
6597
- display: table-cell !important;
6598
- }
6599
- }
6600
- @media (min-width: 992px) and (max-width: 1199px) {
6601
- .visible-md-block {
6602
- display: block !important;
6603
- }
6604
- }
6605
- @media (min-width: 992px) and (max-width: 1199px) {
6606
- .visible-md-inline {
6607
- display: inline !important;
6608
- }
6609
- }
6610
- @media (min-width: 992px) and (max-width: 1199px) {
6611
- .visible-md-inline-block {
6612
- display: inline-block !important;
6613
- }
6614
- }
6615
- @media (min-width: 1200px) {
6616
- .visible-lg {
6617
- display: block !important;
6618
- }
6619
- table.visible-lg {
6620
- display: table !important;
6621
- }
6622
- tr.visible-lg {
6623
- display: table-row !important;
6624
- }
6625
- th.visible-lg,
6626
- td.visible-lg {
6627
- display: table-cell !important;
6628
- }
6629
- }
6630
- @media (min-width: 1200px) {
6631
- .visible-lg-block {
6632
- display: block !important;
6633
- }
6634
- }
6635
- @media (min-width: 1200px) {
6636
- .visible-lg-inline {
6637
- display: inline !important;
6638
- }
6639
- }
6640
- @media (min-width: 1200px) {
6641
- .visible-lg-inline-block {
6642
- display: inline-block !important;
6643
- }
6644
- }
6645
- @media (max-width: 767px) {
6646
- .hidden-xs {
6647
- display: none !important;
6648
- }
6649
- }
6650
- @media (min-width: 768px) and (max-width: 991px) {
6651
- .hidden-sm {
6652
- display: none !important;
6653
- }
6654
- }
6655
- @media (min-width: 992px) and (max-width: 1199px) {
6656
- .hidden-md {
6657
- display: none !important;
6658
- }
6659
- }
6660
- @media (min-width: 1200px) {
6661
- .hidden-lg {
6662
- display: none !important;
6663
- }
6664
- }
6665
- .visible-print {
6666
- display: none !important;
6667
- }
6668
- @media print {
6669
- .visible-print {
6670
- display: block !important;
6671
- }
6672
- table.visible-print {
6673
- display: table !important;
6674
- }
6675
- tr.visible-print {
6676
- display: table-row !important;
6677
- }
6678
- th.visible-print,
6679
- td.visible-print {
6680
- display: table-cell !important;
6681
- }
6682
- }
6683
- .visible-print-block {
6684
- display: none !important;
6685
- }
6686
- @media print {
6687
- .visible-print-block {
6688
- display: block !important;
6689
- }
6690
- }
6691
- .visible-print-inline {
6692
- display: none !important;
6693
- }
6694
- @media print {
6695
- .visible-print-inline {
6696
- display: inline !important;
6697
- }
6698
- }
6699
- .visible-print-inline-block {
6700
- display: none !important;
6701
- }
6702
- @media print {
6703
- .visible-print-inline-block {
6704
- display: inline-block !important;
6705
- }
6706
- }
6707
- @media print {
6708
- .hidden-print {
6709
- display: none !important;
6710
- }
6711
- }
6712
  /*# sourceMappingURL=bootstrap.css.map */
1
+ /*!
2
+ * Bootstrap v3.3.6 (http://getbootstrap.com)
3
+ * Copyright 2011-2015 Twitter, Inc.
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
+ */
6
+ /*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
7
+
8
+ body {
9
+ margin: 0;
10
+ }
11
+ article,
12
+ aside,
13
+ details,
14
+ figcaption,
15
+ figure,
16
+ footer,
17
+ header,
18
+ hgroup,
19
+ main,
20
+ menu,
21
+ nav,
22
+ section,
23
+ summary {
24
+ display: block;
25
+ }
26
+ audio,
27
+ canvas,
28
+ progress,
29
+ video {
30
+ display: inline-block;
31
+ vertical-align: baseline;
32
+ }
33
+ audio:not([controls]) {
34
+ display: none;
35
+ height: 0;
36
+ }
37
+ [hidden],
38
+ template {
39
+ display: none;
40
+ }
41
+ a {
42
+ background-color: transparent;
43
+ }
44
+ a:active,
45
+ a:hover {
46
+ outline: 0;
47
+ }
48
+ abbr[title] {
49
+ border-bottom: 1px dotted;
50
+ }
51
+ b,
52
+ strong {
53
+ font-weight: bold;
54
+ }
55
+ dfn {
56
+ font-style: italic;
57
+ }
58
+ h1 {
59
+ margin: .67em 0;
60
+ font-size: 2em;
61
+ }
62
+ mark {
63
+ color: #000;
64
+ background: #ff0;
65
+ }
66
+ small {
67
+ font-size: 80%;
68
+ }
69
+ sub,
70
+ sup {
71
+ position: relative;
72
+ font-size: 75%;
73
+ line-height: 0;
74
+ vertical-align: baseline;
75
+ }
76
+ sup {
77
+ top: -.5em;
78
+ }
79
+ sub {
80
+ bottom: -.25em;
81
+ }
82
+ img {
83
+ border: 0;
84
+ }
85
+ /* svg:not(:root) {
86
+ overflow: hidden;
87
+ } */
88
+ figure {
89
+ margin: 1em 40px;
90
+ }
91
+ hr {
92
+ height: 0;
93
+ -webkit-box-sizing: content-box;
94
+ -moz-box-sizing: content-box;
95
+ box-sizing: content-box;
96
+ }
97
+ pre {
98
+ overflow: auto;
99
+ }
100
+ code,
101
+ kbd,
102
+ pre,
103
+ samp {
104
+ font-family: monospace, monospace;
105
+ font-size: 1em;
106
+ }
107
+ button,
108
+ input,
109
+ optgroup,
110
+ select,
111
+ textarea {
112
+ margin: 0;
113
+ font: inherit;
114
+ color: inherit;
115
+ }
116
+ button {
117
+ overflow: visible;
118
+ }
119
+ button,
120
+ select {
121
+ text-transform: none;
122
+ }
123
+ button,
124
+ html input[type="button"],
125
+ input[type="reset"],
126
+ input[type="submit"] {
127
+ -webkit-appearance: button;
128
+ cursor: pointer;
129
+ }
130
+ button[disabled],
131
+ html input[disabled] {
132
+ cursor: default;
133
+ }
134
+ button::-moz-focus-inner,
135
+ input::-moz-focus-inner {
136
+ padding: 0;
137
+ border: 0;
138
+ }
139
+ input {
140
+ line-height: normal;
141
+ }
142
+ input[type="checkbox"],
143
+ input[type="radio"] {
144
+ -webkit-box-sizing: border-box;
145
+ -moz-box-sizing: border-box;
146
+ box-sizing: border-box;
147
+ padding: 0;
148
+ }
149
+ input[type="number"]::-webkit-inner-spin-button,
150
+ input[type="number"]::-webkit-outer-spin-button {
151
+ height: auto;
152
+ }
153
+ input[type="search"] {
154
+ -webkit-box-sizing: content-box;
155
+ -moz-box-sizing: content-box;
156
+ box-sizing: content-box;
157
+ -webkit-appearance: textfield;
158
+ }
159
+ input[type="search"]::-webkit-search-cancel-button,
160
+ input[type="search"]::-webkit-search-decoration {
161
+ -webkit-appearance: none;
162
+ }
163
+ fieldset {
164
+ padding: .35em .625em .75em;
165
+ margin: 0 2px;
166
+ border: 1px solid #c0c0c0;
167
+ }
168
+ legend {
169
+ padding: 0;
170
+ border: 0;
171
+ }
172
+ textarea {
173
+ overflow: auto;
174
+ }
175
+ optgroup {
176
+ font-weight: bold;
177
+ }
178
+ table {
179
+ border-spacing: 0;
180
+ border-collapse: collapse;
181
+ }
182
+
183
+ /*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
184
+ @media print {
185
+ *,
186
+ *:before,
187
+ *:after {
188
+ color: #000 !important;
189
+ text-shadow: none !important;
190
+ background: transparent !important;
191
+ -webkit-box-shadow: none !important;
192
+ box-shadow: none !important;
193
+ }
194
+ a,
195
+ a:visited {
196
+ text-decoration: underline;
197
+ }
198
+ a[href]:after {
199
+ content: " (" attr(href) ")";
200
+ }
201
+ abbr[title]:after {
202
+ content: " (" attr(title) ")";
203
+ }
204
+ a[href^="#"]:after,
205
+ a[href^="javascript:"]:after {
206
+ content: "";
207
+ }
208
+ pre,
209
+ blockquote {
210
+ border: 1px solid #999;
211
+
212
+ page-break-inside: avoid;
213
+ }
214
+ thead {
215
+ display: table-header-group;
216
+ }
217
+ tr,
218
+ img {
219
+ page-break-inside: avoid;
220
+ }
221
+ img {
222
+ max-width: 100% !important;
223
+ }
224
+ p,
225
+ h2,
226
+ h3 {
227
+ orphans: 3;
228
+ widows: 3;
229
+ }
230
+ h2,
231
+ h3 {
232
+ page-break-after: avoid;
233
+ }
234
+ .navbar {
235
+ display: none;
236
+ }
237
+ .btn > .caret,
238
+ .dropup > .btn > .caret {
239
+ border-top-color: #000 !important;
240
+ }
241
+ .label {
242
+ border: 1px solid #000;
243
+ }
244
+ .table {
245
+ border-collapse: collapse !important;
246
+ }
247
+ .table td,
248
+ .table th {
249
+ background-color: #fff !important;
250
+ }
251
+ .table-bordered th,
252
+ .table-bordered td {
253
+ border: 1px solid #ddd !important;
254
+ }
255
+ }
256
+
257
+ .glyphicon {
258
+ position: relative;
259
+ top: 1px;
260
+ display: inline-block;
261
+ font-style: normal;
262
+ font-weight: normal;
263
+ line-height: 1;
264
+
265
+ -webkit-font-smoothing: antialiased;
266
+ -moz-osx-font-smoothing: grayscale;
267
+ }
268
+ .glyphicon-asterisk:before {
269
+ content: "\002a";
270
+ }
271
+ .glyphicon-plus:before {
272
+ content: "\002b";
273
+ }
274
+ .glyphicon-euro:before,
275
+ .glyphicon-eur:before {
276
+ content: "\20ac";
277
+ }
278
+ .glyphicon-minus:before {
279
+ content: "\2212";
280
+ }
281
+ .glyphicon-cloud:before {
282
+ content: "\2601";
283
+ }
284
+ .glyphicon-envelope:before {
285
+ content: "\2709";
286
+ }
287
+ .glyphicon-pencil:before {
288
+ content: "\270f";
289
+ }
290
+ .glyphicon-glass:before {
291
+ content: "\e001";
292
+ }
293
+ .glyphicon-music:before {
294
+ content: "\e002";
295
+ }
296
+ .glyphicon-search:before {
297
+ content: "\e003";
298
+ }
299
+ .glyphicon-heart:before {
300
+ content: "\e005";
301
+ }
302
+ .glyphicon-star:before {
303
+ content: "\e006";
304
+ }
305
+ .glyphicon-star-empty:before {
306
+ content: "\e007";
307
+ }
308
+ .glyphicon-user:before {
309
+ content: "\e008";
310
+ }
311
+ .glyphicon-film:before {
312
+ content: "\e009";
313
+ }
314
+ .glyphicon-th-large:before {
315
+ content: "\e010";
316
+ }
317
+ .glyphicon-th:before {
318
+ content: "\e011";
319
+ }
320
+ .glyphicon-th-list:before {
321
+ content: "\e012";
322
+ }
323
+ .glyphicon-ok:before {
324
+ content: "\e013";
325
+ }
326
+ .glyphicon-remove:before {
327
+ content: "\e014";
328
+ }
329
+ .glyphicon-zoom-in:before {
330
+ content: "\e015";
331
+ }
332
+ .glyphicon-zoom-out:before {
333
+ content: "\e016";
334
+ }
335
+ .glyphicon-off:before {
336
+ content: "\e017";
337
+ }
338
+ .glyphicon-signal:before {
339
+ content: "\e018";
340
+ }
341
+ .glyphicon-cog:before {
342
+ content: "\e019";
343
+ }
344
+ .glyphicon-trash:before {
345
+ content: "\e020";
346
+ }
347
+ .glyphicon-home:before {
348
+ content: "\e021";
349
+ }
350
+ .glyphicon-file:before {
351
+ content: "\e022";
352
+ }
353
+ .glyphicon-time:before {
354
+ content: "\e023";
355
+ }
356
+ .glyphicon-road:before {
357
+ content: "\e024";
358
+ }
359
+ .glyphicon-download-alt:before {
360
+ content: "\e025";
361
+ }
362
+ .glyphicon-download:before {
363
+ content: "\e026";
364
+ }
365
+ .glyphicon-upload:before {
366
+ content: "\e027";
367
+ }
368
+ .glyphicon-inbox:before {
369
+ content: "\e028";
370
+ }
371
+ .glyphicon-play-circle:before {
372
+ content: "\e029";
373
+ }
374
+ .glyphicon-repeat:before {
375
+ content: "\e030";
376
+ }
377
+ .glyphicon-refresh:before {
378
+ content: "\e031";
379
+ }
380
+ .glyphicon-list-alt:before {
381
+ content: "\e032";
382
+ }
383
+ .glyphicon-lock:before {
384
+ content: "\e033";
385
+ }
386
+ .glyphicon-flag:before {
387
+ content: "\e034";
388
+ }
389
+ .glyphicon-headphones:before {
390
+ content: "\e035";
391
+ }
392
+ .glyphicon-volume-off:before {
393
+ content: "\e036";
394
+ }
395
+ .glyphicon-volume-down:before {
396
+ content: "\e037";
397
+ }
398
+ .glyphicon-volume-up:before {
399
+ content: "\e038";
400
+ }
401
+ .glyphicon-qrcode:before {
402
+ content: "\e039";
403
+ }
404
+ .glyphicon-barcode:before {
405
+ content: "\e040";
406
+ }
407
+ .glyphicon-tag:before {
408
+ content: "\e041";
409
+ }
410
+ .glyphicon-tags:before {
411
+ content: "\e042";
412
+ }
413
+ .glyphicon-book:before {
414
+ content: "\e043";
415
+ }
416
+ .glyphicon-bookmark:before {
417
+ content: "\e044";
418
+ }
419
+ .glyphicon-print:before {
420
+ content: "\e045";
421
+ }
422
+ .glyphicon-camera:before {
423
+ content: "\e046";
424
+ }
425
+ .glyphicon-font:before {
426
+ content: "\e047";
427
+ }
428
+ .glyphicon-bold:before {
429
+ content: "\e048";
430
+ }
431
+ .glyphicon-italic:before {
432
+ content: "\e049";
433
+ }
434
+ .glyphicon-text-height:before {
435
+ content: "\e050";
436
+ }
437
+ .glyphicon-text-width:before {
438
+ content: "\e051";
439
+ }
440
+ .glyphicon-align-left:before {
441
+ content: "\e052";
442
+ }
443
+ .glyphicon-align-center:before {
444
+ content: "\e053";
445
+ }
446
+ .glyphicon-align-right:before {
447
+ content: "\e054";
448
+ }
449
+ .glyphicon-align-justify:before {
450
+ content: "\e055";
451
+ }
452
+ .glyphicon-list:before {
453
+ content: "\e056";
454
+ }
455
+ .glyphicon-indent-left:before {
456
+ content: "\e057";
457
+ }
458
+ .glyphicon-indent-right:before {
459
+ content: "\e058";
460
+ }
461
+ .glyphicon-facetime-video:before {
462
+ content: "\e059";
463
+ }
464
+ .glyphicon-picture:before {
465
+ content: "\e060";
466
+ }
467
+ .glyphicon-map-marker:before {
468
+ content: "\e062";
469
+ }
470
+ .glyphicon-adjust:before {
471
+ content: "\e063";
472
+ }
473
+ .glyphicon-tint:before {
474
+ content: "\e064";
475
+ }
476
+ .glyphicon-edit:before {
477
+ content: "\e065";
478
+ }
479
+ .glyphicon-share:before {
480
+ content: "\e066";
481
+ }
482
+ .glyphicon-check:before {
483
+ content: "\e067";
484
+ }
485
+ .glyphicon-move:before {
486
+ content: "\e068";
487
+ }
488
+ .glyphicon-step-backward:before {
489
+ content: "\e069";
490
+ }
491
+ .glyphicon-fast-backward:before {
492
+ content: "\e070";
493
+ }
494
+ .glyphicon-backward:before {
495
+ content: "\e071";
496
+ }
497
+ .glyphicon-play:before {
498
+ content: "\e072";
499
+ }
500
+ .glyphicon-pause:before {
501
+ content: "\e073";
502
+ }
503
+ .glyphicon-stop:before {
504
+ content: "\e074";
505
+ }
506
+ .glyphicon-forward:before {
507
+ content: "\e075";
508
+ }
509
+ .glyphicon-fast-forward:before {
510
+ content: "\e076";
511
+ }
512
+ .glyphicon-step-forward:before {
513
+ content: "\e077";
514
+ }
515
+ .glyphicon-eject:before {
516
+ content: "\e078";
517
+ }
518
+ .glyphicon-chevron-left:before {
519
+ //content: "\e079";
520
+ }
521
+ .glyphicon-chevron-right:before {
522
+ //content: "\e080";
523
+ }
524
+ .glyphicon-plus-sign:before {
525
+ content: "\e081";
526
+ }
527
+ .glyphicon-minus-sign:before {
528
+ content: "\e082";
529
+ }
530
+ .glyphicon-remove-sign:before {
531
+ content: "\e083";
532
+ }
533
+ .glyphicon-ok-sign:before {
534
+ content: "\e084";
535
+ }
536
+ .glyphicon-question-sign:before {
537
+ content: "\e085";
538
+ }
539
+ .glyphicon-info-sign:before {
540
+ content: "\e086";
541
+ }
542
+ .glyphicon-screenshot:before {
543
+ content: "\e087";
544
+ }
545
+ .glyphicon-remove-circle:before {
546
+ content: "\e088";
547
+ }
548
+ .glyphicon-ok-circle:before {
549
+ content: "\e089";
550
+ }
551
+ .glyphicon-ban-circle:before {
552
+ content: "\e090";
553
+ }
554
+ .glyphicon-arrow-left:before {
555
+ content: "\e091";
556
+ }
557
+ .glyphicon-arrow-right:before {
558
+ content: "\e092";
559
+ }
560
+ .glyphicon-arrow-up:before {
561
+ content: "\e093";
562
+ }
563
+ .glyphicon-arrow-down:before {
564
+ content: "\e094";
565
+ }
566
+ .glyphicon-share-alt:before {
567
+ content: "\e095";
568
+ }
569
+ .glyphicon-resize-full:before {
570
+ content: "\e096";
571
+ }
572
+ .glyphicon-resize-small:before {
573
+ content: "\e097";
574
+ }
575
+ .glyphicon-exclamation-sign:before {
576
+ content: "\e101";
577
+ }
578
+ .glyphicon-gift:before {
579
+ content: "\e102";
580
+ }
581
+ .glyphicon-leaf:before {
582
+ content: "\e103";
583
+ }
584
+ .glyphicon-fire:before {
585
+ content: "\e104";
586
+ }
587
+ .glyphicon-eye-open:before {
588
+ content: "\e105";
589
+ }
590
+ .glyphicon-eye-close:before {
591
+ content: "\e106";
592
+ }
593
+ .glyphicon-warning-sign:before {
594
+ content: "\e107";
595
+ }
596
+ .glyphicon-plane:before {
597
+ content: "\e108";
598
+ }
599
+ .glyphicon-calendar:before {
600
+ //content: "\e109";
601
+ }
602
+ .glyphicon-random:before {
603
+ content: "\e110";
604
+ }
605
+ .glyphicon-comment:before {
606
+ content: "\e111";
607
+ }
608
+ .glyphicon-magnet:before {
609
+ content: "\e112";
610
+ }
611
+ .glyphicon-chevron-up:before {
612
+ content: "\e113";
613
+ }
614
+ .glyphicon-chevron-down:before {
615
+ content: "\e114";
616
+ }
617
+ .glyphicon-retweet:before {
618
+ content: "\e115";
619
+ }
620
+ .glyphicon-shopping-cart:before {
621
+ content: "\e116";
622
+ }
623
+ .glyphicon-folder-close:before {
624
+ content: "\e117";
625
+ }
626
+ .glyphicon-folder-open:before {
627
+ content: "\e118";
628
+ }
629
+ .glyphicon-resize-vertical:before {
630
+ content: "\e119";
631
+ }
632
+ .glyphicon-resize-horizontal:before {
633
+ content: "\e120";
634
+ }
635
+ .glyphicon-hdd:before {
636
+ content: "\e121";
637
+ }
638
+ .glyphicon-bullhorn:before {
639
+ content: "\e122";
640
+ }
641
+ .glyphicon-bell:before {
642
+ content: "\e123";
643
+ }
644
+ .glyphicon-certificate:before {
645
+ content: "\e124";
646
+ }
647
+ .glyphicon-thumbs-up:before {
648
+ content: "\e125";
649
+ }
650
+ .glyphicon-thumbs-down:before {
651
+ content: "\e126";
652
+ }
653
+ .glyphicon-hand-right:before {
654
+ content: "\e127";
655
+ }
656
+ .glyphicon-hand-left:before {
657
+ content: "\e128";
658
+ }
659
+ .glyphicon-hand-up:before {
660
+ content: "\e129";
661
+ }
662
+ .glyphicon-hand-down:before {
663
+ content: "\e130";
664
+ }
665
+ .glyphicon-circle-arrow-right:before {
666
+ content: "\e131";
667
+ }
668
+ .glyphicon-circle-arrow-left:before {
669
+ content: "\e132";
670
+ }
671
+ .glyphicon-circle-arrow-up:before {
672
+ content: "\e133";
673
+ }
674
+ .glyphicon-circle-arrow-down:before {
675
+ content: "\e134";
676
+ }
677
+ .glyphicon-globe:before {
678
+ content: "\e135";
679
+ }
680
+ .glyphicon-wrench:before {
681
+ content: "\e136";
682
+ }
683
+ .glyphicon-tasks:before {
684
+ content: "\e137";
685
+ }
686
+ .glyphicon-filter:before {
687
+ content: "\e138";
688
+ }
689
+ .glyphicon-briefcase:before {
690
+ content: "\e139";
691
+ }
692
+ .glyphicon-fullscreen:before {
693
+ content: "\e140";
694
+ }
695
+ .glyphicon-dashboard:before {
696
+ content: "\e141";
697
+ }
698
+ .glyphicon-paperclip:before {
699
+ content: "\e142";
700
+ }
701
+ .glyphicon-heart-empty:before {
702
+ content: "\e143";
703
+ }
704
+ .glyphicon-link:before {
705
+ content: "\e144";
706
+ }
707
+ .glyphicon-phone:before {
708
+ content: "\e145";
709
+ }
710
+ .glyphicon-pushpin:before {
711
+ content: "\e146";
712
+ }
713
+ .glyphicon-usd:before {
714
+ content: "\e148";
715
+ }
716
+ .glyphicon-gbp:before {
717
+ content: "\e149";
718
+ }
719
+ .glyphicon-sort:before {
720
+ content: "\e150";
721
+ }
722
+ .glyphicon-sort-by-alphabet:before {
723
+ content: "\e151";
724
+ }
725
+ .glyphicon-sort-by-alphabet-alt:before {
726
+ content: "\e152";
727
+ }
728
+ .glyphicon-sort-by-order:before {
729
+ content: "\e153";
730
+ }
731
+ .glyphicon-sort-by-order-alt:before {
732
+ content: "\e154";
733
+ }
734
+ .glyphicon-sort-by-attributes:before {
735
+ content: "\e155";
736
+ }
737
+ .glyphicon-sort-by-attributes-alt:before {
738
+ content: "\e156";
739
+ }
740
+ .glyphicon-unchecked:before {
741
+ content: "\e157";
742
+ }
743
+ .glyphicon-expand:before {
744
+ content: "\e158";
745
+ }
746
+ .glyphicon-collapse-down:before {
747
+ content: "\e159";
748
+ }
749
+ .glyphicon-collapse-up:before {
750
+ content: "\e160";
751
+ }
752
+ .glyphicon-log-in:before {
753
+ content: "\e161";
754
+ }
755
+ .glyphicon-flash:before {
756
+ content: "\e162";
757
+ }
758
+ .glyphicon-log-out:before {
759
+ content: "\e163";
760
+ }
761
+ .glyphicon-new-window:before {
762
+ content: "\e164";
763
+ }
764
+ .glyphicon-record:before {
765
+ content: "\e165";
766
+ }
767
+ .glyphicon-save:before {
768
+ content: "\e166";
769
+ }
770
+ .glyphicon-open:before {
771
+ content: "\e167";
772
+ }
773
+ .glyphicon-saved:before {
774
+ content: "\e168";
775
+ }
776
+ .glyphicon-import:before {
777
+ content: "\e169";
778
+ }
779
+ .glyphicon-export:before {
780
+ content: "\e170";
781
+ }
782
+ .glyphicon-send:before {
783
+ content: "\e171";
784
+ }
785
+ .glyphicon-floppy-disk:before {
786
+ content: "\e172";
787
+ }
788
+ .glyphicon-floppy-saved:before {
789
+ content: "\e173";
790
+ }
791
+ .glyphicon-floppy-remove:before {
792
+ content: "\e174";
793
+ }
794
+ .glyphicon-floppy-save:before {
795
+ content: "\e175";
796
+ }
797
+ .glyphicon-floppy-open:before {
798
+ content: "\e176";
799
+ }
800
+ .glyphicon-credit-card:before {
801
+ content: "\e177";
802
+ }
803
+ .glyphicon-transfer:before {
804
+ content: "\e178";
805
+ }
806
+ .glyphicon-cutlery:before {
807
+ content: "\e179";
808
+ }
809
+ .glyphicon-header:before {
810
+ content: "\e180";
811
+ }
812
+ .glyphicon-compressed:before {
813
+ content: "\e181";
814
+ }
815
+ .glyphicon-earphone:before {
816
+ content: "\e182";
817
+ }
818
+ .glyphicon-phone-alt:before {
819
+ content: "\e183";
820
+ }
821
+ .glyphicon-tower:before {
822
+ content: "\e184";
823
+ }
824
+ .glyphicon-stats:before {
825
+ content: "\e185";
826
+ }
827
+ .glyphicon-sd-video:before {
828
+ content: "\e186";
829
+ }
830
+ .glyphicon-hd-video:before {
831
+ content: "\e187";
832
+ }
833
+ .glyphicon-subtitles:before {
834
+ content: "\e188";
835
+ }
836
+ .glyphicon-sound-stereo:before {
837
+ content: "\e189";
838
+ }
839
+ .glyphicon-sound-dolby:before {
840
+ content: "\e190";
841
+ }
842
+ .glyphicon-sound-5-1:before {
843
+ content: "\e191";
844
+ }
845
+ .glyphicon-sound-6-1:before {
846
+ content: "\e192";
847
+ }
848
+ .glyphicon-sound-7-1:before {
849
+ content: "\e193";
850
+ }
851
+ .glyphicon-copyright-mark:before {
852
+ content: "\e194";
853
+ }
854
+ .glyphicon-registration-mark:before {
855
+ content: "\e195";
856
+ }
857
+ .glyphicon-cloud-download:before {
858
+ content: "\e197";
859
+ }
860
+ .glyphicon-cloud-upload:before {
861
+ content: "\e198";
862
+ }
863
+ .glyphicon-tree-conifer:before {
864
+ content: "\e199";
865
+ }
866
+ .glyphicon-tree-deciduous:before {
867
+ content: "\e200";
868
+ }
869
+ .glyphicon-cd:before {
870
+ content: "\e201";
871
+ }
872
+ .glyphicon-save-file:before {
873
+ content: "\e202";
874
+ }
875
+ .glyphicon-open-file:before {
876
+ content: "\e203";
877
+ }
878
+ .glyphicon-level-up:before {
879
+ content: "\e204";
880
+ }
881
+ .glyphicon-copy:before {
882
+ content: "\e205";
883
+ }
884
+ .glyphicon-paste:before {
885
+ content: "\e206";
886
+ }
887
+ .glyphicon-alert:before {
888
+ content: "\e209";
889
+ }
890
+ .glyphicon-equalizer:before {
891
+ content: "\e210";
892
+ }
893
+ .glyphicon-king:before {
894
+ content: "\e211";
895
+ }
896
+ .glyphicon-queen:before {
897
+ content: "\e212";
898
+ }
899
+ .glyphicon-pawn:before {
900
+ content: "\e213";
901
+ }
902
+ .glyphicon-bishop:before {
903
+ content: "\e214";
904
+ }
905
+ .glyphicon-knight:before {
906
+ content: "\e215";
907
+ }
908
+ .glyphicon-baby-formula:before {
909
+ content: "\e216";
910
+ }
911
+ .glyphicon-tent:before {
912
+ content: "\26fa";
913
+ }
914
+ .glyphicon-blackboard:before {
915
+ content: "\e218";
916
+ }
917
+ .glyphicon-bed:before {
918
+ content: "\e219";
919
+ }
920
+ .glyphicon-apple:before {
921
+ content: "\f8ff";
922
+ }
923
+ .glyphicon-erase:before {
924
+ content: "\e221";
925
+ }
926
+ .glyphicon-hourglass:before {
927
+ content: "\231b";
928
+ }
929
+ .glyphicon-lamp:before {
930
+ content: "\e223";
931
+ }
932
+ .glyphicon-duplicate:before {
933
+ content: "\e224";
934
+ }
935
+ .glyphicon-piggy-bank:before {
936
+ content: "\e225";
937
+ }
938
+ .glyphicon-scissors:before {
939
+ content: "\e226";
940
+ }
941
+ .glyphicon-bitcoin:before {
942
+ content: "\e227";
943
+ }
944
+ .glyphicon-btc:before {
945
+ content: "\e227";
946
+ }
947
+ .glyphicon-xbt:before {
948
+ content: "\e227";
949
+ }
950
+ .glyphicon-yen:before {
951
+ content: "\00a5";
952
+ }
953
+ .glyphicon-jpy:before {
954
+ content: "\00a5";
955
+ }
956
+ .glyphicon-ruble:before {
957
+ content: "\20bd";
958
+ }
959
+ .glyphicon-rub:before {
960
+ content: "\20bd";
961
+ }
962
+ .glyphicon-scale:before {
963
+ content: "\e230";
964
+ }
965
+ .glyphicon-ice-lolly:before {
966
+ content: "\e231";
967
+ }
968
+ .glyphicon-ice-lolly-tasted:before {
969
+ content: "\e232";
970
+ }
971
+ .glyphicon-education:before {
972
+ content: "\e233";
973
+ }
974
+ .glyphicon-option-horizontal:before {
975
+ content: "\e234";
976
+ }
977
+ .glyphicon-option-vertical:before {
978
+ content: "\e235";
979
+ }
980
+ .glyphicon-menu-hamburger:before {
981
+ content: "\e236";
982
+ }
983
+ .glyphicon-modal-window:before {
984
+ content: "\e237";
985
+ }
986
+ .glyphicon-oil:before {
987
+ content: "\e238";
988
+ }
989
+ .glyphicon-grain:before {
990
+ content: "\e239";
991
+ }
992
+ .glyphicon-sunglasses:before {
993
+ content: "\e240";
994
+ }
995
+ .glyphicon-text-size:before {
996
+ content: "\e241";
997
+ }
998
+ .glyphicon-text-color:before {
999
+ content: "\e242";
1000
+ }
1001
+ .glyphicon-text-background:before {
1002
+ content: "\e243";
1003
+ }
1004
+ .glyphicon-object-align-top:before {
1005
+ content: "\e244";
1006
+ }
1007
+ .glyphicon-object-align-bottom:before {
1008
+ content: "\e245";
1009
+ }
1010
+ .glyphicon-object-align-horizontal:before {
1011
+ content: "\e246";
1012
+ }
1013
+ .glyphicon-object-align-left:before {
1014
+ content: "\e247";
1015
+ }
1016
+ .glyphicon-object-align-vertical:before {
1017
+ content: "\e248";
1018
+ }
1019
+ .glyphicon-object-align-right:before {
1020
+ content: "\e249";
1021
+ }
1022
+ .glyphicon-triangle-right:before {
1023
+ content: "\e250";
1024
+ }
1025
+ .glyphicon-triangle-left:before {
1026
+ content: "\e251";
1027
+ }
1028
+ .glyphicon-triangle-bottom:before {
1029
+ content: "\e252";
1030
+ }
1031
+ .glyphicon-triangle-top:before {
1032
+ content: "\e253";
1033
+ }
1034
+ .glyphicon-console:before {
1035
+ content: "\e254";
1036
+ }
1037
+ .glyphicon-superscript:before {
1038
+ content: "\e255";
1039
+ }
1040
+ .glyphicon-subscript:before {
1041
+ content: "\e256";
1042
+ }
1043
+ .glyphicon-menu-left:before {
1044
+ content: "\e257";
1045
+ }
1046
+ .glyphicon-menu-right:before {
1047
+ content: "\e258";
1048
+ }
1049
+ .glyphicon-menu-down:before {
1050
+ content: "\e259";
1051
+ }
1052
+ .glyphicon-menu-up:before {
1053
+ content: "\e260";
1054
+ }
1055
+
1056
+
1057
+
1058
+ input,
1059
+ button,
1060
+ select,
1061
+ textarea {
1062
+ font-family: inherit;
1063
+ font-size: inherit;
1064
+ line-height: inherit;
1065
+ }
1066
+ a {
1067
+ color: #337ab7;
1068
+ }
1069
+ a:hover,
1070
+ a:focus {
1071
+ color: #23527c;
1072
+ text-decoration: underline;
1073
+ }
1074
+ a:focus {
1075
+ outline: none;
1076
+ box-shadow:none;
1077
+ }
1078
+ figure {
1079
+ margin: 0;
1080
+ }
1081
+ img {
1082
+ vertical-align: middle;
1083
+ }
1084
+ .img-responsive,
1085
+ .thumbnail > img,
1086
+ .thumbnail a > img,
1087
+ .carousel-inner > .item > img,
1088
+ .carousel-inner > .item > a > img {
1089
+ display: block;
1090
+ max-width: 100%;
1091
+ height: auto;
1092
+ }
1093
+ .img-rounded {
1094
+ border-radius: 6px;
1095
+ }
1096
+ .img-thumbnail {
1097
+ display: inline-block;
1098
+ max-width: 100%;
1099
+ height: auto;
1100
+ padding: 4px;
1101
+ line-height: 1.42857143;
1102
+ background-color: #fff;
1103
+ border: 1px solid #ddd;
1104
+ border-radius: 4px;
1105
+ -webkit-transition: all .2s ease-in-out;
1106
+ -o-transition: all .2s ease-in-out;
1107
+ transition: all .2s ease-in-out;
1108
+ }
1109
+ .img-circle {
1110
+ border-radius: 50%;
1111
+ }
1112
+ hr {
1113
+ margin-top: 20px;
1114
+ margin-bottom: 20px;
1115
+ border: 0;
1116
+ border-top: 1px solid #eee;
1117
+ }
1118
+ .sr-only {
1119
+ position: absolute;
1120
+ width: 1px;
1121
+ height: 1px;
1122
+ padding: 0;
1123
+ margin: -1px;
1124
+ overflow: hidden;
1125
+ clip: rect(0, 0, 0, 0);
1126
+ border: 0;
1127
+ }
1128
+ .sr-only-focusable:active,
1129
+ .sr-only-focusable:focus {
1130
+ position: static;
1131
+ width: auto;
1132
+ height: auto;
1133
+ margin: 0;
1134
+ overflow: visible;
1135
+ clip: auto;
1136
+ }
1137
+ [role="button"] {
1138
+ cursor: pointer;
1139
+ }
1140
+ h1,
1141
+ h2,
1142
+ h3,
1143
+ h4,
1144
+ h5,
1145
+ h6,
1146
+ .h1,
1147
+ .h2,
1148
+ .h3,
1149
+ .h4,
1150
+ .h5,
1151
+ .h6 {
1152
+ font-family: inherit;
1153
+ font-weight: 500;
1154
+ line-height: 1.1;
1155
+ color: inherit;
1156
+ }
1157
+ h1 small,
1158
+ h2 small,
1159
+ h3 small,
1160
+ h4 small,
1161
+ h5 small,
1162
+ h6 small,
1163
+ .h1 small,
1164
+ .h2 small,
1165
+ .h3 small,
1166
+ .h4 small,
1167
+ .h5 small,
1168
+ .h6 small,
1169
+ h1 .small,
1170
+ h2 .small,
1171
+ h3 .small,
1172
+ h4 .small,
1173
+ h5 .small,
1174
+ h6 .small,
1175
+ .h1 .small,
1176
+ .h2 .small,
1177
+ .h3 .small,
1178
+ .h4 .small,
1179
+ .h5 .small,
1180
+ .h6 .small {
1181
+ font-weight: normal;
1182
+ line-height: 1;
1183
+ color: #777;
1184
+ }
1185
+ h1,
1186
+ .h1,
1187
+ h2,
1188
+ .h2,
1189
+ h3,
1190
+ .h3 {
1191
+ margin-top: 20px;
1192
+ margin-bottom: 10px;
1193
+ }
1194
+ h1 small,
1195
+ .h1 small,
1196
+ h2 small,
1197
+ .h2 small,
1198
+ h3 small,
1199
+ .h3 small,
1200
+ h1 .small,
1201
+ .h1 .small,
1202
+ h2 .small,
1203
+ .h2 .small,
1204
+ h3 .small,
1205
+ .h3 .small {
1206
+ font-size: 65%;
1207
+ }
1208
+ h4,
1209
+ .h4,
1210
+ h5,
1211
+ .h5,
1212
+ h6,
1213
+ .h6 {
1214
+ margin-top: 10px;
1215
+ margin-bottom: 10px;
1216
+ }
1217
+ h4 small,
1218
+ .h4 small,
1219
+ h5 small,
1220
+ .h5 small,
1221
+ h6 small,
1222
+ .h6 small,
1223
+ h4 .small,
1224
+ .h4 .small,
1225
+ h5 .small,
1226
+ .h5 .small,
1227
+ h6 .small,
1228
+ .h6 .small {
1229
+ font-size: 75%;
1230
+ }
1231
+ h1,
1232
+ .h1 {
1233
+ font-size: 36px;
1234
+ }
1235
+ h2,
1236
+ .h2 {
1237
+ font-size: 30px;
1238
+ }
1239
+ h3,
1240
+ .h3 {
1241
+ font-size: 24px;
1242
+ }
1243
+ h4,
1244
+ .h4 {
1245
+ font-size: 18px;
1246
+ }
1247
+ h5,
1248
+ .h5 {
1249
+ font-size: 14px;
1250
+ }
1251
+ h6,
1252
+ .h6 {
1253
+ font-size: 12px;
1254
+ }
1255
+ p {
1256
+ margin: 0 0 10px;
1257
+ }
1258
+ .lead {
1259
+ margin-bottom: 20px;
1260
+ font-size: 16px;
1261
+ font-weight: 300;
1262
+ line-height: 1.4;
1263
+ }
1264
+ @media (min-width: 768px) {
1265
+ .lead {
1266
+ font-size: 21px;
1267
+ }
1268
+ }
1269
+ small,
1270
+ .small {
1271
+ font-size: 85%;
1272
+ }
1273
+ mark,
1274
+ .mark {
1275
+ padding: .2em;
1276
+ background-color: #fcf8e3;
1277
+ }
1278
+ .text-left {
1279
+ text-align: left;
1280
+ }
1281
+ .text-right {
1282
+ text-align: right;
1283
+ }
1284
+ .text-center {
1285
+ text-align: center;
1286
+ }
1287
+ .text-justify {
1288
+ text-align: justify;
1289
+ }
1290
+ .text-nowrap {
1291
+ white-space: nowrap;
1292
+ }
1293
+ .text-lowercase {
1294
+ text-transform: lowercase;
1295
+ }
1296
+ .text-uppercase {
1297
+ text-transform: uppercase;
1298
+ }
1299
+ .text-capitalize {
1300
+ text-transform: capitalize;
1301
+ }
1302
+ .text-muted {
1303
+ color: #777;
1304
+ }
1305
+ .text-primary {
1306
+ color: #337ab7;
1307
+ }
1308
+ a.text-primary:hover,
1309
+ a.text-primary:focus {
1310
+ color: #286090;
1311
+ }
1312
+ .text-success {
1313
+ color: #3c763d;
1314
+ }
1315
+ a.text-success:hover,
1316
+ a.text-success:focus {
1317
+ color: #2b542c;
1318
+ }
1319
+ .text-info {
1320
+ color: #31708f;
1321
+ }
1322
+ a.text-info:hover,
1323
+ a.text-info:focus {
1324
+ color: #245269;
1325
+ }
1326
+ .text-warning {
1327
+ color: #8a6d3b;
1328
+ }
1329
+ a.text-warning:hover,
1330
+ a.text-warning:focus {
1331
+ color: #66512c;
1332
+ }
1333
+ .text-danger {
1334
+ color: #a94442;
1335
+ }
1336
+ a.text-danger:hover,
1337
+ a.text-danger:focus {
1338
+ color: #843534;
1339
+ }
1340
+ .bg-primary {
1341
+ color: #fff;
1342
+ background-color: #337ab7;
1343
+ }
1344
+ a.bg-primary:hover,
1345
+ a.bg-primary:focus {
1346
+ background-color: #286090;
1347
+ }
1348
+ .bg-success {
1349
+ background-color: #dff0d8;
1350
+ }
1351
+ a.bg-success:hover,
1352
+ a.bg-success:focus {
1353
+ background-color: #c1e2b3;
1354
+ }
1355
+ .bg-info {
1356
+ background-color: #d9edf7;
1357
+ }
1358
+ a.bg-info:hover,
1359
+ a.bg-info:focus {
1360
+ background-color: #afd9ee;
1361
+ }
1362
+ .bg-warning {
1363
+ background-color: #fcf8e3;
1364
+ }
1365
+ a.bg-warning:hover,
1366
+ a.bg-warning:focus {
1367
+ background-color: #f7ecb5;
1368
+ }
1369
+ .bg-danger {
1370
+ background-color: #f2dede;
1371
+ }
1372
+ a.bg-danger:hover,
1373
+ a.bg-danger:focus {
1374
+ background-color: #e4b9b9;
1375
+ }
1376
+ .page-header {
1377
+ padding-bottom: 9px;
1378
+ margin: 40px 0 20px;
1379
+ border-bottom: 1px solid #eee;
1380
+ }
1381
+ ul,
1382
+ ol {
1383
+ margin-top: 0;
1384
+ margin-bottom: 10px;
1385
+ }
1386
+ ul ul,
1387
+ ol ul,
1388
+ ul ol,
1389
+ ol ol {
1390
+ margin-bottom: 0;
1391
+ }
1392
+ .list-unstyled {
1393
+ padding-left: 0;
1394
+ list-style: none;
1395
+ }
1396
+ .list-inline {
1397
+ padding-left: 0;
1398
+ margin-left: -5px;
1399
+ list-style: none;
1400
+ }
1401
+ .list-inline > li {
1402
+ display: inline-block;
1403
+ padding-right: 5px;
1404
+ padding-left: 5px;
1405
+ }
1406
+ dl {
1407
+ margin-top: 0;
1408
+ margin-bottom: 20px;
1409
+ }
1410
+ dt,
1411
+ dd {
1412
+ line-height: 1.42857143;
1413
+ }
1414
+ dt {
1415
+ font-weight: bold;
1416
+ }
1417
+ dd {
1418
+ margin-left: 0;
1419
+ }
1420
+ @media (min-width: 768px) {
1421
+ .dl-horizontal dt {
1422
+ float: left;
1423
+ width: 160px;
1424
+ overflow: hidden;
1425
+ clear: left;
1426
+ text-align: right;
1427
+ text-overflow: ellipsis;
1428
+ white-space: nowrap;
1429
+ }
1430
+ .dl-horizontal dd {
1431
+ margin-left: 180px;
1432
+ }
1433
+ }
1434
+ abbr[title],
1435
+ abbr[data-original-title] {
1436
+ cursor: help;
1437
+ border-bottom: 1px dotted #777;
1438
+ }
1439
+ .initialism {
1440
+ font-size: 90%;
1441
+ text-transform: uppercase;
1442
+ }
1443
+ blockquote {
1444
+ padding: 10px 20px;
1445
+ margin: 0 0 20px;
1446
+ font-size: 17.5px;
1447
+ border-left: 5px solid #eee;
1448
+ }
1449
+ blockquote p:last-child,
1450
+ blockquote ul:last-child,
1451
+ blockquote ol:last-child {
1452
+ margin-bottom: 0;
1453
+ }
1454
+ blockquote footer,
1455
+ blockquote small,
1456
+ blockquote .small {
1457
+ display: block;
1458
+ font-size: 80%;
1459
+ line-height: 1.42857143;
1460
+ color: #777;
1461
+ }
1462
+ blockquote footer:before,
1463
+ blockquote small:before,
1464
+ blockquote .small:before {
1465
+ content: '\2014 \00A0';
1466
+ }
1467
+ .blockquote-reverse,
1468
+ blockquote.pull-right {
1469
+ padding-right: 15px;
1470
+ padding-left: 0;
1471
+ text-align: right;
1472
+ border-right: 5px solid #eee;
1473
+ border-left: 0;
1474
+ }
1475
+ .blockquote-reverse footer:before,
1476
+ blockquote.pull-right footer:before,
1477
+ .blockquote-reverse small:before,
1478
+ blockquote.pull-right small:before,
1479
+ .blockquote-reverse .small:before,
1480
+ blockquote.pull-right .small:before {
1481
+ content: '';
1482
+ }
1483
+ .blockquote-reverse footer:after,
1484
+ blockquote.pull-right footer:after,
1485
+ .blockquote-reverse small:after,
1486
+ blockquote.pull-right small:after,
1487
+ .blockquote-reverse .small:after,
1488
+ blockquote.pull-right .small:after {
1489
+ content: '\00A0 \2014';
1490
+ }
1491
+ address {
1492
+ margin-bottom: 20px;
1493
+ font-style: normal;
1494
+ line-height: 1.42857143;
1495
+ }
1496
+ code,
1497
+ kbd,
1498
+ pre,
1499
+ samp {
1500
+ font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
1501
+ }
1502
+ code {
1503
+ padding: 2px 4px;
1504
+ font-size: 90%;
1505
+ color: #c7254e;
1506
+ background-color: #f9f2f4;
1507
+ border-radius: 4px;
1508
+ }
1509
+ kbd {
1510
+ padding: 2px 4px;
1511
+ font-size: 90%;
1512
+ color: #fff;
1513
+ background-color: #333;
1514
+ border-radius: 3px;
1515
+ -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);
1516
+ box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);
1517
+ }
1518
+ kbd kbd {
1519
+ padding: 0;
1520
+ font-size: 100%;
1521
+ font-weight: bold;
1522
+ -webkit-box-shadow: none;
1523
+ box-shadow: none;
1524
+ }
1525
+ pre {
1526
+ display: block;
1527
+ padding: 9.5px;
1528
+ margin: 0 0 10px;
1529
+ font-size: 13px;
1530
+ line-height: 1.42857143;
1531
+ color: #333;
1532
+ word-break: break-all;
1533
+ word-wrap: break-word;
1534
+ background-color: #f5f5f5;
1535
+ border: 1px solid #ccc;
1536
+ border-radius: 4px;
1537
+ }
1538
+ pre code {
1539
+ padding: 0;
1540
+ font-size: inherit;
1541
+ color: inherit;
1542
+ white-space: pre-wrap;
1543
+ background-color: transparent;
1544
+ border-radius: 0;
1545
+ }
1546
+ .pre-scrollable {
1547
+ max-height: 340px;
1548
+ overflow-y: scroll;
1549
+ }
1550
+ .container {
1551
+ padding-right: 15px;
1552
+ padding-left: 15px;
1553
+ margin-right: auto;
1554
+ margin-left: auto;
1555
+ }
1556
+ @media (min-width: 768px) {
1557
+ .container {
1558
+ width: 750px;
1559
+ }
1560
+ }
1561
+ @media (min-width: 992px) {
1562
+ .container {
1563
+ width: 970px;
1564
+ }
1565
+ }
1566
+ @media (min-width: 1200px) {
1567
+ .container {
1568
+ width: 1170px;
1569
+ }
1570
+ }
1571
+ .container-fluid {
1572
+ padding-right: 15px;
1573
+ padding-left: 15px;
1574
+ margin-right: auto;
1575
+ margin-left: auto;
1576
+ }
1577
+ .row {
1578
+ margin-right: -15px;
1579
+ margin-left: -15px;
1580
+ }
1581
+ .col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
1582
+ position: relative;
1583
+ min-height: 1px;
1584
+ padding-right: 15px;
1585
+ padding-left: 15px;
1586
+ }
1587
+ .col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
1588
+ float: left;
1589
+ }
1590
+ .col-xs-12 {
1591
+ width: 100%;
1592
+ }
1593
+ .col-xs-11 {
1594
+ width: 91.66666667%;
1595
+ }
1596
+ .col-xs-10 {
1597
+ width: 83.33333333%;
1598
+ }
1599
+ .col-xs-9 {
1600
+ width: 75%;
1601
+ }
1602
+ .col-xs-8 {
1603
+ width: 66.66666667%;
1604
+ }
1605
+ .col-xs-7 {
1606
+ width: 58.33333333%;
1607
+ }
1608
+ .col-xs-6 {
1609
+ width: 50%;
1610
+ }
1611
+ .col-xs-5 {
1612
+ width: 41.66666667%;
1613
+ }
1614
+ .col-xs-4 {
1615
+ width: 33.33333333%;
1616
+ }
1617
+ .col-xs-3 {
1618
+ width: 25%;
1619
+ }
1620
+ .col-xs-2 {
1621
+ width: 16.66666667%;
1622
+ }
1623
+ .col-xs-1 {
1624
+ width: 8.33333333%;
1625
+ }
1626
+ .col-xs-pull-12 {
1627
+ right: 100%;
1628
+ }
1629
+ .col-xs-pull-11 {
1630
+ right: 91.66666667%;
1631
+ }
1632
+ .col-xs-pull-10 {
1633
+ right: 83.33333333%;
1634
+ }
1635
+ .col-xs-pull-9 {
1636
+ right: 75%;
1637
+ }
1638
+ .col-xs-pull-8 {
1639
+ right: 66.66666667%;
1640
+ }
1641
+ .col-xs-pull-7 {
1642
+ right: 58.33333333%;
1643
+ }
1644
+ .col-xs-pull-6 {
1645
+ right: 50%;
1646
+ }
1647
+ .col-xs-pull-5 {
1648
+ right: 41.66666667%;
1649
+ }
1650
+ .col-xs-pull-4 {
1651
+ right: 33.33333333%;
1652
+ }
1653
+ .col-xs-pull-3 {
1654
+ right: 25%;
1655
+ }
1656
+ .col-xs-pull-2 {
1657
+ right: 16.66666667%;
1658
+ }
1659
+ .col-xs-pull-1 {
1660
+ right: 8.33333333%;
1661
+ }
1662
+ .col-xs-pull-0 {
1663
+ right: auto;
1664
+ }
1665
+ .col-xs-push-12 {
1666
+ left: 100%;
1667
+ }
1668
+ .col-xs-push-11 {
1669
+ left: 91.66666667%;
1670
+ }
1671
+ .col-xs-push-10 {
1672
+ left: 83.33333333%;
1673
+ }
1674
+ .col-xs-push-9 {
1675
+ left: 75%;
1676
+ }
1677
+ .col-xs-push-8 {
1678
+ left: 66.66666667%;
1679
+ }
1680
+ .col-xs-push-7 {
1681
+ left: 58.33333333%;
1682
+ }
1683
+ .col-xs-push-6 {
1684
+ left: 50%;
1685
+ }
1686
+ .col-xs-push-5 {
1687
+ left: 41.66666667%;
1688
+ }
1689
+ .col-xs-push-4 {
1690
+ left: 33.33333333%;
1691
+ }
1692
+ .col-xs-push-3 {
1693
+ left: 25%;
1694
+ }
1695
+ .col-xs-push-2 {
1696
+ left: 16.66666667%;
1697
+ }
1698
+ .col-xs-push-1 {
1699
+ left: 8.33333333%;
1700
+ }
1701
+ .col-xs-push-0 {
1702
+ left: auto;
1703
+ }
1704
+ .col-xs-offset-12 {
1705
+ margin-left: 100%;
1706
+ }
1707
+ .col-xs-offset-11 {
1708
+ margin-left: 91.66666667%;
1709
+ }
1710
+ .col-xs-offset-10 {
1711
+ margin-left: 83.33333333%;
1712
+ }
1713
+ .col-xs-offset-9 {
1714
+ margin-left: 75%;
1715
+ }
1716
+ .col-xs-offset-8 {
1717
+ margin-left: 66.66666667%;
1718
+ }
1719
+ .col-xs-offset-7 {
1720
+ margin-left: 58.33333333%;
1721
+ }
1722
+ .col-xs-offset-6 {
1723
+ margin-left: 50%;
1724
+ }
1725
+ .col-xs-offset-5 {
1726
+ margin-left: 41.66666667%;
1727
+ }
1728
+ .col-xs-offset-4 {
1729
+ margin-left: 33.33333333%;
1730
+ }
1731
+ .col-xs-offset-3 {
1732
+ margin-left: 25%;
1733
+ }
1734
+ .col-xs-offset-2 {
1735
+ margin-left: 16.66666667%;
1736
+ }
1737
+ .col-xs-offset-1 {
1738
+ margin-left: 8.33333333%;
1739
+ }
1740
+ .col-xs-offset-0 {
1741
+ margin-left: 0;
1742
+ }
1743
+ @media (min-width: 768px) {
1744
+ .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
1745
+ float: left;
1746
+ }
1747
+ .col-sm-12 {
1748
+ width: 100%;
1749
+ }
1750
+ .col-sm-11 {
1751
+ width: 91.66666667%;
1752
+ }
1753
+ .col-sm-10 {
1754
+ width: 83.33333333%;
1755
+ }
1756
+ .col-sm-9 {
1757
+ width: 75%;
1758
+ }
1759
+ .col-sm-8 {
1760
+ width: 66.66666667%;
1761
+ }
1762
+ .col-sm-7 {
1763
+ width: 58.33333333%;
1764
+ }
1765
+ .col-sm-6 {
1766
+ width: 50%;
1767
+ }
1768
+ .col-sm-5 {
1769
+ width: 41.66666667%;
1770
+ }
1771
+ .col-sm-4 {
1772
+ width: 33.33333333%;
1773
+ }
1774
+ .col-sm-3 {
1775
+ width: 25%;
1776
+ }
1777
+ .col-sm-2 {
1778
+ width: 16.66666667%;
1779
+ }
1780
+ .col-sm-1 {
1781
+ width: 8.33333333%;
1782
+ }
1783
+ .col-sm-pull-12 {
1784
+ right: 100%;
1785
+ }
1786
+ .col-sm-pull-11 {
1787
+ right: 91.66666667%;
1788
+ }
1789
+ .col-sm-pull-10 {
1790
+ right: 83.33333333%;
1791
+ }
1792
+ .col-sm-pull-9 {
1793
+ right: 75%;
1794
+ }
1795
+ .col-sm-pull-8 {
1796
+ right: 66.66666667%;
1797
+ }
1798
+ .col-sm-pull-7 {
1799
+ right: 58.33333333%;
1800
+ }
1801
+ .col-sm-pull-6 {
1802
+ right: 50%;
1803
+ }
1804
+ .col-sm-pull-5 {
1805
+ right: 41.66666667%;
1806
+ }
1807
+ .col-sm-pull-4 {
1808
+ right: 33.33333333%;
1809
+ }
1810
+ .col-sm-pull-3 {
1811
+ right: 25%;
1812
+ }
1813
+ .col-sm-pull-2 {
1814
+ right: 16.66666667%;
1815
+ }
1816
+ .col-sm-pull-1 {
1817
+ right: 8.33333333%;
1818
+ }
1819
+ .col-sm-pull-0 {
1820
+ right: auto;
1821
+ }
1822
+ .col-sm-push-12 {
1823
+ left: 100%;
1824
+ }
1825
+ .col-sm-push-11 {
1826
+ left: 91.66666667%;
1827
+ }
1828
+ .col-sm-push-10 {
1829
+ left: 83.33333333%;
1830
+ }
1831
+ .col-sm-push-9 {
1832
+ left: 75%;
1833
+ }
1834
+ .col-sm-push-8 {
1835
+ left: 66.66666667%;
1836
+ }
1837
+ .col-sm-push-7 {
1838
+ left: 58.33333333%;
1839
+ }
1840
+ .col-sm-push-6 {
1841
+ left: 50%;
1842
+ }
1843
+ .col-sm-push-5 {
1844
+ left: 41.66666667%;
1845
+ }
1846
+ .col-sm-push-4 {
1847
+ left: 33.33333333%;
1848
+ }
1849
+ .col-sm-push-3 {
1850
+ left: 25%;
1851
+ }
1852
+ .col-sm-push-2 {
1853
+ left: 16.66666667%;
1854
+ }
1855
+ .col-sm-push-1 {
1856
+ left: 8.33333333%;
1857
+ }
1858
+ .col-sm-push-0 {
1859
+ left: auto;
1860
+ }
1861
+ .col-sm-offset-12 {
1862
+ margin-left: 100%;
1863
+ }
1864
+ .col-sm-offset-11 {
1865
+ margin-left: 91.66666667%;
1866
+ }
1867
+ .col-sm-offset-10 {
1868
+ margin-left: 83.33333333%;
1869
+ }
1870
+ .col-sm-offset-9 {
1871
+ margin-left: 75%;
1872
+ }
1873
+ .col-sm-offset-8 {
1874
+ margin-left: 66.66666667%;
1875
+ }
1876
+ .col-sm-offset-7 {
1877
+ margin-left: 58.33333333%;
1878
+ }
1879
+ .col-sm-offset-6 {
1880
+ margin-left: 50%;
1881
+ }
1882
+ .col-sm-offset-5 {
1883
+ margin-left: 41.66666667%;
1884
+ }
1885
+ .col-sm-offset-4 {
1886
+ margin-left: 33.33333333%;
1887
+ }
1888
+ .col-sm-offset-3 {
1889
+ margin-left: 25%;
1890
+ }
1891
+ .col-sm-offset-2 {
1892
+ margin-left: 16.66666667%;
1893
+ }
1894
+ .col-sm-offset-1 {
1895
+ margin-left: 8.33333333%;
1896
+ }
1897
+ .col-sm-offset-0 {
1898
+ margin-left: 0;
1899
+ }
1900
+ }
1901
+ @media (min-width: 992px) {
1902
+ .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
1903
+ float: left;
1904
+ }
1905
+ .col-md-12 {
1906
+ width: 100%;
1907
+ }
1908
+ .col-md-11 {
1909
+ width: 91.66666667%;
1910
+ }
1911
+ .col-md-10 {
1912
+ width: 83.33333333%;
1913
+ }
1914
+ .col-md-9 {
1915
+ width: 75%;
1916
+ }
1917
+ .col-md-8 {
1918
+ width: 66.66666667%;
1919
+ }
1920
+ .col-md-7 {
1921
+ width: 58.33333333%;
1922
+ }
1923
+ .col-md-6 {
1924
+ width: 50%;
1925
+ }
1926
+ .col-md-5 {
1927
+ width: 41.66666667%;
1928
+ }
1929
+ .col-md-4 {
1930
+ width: 33.33333333%;
1931
+ }
1932
+ .col-md-3 {
1933
+ width: 25%;
1934
+ }
1935
+ .col-md-2 {
1936
+ width: 16.66666667%;
1937
+ }
1938
+ .col-md-1 {
1939
+ width: 8.33333333%;
1940
+ }
1941
+ .col-md-pull-12 {
1942
+ right: 100%;
1943
+ }
1944
+ .col-md-pull-11 {
1945
+ right: 91.66666667%;
1946
+ }
1947
+ .col-md-pull-10 {
1948
+ right: 83.33333333%;
1949
+ }
1950
+ .col-md-pull-9 {
1951
+ right: 75%;
1952
+ }
1953
+ .col-md-pull-8 {
1954
+ right: 66.66666667%;
1955
+ }
1956
+ .col-md-pull-7 {
1957
+ right: 58.33333333%;
1958
+ }
1959
+ .col-md-pull-6 {
1960
+ right: 50%;
1961
+ }
1962
+ .col-md-pull-5 {
1963
+ right: 41.66666667%;
1964
+ }
1965
+ .col-md-pull-4 {
1966
+ right: 33.33333333%;
1967
+ }
1968
+ .col-md-pull-3 {
1969
+ right: 25%;
1970
+ }
1971
+ .col-md-pull-2 {
1972
+ right: 16.66666667%;
1973
+ }
1974
+ .col-md-pull-1 {
1975
+ right: 8.33333333%;
1976
+ }
1977
+ .col-md-pull-0 {
1978
+ right: auto;
1979
+ }
1980
+ .col-md-push-12 {
1981
+ left: 100%;
1982
+ }
1983
+ .col-md-push-11 {
1984
+ left: 91.66666667%;
1985
+ }
1986
+ .col-md-push-10 {
1987
+ left: 83.33333333%;
1988
+ }
1989
+ .col-md-push-9 {
1990
+ left: 75%;
1991
+ }
1992
+ .col-md-push-8 {
1993
+ left: 66.66666667%;
1994
+ }
1995
+ .col-md-push-7 {
1996
+ left: 58.33333333%;
1997
+ }
1998
+ .col-md-push-6 {
1999
+ left: 50%;
2000
+ }
2001
+ .col-md-push-5 {
2002
+ left: 41.66666667%;
2003
+ }
2004
+ .col-md-push-4 {
2005
+ left: 33.33333333%;
2006
+ }
2007
+ .col-md-push-3 {
2008
+ left: 25%;
2009
+ }
2010
+ .col-md-push-2 {
2011
+ left: 16.66666667%;
2012
+ }
2013
+ .col-md-push-1 {
2014
+ left: 8.33333333%;
2015
+ }
2016
+ .col-md-push-0 {
2017
+ left: auto;
2018
+ }
2019
+ .col-md-offset-12 {
2020
+ margin-left: 100%;
2021
+ }
2022
+ .col-md-offset-11 {
2023
+ margin-left: 91.66666667%;
2024
+ }
2025
+ .col-md-offset-10 {
2026
+ margin-left: 83.33333333%;
2027
+ }
2028
+ .col-md-offset-9 {
2029
+ margin-left: 75%;
2030
+ }
2031
+ .col-md-offset-8 {
2032
+ margin-left: 66.66666667%;
2033
+ }
2034
+ .col-md-offset-7 {
2035
+ margin-left: 58.33333333%;
2036
+ }
2037
+ .col-md-offset-6 {
2038
+ margin-left: 50%;
2039
+ }
2040
+ .col-md-offset-5 {
2041
+ margin-left: 41.66666667%;
2042
+ }
2043
+ .col-md-offset-4 {
2044
+ margin-left: 33.33333333%;
2045
+ }
2046
+ .col-md-offset-3 {
2047
+ margin-left: 25%;
2048
+ }
2049
+ .col-md-offset-2 {
2050
+ margin-left: 16.66666667%;
2051
+ }
2052
+ .col-md-offset-1 {
2053
+ margin-left: 8.33333333%;
2054
+ }
2055
+ .col-md-offset-0 {
2056
+ margin-left: 0;
2057
+ }
2058
+ }
2059
+ @media (min-width: 1200px) {
2060
+ .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
2061
+ float: left;
2062
+ }
2063
+ .col-lg-12 {
2064
+ width: 100%;
2065
+ }
2066
+ .col-lg-11 {
2067
+ width: 91.66666667%;
2068
+ }
2069
+ .col-lg-10 {
2070
+ width: 83.33333333%;
2071
+ }
2072
+ .col-lg-9 {
2073
+ width: 75%;
2074
+ }
2075
+ .col-lg-8 {
2076
+ width: 66.66666667%;
2077
+ }
2078
+ .col-lg-7 {
2079
+ width: 58.33333333%;
2080
+ }
2081
+ .col-lg-6 {
2082
+ width: 50%;
2083
+ }
2084
+ .col-lg-5 {
2085
+ width: 41.66666667%;
2086
+ }
2087
+ .col-lg-4 {
2088
+ width: 33.33333333%;
2089
+ }
2090
+ .col-lg-3 {
2091
+ width: 25%;
2092
+ }
2093
+ .col-lg-2 {
2094
+ width: 16.66666667%;
2095
+ }
2096
+ .col-lg-1 {
2097
+ width: 8.33333333%;
2098
+ }
2099
+ .col-lg-pull-12 {
2100
+ right: 100%;
2101
+ }
2102
+ .col-lg-pull-11 {
2103
+ right: 91.66666667%;
2104
+ }
2105
+ .col-lg-pull-10 {
2106
+ right: 83.33333333%;
2107
+ }
2108
+ .col-lg-pull-9 {
2109
+ right: 75%;
2110
+ }
2111
+ .col-lg-pull-8 {
2112
+ right: 66.66666667%;
2113
+ }
2114
+ .col-lg-pull-7 {
2115
+ right: 58.33333333%;
2116
+ }
2117
+ .col-lg-pull-6 {
2118
+ right: 50%;
2119
+ }
2120
+ .col-lg-pull-5 {
2121
+ right: 41.66666667%;
2122
+ }
2123
+ .col-lg-pull-4 {
2124
+ right: 33.33333333%;
2125
+ }
2126
+ .col-lg-pull-3 {
2127
+ right: 25%;
2128
+ }
2129
+ .col-lg-pull-2 {
2130
+ right: 16.66666667%;
2131
+ }
2132
+ .col-lg-pull-1 {
2133
+ right: 8.33333333%;
2134
+ }
2135
+ .col-lg-pull-0 {
2136
+ right: auto;
2137
+ }
2138
+ .col-lg-push-12 {
2139
+ left: 100%;
2140
+ }
2141
+ .col-lg-push-11 {
2142
+ left: 91.66666667%;
2143
+ }
2144
+ .col-lg-push-10 {
2145
+ left: 83.33333333%;
2146
+ }
2147
+ .col-lg-push-9 {
2148
+ left: 75%;
2149
+ }
2150
+ .col-lg-push-8 {
2151
+ left: 66.66666667%;
2152
+ }
2153
+ .col-lg-push-7 {
2154
+ left: 58.33333333%;
2155
+ }
2156
+ .col-lg-push-6 {
2157
+ left: 50%;
2158
+ }
2159
+ .col-lg-push-5 {
2160
+ left: 41.66666667%;
2161
+ }
2162
+ .col-lg-push-4 {
2163
+ left: 33.33333333%;
2164
+ }
2165
+ .col-lg-push-3 {
2166
+ left: 25%;
2167
+ }
2168
+ .col-lg-push-2 {
2169
+ left: 16.66666667%;
2170
+ }
2171
+ .col-lg-push-1 {
2172
+ left: 8.33333333%;
2173
+ }
2174
+ .col-lg-push-0 {
2175
+ left: auto;
2176
+ }
2177
+ .col-lg-offset-12 {
2178
+ margin-left: 100%;
2179
+ }
2180
+ .col-lg-offset-11 {
2181
+ margin-left: 91.66666667%;
2182
+ }
2183
+ .col-lg-offset-10 {
2184
+ margin-left: 83.33333333%;
2185
+ }
2186
+ .col-lg-offset-9 {
2187
+ margin-left: 75%;
2188
+ }
2189
+ .col-lg-offset-8 {
2190
+ margin-left: 66.66666667%;
2191
+ }
2192
+ .col-lg-offset-7 {
2193
+ margin-left: 58.33333333%;
2194
+ }
2195
+ .col-lg-offset-6 {
2196
+ margin-left: 50%;
2197
+ }
2198
+ .col-lg-offset-5 {
2199
+ margin-left: 41.66666667%;
2200
+ }
2201
+ .col-lg-offset-4 {
2202
+ margin-left: 33.33333333%;
2203
+ }
2204
+ .col-lg-offset-3 {
2205
+ margin-left: 25%;
2206
+ }
2207
+ .col-lg-offset-2 {
2208
+ margin-left: 16.66666667%;
2209
+ }
2210
+ .col-lg-offset-1 {
2211
+ margin-left: 8.33333333%;
2212
+ }
2213
+ .col-lg-offset-0 {
2214
+ margin-left: 0;
2215
+ }
2216
+ }
2217
+ table {
2218
+ background-color: transparent;
2219
+ }
2220
+ caption {
2221
+ padding-top: 8px;
2222
+ padding-bottom: 8px;
2223
+ color: #777;
2224
+ text-align: left;
2225
+ }
2226
+
2227
+ .table {
2228
+ width: 100%;
2229
+ max-width: 100%;
2230
+ margin-bottom: 20px;
2231
+ }
2232
+ .table > thead > tr > th,
2233
+ .table > tbody > tr > th,
2234
+ .table > tfoot > tr > th,
2235
+ .table > thead > tr > td,
2236
+ .table > tbody > tr > td,
2237
+ .table > tfoot > tr > td {
2238
+ padding: 8px;
2239
+ line-height: 1.42857143;
2240
+ vertical-align: top;
2241
+ border-top: 1px solid #ddd;
2242
+ }
2243
+ .table > thead > tr > th {
2244
+ vertical-align: bottom;
2245
+ border-bottom: 2px solid #ddd;
2246
+ }
2247
+ .table > caption + thead > tr:first-child > th,
2248
+ .table > colgroup + thead > tr:first-child > th,
2249
+ .table > thead:first-child > tr:first-child > th,
2250
+ .table > caption + thead > tr:first-child > td,
2251
+ .table > colgroup + thead > tr:first-child > td,
2252
+ .table > thead:first-child > tr:first-child > td {
2253
+ border-top: 0;
2254
+ }
2255
+ .table > tbody + tbody {
2256
+ border-top: 2px solid #ddd;
2257
+ }
2258
+ .table .table {
2259
+ background-color: #fff;
2260
+ }
2261
+
2262
+ .table-bordered {
2263
+ border: 1px solid #ddd;
2264
+ }
2265
+ .table-bordered > thead > tr > th,
2266
+ .table-bordered > tbody > tr > th,
2267
+ .table-bordered > tfoot > tr > th,
2268
+ .table-bordered > thead > tr > td,
2269
+ .table-bordered > tbody > tr > td,
2270
+ .table-bordered > tfoot > tr > td {
2271
+ border: 1px solid #ddd;
2272
+ }
2273
+ .table-bordered > thead > tr > th,
2274
+ .table-bordered > thead > tr > td {
2275
+ border-bottom-width: 2px;
2276
+ }
2277
+ .table-striped > tbody > tr:nth-of-type(odd) {
2278
+ background-color: #f9f9f9;
2279
+ }
2280
+ .table-hover > tbody > tr:hover {
2281
+ background-color: #f5f5f5;
2282
+ }
2283
+ table col[class*="col-"] {
2284
+ position: static;
2285
+ display: table-column;
2286
+ float: none;
2287
+ }
2288
+ table td[class*="col-"],
2289
+ table th[class*="col-"] {
2290
+ position: static;
2291
+ display: table-cell;
2292
+ float: none;
2293
+ }
2294
+ .table > thead > tr > td.active,
2295
+ .table > tbody > tr > td.active,
2296
+ .table > tfoot > tr > td.active,
2297
+ .table > thead > tr > th.active,
2298
+ .table > tbody > tr > th.active,
2299
+ .table > tfoot > tr > th.active,
2300
+ .table > thead > tr.active > td,
2301
+ .table > tbody > tr.active > td,
2302
+ .table > tfoot > tr.active > td,
2303
+ .table > thead > tr.active > th,
2304
+ .table > tbody > tr.active > th,
2305
+ .table > tfoot > tr.active > th {
2306
+ background-color: #f5f5f5;
2307
+ }
2308
+ .table-hover > tbody > tr > td.active:hover,
2309
+ .table-hover > tbody > tr > th.active:hover,
2310
+ .table-hover > tbody > tr.active:hover > td,
2311
+ .table-hover > tbody > tr:hover > .active,
2312
+ .table-hover > tbody > tr.active:hover > th {
2313
+ background-color: #e8e8e8;
2314
+ }
2315
+ .table > thead > tr > td.success,
2316
+ .table > tbody > tr > td.success,
2317
+ .table > tfoot > tr > td.success,
2318
+ .table > thead > tr > th.success,
2319
+ .table > tbody > tr > th.success,
2320
+ .table > tfoot > tr > th.success,
2321
+ .table > thead > tr.success > td,
2322
+ .table > tbody > tr.success > td,
2323
+ .table > tfoot > tr.success > td,
2324
+ .table > thead > tr.success > th,
2325
+ .table > tbody > tr.success > th,
2326
+ .table > tfoot > tr.success > th {
2327
+ background-color: #dff0d8;
2328
+ }
2329
+ .table-hover > tbody > tr > td.success:hover,
2330
+ .table-hover > tbody > tr > th.success:hover,
2331
+ .table-hover > tbody > tr.success:hover > td,
2332
+ .table-hover > tbody > tr:hover > .success,
2333
+ .table-hover > tbody > tr.success:hover > th {
2334
+ background-color: #d0e9c6;
2335
+ }
2336
+ .table > thead > tr > td.info,
2337
+ .table > tbody > tr > td.info,
2338
+ .table > tfoot > tr > td.info,
2339
+ .table > thead > tr > th.info,
2340
+ .table > tbody > tr > th.info,
2341
+ .table > tfoot > tr > th.info,
2342
+ .table > thead > tr.info > td,
2343
+ .table > tbody > tr.info > td,
2344
+ .table > tfoot > tr.info > td,
2345
+ .table > thead > tr.info > th,
2346
+ .table > tbody > tr.info > th,
2347
+ .table > tfoot > tr.info > th {
2348
+ background-color: #d9edf7;
2349
+ }
2350
+ .table-hover > tbody > tr > td.info:hover,
2351
+ .table-hover > tbody > tr > th.info:hover,
2352
+ .table-hover > tbody > tr.info:hover > td,
2353
+ .table-hover > tbody > tr:hover > .info,
2354
+ .table-hover > tbody > tr.info:hover > th {
2355
+ background-color: #c4e3f3;
2356
+ }
2357
+ .table > thead > tr > td.warning,
2358
+ .table > tbody > tr > td.warning,
2359
+ .table > tfoot > tr > td.warning,
2360
+ .table > thead > tr > th.warning,
2361
+ .table > tbody > tr > th.warning,
2362
+ .table > tfoot > tr > th.warning,
2363
+ .table > thead > tr.warning > td,
2364
+ .table > tbody > tr.warning > td,
2365
+ .table > tfoot > tr.warning > td,
2366
+ .table > thead > tr.warning > th,
2367
+ .table > tbody > tr.warning > th,
2368
+ .table > tfoot > tr.warning > th {
2369
+ background-color: #fcf8e3;
2370
+ }
2371
+ .table-hover > tbody > tr > td.warning:hover,
2372
+ .table-hover > tbody > tr > th.warning:hover,
2373
+ .table-hover > tbody > tr.warning:hover > td,
2374
+ .table-hover > tbody > tr:hover > .warning,
2375
+ .table-hover > tbody > tr.warning:hover > th {
2376
+ background-color: #faf2cc;
2377
+ }
2378
+ .table > thead > tr > td.danger,
2379
+ .table > tbody > tr > td.danger,
2380
+ .table > tfoot > tr > td.danger,
2381
+ .table > thead > tr > th.danger,
2382
+ .table > tbody > tr > th.danger,
2383
+ .table > tfoot > tr > th.danger,
2384
+ .table > thead > tr.danger > td,
2385
+ .table > tbody > tr.danger > td,
2386
+ .table > tfoot > tr.danger > td,
2387
+ .table > thead > tr.danger > th,
2388
+ .table > tbody > tr.danger > th,
2389
+ .table > tfoot > tr.danger > th {
2390
+ background-color: #f2dede;
2391
+ }
2392
+ .table-hover > tbody > tr > td.danger:hover,
2393
+ .table-hover > tbody > tr > th.danger:hover,
2394
+ .table-hover > tbody > tr.danger:hover > td,
2395
+ .table-hover > tbody > tr:hover > .danger,
2396
+ .table-hover > tbody > tr.danger:hover > th {
2397
+ background-color: #ebcccc;
2398
+ }
2399
+ .table-responsive {
2400
+ min-height: .01%;
2401
+ overflow-x: auto;
2402
+ }
2403
+ @media screen and (max-width: 767px) {
2404
+ .table-responsive {
2405
+ width: 100%;
2406
+ margin-bottom: 15px;
2407
+ overflow-y: hidden;
2408
+ -ms-overflow-style: -ms-autohiding-scrollbar;
2409
+ border: 1px solid #ddd;
2410
+ }
2411
+ .table-responsive > .table {
2412
+ margin-bottom: 0;
2413
+ }
2414
+ .table-responsive > .table > thead > tr > th,
2415
+ .table-responsive > .table > tbody > tr > th,
2416
+ .table-responsive > .table > tfoot > tr > th,
2417
+ .table-responsive > .table > thead > tr > td,
2418
+ .table-responsive > .table > tbody > tr > td,
2419
+ .table-responsive > .table > tfoot > tr > td {
2420
+ white-space: nowrap;
2421
+ }
2422
+ .table-responsive > .table-bordered {
2423
+ border: 0;
2424
+ }
2425
+ .table-responsive > .table-bordered > thead > tr > th:first-child,
2426
+ .table-responsive > .table-bordered > tbody > tr > th:first-child,
2427
+ .table-responsive > .table-bordered > tfoot > tr > th:first-child,
2428
+ .table-responsive > .table-bordered > thead > tr > td:first-child,
2429
+ .table-responsive > .table-bordered > tbody > tr > td:first-child,
2430
+ .table-responsive > .table-bordered > tfoot > tr > td:first-child {
2431
+ border-left: 0;
2432
+ }
2433
+ .table-responsive > .table-bordered > thead > tr > th:last-child,
2434
+ .table-responsive > .table-bordered > tbody > tr > th:last-child,
2435
+ .table-responsive > .table-bordered > tfoot > tr > th:last-child,
2436
+ .table-responsive > .table-bordered > thead > tr > td:last-child,
2437
+ .table-responsive > .table-bordered > tbody > tr > td:last-child,
2438
+ .table-responsive > .table-bordered > tfoot > tr > td:last-child {
2439
+ border-right: 0;
2440
+ }
2441
+ .table-responsive > .table-bordered > tbody > tr:last-child > th,
2442
+ .table-responsive > .table-bordered > tfoot > tr:last-child > th,
2443
+ .table-responsive > .table-bordered > tbody > tr:last-child > td,
2444
+ .table-responsive > .table-bordered > tfoot > tr:last-child > td {
2445
+ border-bottom: 0;
2446
+ }
2447
+ }
2448
+ fieldset {
2449
+ min-width: 0;
2450
+ padding: 0;
2451
+ margin: 0;
2452
+ border: 0;
2453
+ }
2454
+ legend {
2455
+ display: block;
2456
+ width: 100%;
2457
+ padding: 0;
2458
+ margin-bottom: 20px;
2459
+ font-size: 21px;
2460
+ line-height: inherit;
2461
+ color: #333;
2462
+ border: 0;
2463
+ border-bottom: 1px solid #e5e5e5;
2464
+ }
2465
+ label {
2466
+ display: inline-block;
2467
+ max-width: 100%;
2468
+ margin-bottom: 5px;
2469
+ }
2470
+ input[type="search"] {
2471
+ -webkit-box-sizing: border-box;
2472
+ -moz-box-sizing: border-box;
2473
+ box-sizing: border-box;
2474
+ }
2475
+ input[type="radio"],
2476
+ input[type="checkbox"] {
2477
+ //margin: 4px 0 0;
2478
+ margin-top: 1px \9;
2479
+ line-height: normal;
2480
+ }
2481
+ input[type="file"] {
2482
+ display: block;
2483
+ }
2484
+ input[type="range"] {
2485
+ display: block;
2486
+ width: 100%;
2487
+ }
2488
+ select[multiple],
2489
+ select[size] {
2490
+ height: auto;
2491
+ }
2492
+ input[type="file"]:focus,
2493
+ input[type="radio"]:focus,
2494
+ input[type="checkbox"]:focus {
2495
+ /* outline: thin dotted;
2496
+ outline: 5px auto -webkit-focus-ring-color;
2497
+ outline-offset: -2px; */
2498
+ }
2499
+ output {
2500
+ display: block;
2501
+ padding-top: 7px;
2502
+ font-size: 14px;
2503
+ line-height: 1.42857143;
2504
+ color: #555;
2505
+ }
2506
+ .form-control {
2507
+ display: block;
2508
+ width: 100%;
2509
+ height: 34px;
2510
+ padding: 6px 12px;
2511
+ font-size: 14px;
2512
+ line-height: 1.42857143;
2513
+ color: #555;
2514
+ background-color: #fff;
2515
+ background-image: none;
2516
+ border: 1px solid #ccc;
2517
+ border-radius: 4px;
2518
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
2519
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
2520
+ -webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;
2521
+ -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
2522
+ transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
2523
+ }
2524
+ .form-control:focus {
2525
+ border-color: #66afe9;
2526
+ outline: 0;
2527
+ -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);
2528
+ box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);
2529
+ }
2530
+ .form-control::-moz-placeholder {
2531
+ color: #999;
2532
+ opacity: 1;
2533
+ }
2534
+ .form-control:-ms-input-placeholder {
2535
+ color: #999;
2536
+ }
2537
+ .form-control::-webkit-input-placeholder {
2538
+ color: #999;
2539
+ }
2540
+ .form-control::-ms-expand {
2541
+ background-color: transparent;
2542
+ border: 0;
2543
+ }
2544
+ .form-control[disabled],
2545
+ .form-control[readonly],
2546
+ fieldset[disabled] .form-control {
2547
+ background-color: #eee;
2548
+ opacity: 1;
2549
+ }
2550
+ .form-control[disabled],
2551
+ fieldset[disabled] .form-control {
2552
+ cursor: not-allowed;
2553
+ }
2554
+ textarea.form-control {
2555
+ height: auto;
2556
+ }
2557
+ input[type="search"] {
2558
+ -webkit-appearance: none;
2559
+ }
2560
+ @media screen and (-webkit-min-device-pixel-ratio: 0) {
2561
+ input[type="date"].form-control,
2562
+ input[type="time"].form-control,
2563
+ input[type="datetime-local"].form-control,
2564
+ input[type="month"].form-control {
2565
+ line-height: 34px;
2566
+ }
2567
+ input[type="date"].input-sm,
2568
+ input[type="time"].input-sm,
2569
+ input[type="datetime-local"].input-sm,
2570
+ input[type="month"].input-sm,
2571
+ .input-group-sm input[type="date"],
2572
+ .input-group-sm input[type="time"],
2573
+ .input-group-sm input[type="datetime-local"],
2574
+ .input-group-sm input[type="month"] {
2575
+ line-height: 30px;
2576
+ }
2577
+ input[type="date"].input-lg,
2578
+ input[type="time"].input-lg,
2579
+ input[type="datetime-local"].input-lg,
2580
+ input[type="month"].input-lg,
2581
+ .input-group-lg input[type="date"],
2582
+ .input-group-lg input[type="time"],
2583
+ .input-group-lg input[type="datetime-local"],
2584
+ .input-group-lg input[type="month"] {
2585
+ line-height: 46px;
2586
+ }
2587
+ }
2588
+ .form-group {
2589
+ margin-bottom: 15px;
2590
+ }
2591
+ .radio,
2592
+ .checkbox {
2593
+ position: relative;
2594
+ display: block;
2595
+ margin-top: 10px;
2596
+ margin-bottom: 10px;
2597
+ }
2598
+ .radio label,
2599
+ .checkbox label {
2600
+ min-height: 20px;
2601
+ padding-left: 20px;
2602
+ margin-bottom: 0;
2603
+ font-weight: normal;
2604
+ cursor: pointer;
2605
+ }
2606
+ .radio input[type="radio"],
2607
+ .radio-inline input[type="radio"],
2608
+ .checkbox input[type="checkbox"],
2609
+ .checkbox-inline input[type="checkbox"] {
2610
+ }
2611
+ .radio + .radio,
2612
+ .checkbox + .checkbox {
2613
+ margin-top: -5px;
2614
+ }
2615
+ .radio-inline,
2616
+ .checkbox-inline {
2617
+ position: relative;
2618
+ display: inline-block;
2619
+ padding-left: 20px;
2620
+ margin-bottom: 0;
2621
+ font-weight: normal;
2622
+ vertical-align: middle;
2623
+ cursor: pointer;
2624
+ }
2625
+ .radio-inline + .radio-inline,
2626
+ .checkbox-inline + .checkbox-inline {
2627
+ margin-top: 0;
2628
+ margin-left: 10px;
2629
+ }
2630
+ input[type="radio"][disabled],
2631
+ input[type="checkbox"][disabled],
2632
+ input[type="radio"].disabled,
2633
+ input[type="checkbox"].disabled,
2634
+ fieldset[disabled] input[type="radio"],
2635
+ fieldset[disabled] input[type="checkbox"] {
2636
+ cursor: not-allowed;
2637
+ }
2638
+ .radio-inline.disabled,
2639
+ .checkbox-inline.disabled,
2640
+ fieldset[disabled] .radio-inline,
2641
+ fieldset[disabled] .checkbox-inline {
2642
+ cursor: not-allowed;
2643
+ }
2644
+ .radio.disabled label,
2645
+ .checkbox.disabled label,
2646
+ fieldset[disabled] .radio label,
2647
+ fieldset[disabled] .checkbox label {
2648
+ cursor: not-allowed;
2649
+ }
2650
+ .form-control-static {
2651
+ min-height: 34px;
2652
+ padding-top: 7px;
2653
+ padding-bottom: 7px;
2654
+ margin-bottom: 0;
2655
+ }
2656
+ .form-control-static.input-lg,
2657
+ .form-control-static.input-sm {
2658
+ padding-right: 0;
2659
+ padding-left: 0;
2660
+ }
2661
+ .input-sm {
2662
+ height: 30px;
2663
+ padding: 5px 10px;
2664
+ font-size: 12px;
2665
+ line-height: 1.5;
2666
+ border-radius: 3px;
2667
+ }
2668
+ select.input-sm {
2669
+ height: 30px;
2670
+ line-height: 30px;
2671
+ }
2672
+ textarea.input-sm,
2673
+ select[multiple].input-sm {
2674
+ height: auto;
2675
+ }
2676
+ .form-group-sm .form-control {
2677
+ height: 30px;
2678
+ padding: 5px 10px;
2679
+ font-size: 12px;
2680
+ line-height: 1.5;
2681
+ border-radius: 3px;
2682
+ }
2683
+ .form-group-sm select.form-control {
2684
+ height: 30px;
2685
+ line-height: 30px;
2686
+ }
2687
+ .form-group-sm textarea.form-control,
2688
+ .form-group-sm select[multiple].form-control {
2689
+ height: auto;
2690
+ }
2691
+ .form-group-sm .form-control-static {
2692
+ height: 30px;
2693
+ min-height: 32px;
2694
+ padding: 6px 10px;
2695
+ font-size: 12px;
2696
+ line-height: 1.5;
2697
+ }
2698
+ .input-lg {
2699
+ height: 46px;
2700
+ padding: 10px 16px;
2701
+ font-size: 18px;
2702
+ line-height: 1.3333333;
2703
+ border-radius: 6px;
2704
+ }
2705
+ select.input-lg {
2706
+ height: 46px;
2707
+ line-height: 46px;
2708
+ }
2709
+ textarea.input-lg,
2710
+ select[multiple].input-lg {
2711
+ height: auto;
2712
+ }
2713
+ .form-group-lg .form-control {
2714
+ height: 46px;
2715
+ padding: 10px 16px;
2716
+ font-size: 18px;
2717
+ line-height: 1.3333333;
2718
+ border-radius: 6px;
2719
+ }
2720
+ .form-group-lg select.form-control {
2721
+ height: 46px;
2722
+ line-height: 46px;
2723
+ }
2724
+ .form-group-lg textarea.form-control,
2725
+ .form-group-lg select[multiple].form-control {
2726
+ height: auto;
2727
+ }
2728
+ .form-group-lg .form-control-static {
2729
+ height: 46px;
2730
+ min-height: 38px;
2731
+ padding: 11px 16px;
2732
+ font-size: 18px;
2733
+ line-height: 1.3333333;
2734
+ }
2735
+ .has-feedback {
2736
+ position: relative;
2737
+ }
2738
+ .has-feedback .form-control {
2739
+ padding-right: 42.5px;
2740
+ }
2741
+ .form-control-feedback {
2742
+ position: absolute;
2743
+ top: 0;
2744
+ right: 0;
2745
+ z-index: 2;
2746
+ display: block;
2747
+ width: 34px;
2748
+ height: 34px;
2749
+ line-height: 34px;
2750
+ text-align: center;
2751
+ pointer-events: none;
2752
+ }
2753
+ .input-lg + .form-control-feedback,
2754
+ .input-group-lg + .form-control-feedback,
2755
+ .form-group-lg .form-control + .form-control-feedback {
2756
+ width: 46px;
2757
+ height: 46px;
2758
+ line-height: 46px;
2759
+ }
2760
+ .input-sm + .form-control-feedback,
2761
+ .input-group-sm + .form-control-feedback,
2762
+ .form-group-sm .form-control + .form-control-feedback {
2763
+ width: 30px;
2764
+ height: 30px;
2765
+ line-height: 30px;
2766
+ }
2767
+ .has-success .help-block,
2768
+ .has-success .control-label,
2769
+ .has-success .radio,
2770
+ .has-success .checkbox,
2771
+ .has-success .radio-inline,
2772
+ .has-success .checkbox-inline,
2773
+ .has-success.radio label,
2774
+ .has-success.checkbox label,
2775
+ .has-success.radio-inline label,
2776
+ .has-success.checkbox-inline label {
2777
+ color: #3c763d;
2778
+ }
2779
+ .has-success .form-control {
2780
+ border-color: #3c763d;
2781
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
2782
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
2783
+ }
2784
+ .has-success .form-control:focus {
2785
+ border-color: #2b542c;
2786
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168;
2787
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168;
2788
+ }
2789
+ .has-success .input-group-addon {
2790
+ color: #3c763d;
2791
+ background-color: #dff0d8;
2792
+ border-color: #3c763d;
2793
+ }
2794
+ .has-success .form-control-feedback {
2795
+ color: #3c763d;
2796
+ }
2797
+ .has-warning .help-block,
2798
+ .has-warning .control-label,
2799
+ .has-warning .radio,
2800
+ .has-warning .checkbox,
2801
+ .has-warning .radio-inline,
2802
+ .has-warning .checkbox-inline,
2803
+ .has-warning.radio label,
2804
+ .has-warning.checkbox label,
2805
+ .has-warning.radio-inline label,
2806
+ .has-warning.checkbox-inline label {
2807
+ color: #8a6d3b;
2808
+ }
2809
+ .has-warning .form-control {
2810
+ border-color: #8a6d3b;
2811
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
2812
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
2813
+ }
2814
+ .has-warning .form-control:focus {
2815
+ border-color: #66512c;
2816
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b;
2817
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b;
2818
+ }
2819
+ .has-warning .input-group-addon {
2820
+ color: #8a6d3b;
2821
+ background-color: #fcf8e3;
2822
+ border-color: #8a6d3b;
2823
+ }
2824
+ .has-warning .form-control-feedback {
2825
+ color: #8a6d3b;
2826
+ }
2827
+ .has-error .help-block,
2828
+ .has-error .control-label,
2829
+ .has-error .radio,
2830
+ .has-error .checkbox,
2831
+ .has-error .radio-inline,
2832
+ .has-error .checkbox-inline,
2833
+ .has-error.radio label,
2834
+ .has-error.checkbox label,
2835
+ .has-error.radio-inline label,
2836
+ .has-error.checkbox-inline label {
2837
+ color: #a94442;
2838
+ }
2839
+ .has-error .form-control {
2840
+ border-color: #a94442;
2841
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
2842
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
2843
+ }
2844
+ .has-error .form-control:focus {
2845
+ border-color: #843534;
2846
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483;
2847
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483;
2848
+ }
2849
+ .has-error .input-group-addon {
2850
+ color: #a94442;
2851
+ background-color: #f2dede;
2852
+ border-color: #a94442;
2853
+ }
2854
+ .has-error .form-control-feedback {
2855
+ color: #a94442;
2856
+ }
2857
+ .has-feedback label ~ .form-control-feedback {
2858
+ top: 25px;
2859
+ }
2860
+ .has-feedback label.sr-only ~ .form-control-feedback {
2861
+ top: 0;
2862
+ }
2863
+ .help-block {
2864
+ display: block;
2865
+ margin-top: 5px;
2866
+ margin-bottom: 10px;
2867
+ color: #737373;
2868
+ }
2869
+ @media (min-width: 768px) {
2870
+ .form-inline .form-group {
2871
+ display: inline-block;
2872
+ margin-bottom: 0;
2873
+ vertical-align: middle;
2874
+ }
2875
+ .form-inline .form-control {
2876
+ display: inline-block;
2877
+ width: auto;
2878
+ vertical-align: middle;
2879
+ }
2880
+ .form-inline .form-control-static {
2881
+ display: inline-block;
2882
+ }
2883
+ .form-inline .input-group {
2884
+ display: inline-table;
2885
+ vertical-align: middle;
2886
+ }
2887
+ .form-inline .input-group .input-group-addon,
2888
+ .form-inline .input-group .input-group-btn,
2889
+ .form-inline .input-group .form-control {
2890
+ width: auto;
2891
+ }
2892
+ .form-inline .input-group > .form-control {
2893
+ width: 100%;
2894
+ }
2895
+ .form-inline .control-label {
2896
+ margin-bottom: 0;
2897
+ vertical-align: middle;
2898
+ }
2899
+ .form-inline .radio,
2900
+ .form-inline .checkbox {
2901
+ display: inline-block;
2902
+ margin-top: 0;
2903
+ margin-bottom: 0;
2904
+ vertical-align: middle;
2905
+ }
2906
+ .form-inline .radio label,
2907
+ .form-inline .checkbox label {
2908
+ padding-left: 0;
2909
+ }
2910
+ .form-inline .radio input[type="radio"],
2911
+ .form-inline .checkbox input[type="checkbox"] {
2912
+ position: relative;
2913
+ margin-left: 0;
2914
+ }
2915
+ .form-inline .has-feedback .form-control-feedback {
2916
+ top: 0;
2917
+ }
2918
+ }
2919
+ .form-horizontal .radio,
2920
+ .form-horizontal .checkbox,
2921
+ .form-horizontal .radio-inline,
2922
+ .form-horizontal .checkbox-inline {
2923
+ padding-top: 7px;
2924
+ margin-top: 0;
2925
+ margin-bottom: 0;
2926
+ }
2927
+ .form-horizontal .radio,
2928
+ .form-horizontal .checkbox {
2929
+ min-height: 27px;
2930
+ }
2931
+ .form-horizontal .form-group {
2932
+ margin-right: -15px;
2933
+ margin-left: -15px;
2934
+ }
2935
+ @media (min-width: 768px) {
2936
+ .form-horizontal .control-label {
2937
+ padding-top: 7px;
2938
+ margin-bottom: 0;
2939
+ text-align: right;
2940
+ }
2941
+ }
2942
+ .form-horizontal .has-feedback .form-control-feedback {
2943
+ right: 15px;
2944
+ }
2945
+ @media (min-width: 768px) {
2946
+ .form-horizontal .form-group-lg .control-label {
2947
+ padding-top: 11px;
2948
+ font-size: 18px;
2949
+ }
2950
+ }
2951
+ @media (min-width: 768px) {
2952
+ .form-horizontal .form-group-sm .control-label {
2953
+ padding-top: 6px;
2954
+ font-size: 12px;
2955
+ }
2956
+ }
2957
+ .btn {
2958
+ display: inline-block;
2959
+ padding: 2px 5px 2px 2px;
2960
+ line-height: 30px;
2961
+ height: 30px !important;
2962
+ width: 100%;
2963
+ margin-bottom: 0;
2964
+ font-size: 14px;
2965
+ font-weight: normal;
2966
+ line-height: 1.42857143;
2967
+ text-align: center;
2968
+ white-space: nowrap;
2969
+ vertical-align: middle;
2970
+ -ms-touch-action: manipulation;
2971
+ touch-action: manipulation;
2972
+ cursor: pointer;
2973
+ -webkit-user-select: none;
2974
+ -moz-user-select: none;
2975
+ -ms-user-select: none;
2976
+ user-select: none;
2977
+ background-image: none;
2978
+ border: 1px solid transparent;
2979
+ //border-radius: 4px;
2980
+ }
2981
+ .btn:focus,
2982
+ .btn:active:focus,
2983
+ .btn.active:focus,
2984
+ .btn.focus,
2985
+ .btn:active.focus,
2986
+ .btn.active.focus {
2987
+ outline: thin dotted;
2988
+ outline: 5px auto -webkit-focus-ring-color;
2989
+ outline-offset: -2px;
2990
+ }
2991
+ .btn:hover,
2992
+ .btn:focus,
2993
+ .btn.focus {
2994
+ color: #333;
2995
+ text-decoration: none;
2996
+ }
2997
+ .btn:active,
2998
+ .btn.active {
2999
+ background-image: none;
3000
+ outline: 0;
3001
+ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
3002
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
3003
+ }
3004
+ .btn.disabled,
3005
+ .btn[disabled],
3006
+ fieldset[disabled] .btn {
3007
+ cursor: not-allowed;
3008
+ filter: alpha(opacity=65);
3009
+ -webkit-box-shadow: none;
3010
+ box-shadow: none;
3011
+ opacity: .65;
3012
+ }
3013
+ a.btn.disabled,
3014
+ fieldset[disabled] a.btn {
3015
+ pointer-events: none;
3016
+ }
3017
+ .btn-default {
3018
+ color: #333;
3019
+ background-color: #fff;
3020
+ border-color: #ccc;
3021
+ }
3022
+ .btn-default:focus,
3023
+ .btn-default.focus {
3024
+ color: #333;
3025
+ background-color: #e6e6e6;
3026
+ border-color: #8c8c8c;
3027
+ }
3028
+ /* .btn-default:hover {
3029
+ color: #333;
3030
+ background-color: #e6e6e6;
3031
+ border-color: #adadad;
3032
+ } */
3033
+ .btn-default:active,
3034
+ .btn-default.active,
3035
+ .open > .dropdown-toggle.btn-default {
3036
+ color: #333;
3037
+ background-color: #e6e6e6;
3038
+ border-color: #adadad;
3039
+ }
3040
+ .btn-default:active:hover,
3041
+ .btn-default.active:hover,
3042
+
3043
+ .btn-default:active:focus,
3044
+ .btn-default.active:focus,
3045
+ .open > .dropdown-toggle.btn-default:focus,
3046
+ .btn-default:active.focus,
3047
+ .btn-default.active.focus,
3048
+ .open > .dropdown-toggle.btn-default.focus {
3049
+ color: #333;
3050
+ background-color: #d4d4d4;
3051
+ border-color: #8c8c8c;
3052
+ }
3053
+ .btn-default:active,
3054
+ .btn-default.active,
3055
+ .open > .dropdown-toggle.btn-default {
3056
+ background-image: none;
3057
+ }
3058
+ .btn-default.disabled:hover,
3059
+ .btn-default[disabled]:hover,
3060
+ fieldset[disabled] .btn-default:hover,
3061
+ .btn-default.disabled:focus,
3062
+ .btn-default[disabled]:focus,
3063
+ fieldset[disabled] .btn-default:focus,
3064
+ .btn-default.disabled.focus,
3065
+ .btn-default[disabled].focus,
3066
+ fieldset[disabled] .btn-default.focus {
3067
+ background-color: #fff;
3068
+ border-color: #ccc;
3069
+ }
3070
+ .btn-default .badge {
3071
+ color: #fff;
3072
+ background-color: #333;
3073
+ }
3074
+ .btn-primary {
3075
+ color: #fff;
3076
+ background-color: #337ab7;
3077
+ border-color: #2e6da4;
3078
+ }
3079
+ .btn-primary:focus,
3080
+ .btn-primary.focus {
3081
+ color: #fff;
3082
+ background-color: #286090;
3083
+ border-color: #122b40;
3084
+ }
3085
+ .btn-primary:hover {
3086
+ color: #fff;
3087
+ background-color: #286090;
3088
+ border-color: #204d74;
3089
+ }
3090
+ .btn-primary:active,
3091
+ .btn-primary.active,
3092
+ .open > .dropdown-toggle.btn-primary {
3093
+ color: #fff;
3094
+ background-color: #286090;
3095
+ border-color: #204d74;
3096
+ }
3097
+ .btn-primary:active:hover,
3098
+ .btn-primary.active:hover,
3099
+ .open > .dropdown-toggle.btn-primary:hover,
3100
+ .btn-primary:active:focus,
3101
+ .btn-primary.active:focus,
3102
+ .open > .dropdown-toggle.btn-primary:focus,
3103
+ .btn-primary:active.focus,
3104
+ .btn-primary.active.focus,
3105
+ .open > .dropdown-toggle.btn-primary.focus {
3106
+ color: #fff;
3107
+ background-color: #204d74;
3108
+ border-color: #122b40;
3109
+ }
3110
+ .btn-primary:active,
3111
+ .btn-primary.active,
3112
+ .open > .dropdown-toggle.btn-primary {
3113
+ background-image: none;
3114
+ }
3115
+ .btn-primary.disabled:hover,
3116
+ .btn-primary[disabled]:hover,
3117
+ fieldset[disabled] .btn-primary:hover,
3118
+ .btn-primary.disabled:focus,
3119
+ .btn-primary[disabled]:focus,
3120
+ fieldset[disabled] .btn-primary:focus,
3121
+ .btn-primary.disabled.focus,
3122
+ .btn-primary[disabled].focus,
3123
+ fieldset[disabled] .btn-primary.focus {
3124
+ background-color: #337ab7;
3125
+ border-color: #2e6da4;
3126
+ }
3127
+ .btn-primary .badge {
3128
+ color: #337ab7;
3129
+ background-color: #fff;
3130
+ }
3131
+ .btn-success {
3132
+ color: #fff;
3133
+ background-color: #5cb85c;
3134
+ border-color: #4cae4c;
3135
+ }
3136
+ .btn-success:focus,
3137
+ .btn-success.focus {
3138
+ color: #fff;
3139
+ background-color: #449d44;
3140
+ border-color: #255625;
3141
+ }
3142
+ .btn-success:hover {
3143
+ color: #fff;
3144
+ background-color: #449d44;
3145
+ border-color: #398439;
3146
+ }
3147
+ .btn-success:active,
3148
+ .btn-success.active,
3149
+ .open > .dropdown-toggle.btn-success {
3150
+ color: #fff;
3151
+ background-color: #449d44;
3152
+ border-color: #398439;
3153
+ }
3154
+ .btn-success:active:hover,
3155
+ .btn-success.active:hover,
3156
+ .open > .dropdown-toggle.btn-success:hover,
3157
+ .btn-success:active:focus,
3158
+ .btn-success.active:focus,
3159
+ .open > .dropdown-toggle.btn-success:focus,
3160
+ .btn-success:active.focus,
3161
+ .btn-success.active.focus,
3162
+ .open > .dropdown-toggle.btn-success.focus {
3163
+ color: #fff;
3164
+ background-color: #398439;
3165
+ border-color: #255625;
3166
+ }
3167
+ .btn-success:active,
3168
+ .btn-success.active,
3169
+ .open > .dropdown-toggle.btn-success {
3170
+ background-image: none;
3171
+ }
3172
+ .btn-success.disabled:hover,
3173
+ .btn-success[disabled]:hover,
3174
+ fieldset[disabled] .btn-success:hover,
3175
+ .btn-success.disabled:focus,
3176
+ .btn-success[disabled]:focus,
3177
+ fieldset[disabled] .btn-success:focus,
3178
+ .btn-success.disabled.focus,
3179
+ .btn-success[disabled].focus,
3180
+ fieldset[disabled] .btn-success.focus {
3181
+ background-color: #5cb85c;
3182
+ border-color: #4cae4c;
3183
+ }
3184
+ .btn-success .badge {
3185
+ color: #5cb85c;
3186
+ background-color: #fff;
3187
+ }
3188
+ .btn-info {
3189
+ color: #fff;
3190
+ background-color: #5bc0de;
3191
+ border-color: #46b8da;
3192
+ }
3193
+ .btn-info:focus,
3194
+ .btn-info.focus {
3195
+ color: #fff;
3196
+ background-color: #31b0d5;
3197
+ border-color: #1b6d85;
3198
+ }
3199
+ .btn-info:hover {
3200
+ color: #fff;
3201
+ background-color: #31b0d5;
3202
+ border-color: #269abc;
3203
+ }
3204
+ .btn-info:active,
3205
+ .btn-info.active,
3206
+ .open > .dropdown-toggle.btn-info {
3207
+ color: #fff;
3208
+ background-color: #31b0d5;
3209
+ border-color: #269abc;
3210
+ }
3211
+ .btn-info:active:hover,
3212
+ .btn-info.active:hover,
3213
+ .open > .dropdown-toggle.btn-info:hover,
3214
+ .btn-info:active:focus,
3215
+ .btn-info.active:focus,
3216
+ .open > .dropdown-toggle.btn-info:focus,
3217
+ .btn-info:active.focus,
3218
+ .btn-info.active.focus,
3219
+ .open > .dropdown-toggle.btn-info.focus {
3220
+ color: #fff;
3221
+ background-color: #269abc;
3222
+ border-color: #1b6d85;
3223
+ }
3224
+ .btn-info:active,
3225
+ .btn-info.active,
3226
+ .open > .dropdown-toggle.btn-info {
3227
+ background-image: none;
3228
+ }
3229
+ .btn-info.disabled:hover,
3230
+ .btn-info[disabled]:hover,
3231
+ fieldset[disabled] .btn-info:hover,
3232
+ .btn-info.disabled:focus,
3233
+ .btn-info[disabled]:focus,
3234
+ fieldset[disabled] .btn-info:focus,
3235
+ .btn-info.disabled.focus,
3236
+ .btn-info[disabled].focus,
3237
+ fieldset[disabled] .btn-info.focus {
3238
+ background-color: #5bc0de;
3239
+ border-color: #46b8da;
3240
+ }
3241
+ .btn-info .badge {
3242
+ color: #5bc0de;
3243
+ background-color: #fff;
3244
+ }
3245
+ .btn-warning {
3246
+ color: #fff;
3247
+ background-color: #f0ad4e;
3248
+ border-color: #eea236;
3249
+ }
3250
+ .btn-warning:focus,
3251
+ .btn-warning.focus {
3252
+ color: #fff;
3253
+ background-color: #ec971f;
3254
+ border-color: #985f0d;
3255
+ }
3256
+ .btn-warning:hover {
3257
+ color: #fff;
3258
+ background-color: #ec971f;
3259
+ border-color: #d58512;
3260
+ }
3261
+ .btn-warning:active,
3262
+ .btn-warning.active,
3263
+ .open > .dropdown-toggle.btn-warning {
3264
+ color: #fff;
3265
+ background-color: #ec971f;
3266
+ border-color: #d58512;
3267
+ }
3268
+ .btn-warning:active:hover,
3269
+ .btn-warning.active:hover,
3270
+ .open > .dropdown-toggle.btn-warning:hover,
3271
+ .btn-warning:active:focus,
3272
+ .btn-warning.active:focus,
3273
+ .open > .dropdown-toggle.btn-warning:focus,
3274
+ .btn-warning:active.focus,
3275
+ .btn-warning.active.focus,
3276
+ .open > .dropdown-toggle.btn-warning.focus {
3277
+ color: #fff;
3278
+ background-color: #d58512;
3279
+ border-color: #985f0d;
3280
+ }
3281
+ .btn-warning:active,
3282
+ .btn-warning.active,
3283
+ .open > .dropdown-toggle.btn-warning {
3284
+ background-image: none;
3285
+ }
3286
+ .btn-warning.disabled:hover,
3287
+ .btn-warning[disabled]:hover,
3288
+ fieldset[disabled] .btn-warning:hover,
3289
+ .btn-warning.disabled:focus,
3290
+ .btn-warning[disabled]:focus,
3291
+ fieldset[disabled] .btn-warning:focus,
3292
+ .btn-warning.disabled.focus,
3293
+ .btn-warning[disabled].focus,
3294
+ fieldset[disabled] .btn-warning.focus {
3295
+ background-color: #f0ad4e;
3296
+ border-color: #eea236;
3297
+ }
3298
+ .btn-warning .badge {
3299
+ color: #f0ad4e;
3300
+ background-color: #fff;
3301
+ }
3302
+ .btn-danger {
3303
+ color: #fff;
3304
+ background-color: #d9534f;
3305
+ border-color: #d43f3a;
3306
+ }
3307
+ .btn-danger:focus,
3308
+ .btn-danger.focus {
3309
+ color: #fff;
3310
+ background-color: #c9302c;
3311
+ border-color: #761c19;
3312
+ }
3313
+ .btn-danger:hover {
3314
+ color: #fff;
3315
+ background-color: #c9302c;
3316
+ border-color: #ac2925;
3317
+ }
3318
+ .btn-danger:active,
3319
+ .btn-danger.active,
3320
+ .open > .dropdown-toggle.btn-danger {
3321
+ color: #fff;
3322
+ background-color: #c9302c;
3323
+ border-color: #ac2925;
3324
+ }
3325
+ .btn-danger:active:hover,
3326
+ .btn-danger.active:hover,
3327
+ .open > .dropdown-toggle.btn-danger:hover,
3328
+ .btn-danger:active:focus,
3329
+ .btn-danger.active:focus,
3330
+ .open > .dropdown-toggle.btn-danger:focus,
3331
+ .btn-danger:active.focus,
3332
+ .btn-danger.active.focus,
3333
+ .open > .dropdown-toggle.btn-danger.focus {
3334
+ color: #fff;
3335
+ background-color: #ac2925;
3336
+ border-color: #761c19;
3337
+ }
3338
+ .btn-danger:active,
3339
+ .btn-danger.active,
3340
+ .open > .dropdown-toggle.btn-danger {
3341
+ background-image: none;
3342
+ }
3343
+ .btn-danger.disabled:hover,
3344
+ .btn-danger[disabled]:hover,
3345
+ fieldset[disabled] .btn-danger:hover,
3346
+ .btn-danger.disabled:focus,
3347
+ .btn-danger[disabled]:focus,
3348
+ fieldset[disabled] .btn-danger:focus,
3349
+ .btn-danger.disabled.focus,
3350
+ .btn-danger[disabled].focus,
3351
+ fieldset[disabled] .btn-danger.focus {
3352
+ background-color: #d9534f;
3353
+ border-color: #d43f3a;
3354
+ }
3355
+ .btn-danger .badge {
3356
+ color: #d9534f;
3357
+ background-color: #fff;
3358
+ }
3359
+ .btn-link {
3360
+ font-weight: normal;
3361
+ color: #337ab7;
3362
+ border-radius: 0;
3363
+ }
3364
+ .btn-link,
3365
+ .btn-link:active,
3366
+ .btn-link.active,
3367
+ .btn-link[disabled],
3368
+ fieldset[disabled] .btn-link {
3369
+ background-color: transparent;
3370
+ -webkit-box-shadow: none;
3371
+ box-shadow: none;
3372
+ }
3373
+ .btn-link,
3374
+ .btn-link:hover,
3375
+ .btn-link:focus,
3376
+ .btn-link:active {
3377
+ border-color: transparent;
3378
+ }
3379
+ .btn-link:hover,
3380
+ .btn-link:focus {
3381
+ color: #23527c;
3382
+ text-decoration: underline;
3383
+ background-color: transparent;
3384
+ }
3385
+ .btn-link[disabled]:hover,
3386
+ fieldset[disabled] .btn-link:hover,
3387
+ .btn-link[disabled]:focus,
3388
+ fieldset[disabled] .btn-link:focus {
3389
+ color: #777;
3390
+ text-decoration: none;
3391
+ }
3392
+ .btn-lg,
3393
+ .btn-group-lg > .btn {
3394
+ padding: 10px 16px;
3395
+ font-size: 18px;
3396
+ line-height: 1.3333333;
3397
+ border-radius: 6px;
3398
+ }
3399
+ .btn-sm,
3400
+ .btn-group-sm > .btn {
3401
+ padding: 5px 10px;
3402
+ font-size: 12px;
3403
+ line-height: 1.5;
3404
+ border-radius: 3px;
3405
+ }
3406
+ .btn-xs,
3407
+ .btn-group-xs > .btn {
3408
+ padding: 1px 5px;
3409
+ font-size: 12px;
3410
+ line-height: 1.5;
3411
+ border-radius: 3px;
3412
+ }
3413
+ .btn-block {
3414
+ display: block;
3415
+ width: 100%;
3416
+ }
3417
+ .btn-block + .btn-block {
3418
+ margin-top: 5px;
3419
+ }
3420
+ input[type="submit"].btn-block,
3421
+ input[type="reset"].btn-block,
3422
+ input[type="button"].btn-block {
3423
+ width: 100%;
3424
+ }
3425
+
3426
+ .fade.in {
3427
+ opacity: 1;
3428
+ }
3429
+ .collapse {
3430
+ display: none;
3431
+ }
3432
+ .collapse.in {
3433
+ display: block;
3434
+ }
3435
+ tr.collapse.in {
3436
+ display: table-row;
3437
+ }
3438
+ tbody.collapse.in {
3439
+ display: table-row-group;
3440
+ }
3441
+ .collapsing {
3442
+ position: relative;
3443
+ height: 0;
3444
+ overflow: hidden;
3445
+ -webkit-transition-timing-function: ease;
3446
+ -o-transition-timing-function: ease;
3447
+ transition-timing-function: ease;
3448
+ -webkit-transition-duration: .35s;
3449
+ -o-transition-duration: .35s;
3450
+ transition-duration: .35s;
3451
+ -webkit-transition-property: height, visibility;
3452
+ -o-transition-property: height, visibility;
3453
+ transition-property: height, visibility;
3454
+ }
3455
+ .caret {
3456
+ display: inline-block;
3457
+ width: 0;
3458
+ height: 0;
3459
+ margin-left: 6px;
3460
+ vertical-align: middle;
3461
+ border-top: 4px dashed;
3462
+ border-top: 4px solid \9;
3463
+ border-right: 4px solid transparent;
3464
+ border-left: 4px solid transparent;
3465
+ }
3466
+ .dropup,
3467
+ .dropdown {
3468
+ position: relative;
3469
+ }
3470
+ .dropdown-toggle:focus {
3471
+ outline: 0;
3472
+ }
3473
+ .dropdown-menu {
3474
+ position: absolute;
3475
+ top: 100%;
3476
+ left: 0;
3477
+ z-index: 1000;
3478
+ display: none;
3479
+ float: left;
3480
+ min-width: 160px;
3481
+ padding: 5px 0;
3482
+ margin: 2px 0 0;
3483
+ font-size: 14px;
3484
+ text-align: left;
3485
+ list-style: none;
3486
+ background-color: #fff;
3487
+ -webkit-background-clip: padding-box;
3488
+ background-clip: padding-box;
3489
+ border: 1px solid #ccc;
3490
+ border: 1px solid rgba(0, 0, 0, .15);
3491
+ border-radius: 4px;
3492
+ -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175);
3493
+ box-shadow: 0 6px 12px rgba(0, 0, 0, .175);
3494
+ }
3495
+ .dropdown-menu.pull-right {
3496
+ right: 0;
3497
+ left: auto;
3498
+ }
3499
+ .dropdown-menu .divider {
3500
+ height: 1px;
3501
+ margin: 9px 0;
3502
+ overflow: hidden;
3503
+ background-color: #e5e5e5;
3504
+ }
3505
+ .dropdown-menu > li > a {
3506
+ display: block;
3507
+ padding: 3px 20px;
3508
+ clear: both;
3509
+ font-weight: normal;
3510
+ line-height: 1.42857143;
3511
+ color: #333;
3512
+ white-space: nowrap;
3513
+ }
3514
+ .dropdown-menu > li > a:hover,
3515
+ .dropdown-menu > li > a:focus {
3516
+ color: #262626;
3517
+ text-decoration: none;
3518
+ background-color: #f5f5f5;
3519
+ }
3520
+ .dropdown-menu > .active > a,
3521
+ .dropdown-menu > .active > a:hover,
3522
+ .dropdown-menu > .active > a:focus {
3523
+ color: #fff;
3524
+ text-decoration: none;
3525
+ background-color: #337ab7;
3526
+ outline: 0;
3527
+ }
3528
+ .dropdown-menu > .disabled > a,
3529
+ .dropdown-menu > .disabled > a:hover,
3530
+ .dropdown-menu > .disabled > a:focus {
3531
+ color: #777;
3532
+ }
3533
+ .dropdown-menu > .disabled > a:hover,
3534
+ .dropdown-menu > .disabled > a:focus {
3535
+ text-decoration: none;
3536
+ cursor: not-allowed;
3537
+ background-color: transparent;
3538
+ background-image: none;
3539
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
3540
+ }
3541
+ .open > .dropdown-menu {
3542
+ display: block;
3543
+ }
3544
+ .open > a {
3545
+ outline: 0;
3546
+ }
3547
+ .dropdown-menu-right {
3548
+ right: 0;
3549
+ left: auto;
3550
+ }
3551
+ .dropdown-menu-left {
3552
+ right: auto;
3553
+ left: 0;
3554
+ }
3555
+ .dropdown-header {
3556
+ display: block;
3557
+ padding: 3px 20px;
3558
+ font-size: 12px;
3559
+ line-height: 1.42857143;
3560
+ color: #777;
3561
+ white-space: nowrap;
3562
+ }
3563
+ .dropdown-backdrop {
3564
+ position: fixed;
3565
+ top: 0;
3566
+ right: 0;
3567
+ bottom: 0;
3568
+ left: 0;
3569
+ z-index: 990;
3570
+ }
3571
+ .pull-right > .dropdown-menu {
3572
+ right: 0;
3573
+ left: auto;
3574
+ }
3575
+ .dropup .caret,
3576
+ .navbar-fixed-bottom .dropdown .caret {
3577
+ content: "";
3578
+ border-top: 0;
3579
+ border-bottom: 4px dashed;
3580
+ border-bottom: 4px solid \9;
3581
+ }
3582
+ .dropup .dropdown-menu,
3583
+ .navbar-fixed-bottom .dropdown .dropdown-menu {
3584
+ top: auto;
3585
+ bottom: 100%;
3586
+ margin-bottom: 2px;
3587
+ }
3588
+ @media (min-width: 768px) {
3589
+ .navbar-right .dropdown-menu {
3590
+ right: 0;
3591
+ left: auto;
3592
+ }
3593
+ .navbar-right .dropdown-menu-left {
3594
+ right: auto;
3595
+ left: 0;
3596
+ }
3597
+ }
3598
+ .btn-group,
3599
+ .btn-group-vertical {
3600
+ position: relative;
3601
+ display: inline-block;
3602
+ vertical-align: middle;
3603
+ }
3604
+ .btn-group > .btn,
3605
+ .btn-group-vertical > .btn {
3606
+ position: relative;
3607
+ float: left;
3608
+ }
3609
+ .btn-group > .btn:hover,
3610
+ .btn-group-vertical > .btn:hover,
3611
+ .btn-group > .btn:focus,
3612
+ .btn-group-vertical > .btn:focus,
3613
+ .btn-group > .btn:active,
3614
+ .btn-group-vertical > .btn:active,
3615
+ .btn-group > .btn.active,
3616
+ .btn-group-vertical > .btn.active {
3617
+ z-index: 2;
3618
+ }
3619
+ .btn-group .btn + .btn,
3620
+ .btn-group .btn + .btn-group,
3621
+ .btn-group .btn-group + .btn,
3622
+ .btn-group .btn-group + .btn-group {
3623
+ margin-left: -1px;
3624
+ }
3625
+ .btn-toolbar {
3626
+ margin-left: -5px;
3627
+ }
3628
+ .btn-toolbar .btn,
3629
+ .btn-toolbar .btn-group,
3630
+ .btn-toolbar .input-group {
3631
+ float: left;
3632
+ }
3633
+ .btn-toolbar > .btn,
3634
+ .btn-toolbar > .btn-group,
3635
+ .btn-toolbar > .input-group {
3636
+ margin-left: 5px;
3637
+ }
3638
+ .btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
3639
+ border-radius: 0;
3640
+ }
3641
+ .btn-group > .btn:first-child {
3642
+ margin-left: 0;
3643
+ }
3644
+ .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
3645
+ border-top-right-radius: 0;
3646
+ border-bottom-right-radius: 0;
3647
+ }
3648
+ .btn-group > .btn:last-child:not(:first-child),
3649
+ .btn-group > .dropdown-toggle:not(:first-child) {
3650
+ border-top-left-radius: 0;
3651
+ border-bottom-left-radius: 0;
3652
+ }
3653
+ .btn-group > .btn-group {
3654
+ float: left;
3655
+ }
3656
+ .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
3657
+ border-radius: 0;
3658
+ }
3659
+ .btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,
3660
+ .btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
3661
+ border-top-right-radius: 0;
3662
+ border-bottom-right-radius: 0;
3663
+ }
3664
+ .btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
3665
+ border-top-left-radius: 0;
3666
+ border-bottom-left-radius: 0;
3667
+ }
3668
+ .btn-group .dropdown-toggle:active,
3669
+ .btn-group.open .dropdown-toggle {
3670
+ outline: 0;
3671
+ }
3672
+ .btn-group > .btn + .dropdown-toggle {
3673
+ padding-right: 8px;
3674
+ padding-left: 8px;
3675
+ }
3676
+ .btn-group > .btn-lg + .dropdown-toggle {
3677
+ padding-right: 12px;
3678
+ padding-left: 12px;
3679
+ }
3680
+ .btn-group.open .dropdown-toggle {
3681
+ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
3682
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
3683
+ }
3684
+ .btn-group.open .dropdown-toggle.btn-link {
3685
+ -webkit-box-shadow: none;
3686
+ box-shadow: none;
3687
+ }
3688
+ .btn .caret {
3689
+ margin-left: 0;
3690
+ }
3691
+ .btn-lg .caret {
3692
+ border-width: 5px 5px 0;
3693
+ border-bottom-width: 0;
3694
+ }
3695
+ .dropup .btn-lg .caret {
3696
+ border-width: 0 5px 5px;
3697
+ }
3698
+ .btn-group-vertical > .btn,
3699
+ .btn-group-vertical > .btn-group,
3700
+ .btn-group-vertical > .btn-group > .btn {
3701
+ display: block;
3702
+ float: none;
3703
+ width: 100%;
3704
+ max-width: 100%;
3705
+ }
3706
+ .btn-group-vertical > .btn-group > .btn {
3707
+ float: none;
3708
+ }
3709
+ .btn-group-vertical > .btn + .btn,
3710
+ .btn-group-vertical > .btn + .btn-group,
3711
+ .btn-group-vertical > .btn-group + .btn,
3712
+ .btn-group-vertical > .btn-group + .btn-group {
3713
+ margin-top: -1px;
3714
+ margin-left: 0;
3715
+ }
3716
+ .btn-group-vertical > .btn:not(:first-child):not(:last-child) {
3717
+ border-radius: 0;
3718
+ }
3719
+ .btn-group-vertical > .btn:first-child:not(:last-child) {
3720
+ border-top-left-radius: 4px;
3721
+ border-top-right-radius: 4px;
3722
+ border-bottom-right-radius: 0;
3723
+ border-bottom-left-radius: 0;
3724
+ }
3725
+ .btn-group-vertical > .btn:last-child:not(:first-child) {
3726
+ border-top-left-radius: 0;
3727
+ border-top-right-radius: 0;
3728
+ border-bottom-right-radius: 4px;
3729
+ border-bottom-left-radius: 4px;
3730
+ }
3731
+ .btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
3732
+ border-radius: 0;
3733
+ }
3734
+ .btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
3735
+ .btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
3736
+ border-bottom-right-radius: 0;
3737
+ border-bottom-left-radius: 0;
3738
+ }
3739
+ .btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
3740
+ border-top-left-radius: 0;
3741
+ border-top-right-radius: 0;
3742
+ }
3743
+ .btn-group-justified {
3744
+ display: table;
3745
+ width: 100%;
3746
+ table-layout: fixed;
3747
+ border-collapse: separate;
3748
+ }
3749
+ .btn-group-justified > .btn,
3750
+ .btn-group-justified > .btn-group {
3751
+ display: table-cell;
3752
+ float: none;
3753
+ width: 1%;
3754
+ }
3755
+ .btn-group-justified > .btn-group .btn {
3756
+ width: 100%;
3757
+ }
3758
+ .btn-group-justified > .btn-group .dropdown-menu {
3759
+ left: auto;
3760
+ }
3761
+ [data-toggle="buttons"] > .btn input[type="radio"],
3762
+ [data-toggle="buttons"] > .btn-group > .btn input[type="radio"],
3763
+ [data-toggle="buttons"] > .btn input[type="checkbox"],
3764
+ [data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] {
3765
+ position: absolute;
3766
+ clip: rect(0, 0, 0, 0);
3767
+ pointer-events: none;
3768
+ }
3769
+ .input-group {
3770
+ position: relative;
3771
+ display: table;
3772
+ border-collapse: separate;
3773
+ }
3774
+ .input-group[class*="col-"] {
3775
+ float: none;
3776
+ padding-right: 0;
3777
+ padding-left: 0;
3778
+ }
3779
+ .input-group .form-control {
3780
+ position: relative;
3781
+ z-index: 2;
3782
+ float: left;
3783
+ width: 100%;
3784
+ margin-bottom: 0;
3785
+ }
3786
+ .input-group .form-control:focus {
3787
+ z-index: 3;
3788
+ }
3789
+ .input-group-lg > .form-control,
3790
+ .input-group-lg > .input-group-addon,
3791
+ .input-group-lg > .input-group-btn > .btn {
3792
+ height: 46px;
3793
+ padding: 10px 16px;
3794
+ font-size: 18px;
3795
+ line-height: 1.3333333;
3796
+ border-radius: 6px;
3797
+ }
3798
+ select.input-group-lg > .form-control,
3799
+ select.input-group-lg > .input-group-addon,
3800
+ select.input-group-lg > .input-group-btn > .btn {
3801
+ height: 46px;
3802
+ line-height: 46px;
3803
+ }
3804
+ textarea.input-group-lg > .form-control,
3805
+ textarea.input-group-lg > .input-group-addon,
3806
+ textarea.input-group-lg > .input-group-btn > .btn,
3807
+ select[multiple].input-group-lg > .form-control,
3808
+ select[multiple].input-group-lg > .input-group-addon,
3809
+ select[multiple].input-group-lg > .input-group-btn > .btn {
3810
+ height: auto;
3811
+ }
3812
+ .input-group-sm > .form-control,
3813
+ .input-group-sm > .input-group-addon,
3814
+ .input-group-sm > .input-group-btn > .btn {
3815
+ height: 30px;
3816
+ padding: 5px 10px;
3817
+ font-size: 12px;
3818
+ line-height: 1.5;
3819
+ border-radius: 3px;
3820
+ }
3821
+ select.input-group-sm > .form-control,
3822
+ select.input-group-sm > .input-group-addon,
3823
+ select.input-group-sm > .input-group-btn > .btn {
3824
+ height: 30px;
3825
+ line-height: 30px;
3826
+ }
3827
+ textarea.input-group-sm > .form-control,
3828
+ textarea.input-group-sm > .input-group-addon,
3829
+ textarea.input-group-sm > .input-group-btn > .btn,
3830
+ select[multiple].input-group-sm > .form-control,
3831
+ select[multiple].input-group-sm > .input-group-addon,
3832
+ select[multiple].input-group-sm > .input-group-btn > .btn {
3833
+ height: auto;
3834
+ }
3835
+ .input-group-addon,
3836
+ .input-group-btn,
3837
+ .input-group .form-control {
3838
+ display: table-cell;
3839
+ }
3840
+ .input-group-addon:not(:first-child):not(:last-child),
3841
+ .input-group-btn:not(:first-child):not(:last-child),
3842
+ .input-group .form-control:not(:first-child):not(:last-child) {
3843
+ border-radius: 0;
3844
+ }
3845
+ .input-group-addon,
3846
+ .input-group-btn {
3847
+ width: 1%;
3848
+ white-space: nowrap;
3849
+ vertical-align: middle;
3850
+ }
3851
+ .input-group-addon {
3852
+ padding: 6px 12px;
3853
+ font-size: 14px;
3854
+ font-weight: normal;
3855
+ line-height: 1;
3856
+ color: #555;
3857
+ text-align: center;
3858
+ background-color: #eee;
3859
+ border: 1px solid #ccc;
3860
+ border-radius: 4px;
3861
+ }
3862
+ .input-group-addon.input-sm {
3863
+ padding: 5px 10px;
3864
+ font-size: 12px;
3865
+ border-radius: 3px;
3866
+ }
3867
+ .input-group-addon.input-lg {
3868
+ padding: 10px 16px;
3869
+ font-size: 18px;
3870
+ border-radius: 6px;
3871
+ }
3872
+ .input-group-addon input[type="radio"],
3873
+ .input-group-addon input[type="checkbox"] {
3874
+ margin-top: 0;
3875
+ }
3876
+ .input-group .form-control:first-child,
3877
+ .input-group-addon:first-child,
3878
+ .input-group-btn:first-child > .btn,
3879
+ .input-group-btn:first-child > .btn-group > .btn,
3880
+ .input-group-btn:first-child > .dropdown-toggle,
3881
+ .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
3882
+ .input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
3883
+ border-top-right-radius: 0;
3884
+ border-bottom-right-radius: 0;
3885
+ }
3886
+ .input-group-addon:first-child {
3887
+ border-right: 0;
3888
+ }
3889
+ .input-group .form-control:last-child,
3890
+ .input-group-addon:last-child,
3891
+ .input-group-btn:last-child > .btn,
3892
+ .input-group-btn:last-child > .btn-group > .btn,
3893
+ .input-group-btn:last-child > .dropdown-toggle,
3894
+ .input-group-btn:first-child > .btn:not(:first-child),
3895
+ .input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
3896
+ border-top-left-radius: 0;
3897
+ border-bottom-left-radius: 0;
3898
+ }
3899
+ .input-group-addon:last-child {
3900
+ border-left: 0;
3901
+ }
3902
+ .input-group-btn {
3903
+ position: relative;
3904
+ font-size: 0;
3905
+ white-space: nowrap;
3906
+ }
3907
+ .input-group-btn > .btn {
3908
+ position: relative;
3909
+ }
3910
+ .input-group-btn > .btn + .btn {
3911
+ margin-left: -1px;
3912
+ }
3913
+ .input-group-btn > .btn:hover,
3914
+ .input-group-btn > .btn:focus,
3915
+ .input-group-btn > .btn:active {
3916
+ z-index: 2;
3917
+ }
3918
+ .input-group-btn:first-child > .btn,
3919
+ .input-group-btn:first-child > .btn-group {
3920
+ margin-right: -1px;
3921
+ }
3922
+ .input-group-btn:last-child > .btn,
3923
+ .input-group-btn:last-child > .btn-group {
3924
+ z-index: 2;
3925
+ margin-left: -1px;
3926
+ }
3927
+ .nav {
3928
+ padding-left: 0;
3929
+ margin-bottom: 0;
3930
+ list-style: none;
3931
+ }
3932
+ .nav > li {
3933
+ position: relative;
3934
+ display: block;
3935
+ }
3936
+ .nav > li > a {
3937
+ position: relative;
3938
+ display: block;
3939
+ padding: 10px 15px;
3940
+ }
3941
+ .nav > li > a:hover,
3942
+ .nav > li > a:focus {
3943
+ text-decoration: none;
3944
+ background-color: #eee;
3945
+ }
3946
+ .nav > li.disabled > a {
3947
+ color: #777;
3948
+ }
3949
+ .nav > li.disabled > a:hover,
3950
+ .nav > li.disabled > a:focus {
3951
+ color: #777;
3952
+ text-decoration: none;
3953
+ cursor: not-allowed;
3954
+ background-color: transparent;
3955
+ }
3956
+ .nav .open > a,
3957
+ .nav .open > a:hover,
3958
+ .nav .open > a:focus {
3959
+ background-color: #eee;
3960
+ border-color: #337ab7;
3961
+ }
3962
+ .nav .nav-divider {
3963
+ height: 1px;
3964
+ margin: 9px 0;
3965
+ overflow: hidden;
3966
+ background-color: #e5e5e5;
3967
+ }
3968
+ .nav > li > a > img {
3969
+ max-width: none;
3970
+ }
3971
+ .nav-tabs {
3972
+ border-bottom: 1px solid #ddd;
3973
+ }
3974
+ .nav-tabs > li {
3975
+ float: left;
3976
+ margin-bottom: -1px;
3977
+ }
3978
+ .nav-tabs > li > a {
3979
+ margin-right: 2px;
3980
+ line-height: 1.42857143;
3981
+ border: 1px solid transparent;
3982
+ border-radius: 4px 4px 0 0;
3983
+ }
3984
+ .nav-tabs > li > a:hover {
3985
+ border-color: #eee #eee #ddd;
3986
+ }
3987
+ .nav-tabs > li.active > a,
3988
+ .nav-tabs > li.active > a:hover,
3989
+ .nav-tabs > li.active > a:focus {
3990
+ color: #555;
3991
+ cursor: default;
3992
+ background-color: #fff;
3993
+ border: 1px solid #ddd;
3994
+ border-bottom-color: transparent;
3995
+ }
3996
+ .nav-tabs.nav-justified {
3997
+ width: 100%;
3998
+ border-bottom: 0;
3999
+ }
4000
+ .nav-tabs.nav-justified > li {
4001
+ float: none;
4002
+ }
4003
+ .nav-tabs.nav-justified > li > a {
4004
+ margin-bottom: 5px;
4005
+ text-align: center;
4006
+ }
4007
+ .nav-tabs.nav-justified > .dropdown .dropdown-menu {
4008
+ top: auto;
4009
+ left: auto;
4010
+ }
4011
+ @media (min-width: 768px) {
4012
+ .nav-tabs.nav-justified > li {
4013
+ display: table-cell;
4014
+ width: 1%;
4015
+ }
4016
+ .nav-tabs.nav-justified > li > a {
4017
+ margin-bottom: 0;
4018
+ }
4019
+ }
4020
+ .nav-tabs.nav-justified > li > a {
4021
+ margin-right: 0;
4022
+ border-radius: 4px;
4023
+ }
4024
+ .nav-tabs.nav-justified > .active > a,
4025
+ .nav-tabs.nav-justified > .active > a:hover,
4026
+ .nav-tabs.nav-justified > .active > a:focus {
4027
+ border: 1px solid #ddd;
4028
+ }
4029
+ @media (min-width: 768px) {
4030
+ .nav-tabs.nav-justified > li > a {
4031
+ border-bottom: 1px solid #ddd;
4032
+ border-radius: 4px 4px 0 0;
4033
+ }
4034
+ .nav-tabs.nav-justified > .active > a,
4035
+ .nav-tabs.nav-justified > .active > a:hover,
4036
+ .nav-tabs.nav-justified > .active > a:focus {
4037
+ border-bottom-color: #fff;
4038
+ }
4039
+ }
4040
+ .nav-pills > li {
4041
+ float: left;
4042
+ }
4043
+ .nav-pills > li > a {
4044
+ border-radius: 4px;
4045
+ }
4046
+ .nav-pills > li + li {
4047
+ margin-left: 2px;
4048
+ }
4049
+ .nav-pills > li.active > a,
4050
+ .nav-pills > li.active > a:hover,
4051
+ .nav-pills > li.active > a:focus {
4052
+ color: #fff;
4053
+ background-color: #337ab7;
4054
+ }
4055
+ .nav-stacked > li {
4056
+ float: none;
4057
+ }
4058
+ .nav-stacked > li + li {
4059
+ margin-top: 2px;
4060
+ margin-left: 0;
4061
+ }
4062
+ .nav-justified {
4063
+ width: 100%;
4064
+ }
4065
+ .nav-justified > li {
4066
+ float: none;
4067
+ }
4068
+ .nav-justified > li > a {
4069
+ margin-bottom: 5px;
4070
+ text-align: center;
4071
+ }
4072
+ .nav-justified > .dropdown .dropdown-menu {
4073
+ top: auto;
4074
+ left: auto;
4075
+ }
4076
+ @media (min-width: 768px) {
4077
+ .nav-justified > li {
4078
+ display: table-cell;
4079
+ width: 1%;
4080
+ }
4081
+ .nav-justified > li > a {
4082
+ margin-bottom: 0;
4083
+ }
4084
+ }
4085
+ .nav-tabs-justified {
4086
+ border-bottom: 0;
4087
+ }
4088
+ .nav-tabs-justified > li > a {
4089
+ margin-right: 0;
4090
+ border-radius: 4px;
4091
+ }
4092
+ .nav-tabs-justified > .active > a,
4093
+ .nav-tabs-justified > .active > a:hover,
4094
+ .nav-tabs-justified > .active > a:focus {
4095
+ border: 1px solid #ddd;
4096
+ }
4097
+ @media (min-width: 768px) {
4098
+ .nav-tabs-justified > li > a {
4099
+ border-bottom: 1px solid #ddd;
4100
+ border-radius: 4px 4px 0 0;
4101
+ }
4102
+ .nav-tabs-justified > .active > a,
4103
+ .nav-tabs-justified > .active > a:hover,
4104
+ .nav-tabs-justified > .active > a:focus {
4105
+ border-bottom-color: #fff;
4106
+ }
4107
+ }
4108
+ .tab-content > .tab-pane {
4109
+ display: none;
4110
+ }
4111
+ .tab-content > .active {
4112
+ display: block;
4113
+ }
4114
+ .nav-tabs .dropdown-menu {
4115
+ margin-top: -1px;
4116
+ border-top-left-radius: 0;
4117
+ border-top-right-radius: 0;
4118
+ }
4119
+ .navbar {
4120
+ position: relative;
4121
+ min-height: 50px;
4122
+ margin-bottom: 20px;
4123
+ border: 1px solid transparent;
4124
+ }
4125
+ @media (min-width: 768px) {
4126
+ .navbar {
4127
+ border-radius: 4px;
4128
+ }
4129
+ }
4130
+ @media (min-width: 768px) {
4131
+ .navbar-header {
4132
+ float: left;
4133
+ }
4134
+ }
4135
+ .navbar-collapse {
4136
+ padding-right: 15px;
4137
+ padding-left: 15px;
4138
+ overflow-x: visible;
4139
+ -webkit-overflow-scrolling: touch;
4140
+ border-top: 1px solid transparent;
4141
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1);
4142
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1);
4143
+ }
4144
+ .navbar-collapse.in {
4145
+ overflow-y: auto;
4146
+ }
4147
+ @media (min-width: 768px) {
4148
+ .navbar-collapse {
4149
+ width: auto;
4150
+ border-top: 0;
4151
+ -webkit-box-shadow: none;
4152
+ box-shadow: none;
4153
+ }
4154
+ .navbar-collapse.collapse {
4155
+ display: block !important;
4156
+ height: auto !important;
4157
+ padding-bottom: 0;
4158
+ overflow: visible !important;
4159
+ }
4160
+ .navbar-collapse.in {
4161
+ overflow-y: visible;
4162
+ }
4163
+ .navbar-fixed-top .navbar-collapse,
4164
+ .navbar-static-top .navbar-collapse,
4165
+ .navbar-fixed-bottom .navbar-collapse {
4166
+ padding-right: 0;
4167
+ padding-left: 0;
4168
+ }
4169
+ }
4170
+ .navbar-fixed-top .navbar-collapse,
4171
+ .navbar-fixed-bottom .navbar-collapse {
4172
+ max-height: 340px;
4173
+ }
4174
+ @media (max-device-width: 480px) and (orientation: landscape) {
4175
+ .navbar-fixed-top .navbar-collapse,
4176
+ .navbar-fixed-bottom .navbar-collapse {
4177
+ max-height: 200px;
4178
+ }
4179
+ }
4180
+ .container > .navbar-header,
4181
+ .container-fluid > .navbar-header,
4182
+ .container > .navbar-collapse,
4183
+ .container-fluid > .navbar-collapse {
4184
+ margin-right: -15px;
4185
+ margin-left: -15px;
4186
+ }
4187
+ @media (min-width: 768px) {
4188
+ .container > .navbar-header,
4189
+ .container-fluid > .navbar-header,
4190
+ .container > .navbar-collapse,
4191
+ .container-fluid > .navbar-collapse {
4192
+ margin-right: 0;
4193
+ margin-left: 0;
4194
+ }
4195
+ }
4196
+ .navbar-static-top {
4197
+ z-index: 1000;
4198
+ border-width: 0 0 1px;
4199
+ }
4200
+ @media (min-width: 768px) {
4201
+ .navbar-static-top {
4202
+ border-radius: 0;
4203
+ }
4204
+ }
4205
+ .navbar-fixed-top,
4206
+ .navbar-fixed-bottom {
4207
+ position: fixed;
4208
+ right: 0;
4209
+ left: 0;
4210
+ z-index: 1030;
4211
+ }
4212
+ @media (min-width: 768px) {
4213
+ .navbar-fixed-top,
4214
+ .navbar-fixed-bottom {
4215
+ border-radius: 0;
4216
+ }
4217
+ }
4218
+ .navbar-fixed-top {
4219
+ top: 0;
4220
+ border-width: 0 0 1px;
4221
+ }
4222
+ .navbar-fixed-bottom {
4223
+ bottom: 0;
4224
+ margin-bottom: 0;
4225
+ border-width: 1px 0 0;
4226
+ }
4227
+ .navbar-brand {
4228
+ float: left;
4229
+ height: 50px;
4230
+ padding: 15px 15px;
4231
+ font-size: 18px;
4232
+ line-height: 20px;
4233
+ }
4234
+ .navbar-brand:hover,
4235
+ .navbar-brand:focus {
4236
+ text-decoration: none;
4237
+ }
4238
+ .navbar-brand > img {
4239
+ display: block;
4240
+ }
4241
+ @media (min-width: 768px) {
4242
+ .navbar > .container .navbar-brand,
4243
+ .navbar > .container-fluid .navbar-brand {
4244
+ margin-left: -15px;
4245
+ }
4246
+ }
4247
+ .navbar-toggle {
4248
+ position: relative;
4249
+ float: right;
4250
+ padding: 9px 10px;
4251
+ margin-top: 8px;
4252
+ margin-right: 15px;
4253
+ margin-bottom: 8px;
4254
+ background-color: transparent;
4255
+ background-image: none;
4256
+ border: 1px solid transparent;
4257
+ border-radius: 4px;
4258
+ }
4259
+ .navbar-toggle:focus {
4260
+ outline: 0;
4261
+ }
4262
+ .navbar-toggle .icon-bar {
4263
+ display: block;
4264
+ width: 22px;
4265
+ height: 2px;
4266
+ border-radius: 1px;
4267
+ }
4268
+ .navbar-toggle .icon-bar + .icon-bar {
4269
+ margin-top: 4px;
4270
+ }
4271
+ @media (min-width: 768px) {
4272
+ .navbar-toggle {
4273
+ display: none;
4274
+ }
4275
+ }
4276
+ .navbar-nav {
4277
+ margin: 7.5px -15px;
4278
+ }
4279
+ .navbar-nav > li > a {
4280
+ padding-top: 10px;
4281
+ padding-bottom: 10px;
4282
+ line-height: 20px;
4283
+ }
4284
+ @media (max-width: 767px) {
4285
+ .navbar-nav .open .dropdown-menu {
4286
+ position: static;
4287
+ float: none;
4288
+ width: auto;
4289
+ margin-top: 0;
4290
+ background-color: transparent;
4291
+ border: 0;
4292
+ -webkit-box-shadow: none;
4293
+ box-shadow: none;
4294
+ }
4295
+ .navbar-nav .open .dropdown-menu > li > a,
4296
+ .navbar-nav .open .dropdown-menu .dropdown-header {
4297
+ padding: 5px 15px 5px 25px;
4298
+ }
4299
+ .navbar-nav .open .dropdown-menu > li > a {
4300
+ line-height: 20px;
4301
+ }
4302
+ .navbar-nav .open .dropdown-menu > li > a:hover,
4303
+ .navbar-nav .open .dropdown-menu > li > a:focus {
4304
+ background-image: none;
4305
+ }
4306
+ }
4307
+ @media (min-width: 768px) {
4308
+ .navbar-nav {
4309
+ float: left;
4310
+ margin: 0;
4311
+ }
4312
+ .navbar-nav > li {
4313
+ float: left;
4314
+ }
4315
+ .navbar-nav > li > a {
4316
+ padding-top: 15px;
4317
+ padding-bottom: 15px;
4318
+ }
4319
+ }
4320
+ .navbar-form {
4321
+ padding: 10px 15px;
4322
+ margin-top: 8px;
4323
+ margin-right: -15px;
4324
+ margin-bottom: 8px;
4325
+ margin-left: -15px;
4326
+ border-top: 1px solid transparent;
4327
+ border-bottom: 1px solid transparent;
4328
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1);
4329
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1);
4330
+ }
4331
+ @media (min-width: 768px) {
4332
+ .navbar-form .form-group {
4333
+ display: inline-block;
4334
+ margin-bottom: 0;
4335
+ vertical-align: middle;
4336
+ }
4337
+ .navbar-form .form-control {
4338
+ display: inline-block;
4339
+ width: auto;
4340
+ vertical-align: middle;
4341
+ }
4342
+ .navbar-form .form-control-static {
4343
+ display: inline-block;
4344
+ }
4345
+ .navbar-form .input-group {
4346
+ display: inline-table;
4347
+ vertical-align: middle;
4348
+ }
4349
+ .navbar-form .input-group .input-group-addon,
4350
+ .navbar-form .input-group .input-group-btn,
4351
+ .navbar-form .input-group .form-control {
4352
+ width: auto;
4353
+ }
4354
+ .navbar-form .input-group > .form-control {
4355
+ width: 100%;
4356
+ }
4357
+ .navbar-form .control-label {
4358
+ margin-bottom: 0;
4359
+ vertical-align: middle;
4360
+ }
4361
+ .navbar-form .radio,
4362
+ .navbar-form .checkbox {
4363
+ display: inline-block;
4364
+ margin-top: 0;
4365
+ margin-bottom: 0;
4366
+ vertical-align: middle;
4367
+ }
4368
+ .navbar-form .radio label,
4369
+ .navbar-form .checkbox label {
4370
+ padding-left: 0;
4371
+ }
4372
+ .navbar-form .radio input[type="radio"],
4373
+ .navbar-form .checkbox input[type="checkbox"] {
4374
+ position: relative;
4375
+ margin-left: 0;
4376
+ }
4377
+ .navbar-form .has-feedback .form-control-feedback {
4378
+ top: 0;
4379
+ }
4380
+ }
4381
+ @media (max-width: 767px) {
4382
+ .navbar-form .form-group {
4383
+ margin-bottom: 5px;
4384
+ }
4385
+ .navbar-form .form-group:last-child {
4386
+ margin-bottom: 0;
4387
+ }
4388
+ }
4389
+ @media (min-width: 768px) {
4390
+ .navbar-form {
4391
+ width: auto;
4392
+ padding-top: 0;
4393
+ padding-bottom: 0;
4394
+ margin-right: 0;
4395
+ margin-left: 0;
4396
+ border: 0;
4397
+ -webkit-box-shadow: none;
4398
+ box-shadow: none;
4399
+ }
4400
+ }
4401
+ .navbar-nav > li > .dropdown-menu {
4402
+ margin-top: 0;
4403
+ border-top-left-radius: 0;
4404
+ border-top-right-radius: 0;
4405
+ }
4406
+ .navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
4407
+ margin-bottom: 0;
4408
+ border-top-left-radius: 4px;
4409
+ border-top-right-radius: 4px;
4410
+ border-bottom-right-radius: 0;
4411
+ border-bottom-left-radius: 0;
4412
+ }
4413
+ .navbar-btn {
4414
+ margin-top: 8px;
4415
+ margin-bottom: 8px;
4416
+ }
4417
+ .navbar-btn.btn-sm {
4418
+ margin-top: 10px;
4419
+ margin-bottom: 10px;
4420
+ }
4421
+ .navbar-btn.btn-xs {
4422
+ margin-top: 14px;
4423
+ margin-bottom: 14px;
4424
+ }
4425
+ .navbar-text {
4426
+ margin-top: 15px;
4427
+ margin-bottom: 15px;
4428
+ }
4429
+ @media (min-width: 768px) {
4430
+ .navbar-text {
4431
+ float: left;
4432
+ margin-right: 15px;
4433
+ margin-left: 15px;
4434
+ }
4435
+ }
4436
+ @media (min-width: 768px) {
4437
+ .navbar-left {
4438
+ float: left !important;
4439
+ }
4440
+ .navbar-right {
4441
+ float: right !important;
4442
+ margin-right: -15px;
4443
+ }
4444
+ .navbar-right ~ .navbar-right {
4445
+ margin-right: 0;
4446
+ }
4447
+ }
4448
+ .navbar-default {
4449
+ background-color: #f8f8f8;
4450
+ border-color: #e7e7e7;
4451
+ }
4452
+ .navbar-default .navbar-brand {
4453
+ color: #777;
4454
+ }
4455
+ .navbar-default .navbar-brand:hover,
4456
+ .navbar-default .navbar-brand:focus {
4457
+ color: #5e5e5e;
4458
+ background-color: transparent;
4459
+ }
4460
+ .navbar-default .navbar-text {
4461
+ color: #777;
4462
+ }
4463
+ .navbar-default .navbar-nav > li > a {
4464
+ color: #777;
4465
+ }
4466
+ .navbar-default .navbar-nav > li > a:hover,
4467
+ .navbar-default .navbar-nav > li > a:focus {
4468
+ color: #333;
4469
+ background-color: transparent;
4470
+ }
4471
+ .navbar-default .navbar-nav > .active > a,
4472
+ .navbar-default .navbar-nav > .active > a:hover,
4473
+ .navbar-default .navbar-nav > .active > a:focus {
4474
+ color: #555;
4475
+ background-color: #e7e7e7;
4476
+ }
4477
+ .navbar-default .navbar-nav > .disabled > a,
4478
+ .navbar-default .navbar-nav > .disabled > a:hover,
4479
+ .navbar-default .navbar-nav > .disabled > a:focus {
4480
+ color: #ccc;
4481
+ background-color: transparent;
4482
+ }
4483
+ .navbar-default .navbar-toggle {
4484
+ border-color: #ddd;
4485
+ }
4486
+ .navbar-default .navbar-toggle:hover,
4487
+ .navbar-default .navbar-toggle:focus {
4488
+ background-color: #ddd;
4489
+ }
4490
+ .navbar-default .navbar-toggle .icon-bar {
4491
+ background-color: #888;
4492
+ }
4493
+ .navbar-default .navbar-collapse,
4494
+ .navbar-default .navbar-form {
4495
+ border-color: #e7e7e7;
4496
+ }
4497
+ .navbar-default .navbar-nav > .open > a,
4498
+ .navbar-default .navbar-nav > .open > a:hover,
4499
+ .navbar-default .navbar-nav > .open > a:focus {
4500
+ color: #555;
4501
+ background-color: #e7e7e7;
4502
+ }
4503
+ @media (max-width: 767px) {
4504
+ .navbar-default .navbar-nav .open .dropdown-menu > li > a {
4505
+ color: #777;
4506
+ }
4507
+ .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
4508
+ .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
4509
+ color: #333;
4510
+ background-color: transparent;
4511
+ }
4512
+ .navbar-default .navbar-nav .open .dropdown-menu > .active > a,
4513
+ .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
4514
+ .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
4515
+ color: #555;
4516
+ background-color: #e7e7e7;
4517
+ }
4518
+ .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,
4519
+ .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,
4520
+ .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
4521
+ color: #ccc;
4522
+ background-color: transparent;
4523
+ }
4524
+ }
4525
+ .navbar-default .navbar-link {
4526
+ color: #777;
4527
+ }
4528
+ .navbar-default .navbar-link:hover {
4529
+ color: #333;
4530
+ }
4531
+ .navbar-default .btn-link {
4532
+ color: #777;
4533
+ }
4534
+ .navbar-default .btn-link:hover,
4535
+ .navbar-default .btn-link:focus {
4536
+ color: #333;
4537
+ }
4538
+ .navbar-default .btn-link[disabled]:hover,
4539
+ fieldset[disabled] .navbar-default .btn-link:hover,
4540
+ .navbar-default .btn-link[disabled]:focus,
4541
+ fieldset[disabled] .navbar-default .btn-link:focus {
4542
+ color: #ccc;
4543
+ }
4544
+ .navbar-inverse {
4545
+ background-color: #222;
4546
+ border-color: #080808;
4547
+ }
4548
+ .navbar-inverse .navbar-brand {
4549
+ color: #9d9d9d;
4550
+ }
4551
+ .navbar-inverse .navbar-brand:hover,
4552
+ .navbar-inverse .navbar-brand:focus {
4553
+ color: #fff;
4554
+ background-color: transparent;
4555
+ }
4556
+ .navbar-inverse .navbar-text {
4557
+ color: #9d9d9d;
4558
+ }
4559
+ .navbar-inverse .navbar-nav > li > a {
4560
+ color: #9d9d9d;
4561
+ }
4562
+ .navbar-inverse .navbar-nav > li > a:hover,
4563
+ .navbar-inverse .navbar-nav > li > a:focus {
4564
+ color: #fff;
4565
+ background-color: transparent;
4566
+ }
4567
+ .navbar-inverse .navbar-nav > .active > a,
4568
+ .navbar-inverse .navbar-nav > .active > a:hover,
4569
+ .navbar-inverse .navbar-nav > .active > a:focus {
4570
+ color: #fff;
4571
+ background-color: #080808;
4572
+ }
4573
+ .navbar-inverse .navbar-nav > .disabled > a,
4574
+ .navbar-inverse .navbar-nav > .disabled > a:hover,
4575
+ .navbar-inverse .navbar-nav > .disabled > a:focus {
4576
+ color: #444;
4577
+ background-color: transparent;
4578
+ }
4579
+ .navbar-inverse .navbar-toggle {
4580
+ border-color: #333;
4581
+ }
4582
+ .navbar-inverse .navbar-toggle:hover,
4583
+ .navbar-inverse .navbar-toggle:focus {
4584
+ background-color: #333;
4585
+ }
4586
+ .navbar-inverse .navbar-toggle .icon-bar {
4587
+ background-color: #fff;
4588
+ }
4589
+ .navbar-inverse .navbar-collapse,
4590
+ .navbar-inverse .navbar-form {
4591
+ border-color: #101010;
4592
+ }
4593
+ .navbar-inverse .navbar-nav > .open > a,
4594
+ .navbar-inverse .navbar-nav > .open > a:hover,
4595
+ .navbar-inverse .navbar-nav > .open > a:focus {
4596
+ color: #fff;
4597
+ background-color: #080808;
4598
+ }
4599
+ @media (max-width: 767px) {
4600
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
4601
+ border-color: #080808;
4602
+ }
4603
+ .navbar-inverse .navbar-nav .open .dropdown-menu .divider {
4604
+ background-color: #080808;
4605
+ }
4606
+ .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
4607
+ color: #9d9d9d;
4608
+ }
4609
+ .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
4610
+ .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
4611
+ color: #fff;
4612
+ background-color: transparent;
4613
+ }
4614
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,
4615
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,
4616
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
4617
+ color: #fff;
4618
+ background-color: #080808;
4619
+ }
4620
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,
4621
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,
4622
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
4623
+ color: #444;
4624
+ background-color: transparent;
4625
+ }
4626
+ }
4627
+ .navbar-inverse .navbar-link {
4628
+ color: #9d9d9d;
4629
+ }
4630
+ .navbar-inverse .navbar-link:hover {
4631
+ color: #fff;
4632
+ }
4633
+ .navbar-inverse .btn-link {
4634
+ color: #9d9d9d;
4635
+ }
4636
+ .navbar-inverse .btn-link:hover,
4637
+ .navbar-inverse .btn-link:focus {
4638
+ color: #fff;
4639
+ }
4640
+ .navbar-inverse .btn-link[disabled]:hover,
4641
+ fieldset[disabled] .navbar-inverse .btn-link:hover,
4642
+ .navbar-inverse .btn-link[disabled]:focus,
4643
+ fieldset[disabled] .navbar-inverse .btn-link:focus {
4644
+ color: #444;
4645
+ }
4646
+ .breadcrumb {
4647
+ padding: 8px 15px;
4648
+ margin-bottom: 20px;
4649
+ list-style: none;
4650
+ background-color: #f5f5f5;
4651
+ border-radius: 4px;
4652
+ }
4653
+ .breadcrumb > li {
4654
+ display: inline-block;
4655
+ }
4656
+ .breadcrumb > li + li:before {
4657
+ padding: 0 5px;
4658
+ color: #ccc;
4659
+ content: "/\00a0";
4660
+ }
4661
+ .breadcrumb > .active {
4662
+ color: #777;
4663
+ }
4664
+ .pagination {
4665
+ display: inline-block;
4666
+ padding-left: 0;
4667
+ margin: 20px 0;
4668
+ border-radius: 4px;
4669
+ }
4670
+ .pagination > li {
4671
+ display: inline;
4672
+ }
4673
+ .pagination > li > a,
4674
+ .pagination > li > span {
4675
+ position: relative;
4676
+ float: left;
4677
+ padding: 6px 12px;
4678
+ margin-left: -1px;
4679
+ line-height: 1.42857143;
4680
+ color: #337ab7;
4681
+ text-decoration: none;
4682
+ background-color: #fff;
4683
+ border: 1px solid #ddd;
4684
+ }
4685
+ .pagination > li:first-child > a,
4686
+ .pagination > li:first-child > span {
4687
+ margin-left: 0;
4688
+ border-top-left-radius: 4px;
4689
+ border-bottom-left-radius: 4px;
4690
+ }
4691
+ .pagination > li:last-child > a,
4692
+ .pagination > li:last-child > span {
4693
+ border-top-right-radius: 4px;
4694
+ border-bottom-right-radius: 4px;
4695
+ }
4696
+ .pagination > li > a:hover,
4697
+ .pagination > li > span:hover,
4698
+ .pagination > li > a:focus,
4699
+ .pagination > li > span:focus {
4700
+ z-index: 2;
4701
+ color: #23527c;
4702
+ background-color: #eee;
4703
+ border-color: #ddd;
4704
+ }
4705
+ .pagination > .active > a,
4706
+ .pagination > .active > span,
4707
+ .pagination > .active > a:hover,
4708
+ .pagination > .active > span:hover,
4709
+ .pagination > .active > a:focus,
4710
+ .pagination > .active > span:focus {
4711
+ z-index: 3;
4712
+ color: #fff;
4713
+ cursor: default;
4714
+ background-color: #337ab7;
4715
+ border-color: #337ab7;
4716
+ }
4717
+ .pagination > .disabled > span,
4718
+ .pagination > .disabled > span:hover,
4719
+ .pagination > .disabled > span:focus,
4720
+ .pagination > .disabled > a,
4721
+ .pagination > .disabled > a:hover,
4722
+ .pagination > .disabled > a:focus {
4723
+ color: #777;
4724
+ cursor: not-allowed;
4725
+ background-color: #fff;
4726
+ border-color: #ddd;
4727
+ }
4728
+ .pagination-lg > li > a,
4729
+ .pagination-lg > li > span {
4730
+ padding: 10px 16px;
4731
+ font-size: 18px;
4732
+ line-height: 1.3333333;
4733
+ }
4734
+ .pagination-lg > li:first-child > a,
4735
+ .pagination-lg > li:first-child > span {
4736
+ border-top-left-radius: 6px;
4737
+ border-bottom-left-radius: 6px;
4738
+ }
4739
+ .pagination-lg > li:last-child > a,
4740
+ .pagination-lg > li:last-child > span {
4741
+ border-top-right-radius: 6px;
4742
+ border-bottom-right-radius: 6px;
4743
+ }
4744
+ .pagination-sm > li > a,
4745
+ .pagination-sm > li > span {
4746
+ padding: 5px 10px;
4747
+ font-size: 12px;
4748
+ line-height: 1.5;
4749
+ }
4750
+ .pagination-sm > li:first-child > a,
4751
+ .pagination-sm > li:first-child > span {
4752
+ border-top-left-radius: 3px;
4753
+ border-bottom-left-radius: 3px;
4754
+ }
4755
+ .pagination-sm > li:last-child > a,
4756
+ .pagination-sm > li:last-child > span {
4757
+ border-top-right-radius: 3px;
4758
+ border-bottom-right-radius: 3px;
4759
+ }
4760
+ .pager {
4761
+ padding-left: 0;
4762
+ margin: 20px 0;
4763
+ text-align: center;
4764
+ list-style: none;
4765
+ }
4766
+ .pager li {
4767
+ display: inline;
4768
+ }
4769
+ .pager li > a,
4770
+ .pager li > span {
4771
+ display: inline-block;
4772
+ padding: 5px 14px;
4773
+ background-color: #fff;
4774
+ border: 1px solid #ddd;
4775
+ border-radius: 15px;
4776
+ }
4777
+ .pager li > a:hover,
4778
+ .pager li > a:focus {
4779
+ text-decoration: none;
4780
+ background-color: #eee;
4781
+ }
4782
+ .pager .next > a,
4783
+ .pager .next > span {
4784
+ float: right;
4785
+ }
4786
+ .pager .previous > a,
4787
+ .pager .previous > span {
4788
+ float: left;
4789
+ }
4790
+ .pager .disabled > a,
4791
+ .pager .disabled > a:hover,
4792
+ .pager .disabled > a:focus,
4793
+ .pager .disabled > span {
4794
+ color: #777;
4795
+ cursor: not-allowed;
4796
+ background-color: #fff;
4797
+ }
4798
+ .label {
4799
+ display: inline;
4800
+ padding: .2em .6em .3em;
4801
+ font-size: 75%;
4802
+ line-height: 1;
4803
+ color: #fff;
4804
+ text-align: center;
4805
+ white-space: nowrap;
4806
+ vertical-align: baseline;
4807
+ border-radius: .25em;
4808
+ }
4809
+ a.label:hover,
4810
+ a.label:focus {
4811
+ color: #fff;
4812
+ text-decoration: none;
4813
+ cursor: pointer;
4814
+ }
4815
+ .label:empty {
4816
+ display: none;
4817
+ }
4818
+ .btn .label {
4819
+ position: relative;
4820
+ top: -1px;
4821
+ }
4822
+ .label-default {
4823
+ background-color: #777;
4824
+ }
4825
+ .label-default[href]:hover,
4826
+ .label-default[href]:focus {
4827
+ background-color: #5e5e5e;
4828
+ }
4829
+ .label-primary {
4830
+ background-color: #337ab7;
4831
+ }
4832
+ .label-primary[href]:hover,
4833
+ .label-primary[href]:focus {
4834
+ background-color: #286090;
4835
+ }
4836
+ .label-success {
4837
+ background-color: #5cb85c;
4838
+ }
4839
+ .label-success[href]:hover,
4840
+ .label-success[href]:focus {
4841
+ background-color: #449d44;
4842
+ }
4843
+ .label-info {
4844
+ background-color: #5bc0de;
4845
+ }
4846
+ .label-info[href]:hover,
4847
+ .label-info[href]:focus {
4848
+ background-color: #31b0d5;
4849
+ }
4850
+ .label-warning {
4851
+ background-color: #f0ad4e;
4852
+ }
4853
+ .label-warning[href]:hover,
4854
+ .label-warning[href]:focus {
4855
+ background-color: #ec971f;
4856
+ }
4857
+ .label-danger {
4858
+ background-color: #d9534f;
4859
+ }
4860
+ .label-danger[href]:hover,
4861
+ .label-danger[href]:focus {
4862
+ background-color: #c9302c;
4863
+ }
4864
+ .badge {
4865
+ display: inline-block;
4866
+ min-width: 10px;
4867
+ padding: 3px 7px;
4868
+ font-size: 12px;
4869
+ font-weight: bold;
4870
+ line-height: 1;
4871
+ color: #fff;
4872
+ text-align: center;
4873
+ white-space: nowrap;
4874
+ vertical-align: middle;
4875
+ background-color: #777;
4876
+ border-radius: 10px;
4877
+ }
4878
+ .badge:empty {
4879
+ display: none;
4880
+ }
4881
+ .btn .badge {
4882
+ position: relative;
4883
+ top: -1px;
4884
+ }
4885
+ .btn-xs .badge,
4886
+ .btn-group-xs > .btn .badge {
4887
+ top: 0;
4888
+ padding: 1px 5px;
4889
+ }
4890
+ a.badge:hover,
4891
+ a.badge:focus {
4892
+ color: #fff;
4893
+ text-decoration: none;
4894
+ cursor: pointer;
4895
+ }
4896
+ .list-group-item.active > .badge,
4897
+ .nav-pills > .active > a > .badge {
4898
+ color: #337ab7;
4899
+ background-color: #fff;
4900
+ }
4901
+ .list-group-item > .badge {
4902
+ float: right;
4903
+ }
4904
+ .list-group-item > .badge + .badge {
4905
+ margin-right: 5px;
4906
+ }
4907
+ .nav-pills > li > a > .badge {
4908
+ margin-left: 3px;
4909
+ }
4910
+ .jumbotron {
4911
+ padding-top: 30px;
4912
+ padding-bottom: 30px;
4913
+ margin-bottom: 30px;
4914
+ color: inherit;
4915
+ background-color: #eee;
4916
+ }
4917
+ .jumbotron h1,
4918
+ .jumbotron .h1 {
4919
+ color: inherit;
4920
+ }
4921
+ .jumbotron p {
4922
+ margin-bottom: 15px;
4923
+ font-size: 21px;
4924
+ font-weight: 200;
4925
+ }
4926
+ .jumbotron > hr {
4927
+ border-top-color: #d5d5d5;
4928
+ }
4929
+ .container .jumbotron,
4930
+ .container-fluid .jumbotron {
4931
+ padding-right: 15px;
4932
+ padding-left: 15px;
4933
+ border-radius: 6px;
4934
+ }
4935
+ .jumbotron .container {
4936
+ max-width: 100%;
4937
+ }
4938
+ @media screen and (min-width: 768px) {
4939
+ .jumbotron {
4940
+ padding-top: 48px;
4941
+ padding-bottom: 48px;
4942
+ }
4943
+ .container .jumbotron,
4944
+ .container-fluid .jumbotron {
4945
+ padding-right: 60px;
4946
+ padding-left: 60px;
4947
+ }
4948
+ .jumbotron h1,
4949
+ .jumbotron .h1 {
4950
+ font-size: 63px;
4951
+ }
4952
+ }
4953
+ .thumbnail {
4954
+ display: block;
4955
+ padding: 4px;
4956
+ margin-bottom: 20px;
4957
+ line-height: 1.42857143;
4958
+ background-color: #fff;
4959
+ border: 1px solid #ddd;
4960
+ border-radius: 4px;
4961
+ -webkit-transition: border .2s ease-in-out;
4962
+ -o-transition: border .2s ease-in-out;
4963
+ transition: border .2s ease-in-out;
4964
+ }
4965
+ .thumbnail > img,
4966
+ .thumbnail a > img {
4967
+ margin-right: auto;
4968
+ margin-left: auto;
4969
+ }
4970
+ a.thumbnail:hover,
4971
+ a.thumbnail:focus,
4972
+ a.thumbnail.active {
4973
+ border-color: #337ab7;
4974
+ }
4975
+ .thumbnail .caption {
4976
+ padding: 9px;
4977
+ color: #333;
4978
+ }
4979
+ .alert {
4980
+ padding: 15px;
4981
+ margin-bottom: 20px;
4982
+ border: 1px solid transparent;
4983
+ border-radius: 4px;
4984
+ }
4985
+ .alert h4 {
4986
+ margin-top: 0;
4987
+ color: inherit;
4988
+ }
4989
+ .alert .alert-link {
4990
+ font-weight: bold;
4991
+ }
4992
+ .alert > p,
4993
+ .alert > ul {
4994
+ margin-bottom: 0;
4995
+ }
4996
+ .alert > p + p {
4997
+ margin-top: 5px;
4998
+ }
4999
+ .alert-dismissable,
5000
+ .alert-dismissible {
5001
+ padding-right: 35px;
5002
+ }
5003
+ .alert-dismissable .close,
5004
+ .alert-dismissible .close {
5005
+ position: relative;
5006
+ top: -2px;
5007
+ right: -21px;
5008
+ color: inherit;
5009
+ }
5010
+ .alert-success {
5011
+ color: #3c763d;
5012
+ background-color: #dff0d8;
5013
+ border-color: #d6e9c6;
5014
+ }
5015
+ .alert-success hr {
5016
+ border-top-color: #c9e2b3;
5017
+ }
5018
+ .alert-success .alert-link {
5019
+ color: #2b542c;
5020
+ }
5021
+ .alert-info {
5022
+ color: #31708f;
5023
+ background-color: #d9edf7;
5024
+ border-color: #bce8f1;
5025
+ }
5026
+ .alert-info hr {
5027
+ border-top-color: #a6e1ec;
5028
+ }
5029
+ .alert-info .alert-link {
5030
+ color: #245269;
5031
+ }
5032
+ .alert-warning {
5033
+ color: #8a6d3b;
5034
+ background-color: #fcf8e3;
5035
+ border-color: #faebcc;
5036
+ }
5037
+ .alert-warning hr {
5038
+ border-top-color: #f7e1b5;
5039
+ }
5040
+ .alert-warning .alert-link {
5041
+ color: #66512c;
5042
+ }
5043
+ .alert-danger {
5044
+ color: #a94442;
5045
+ background-color: #f2dede;
5046
+ border-color: #ebccd1;
5047
+ }
5048
+ .alert-danger hr {
5049
+ border-top-color: #e4b9c0;
5050
+ }
5051
+ .alert-danger .alert-link {
5052
+ color: #843534;
5053
+ }
5054
+ @-webkit-keyframes progress-bar-stripes {
5055
+ from {
5056
+ background-position: 40px 0;
5057
+ }
5058
+ to {
5059
+ background-position: 0 0;
5060
+ }
5061
+ }
5062
+ @-o-keyframes progress-bar-stripes {
5063
+ from {
5064
+ background-position: 40px 0;
5065
+ }
5066
+ to {
5067
+ background-position: 0 0;
5068
+ }
5069
+ }
5070
+ @keyframes progress-bar-stripes {
5071
+ from {
5072
+ background-position: 40px 0;
5073
+ }
5074
+ to {
5075
+ background-position: 0 0;
5076
+ }
5077
+ }
5078
+ .progress {
5079
+ height: 20px;
5080
+ margin-bottom: 20px;
5081
+ overflow: hidden;
5082
+ background-color: #f5f5f5;
5083
+ border-radius: 4px;
5084
+ -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1);
5085
+ box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1);
5086
+ }
5087
+ .progress-bar {
5088
+ float: left;
5089
+ width: 0;
5090
+ height: 100%;
5091
+ font-size: 12px;
5092
+ line-height: 20px;
5093
+ color: #fff;
5094
+ text-align: center;
5095
+ background-color: #337ab7;
5096
+ -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15);
5097
+ box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15);
5098
+ -webkit-transition: width .6s ease;
5099
+ -o-transition: width .6s ease;
5100
+ transition: width .6s ease;
5101
+ }
5102
+ .progress-striped .progress-bar,
5103
+ .progress-bar-striped {
5104
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
5105
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
5106
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
5107
+ -webkit-background-size: 40px 40px;
5108
+ background-size: 40px 40px;
5109
+ }
5110
+ .progress.active .progress-bar,
5111
+ .progress-bar.active {
5112
+ -webkit-animation: progress-bar-stripes 2s linear infinite;
5113
+ -o-animation: progress-bar-stripes 2s linear infinite;
5114
+ animation: progress-bar-stripes 2s linear infinite;
5115
+ }
5116
+ .progress-bar-success {
5117
+ background-color: #5cb85c;
5118
+ }
5119
+ .progress-striped .progress-bar-success {
5120
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
5121
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
5122
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
5123
+ }
5124
+ .progress-bar-info {
5125
+ background-color: #5bc0de;
5126
+ }
5127
+ .progress-striped .progress-bar-info {
5128
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
5129
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
5130
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
5131
+ }
5132
+ .progress-bar-warning {
5133
+ background-color: #f0ad4e;
5134
+ }
5135
+ .progress-striped .progress-bar-warning {
5136
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
5137
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
5138
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
5139
+ }
5140
+ .progress-bar-danger {
5141
+ background-color: #d9534f;
5142
+ }
5143
+ .progress-striped .progress-bar-danger {
5144
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
5145
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
5146
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
5147
+ }
5148
+ .media {
5149
+ margin-top: 15px;
5150
+ }
5151
+ .media:first-child {
5152
+ margin-top: 0;
5153
+ }
5154
+ .media,
5155
+ .media-body {
5156
+ overflow: hidden;
5157
+ zoom: 1;
5158
+ }
5159
+ .media-body {
5160
+ width: 10000px;
5161
+ }
5162
+ .media-object {
5163
+ display: block;
5164
+ }
5165
+ .media-object.img-thumbnail {
5166
+ max-width: none;
5167
+ }
5168
+ .media-right,
5169
+ .media > .pull-right {
5170
+ padding-left: 10px;
5171
+ }
5172
+ .media-left,
5173
+ .media > .pull-left {
5174
+ padding-right: 10px;
5175
+ }
5176
+ .media-left,
5177
+ .media-right,
5178
+ .media-body {
5179
+ display: table-cell;
5180
+ vertical-align: top;
5181
+ }
5182
+ .media-middle {
5183
+ vertical-align: middle;
5184
+ }
5185
+ .media-bottom {
5186
+ vertical-align: bottom;
5187
+ }
5188
+ .media-heading {
5189
+ margin-top: 0;
5190
+ margin-bottom: 5px;
5191
+ }
5192
+ .media-list {
5193
+ padding-left: 0;
5194
+ list-style: none;
5195
+ }
5196
+ .list-group {
5197
+ padding-left: 0;
5198
+ margin-bottom: 20px;
5199
+ }
5200
+ .list-group-item {
5201
+ position: relative;
5202
+ display: block;
5203
+ padding: 10px 15px;
5204
+ margin-bottom: -1px;
5205
+ background-color: #fff;
5206
+ border: 1px solid #ddd;
5207
+ }
5208
+ .list-group-item:first-child {
5209
+ border-top-left-radius: 4px;
5210
+ border-top-right-radius: 4px;
5211
+ }
5212
+ .list-group-item:last-child {
5213
+ margin-bottom: 0;
5214
+ border-bottom-right-radius: 4px;
5215
+ border-bottom-left-radius: 4px;
5216
+ }
5217
+ a.list-group-item,
5218
+ button.list-group-item {
5219
+ color: #555;
5220
+ }
5221
+ a.list-group-item .list-group-item-heading,
5222
+ button.list-group-item .list-group-item-heading {
5223
+ color: #333;
5224
+ }
5225
+ a.list-group-item:hover,
5226
+ button.list-group-item:hover,
5227
+ a.list-group-item:focus,
5228
+ button.list-group-item:focus {
5229
+ color: #555;
5230
+ text-decoration: none;
5231
+ background-color: #f5f5f5;
5232
+ }
5233
+ button.list-group-item {
5234
+ width: 100%;
5235
+ text-align: left;
5236
+ }
5237
+ .list-group-item.disabled,
5238
+ .list-group-item.disabled:hover,
5239
+ .list-group-item.disabled:focus {
5240
+ color: #777;
5241
+ cursor: not-allowed;
5242
+ background-color: #eee;
5243
+ }
5244
+ .list-group-item.disabled .list-group-item-heading,
5245
+ .list-group-item.disabled:hover .list-group-item-heading,
5246
+ .list-group-item.disabled:focus .list-group-item-heading {
5247
+ color: inherit;
5248
+ }
5249
+ .list-group-item.disabled .list-group-item-text,
5250
+ .list-group-item.disabled:hover .list-group-item-text,
5251
+ .list-group-item.disabled:focus .list-group-item-text {
5252
+ color: #777;
5253
+ }
5254
+ .list-group-item.active,
5255
+ .list-group-item.active:hover,
5256
+ .list-group-item.active:focus {
5257
+ z-index: 2;
5258
+ color: #fff;
5259
+ background-color: #337ab7;
5260
+ border-color: #337ab7;
5261
+ }
5262
+ .list-group-item.active .list-group-item-heading,
5263
+ .list-group-item.active:hover .list-group-item-heading,
5264
+ .list-group-item.active:focus .list-group-item-heading,
5265
+ .list-group-item.active .list-group-item-heading > small,
5266
+ .list-group-item.active:hover .list-group-item-heading > small,
5267
+ .list-group-item.active:focus .list-group-item-heading > small,
5268
+ .list-group-item.active .list-group-item-heading > .small,
5269
+ .list-group-item.active:hover .list-group-item-heading > .small,
5270
+ .list-group-item.active:focus .list-group-item-heading > .small {
5271
+ color: inherit;
5272
+ }
5273
+ .list-group-item.active .list-group-item-text,
5274
+ .list-group-item.active:hover .list-group-item-text,
5275
+ .list-group-item.active:focus .list-group-item-text {
5276
+ color: #c7ddef;
5277
+ }
5278
+ .list-group-item-success {
5279
+ color: #3c763d;
5280
+ background-color: #dff0d8;
5281
+ }
5282
+ a.list-group-item-success,
5283
+ button.list-group-item-success {
5284
+ color: #3c763d;
5285
+ }
5286
+ a.list-group-item-success .list-group-item-heading,
5287
+ button.list-group-item-success .list-group-item-heading {
5288
+ color: inherit;
5289
+ }
5290
+ a.list-group-item-success:hover,
5291
+ button.list-group-item-success:hover,
5292
+ a.list-group-item-success:focus,
5293
+ button.list-group-item-success:focus {
5294
+ color: #3c763d;
5295
+ background-color: #d0e9c6;
5296
+ }
5297
+ a.list-group-item-success.active,
5298
+ button.list-group-item-success.active,
5299
+ a.list-group-item-success.active:hover,
5300
+ button.list-group-item-success.active:hover,
5301
+ a.list-group-item-success.active:focus,
5302
+ button.list-group-item-success.active:focus {
5303
+ color: #fff;
5304
+ background-color: #3c763d;
5305
+ border-color: #3c763d;
5306
+ }
5307
+ .list-group-item-info {
5308
+ color: #31708f;
5309
+ background-color: #d9edf7;
5310
+ }
5311
+ a.list-group-item-info,
5312
+ button.list-group-item-info {
5313
+ color: #31708f;
5314
+ }
5315
+ a.list-group-item-info .list-group-item-heading,
5316
+ button.list-group-item-info .list-group-item-heading {
5317
+ color: inherit;
5318
+ }
5319
+ a.list-group-item-info:hover,
5320
+ button.list-group-item-info:hover,
5321
+ a.list-group-item-info:focus,
5322
+ button.list-group-item-info:focus {
5323
+ color: #31708f;
5324
+ background-color: #c4e3f3;
5325
+ }
5326
+ a.list-group-item-info.active,
5327
+ button.list-group-item-info.active,
5328
+ a.list-group-item-info.active:hover,
5329
+ button.list-group-item-info.active:hover,
5330
+ a.list-group-item-info.active:focus,
5331
+ button.list-group-item-info.active:focus {
5332
+ color: #fff;
5333
+ background-color: #31708f;
5334
+ border-color: #31708f;
5335
+ }
5336
+ .list-group-item-warning {
5337
+ color: #8a6d3b;
5338
+ background-color: #fcf8e3;
5339
+ }
5340
+ a.list-group-item-warning,
5341
+ button.list-group-item-warning {
5342
+ color: #8a6d3b;
5343
+ }
5344
+ a.list-group-item-warning .list-group-item-heading,
5345
+ button.list-group-item-warning .list-group-item-heading {
5346
+ color: inherit;
5347
+ }
5348
+ a.list-group-item-warning:hover,
5349
+ button.list-group-item-warning:hover,
5350
+ a.list-group-item-warning:focus,
5351
+ button.list-group-item-warning:focus {
5352
+ color: #8a6d3b;
5353
+ background-color: #faf2cc;
5354
+ }
5355
+ a.list-group-item-warning.active,
5356
+ button.list-group-item-warning.active,
5357
+ a.list-group-item-warning.active:hover,
5358
+ button.list-group-item-warning.active:hover,
5359
+ a.list-group-item-warning.active:focus,
5360
+ button.list-group-item-warning.active:focus {
5361
+ color: #fff;
5362
+ background-color: #8a6d3b;
5363
+ border-color: #8a6d3b;
5364
+ }
5365
+ .list-group-item-danger {
5366
+ color: #a94442;
5367
+ background-color: #f2dede;
5368
+ }
5369
+ a.list-group-item-danger,
5370
+ button.list-group-item-danger {
5371
+ color: #a94442;
5372
+ }
5373
+ a.list-group-item-danger .list-group-item-heading,
5374
+ button.list-group-item-danger .list-group-item-heading {
5375
+ color: inherit;
5376
+ }
5377
+ a.list-group-item-danger:hover,
5378
+ button.list-group-item-danger:hover,
5379
+ a.list-group-item-danger:focus,
5380
+ button.list-group-item-danger:focus {
5381
+ color: #a94442;
5382
+ background-color: #ebcccc;
5383
+ }
5384
+ a.list-group-item-danger.active,
5385
+ button.list-group-item-danger.active,
5386
+ a.list-group-item-danger.active:hover,
5387
+ button.list-group-item-danger.active:hover,
5388
+ a.list-group-item-danger.active:focus,
5389
+ button.list-group-item-danger.active:focus {
5390
+ color: #fff;
5391
+ background-color: #a94442;
5392
+ border-color: #a94442;
5393
+ }
5394
+ .list-group-item-heading {
5395
+ margin-top: 0;
5396
+ margin-bottom: 5px;
5397
+ }
5398
+ .list-group-item-text {
5399
+ margin-bottom: 0;
5400
+ line-height: 1.3;
5401
+ }
5402
+ .panel {
5403
+ margin-bottom: 20px;
5404
+ background-color: #fff;
5405
+ border: 1px solid transparent;
5406
+ border-radius: 4px;
5407
+ -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
5408
+ box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
5409
+ }
5410
+ .panel-body {
5411
+ padding: 15px;
5412
+ }
5413
+ .panel-heading {
5414
+ padding: 10px 15px;
5415
+ border-bottom: 1px solid transparent;
5416
+ border-top-left-radius: 3px;
5417
+ border-top-right-radius: 3px;
5418
+ }
5419
+ .panel-heading > .dropdown .dropdown-toggle {
5420
+ color: inherit;
5421
+ }
5422
+ .panel-title {
5423
+ margin-top: 0;
5424
+ margin-bottom: 0;
5425
+ font-size: 16px;
5426
+ color: inherit;
5427
+ }
5428
+ .panel-title > a,
5429
+ .panel-title > small,
5430
+ .panel-title > .small,
5431
+ .panel-title > small > a,
5432
+ .panel-title > .small > a {
5433
+ color: inherit;
5434
+ }
5435
+ .panel-footer {
5436
+ padding: 10px 15px;
5437
+ background-color: #f5f5f5;
5438
+ border-top: 1px solid #ddd;
5439
+ border-bottom-right-radius: 3px;
5440
+ border-bottom-left-radius: 3px;
5441
+ }
5442
+ .panel > .list-group,
5443
+ .panel > .panel-collapse > .list-group {
5444
+ margin-bottom: 0;
5445
+ }
5446
+ .panel > .list-group .list-group-item,
5447
+ .panel > .panel-collapse > .list-group .list-group-item {
5448
+ border-width: 1px 0;
5449
+ border-radius: 0;
5450
+ }
5451
+ .panel > .list-group:first-child .list-group-item:first-child,
5452
+ .panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {
5453
+ border-top: 0;
5454
+ border-top-left-radius: 3px;
5455
+ border-top-right-radius: 3px;
5456
+ }
5457
+ .panel > .list-group:last-child .list-group-item:last-child,
5458
+ .panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {
5459
+ border-bottom: 0;
5460
+ border-bottom-right-radius: 3px;
5461
+ border-bottom-left-radius: 3px;
5462
+ }
5463
+ .panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {
5464
+ border-top-left-radius: 0;
5465
+ border-top-right-radius: 0;
5466
+ }
5467
+ .panel-heading + .list-group .list-group-item:first-child {
5468
+ border-top-width: 0;
5469
+ }
5470
+ .list-group + .panel-footer {
5471
+ border-top-width: 0;
5472
+ }
5473
+ .panel > .table,
5474
+ .panel > .table-responsive > .table,
5475
+ .panel > .panel-collapse > .table {
5476
+ margin-bottom: 0;
5477
+ }
5478
+ .panel > .table caption,
5479
+ .panel > .table-responsive > .table caption,
5480
+ .panel > .panel-collapse > .table caption {
5481
+ padding-right: 15px;
5482
+ padding-left: 15px;
5483
+ }
5484
+ .panel > .table:first-child,
5485
+ .panel > .table-responsive:first-child > .table:first-child {
5486
+ border-top-left-radius: 3px;
5487
+ border-top-right-radius: 3px;
5488
+ }
5489
+ .panel > .table:first-child > thead:first-child > tr:first-child,
5490
+ .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,
5491
+ .panel > .table:first-child > tbody:first-child > tr:first-child,
5492
+ .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {
5493
+ border-top-left-radius: 3px;
5494
+ border-top-right-radius: 3px;
5495
+ }
5496
+ .panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
5497
+ .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
5498
+ .panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
5499
+ .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,
5500
+ .panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
5501
+ .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,
5502
+ .panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
5503
+ .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {
5504
+ border-top-left-radius: 3px;
5505
+ }
5506
+ .panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
5507
+ .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,
5508
+ .panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
5509
+ .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,
5510
+ .panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
5511
+ .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,
5512
+ .panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
5513
+ .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {
5514
+ border-top-right-radius: 3px;
5515
+ }
5516
+ .panel > .table:last-child,
5517
+ .panel > .table-responsive:last-child > .table:last-child {
5518
+ border-bottom-right-radius: 3px;
5519
+ border-bottom-left-radius: 3px;
5520
+ }
5521
+ .panel > .table:last-child > tbody:last-child > tr:last-child,
5522
+ .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,
5523
+ .panel > .table:last-child > tfoot:last-child > tr:last-child,
5524
+ .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {
5525
+ border-bottom-right-radius: 3px;
5526
+ border-bottom-left-radius: 3px;
5527
+ }
5528
+ .panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
5529
+ .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
5530
+ .panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
5531
+ .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
5532
+ .panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
5533
+ .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,
5534
+ .panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
5535
+ .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {
5536
+ border-bottom-left-radius: 3px;
5537
+ }
5538
+ .panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
5539
+ .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,
5540
+ .panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
5541
+ .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
5542
+ .panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
5543
+ .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,
5544
+ .panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
5545
+ .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {
5546
+ border-bottom-right-radius: 3px;
5547
+ }
5548
+ .panel > .panel-body + .table,
5549
+ .panel > .panel-body + .table-responsive,
5550
+ .panel > .table + .panel-body,
5551
+ .panel > .table-responsive + .panel-body {
5552
+ border-top: 1px solid #ddd;
5553
+ }
5554
+ .panel > .table > tbody:first-child > tr:first-child th,
5555
+ .panel > .table > tbody:first-child > tr:first-child td {
5556
+ border-top: 0;
5557
+ }
5558
+ .panel > .table-bordered,
5559
+ .panel > .table-responsive > .table-bordered {
5560
+ border: 0;
5561
+ }
5562
+ .panel > .table-bordered > thead > tr > th:first-child,
5563
+ .panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
5564
+ .panel > .table-bordered > tbody > tr > th:first-child,
5565
+ .panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
5566
+ .panel > .table-bordered > tfoot > tr > th:first-child,
5567
+ .panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
5568
+ .panel > .table-bordered > thead > tr > td:first-child,
5569
+ .panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
5570
+ .panel > .table-bordered > tbody > tr > td:first-child,
5571
+ .panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
5572
+ .panel > .table-bordered > tfoot > tr > td:first-child,
5573
+ .panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
5574
+ border-left: 0;
5575
+ }
5576
+ .panel > .table-bordered > thead > tr > th:last-child,
5577
+ .panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
5578
+ .panel > .table-bordered > tbody > tr > th:last-child,
5579
+ .panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
5580
+ .panel > .table-bordered > tfoot > tr > th:last-child,
5581
+ .panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
5582
+ .panel > .table-bordered > thead > tr > td:last-child,
5583
+ .panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
5584
+ .panel > .table-bordered > tbody > tr > td:last-child,
5585
+ .panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
5586
+ .panel > .table-bordered > tfoot > tr > td:last-child,
5587
+ .panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
5588
+ border-right: 0;
5589
+ }
5590
+ .panel > .table-bordered > thead > tr:first-child > td,
5591
+ .panel > .table-responsive > .table-bordered > thead > tr:first-child > td,
5592
+ .panel > .table-bordered > tbody > tr:first-child > td,
5593
+ .panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,
5594
+ .panel > .table-bordered > thead > tr:first-child > th,
5595
+ .panel > .table-responsive > .table-bordered > thead > tr:first-child > th,
5596
+ .panel > .table-bordered > tbody > tr:first-child > th,
5597
+ .panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {
5598
+ border-bottom: 0;
5599
+ }
5600
+ .panel > .table-bordered > tbody > tr:last-child > td,
5601
+ .panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,
5602
+ .panel > .table-bordered > tfoot > tr:last-child > td,
5603
+ .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,
5604
+ .panel > .table-bordered > tbody > tr:last-child > th,
5605
+ .panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
5606
+ .panel > .table-bordered > tfoot > tr:last-child > th,
5607
+ .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {
5608
+ border-bottom: 0;
5609
+ }
5610
+ .panel > .table-responsive {
5611
+ margin-bottom: 0;
5612
+ border: 0;
5613
+ }
5614
+ .panel-group {
5615
+ margin-bottom: 20px;
5616
+ }
5617
+ .panel-group .panel {
5618
+ margin-bottom: 0;
5619
+ border-radius: 4px;
5620
+ }
5621
+ .panel-group .panel + .panel {
5622
+ margin-top: 5px;
5623
+ }
5624
+ .panel-group .panel-heading {
5625
+ border-bottom: 0;
5626
+ }
5627
+ .panel-group .panel-heading + .panel-collapse > .panel-body,
5628
+ .panel-group .panel-heading + .panel-collapse > .list-group {
5629
+ border-top: 1px solid #ddd;
5630
+ }
5631
+ .panel-group .panel-footer {
5632
+ border-top: 0;
5633
+ }
5634
+ .panel-group .panel-footer + .panel-collapse .panel-body {
5635
+ border-bottom: 1px solid #ddd;
5636
+ }
5637
+ .panel-default {
5638
+ border-color: #ddd;
5639
+ }
5640
+ .panel-default > .panel-heading {
5641
+ color: #333;
5642
+ background-color: #f5f5f5;
5643
+ border-color: #ddd;
5644
+ }
5645
+ .panel-default > .panel-heading + .panel-collapse > .panel-body {
5646
+ border-top-color: #ddd;
5647
+ }
5648
+ .panel-default > .panel-heading .badge {
5649
+ color: #f5f5f5;
5650
+ background-color: #333;
5651
+ }
5652
+ .panel-default > .panel-footer + .panel-collapse > .panel-body {
5653
+ border-bottom-color: #ddd;
5654
+ }
5655
+ .panel-primary {
5656
+ border-color: #337ab7;
5657
+ }
5658
+ .panel-primary > .panel-heading {
5659
+ color: #fff;
5660
+ background-color: #337ab7;
5661
+ border-color: #337ab7;
5662
+ }
5663
+ .panel-primary > .panel-heading + .panel-collapse > .panel-body {
5664
+ border-top-color: #337ab7;
5665
+ }
5666
+ .panel-primary > .panel-heading .badge {
5667
+ color: #337ab7;
5668
+ background-color: #fff;
5669
+ }
5670
+ .panel-primary > .panel-footer + .panel-collapse > .panel-body {
5671
+ border-bottom-color: #337ab7;
5672
+ }
5673
+ .panel-success {
5674
+ border-color: #d6e9c6;
5675
+ }
5676
+ .panel-success > .panel-heading {
5677
+ color: #3c763d;
5678
+ background-color: #dff0d8;
5679
+ border-color: #d6e9c6;
5680
+ }
5681
+ .panel-success > .panel-heading + .panel-collapse > .panel-body {
5682
+ border-top-color: #d6e9c6;
5683
+ }
5684
+ .panel-success > .panel-heading .badge {
5685
+ color: #dff0d8;
5686
+ background-color: #3c763d;
5687
+ }
5688
+ .panel-success > .panel-footer + .panel-collapse > .panel-body {
5689
+ border-bottom-color: #d6e9c6;
5690
+ }
5691
+ .panel-info {
5692
+ border-color: #bce8f1;
5693
+ }
5694
+ .panel-info > .panel-heading {
5695
+ color: #31708f;
5696
+ background-color: #d9edf7;
5697
+ border-color: #bce8f1;
5698
+ }
5699
+ .panel-info > .panel-heading + .panel-collapse > .panel-body {
5700
+ border-top-color: #bce8f1;
5701
+ }
5702
+ .panel-info > .panel-heading .badge {
5703
+ color: #d9edf7;
5704
+ background-color: #31708f;
5705
+ }
5706
+ .panel-info > .panel-footer + .panel-collapse > .panel-body {
5707
+ border-bottom-color: #bce8f1;
5708
+ }
5709
+ .panel-warning {
5710
+ border-color: #faebcc;
5711
+ }
5712
+ .panel-warning > .panel-heading {
5713
+ color: #8a6d3b;
5714
+ background-color: #fcf8e3;
5715
+ border-color: #faebcc;
5716
+ }
5717
+ .panel-warning > .panel-heading + .panel-collapse > .panel-body {
5718
+ border-top-color: #faebcc;
5719
+ }
5720
+ .panel-warning > .panel-heading .badge {
5721
+ color: #fcf8e3;
5722
+ background-color: #8a6d3b;
5723
+ }
5724
+ .panel-warning > .panel-footer + .panel-collapse > .panel-body {
5725
+ border-bottom-color: #faebcc;
5726
+ }
5727
+ .panel-danger {
5728
+ border-color: #ebccd1;
5729
+ }
5730
+ .panel-danger > .panel-heading {
5731
+ color: #a94442;
5732
+ background-color: #f2dede;
5733
+ border-color: #ebccd1;
5734
+ }
5735
+ .panel-danger > .panel-heading + .panel-collapse > .panel-body {
5736
+ border-top-color: #ebccd1;
5737
+ }
5738
+ .panel-danger > .panel-heading .badge {
5739
+ color: #f2dede;
5740
+ background-color: #a94442;
5741
+ }
5742
+ .panel-danger > .panel-footer + .panel-collapse > .panel-body {
5743
+ border-bottom-color: #ebccd1;
5744
+ }
5745
+ .embed-responsive {
5746
+ position: relative;
5747
+ display: block;
5748
+ height: 0;
5749
+ padding: 0;
5750
+ overflow: hidden;
5751
+ }
5752
+ .embed-responsive .embed-responsive-item,
5753
+ .embed-responsive iframe,
5754
+ .embed-responsive embed,
5755
+ .embed-responsive object,
5756
+ .embed-responsive video {
5757
+ position: absolute;
5758
+ top: 0;
5759
+ bottom: 0;
5760
+ left: 0;
5761
+ width: 100%;
5762
+ height: 100%;
5763
+ border: 0;
5764
+ }
5765
+ .embed-responsive-16by9 {
5766
+ padding-bottom: 56.25%;
5767
+ }
5768
+ .embed-responsive-4by3 {
5769
+ padding-bottom: 75%;
5770
+ }
5771
+ .well {
5772
+ min-height: 20px;
5773
+ padding: 19px;
5774
+ margin-bottom: 20px;
5775
+ background-color: #f5f5f5;
5776
+ border: 1px solid #e3e3e3;
5777
+ border-radius: 4px;
5778
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05);
5779
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05);
5780
+ }
5781
+ .well blockquote {
5782
+ border-color: #ddd;
5783
+ border-color: rgba(0, 0, 0, .15);
5784
+ }
5785
+ .well-lg {
5786
+ padding: 24px;
5787
+ border-radius: 6px;
5788
+ }
5789
+ .well-sm {
5790
+ padding: 9px;
5791
+ border-radius: 3px;
5792
+ }
5793
+ .close {
5794
+ float: right;
5795
+ font-size: 21px;
5796
+ font-weight: bold;
5797
+ line-height: 1;
5798
+ color: #000;
5799
+ text-shadow: 0 1px 0 #fff;
5800
+ filter: alpha(opacity=20);
5801
+ opacity: .2;
5802
+ }
5803
+ .close:hover,
5804
+ .close:focus {
5805
+ color: #000;
5806
+ text-decoration: none;
5807
+ cursor: pointer;
5808
+ filter: alpha(opacity=50);
5809
+ opacity: .5;
5810
+ }
5811
+ button.close {
5812
+ -webkit-appearance: none;
5813
+ padding: 0;
5814
+ cursor: pointer;
5815
+ background: transparent;
5816
+ border: 0;
5817
+ }
5818
+ .modal-open {
5819
+ overflow: hidden;
5820
+ }
5821
+ .modal {
5822
+ position: fixed;
5823
+ top: 0;
5824
+ right: 0;
5825
+ bottom: 0;
5826
+ left: 0;
5827
+ z-index: 1050;
5828
+ display: none;
5829
+ overflow: hidden;
5830
+ -webkit-overflow-scrolling: touch;
5831
+ outline: 0;
5832
+ }
5833
+ .modal.fade .modal-dialog {
5834
+ -webkit-transition: -webkit-transform .3s ease-out;
5835
+ -o-transition: -o-transform .3s ease-out;
5836
+ transition: transform .3s ease-out;
5837
+ -webkit-transform: translate(0, -25%);
5838
+ -ms-transform: translate(0, -25%);
5839
+ -o-transform: translate(0, -25%);
5840
+ transform: translate(0, -25%);
5841
+ }
5842
+ .modal.in .modal-dialog {
5843
+ -webkit-transform: translate(0, 0);
5844
+ -ms-transform: translate(0, 0);
5845
+ -o-transform: translate(0, 0);
5846
+ transform: translate(0, 0);
5847
+ }
5848
+ .modal-open .modal {
5849
+ overflow-x: hidden;
5850
+ overflow-y: auto;
5851
+ }
5852
+ .modal-dialog {
5853
+ position: relative;
5854
+ width: auto;
5855
+ margin: 10px;
5856
+ }
5857
+ .modal-content {
5858
+ position: relative;
5859
+ background-color: #fff;
5860
+ -webkit-background-clip: padding-box;
5861
+ background-clip: padding-box;
5862
+ border: 1px solid #999;
5863
+ border: 1px solid rgba(0, 0, 0, .2);
5864
+ border-radius: 6px;
5865
+ outline: 0;
5866
+ -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5);
5867
+ box-shadow: 0 3px 9px rgba(0, 0, 0, .5);
5868
+ }
5869
+ .modal-backdrop {
5870
+ position: fixed;
5871
+ top: 0;
5872
+ right: 0;
5873
+ bottom: 0;
5874
+ left: 0;
5875
+ z-index: 1040;
5876
+ background-color: #000;
5877
+ }
5878
+ .modal-backdrop.fade {
5879
+ filter: alpha(opacity=0);
5880
+ opacity: 0;
5881
+ }
5882
+ .modal-backdrop.in {
5883
+ filter: alpha(opacity=50);
5884
+ opacity: .5;
5885
+ }
5886
+ .modal-header {
5887
+ padding: 15px;
5888
+ border-bottom: 1px solid #e5e5e5;
5889
+ }
5890
+ .modal-header .close {
5891
+ margin-top: -2px;
5892
+ }
5893
+ .modal-title {
5894
+ margin: 0;
5895
+ line-height: 1.42857143;
5896
+ }
5897
+ .modal-body {
5898
+ position: relative;
5899
+ padding: 15px;
5900
+ }
5901
+ .modal-footer {
5902
+ padding: 15px;
5903
+ text-align: right;
5904
+ border-top: 1px solid #e5e5e5;
5905
+ }
5906
+ .modal-footer .btn + .btn {
5907
+ margin-bottom: 0;
5908
+ margin-left: 5px;
5909
+ }
5910
+ .modal-footer .btn-group .btn + .btn {
5911
+ margin-left: -1px;
5912
+ }
5913
+ .modal-footer .btn-block + .btn-block {
5914
+ margin-left: 0;
5915
+ }
5916
+ .modal-scrollbar-measure {
5917
+ position: absolute;
5918
+ top: -9999px;
5919
+ width: 50px;
5920
+ height: 50px;
5921
+ overflow: scroll;
5922
+ }
5923
+ @media (min-width: 768px) {
5924
+ .modal-dialog {
5925
+ width: 600px;
5926
+ margin: 30px auto;
5927
+ }
5928
+ .modal-content {
5929
+ -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5);
5930
+ box-shadow: 0 5px 15px rgba(0, 0, 0, .5);
5931
+ }
5932
+ .modal-sm {
5933
+ width: 300px;
5934
+ }
5935
+ }
5936
+ @media (min-width: 992px) {
5937
+ .modal-lg {
5938
+ width: 900px;
5939
+ }
5940
+ }
5941
+ .tooltip {
5942
+ position: absolute;
5943
+ z-index: 1070;
5944
+ display: block;
5945
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
5946
+ font-size: 12px;
5947
+ font-style: normal;
5948
+ font-weight: normal;
5949
+ line-height: 1.42857143;
5950
+ text-align: left;
5951
+ text-align: start;
5952
+ text-decoration: none;
5953
+ text-shadow: none;
5954
+ text-transform: none;
5955
+ letter-spacing: normal;
5956
+ word-break: normal;
5957
+ word-spacing: normal;
5958
+ word-wrap: normal;
5959
+ white-space: normal;
5960
+ filter: alpha(opacity=0);
5961
+ opacity: 0;
5962
+
5963
+ line-break: auto;
5964
+ }
5965
+ .tooltip.in {
5966
+ filter: alpha(opacity=90);
5967
+ opacity: .9;
5968
+ }
5969
+ .tooltip.top {
5970
+ padding: 5px 0;
5971
+ margin-top: -3px;
5972
+ }
5973
+ .tooltip.right {
5974
+ padding: 0 5px;
5975
+ margin-left: 3px;
5976
+ }
5977
+ .tooltip.bottom {
5978
+ padding: 5px 0;
5979
+ margin-top: 3px;
5980
+ }
5981
+ .tooltip.left {
5982
+ padding: 0 5px;
5983
+ margin-left: -3px;
5984
+ }
5985
+ .tooltip-inner {
5986
+ max-width: 200px;
5987
+ padding: 3px 8px;
5988
+ color: #fff;
5989
+ text-align: center;
5990
+ background-color: #000;
5991
+ border-radius: 4px;
5992
+ }
5993
+ .tooltip-arrow {
5994
+ position: absolute;
5995
+ width: 0;
5996
+ height: 0;
5997
+ border-color: transparent;
5998
+ border-style: solid;
5999
+ }
6000
+ .tooltip.top .tooltip-arrow {
6001
+ bottom: 0;
6002
+ left: 50%;
6003
+ margin-left: -5px;
6004
+ border-width: 5px 5px 0;
6005
+ border-top-color: #000;
6006
+ }
6007
+ .tooltip.top-left .tooltip-arrow {
6008
+ right: 5px;
6009
+ bottom: 0;
6010
+ margin-bottom: -5px;
6011
+ border-width: 5px 5px 0;
6012
+ border-top-color: #000;
6013
+ }
6014
+ .tooltip.top-right .tooltip-arrow {
6015
+ bottom: 0;
6016
+ left: 5px;
6017
+ margin-bottom: -5px;
6018
+ border-width: 5px 5px 0;
6019
+ border-top-color: #000;
6020
+ }
6021
+ .tooltip.right .tooltip-arrow {
6022
+ top: 50%;
6023
+ left: 0;
6024
+ margin-top: -5px;
6025
+ border-width: 5px 5px 5px 0;
6026
+ border-right-color: #000;
6027
+ }
6028
+ .tooltip.left .tooltip-arrow {
6029
+ top: 50%;
6030
+ right: 0;
6031
+ margin-top: -5px;
6032
+ border-width: 5px 0 5px 5px;
6033
+ border-left-color: #000;
6034
+ }
6035
+ .tooltip.bottom .tooltip-arrow {
6036
+ top: 0;
6037
+ left: 50%;
6038
+ margin-left: -5px;
6039
+ border-width: 0 5px 5px;
6040
+ border-bottom-color: #000;
6041
+ }
6042
+ .tooltip.bottom-left .tooltip-arrow {
6043
+ top: 0;
6044
+ right: 5px;
6045
+ margin-top: -5px;
6046
+ border-width: 0 5px 5px;
6047
+ border-bottom-color: #000;
6048
+ }
6049
+ .tooltip.bottom-right .tooltip-arrow {
6050
+ top: 0;
6051
+ left: 5px;
6052
+ margin-top: -5px;
6053
+ border-width: 0 5px 5px;
6054
+ border-bottom-color: #000;
6055
+ }
6056
+ .popover {
6057
+ position: absolute;
6058
+ top: 0;
6059
+ left: 0;
6060
+ z-index: 1060;
6061
+ display: none;
6062
+ max-width: 276px;
6063
+ padding: 1px;
6064
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
6065
+ font-size: 14px;
6066
+ font-style: normal;
6067
+ font-weight: normal;
6068
+ line-height: 1.42857143;
6069
+ text-align: left;
6070
+ text-align: start;
6071
+ text-decoration: none;
6072
+ text-shadow: none;
6073
+ text-transform: none;
6074
+ letter-spacing: normal;
6075
+ word-break: normal;
6076
+ word-spacing: normal;
6077
+ word-wrap: normal;
6078
+ white-space: normal;
6079
+ background-color: #fff;
6080
+ -webkit-background-clip: padding-box;
6081
+ background-clip: padding-box;
6082
+ border: 1px solid #ccc;
6083
+ border: 1px solid rgba(0, 0, 0, .2);
6084
+ border-radius: 6px;
6085
+ -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2);
6086
+ box-shadow: 0 5px 10px rgba(0, 0, 0, .2);
6087
+
6088
+ line-break: auto;
6089
+ }
6090
+ .popover.top {
6091
+ margin-top: -10px;
6092
+ }
6093
+ .popover.right {
6094
+ margin-left: 10px;
6095
+ }
6096
+ .popover.bottom {
6097
+ margin-top: 10px;
6098
+ }
6099
+ .popover.left {
6100
+ margin-left: -10px;
6101
+ }
6102
+ .popover-title {
6103
+ padding: 8px 14px;
6104
+ margin: 0;
6105
+ font-size: 14px;
6106
+ background-color: #f7f7f7;
6107
+ border-bottom: 1px solid #ebebeb;
6108
+ border-radius: 5px 5px 0 0;
6109
+ }
6110
+ .popover-content {
6111
+ padding: 9px 14px;
6112
+ }
6113
+ .popover > .arrow,
6114
+ .popover > .arrow:after {
6115
+ position: absolute;
6116
+ display: block;
6117
+ width: 0;
6118
+ height: 0;
6119
+ border-color: transparent;
6120
+ border-style: solid;
6121
+ }
6122
+ .popover > .arrow {
6123
+ border-width: 11px;
6124
+ }
6125
+ .popover > .arrow:after {
6126
+ content: "";
6127
+ border-width: 10px;
6128
+ }
6129
+ .popover.top > .arrow {
6130
+ bottom: -11px;
6131
+ left: 50%;
6132
+ margin-left: -11px;
6133
+ border-top-color: #999;
6134
+ border-top-color: rgba(0, 0, 0, .25);
6135
+ border-bottom-width: 0;
6136
+ }
6137
+ .popover.top > .arrow:after {
6138
+ bottom: 1px;
6139
+ margin-left: -10px;
6140
+ content: " ";
6141
+ border-top-color: #fff;
6142
+ border-bottom-width: 0;
6143
+ }
6144
+ .popover.right > .arrow {
6145
+ top: 50%;
6146
+ left: -11px;
6147
+ margin-top: -11px;
6148
+ border-right-color: #999;
6149
+ border-right-color: rgba(0, 0, 0, .25);
6150
+ border-left-width: 0;
6151
+ }
6152
+ .popover.right > .arrow:after {
6153
+ bottom: -10px;
6154
+ left: 1px;
6155
+ content: " ";
6156
+ border-right-color: #fff;
6157
+ border-left-width: 0;
6158
+ }
6159
+ .popover.bottom > .arrow {
6160
+ top: -11px;
6161
+ left: 50%;
6162
+ margin-left: -11px;
6163
+ border-top-width: 0;
6164
+ border-bottom-color: #999;
6165
+ border-bottom-color: rgba(0, 0, 0, .25);
6166
+ }
6167
+ .popover.bottom > .arrow:after {
6168
+ top: 1px;
6169
+ margin-left: -10px;
6170
+ content: " ";
6171
+ border-top-width: 0;
6172
+ border-bottom-color: #fff;
6173
+ }
6174
+ .popover.left > .arrow {
6175
+ top: 50%;
6176
+ right: -11px;
6177
+ margin-top: -11px;
6178
+ border-right-width: 0;
6179
+ border-left-color: #999;
6180
+ border-left-color: rgba(0, 0, 0, .25);
6181
+ }
6182
+ .popover.left > .arrow:after {
6183
+ right: 1px;
6184
+ bottom: -10px;
6185
+ content: " ";
6186
+ border-right-width: 0;
6187
+ border-left-color: #fff;
6188
+ }
6189
+ .carousel {
6190
+ position: relative;
6191
+ }
6192
+ .carousel-inner {
6193
+ position: relative;
6194
+ width: 100%;
6195
+ overflow: hidden;
6196
+ }
6197
+ .carousel-inner > .item {
6198
+ position: relative;
6199
+ display: none;
6200
+ -webkit-transition: .6s ease-in-out left;
6201
+ -o-transition: .6s ease-in-out left;
6202
+ transition: .6s ease-in-out left;
6203
+ }
6204
+ .carousel-inner > .item > img,
6205
+ .carousel-inner > .item > a > img {
6206
+ line-height: 1;
6207
+ }
6208
+ @media all and (transform-3d), (-webkit-transform-3d) {
6209
+ .carousel-inner > .item {
6210
+ -webkit-transition: -webkit-transform .6s ease-in-out;
6211
+ -o-transition: -o-transform .6s ease-in-out;
6212
+ transition: transform .6s ease-in-out;
6213
+
6214
+ -webkit-backface-visibility: hidden;
6215
+ backface-visibility: hidden;
6216
+ -webkit-perspective: 1000px;
6217
+ perspective: 1000px;
6218
+ }
6219
+ .carousel-inner > .item.next,
6220
+ .carousel-inner > .item.active.right {
6221
+ left: 0;
6222
+ -webkit-transform: translate3d(100%, 0, 0);
6223
+ transform: translate3d(100%, 0, 0);
6224
+ }
6225
+ .carousel-inner > .item.prev,
6226
+ .carousel-inner > .item.active.left {
6227
+ left: 0;
6228
+ -webkit-transform: translate3d(-100%, 0, 0);
6229
+ transform: translate3d(-100%, 0, 0);
6230
+ }
6231
+ .carousel-inner > .item.next.left,
6232
+ .carousel-inner > .item.prev.right,
6233
+ .carousel-inner > .item.active {
6234
+ left: 0;
6235
+ -webkit-transform: translate3d(0, 0, 0);
6236
+ transform: translate3d(0, 0, 0);
6237
+ }
6238
+ }
6239
+ .carousel-inner > .active,
6240
+ .carousel-inner > .next,
6241
+ .carousel-inner > .prev {
6242
+ display: block;
6243
+ }
6244
+ .carousel-inner > .active {
6245
+ left: 0;
6246
+ }
6247
+ .carousel-inner > .next,
6248
+ .carousel-inner > .prev {
6249
+ position: absolute;
6250
+ top: 0;
6251
+ width: 100%;
6252
+ }
6253
+ .carousel-inner > .next {
6254
+ left: 100%;
6255
+ }
6256
+ .carousel-inner > .prev {
6257
+ left: -100%;
6258
+ }
6259
+ .carousel-inner > .next.left,
6260
+ .carousel-inner > .prev.right {
6261
+ left: 0;
6262
+ }
6263
+ .carousel-inner > .active.left {
6264
+ left: -100%;
6265
+ }
6266
+ .carousel-inner > .active.right {
6267
+ left: 100%;
6268
+ }
6269
+ .carousel-control {
6270
+ position: absolute;
6271
+ top: 0;
6272
+ bottom: 0;
6273
+ left: 0;
6274
+ width: 15%;
6275
+ font-size: 20px;
6276
+ color: #fff;
6277
+ text-align: center;
6278
+ text-shadow: 0 1px 2px rgba(0, 0, 0, .6);
6279
+ background-color: rgba(0, 0, 0, 0);
6280
+ filter: alpha(opacity=50);
6281
+ opacity: .5;
6282
+ }
6283
+ .carousel-control.left {
6284
+ background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%);
6285
+ background-image: -o-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%);
6286
+ background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .5)), to(rgba(0, 0, 0, .0001)));
6287
+ background-image: linear-gradient(to right, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%);
6288
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
6289
+ background-repeat: repeat-x;
6290
+ }
6291
+ .carousel-control.right {
6292
+ right: 0;
6293
+ left: auto;
6294
+ background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%);
6295
+ background-image: -o-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%);
6296
+ background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .0001)), to(rgba(0, 0, 0, .5)));
6297
+ background-image: linear-gradient(to right, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%);
6298
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
6299
+ background-repeat: repeat-x;
6300
+ }
6301
+ .carousel-control:hover,
6302
+ .carousel-control:focus {
6303
+ color: #fff;
6304
+ text-decoration: none;
6305
+ filter: alpha(opacity=90);
6306
+ outline: 0;
6307
+ opacity: .9;
6308
+ }
6309
+ .carousel-control .icon-prev,
6310
+ .carousel-control .icon-next,
6311
+ .carousel-control .glyphicon-chevron-left,
6312
+ .carousel-control .glyphicon-chevron-right {
6313
+ position: absolute;
6314
+ top: 50%;
6315
+ z-index: 5;
6316
+ display: inline-block;
6317
+ margin-top: -10px;
6318
+ }
6319
+ .carousel-control .icon-prev,
6320
+ .carousel-control .glyphicon-chevron-left {
6321
+ left: 50%;
6322
+ margin-left: -10px;
6323
+ }
6324
+ .carousel-control .icon-next,
6325
+ .carousel-control .glyphicon-chevron-right {
6326
+ right: 50%;
6327
+ margin-right: -10px;
6328
+ }
6329
+ .carousel-control .icon-prev,
6330
+ .carousel-control .icon-next {
6331
+ width: 20px;
6332
+ height: 20px;
6333
+ font-family: serif;
6334
+ line-height: 1;
6335
+ }
6336
+ .carousel-control .icon-prev:before {
6337
+ content: '\2039';
6338
+ }
6339
+ .carousel-control .icon-next:before {
6340
+ content: '\203a';
6341
+ }
6342
+ .carousel-indicators {
6343
+ position: absolute;
6344
+ bottom: 10px;
6345
+ left: 50%;
6346
+ z-index: 15;
6347
+ width: 60%;
6348
+ padding-left: 0;
6349
+ margin-left: -30%;
6350
+ text-align: center;
6351
+ list-style: none;
6352
+ }
6353
+ .carousel-indicators li {
6354
+ display: inline-block;
6355
+ width: 10px;
6356
+ height: 10px;
6357
+ margin: 1px;
6358
+ text-indent: -999px;
6359
+ cursor: pointer;
6360
+ background-color: #000 \9;
6361
+ background-color: rgba(0, 0, 0, 0);
6362
+ border: 1px solid #fff;
6363
+ border-radius: 10px;
6364
+ }
6365
+ .carousel-indicators .active {
6366
+ width: 12px;
6367
+ height: 12px;
6368
+ margin: 0;
6369
+ background-color: #fff;
6370
+ }
6371
+ .carousel-caption {
6372
+ position: absolute;
6373
+ right: 15%;
6374
+ bottom: 20px;
6375
+ left: 15%;
6376
+ z-index: 10;
6377
+ padding-top: 20px;
6378
+ padding-bottom: 20px;
6379
+ color: #fff;
6380
+ text-align: center;
6381
+ text-shadow: 0 1px 2px rgba(0, 0, 0, .6);
6382
+ }
6383
+ .carousel-caption .btn {
6384
+ text-shadow: none;
6385
+ }
6386
+ @media screen and (min-width: 768px) {
6387
+ .carousel-control .glyphicon-chevron-left,
6388
+ .carousel-control .glyphicon-chevron-right,
6389
+ .carousel-control .icon-prev,
6390
+ .carousel-control .icon-next {
6391
+ width: 30px;
6392
+ height: 30px;
6393
+ margin-top: -10px;
6394
+ font-size: 30px;
6395
+ }
6396
+ .carousel-control .glyphicon-chevron-left,
6397
+ .carousel-control .icon-prev {
6398
+ margin-left: -10px;
6399
+ }
6400
+ .carousel-control .glyphicon-chevron-right,
6401
+ .carousel-control .icon-next {
6402
+ margin-right: -10px;
6403
+ }
6404
+ .carousel-caption {
6405
+ right: 20%;
6406
+ left: 20%;
6407
+ padding-bottom: 30px;
6408
+ }
6409
+ .carousel-indicators {
6410
+ bottom: 20px;
6411
+ }
6412
+ }
6413
+ .clearfix:before,
6414
+ .clearfix:after,
6415
+ .dl-horizontal dd:before,
6416
+ .dl-horizontal dd:after,
6417
+ .container:before,
6418
+ .container:after,
6419
+ .container-fluid:before,
6420
+ .container-fluid:after,
6421
+ .row:before,
6422
+ .row:after,
6423
+ .form-horizontal .form-group:before,
6424
+ .form-horizontal .form-group:after,
6425
+ .btn-toolbar:before,
6426
+ .btn-toolbar:after,
6427
+ .btn-group-vertical > .btn-group:before,
6428
+ .btn-group-vertical > .btn-group:after,
6429
+ .nav:before,
6430
+ .nav:after,
6431
+ .navbar:before,
6432
+ .navbar:after,
6433
+ .navbar-header:before,
6434
+ .navbar-header:after,
6435
+ .navbar-collapse:before,
6436
+ .navbar-collapse:after,
6437
+ .pager:before,
6438
+ .pager:after,
6439
+ .panel-body:before,
6440
+ .panel-body:after,
6441
+ .modal-header:before,
6442
+ .modal-header:after,
6443
+ .modal-footer:before,
6444
+ .modal-footer:after {
6445
+ display: table;
6446
+ content: " ";
6447
+ }
6448
+ .clearfix:after,
6449
+ .dl-horizontal dd:after,
6450
+ .container:after,
6451
+ .container-fluid:after,
6452
+ .row:after,
6453
+ .form-horizontal .form-group:after,
6454
+ .btn-toolbar:after,
6455
+ .btn-group-vertical > .btn-group:after,
6456
+ .nav:after,
6457
+ .navbar:after,
6458
+ .navbar-header:after,
6459
+ .navbar-collapse:after,
6460
+ .pager:after,
6461
+ .panel-body:after,
6462
+ .modal-header:after,
6463
+ .modal-footer:after {
6464
+ clear: both;
6465
+ }
6466
+ .center-block {
6467
+ display: block;
6468
+ margin-right: auto;
6469
+ margin-left: auto;
6470
+ }
6471
+ .pull-right {
6472
+ float: right !important;
6473
+ }
6474
+ .pull-left {
6475
+ float: left !important;
6476
+ }
6477
+ .hide {
6478
+ display: none !important;
6479
+ }
6480
+ .show {
6481
+ display: block !important;
6482
+ }
6483
+ .invisible {
6484
+ visibility: hidden;
6485
+ }
6486
+ .text-hide {
6487
+ font: 0/0 a;
6488
+ color: transparent;
6489
+ text-shadow: none;
6490
+ background-color: transparent;
6491
+ border: 0;
6492
+ }
6493
+ .hidden {
6494
+ display: none !important;
6495
+ }
6496
+ .affix {
6497
+ position: fixed;
6498
+ }
6499
+ @-ms-viewport {
6500
+ width: device-width;
6501
+ }
6502
+ .visible-xs,
6503
+ .visible-sm,
6504
+ .visible-md,
6505
+ .visible-lg {
6506
+ display: none !important;
6507
+ }
6508
+ .visible-xs-block,
6509
+ .visible-xs-inline,
6510
+ .visible-xs-inline-block,
6511
+ .visible-sm-block,
6512
+ .visible-sm-inline,
6513
+ .visible-sm-inline-block,
6514
+ .visible-md-block,
6515
+ .visible-md-inline,
6516
+ .visible-md-inline-block,
6517
+ .visible-lg-block,
6518
+ .visible-lg-inline,
6519
+ .visible-lg-inline-block {
6520
+ display: none !important;
6521
+ }
6522
+ @media (max-width: 767px) {
6523
+ .visible-xs {
6524
+ display: block !important;
6525
+ }
6526
+ table.visible-xs {
6527
+ display: table !important;
6528
+ }
6529
+ tr.visible-xs {
6530
+ display: table-row !important;
6531
+ }
6532
+ th.visible-xs,
6533
+ td.visible-xs {
6534
+ display: table-cell !important;
6535
+ }
6536
+ }
6537
+ @media (max-width: 767px) {
6538
+ .visible-xs-block {
6539
+ display: block !important;
6540
+ }
6541
+ }
6542
+ @media (max-width: 767px) {
6543
+ .visible-xs-inline {
6544
+ display: inline !important;
6545
+ }
6546
+ }
6547
+ @media (max-width: 767px) {
6548
+ .visible-xs-inline-block {
6549
+ display: inline-block !important;
6550
+ }
6551
+ }
6552
+ @media (min-width: 768px) and (max-width: 991px) {
6553
+ .visible-sm {
6554
+ display: block !important;
6555
+ }
6556
+ table.visible-sm {
6557
+ display: table !important;
6558
+ }
6559
+ tr.visible-sm {
6560
+ display: table-row !important;
6561
+ }
6562
+ th.visible-sm,
6563
+ td.visible-sm {
6564
+ display: table-cell !important;
6565
+ }
6566
+ }
6567
+ @media (min-width: 768px) and (max-width: 991px) {
6568
+ .visible-sm-block {
6569
+ display: block !important;
6570
+ }
6571
+ }
6572
+ @media (min-width: 768px) and (max-width: 991px) {
6573
+ .visible-sm-inline {
6574
+ display: inline !important;
6575
+ }
6576
+ }
6577
+ @media (min-width: 768px) and (max-width: 991px) {
6578
+ .visible-sm-inline-block {
6579
+ display: inline-block !important;
6580
+ }
6581
+ }
6582
+ @media (min-width: 992px) and (max-width: 1199px) {
6583
+ .visible-md {
6584
+ display: block !important;
6585
+ }
6586
+ table.visible-md {
6587
+ display: table !important;
6588
+ }
6589
+ tr.visible-md {
6590
+ display: table-row !important;
6591
+ }
6592
+ th.visible-md,
6593
+ td.visible-md {
6594
+ display: table-cell !important;
6595
+ }
6596
+ }
6597
+ @media (min-width: 992px) and (max-width: 1199px) {
6598
+ .visible-md-block {
6599
+ display: block !important;
6600
+ }
6601
+ }
6602
+ @media (min-width: 992px) and (max-width: 1199px) {
6603
+ .visible-md-inline {
6604
+ display: inline !important;
6605
+ }
6606
+ }
6607
+ @media (min-width: 992px) and (max-width: 1199px) {
6608
+ .visible-md-inline-block {
6609
+ display: inline-block !important;
6610
+ }
6611
+ }
6612
+ @media (min-width: 1200px) {
6613
+ .visible-lg {
6614
+ display: block !important;
6615
+ }
6616
+ table.visible-lg {
6617
+ display: table !important;
6618
+ }
6619
+ tr.visible-lg {
6620
+ display: table-row !important;
6621
+ }
6622
+ th.visible-lg,
6623
+ td.visible-lg {
6624
+ display: table-cell !important;
6625
+ }
6626
+ }
6627
+ @media (min-width: 1200px) {
6628
+ .visible-lg-block {
6629
+ display: block !important;
6630
+ }
6631
+ }
6632
+ @media (min-width: 1200px) {
6633
+ .visible-lg-inline {
6634
+ display: inline !important;
6635
+ }
6636
+ }
6637
+ @media (min-width: 1200px) {
6638
+ .visible-lg-inline-block {
6639
+ display: inline-block !important;
6640
+ }
6641
+ }
6642
+ @media (max-width: 767px) {
6643
+ .hidden-xs {
6644
+ display: none !important;
6645
+ }
6646
+ }
6647
+ @media (min-width: 768px) and (max-width: 991px) {
6648
+ .hidden-sm {
6649
+ display: none !important;
6650
+ }
6651
+ }
6652
+ @media (min-width: 992px) and (max-width: 1199px) {
6653
+ .hidden-md {
6654
+ display: none !important;
6655
+ }
6656
+ }
6657
+ @media (min-width: 1200px) {
6658
+ .hidden-lg {
6659
+ display: none !important;
6660
+ }
6661
+ }
6662
+ .visible-print {
6663
+ display: none !important;
6664
+ }
6665
+ @media print {
6666
+ .visible-print {
6667
+ display: block !important;
6668
+ }
6669
+ table.visible-print {
6670
+ display: table !important;
6671
+ }
6672
+ tr.visible-print {
6673
+ display: table-row !important;
6674
+ }
6675
+ th.visible-print,
6676
+ td.visible-print {
6677
+ display: table-cell !important;
6678
+ }
6679
+ }
6680
+ .visible-print-block {
6681
+ display: none !important;
6682
+ }
6683
+ @media print {
6684
+ .visible-print-block {
6685
+ display: block !important;
6686
+ }
6687
+ }
6688
+ .visible-print-inline {
6689
+ display: none !important;
6690
+ }
6691
+ @media print {
6692
+ .visible-print-inline {
6693
+ display: inline !important;
6694
+ }
6695
+ }
6696
+ .visible-print-inline-block {
6697
+ display: none !important;
6698
+ }
6699
+ @media print {
6700
+ .visible-print-inline-block {
6701
+ display: inline-block !important;
6702
+ }
6703
+ }
6704
+ @media print {
6705
+ .hidden-print {
6706
+ display: none !important;
6707
+ }
6708
+ }
 
 
 
6709
  /*# sourceMappingURL=bootstrap.css.map */
inc/css/gawd_admin.css CHANGED
@@ -1,2383 +1,2426 @@
1
- #wpadminbar #wp-admin-bar-gawd>.ab-item:before{
2
- content: "\f185";
3
- top: 2px;
4
- width:20px;
5
- height:20px;
6
- }
7
- #gawd_body{
8
- margin: 10px 0;
9
- background-color: #F1F1F1 !important;
10
- }
11
- #gawd_body a{
12
- text-decoration: none;
13
- }
14
- .gawd_auth_wrap{
15
- width: 27%;
16
- padding: 35px;
17
- background-color: #fff;
18
- margin: 15px;
19
- }
20
- .gawd_auth_wrap #gawd_auth_url, .gawd_auth_wrap #gawd_auth_code{
21
- width:initial
22
- }
23
- #gawd_page_title{
24
- margin: 0 0 20px;
25
- color:#6da2c3
26
- }
27
- .filter_conteiner *{
28
- box-sizing: content-box !important;
29
- }
30
- #first_metric{
31
- margin-bottom:4px
32
- }
33
- #metric_compare img{
34
- background-image: URL("../../assets/closedot.png");
35
- width:14px;
36
- height:14px;
37
- float:right;
38
- margin: 16px 0 0 0;
39
- display:none;
40
- cursor:pointer
41
- }
42
- .hndle{
43
- cursor:default!important
44
- }
45
- .opacity_div_compact{
46
- display: none;
47
- background-color: rgba(0, 0, 0, 0.2);
48
- position: absolute;
49
- top: 0;
50
- left: 0;
51
- width: 100%;
52
- height: 100%;
53
- z-index: 99998;
54
- }
55
- #opacity_div{
56
- display: none;
57
- background-color: rgba(0, 0, 0, 0.2);
58
- position: fixed;
59
- top: 0;
60
- left: 0;
61
- width: 100%;
62
- height: 100%;
63
- z-index: 9997;
64
- }
65
- .loading_div_compact{
66
- display:none;
67
- text-align: center;
68
- position: absolute;
69
- top: 0;
70
- left: 0;
71
- width: 100%;
72
- height: 100%;
73
- z-index: 99999;
74
- }
75
-
76
- #chartdiv {
77
- width: 98%;
78
- height: 500px;
79
- background-color:white
80
- }
81
- #chartdiv_compare {
82
- display:none
83
- }
84
- #chart_widget{
85
- height: 300px;
86
- }
87
- .chart_point_hover_metric::before{
88
- content: '';
89
- display: inline-block;
90
- width: 7px;
91
- height: 7px;
92
- //vertical-align: middle;
93
- background-color:rgb(103, 183, 220);
94
- margin-right:2px
95
- }
96
- .chart_point_hover_metric_compare::before{
97
- content: '';
98
- display: inline-block;
99
- width: 7px;
100
- height: 7px;
101
- //vertical-align: middle;
102
- background-color:rgb(253, 212, 0);
103
- margin-right:2px
104
- }
105
- .gawd_normal_metabox_conteiner{
106
- width:63%;
107
- float:right;
108
- }
109
- .gawd_normal_metabox_conteiner::after{
110
- content:"";
111
- clear:both
112
- }
113
- .gawd_side_metabox_conteiner{
114
- width:35%
115
- }
116
- .gawd_menu_ul{
117
- margin:0
118
- }
119
- #gawd_date_meta, #gawd_visitors_meta, #gawd_country_meta, #gawd_browser_meta{
120
- width: 100%;
121
- height: 400px;
122
- text-align:center!important
123
- }
124
- /* #gawd_browser_meta {
125
- width: 100%;
126
- height: 700px;
127
- }
128
- #gawd_browser_meta .amcharts-chart-div{
129
- height:320px !important
130
- } */
131
-
132
- #chart {
133
- width: 100%;
134
- height: 300px;
135
- padding-top:10px
136
- }
137
- /*real time*/
138
- .gawd_realtime_conteiner{
139
- font-size: 100px;
140
- line-height: 1em;
141
- text-align: center;
142
- margin-top: 10px;
143
- color:#7CB5D7
144
- }
145
-
146
- .realtime_colors em{
147
- display: inline-block;
148
- height: .8em;
149
- width: .8em;
150
- }
151
- .realtime_bar div{
152
- height: 20px;
153
- text-align: center;
154
- color:white;
155
- display:inline-block;
156
- }
157
- .gawd_menu_coteiner{
158
- width:20%;
159
- float:left;
160
- background-color:#F1F1F1;
161
- margin-right:15px;
162
- color:#949494
163
- }
164
- .gawd_settings_menu_coteiner{
165
- width:16%;
166
- }
167
- #gawd_right_conteiner{
168
- width:73%;
169
- float:left;
170
- padding: 20px 15px;
171
- background-color:#fff
172
- }
173
-
174
-
175
-
176
- .gawd_menu_li, .gawd_menu_li_tracking{
177
- padding: 7px 0 7px 0;
178
- margin:0;
179
- text-align:left;
180
- cursor: pointer;
181
- }
182
- .gawd_menu_item{
183
- text-decoration:none;
184
- color:#949494;
185
- width:79%;
186
- display:inline-block
187
- }
188
-
189
- .gawd_active_li{
190
- background-color:rgba(6,5,6,0.06);;
191
- }
192
- .gawd_menu_ul_li {
193
- padding: 5px 0 7px 7px;
194
- margin: 0 0 0 31px;
195
- width: 68%;
196
- }
197
-
198
- .gawd_list{
199
- list-style: none;
200
- margin:0;
201
- }
202
- .gawd_list::after{
203
- clear:both;
204
- content: "";
205
- display:table;
206
- }
207
-
208
- .clear{
209
- clear:both
210
- }
211
-
212
- .gawd_list_item{
213
- display: block;
214
- padding: 8px 0;
215
- float: left;
216
- width: 24%;
217
- text-align: center;
218
- margin:0;
219
- cursor:pointer
220
- }
221
- .gawd_filter_item{
222
- text-decoration:none;
223
- color:#fff
224
- }
225
- .gawd_filter_item:hover{
226
- text-decoration:none;
227
- color:#fff
228
- }
229
- #gawd_hour{
230
- background-color:#FB8583;
231
- border: 0.5px solid #FB8583
232
- }
233
- #gawd_day a{
234
- color:#7DB5D8
235
- }
236
- #gawd_day{
237
- background-color:#fff;
238
- border: 0.5px solid #7DB5D8;
239
- }
240
- #gawd_week{
241
- background-color:#F0B358;
242
- border: 0.5px solid #F0B358
243
- }
244
- #gawd_month{
245
- background-color:#9DCFAC;
246
- border: 0.5px solid #9DCFAC
247
- }
248
- #gawd_hour:hover{
249
- background-color:#fff !important;
250
- }
251
- #gawd_hour:hover a{
252
- color:#FB8583 !important
253
- }
254
- #gawd_hour:active a{
255
- color:#FB8583 !important
256
- }
257
- #gawd_day:hover{
258
- background-color:#fff !important;
259
- }
260
- #gawd_day:hover a{
261
- color:#7DB5D8 !important
262
- }
263
- #gawd_week:hover{
264
- background-color:#fff !important;
265
- }
266
- #gawd_week:hover a{
267
- color:#F0B358 !important
268
- }
269
- #gawd_month:hover{
270
- background-color:#fff !important;
271
- }
272
- #gawd_month:hover a{
273
- color:#9DCFAC !important
274
- }
275
-
276
-
277
- .gawd_country_select{
278
- color:rgb(103, 183, 220);
279
- cursor:pointer;
280
- }
281
- .gawd_country_select:hover{
282
- text-decoration:underline
283
- }
284
-
285
- #gawd_mobile_ul, #gawd_geo_ul, #gawd_behavior_ul, #gawd_technology_ul, #gawd_events_ul, #gawd_demographics_ul, #gawd_interests_ul, #country_filter_reset, #gawd_email_week_day, #gawd_email_month_day, #siteSpeed_ul, #gawd_siteContent_ul{
286
- display:none;
287
- }
288
- .gawd_email_popup_overlay{
289
- display: none;
290
- background-color: rgba(0, 0, 0, 0.4);
291
- position: fixed;
292
- top: 0;
293
- left: 0;
294
- width: 100%;
295
- height: 100%;
296
- z-index: 99998;
297
- }
298
-
299
- .gawd_email_popup{
300
- display: none;
301
- text-align: center;
302
- position: fixed;
303
- top: 0;
304
- left: 0;
305
- right:0;
306
- bottom:0;
307
- margin:auto;
308
- background-color: white;
309
- width: 42%;
310
- height: 58%;
311
- z-index: 99999;
312
- padding: 20px;
313
- overflow:auto
314
- }
315
- .email_message_cont{
316
- display: none;
317
- position: absolute;
318
- top: 0;
319
- right: 0;
320
- font-size: 20px;
321
- margin: auto;
322
- left: 0;
323
- bottom: 0;
324
- width: 100%;
325
- height: 20%;
326
- }
327
- #country_filter_reset{
328
- cursor:pointer;
329
- float:left;
330
- padding:0 15px 1px
331
- }
332
- #gawd_social_ul,#gawd_ecommerce_ul, #gawd_customReport_ul{
333
- display:none
334
- }
335
-
336
- .float_conteiner{
337
- float:left;
338
- width:30%
339
- }
340
-
341
- #metric_conteiner select{
342
- width:89%;
343
- }
344
- #gawd_start_date, #gawd_end_date{
345
- background-color:#E7E7E7;
346
- width: 41%;
347
- padding: 0;
348
- }
349
-
350
- #date_compare_conteiner{
351
- clear:both;
352
- display:none;
353
- }
354
- #gawd_start_date_compare, #gawd_end_date_compare{
355
- width:147px;
356
- }
357
- #compare_datepicker_wraper{
358
- text-align:center;
359
- color:#fff;
360
- background-color:#AFAFAF;
361
- padding:6px 0;
362
- cursor:pointer;
363
- width:98.5%;
364
- }
365
- #compare_datepicker_wraper:hover{
366
- color: #fff;
367
- }
368
- .gawd_text{
369
- padding: 7px 12px 7px 14px;
370
- background-color: #E7E7E7;
371
- float: left;
372
- width: 27%;
373
- border: 1px solid #C7C7C7;
374
- margin: 0px -1px 0 0;
375
- }
376
- #gawd_chart_type{
377
- width: 100%;
378
- padding: 2px 0px 2px 8px;
379
- }
380
- .gawd_content{
381
- float:left;
382
- width:52%
383
- }
384
- #gawd_content_chart{
385
- width:54.6%
386
- }
387
- #gawd_content_range{
388
- padding: 5px 3px 9px 13px;
389
- background-color: #fff;
390
- border: 1px solid #C7C7C7;
391
- }
392
- .gawd_metrics{
393
- float:left;
394
- width:75%
395
- }
396
- .vs_image{
397
- margin: 20px 0 0 -13px;
398
- float:left;
399
- }
400
- .filter_conteiner{
401
- padding-bottom: 10px;
402
- /*width: 94%;*/
403
- margin: 0 auto;
404
- color:#949494
405
- }
406
- .filter_conteiner select{
407
- color:#949494
408
- }
409
- #pager{
410
- background-color: #E7E7E7;
411
- color: #C0C0C0;
412
- }
413
- #gawd_buttons{
414
- position:relative;
415
- text-align:right;
416
- margin-bottom:5px
417
- }
418
- .gawd_exports{
419
- display: none;
420
- position: absolute;
421
- z-index: 1;
422
- right: 69px;
423
- background-color: #fff;
424
- padding: 7px;
425
- border: 1px solid #C7C7C7;
426
- margin-top: -1px;
427
- }
428
- .button_gawd{
429
- background-color:#7DB5D8;
430
- color:#fff;
431
- font-size: 13px;
432
- line-height: 26px;
433
- height: 28px;
434
- margin: 0;
435
- padding: 0 10px 1px;
436
- cursor: pointer;
437
- border-width: 1px;
438
- border-style: solid;
439
- -webkit-appearance: none;
440
- white-space: nowrap;
441
- -webkit-box-sizing: border-box;
442
- -moz-box-sizing: border-box;
443
- box-sizing: border-box;
444
- }
445
- .button_gawd_add{
446
- background-color:#7DB5D8;
447
- color:#fff;
448
- font-size: 13px;
449
- line-height: 26px;
450
- height: 28px;
451
- width: 100%;
452
- margin: 0;
453
- padding: 0 10px 1px;
454
- cursor: pointer;
455
- border-width: 1px;
456
- border-style: solid;
457
- -webkit-appearance: none;
458
- white-space: nowrap;
459
- -webkit-box-sizing: border-box;
460
- -moz-box-sizing: border-box;
461
- box-sizing: border-box;
462
- }
463
- .gawd_export_button_csv, .gawd_export_button_pdf {
464
- display: block !important;
465
- }
466
- #date_chart_conteiner{
467
- width: 39%
468
-
469
- }
470
- .gawd_row{
471
- margin-bottom:4px
472
- }
473
- .ui-pg-selbox, .ui-pg-input{
474
- color:#B5B5B5 !important
475
- }
476
- #gawd_social_li::before{
477
- content: '';
478
- display: inline-block;
479
- background-repeat: no-repeat;
480
- width: 25px;
481
- height: 25px;
482
- vertical-align: middle;
483
- background-position: 83% 78.5%;
484
- background-image: URL("../../assets/icons-menu.png");
485
- }
486
- #gawd_ecommerce_li::before{
487
- content: '';
488
- display: inline-block;
489
- background-repeat: no-repeat;
490
- width: 25px;
491
- height: 25px;
492
- vertical-align: middle;
493
- background-position: 83% 0%;
494
- background-image: URL("../../assets/ecommerce-analityc.png");
495
- }
496
- #gawd_trafficSource::before{
497
- content: '';
498
- display: inline-block;
499
- background-repeat: no-repeat;
500
- width: 25px;
501
- height: 25px;
502
- vertical-align: middle;
503
- background-image:URL("../../assets/icons-menu.png");
504
- background-repeat: no-repeat;
505
- background-position: 83% 73.5%;
506
- }
507
- #gawd_interests_li::before{
508
- content: '';
509
- display: inline-block;
510
- background-repeat: no-repeat;
511
- width: 25px;
512
- height: 25px;
513
- vertical-align: middle;
514
- background-image:URL("../../assets/icons-menu.png");
515
- background-repeat: no-repeat;
516
- background-position: 83% 67.6%;
517
- }
518
- #gawd_adWords::before{
519
- content: '';
520
- display: inline-block;
521
- background-repeat: no-repeat;
522
- width: 25px;
523
- height: 25px;
524
- vertical-align: middle;
525
- background-image:URL("../../assets/icons-menu.png");
526
- background-repeat: no-repeat;
527
- background-position: 83% 62%;
528
- }
529
- #gawd_demographics_li::before{
530
- content: '';
531
- display: inline-block;
532
- background-repeat: no-repeat;
533
- width: 25px;
534
- height: 25px;
535
- vertical-align: middle;
536
- background-image:URL("../../assets/icons-menu.png");
537
- background-repeat: no-repeat;
538
- background-position: 83% 56%;
539
- }
540
- #gawd_general::before{
541
- content: '';
542
- display: inline-block;
543
- background-repeat: no-repeat;
544
- width: 25px;
545
- height: 25px;
546
- vertical-align: middle;
547
- background-image:URL("../../assets/icons-menu.png");
548
- background-repeat: no-repeat;
549
- background-position: 83% 0.5%;
550
- }
551
- #gawd_events_li::before{
552
- content: '';
553
- display: inline-block;
554
- background-repeat: no-repeat;
555
- width: 25px;
556
- height: 25px;
557
- vertical-align: middle;
558
- background-image:URL("../../assets/icons-menu.png");
559
- background-repeat: no-repeat;
560
- background-position: 83% 45%;
561
- }
562
- #gawd_custom::before{
563
- content: '';
564
- display: inline-block;
565
- background-repeat: no-repeat;
566
- width: 25px;
567
- height: 25px;
568
- vertical-align: middle;
569
- background-image:URL("../../assets/icons-menu.png");
570
- background-repeat: no-repeat;
571
- background-position: 83% 39.5%;
572
- }
573
- #gawd_realtime::before{
574
- content: '';
575
- display: inline-block;
576
- background-repeat: no-repeat;
577
- width: 25px;
578
- height: 25px;
579
- vertical-align: middle;
580
- background-image:URL("../../assets/icons-menu.png");
581
- background-repeat: no-repeat;
582
- background-position: 83% 34%;
583
- }
584
- #gawd_mobile_li::before{
585
- content: '';
586
- display: inline-block;
587
- background-repeat: no-repeat;
588
- width: 25px;
589
- height: 25px;
590
- vertical-align: middle;
591
- background-image:URL("../../assets/icons-menu.png");
592
- background-repeat: no-repeat;
593
- background-position: 83% 28.5%;
594
- }
595
- #gawd_technology_li::before{
596
- content: '';
597
- display: inline-block;
598
- background-repeat: no-repeat;
599
- width: 25px;
600
- height: 25px;
601
- vertical-align: middle;
602
- background-image:URL("../../assets/icons-menu.png");
603
- background-repeat: no-repeat;
604
- background-position: 83% 22.5%;
605
- }
606
- #gawd_siteContent_li::before{
607
- content: '';
608
- display: inline-block;
609
- background-repeat: no-repeat;
610
- width: 25px;
611
- height: 25px;
612
- vertical-align: middle;
613
- background-image:URL("../../assets/icons-menu.png");
614
- background-repeat: no-repeat;
615
- background-position: 83% 17%;
616
- }
617
- #gawd_behavior_li::before{
618
- content: '';
619
- display: inline-block;
620
- background-repeat: no-repeat;
621
- width: 25px;
622
- height: 25px;
623
- vertical-align: middle;
624
- background-image:URL("../../assets/icons-menu.png");
625
- background-repeat: no-repeat;
626
- background-position: 83% 11.5%;
627
- }
628
- #gawd_geo_li::before{
629
- content: '';
630
- display: inline-block;
631
- background-repeat: no-repeat;
632
- width: 25px;
633
- height: 25px;
634
- vertical-align: middle;
635
- background-image:URL("../../assets/icons-menu.png");
636
- background-repeat: no-repeat;
637
- background-position: 83% 6%;
638
- }
639
- #gawd_goals::before{
640
- content: '';
641
- display: inline-block;
642
- background-repeat: no-repeat;
643
- width: 25px;
644
- height: 25px;
645
- vertical-align: middle;
646
- background-image:URL("../../assets/icons-menu.png");
647
- background-repeat: no-repeat;
648
- background-position: 83% 50.6%;
649
- }
650
- #gawd_adsense::before{
651
- content: '';
652
- display: inline-block;
653
- background-repeat: no-repeat;
654
- width: 25px;
655
- height: 25px;
656
- vertical-align: middle;
657
- background-image:URL("../../assets/icons-menu.png");
658
- background-repeat: no-repeat;
659
- background-position: 83% 95%;
660
- }
661
- #gawd_customReport_li::before{
662
- content: '';
663
- display: inline-block;
664
- background-repeat: no-repeat;
665
- width: 25px;
666
- height: 25px;
667
- vertical-align: middle;
668
- background-image:URL("../../assets/icons-menu.png");
669
- background-repeat: no-repeat;
670
- background-position: 83% 100%;
671
- }
672
- #gawd_customReport::before{
673
- content: '';
674
- display: inline-block;
675
- background-repeat: no-repeat;
676
- width: 25px;
677
- height: 25px;
678
- vertical-align: middle;
679
- background-image:URL("../../assets/icons-menu.png");
680
- background-repeat: no-repeat;
681
- background-position: 83% 100%;
682
- }
683
- #gawd_siteSpeed::before{
684
- content: '';
685
- display: inline-block;
686
- background-repeat: no-repeat;
687
- width: 25px;
688
- height: 25px;
689
- vertical-align: middle;
690
- background-image:URL("../../assets/icons-menu.png");
691
- background-repeat: no-repeat;
692
- background-position: 83% 90%;
693
- }
694
- .gawd_menu_li_sub{
695
- display: inline-block;
696
- width:80%
697
- }
698
- .gawd_menu_li_sub_arrow{
699
- display: inline-block;
700
- background-repeat: no-repeat;
701
- width: 25px;
702
- height: 25px;
703
- vertical-align: middle;
704
- background-image:URL("../../assets/icons-menu.png");
705
- background-repeat: no-repeat;
706
- background-position: 87% 85.6%;
707
- float:right;
708
- }
709
- .gawd_menu_li_sub_arrow::after{
710
- clear:both;
711
- content: "";
712
- display:table;
713
- }
714
-
715
- .gawd_email_week_day_ul::after{
716
- clear:both;
717
- content: "";
718
- display:table;
719
- }
720
-
721
- .daterangepicker_input{
722
- width:95% !important
723
- }
724
-
725
- .calendar *{
726
- background-color:#E7E7E7
727
- }
728
- .gawd_date_filter_container{
729
- margin-bottom:6px
730
- }
731
-
732
- .gawd_email_label{
733
- background-color: #E7E7E7;
734
- border: 1px solid #C7C7C7;
735
- float:left;
736
- padding:5px;
737
- width:22%;
738
- text-align:left;
739
- }
740
- .gawd_email_attachemnt, .gawd_email_frequency, .gawd_email_type {
741
- background-color: #E7E7E7;
742
- border: 1px solid #C7C7C7;
743
- float:left;
744
- width:22%;
745
- padding:5px;
746
- text-align:left;
747
- }
748
- .gawd_email_input{
749
- float:left;
750
- width:73%
751
- }
752
- .gawd_email_input input{
753
- width:100%;
754
- padding:5px 4px
755
- }
756
- .gawd_email_input_attachment, .gawd_email_input_frequency{
757
- float:left;
758
- width:22%;
759
- margin-right: 24px;
760
- }
761
- .gawd_email_input_attachment select, .gawd_email_input_frequency select{
762
- width:100%;
763
- padding:0;
764
- height:30px
765
- }
766
-
767
- .gawd_email_input_attachment{
768
- margin-right:24px
769
- }
770
- .gawd_email_row, .gawd_goal_row, .gawd_dimension_row{
771
- margin-bottom:7px
772
- }
773
- .gawd_email_message_label{
774
- width:97%;
775
- padding:5px 0;
776
- margin:0;
777
- background-color: #7CB5D7;
778
- color:#fff
779
- /*border: 1px solid #C7C7C7;*/
780
- }
781
- .gawd_email_message{
782
- width:97%;
783
- margin:0;
784
- }
785
- .gawd_email_message textarea{
786
- width:100%;
787
- height:100px;
788
- padding:0 !Important
789
- }
790
- .gawd_email_send{
791
- width:97%;
792
- background-color: #7CB5D7;
793
- color:#fff;
794
- text-align:center;
795
- padding:6px 0;
796
- cursor: pointer;
797
- border: 1px solid #DDDDDD;
798
- -webkit-appearance: none;
799
- white-space: nowrap;
800
- -webkit-box-sizing: border-box;
801
- -moz-box-sizing: border-box;
802
- box-sizing: border-box;
803
- }
804
- .gawd_email_input_from{
805
- border: 1px solid #DDDDDD;
806
- padding:5px 0;
807
- width:72.8%;
808
- background-color:#E7E7E7
809
- }
810
-
811
- .gawd_email_type{
812
- text-align:center;
813
- padding:5px 5.6px;
814
- width:44%
815
- }
816
- .gawd_email_week_day{
817
- display: inline-block;
818
- float: left;
819
- padding: 5px 3.1px;
820
- background-color: #C1C1C1;
821
- border-right: 1px solid #868686;
822
- margin: 0;
823
- cursor: pointer;
824
- width: 11.5%;
825
- }
826
- #gawd_email_week_day, #gawd_email_month_day{
827
- width:46.5%;
828
- background-color:#AFAFAF;
829
- color:#fff
830
- }
831
- .gawd_email_week_day:last-child{
832
- border:none
833
- }
834
- .gawd_email_week_day::after{
835
- clear:both;
836
- content: "";
837
- display:table;
838
- }
839
- .gawd_email_week_days{
840
- float:left;
841
- width:100%
842
- }
843
- #gawd_email_month_day_select{
844
- height:30px;
845
- line-height:30px;
846
- width:100%;
847
- color:#000000
848
- }
849
- .gawd_email_day_of_week{
850
- padding: 6px 0;
851
- }
852
- .gawd_email_week_day_ul{
853
- margin:0;
854
- padding:0
855
- }
856
- .gawd_email_week_day_ul::after{
857
- clear:both;
858
- content: "";
859
- display:table;
860
- }
861
- .gawd_email_week_days select{
862
- padding:0
863
- }
864
- .gawd_selected_day{
865
- background-color:#7CB5D7;
866
- }
867
-
868
- .gawd_email_popup ::-webkit-scrollbar{
869
- width: 3px; /* for vertical scrollbars */
870
- height: 3px; /* for horizontal scrollbars */
871
- }
872
-
873
- .gawd_email_popup ::-webkit-scrollbar-track{
874
- background: rgba(0, 0, 0, 0.1);
875
- }
876
-
877
- .gawd_email_popup ::-webkit-scrollbar-thumb{
878
- background: rgba(0, 0, 0, 0.5);
879
- }
880
-
881
- .gawd_table_conteiner table tbody tr td{
882
- padding:2px 10px;
883
- width:87%
884
- }
885
- .gawd_table_conteiner table tbody tr th{
886
- background-color:#7CB5D7;
887
- color:#fff;
888
- padding:10px
889
- }
890
- .gawd_table_conteiner table{
891
- border:1px solid #DCDCDC;
892
- margin:0 auto
893
- }
894
- .gawd_page_table{
895
- border:1px solid #DCDCDC;
896
- }
897
- .gawd_page_table th{
898
- background-color:#7CB5D7;
899
- color:#fff;
900
- }
901
- .gawd_active_users{
902
- text-align:center
903
- }
904
- .gawd_red{
905
- color:red;
906
- font-size:15px;
907
- display: table-cell;
908
- padding:10px 5px 5px 5px;
909
- font-weight:bold;
910
- }
911
- .gawd_green{
912
- font-size: 15px;
913
- padding: 6px 5px 5px 17px;
914
- font-weight: bold;
915
- display: table-cell;
916
- color:green
917
- }
918
- .sum_box{
919
- display:table;
920
- margin: 10px;
921
- padding: 10px;
922
- border: 1px solid;
923
- }
924
- ._sum_box{
925
- display:table;
926
- margin: 10px;
927
- padding: 5px;
928
- //border: 1px solid;
929
- width: 162px;
930
-
931
- }
932
- .box_left{
933
- display:table-cell;
934
- text-align:center;
935
- vertical-align:middle;
936
- }
937
- ._box_left{
938
- //display:table-cell;
939
- text-align:center;
940
- //padding-right: 15px;
941
- }
942
- ._box_right{
943
- //display:table-cell;
944
- text-align:center;
945
- }
946
-
947
- .gawd_hide_total{
948
- display:none
949
- }
950
- .gawd_show_total{
951
- //display:table-cell
952
- }
953
- .box_right{
954
- display:table-cell;
955
- text-align:center;
956
- vertical-align:middle;
957
- }
958
- .box_title{
959
- font-size:14px;
960
- display:table-cell
961
- }
962
- .box_value{
963
- font-size:14px;
964
- }
965
- .sum_box span{
966
- font-size:9px
967
- }
968
- ._sum_box span{
969
- font-size:9px
970
- }
971
- .box_value{
972
- margin-bottom: 8px;
973
- }
974
- .vs_image_small{
975
- display:table-cell;
976
- margin: 7px 4px 0 13px;
977
- text-align:center;
978
- vertical-align:middle;
979
- padding: 0 0 0 20px;
980
- }
981
- .vs_image_small img{
982
- width:30px
983
- }
984
- /*SETTINGS*/
985
- .gawd_menu_checkbox .time_wrap input{
986
- width:initial
987
- }
988
- .gawd_menu_checkbox .time_wrap {
989
- float:none
990
- }
991
- .gawd_menu_checkbox, .gawd_menu_users{
992
- float:left;
993
- width:36%
994
- }
995
- .gawd_menu_checkbox{
996
- width:60%
997
- }
998
- input:focus,
999
- select:focus,
1000
- textarea:focus,
1001
- button:focus, a:focus {
1002
- outline: none;
1003
- }
1004
-
1005
-
1006
- #gawd_auth_code {
1007
- display: none;
1008
- z-index: 1000;
1009
- width: 34%;
1010
- /*padding: 5px;*/
1011
- position: relative;
1012
- top: 0;
1013
- left: 0;
1014
- /*background-color: #7DB5D8;*/
1015
- color: white;
1016
- text-align: center;
1017
- }
1018
- #gawd_token {
1019
- width: 100%;
1020
- margin: 5px auto;
1021
- }
1022
- #gawd_auth_code_submit {
1023
- float: right;
1024
- margin: 5px;
1025
- padding: 5px;
1026
- /*width: 90%;*/
1027
- margin: 0 auto;
1028
- cursor: pointer;
1029
- /*margin-top: 5px;*/
1030
- background-color: #7DB5D8;
1031
- /*float: left;*/
1032
- }
1033
- .gawd_reset_button{
1034
- float: left;
1035
- }
1036
- #gawd_reset_button{
1037
- float: right;
1038
- margin-right:2px
1039
- }
1040
-
1041
-
1042
- #gawd_auth_url{
1043
- padding: 5px;
1044
- width: 34%;
1045
- background-color: #7DB5D8;
1046
- color: #fff;
1047
- text-align: center;
1048
- /*margin-bottom: 10px;*/
1049
- }
1050
- .own_inputs{
1051
- //display:none;
1052
- }
1053
-
1054
- #gawd_post_page_popup{
1055
- height:300px
1056
- }
1057
- #gawd_right_conteiner,.gawd_tracking, .gawd_authenicate, .gawd_alerts, .gawd_advanced, .gawd_exclude_tracking, .gawd_pushover, .gawd_filters, .gawd_emails{
1058
- display:none;
1059
- }
1060
- .gawd_tracking, .gawd_authenicate, .gawd_advanced, .gawd_filters, .gawd_emails, .gawd_tracking{
1061
- margin-top:30px
1062
-
1063
- }
1064
- .gawd_alerts, .gawd_pushover {
1065
- width: 83.5%;
1066
- }
1067
- .gawd_filters{
1068
- width: 83.5%;
1069
- }
1070
- .gawd_filters .gawd_goal_row .gawd_goal_input{
1071
- width:55%
1072
- }
1073
- .gawd_filters .gawd_goal_row .gawd_goal_input select{
1074
- padding: 2px;
1075
- width: 96%;
1076
- line-height: 30px;
1077
- height: 30px !important
1078
- }
1079
- #alert_condition, #pushover_condition, #custom_dimensions_header{
1080
- width: 80.4%;
1081
- padding: 6px 7px 6px 8px;
1082
- background-color: #7DB5D8;
1083
- color: #fff;
1084
- text-align: center;
1085
- margin-bottom:7px
1086
- }
1087
-
1088
- .gawd_alerts .gawd_goal_input select,.gawd_alerts .gawd_goal_input select, .gawd_pushover .gawd_goal_input select,.gawd_alerts .gawd_goal_input select{
1089
- padding: 2px;
1090
- width:96%;
1091
- line-height: 30px;
1092
- height: 30px !important;
1093
- }
1094
- .gawd_alerts .gawd_goal_input, .gawd_pushover .gawd_goal_input{
1095
- width:55%
1096
- }
1097
- #gawd_authenicate::before{
1098
- content: '';
1099
- display: inline-block;
1100
- background-repeat: no-repeat;
1101
- width: 25px;
1102
- height: 25px;
1103
- vertical-align: middle;
1104
- background-image:URL("../../assets/icons-settings.png");
1105
- background-repeat: no-repeat;
1106
- background-position: 0% 2%;
1107
- }
1108
- #gawd_tracking::before{
1109
- content: '';
1110
- display: inline-block;
1111
- background-repeat: no-repeat;
1112
- width: 25px;
1113
- height: 25px;
1114
- vertical-align: middle;
1115
- background-image:URL("../../assets/icons-settings.png");
1116
- background-repeat: no-repeat;
1117
- background-position: 0% 17%;
1118
- }
1119
- #gawd_alerts::before{
1120
- content: '';
1121
- display: inline-block;
1122
- background-repeat: no-repeat;
1123
- width: 25px;
1124
- height: 25px;
1125
- vertical-align: middle;
1126
- background-image:URL("../../assets/icons-settings.png");
1127
- background-repeat: no-repeat;
1128
- background-position: 0% 33%;
1129
- }
1130
- #gawd_pushover::before{
1131
- content: '';
1132
- display: inline-block;
1133
- background-repeat: no-repeat;
1134
- width: 25px;
1135
- height: 25px;
1136
- vertical-align: middle;
1137
- background-image:URL("../../assets/icons-settings.png");
1138
- background-repeat: no-repeat;
1139
- background-position: 0% 77%;
1140
- }
1141
- #gawd_exclude_tracking::before{
1142
- content: '';
1143
- display: inline-block;
1144
- background-repeat: no-repeat;
1145
- width: 25px;
1146
- height: 25px;
1147
- vertical-align: middle;
1148
- background-image:URL("../../assets/icons-settings.png");
1149
- background-repeat: no-repeat;
1150
- background-position: 0% 90%;
1151
- }
1152
- #gawd_filters::before{
1153
- content: '';
1154
- display: inline-block;
1155
- background-repeat: no-repeat;
1156
- width: 25px;
1157
- height: 25px;
1158
- vertical-align: middle;
1159
- background-image:URL("../../assets/icons-settings.png");
1160
- background-repeat: no-repeat;
1161
- background-position: 0% 64%;
1162
- }
1163
- #gawd_emails::before{
1164
- content: '';
1165
- display: inline-block;
1166
- width: 25px;
1167
- height: 25px;
1168
- vertical-align: middle;
1169
- background-image:URL("../../assets/icons-settings.png");
1170
- background-repeat: no-repeat;
1171
- background-position: 0% 103%;
1172
- }
1173
- #gawd_advanced::before{
1174
- content: '';
1175
- display: inline-block;
1176
- background-repeat: no-repeat;
1177
- width: 25px;
1178
- height: 25px;
1179
- vertical-align: middle;
1180
- background-image:URL("../../assets/icons-settings.png");
1181
- background-repeat: no-repeat;
1182
- background-position: 83% 50%;
1183
- }
1184
- #gawd_advanced{
1185
- margin-bottom:10px
1186
- }
1187
- .gawd_body .gawd_profiles select{
1188
- width: 34.5%;
1189
- }
1190
- .gawd_body .gawd_profiles{
1191
- margin-bottom:7px
1192
- }
1193
- .gawd_profiles select{
1194
- width: 35%;
1195
- padding: 2px;
1196
- line-height: 38px;
1197
- height: 38px;
1198
- }
1199
- .gawd_profiles{
1200
- margin:7px 0
1201
- }
1202
- .settings_row{
1203
- margin-bottom:5px
1204
- }
1205
- .gawd_checkbox span, .gawd_own_wrap span{
1206
- padding: 7px 5px;
1207
- display:inline-block;
1208
- }
1209
- .gawd_checkbox input{
1210
- margin:0!important
1211
- }
1212
- .gawd_checkbox{
1213
- }
1214
- .gawd_submit{
1215
- text-align:right;
1216
- }
1217
-
1218
-
1219
- .gawd_info{
1220
- float:left;
1221
- width:17px;
1222
- height:17px;
1223
- background-image:URL("../../assets/info.png");
1224
- background-repeat: no-repeat;
1225
- margin:4px
1226
- }
1227
- .gawd_checkbox .gawd_info, .gawd_own_wrap .gawd_info{
1228
- float:right;
1229
- margin: 7px 0 0 0;
1230
- }
1231
- /* tooltips */
1232
- .ui-tooltip {
1233
- padding: 8px;
1234
- position: absolute;
1235
- z-index: 999999;
1236
- max-width: 300px;
1237
- -webkit-box-shadow: 0 0 5px #aaa;
1238
- box-shadow: 0 0 5px #aaa;
1239
- border-radius:4px;
1240
- }
1241
- .ui-widget {
1242
- font-size: 1.1em;
1243
- }
1244
- .ui-widget .ui-widget {
1245
- font-size: 1em;
1246
- }
1247
- .ui-widget-content {
1248
- background: rgba(0,0,0,0.8) ;
1249
- color: #fff;
1250
- }
1251
- .onoffswitch_text{
1252
- float:left;
1253
- padding:4px 3px;
1254
- }
1255
-
1256
- .onoffswitch {
1257
- position: relative;
1258
- width: 70px;
1259
- -webkit-user-select:none;
1260
- -moz-user-select:none;
1261
- -ms-user-select: none;
1262
- float:left;
1263
- height:25px
1264
- }
1265
- .onoffswitch-checkbox {
1266
- display: none !important;
1267
- }
1268
- .onoffswitch-label {
1269
- display: block;
1270
- overflow: hidden;
1271
- cursor: pointer;
1272
- margin-bottom:0;
1273
- height:25px;
1274
- border-radius: 5px;
1275
- }
1276
-
1277
- .onoffswitch-inner:before, .onoffswitch-inner:after {
1278
- display: block;
1279
- float: left;
1280
- width: 50%;
1281
- height: 25px;
1282
- padding: 0;
1283
- line-height: 25px;
1284
- font-size: 14px;
1285
- color: white;
1286
- font-weight: bold;
1287
- box-sizing: border-box;
1288
- }
1289
-
1290
-
1291
- .onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-inner {
1292
- margin-left: 0;
1293
- }
1294
- .onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-switch {
1295
- right: 0px;
1296
- background-color: #fff;
1297
- width: 36%;
1298
- }
1299
- .onoffswitch_disabled .onoffswitch-inner:after {
1300
- background-color: #EFEFEF !important;
1301
- color: #e1e1e1 !important;
1302
- }
1303
- .onoffswitch_disabled .onoffswitch-inner:before {
1304
- background-color: #D6EBDC !important;
1305
- color: #e1e1e1 !important;
1306
- }
1307
- .onoffswitch_disabled .onoffswitch-switch {
1308
- background-color: #fff !important;
1309
- color: #e9e9e9 !important;
1310
- box-shadow:none !important
1311
- }
1312
-
1313
- .onoffswitch-inner {
1314
- display: block; width: 200%; margin-left: -100%;
1315
- transition: margin 0.3s ease-in 0s;
1316
- }
1317
-
1318
- .onoffswitch-inner:before {
1319
- content: "";
1320
- padding-left: 10px;
1321
- background-color: #9FCEAC; color: #FFFFFF;
1322
- }
1323
- .onoffswitch-inner:after {
1324
- content: "";
1325
- padding-right: 10px;
1326
- background-color: #DBDBDB; color: #999999;
1327
- text-align: right;
1328
- }
1329
- .onoffswitch-switch {
1330
- display: block;
1331
- width: 36%;
1332
- margin:3px 3.5px;
1333
- background: #FFFFFF;
1334
- position: absolute;
1335
- top: 0;
1336
- bottom: 0;
1337
- right: 38px;
1338
- border-radius: 5px;
1339
- transition: all 0.3s ease-in 0s;
1340
- box-shadow: 1px 1px 1px #888888;
1341
- }
1342
-
1343
- .onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-switch {
1344
- right: 0px;
1345
- }
1346
- .row_percent{
1347
- font-size:9px
1348
- }
1349
- .gawd_table{
1350
- width:120%;
1351
- border:1px solid #DCDCDC;
1352
- margin: 15px 0;
1353
- }
1354
- .gawd_table tr:first-child{
1355
- background-color: #7DB5D8;
1356
- color: #fff;
1357
- }
1358
- .gawd_table th{
1359
- font-weight:normal;
1360
- }
1361
- .gawd_table td{
1362
- padding:3px
1363
- }
1364
- /*GOAL AND CUSTOM DIMENSION MANAGEMENT*/
1365
- .goal_wrap, .dimension_wrapper{
1366
- width: 80%;
1367
- padding:20px;
1368
- background-color: #fff;
1369
- margin-top:7px
1370
- }
1371
- #gawd_custom_report_form{
1372
- width: 50%;
1373
- }
1374
- #gawd_custom_report_form .gawd_table{
1375
- width: 200%;
1376
- }
1377
- #gawd_custom_report_form .gawd_goal_input{
1378
- width: 64%;
1379
- }
1380
- #gawd_goal_form{
1381
- width:50%
1382
- }
1383
- .goal_wrap .gawd_table, .dimension_wrapper .gawd_table{
1384
- width:100%
1385
- }
1386
-
1387
- #gawd_dimensions_form{
1388
- width:50%
1389
- }
1390
-
1391
- #gawd_dimensions_form .gawd_dimension_input{
1392
- width:64%
1393
- }
1394
-
1395
- .gawd_duration{
1396
- float:left;
1397
- width:43%
1398
- }
1399
- .gawd_goal_duration_wrap .gawd_duration .time_wrap{
1400
- width:33.2%;
1401
- margin:0
1402
- }
1403
- .gawd_page_sessions .gawd_duration .time_wrap{
1404
- width:100%;
1405
- margin:0
1406
- }
1407
- .gawd_goal_duration_wrap .gawd_duration {
1408
- width: 34.7%;
1409
- }
1410
- #gawd_goal_form .gawd_goal_input{
1411
- width: 61%;
1412
- }
1413
- .time_label{
1414
- text-align:center
1415
- }
1416
- .time_input input{
1417
- width:100%;
1418
- padding: 5px 7px;
1419
- }
1420
- .gawd_page_sessions .gawd_duration .time_wrap input{
1421
- width:100%;
1422
- padding: 5px 7px;
1423
- }
1424
- .gawd_page_sessions .gawd_duration{
1425
- width: 34.6%;
1426
- }
1427
- .gawd_goal_input input{
1428
- width:96%;
1429
- padding: 5px 3px 5px 4px;
1430
- }
1431
- .gawd_advanced .gawd_goal_input input{
1432
- width:98%;
1433
- }
1434
- .gawd_duration_label span input {
1435
- margin:0 0 0 9px;
1436
- vertical-align: top;
1437
- }
1438
- .gawd_destination_url{
1439
- float: left;
1440
- width: 100%;
1441
- margin-bottom:7px;
1442
- }
1443
- .gawd_event_name{
1444
- float: left;
1445
- width:33%;
1446
- margin-left: 6px;
1447
- }
1448
- .gawd_event_name input{
1449
- padding: 5px 3px 5px 4px;
1450
- width:100%
1451
- }
1452
- .gawd_destination_url .time_wrap{
1453
- width:61%;
1454
- float:left;
1455
- margin:0;
1456
- }
1457
- .gawd_destination_url .time_wrap .time_input input{
1458
- width: 96%;
1459
- padding: 5px 6px 5px 7px ;
1460
- }
1461
- .time_wrap{
1462
- width: 91.5%;
1463
- float:left;
1464
- margin:4px;
1465
- }
1466
-
1467
- .track_label{
1468
- width:61%
1469
- }
1470
-
1471
- .setting_time_wrap{
1472
-
1473
- }
1474
- #time_wrap {
1475
- margin: 0!important;
1476
- }
1477
- .gawd_goal_duration_wrap, .gawd_page_sessions, .gawd_page_event{
1478
- display:none
1479
- }
1480
- .gawd_goal_label, .gawd_dimension_label, .gawd_duration_label{
1481
- background-color: #E7E7E7;
1482
- border: 1px solid #C7C7C7;
1483
- float:left;
1484
- padding:5px;
1485
- width:28%;
1486
- text-align:left;
1487
- }
1488
- #gawd_goal_form .gawd_duration_label, #gawd_goal_form .gawd_goal_label, #gawd_goal_form .gawd_dimension_label{
1489
- width:31%
1490
- }
1491
-
1492
- .gawd_tracking .gawd_goal_label, .gawd_duration_label{
1493
- /*width:inherit;*/
1494
- }
1495
- .gawd_goal_input, .gawd_dimension_input{
1496
- float:left;
1497
- width:66%
1498
- }
1499
- .gawd_own_wrap{
1500
- width:44%
1501
- }
1502
- .gawd_own_wrap .gawd_goal_input{
1503
- width:60%
1504
- }
1505
- .gawd_event_comparison_input{
1506
- float:left;
1507
- width:29%
1508
- }
1509
- .gawd_goal_input .gawd_goal_type, .gawd_dimension_input select, .gawd_goal_profile{
1510
- padding: 2px 5px 2px 2px;
1511
- line-height: 30px;
1512
- height: 30px !important;
1513
- width: 96%;
1514
- }
1515
- .gawd_comparison_input{
1516
- float:left;
1517
- width:24%
1518
- }
1519
- .gawd_url_comparison_input{
1520
- float:left;
1521
- width:60.2%;
1522
- margin-bottom: 7px;
1523
- }
1524
- .gawd_comparison_input select{
1525
- padding: 2px 6px 2px 2px;
1526
- line-height: 30px;
1527
- height: 30px;
1528
- }
1529
- .gawd_url_comparison_input select{
1530
- padding: 2px 6px 2px 2px;
1531
- line-height: 30px;
1532
- height: 30px !important;
1533
- width:97.5%
1534
- }
1535
- .gawd_event_comparison_input select{
1536
- padding: 2px 6px 2px 2px;
1537
- line-height: 30px;
1538
- height: 30px;
1539
- width:97%
1540
- }
1541
- #goal_submit{
1542
- text-align: right;
1543
- margin-top: 7px;
1544
- width: 92.1%;
1545
- }
1546
- .gawd_add_cd{
1547
- position: relative;
1548
- width: 70px;
1549
- -webkit-user-select:none;
1550
- -moz-user-select:none;
1551
- -ms-user-select: none;
1552
- float:left;
1553
- }
1554
- .gawd_exclude_tracking .gawd_goal_row .time_wrap, .settings_row .time_wrap{
1555
- width: initial;
1556
- }
1557
- .gawd_exclude_tracking .gawd_goal_row .time_wrap input, .settings_row .time_wrap input{
1558
- margin:0 5px 0 10px;
1559
- }
1560
- .settings_row .gawd_goal_label{
1561
- background-color:#fff;
1562
- border:none;
1563
- width:18%
1564
- }
1565
- #default_date{
1566
- height:30px;
1567
- line-height:30px;
1568
- width:34.5%
1569
- }
1570
-
1571
- .checkbox_wrap{
1572
- float:left;
1573
- width:66%
1574
- }
1575
- .gawd_exclude_tracking .gawd_goal_row .gawd_goal_label{
1576
- background-color:#fff;
1577
- border:none
1578
- }
1579
-
1580
- .gawd_profile_select{
1581
- float:right;
1582
- width:25%
1583
- }
1584
- #gawd_profile_wrapper{
1585
- width:96.9%
1586
- }
1587
- .gawd_invalid{
1588
- border-color:red !important
1589
- }
1590
- /*PAGE/POST VIEW*/
1591
- .page_chart_div{
1592
- overflow: hidden;
1593
- text-align: left;
1594
- width: 550px;
1595
- height: 500px;
1596
- position: fixed;
1597
- margin: auto;
1598
- left: 0;
1599
- right: 0;
1600
- top: 0;
1601
- bottom: 0;
1602
- display: block;
1603
- z-index: 9998;
1604
- background-color: white;
1605
- padding:22px
1606
- }
1607
- .gawd_draw_analytics_front{
1608
- padding: 2px;
1609
- line-height: 28px;
1610
- height: 28px;
1611
- font-size:14px
1612
- }
1613
- #chart_page_post{
1614
- height:100%
1615
- }
1616
- #gawd_post_page_meta{
1617
- height:300px;
1618
- }
1619
-
1620
- /*tracking settings*/
1621
- .gawd_settings_wrapper {
1622
- width: 55%;
1623
- float: left;
1624
- }
1625
- .gawd_tracking_display {
1626
- width: 45%;
1627
- float: left;
1628
- }
1629
- .gawd_advanced .time_wrap{
1630
- width: initial
1631
- }
1632
- #gawd_tracking_enable_code {
1633
- width: 90%;
1634
- padding: 10px;
1635
- border: 2px solid #888;
1636
- }
1637
-
1638
- /*
1639
-
1640
- Original highlight.js style (c) Ivan Sagalaev <maniac@softwaremaniacs.org>
1641
-
1642
- */
1643
-
1644
- .hljs {
1645
- display: block;
1646
- overflow-x: auto;
1647
- padding: 0;
1648
- background: #FFFFFF;
1649
- }
1650
-
1651
-
1652
- /* Base color: saturation 0; */
1653
-
1654
- .hljs,
1655
- .hljs-subst {
1656
- color: #444;
1657
- }
1658
-
1659
- .hljs-comment {
1660
- color: #888888;
1661
- }
1662
-
1663
- .hljs-keyword,
1664
- .hljs-attribute,
1665
- .hljs-selector-tag,
1666
- .hljs-meta-keyword,
1667
- .hljs-doctag,
1668
- .hljs-name {
1669
- font-weight: bold;
1670
- }
1671
-
1672
-
1673
- /* User color: hue: 0 */
1674
-
1675
- .hljs-type,
1676
- .hljs-string,
1677
- .hljs-number,
1678
- .hljs-selector-id,
1679
- .hljs-selector-class,
1680
- .hljs-quote,
1681
- .hljs-template-tag,
1682
- .hljs-deletion {
1683
- color: #880000;
1684
- }
1685
-
1686
- .hljs-title,
1687
- .hljs-section {
1688
- color: #880000;
1689
- font-weight: bold;
1690
- }
1691
-
1692
- .hljs-regexp,
1693
- .hljs-symbol,
1694
- .hljs-variable,
1695
- .hljs-template-variable,
1696
- .hljs-link,
1697
- .hljs-selector-attr,
1698
- .hljs-selector-pseudo {
1699
- color: #BC6060;
1700
- }
1701
-
1702
-
1703
- /* Language color: hue: 90; */
1704
-
1705
- .hljs-literal {
1706
- color: #78A960;
1707
- }
1708
-
1709
- .hljs-built_in,
1710
- .hljs-bullet,
1711
- .hljs-code,
1712
- .hljs-addition {
1713
- color: #397300;
1714
- }
1715
-
1716
-
1717
- /* Meta color: hue: 200 */
1718
-
1719
- .hljs-meta {
1720
- color: #1f7199;
1721
- }
1722
-
1723
- .hljs-meta-string {
1724
- color: #4d99bf;
1725
- }
1726
-
1727
-
1728
- /* Misc effects */
1729
-
1730
- .hljs-emphasis {
1731
- font-style: italic;
1732
- }
1733
-
1734
- .hljs-strong {
1735
- font-weight: bold;
1736
- }
1737
- .gawd_wrap .gawd_text{
1738
- width:6%;
1739
- }
1740
- .gawd_wrap .gawd_content{
1741
- width:16%;
1742
- }
1743
- /*RESPONSIVE*/
1744
- .resp_metrics_menu{
1745
- display:none;
1746
- width: 97%;
1747
- background-color:#A2D0ED;
1748
- color:#fff;
1749
- }
1750
- .resp_menu{
1751
- display:none;
1752
- width:97%;
1753
- background-color:#9DCFAC;
1754
- color:#fff;
1755
- margin-bottom:5px
1756
- }
1757
- .button_label{
1758
- float: left;
1759
- margin: 12px 0 0 15px;
1760
- font-size:18px;
1761
- }
1762
- .menu_metrics_img{
1763
- background-image: URL("../../assets/menu.png");
1764
- background-repeat: no-repeat;
1765
- background-position: 60% 47%;
1766
- background-color:#78BBDA;
1767
- width:35px;
1768
- height:43px;
1769
- float:left
1770
- }
1771
- .menu_img{
1772
- background-image: URL("../../assets/menu.png");
1773
- background-repeat: no-repeat;
1774
- background-position: 60% 47%;
1775
- background-color:#6ab681;
1776
- width:35px;
1777
- height:43px;
1778
- float:left
1779
- }
1780
- .gawd_btn {
1781
- -webkit-border-radius: 60;
1782
- border-radius: 60px;
1783
- font-family: Arial;
1784
- color: #ffffff;
1785
- font-size: 12px;
1786
- background: #9ec9e3;
1787
- padding: 3px 8px;
1788
- text-decoration: none;
1789
- position: fixed;
1790
- right: 27%;
1791
- top: 16%;
1792
- display: none;
1793
- z-index: 999999;
1794
- }
1795
- .close_button_cont{
1796
- width:100%;
1797
- height:100%;
1798
- position:relative;
1799
- }
1800
- .page_chart_div .gawd_btn{
1801
- right: -21px;
1802
- top: -21px;
1803
- position:absolute
1804
- }
1805
- .gawd_btn:hover {
1806
- background: #caced1;
1807
- text-decoration: none;
1808
- }
1809
- .gawd_later{
1810
- border-color:rgb(221, 221, 221);
1811
- display:inline-block;
1812
- text-decoration: none;
1813
- }
1814
- .gawd_later:hover{
1815
- color:#fff;
1816
- text-decoration: none;
1817
- }
1818
- @media only screen and (max-width: 1200px) {
1819
- #gawd_content_range {
1820
- line-height:32px;
1821
- height:32px;
1822
- padding: 0px 3px 0px 10px;
1823
- width:69.3%!important
1824
- }
1825
- }
1826
-
1827
-
1828
- .analytics_page_gawd_tracking .notice-error p{
1829
- font-size:15px !important;
1830
- }
1831
-
1832
- #metric_conteiner #gawd_metric_compare option:nth-child(2){
1833
- display:none;
1834
- }
1835
- .box_metric{
1836
- text-align: left;
1837
- font-size: 18px;
1838
- padding-bottom: 5px;
1839
- font-weight: bold;
1840
- }
1841
-
1842
- .gawd_disabled{
1843
- background-color: rgba(103, 87, 87, 0.09)!important;
1844
- }
1845
- .gawd_compare_cancel{
1846
- background-color: #fff;
1847
- border:1px solid #ccc!important;
1848
- }
1849
- .gawd_emails .gawd_table{
1850
- width:100%
1851
- }
1852
- .gawd_remove_custom_report{
1853
- cursor:pointer
1854
- }
1855
-
1856
- .goodbye-text {
1857
- font-size: 16px;
1858
- font-weight: bold;
1859
- background: #fff;
1860
- padding: 15px;
1861
- line-height: 22px;
1862
- }
1863
-
1864
- .goodbye-text a {
1865
- font-size: 15px;
1866
- }
1867
- .gawd_zoom_message{
1868
- width: 35%;
1869
- padding: 7px;
1870
- background-color: #fff;
1871
- border-left: 4px solid #7db5d8;
1872
- float:left
1873
- }
1874
- .gawd_zoom_message .button_gawd{
1875
- padding: 0 19px 1px;
1876
- }
1877
- .gawd_zoom_message span{
1878
- margin-right:10px
1879
- }
1880
- .lang_info{
1881
- margin-left: 5px;
1882
- width: 16px;
1883
- height: 15px;
1884
- display: inline-block;
1885
- vertical-align: bottom;
1886
- background-color: #fff;
1887
- border-radius: 50%;
1888
- color: #7db5d8;
1889
- line-height: 15px;
1890
- text-align: center;
1891
- }
1892
- #gawd_page_post_meta select{
1893
- padding: 2px;
1894
- line-height: 34px;
1895
- height: 34px;
1896
- float:left
1897
- }
1898
- #gawd_page_post_meta .gawd_content{
1899
- width:21%
1900
- }
1901
- .gawd_menu_coteiner_collapse{
1902
- width: 2.6%;
1903
- float: left;
1904
- display:none;
1905
- margin-right: 12px;
1906
- }
1907
-
1908
- .gawd_menu_coteiner_collapse .gawd_menu_li span {
1909
- display:none;
1910
- }
1911
- .gawd_collapse{
1912
- cursor:pointer;
1913
- padding: 7px 0 7px 0;
1914
- }
1915
- .gawd_collapsed{
1916
- cursor: pointer;
1917
- padding: 7px;
1918
- }
1919
- .gawd_collapse:before,.gawd_collapsed:before{
1920
- content: "\f148";
1921
- vertical-align: middle;
1922
- display: inline-block;
1923
- line-height: 15px;
1924
- left: -3px;
1925
- top: -3px;
1926
- color: #a0a5aa;
1927
- color: rgba(82, 83, 84, 0.6);
1928
- font: 400 20px/1 dashicons!important;
1929
- speak: none;
1930
- margin: 0 auto;
1931
- padding: 0!important;
1932
- position: relative;
1933
- text-align: center;
1934
- width: 25px;
1935
- -webkit-transition: all .1s ease-in-out;
1936
- transition: all .1s ease-in-out;
1937
- -webkit-font-smoothing: antialiased;
1938
- }
1939
-
1940
- .gawd_collapsed:before{
1941
- transform: rotate(180deg);
1942
- }
1943
-
1944
- .gawd_menu_coteiner_collapse #gawd_demographics_li, .gawd_menu_coteiner_collapse #gawd_interests_li,.gawd_menu_coteiner_collapse #gawd_geo_li,.gawd_menu_coteiner_collapse #gawd_behavior_li,.gawd_menu_coteiner_collapse #gawd_technology_li,.gawd_menu_coteiner_collapse #gawd_mobile_li,.gawd_menu_coteiner_collapse #gawd_siteContent_li,.gawd_menu_coteiner_collapse #gawd_events_li,.gawd_menu_coteiner_collapse #gawd_ecommerce_li, .gawd_menu_coteiner_collapse #gawd_customReport_li{
1945
- position:relative
1946
- }
1947
-
1948
- .gawd_menu_coteiner_collapse .collapse_ul{
1949
- position:absolute;
1950
- background-color:rgb(241, 241, 241);
1951
- position: absolute;
1952
- left: 39px;
1953
- top: 0;
1954
- width: 150px;
1955
- padding-left:10px;
1956
- z-index:1111111;
1957
- }
1958
-
1959
- .gawd_menu_coteiner_collapse #gawd_demographics_li:hover #gawd_demographics_ul, .gawd_menu_coteiner_collapse #gawd_interests_li:hover #gawd_interests_ul,.gawd_menu_coteiner_collapse #gawd_geo_li:hover #gawd_geo_ul,.gawd_menu_coteiner_collapse #gawd_behavior_li:hover #gawd_behavior_ul,.gawd_menu_coteiner_collapse #gawd_technology_li:hover #gawd_technology_ul,.gawd_menu_coteiner_collapse #gawd_mobile_li:hover #gawd_mobile_ul,.gawd_menu_coteiner_collapse #gawd_siteContent_li:hover #gawd_siteContent_ul,.gawd_menu_coteiner_collapse #gawd_events_li:hover #gawd_events_ul,.gawd_menu_coteiner_collapse #gawd_ecommerce_li:hover #gawd_ecommerce_ul, .gawd_menu_coteiner_collapse #gawd_customReport_li:hover #gawd_customReport_ul{
1960
- display:block !important;
1961
- }
1962
-
1963
- .gawd_menu_li_sub, .gawd_menu_item {
1964
- padding: 7px;
1965
- }
1966
- .gawd_active_li_text{
1967
- color: #337ab7;
1968
- }
1969
- .gawd_notice{
1970
- font-size:15px
1971
- }
1972
- @media All and (max-width: 750px) {
1973
- .gawd_page_table th, .gawd_page_table td{
1974
- word-break:break-word;
1975
- }
1976
- #gawd_buttons, .gawd_search_input{
1977
- display:none
1978
- }
1979
- #default_date{
1980
- width:96.1%
1981
- }
1982
- .gawd_exclude_tracking .gawd_goal_row .time_wrap, .settings_row .time_wrap{
1983
- float:none
1984
- }
1985
- #gawd_custom_report_form, #gawd_dimensions_form,#gawd_goal_form, .gawd_filters{
1986
- width:100%
1987
- }
1988
- .gawd_wrap .gawd_profiles{
1989
- float:none !important;
1990
- width:100% !important;
1991
- }
1992
- .gawd_wrap .gawd_profiles select{
1993
- width:100% !important;
1994
- }
1995
- .gawd_wrap .gawd_row .caret{
1996
- margin-left:126px
1997
- }
1998
- #gawd_profile_wrapper{
1999
- width:97.2%;
2000
- float:none
2001
- }
2002
- #gawd_profile_wrapper select{
2003
- width:100%
2004
- }
2005
- .gawd_wrap .gawd_row{
2006
- float:none !important;
2007
- width:100% !important;
2008
- margin-bottom: 5px !important;
2009
- }
2010
- .gawd_wrap .gawd_row .gawd_content{
2011
- width: 74.3% !important;
2012
- height: 36px !important;
2013
- line-height: 36px !important;
2014
- }
2015
- .vs_image{
2016
- margin: 30px 0 0 -7px;
2017
- float:left;
2018
- }
2019
-
2020
- #metric_conteiner select{
2021
- width:95%
2022
- }
2023
- .gawd_normal_metabox_conteiner, .gawd_side_metabox_conteiner {
2024
- float:none;
2025
- width:100%
2026
- }
2027
- .auto-fold #wpcontent{
2028
- padding:10px
2029
- }
2030
- .gawd_menu_coteiner{
2031
- width:97%;
2032
- float:none;
2033
- display:none
2034
- }
2035
-
2036
-
2037
- #gawd_right_conteiner{
2038
- width:89.2%!important
2039
- }
2040
- .resp_menu, .resp_metrics_menu{
2041
- display:block
2042
- }
2043
- /*.filter_conteiner{
2044
- display:none;
2045
- }*/
2046
-
2047
- .float_conteiner{
2048
- width:100% !important;
2049
- margin-bottom:10px;
2050
- float:none;
2051
- display:none;
2052
- }
2053
- .filter_conteiner{
2054
- display:none;
2055
- }
2056
- .gawd_metrics{
2057
- width:91%
2058
- }
2059
- .caret{
2060
- margin-left:2px!important
2061
- }
2062
- #gawd_content_chart{
2063
- width: 54.8%;
2064
- }
2065
- .filter_conteiner #gawd_content_range{
2066
- width: 53.3%!important;
2067
- font-size: 11px;
2068
- }
2069
- #date_chart_conteiner{
2070
- position:static !important
2071
- }
2072
- #compare_time_conteiner{
2073
- position:static !important
2074
- }
2075
-
2076
- .gawd_content select{
2077
- height:28px !important
2078
- }
2079
- .gawd_exclude_tracking .checkbox_wrap{
2080
- width:59%
2081
- }
2082
- #gawd_auth_url{
2083
- width:95%
2084
- }
2085
-
2086
- .gawd_profiles select{
2087
- width:99.2%
2088
- }
2089
- .gawd_resp_active_li{
2090
- margin-bottom:5px
2091
- }
2092
- .gawd_tracking_display, .gawd_settings_wrapper{
2093
- float:none;
2094
- width:100%;
2095
- margin-bottom:7px
2096
- }
2097
- .checkbox_wrap{
2098
- width:66%;
2099
- float:none
2100
- }
2101
- .goal_wrap{
2102
- width:89%
2103
- }
2104
- .gawd_info{
2105
- display:none
2106
- }
2107
- .gawd_exclude_tracking .gawd_goal_row .gawd_goal_label{
2108
- float:none;
2109
- width:100%
2110
- }
2111
- .gawd_goal_label, .gawd_duration_label, .gawd_dimension_label{
2112
- width: 31.5%;
2113
- margin-bottom: 5px;
2114
- }
2115
- .goal_wrap .gawd_goal_label,.goal_wrap .gawd_duration_label,
2116
- .dimension_wrapper .gawd_dimension_label {
2117
- width:29%;
2118
- }
2119
- #gawd_right_conteiner{
2120
- width:89.5%
2121
- }
2122
- .onoffswitch_text{
2123
- margin-left:7px
2124
- }
2125
- .gawd_filters .gawd_goal_row .gawd_goal_input, .gawd_alerts .gawd_goal_input, .gawd_pushover .gawd_goal_input{
2126
- width:100%
2127
- }
2128
- #alert_condition, #pushover_condition, #custom_dimensions_header{
2129
- width: 91%;
2130
- }
2131
- .gawd_table{
2132
- width:97% !Important
2133
- }
2134
- .gawd_alerts, .gawd_pushover{
2135
- width:100%
2136
- }
2137
- .gawd_page_destination .gawd_destination_url .gawd_duration_label{
2138
- //float:none;
2139
- width:92.5%;
2140
- margin-bottom:7px
2141
- }
2142
- .gawd_page_destination .gawd_destination_url .gawd_duration_label span{
2143
- margin-left:30px
2144
- }
2145
- .gawd_destination_url .time_wrap{
2146
- width:58.9%;
2147
- //float:none;
2148
- }
2149
- .gawd_destination_url .time_wrap .time_input, .gawd_destination_url .time_wrap .time_input input {
2150
- width:100%
2151
- }
2152
- .goal_wrap .gawd_table{
2153
- width: 97.5%;
2154
- }
2155
- .page_chart_div{
2156
- width:300px;
2157
- padding:0
2158
- }
2159
- .gawd_email_popup{
2160
- width:73%
2161
- }
2162
- .gawd_email_label{
2163
- width:95%;
2164
- float:none;
2165
- margin-bottom:5px
2166
- }
2167
- .gawd_email_input_from{
2168
- width:97.2% !important;
2169
- float:none;
2170
- }
2171
- .gawd_email_input{
2172
- width:97.6%
2173
- }
2174
- .gawd_email_type{
2175
- padding:5px;
2176
- width:95%;
2177
- }
2178
- .gawd_email_attachemnt, .gawd_email_frequency, .gawd_email_type{
2179
- float:none;
2180
- width:95%;
2181
- margin-bottom:5px
2182
- }
2183
- .gawd_email_input_attachment, .gawd_email_input_frequency{
2184
- width:97.6%;
2185
- float:none;
2186
- }
2187
- #gawd_email_week_day, #gawd_email_month_day{
2188
- width:100%
2189
- }
2190
- #gawd_email_month_day{
2191
- float:right;
2192
- }
2193
- .gawd_email_day_of_week{
2194
- margin:0
2195
- }
2196
- .gawd_email_day_of_week, .gawd_email_week_days{
2197
- float:none
2198
- }
2199
- .gawd_email_week_day_ul{
2200
- width:71%;
2201
- margin:0 auto
2202
- }
2203
- .gawd_email_message, .gawd_email_send, .gawd_email_message_label{
2204
- width:97.6%
2205
- }
2206
- .gawd_email_type{
2207
- display:none
2208
- }
2209
- .gawd_btn {
2210
- right: 7%;
2211
- top: 17%;
2212
- }
2213
- .page_chart_div .gawd_btn{
2214
- right: 0%;
2215
- top: 0%;
2216
- }
2217
- .gawd_collapsed, .gawd_collapse, .gawd_menu_coteiner_collapse{
2218
- display:none !important;
2219
- }
2220
- .gawd_zoom_message{
2221
- float:none;
2222
- width:93.4%;
2223
- }
2224
- #chartdiv{
2225
- width:100%
2226
- }
2227
- .gawd_own_wrap{
2228
- width:100%
2229
- }
2230
- #gawd_auth_code{
2231
- width:98%
2232
- }
2233
- .gawd_break{
2234
- word-wrap: break-word;
2235
- word-break: break-all;
2236
- white-space: normal;
2237
- }
2238
- .gawd_goal_label, .gawd_dimension_label, .gawd_duration_label{
2239
- float:none;
2240
- width:92.3%;
2241
- display:block
2242
- }
2243
- .gawd_submit{
2244
- width:96.2%!important
2245
- }
2246
- .gawd_goal_input, .gawd_dimension_input{
2247
- float:none;
2248
- display:block;
2249
- width:100%
2250
-
2251
- }
2252
- .gawd_advanced .gawd_goal_input input, select#default_date_format{
2253
- width:96.1%
2254
- }
2255
- }
2256
- th.ui-th-column div{
2257
- white-space:normal !important;
2258
- height:auto !important;
2259
- padding:2px;
2260
- }
2261
-
2262
- /* .footrow td:first-child{
2263
- width:25px!important
2264
- } */
2265
-
2266
- .gawd_page_titles{
2267
- margin-top:0;
2268
- color:#6da2c3
2269
- }
2270
- .paging-nav {
2271
- text-align: center;
2272
- padding-top: 2px;
2273
- background-color: #E7E7E7;
2274
- color: #C0C0C0;
2275
- border:1px solid #C0C0C0
2276
- }
2277
-
2278
- .paging-nav a {
2279
- margin: auto 1px;
2280
- text-decoration: none;
2281
- display: inline-block;
2282
- color: white;
2283
- border-radius: 3px;
2284
- width:16px;
2285
- height:16px;
2286
- vertical-align:middle
2287
- }
2288
-
2289
- .paging-nav a:first-child{
2290
- background-image: url(images/ui-icons_888888_256x240.png)/*{iconsDefault}*/;
2291
- background-position: -80px -160px;
2292
- }
2293
- .paging-nav a:nth-child(2){
2294
- background-image: url(images/ui-icons_888888_256x240.png)/*{iconsDefault}*/;
2295
- background-position: -48px -160px;
2296
- }
2297
- .paging-nav .gawd_next_link{
2298
- background-image: url(images/ui-icons_888888_256x240.png)/*{iconsDefault}*/;
2299
- background-position: -32px -160px;
2300
- }
2301
- .paging-nav .last_link{
2302
- background-image: url(images/ui-icons_888888_256x240.png)/*{iconsDefault}*/;
2303
- background-position: -64px -160px;
2304
- }
2305
- .paging-nav .gawd_page_separator{
2306
- height: 18px;
2307
- margin: 0 4px;
2308
- padding: 0 0 0 4px;
2309
- border-left: 1.5px solid #ccc;
2310
- }
2311
- .gawd_page_count{
2312
- height: 18px;
2313
- margin: 0 4px;
2314
- padding: 0 4px 0 0;
2315
- border-right: 1.5px solid #ccc;
2316
- }
2317
-
2318
-
2319
- .paging-nav .selected-page {
2320
- background: #F1F1F1;
2321
- color: #7CB5D7;
2322
- font-weight: bold;
2323
- }
2324
-
2325
- .paging-nav input{
2326
- height: 18px;
2327
- font-size: .8em;
2328
- margin: 0;
2329
- width:35px
2330
- }
2331
-
2332
- .paging-nav select{
2333
- font-size: .8em !important;
2334
- line-height: 18px;
2335
- height: 18px !Important;
2336
- margin: 0;
2337
- width:46px;
2338
- vertical-align:top;
2339
- padding:0 2px;
2340
- }
2341
-
2342
- .gawd_pro{
2343
- color:#f08080
2344
- }
2345
-
2346
- .gawd_upgrade{
2347
- clear: both;
2348
- padding: 15px 15px 0px 0px;
2349
- }
2350
- .gawd_upgrade .wd-table{
2351
- background: #D8D8D8;
2352
- padding: 1px 10px;
2353
-
2354
- }
2355
- .gawd_upgrade .wd-cell:first-child{
2356
- padding-right: 10px;
2357
- text-transform: uppercase;
2358
- color: #236592;
2359
- font-weight: bold;
2360
- font-size: 11px;
2361
- }
2362
- .gawd_upgrade a, .gawd_upgrade a:hover {
2363
- text-decoration: none !important;
2364
- }
2365
- .wd-right{
2366
- float:right
2367
- }
2368
- .wd-table{
2369
- background: #D8D8D8;
2370
- padding: 1px 10px;
2371
- display:table;
2372
- }
2373
- .wd-cell-valign-middle {
2374
- vertical-align: middle;
2375
- }
2376
- .wd-cell {
2377
- display: table-cell;
2378
- }
2379
- .wd-clear:after{
2380
- clear: both;
2381
- content: "";
2382
- display: table;
2383
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #wpadminbar #wp-admin-bar-gawd>.ab-item:before{
2
+ content: "\f185";
3
+ top: 2px;
4
+ width:20px;
5
+ height:20px;
6
+ }
7
+ #gawd_body{
8
+ margin: 10px 0;
9
+ background-color: #F1F1F1 !important;
10
+ }
11
+ #gawd_body a{
12
+ text-decoration: none;
13
+ }
14
+ .gawd_auth_wrap{
15
+ width: 27%;
16
+ padding: 35px;
17
+ background-color: #fff;
18
+ margin: 15px;
19
+ }
20
+ .gawd_auth_wrap #gawd_auth_url, .gawd_auth_wrap #gawd_auth_code{
21
+ width:initial
22
+ }
23
+ #gawd_page_title{
24
+ margin: 0 0 20px;
25
+ color:#6da2c3
26
+ }
27
+ .filter_conteiner *{
28
+ box-sizing: content-box !important;
29
+ }
30
+ #first_metric{
31
+ margin-bottom:4px
32
+ }
33
+ #metric_compare img{
34
+ background-image: URL("../../assets/closedot.png");
35
+ width:14px;
36
+ height:14px;
37
+ float:right;
38
+ margin: 16px 0 0 0;
39
+ display:none;
40
+ cursor:pointer
41
+ }
42
+ .hndle{
43
+ cursor:default!important
44
+ }
45
+ .opacity_div_compact{
46
+ display: none;
47
+ background-color: rgba(0, 0, 0, 0.2);
48
+ position: absolute;
49
+ top: 0;
50
+ left: 0;
51
+ width: 100%;
52
+ height: 100%;
53
+ z-index: 99998;
54
+ }
55
+ #opacity_div{
56
+ display: none;
57
+ background-color: rgba(0, 0, 0, 0.2);
58
+ position: fixed;
59
+ top: 0;
60
+ left: 0;
61
+ width: 100%;
62
+ height: 100%;
63
+ z-index: 9997;
64
+ }
65
+ .loading_div_compact{
66
+ display:none;
67
+ text-align: center;
68
+ position: absolute;
69
+ top: 0;
70
+ left: 0;
71
+ width: 100%;
72
+ height: 100%;
73
+ z-index: 99999;
74
+ }
75
+
76
+ #chartdiv {
77
+ width: 98%;
78
+ height: 500px;
79
+ background-color:white
80
+ }
81
+ #chartdiv_compare {
82
+ display:none
83
+ }
84
+ #chart_widget{
85
+ height: 300px;
86
+ }
87
+ .chart_point_hover_metric::before{
88
+ content: '';
89
+ display: inline-block;
90
+ width: 7px;
91
+ height: 7px;
92
+ //vertical-align: middle;
93
+ background-color:rgb(103, 183, 220);
94
+ margin-right:2px
95
+ }
96
+ .chart_point_hover_metric_compare::before{
97
+ content: '';
98
+ display: inline-block;
99
+ width: 7px;
100
+ height: 7px;
101
+ //vertical-align: middle;
102
+ background-color:rgb(253, 212, 0);
103
+ margin-right:2px
104
+ }
105
+ .gawd_normal_metabox_conteiner{
106
+ width:63%;
107
+ float:right;
108
+ }
109
+ .gawd_normal_metabox_conteiner::after{
110
+ content:"";
111
+ clear:both
112
+ }
113
+ .gawd_side_metabox_conteiner{
114
+ width:35%
115
+ }
116
+ .gawd_menu_ul{
117
+ margin:0
118
+ }
119
+ #gawd_date_meta, #gawd_visitors_meta, #gawd_country_meta, #gawd_browser_meta{
120
+ width: 100%;
121
+ height: 400px;
122
+ text-align:center!important
123
+ }
124
+ /* #gawd_browser_meta {
125
+ width: 100%;
126
+ height: 700px;
127
+ }
128
+ #gawd_browser_meta .amcharts-chart-div{
129
+ height:320px !important
130
+ } */
131
+
132
+ #chart {
133
+ width: 100%;
134
+ height: 300px;
135
+ padding-top:10px
136
+ }
137
+ /*real time*/
138
+ .gawd_realtime_conteiner{
139
+ font-size: 100px;
140
+ line-height: 1em;
141
+ text-align: center;
142
+ margin-top: 10px;
143
+ color:#7CB5D7
144
+ }
145
+
146
+ .realtime_colors em{
147
+ display: inline-block;
148
+ height: .8em;
149
+ width: .8em;
150
+ }
151
+ .realtime_bar div{
152
+ height: 20px;
153
+ text-align: center;
154
+ color:white;
155
+ display:inline-block;
156
+ }
157
+ .gawd_menu_coteiner{
158
+ width:20%;
159
+ float:left;
160
+ background-color:#F1F1F1;
161
+ margin-right:15px;
162
+ color:#949494
163
+ }
164
+ .gawd_settings_menu_coteiner{
165
+ width:16%;
166
+ }
167
+ #gawd_right_conteiner{
168
+ width:73%;
169
+ float:left;
170
+ padding: 20px 15px;
171
+ background-color:#fff
172
+ }
173
+
174
+
175
+
176
+ .gawd_menu_li, .gawd_menu_li_tracking{
177
+ padding: 7px 0 7px 0;
178
+ margin:0;
179
+ text-align:left;
180
+ cursor: pointer;
181
+ }
182
+ .gawd_menu_item{
183
+ text-decoration:none;
184
+ color:#949494;
185
+ width:79%;
186
+ display:inline-block
187
+ }
188
+
189
+ .gawd_active_li{
190
+ background-color:rgba(6,5,6,0.06);;
191
+ }
192
+ .gawd_menu_ul_li {
193
+ padding: 5px 0 7px 7px;
194
+ margin: 0 0 0 31px;
195
+ width: 68%;
196
+ }
197
+
198
+ .gawd_list{
199
+ list-style: none;
200
+ margin:0;
201
+ }
202
+ .gawd_list::after{
203
+ clear:both;
204
+ content: "";
205
+ display:table;
206
+ }
207
+
208
+ .clear{
209
+ clear:both
210
+ }
211
+
212
+ .gawd_list_item{
213
+ display: block;
214
+ padding: 8px 0;
215
+ float: left;
216
+ width: 24%;
217
+ text-align: center;
218
+ margin:0;
219
+ cursor:pointer
220
+ }
221
+ .gawd_filter_item{
222
+ text-decoration:none;
223
+ color:#fff
224
+ }
225
+ .gawd_filter_item:hover{
226
+ text-decoration:none;
227
+ color:#fff
228
+ }
229
+ #gawd_hour{
230
+ background-color:#FB8583;
231
+ border: 0.5px solid #FB8583
232
+ }
233
+ #gawd_day a{
234
+ color:#7DB5D8
235
+ }
236
+ #gawd_day{
237
+ background-color:#fff;
238
+ border: 0.5px solid #7DB5D8;
239
+ }
240
+ #gawd_week{
241
+ background-color:#F0B358;
242
+ border: 0.5px solid #F0B358
243
+ }
244
+ #gawd_month{
245
+ background-color:#9DCFAC;
246
+ border: 0.5px solid #9DCFAC
247
+ }
248
+ #gawd_hour:hover{
249
+ background-color:#fff !important;
250
+ }
251
+ #gawd_hour:hover a{
252
+ color:#FB8583 !important
253
+ }
254
+ #gawd_hour:active a{
255
+ color:#FB8583 !important
256
+ }
257
+ #gawd_day:hover{
258
+ background-color:#fff !important;
259
+ }
260
+ #gawd_day:hover a{
261
+ color:#7DB5D8 !important
262
+ }
263
+ #gawd_week:hover{
264
+ background-color:#fff !important;
265
+ }
266
+ #gawd_week:hover a{
267
+ color:#F0B358 !important
268
+ }
269
+ #gawd_month:hover{
270
+ background-color:#fff !important;
271
+ }
272
+ #gawd_month:hover a{
273
+ color:#9DCFAC !important
274
+ }
275
+
276
+
277
+ .gawd_country_select{
278
+ color:rgb(103, 183, 220);
279
+ cursor:pointer;
280
+ }
281
+ .gawd_country_select:hover{
282
+ text-decoration:underline
283
+ }
284
+
285
+ #gawd_mobile_ul, #gawd_geo_ul, #gawd_behavior_ul, #gawd_technology_ul, #gawd_events_ul, #gawd_demographics_ul, #gawd_interests_ul, #country_filter_reset, #gawd_email_week_day, #gawd_email_month_day, #siteSpeed_ul, #gawd_siteContent_ul{
286
+ display:none;
287
+ }
288
+ .gawd_email_popup_overlay{
289
+ display: none;
290
+ background-color: rgba(0, 0, 0, 0.4);
291
+ position: fixed;
292
+ top: 0;
293
+ left: 0;
294
+ width: 100%;
295
+ height: 100%;
296
+ z-index: 99998;
297
+ }
298
+
299
+ .gawd_email_popup{
300
+ display: none;
301
+ text-align: center;
302
+ position: fixed;
303
+ top: 0;
304
+ left: 0;
305
+ right:0;
306
+ bottom:0;
307
+ margin:auto;
308
+ background-color: white;
309
+ width: 42%;
310
+ height: 58%;
311
+ z-index: 99999;
312
+ padding: 20px;
313
+ overflow:auto
314
+ }
315
+ .email_message_cont{
316
+ display: none;
317
+ position: absolute;
318
+ top: 0;
319
+ right: 0;
320
+ font-size: 20px;
321
+ margin: auto;
322
+ left: 0;
323
+ bottom: 0;
324
+ width: 100%;
325
+ height: 20%;
326
+ }
327
+ #country_filter_reset{
328
+ cursor:pointer;
329
+ float:left;
330
+ padding:0 15px 1px
331
+ }
332
+ #gawd_social_ul,#gawd_ecommerce_ul, #gawd_customReport_ul{
333
+ display:none
334
+ }
335
+
336
+ .float_conteiner{
337
+ float:left;
338
+ width:30%
339
+ }
340
+
341
+ #metric_conteiner select{
342
+ width:89%;
343
+ }
344
+ #gawd_start_date, #gawd_end_date{
345
+ background-color:#E7E7E7;
346
+ width: 41%;
347
+ padding: 0;
348
+ }
349
+
350
+ #date_compare_conteiner{
351
+ clear:both;
352
+ display:none;
353
+ }
354
+ #gawd_start_date_compare, #gawd_end_date_compare{
355
+ width:147px;
356
+ }
357
+ #compare_datepicker_wraper{
358
+ text-align:center;
359
+ color:#fff;
360
+ background-color:#AFAFAF;
361
+ padding:6px 0;
362
+ cursor:pointer;
363
+ width:98.5%;
364
+ }
365
+ #compare_datepicker_wraper:hover{
366
+ color: #fff;
367
+ }
368
+ .gawd_text{
369
+ padding: 7px 12px 7px 14px;
370
+ background-color: #E7E7E7;
371
+ float: left;
372
+ width: 27%;
373
+ border: 1px solid #C7C7C7;
374
+ margin: 0px -1px 0 0;
375
+ }
376
+ #gawd_chart_type{
377
+ width: 100%;
378
+ padding: 2px 0px 2px 8px;
379
+ }
380
+ .gawd_content{
381
+ float:left;
382
+ width:52%
383
+ }
384
+ #gawd_content_chart{
385
+ width:54.6%
386
+ }
387
+ #gawd_content_range{
388
+ padding: 5px 3px 9px 13px;
389
+ background-color: #fff;
390
+ border: 1px solid #C7C7C7;
391
+ }
392
+ .gawd_metrics{
393
+ float:left;
394
+ width:75%
395
+ }
396
+ .vs_image{
397
+ margin: 20px 0 0 -13px;
398
+ float:left;
399
+ }
400
+ .filter_conteiner{
401
+ padding-bottom: 10px;
402
+ /*width: 94%;*/
403
+ margin: 0 auto;
404
+ color:#949494
405
+ }
406
+ .filter_conteiner select{
407
+ color:#949494
408
+ }
409
+ #pager{
410
+ background-color: #E7E7E7;
411
+ color: #C0C0C0;
412
+ }
413
+ #gawd_buttons{
414
+ position:relative;
415
+ text-align:right;
416
+ margin-bottom:5px
417
+ }
418
+ .gawd_exports{
419
+ display: none;
420
+ position: absolute;
421
+ z-index: 1;
422
+ right: 69px;
423
+ background-color: #fff;
424
+ padding: 7px;
425
+ border: 1px solid #C7C7C7;
426
+ margin-top: -1px;
427
+ }
428
+ .button_gawd{
429
+ background-color:#7DB5D8;
430
+ color:#fff;
431
+ font-size: 13px;
432
+ line-height: 26px;
433
+ height: 28px;
434
+ margin: 0;
435
+ padding: 0 10px 1px;
436
+ cursor: pointer;
437
+ border-width: 1px;
438
+ border-style: solid;
439
+ -webkit-appearance: none;
440
+ white-space: nowrap;
441
+ -webkit-box-sizing: border-box;
442
+ -moz-box-sizing: border-box;
443
+ box-sizing: border-box;
444
+ }
445
+ .button_gawd_add{
446
+ background-color:#7DB5D8;
447
+ color:#fff;
448
+ font-size: 13px;
449
+ line-height: 26px;
450
+ height: 28px;
451
+ width: 100%;
452
+ margin: 0;
453
+ padding: 0 10px 1px;
454
+ cursor: pointer;
455
+ border-width: 1px;
456
+ border-style: solid;
457
+ -webkit-appearance: none;
458
+ white-space: nowrap;
459
+ -webkit-box-sizing: border-box;
460
+ -moz-box-sizing: border-box;
461
+ box-sizing: border-box;
462
+ }
463
+ .gawd_export_button_csv, .gawd_export_button_pdf {
464
+ display: block !important;
465
+ }
466
+ #date_chart_conteiner{
467
+ width: 39%
468
+
469
+ }
470
+ .gawd_row{
471
+ margin-bottom:4px
472
+ }
473
+ .ui-pg-selbox, .ui-pg-input{
474
+ color:#B5B5B5 !important
475
+ }
476
+ #gawd_social_li::before{
477
+ content: '';
478
+ display: inline-block;
479
+ background-repeat: no-repeat;
480
+ width: 25px;
481
+ height: 25px;
482
+ vertical-align: middle;
483
+ background-position: 83% 78.5%;
484
+ background-image: URL("../../assets/icons-menu.png");
485
+ }
486
+ #gawd_ecommerce_li::before{
487
+ content: '';
488
+ display: inline-block;
489
+ background-repeat: no-repeat;
490
+ width: 25px;
491
+ height: 25px;
492
+ vertical-align: middle;
493
+ background-position: 83% 0%;
494
+ background-image: URL("../../assets/ecommerce-analityc.png");
495
+ }
496
+ #gawd_trafficSource::before{
497
+ content: '';
498
+ display: inline-block;
499
+ background-repeat: no-repeat;
500
+ width: 25px;
501
+ height: 25px;
502
+ vertical-align: middle;
503
+ background-image:URL("../../assets/icons-menu.png");
504
+ background-repeat: no-repeat;
505
+ background-position: 83% 73.5%;
506
+ }
507
+ #gawd_interests_li::before{
508
+ content: '';
509
+ display: inline-block;
510
+ background-repeat: no-repeat;
511
+ width: 25px;
512
+ height: 25px;
513
+ vertical-align: middle;
514
+ background-image:URL("../../assets/icons-menu.png");
515
+ background-repeat: no-repeat;
516
+ background-position: 83% 67.6%;
517
+ }
518
+ #gawd_adWords::before{
519
+ content: '';
520
+ display: inline-block;
521
+ background-repeat: no-repeat;
522
+ width: 25px;
523
+ height: 25px;
524
+ vertical-align: middle;
525
+ background-image:URL("../../assets/icons-menu.png");
526
+ background-repeat: no-repeat;
527
+ background-position: 83% 62%;
528
+ }
529
+ #gawd_demographics_li::before{
530
+ content: '';
531
+ display: inline-block;
532
+ background-repeat: no-repeat;
533
+ width: 25px;
534
+ height: 25px;
535
+ vertical-align: middle;
536
+ background-image:URL("../../assets/icons-menu.png");
537
+ background-repeat: no-repeat;
538
+ background-position: 83% 56%;
539
+ }
540
+ #gawd_general::before{
541
+ content: '';
542
+ display: inline-block;
543
+ background-repeat: no-repeat;
544
+ width: 25px;
545
+ height: 25px;
546
+ vertical-align: middle;
547
+ background-image:URL("../../assets/icons-menu.png");
548
+ background-repeat: no-repeat;
549
+ background-position: 83% 0.5%;
550
+ }
551
+ #gawd_events_li::before{
552
+ content: '';
553
+ display: inline-block;
554
+ background-repeat: no-repeat;
555
+ width: 25px;
556
+ height: 25px;
557
+ vertical-align: middle;
558
+ background-image:URL("../../assets/icons-menu.png");
559
+ background-repeat: no-repeat;
560
+ background-position: 83% 45%;
561
+ }
562
+ #gawd_custom::before{
563
+ content: '';
564
+ display: inline-block;
565
+ background-repeat: no-repeat;
566
+ width: 25px;
567
+ height: 25px;
568
+ vertical-align: middle;
569
+ background-image:URL("../../assets/icons-menu.png");
570
+ background-repeat: no-repeat;
571
+ background-position: 83% 39.5%;
572
+ }
573
+ #gawd_realtime::before{
574
+ content: '';
575
+ display: inline-block;
576
+ background-repeat: no-repeat;
577
+ width: 25px;
578
+ height: 25px;
579
+ vertical-align: middle;
580
+ background-image:URL("../../assets/icons-menu.png");
581
+ background-repeat: no-repeat;
582
+ background-position: 83% 34%;
583
+ }
584
+ #gawd_mobile_li::before{
585
+ content: '';
586
+ display: inline-block;
587
+ background-repeat: no-repeat;
588
+ width: 25px;
589
+ height: 25px;
590
+ vertical-align: middle;
591
+ background-image:URL("../../assets/icons-menu.png");
592
+ background-repeat: no-repeat;
593
+ background-position: 83% 28.5%;
594
+ }
595
+ #gawd_technology_li::before{
596
+ content: '';
597
+ display: inline-block;
598
+ background-repeat: no-repeat;
599
+ width: 25px;
600
+ height: 25px;
601
+ vertical-align: middle;
602
+ background-image:URL("../../assets/icons-menu.png");
603
+ background-repeat: no-repeat;
604
+ background-position: 83% 22.5%;
605
+ }
606
+ #gawd_siteContent_li::before{
607
+ content: '';
608
+ display: inline-block;
609
+ background-repeat: no-repeat;
610
+ width: 25px;
611
+ height: 25px;
612
+ vertical-align: middle;
613
+ background-image:URL("../../assets/icons-menu.png");
614
+ background-repeat: no-repeat;
615
+ background-position: 83% 17%;
616
+ }
617
+ #gawd_behavior_li::before{
618
+ content: '';
619
+ display: inline-block;
620
+ background-repeat: no-repeat;
621
+ width: 25px;
622
+ height: 25px;
623
+ vertical-align: middle;
624
+ background-image:URL("../../assets/icons-menu.png");
625
+ background-repeat: no-repeat;
626
+ background-position: 83% 11.5%;
627
+ }
628
+ #gawd_geo_li::before{
629
+ content: '';
630
+ display: inline-block;
631
+ background-repeat: no-repeat;
632
+ width: 25px;
633
+ height: 25px;
634
+ vertical-align: middle;
635
+ background-image:URL("../../assets/icons-menu.png");
636
+ background-repeat: no-repeat;
637
+ background-position: 83% 6%;
638
+ }
639
+ #gawd_goals::before{
640
+ content: '';
641
+ display: inline-block;
642
+ background-repeat: no-repeat;
643
+ width: 25px;
644
+ height: 25px;
645
+ vertical-align: middle;
646
+ background-image:URL("../../assets/icons-menu.png");
647
+ background-repeat: no-repeat;
648
+ background-position: 83% 50.6%;
649
+ }
650
+ #gawd_adsense::before{
651
+ content: '';
652
+ display: inline-block;
653
+ background-repeat: no-repeat;
654
+ width: 25px;
655
+ height: 25px;
656
+ vertical-align: middle;
657
+ background-image:URL("../../assets/icons-menu.png");
658
+ background-repeat: no-repeat;
659
+ background-position: 83% 95%;
660
+ }
661
+ #gawd_customReport_li::before{
662
+ content: '';
663
+ display: inline-block;
664
+ background-repeat: no-repeat;
665
+ width: 25px;
666
+ height: 25px;
667
+ vertical-align: middle;
668
+ background-image:URL("../../assets/icons-menu.png");
669
+ background-repeat: no-repeat;
670
+ background-position: 83% 100%;
671
+ }
672
+ #gawd_customReport::before{
673
+ content: '';
674
+ display: inline-block;
675
+ background-repeat: no-repeat;
676
+ width: 25px;
677
+ height: 25px;
678
+ vertical-align: middle;
679
+ background-image:URL("../../assets/icons-menu.png");
680
+ background-repeat: no-repeat;
681
+ background-position: 83% 100%;
682
+ }
683
+ #gawd_siteSpeed::before{
684
+ content: '';
685
+ display: inline-block;
686
+ background-repeat: no-repeat;
687
+ width: 25px;
688
+ height: 25px;
689
+ vertical-align: middle;
690
+ background-image:URL("../../assets/icons-menu.png");
691
+ background-repeat: no-repeat;
692
+ background-position: 83% 90%;
693
+ }
694
+ .gawd_menu_li_sub{
695
+ display: inline-block;
696
+ width:79.3%
697
+ }
698
+ .gawd_menu_li_sub_arrow{
699
+ display: inline-block;
700
+ background-repeat: no-repeat;
701
+ width: 25px;
702
+ height: 25px;
703
+ vertical-align: middle;
704
+ background-image:URL("../../assets/icons-menu.png");
705
+ background-repeat: no-repeat;
706
+ background-position: 87% 85.6%;
707
+ float:right;
708
+ }
709
+ .gawd_menu_li_sub_arrow::after{
710
+ clear:both;
711
+ content: "";
712
+ display:table;
713
+ }
714
+
715
+ .gawd_email_week_day_ul::after{
716
+ clear:both;
717
+ content: "";
718
+ display:table;
719
+ }
720
+
721
+ .daterangepicker_input{
722
+ width:95% !important
723
+ }
724
+
725
+ .calendar *{
726
+ background-color:#E7E7E7
727
+ }
728
+ .gawd_date_filter_container{
729
+ margin-bottom:6px
730
+ }
731
+
732
+ .gawd_email_label{
733
+ background-color: #E7E7E7;
734
+ border: 1px solid #C7C7C7;
735
+ float:left;
736
+ padding:5px;
737
+ width:22%;
738
+ text-align:left;
739
+ }
740
+ .gawd_email_attachemnt, .gawd_email_frequency, .gawd_email_type {
741
+ background-color: #E7E7E7;
742
+ border: 1px solid #C7C7C7;
743
+ float:left;
744
+ width:22%;
745
+ padding:5px;
746
+ text-align:left;
747
+ }
748
+ .gawd_email_input{
749
+ float:left;
750
+ width:73%
751
+ }
752
+ .gawd_email_input input{
753
+ width:100%;
754
+ padding:5px 4px
755
+ }
756
+ .gawd_email_input_attachment, .gawd_email_input_frequency{
757
+ float:left;
758
+ width:22%;
759
+ margin-right: 24px;
760
+ }
761
+ .gawd_email_input_attachment select, .gawd_email_input_frequency select{
762
+ width:100%;
763
+ padding:0;
764
+ height:30px
765
+ }
766
+
767
+ .gawd_email_input_attachment{
768
+ margin-right:24px
769
+ }
770
+ .gawd_email_row, .gawd_goal_row, .gawd_dimension_row{
771
+ margin-bottom:7px
772
+ }
773
+ .gawd_email_message_label{
774
+ width:97%;
775
+ padding:5px 0;
776
+ margin:0;
777
+ background-color: #7CB5D7;
778
+ color:#fff
779
+ /*border: 1px solid #C7C7C7;*/
780
+ }
781
+ .gawd_email_message{
782
+ width:97%;
783
+ margin:0;
784
+ }
785
+ .gawd_email_message textarea{
786
+ width:100%;
787
+ height:100px;
788
+ padding:0 !Important
789
+ }
790
+ .gawd_email_send{
791
+ width:97%;
792
+ background-color: #7CB5D7;
793
+ color:#fff;
794
+ text-align:center;
795
+ padding:6px 0;
796
+ cursor: pointer;
797
+ border: 1px solid #DDDDDD;
798
+ -webkit-appearance: none;
799
+ white-space: nowrap;
800
+ -webkit-box-sizing: border-box;
801
+ -moz-box-sizing: border-box;
802
+ box-sizing: border-box;
803
+ }
804
+ .gawd_email_input_from{
805
+ border: 1px solid #DDDDDD;
806
+ padding:5px 0;
807
+ width:72.8%;
808
+ background-color:#E7E7E7
809
+ }
810
+
811
+ .gawd_email_type{
812
+ text-align:center;
813
+ padding:5px 5.6px;
814
+ width:44%
815
+ }
816
+ .gawd_email_week_day{
817
+ display: inline-block;
818
+ float: left;
819
+ padding: 5px 3.1px;
820
+ background-color: #C1C1C1;
821
+ border-right: 1px solid #868686;
822
+ margin: 0;
823
+ cursor: pointer;
824
+ width: 11.5%;
825
+ }
826
+ #gawd_email_week_day, #gawd_email_month_day{
827
+ width:46.5%;
828
+ background-color:#AFAFAF;
829
+ color:#fff
830
+ }
831
+ .gawd_email_week_day:last-child{
832
+ border:none
833
+ }
834
+ .gawd_email_week_day::after{
835
+ clear:both;
836
+ content: "";
837
+ display:table;
838
+ }
839
+ .gawd_email_week_days{
840
+ float:left;
841
+ width:100%
842
+ }
843
+ #gawd_email_month_day_select{
844
+ height:30px;
845
+ line-height:30px;
846
+ width:100%;
847
+ color:#000000
848
+ }
849
+ .gawd_email_day_of_week{
850
+ padding: 6px 0;
851
+ }
852
+ .gawd_email_week_day_ul{
853
+ margin:0;
854
+ padding:0
855
+ }
856
+ .gawd_email_week_day_ul::after{
857
+ clear:both;
858
+ content: "";
859
+ display:table;
860
+ }
861
+ .gawd_email_week_days select{
862
+ padding:0
863
+ }
864
+ .gawd_selected_day{
865
+ background-color:#7CB5D7;
866
+ }
867
+
868
+ .gawd_email_popup ::-webkit-scrollbar{
869
+ width: 3px; /* for vertical scrollbars */
870
+ height: 3px; /* for horizontal scrollbars */
871
+ }
872
+
873
+ .gawd_email_popup ::-webkit-scrollbar-track{
874
+ background: rgba(0, 0, 0, 0.1);
875
+ }
876
+
877
+ .gawd_email_popup ::-webkit-scrollbar-thumb{
878
+ background: rgba(0, 0, 0, 0.5);
879
+ }
880
+
881
+ .gawd_table_conteiner table tbody tr td{
882
+ padding:2px 10px;
883
+ width:87%
884
+ }
885
+ .gawd_table_conteiner table tbody tr th{
886
+ background-color:#7CB5D7;
887
+ color:#fff;
888
+ padding:10px
889
+ }
890
+ .gawd_table_conteiner table{
891
+ border:1px solid #DCDCDC;
892
+ margin:0 auto
893
+ }
894
+ .gawd_page_table{
895
+ border:1px solid #DCDCDC;
896
+ }
897
+ .gawd_page_table th{
898
+ background-color:#7CB5D7;
899
+ color:#fff;
900
+ }
901
+ .gawd_active_users{
902
+ text-align:center
903
+ }
904
+ .gawd_red{
905
+ color:red;
906
+ font-size:15px;
907
+ display: table-cell;
908
+ padding:10px 5px 5px 5px;
909
+ font-weight:bold;
910
+ }
911
+ .gawd_green{
912
+ font-size: 15px;
913
+ padding: 6px 5px 5px 17px;
914
+ font-weight: bold;
915
+ display: table-cell;
916
+ color:green
917
+ }
918
+ .sum_box{
919
+ display:table;
920
+ margin: 10px;
921
+ padding: 10px;
922
+ border: 1px solid;
923
+ }
924
+ ._sum_box{
925
+ display:table;
926
+ margin: 10px;
927
+ padding: 5px;
928
+ //border: 1px solid;
929
+ width: 162px;
930
+
931
+ }
932
+ .box_left{
933
+ display:table-cell;
934
+ text-align:center;
935
+ vertical-align:middle;
936
+ }
937
+ ._box_left{
938
+ //display:table-cell;
939
+ text-align:center;
940
+ //padding-right: 15px;
941
+ }
942
+ ._box_right{
943
+ //display:table-cell;
944
+ text-align:center;
945
+ }
946
+
947
+ .gawd_hide_total{
948
+ display:none
949
+ }
950
+ .gawd_show_total{
951
+ //display:table-cell
952
+ }
953
+ .box_right{
954
+ display:table-cell;
955
+ text-align:center;
956
+ vertical-align:middle;
957
+ }
958
+ .box_title{
959
+ font-size:14px;
960
+ display:table-cell
961
+ }
962
+ .box_value{
963
+ font-size:14px;
964
+ }
965
+ .sum_box span{
966
+ font-size:9px
967
+ }
968
+ ._sum_box span{
969
+ font-size:9px
970
+ }
971
+ .box_value{
972
+ margin-bottom: 8px;
973
+ }
974
+ .vs_image_small{
975
+ display:table-cell;
976
+ margin: 7px 4px 0 13px;
977
+ text-align:center;
978
+ vertical-align:middle;
979
+ padding: 0 0 0 20px;
980
+ }
981
+ .vs_image_small img{
982
+ width:30px
983
+ }
984
+ /*SETTINGS*/
985
+ .gawd_menu_checkbox .time_wrap input{
986
+ width:initial
987
+ }
988
+ .gawd_menu_checkbox .time_wrap {
989
+ float:none
990
+ }
991
+ .gawd_menu_checkbox, .gawd_menu_users{
992
+ float:left;
993
+ width:36%
994
+ }
995
+ .gawd_menu_checkbox{
996
+ width:60%
997
+ }
998
+ input:focus,
999
+ select:focus,
1000
+ textarea:focus,
1001
+ button:focus, a:focus {
1002
+ outline: none;
1003
+ }
1004
+
1005
+
1006
+ #gawd_auth_code {
1007
+ display: none;
1008
+ z-index: 1000;
1009
+ width: 34%;
1010
+ /*padding: 5px;*/
1011
+ position: relative;
1012
+ top: 0;
1013
+ left: 0;
1014
+ /*background-color: #7DB5D8;*/
1015
+ color: white;
1016
+ text-align: center;
1017
+ }
1018
+ #gawd_token {
1019
+ width: 100%;
1020
+ margin: 5px auto;
1021
+ }
1022
+ #gawd_auth_code_submit {
1023
+ float: right;
1024
+ margin: 5px;
1025
+ padding: 5px;
1026
+ /*width: 90%;*/
1027
+ margin: 0 auto;
1028
+ cursor: pointer;
1029
+ /*margin-top: 5px;*/
1030
+ background-color: #7DB5D8;
1031
+ /*float: left;*/
1032
+ }
1033
+ .gawd_reset_button{
1034
+ float: left;
1035
+ }
1036
+ #gawd_reset_button{
1037
+ float: right;
1038
+ margin-right:2px
1039
+ }
1040
+
1041
+
1042
+ #gawd_auth_url{
1043
+ padding: 5px;
1044
+ width: 60%;
1045
+ color: #fff;
1046
+ text-align: center;
1047
+ /*margin-bottom: 10px;*/
1048
+ }
1049
+ .own_inputs{
1050
+ //display:none;
1051
+ }
1052
+
1053
+ #gawd_post_page_popup{
1054
+ height:300px
1055
+ }
1056
+ #gawd_right_conteiner,.gawd_tracking, .gawd_authenicate, .gawd_alerts, .gawd_advanced, .gawd_exclude_tracking, .gawd_pushover, .gawd_filters, .gawd_emails{
1057
+ display:none;
1058
+ }
1059
+ .gawd_tracking, .gawd_authenicate, .gawd_advanced, .gawd_filters, .gawd_emails, .gawd_tracking{
1060
+ margin-top:30px
1061
+
1062
+ }
1063
+ .gawd_alerts, .gawd_pushover {
1064
+ width: 83.5%;
1065
+ }
1066
+ .gawd_filters{
1067
+ width: 83.5%;
1068
+ }
1069
+ .gawd_filters .gawd_goal_row .gawd_goal_input{
1070
+ width:55%
1071
+ }
1072
+ .gawd_filters .gawd_goal_row .gawd_goal_input select{
1073
+ padding: 2px;
1074
+ width: 96%;
1075
+ line-height: 30px;
1076
+ height: 30px !important
1077
+ }
1078
+ #alert_condition, #pushover_condition, #custom_dimensions_header{
1079
+ width: 80.4%;
1080
+ padding: 6px 7px 6px 8px;
1081
+ background-color: #7DB5D8;
1082
+ color: #fff;
1083
+ text-align: center;
1084
+ margin-bottom:7px
1085
+ }
1086
+
1087
+ .gawd_alerts .gawd_goal_input select,.gawd_alerts .gawd_goal_input select, .gawd_pushover .gawd_goal_input select,.gawd_alerts .gawd_goal_input select{
1088
+ padding: 2px;
1089
+ width:96%;
1090
+ line-height: 30px;
1091
+ height: 30px !important;
1092
+ }
1093
+ .gawd_alerts .gawd_goal_input, .gawd_pushover .gawd_goal_input{
1094
+ width:55%
1095
+ }
1096
+ #gawd_authenicate::before{
1097
+ content: '';
1098
+ display: inline-block;
1099
+ background-repeat: no-repeat;
1100
+ width: 25px;
1101
+ height: 25px;
1102
+ vertical-align: middle;
1103
+ background-image:URL("../../assets/icons-settings.png");
1104
+ background-repeat: no-repeat;
1105
+ background-position: 0% 2%;
1106
+ }
1107
+ #gawd_tracking::before{
1108
+ content: '';
1109
+ display: inline-block;
1110
+ background-repeat: no-repeat;
1111
+ width: 25px;
1112
+ height: 25px;
1113
+ vertical-align: middle;
1114
+ background-image:URL("../../assets/icons-settings.png");
1115
+ background-repeat: no-repeat;
1116
+ background-position: 0% 17%;
1117
+ }
1118
+ #gawd_alerts::before{
1119
+ content: '';
1120
+ display: inline-block;
1121
+ background-repeat: no-repeat;
1122
+ width: 25px;
1123
+ height: 25px;
1124
+ vertical-align: middle;
1125
+ background-image:URL("../../assets/icons-settings.png");
1126
+ background-repeat: no-repeat;
1127
+ background-position: 0% 33%;
1128
+ }
1129
+ #gawd_pushover::before{
1130
+ content: '';
1131
+ display: inline-block;
1132
+ background-repeat: no-repeat;
1133
+ width: 25px;
1134
+ height: 25px;
1135
+ vertical-align: middle;
1136
+ background-image:URL("../../assets/icons-settings.png");
1137
+ background-repeat: no-repeat;
1138
+ background-position: 0% 77%;
1139
+ }
1140
+ #gawd_exclude_tracking::before{
1141
+ content: '';
1142
+ display: inline-block;
1143
+ background-repeat: no-repeat;
1144
+ width: 25px;
1145
+ height: 25px;
1146
+ vertical-align: middle;
1147
+ background-image:URL("../../assets/icons-settings.png");
1148
+ background-repeat: no-repeat;
1149
+ background-position: 0% 90%;
1150
+ }
1151
+ #gawd_filters::before{
1152
+ content: '';
1153
+ display: inline-block;
1154
+ background-repeat: no-repeat;
1155
+ width: 25px;
1156
+ height: 25px;
1157
+ vertical-align: middle;
1158
+ background-image:URL("../../assets/icons-settings.png");
1159
+ background-repeat: no-repeat;
1160
+ background-position: 0% 64%;
1161
+ }
1162
+ #gawd_emails::before{
1163
+ content: '';
1164
+ display: inline-block;
1165
+ width: 25px;
1166
+ height: 25px;
1167
+ vertical-align: middle;
1168
+ background-image:URL("../../assets/icons-settings.png");
1169
+ background-repeat: no-repeat;
1170
+ background-position: 0% 103%;
1171
+ }
1172
+ #gawd_advanced::before{
1173
+ content: '';
1174
+ display: inline-block;
1175
+ background-repeat: no-repeat;
1176
+ width: 25px;
1177
+ height: 25px;
1178
+ vertical-align: middle;
1179
+ background-image:URL("../../assets/icons-settings.png");
1180
+ background-repeat: no-repeat;
1181
+ background-position: 83% 50%;
1182
+ }
1183
+ #gawd_advanced{
1184
+ margin-bottom:10px
1185
+ }
1186
+ .gawd_body .gawd_profiles select{
1187
+ width: 34.5%;
1188
+ }
1189
+ .gawd_body .gawd_profiles{
1190
+ margin-bottom:7px
1191
+ }
1192
+ .gawd_profiles select{
1193
+ width: 35%;
1194
+ padding: 2px;
1195
+ line-height: 38px;
1196
+ height: 38px;
1197
+ }
1198
+ .gawd_profiles{
1199
+ margin:7px 0
1200
+ }
1201
+ .settings_row{
1202
+ margin-bottom:5px
1203
+ }
1204
+ .gawd_checkbox span, .gawd_own_wrap span{
1205
+ padding: 7px 5px;
1206
+ display:inline-block;
1207
+ }
1208
+ .gawd_checkbox input{
1209
+ margin:0!important
1210
+ }
1211
+ .gawd_checkbox{
1212
+ }
1213
+ .gawd_submit{
1214
+ text-align:right;
1215
+ }
1216
+
1217
+
1218
+ .gawd_info{
1219
+ float:left;
1220
+ width:17px;
1221
+ height:17px;
1222
+ background-image:URL("../../assets/info.png");
1223
+ background-repeat: no-repeat;
1224
+ margin:4px
1225
+ }
1226
+ .gawd_checkbox .gawd_info, .gawd_own_wrap .gawd_info{
1227
+ float:right;
1228
+ margin: 7px 0 0 0;
1229
+ }
1230
+ /* tooltips */
1231
+ .ui-tooltip {
1232
+ padding: 8px;
1233
+ position: absolute;
1234
+ z-index: 999999;
1235
+ max-width: 300px;
1236
+ -webkit-box-shadow: 0 0 5px #aaa;
1237
+ box-shadow: 0 0 5px #aaa;
1238
+ border-radius:4px;
1239
+ }
1240
+ .ui-widget {
1241
+ font-size: 1.1em;
1242
+ }
1243
+ .ui-widget .ui-widget {
1244
+ font-size: 1em;
1245
+ }
1246
+ .ui-widget-content {
1247
+ background: rgba(0,0,0,0.8) ;
1248
+ color: #fff;
1249
+ }
1250
+ .onoffswitch_text{
1251
+ float:left;
1252
+ padding:4px 3px;
1253
+ }
1254
+
1255
+ .onoffswitch {
1256
+ position: relative;
1257
+ width: 70px;
1258
+ -webkit-user-select:none;
1259
+ -moz-user-select:none;
1260
+ -ms-user-select: none;
1261
+ float:left;
1262
+ height:25px
1263
+ }
1264
+ .onoffswitch-checkbox {
1265
+ display: none !important;
1266
+ }
1267
+ .onoffswitch-label {
1268
+ display: block;
1269
+ overflow: hidden;
1270
+ cursor: pointer;
1271
+ margin-bottom:0;
1272
+ height:25px;
1273
+ border-radius: 5px;
1274
+ }
1275
+
1276
+ .onoffswitch-inner:before, .onoffswitch-inner:after {
1277
+ display: block;
1278
+ float: left;
1279
+ width: 50%;
1280
+ height: 25px;
1281
+ padding: 0;
1282
+ line-height: 25px;
1283
+ font-size: 14px;
1284
+ color: white;
1285
+ font-weight: bold;
1286
+ box-sizing: border-box;
1287
+ }
1288
+
1289
+
1290
+ .onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-inner {
1291
+ margin-left: 0;
1292
+ }
1293
+ .onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-switch {
1294
+ right: 0px;
1295
+ background-color: #fff;
1296
+ width: 36%;
1297
+ }
1298
+ .onoffswitch_disabled .onoffswitch-inner:after {
1299
+ background-color: #EFEFEF !important;
1300
+ color: #e1e1e1 !important;
1301
+ }
1302
+ .onoffswitch_disabled .onoffswitch-inner:before {
1303
+ background-color: #D6EBDC !important;
1304
+ color: #e1e1e1 !important;
1305
+ }
1306
+ .onoffswitch_disabled .onoffswitch-switch {
1307
+ background-color: #fff !important;
1308
+ color: #e9e9e9 !important;
1309
+ box-shadow:none !important
1310
+ }
1311
+
1312
+ .onoffswitch-inner {
1313
+ display: block; width: 200%; margin-left: -100%;
1314
+ transition: margin 0.3s ease-in 0s;
1315
+ }
1316
+
1317
+ .onoffswitch-inner:before {
1318
+ content: "";
1319
+ padding-left: 10px;
1320
+ background-color: #9FCEAC; color: #FFFFFF;
1321
+ }
1322
+ .onoffswitch-inner:after {
1323
+ content: "";
1324
+ padding-right: 10px;
1325
+ background-color: #DBDBDB; color: #999999;
1326
+ text-align: right;
1327
+ }
1328
+ .onoffswitch-switch {
1329
+ display: block;
1330
+ width: 36%;
1331
+ margin:3px 3.5px;
1332
+ background: #FFFFFF;
1333
+ position: absolute;
1334
+ top: 0;
1335
+ bottom: 0;
1336
+ right: 38px;
1337
+ border-radius: 5px;
1338
+ transition: all 0.3s ease-in 0s;
1339
+ box-shadow: 1px 1px 1px #888888;
1340
+ }
1341
+
1342
+ .onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-switch {
1343
+ right: 0px;
1344
+ }
1345
+ .row_percent{
1346
+ font-size:9px
1347
+ }
1348
+ .gawd_table{
1349
+ width:120%;
1350
+ border:1px solid #DCDCDC;
1351
+ margin: 15px 0;
1352
+ }
1353
+ .gawd_table tr:first-child{
1354
+ background-color: #7DB5D8;
1355
+ color: #fff;
1356
+ }
1357
+ .gawd_table th{
1358
+ font-weight:normal;
1359
+ }
1360
+ .gawd_table td{
1361
+ padding:3px
1362
+ }
1363
+ /*GOAL AND CUSTOM DIMENSION MANAGEMENT*/
1364
+ .goal_wrap, .dimension_wrapper{
1365
+ width: 80%;
1366
+ padding:20px;
1367
+ background-color: #fff;
1368
+ margin-top:7px
1369
+ }
1370
+ #gawd_custom_report_form{
1371
+ width: 50%;
1372
+ }
1373
+ #gawd_custom_report_form .gawd_table{
1374
+ width: 200%;
1375
+ }
1376
+ #gawd_custom_report_form .gawd_goal_input{
1377
+ width: 64%;
1378
+ }
1379
+ #gawd_goal_form{
1380
+ width:50%
1381
+ }
1382
+ .goal_wrap .gawd_table, .dimension_wrapper .gawd_table{
1383
+ width:100%
1384
+ }
1385
+
1386
+ #gawd_dimensions_form{
1387
+ width:50%
1388
+ }
1389
+
1390
+ #gawd_dimensions_form .gawd_dimension_input{
1391
+ width:64%
1392
+ }
1393
+
1394
+ .gawd_duration{
1395
+ float:left;
1396
+ width:43%
1397
+ }
1398
+ .gawd_goal_duration_wrap .gawd_duration .time_wrap{
1399
+ width:33.2%;
1400
+ margin:0
1401
+ }
1402
+ .gawd_page_sessions .gawd_duration .time_wrap{
1403
+ width:100%;
1404
+ margin:0
1405
+ }
1406
+ .gawd_goal_duration_wrap .gawd_duration {
1407
+ width: 34.7%;
1408
+ }
1409
+ #gawd_goal_form .gawd_goal_input{
1410
+ width: 61%;
1411
+ }
1412
+ .time_label{
1413
+ text-align:center
1414
+ }
1415
+ .time_input input{
1416
+ width:100%;
1417
+ padding: 5px 7px;
1418
+ }
1419
+ .gawd_page_sessions .gawd_duration .time_wrap input{
1420
+ width:100%;
1421
+ padding: 5px 7px;
1422
+ }
1423
+ .gawd_page_sessions .gawd_duration{
1424
+ width: 34.6%;
1425
+ }
1426
+ .gawd_goal_input input{
1427
+ width:96%;
1428
+ padding: 5px 3px 5px 4px;
1429
+ }
1430
+ .gawd_advanced .gawd_goal_input input{
1431
+ width:98%;
1432
+ }
1433
+ .gawd_duration_label span input {
1434
+ margin:0 0 0 9px;
1435
+ vertical-align: top;
1436
+ }
1437
+ .gawd_destination_url{
1438
+ float: left;
1439
+ width: 100%;
1440
+ margin-bottom:7px;
1441
+ }
1442
+ .gawd_event_name{
1443
+ float: left;
1444
+ width:33%;
1445
+ margin-left: 6px;
1446
+ }
1447
+ .gawd_event_name input{
1448
+ padding: 5px 3px 5px 4px;
1449
+ width:100%
1450
+ }
1451
+ .gawd_destination_url .time_wrap{
1452
+ width:61%;
1453
+ float:left;
1454
+ margin:0;
1455
+ }
1456
+ .gawd_destination_url .time_wrap .time_input input{
1457
+ width: 96%;
1458
+ padding: 5px 6px 5px 7px ;
1459
+ }
1460
+ .time_wrap{
1461
+ width: 91.5%;
1462
+ float:left;
1463
+ margin:4px;
1464
+ }
1465
+
1466
+ .track_label{
1467
+ width:61%
1468
+ }
1469
+
1470
+ .setting_time_wrap{
1471
+
1472
+ }
1473
+ #time_wrap {
1474
+ margin: 0!important;
1475
+ }
1476
+ .gawd_goal_duration_wrap, .gawd_page_sessions, .gawd_page_event{
1477
+ display:none
1478
+ }
1479
+ .gawd_goal_label, .gawd_dimension_label, .gawd_duration_label{
1480
+ background-color: #E7E7E7;
1481
+ border: 1px solid #C7C7C7;
1482
+ float:left;
1483
+ padding:5px;
1484
+ width:28%;
1485
+ text-align:left;
1486
+ }
1487
+ #gawd_goal_form .gawd_duration_label, #gawd_goal_form .gawd_goal_label, #gawd_goal_form .gawd_dimension_label{
1488
+ width:31%
1489
+ }
1490
+
1491
+ .gawd_tracking .gawd_goal_label, .gawd_duration_label{
1492
+ /*width:inherit;*/
1493
+ }
1494
+ .gawd_goal_input, .gawd_dimension_input{
1495
+ float:left;
1496
+ width:66%
1497
+ }
1498
+ .gawd_own_wrap{
1499
+ width:44%
1500
+ }
1501
+ .gawd_own_wrap .gawd_goal_input{
1502
+ width:60%
1503
+ }
1504
+ .gawd_event_comparison_input{
1505
+ float:left;
1506
+ width:29%
1507
+ }
1508
+ .gawd_goal_input .gawd_goal_type, .gawd_dimension_input select, .gawd_goal_profile{
1509
+ padding: 2px 5px 2px 2px;
1510
+ line-height: 30px;
1511
+ height: 30px !important;
1512
+ width: 96%;
1513
+ }
1514
+ .gawd_comparison_input{
1515
+ float:left;
1516
+ width:24%
1517
+ }
1518
+ .gawd_url_comparison_input{
1519
+ float:left;
1520
+ width:60.2%;
1521
+ margin-bottom: 7px;
1522
+ }
1523
+ .gawd_comparison_input select{
1524
+ padding: 2px 6px 2px 2px;
1525
+ line-height: 30px;
1526
+ height: 30px;
1527
+ }
1528
+ .gawd_url_comparison_input select{
1529
+ padding: 2px 6px 2px 2px;
1530
+ line-height: 30px;
1531
+ height: 30px !important;
1532
+ width:97.5%
1533
+ }
1534
+ .gawd_event_comparison_input select{
1535
+ padding: 2px 6px 2px 2px;
1536
+ line-height: 30px;
1537
+ height: 30px;
1538
+ width:97%
1539
+ }
1540
+ #goal_submit{
1541
+ text-align: right;
1542
+ margin-top: 7px;
1543
+ width: 92.1%;
1544
+ }
1545
+ .gawd_add_cd{
1546
+ position: relative;
1547
+ width: 70px;
1548
+ -webkit-user-select:none;
1549
+ -moz-user-select:none;
1550
+ -ms-user-select: none;
1551
+ float:left;
1552
+ }
1553
+ .gawd_exclude_tracking .gawd_goal_row .time_wrap, .settings_row .time_wrap{
1554
+ width: initial;
1555
+ }
1556
+ .gawd_exclude_tracking .gawd_goal_row .time_wrap input, .settings_row .time_wrap input{
1557
+ margin:0 5px 0 10px;
1558
+ }
1559
+ .settings_row .gawd_goal_label{
1560
+ background-color:#fff;
1561
+ border:none;
1562
+ width:18%
1563
+ }
1564
+ #default_date{
1565
+ height:30px;
1566
+ line-height:30px;
1567
+ width:34.5%
1568
+ }
1569
+
1570
+ .checkbox_wrap{
1571
+ float:left;
1572
+ width:66%
1573
+ }
1574
+ .gawd_exclude_tracking .gawd_goal_row .gawd_goal_label{
1575
+ background-color:#fff;
1576
+ border:none
1577
+ }
1578
+
1579
+ .gawd_profile_select{
1580
+ float:right;
1581
+ width:25%
1582
+ }
1583
+ #gawd_profile_wrapper{
1584
+ width:96.9%
1585
+ }
1586
+ .gawd_invalid{
1587
+ border-color:red !important
1588
+ }
1589
+ /*PAGE/POST VIEW*/
1590
+ .page_chart_div{
1591
+ overflow: hidden;
1592
+ text-align: left;
1593
+ width: 550px;
1594
+ height: 500px;
1595
+ position: fixed;
1596
+ margin: auto;
1597
+ left: 0;
1598
+ right: 0;
1599
+ top: 0;
1600
+ bottom: 0;
1601
+ display: block;
1602
+ z-index: 9998;
1603
+ background-color: white;
1604
+ padding:22px
1605
+ }
1606
+ .gawd_draw_analytics_front{
1607
+ padding: 2px;
1608
+ line-height: 28px;
1609
+ height: 28px;
1610
+ font-size:14px
1611
+ }
1612
+ #chart_page_post{
1613
+ height:100%
1614
+ }
1615
+ #gawd_post_page_meta{
1616
+ height:300px;
1617
+ }
1618
+
1619
+ /*tracking settings*/
1620
+ .gawd_settings_wrapper {
1621
+ width: 55%;
1622
+ float: left;
1623
+ }
1624
+ .gawd_tracking_display {
1625
+ width: 45%;
1626
+ float: left;
1627
+ }
1628
+ .gawd_advanced .time_wrap{
1629
+ width: initial
1630
+ }
1631
+ #gawd_tracking_enable_code {
1632
+ width: 90%;
1633
+ padding: 10px;
1634
+ border: 2px solid #888;
1635
+ }
1636
+
1637
+ /*
1638
+
1639
+ Original highlight.js style (c) Ivan Sagalaev <maniac@softwaremaniacs.org>
1640
+
1641
+ */
1642
+
1643
+ .hljs {
1644
+ display: block;
1645
+ overflow-x: auto;
1646
+ padding: 0;
1647
+ background: #FFFFFF;
1648
+ }
1649
+
1650
+
1651
+ /* Base color: saturation 0; */
1652
+
1653
+ .hljs,
1654
+ .hljs-subst {
1655
+ color: #444;
1656
+ }
1657
+
1658
+ .hljs-comment {
1659
+ color: #888888;
1660
+ }
1661
+
1662
+ .hljs-keyword,
1663
+ .hljs-attribute,
1664
+ .hljs-selector-tag,
1665
+ .hljs-meta-keyword,
1666
+ .hljs-doctag,
1667
+ .hljs-name {
1668
+ font-weight: bold;
1669
+ }
1670
+
1671
+
1672
+ /* User color: hue: 0 */
1673
+
1674
+ .hljs-type,
1675
+ .hljs-string,
1676
+ .hljs-number,
1677
+ .hljs-selector-id,
1678
+ .hljs-selector-class,
1679
+ .hljs-quote,
1680
+ .hljs-template-tag,
1681
+ .hljs-deletion {
1682
+ color: #880000;
1683
+ }
1684
+
1685
+ .hljs-title,
1686
+ .hljs-section {
1687
+ color: #880000;
1688
+ font-weight: bold;
1689
+ }
1690
+
1691
+ .hljs-regexp,
1692
+ .hljs-symbol,
1693
+ .hljs-variable,
1694
+ .hljs-template-variable,
1695
+ .hljs-link,
1696
+ .hljs-selector-attr,
1697
+ .hljs-selector-pseudo {
1698
+ color: #BC6060;
1699
+ }
1700
+
1701
+
1702
+ /* Language color: hue: 90; */
1703
+
1704
+ .hljs-literal {
1705
+ color: #78A960;
1706
+ }
1707
+
1708
+ .hljs-built_in,
1709
+ .hljs-bullet,
1710
+ .hljs-code,
1711
+ .hljs-addition {
1712
+ color: #397300;
1713
+ }
1714
+
1715
+
1716
+ /* Meta color: hue: 200 */
1717
+
1718
+ .hljs-meta {
1719
+ color: #1f7199;
1720
+ }
1721
+
1722
+ .hljs-meta-string {
1723
+ color: #4d99bf;
1724
+ }
1725
+
1726
+
1727
+ /* Misc effects */
1728
+
1729
+ .hljs-emphasis {
1730
+ font-style: italic;
1731
+ }
1732
+
1733
+ .hljs-strong {
1734
+ font-weight: bold;
1735
+ }
1736
+ .gawd_wrap .gawd_text{
1737
+ width:6%;
1738
+ }
1739
+ .gawd_wrap .gawd_content{
1740
+ width:16%;
1741
+ }
1742
+ /*RESPONSIVE*/
1743
+ .resp_metrics_menu{
1744
+ display:none;
1745
+ width: 97%;
1746
+ background-color:#A2D0ED;
1747
+ color:#fff;
1748
+ }
1749
+ .resp_menu{
1750
+ display:none;
1751
+ width:97%;
1752
+ background-color:#9DCFAC;
1753
+ color:#fff;
1754
+ margin-bottom:5px
1755
+ }
1756
+ .button_label{
1757
+ float: left;
1758
+ margin: 12px 0 0 15px;
1759
+ font-size:18px;
1760
+ }
1761
+ .menu_metrics_img{
1762
+ background-image: URL("../../assets/menu.png");
1763
+ background-repeat: no-repeat;
1764
+ background-position: 60% 47%;
1765
+ background-color:#78BBDA;
1766
+ width:35px;
1767
+ height:43px;
1768
+ float:left
1769
+ }
1770
+ .menu_img{
1771
+ background-image: URL("../../assets/menu.png");
1772
+ background-repeat: no-repeat;
1773
+ background-position: 60% 47%;
1774
+ background-color:#6ab681;
1775
+ width:35px;
1776
+ height:43px;
1777
+ float:left
1778
+ }
1779
+ .gawd_btn {
1780
+ -webkit-border-radius: 60;
1781
+ border-radius: 60px;
1782
+ font-family: Arial;
1783
+ color: #ffffff;
1784
+ font-size: 12px;
1785
+ background: #9ec9e3;
1786
+ padding: 3px 8px;
1787
+ text-decoration: none;
1788
+ position: fixed;
1789
+ right: 27%;
1790
+ top: 16%;
1791
+ display: none;
1792
+ z-index: 999999;
1793
+ }
1794
+ .close_button_cont{
1795
+ width:100%;
1796
+ height:100%;
1797
+ position:relative;
1798
+ }
1799
+ .page_chart_div .gawd_btn{
1800
+ right: -21px;
1801
+ top: -21px;
1802
+ position:absolute
1803
+ }
1804
+ .gawd_btn:hover {
1805
+ background: #caced1;
1806
+ text-decoration: none;
1807
+ }
1808
+ .gawd_later{
1809
+ border-color:rgb(221, 221, 221);
1810
+ display:inline-block;
1811
+ text-decoration: none;
1812
+ }
1813
+ .gawd_later:hover{
1814
+ color:#fff;
1815
+ text-decoration: none;
1816
+ }
1817
+ @media only screen and (max-width: 1200px) {
1818
+ #gawd_content_range {
1819
+ line-height:32px;
1820
+ height:32px;
1821
+ padding: 0px 3px 0px 10px;
1822
+ width:69.3%!important
1823
+ }
1824
+ }
1825
+
1826
+
1827
+ .analytics_page_gawd_tracking .notice-error p{
1828
+ font-size:15px !important;
1829
+ }
1830
+
1831
+ #metric_conteiner #gawd_metric_compare option:nth-child(2){
1832
+ display:none;
1833
+ }
1834
+ .box_metric{
1835
+ text-align: left;
1836
+ font-size: 18px;
1837
+ padding-bottom: 5px;
1838
+ font-weight: bold;
1839
+ }
1840
+
1841
+ .gawd_disabled{
1842
+ background-color: rgba(103, 87, 87, 0.09)!important;
1843
+ }
1844
+ .gawd_compare_cancel{
1845
+ background-color: #fff;
1846
+ border:1px solid #ccc!important;
1847
+ }
1848
+ .gawd_emails .gawd_table{
1849
+ width:100%
1850
+ }
1851
+ .gawd_remove_custom_report{
1852
+ cursor:pointer
1853
+ }
1854
+
1855
+ .goodbye-text {
1856
+ font-size: 16px;
1857
+ font-weight: bold;
1858
+ background: #fff;
1859
+ padding: 15px;
1860
+ line-height: 22px;
1861
+ }
1862
+
1863
+ .goodbye-text a {
1864
+ font-size: 15px;
1865
+ }
1866
+ .gawd_zoom_message{
1867
+ width: 35%;
1868
+ padding: 7px;
1869
+ background-color: #fff;
1870
+ border-left: 4px solid #7db5d8;
1871
+ float:left
1872
+ }
1873
+ .gawd_zoom_message .button_gawd{
1874
+ padding: 0 19px 1px;
1875
+ }
1876
+ .gawd_zoom_message span{
1877
+ margin-right:10px
1878
+ }
1879
+ .lang_info{
1880
+ margin-left: 5px;
1881
+ width: 16px;
1882
+ height: 15px;
1883
+ display: inline-block;
1884
+ vertical-align: bottom;
1885
+ background-color: #fff;
1886
+ border-radius: 50%;
1887
+ color: #7db5d8;
1888
+ line-height: 15px;
1889
+ text-align: center;
1890
+ }
1891
+ #gawd_page_post_meta select{
1892
+ padding: 2px;
1893
+ line-height: 34px;
1894
+ height: 34px;
1895
+ float:left
1896
+ }
1897
+ #gawd_page_post_meta .gawd_content{
1898
+ width:21%
1899
+ }
1900
+ .gawd_menu_coteiner_collapse{
1901
+ width: 2.6%;
1902
+ float: left;
1903
+ display:none;
1904
+ margin-right: 12px;
1905
+ }
1906
+
1907
+ .gawd_menu_coteiner_collapse .gawd_menu_li span {
1908
+ display:none;
1909
+ }
1910
+ .gawd_collapse{
1911
+ cursor:pointer;
1912
+ padding: 7px 0 7px 0;
1913
+ }
1914
+ .gawd_collapsed{
1915
+ cursor: pointer;
1916
+ padding: 7px;
1917
+ }
1918
+ .gawd_collapse:before,.gawd_collapsed:before{
1919
+ content: "\f148";
1920
+ vertical-align: middle;
1921
+ display: inline-block;
1922
+ line-height: 15px;
1923
+ left: -3px;
1924
+ top: -3px;
1925
+ color: #a0a5aa;
1926
+ color: rgba(82, 83, 84, 0.6);
1927
+ font: 400 20px/1 dashicons!important;
1928
+ speak: none;
1929
+ margin: 0 auto;
1930
+ padding: 0!important;
1931
+ position: relative;
1932
+ text-align: center;
1933
+ width: 25px;
1934
+ -webkit-transition: all .1s ease-in-out;
1935
+ transition: all .1s ease-in-out;
1936
+ -webkit-font-smoothing: antialiased;
1937
+ }
1938
+
1939
+ .gawd_collapsed:before{
1940
+ transform: rotate(180deg);
1941
+ }
1942
+
1943
+ .gawd_menu_coteiner_collapse #gawd_demographics_li, .gawd_menu_coteiner_collapse #gawd_interests_li,.gawd_menu_coteiner_collapse #gawd_geo_li,.gawd_menu_coteiner_collapse #gawd_behavior_li,.gawd_menu_coteiner_collapse #gawd_technology_li,.gawd_menu_coteiner_collapse #gawd_mobile_li,.gawd_menu_coteiner_collapse #gawd_siteContent_li,.gawd_menu_coteiner_collapse #gawd_events_li,.gawd_menu_coteiner_collapse #gawd_ecommerce_li, .gawd_menu_coteiner_collapse #gawd_customReport_li{
1944
+ position:relative
1945
+ }
1946
+
1947
+ .gawd_menu_coteiner_collapse .collapse_ul{
1948
+ position:absolute;
1949
+ background-color:rgb(241, 241, 241);
1950
+ position: absolute;
1951
+ left: 39px;
1952
+ top: 0;
1953
+ width: 150px;
1954
+ padding-left:10px;
1955
+ z-index:1111111;
1956
+ }
1957
+
1958
+ .gawd_menu_coteiner_collapse #gawd_demographics_li:hover #gawd_demographics_ul, .gawd_menu_coteiner_collapse #gawd_interests_li:hover #gawd_interests_ul,.gawd_menu_coteiner_collapse #gawd_geo_li:hover #gawd_geo_ul,.gawd_menu_coteiner_collapse #gawd_behavior_li:hover #gawd_behavior_ul,.gawd_menu_coteiner_collapse #gawd_technology_li:hover #gawd_technology_ul,.gawd_menu_coteiner_collapse #gawd_mobile_li:hover #gawd_mobile_ul,.gawd_menu_coteiner_collapse #gawd_siteContent_li:hover #gawd_siteContent_ul,.gawd_menu_coteiner_collapse #gawd_events_li:hover #gawd_events_ul,.gawd_menu_coteiner_collapse #gawd_ecommerce_li:hover #gawd_ecommerce_ul, .gawd_menu_coteiner_collapse #gawd_customReport_li:hover #gawd_customReport_ul{
1959
+ display:block !important;
1960
+ }
1961
+
1962
+ .gawd_menu_li_sub, .gawd_menu_item {
1963
+ padding: 7px 0 7px 3px;
1964
+ }
1965
+ .gawd_active_li_text{
1966
+ color: #337ab7;
1967
+ }
1968
+ .gawd_notice{
1969
+ font-size:15px
1970
+ }
1971
+ @media All and (max-width: 750px) {
1972
+ .gawd_page_table th, .gawd_page_table td{
1973
+ word-break:break-word;
1974
+ }
1975
+ #gawd_buttons, .gawd_search_input{
1976
+ display:none
1977
+ }
1978
+ #default_date{
1979
+ width:96.1%
1980
+ }
1981
+ .gawd_exclude_tracking .gawd_goal_row .time_wrap, .settings_row .time_wrap{
1982
+ float:none
1983
+ }
1984
+ #gawd_custom_report_form, #gawd_dimensions_form,#gawd_goal_form, .gawd_filters{
1985
+ width:100%
1986
+ }
1987
+ .gawd_wrap .gawd_profiles{
1988
+ float:none !important;
1989
+ width:100% !important;
1990
+ }
1991
+ .gawd_wrap .gawd_profiles select{
1992
+ width:100% !important;
1993
+ }
1994
+ .gawd_wrap .gawd_row .caret{
1995
+ margin-left:126px
1996
+ }
1997
+ #gawd_profile_wrapper{
1998
+ width:97.2%;
1999
+ float:none
2000
+ }
2001
+ #gawd_profile_wrapper select{
2002
+ width:100%
2003
+ }
2004
+ .gawd_wrap .gawd_row{
2005
+ float:none !important;
2006
+ width:100% !important;
2007
+ margin-bottom: 5px !important;
2008
+ }
2009
+ .gawd_wrap .gawd_row .gawd_content{
2010
+ width: 74.3% !important;
2011
+ height: 36px !important;
2012
+ line-height: 36px !important;
2013
+ }
2014
+ .vs_image{
2015
+ margin: 30px 0 0 -7px;
2016
+ float:left;
2017
+ }
2018
+
2019
+ #metric_conteiner select{
2020
+ width:95%
2021
+ }
2022
+ .gawd_normal_metabox_conteiner, .gawd_side_metabox_conteiner {
2023
+ float:none;
2024
+ width:100%
2025
+ }
2026
+ .auto-fold #wpcontent{
2027
+ padding:10px
2028
+ }
2029
+ .gawd_menu_coteiner{
2030
+ width:97%;
2031
+ float:none;
2032
+ display:none
2033
+ }
2034
+
2035
+
2036
+ #gawd_right_conteiner{
2037
+ width:89.2%!important
2038
+ }
2039
+ .resp_menu, .resp_metrics_menu{
2040
+ display:block
2041
+ }
2042
+ /*.filter_conteiner{
2043
+ display:none;
2044
+ }*/
2045
+
2046
+ .float_conteiner{
2047
+ width:100% !important;
2048
+ margin-bottom:10px;
2049
+ float:none;
2050
+ display:none;
2051
+ }
2052
+ .filter_conteiner{
2053
+ display:none;
2054
+ }
2055
+ .gawd_metrics{
2056
+ width:91%
2057
+ }
2058
+ .caret{
2059
+ margin-left:2px!important
2060
+ }
2061
+ #gawd_content_chart{
2062
+ width: 54.8%;
2063
+ }
2064
+ .filter_conteiner #gawd_content_range{
2065
+ width: 53.3%!important;
2066
+ font-size: 11px;
2067
+ }
2068
+ #date_chart_conteiner{
2069
+ position:static !important
2070
+ }
2071
+ #compare_time_conteiner{
2072
+ position:static !important
2073
+ }
2074
+
2075
+ .gawd_content select{
2076
+ height:28px !important
2077
+ }
2078
+ .gawd_exclude_tracking .checkbox_wrap{
2079
+ width:59%
2080
+ }
2081
+ #gawd_auth_url{
2082
+ width:95%
2083
+ }
2084
+
2085
+ .gawd_profiles select{
2086
+ width:99.2%
2087
+ }
2088
+ .gawd_resp_active_li{
2089
+ margin-bottom:5px
2090
+ }
2091
+ .gawd_tracking_display, .gawd_settings_wrapper{
2092
+ float:none;
2093
+ width:100%;
2094
+ margin-bottom:7px
2095
+ }
2096
+ .checkbox_wrap{
2097
+ width:66%;
2098
+ float:none
2099
+ }
2100
+ .goal_wrap{
2101
+ width:89%
2102
+ }
2103
+ .gawd_info{
2104
+ display:none
2105
+ }
2106
+ .gawd_exclude_tracking .gawd_goal_row .gawd_goal_label{
2107
+ float:none;
2108
+ width:100%
2109
+ }
2110
+ .gawd_goal_label, .gawd_duration_label, .gawd_dimension_label{
2111
+ width: 31.5%;
2112
+ margin-bottom: 5px;
2113
+ }
2114
+ .goal_wrap .gawd_goal_label,.goal_wrap .gawd_duration_label,
2115
+ .dimension_wrapper .gawd_dimension_label {
2116
+ width:29%;
2117
+ }
2118
+ #gawd_right_conteiner{
2119
+ width:89.5%
2120
+ }
2121
+ .onoffswitch_text{
2122
+ margin-left:7px
2123
+ }
2124
+ .gawd_filters .gawd_goal_row .gawd_goal_input, .gawd_alerts .gawd_goal_input, .gawd_pushover .gawd_goal_input{
2125
+ width:100%
2126
+ }
2127
+ #alert_condition, #pushover_condition, #custom_dimensions_header{
2128
+ width: 91%;
2129
+ }
2130
+ .gawd_table{
2131
+ width:97% !Important
2132
+ }
2133
+ .gawd_alerts, .gawd_pushover{
2134
+ width:100%
2135
+ }
2136
+ .gawd_page_destination .gawd_destination_url .gawd_duration_label{
2137
+ //float:none;
2138
+ width:92.5%;
2139
+ margin-bottom:7px
2140
+ }
2141
+ .gawd_page_destination .gawd_destination_url .gawd_duration_label span{
2142
+ margin-left:30px
2143
+ }
2144
+ .gawd_destination_url .time_wrap{
2145
+ width:58.9%;
2146
+ //float:none;
2147
+ }
2148
+ .gawd_destination_url .time_wrap .time_input, .gawd_destination_url .time_wrap .time_input input {
2149
+ width:100%
2150
+ }
2151
+ .goal_wrap .gawd_table{
2152
+ width: 97.5%;
2153
+ }
2154
+ .page_chart_div{
2155
+ width:300px;
2156
+ padding:0
2157
+ }
2158
+ .gawd_email_popup{
2159
+ width:73%
2160
+ }
2161
+ .gawd_email_label{
2162
+ width:95%;
2163
+ float:none;
2164
+ margin-bottom:5px
2165
+ }
2166
+ .gawd_email_input_from{
2167
+ width:97.2% !important;
2168
+ float:none;
2169
+ }
2170
+ .gawd_email_input{
2171
+ width:97.6%
2172
+ }
2173
+ .gawd_email_type{
2174
+ padding:5px;
2175
+ width:95%;
2176
+ }
2177
+ .gawd_email_attachemnt, .gawd_email_frequency, .gawd_email_type{
2178
+ float:none;
2179
+ width:95%;
2180
+ margin-bottom:5px
2181
+ }
2182
+ .gawd_email_input_attachment, .gawd_email_input_frequency{
2183
+ width:97.6%;
2184
+ float:none;
2185
+ }
2186
+ #gawd_email_week_day, #gawd_email_month_day{
2187
+ width:100%
2188
+ }
2189
+ #gawd_email_month_day{
2190
+ float:right;
2191
+ }
2192
+ .gawd_email_day_of_week{
2193
+ margin:0
2194
+ }
2195
+ .gawd_email_day_of_week, .gawd_email_week_days{
2196
+ float:none
2197
+ }
2198
+ .gawd_email_week_day_ul{
2199
+ width:71%;
2200
+ margin:0 auto
2201
+ }
2202
+ .gawd_email_message, .gawd_email_send, .gawd_email_message_label{
2203
+ width:97.6%
2204
+ }
2205
+ .gawd_email_type{
2206
+ display:none
2207
+ }
2208
+ .gawd_btn {
2209
+ right: 7%;
2210
+ top: 17%;
2211
+ }
2212
+ .page_chart_div .gawd_btn{
2213
+ right: 0%;
2214
+ top: 0%;
2215
+ }
2216
+ .gawd_collapsed, .gawd_collapse, .gawd_menu_coteiner_collapse{
2217
+ display:none !important;
2218
+ }
2219
+ .gawd_zoom_message{
2220
+ float:none;
2221
+ width:93.4%;
2222
+ }
2223
+ #chartdiv{
2224
+ width:100%
2225
+ }
2226
+ .gawd_own_wrap{
2227
+ width:100%
2228
+ }
2229
+ #gawd_auth_code{
2230
+ width:98%
2231
+ }
2232
+ .gawd_break{
2233
+ word-wrap: break-word;
2234
+ word-break: break-all;
2235
+ white-space: normal;
2236
+ }
2237
+ .gawd_goal_label, .gawd_dimension_label, .gawd_duration_label{
2238
+ float:none;
2239
+ width:92.3%;
2240
+ display:block
2241
+ }
2242
+ .gawd_submit{
2243
+ width:96.2%!important
2244
+ }
2245
+ .gawd_goal_input, .gawd_dimension_input{
2246
+ float:none;
2247
+ display:block;
2248
+ width:100%
2249
+
2250
+ }
2251
+ .gawd_advanced .gawd_goal_input input, select#default_date_format{
2252
+ width:96.1%
2253
+ }
2254
+ }
2255
+ th.ui-th-column div{
2256
+ white-space:normal !important;
2257
+ height:auto !important;
2258
+ padding:2px;
2259
+ }
2260
+
2261
+ /* .footrow td:first-child{
2262
+ width:25px!important
2263
+ } */
2264
+
2265
+ .gawd_page_titles{
2266
+ margin-top:0;
2267
+ color:#6da2c3
2268
+ }
2269
+ .paging-nav {
2270
+ text-align: center;
2271
+ padding-top: 2px;
2272
+ background-color: #E7E7E7;
2273
+ color: #C0C0C0;
2274
+ border:1px solid #C0C0C0
2275
+ }
2276
+
2277
+ .paging-nav a {
2278
+ margin: auto 1px;
2279
+ text-decoration: none;
2280
+ display: inline-block;
2281
+ color: white;
2282
+ border-radius: 3px;
2283
+ width:16px;
2284
+ height:16px;
2285
+ vertical-align:middle
2286
+ }
2287
+
2288
+ .paging-nav a:first-child{
2289
+ background-image: url(images/ui-icons_888888_256x240.png)/*{iconsDefault}*/;
2290
+ background-position: -80px -160px;
2291
+ }
2292
+ .paging-nav a:nth-child(2){
2293
+ background-image: url(images/ui-icons_888888_256x240.png)/*{iconsDefault}*/;
2294
+ background-position: -48px -160px;
2295
+ }
2296
+ .paging-nav .gawd_next_link{
2297
+ background-image: url(images/ui-icons_888888_256x240.png)/*{iconsDefault}*/;
2298
+ background-position: -32px -160px;
2299
+ }
2300
+ .paging-nav .last_link{
2301
+ background-image: url(images/ui-icons_888888_256x240.png)/*{iconsDefault}*/;
2302
+ background-position: -64px -160px;
2303
+ }
2304
+ .paging-nav .gawd_page_separator{
2305
+ height: 18px;
2306
+ margin: 0 4px;
2307
+ padding: 0 0 0 4px;
2308
+ border-left: 1.5px solid #ccc;
2309
+ }
2310
+ .gawd_page_count{
2311
+ height: 18px;
2312
+ margin: 0 4px;
2313
+ padding: 0 4px 0 0;
2314
+ border-right: 1.5px solid #ccc;
2315
+ }
2316
+
2317
+
2318
+ .paging-nav .selected-page {
2319
+ background: #F1F1F1;
2320
+ color: #7CB5D7;
2321
+ font-weight: bold;
2322
+ }
2323
+
2324
+ .paging-nav input{
2325
+ height: 18px;
2326
+ font-size: .8em;
2327
+ margin: 0;
2328
+ width:35px
2329
+ }
2330
+
2331
+ .paging-nav select{
2332
+ font-size: .8em !important;
2333
+ line-height: 18px;
2334
+ height: 18px !Important;
2335
+ margin: 0;
2336
+ width:46px;
2337
+ vertical-align:top;
2338
+ padding:0 2px;
2339
+ }
2340
+
2341
+ .gawd_pro{
2342
+ color:#f08080
2343
+ }
2344
+
2345
+ .gawd_upgrade{
2346
+ clear: both;
2347
+ padding: 15px 15px 0px 0px;
2348
+ }
2349
+ .gawd_upgrade .wd-table{
2350
+ background: #D8D8D8;
2351
+ padding: 1px 10px;
2352
+
2353
+ }
2354
+ .gawd_upgrade .wd-cell:first-child{
2355
+ padding-right: 10px;
2356
+ text-transform: uppercase;
2357
+ color: #236592;
2358
+ font-weight: bold;
2359
+ font-size: 11px;
2360
+ }
2361
+ .gawd_upgrade a, .gawd_upgrade a:hover {
2362
+ text-decoration: none !important;
2363
+ }
2364
+ .wd-right{
2365
+ float:right
2366
+ }
2367
+ .wd-table{
2368
+ background: #D8D8D8;
2369
+ padding: 1px 10px;
2370
+ display:table;
2371
+ }
2372
+ .wd-cell-valign-middle {
2373
+ vertical-align: middle;
2374
+ }
2375
+ .wd-cell {
2376
+ display: table-cell;
2377
+ }
2378
+ .wd-clear:after{
2379
+ clear: both;
2380
+ content: "";
2381
+ display: table;
2382
+ }
2383
+
2384
+ .gawd_pro_flag{
2385
+ font-size: 9px;
2386
+ background: rgb(146, 8, 27);
2387
+ border-radius: 45px;
2388
+ padding: 2px 2px;
2389
+ position: absolute;
2390
+ display: inline-block;
2391
+ width: 19px !important;
2392
+ height: 15px !important;
2393
+ z-index: 45555;
2394
+ line-height: 16px;
2395
+ top: 8px;
2396
+ right: 35px;
2397
+ color: #fff !important;
2398
+ }
2399
+ .gawd_pro_menu{
2400
+ position:relative;
2401
+ }
2402
+ #gawd_ecommerce{
2403
+ position:relative
2404
+ }
2405
+
2406
+ .gawd_description{
2407
+ float: right;
2408
+ width: 17px;
2409
+ height: 17px;
2410
+ background-image: URL("../../assets/info.png");
2411
+ background-repeat: no-repeat;
2412
+ margin: 9px 0 0 0px;
2413
+ }
2414
+ .gawd_auth_button{
2415
+ width:40%;
2416
+ background-color: #7DB5D8;
2417
+ float:right;
2418
+ padding: 5px;
2419
+ }
2420
+ #gawd_right_conteiner .gawd_auth_button{
2421
+ width:24%
2422
+ }
2423
+
2424
+ .gawd_auth_button:hover{
2425
+ background-color:rgba(125,181,216,0.7)
2426
+ }
inc/js/gawd_admin.js CHANGED
@@ -1,3856 +1,3878 @@
1
- var _data;
2
- var data_of_compared;
3
- var _data_compare = [];
4
- var d_start_date = "";
5
- var d_second_start_date = "";
6
- var d_second_end_date = "";
7
- var d_end_date = "";
8
- var d_metric_export = "";
9
- var d_metric_compare_export = "";
10
- var d_dimension_export = "";
11
- var d_tab_name = "";
12
- var d_filter_type = "";
13
- var d_geo_type = "";
14
- var d_country_filter = "";
15
- var weekdays = new Array(7);
16
- weekdays[0] = "Sunday";
17
- weekdays[1] = "Monday";
18
- weekdays[2] = "Tuesday";
19
- weekdays[3] = "Wednesday";
20
- weekdays[4] = "Thursday";
21
- weekdays[5] = "Friday";
22
- weekdays[6] = "Saturday";
23
- var monthnames = new Array();
24
- monthnames[01] = 'January';
25
- monthnames[02] = 'February';
26
- monthnames[03] = 'March';
27
- monthnames[04] = 'April';
28
- monthnames[05] = 'May';
29
- monthnames[06] = 'June';
30
- monthnames[07] = 'July';
31
- monthnames[08] = 'August';
32
- monthnames[09] = 'September';
33
- monthnames[10] = 'October';
34
- monthnames[11] = 'November';
35
- monthnames[12] = 'December';
36
- function gawd_compare() {
37
- jQuery("#gawd_metric_compare").show();
38
- jQuery("#filter_conteiner").show();
39
- var _end_date = (Date.today().add(-1).days()).toString("yyyy-MM-dd");
40
- var start_date_7 = (Date.today().add(-1).days()).add(-7).days().toString("yyyy-MM-dd");
41
- var start_end_date_compare = jQuery('#gawd_start_end_date_compare').val().split('/-/');
42
- var start_date_compare = start_end_date_compare[0] ? start_end_date_compare[0] : start_date_7;
43
- var end_date_compare = start_end_date_compare[1] ? start_end_date_compare[1] : _end_date;
44
- if (!start_date_compare && !end_date_compare) {
45
- return;
46
- }
47
-
48
- var filter_type = jQuery("#gawd_filter_val").val();
49
- metrics = [];
50
- var metric = jQuery("#gawd_metric").val();
51
- var metric_compare = jQuery("#gawd_metric_compare").val();
52
- metrics.push("ga:" + metric);
53
- if (metric_compare != 0) {
54
- metrics.push("ga:" + metric_compare);
55
- } else {
56
- jQuery('.amChartsLegend svg g g g:last-child').css('display', 'none');
57
- }
58
- if (jQuery("#gawd_chart_type").val() == 'line') {
59
- var chartType = 'line';
60
- var fillAlphas = 0;
61
- } else if (jQuery("#gawd_chart_type").val() == 'column') {
62
- var chartType = 'column';
63
- var fillAlphas = 1;
64
- }
65
- var dimension = jQuery("#gawd_tab").val();
66
-
67
- if (dimension == 'date') {
68
- var parseDates = true;
69
- var rotateAngle = 0;
70
- } else if (dimension == 'realTime') {
71
- jQuery(".filter_conteiner").hide();
72
- jQuery("#chartdiv").empty();
73
- gawd_widget_real_time();
74
- return;
75
- } else if (dimension == 'custom') {
76
- var custom = jQuery("#gawd_custom_option").val();
77
- dimension = custom.substring(3);
78
- } else {
79
- var parseDates = false;
80
- var rotateAngle = 90;
81
- }
82
- if (filter_type == "week" || filter_type == "month" || filter_type == "hour") {
83
- var parseDates = false;
84
- }
85
- jQuery.post(gawd_admin.ajaxurl, {
86
- action: 'show_data',
87
- start_date: start_date_compare,
88
- end_date: end_date_compare,
89
- metric: metrics,
90
- dimension: dimension,
91
- security: gawd_admin.ajaxnonce,
92
- filter_type: filter_type,
93
- beforeSend: function () {
94
- jQuery('#opacity_div').show();
95
- jQuery('#loading_div').show();
96
- }
97
- }).done(function (data) {
98
- jQuery('#compare_datepicker_wraper').css('background-color','#4F9A55');
99
- jQuery('#opacity_div').hide();
100
- jQuery('#loading_div').hide();
101
- var data = JSON.parse(data);
102
- data_of_compared = data;
103
- var data_compare = [];
104
- var __data = JSON.parse(JSON.stringify(_data));
105
- for (var i = 0; i < __data.chart_data.length; i++) {
106
- var row = __data.chart_data[i];
107
-
108
- // var __metrics = Object.keys(row);
109
- var __metrics = [];
110
- for(key in row){
111
- __metrics.push(key);
112
- }
113
-
114
- if (typeof data.chart_data[i] != 'undefined') {
115
- for (var j = 0; j < __metrics.length; j++) {
116
- if (__metrics[j] == "color" || __metrics[j] == "No")
117
- continue;
118
- if(__metrics[j].indexOf('compare') == -1){
119
- row[__metrics[j] + ' compare'] = data.chart_data[i][__metrics[j]];
120
- }
121
- }
122
- }
123
- data_compare.push(row);
124
- }
125
- var data_sum = data.data_sum;
126
- var _data_sum = _data.data_sum;
127
- var dataSums = {};
128
- var d_second_start_date = start_date_compare;
129
- var d_second_end_date = end_date_compare;
130
- jQuery('#second_end_date').val(end_date_compare);
131
- jQuery('#second_start_date').val(start_date_compare);
132
- jQuery('#second_data_sum').val(JSON.stringify(data_sum));
133
- jQuery('#first_data_sum').val(JSON.stringify(_data_sum));
134
- if(dimension == 'pagePath' || dimension == 'landingPagePath'){
135
- jQuery('#dimension').val(dimension);
136
- jQuery('#second_data').val(JSON.stringify(data.chart_data));
137
- jQuery('#first_data').val(JSON.stringify(_data.chart_data));
138
- gawd_draw_table_pages_compare(JSON.stringify(_data.chart_data),JSON.stringify(data.chart_data), dimension, data_sum, _data_sum,start_date_compare,end_date_compare);
139
- return;
140
- }
141
- if (dimension != "pagePath" && dimension != "landingPagePath") {
142
-
143
- for (metric in data_sum) {
144
- var dataSum = {};
145
- dataSum[metric] = _data_sum[metric];
146
- dataSum[metric + " compare"] = data_sum[metric];
147
- dataSums[metric] = dataSum;
148
- }
149
- metric = jQuery("#gawd_metric").val();
150
- var metric_compare_export = metric + ' compare';
151
- metric = metric.replace(/([A-Z])/g, " $1").trim();
152
- metric = metric.charAt(0).toUpperCase() + metric.slice(1);
153
- metric = metric.replace(/ +/g, ' ');
154
- var metric_export = metric;
155
- var metric_compare = metric + ' compare';
156
- /* metric_compare = metric_compare.replace(/([A-Z])/g, " $1").trim();
157
- metric_compare = metric_compare.charAt(0).toUpperCase() + metric_compare.slice(1);
158
- metric_compare = metric_compare.replace(/ +/g, ' '); */
159
- var percent = (dataSums[metric][metric] - dataSums[metric][metric + " compare"])/dataSums[metric][metric + " compare"]*100;
160
- percent = isNaN(percent) ? 0 : isFinite(percent) ? percent : 0;
161
- percent = percent.toFixed(2)
162
- var metric_value = parseInt(dataSums[metric][metric]).toLocaleString();
163
- var metric_compare_value = parseInt(dataSums[metric][metric + " compare"]);
164
- if(metric + " compare" == 'Avg Session Duration compare' || metric + " compare" == 'Avg Page Load Time compare' || metric + " compare" == 'Avg Server Response Time compare' || metric + " compare" == 'Avg Redirection Time compare' || metric + " compare" == 'Avg Page Download Time compare'){
165
- metric_compare_value = sec_to_normal(metric_compare_value);
166
- }
167
- else if(metric + " compare" == 'Percent New Sessions compare' || metric + " compare" == 'Bounce Rate compare'){
168
- metric_compare_value = metric_compare_value + '%';
169
- }
170
- if(metric == 'Avg Session Duration' || metric == 'Avg Page Load Time' || metric == 'Avg Server Response Time' || metric == 'Avg Redirection Time' || metric == 'Avg Page Download Time'){
171
- metric_value = sec_to_normal(metric_value);
172
- }
173
- else if(metric == 'Percent New Sessions' || metric == 'Bounce Rate'){
174
- metric_value = metric_value + '%';
175
- }
176
- //percent = percent.substring(0, percent.indexOf(".") + 2);
177
- var percent_color = percent < 0 || metric == 'bounceRate' ? "gawd_red" : "gawd_green";
178
- jQuery(".sum_box").remove();
179
- jQuery("._sum_box").remove();
180
- var sumBox = "<div class='sum_box'>";
181
- var metric_title = metric == 'Percent New Sessions' ? '% New Sessions' : metric;
182
- sumBox += "<div class='box_left'>";
183
- sumBox += "<div class='box_title'>" + metric_title + "</div>";
184
- sumBox += "<div class='" + percent_color + "'>" + percent + " % </div>";
185
- sumBox += "</div>";
186
- sumBox += "<div class='vs_image_small'>";
187
- sumBox += "<img src='" + gawd_admin.gawd_plugin_url + "/assets/vs_rev.png'>";
188
- sumBox += "</div>";
189
- sumBox += "<div class='box_right'>";
190
- sumBox += "<div class='box_value'>" + metric_value + "</div>" + "<div class='box_value'>" + metric_compare_value + "</div>";
191
- sumBox += "</div>";
192
- sumBox += "<div class='clear'></div>";
193
- sumBox += "</div>";
194
- jQuery('#chartdiv').after(sumBox);
195
- if (dimension == 'goals') {
196
- dimension = 'date';
197
- }
198
- jQuery("#chartdiv").show();
199
- dimension = dimension == 'date' || dimension == 'siteSpeed' || dimension == 'adsense' || dimension == 'sales_performance' ? filter_type == '' ? 'date' : filter_type : dimension;
200
- //dimension = dimension == 'siteSpeed' || dimension == 'adsense' ? 'date' : dimension;
201
- var dimension_export = dimension;
202
- dimension = dimension.replace(/([A-Z])/g, " $1").trim();
203
- dimension = dimension.charAt(0).toUpperCase() + dimension.slice(1);
204
- _data_compare = data_compare;
205
- var duration = "";
206
- var durationUnits = "";
207
- if(metric == 'Avg Session Duration'){
208
- duration = "ss";
209
- durationUnits = {
210
- "mm": "m ",
211
- "ss": "s"
212
- };
213
- }
214
- var chartOptions = {
215
- "dataProvider": data_compare,
216
- "type": "serial",
217
- "theme": "light",
218
- "percentPrecision": 1,
219
- "precision": 0,
220
- "export": {
221
- "enabled": true
222
- },
223
- "dataDateFormat": "YYYY-MM-DD",
224
- "valueAxes": [{
225
- "id": "g1",
226
- "axisAlpha": 0.4,
227
- "position": "left",
228
- "title": metric == "Percent New Sessions" ? '% New Sessions' : metric,
229
- "ignoreAxisWidth": false,
230
- "duration": duration,
231
- "durationUnits": durationUnits,
232
- 'minimum': 0,
233
- "boldLabels": true,
234
-
235
- },{
236
- "id": "g2",
237
- "axisAlpha": 0.4,
238
- "position": "right",
239
- "title": metric + ' compare' == "Percent New Sessions compare" ? '% New Sessions compare' : metric + ' compare',
240
- "ignoreAxisWidth": false,
241
- "duration": duration,
242
- "durationUnits": durationUnits,
243
- 'minimum': 0,
244
- "boldLabels": true,
245
-
246
- }],
247
- "graphs": [{
248
- "type": chartType,
249
- "fillAlphas": fillAlphas,
250
- "valueAxis": "g1",
251
- "bullet": "round",
252
- "bulletBorderAlpha": 1,
253
- "bulletColor": "#FFFFFF",
254
- "bulletSize": 5,
255
- "balloonText": "",
256
- "balloonFunction": function (graphDataItem, graph) {
257
- var dimension = jQuery("#gawd_tab").val();
258
- var metric = jQuery("#gawd_metric").val();
259
- var metric_compare = metric + " compare";
260
- metric = metric.replace(/([A-Z])/g, " $1").trim();
261
- metric = metric.charAt(0).toUpperCase() + metric.slice(1);
262
- metric = metric.replace(/ +/g, ' ');
263
- var date = graphDataItem.dataContext[dimension.replace(/([A-Z])/g, " $1").trim().charAt(0).toUpperCase() + dimension.replace(/([A-Z])/g, " $1").trim().slice(1)]
264
- date = typeof date == 'undefined' ? graphDataItem.category : date;
265
- date = date == 0 ? dimension.replace(/([A-Z])/g, " $1").trim().charAt(0).toUpperCase() + dimension.replace(/([A-Z])/g, " $1").trim().slice(1) : date;
266
- var week = weekdays[new Date(graphDataItem.category).getDay()];
267
- week = dimension != 'date' && dimension != 'week' && dimension != 'month' && dimension != 'siteSpeed' && dimension != 'sales_performance' ? '' : week;
268
- if (filter_type == 'week' || filter_type == 'month') {
269
- week = '';
270
- date = graphDataItem.category;
271
- }
272
- /* var date_compare = graphDataItem.dataContext[(dimension+' compare').replace(/([A-Z])/g, " $1").trim().charAt(0).toUpperCase() + (dimension+' compare').replace(/([A-Z])/g, " $1").trim().slice(1)]
273
- date_compare = typeof date_compare == 'undefined' ? graphDataItem.category : date_compare;
274
- date_compare = date_compare == 0 ? (dimension+' compare').replace(/([A-Z])/g, " $1").trim().charAt(0).toUpperCase() + (dimension+' compare').replace(/([A-Z])/g, " $1").trim().slice(1) : date_compare;
275
- */
276
- var week_compare = filter_type != '' ? weekdays[new Date(graphDataItem.dataContext[(filter_type+' compare').replace(/([A-Z])/g, " $1").trim().charAt(0).toUpperCase() + (filter_type+' compare').replace(/([A-Z])/g, " $1").trim().slice(1)]).getDay()] : weekdays[new Date(graphDataItem.dataContext[((dimension == 'siteSpeed' || dimension == 'sales_performance' ? 'Date' : dimension)+' compare').replace(/([A-Z])/g, " $1").trim().charAt(0).toUpperCase() + ((dimension == 'siteSpeed' || dimension == 'sales_performance' ? 'Date' : dimension)+' compare').replace(/([A-Z])/g, " $1").trim().slice(1)]).getDay()];
277
- var date_compare = filter_type != '' ? graphDataItem.dataContext[(filter_type+' compare').replace(/([A-Z])/g, " $1").trim().charAt(0).toUpperCase() + (filter_type+' compare').replace(/([A-Z])/g, " $1").trim().slice(1)] : graphDataItem.dataContext[((dimension == 'siteSpeed' || dimension == 'sales_performance' ? 'Date' : dimension) + 'compare' ).replace(/([A-Z])/g, " $1").trim().charAt(0).toUpperCase() + ((dimension == 'siteSpeed' || dimension == 'sales_performance' ? 'Date' : dimension)+' compare').replace(/([A-Z])/g, " $1").trim().slice(1)]
278
- //week_compare = dimension+' compare' != 'date compare' && dimension+' compare' != 'week compare' && dimension+' compare' != 'month compare' ? '' : week_compare;
279
- if (filter_type == 'week' || filter_type == 'month') {
280
- week_compare = '';
281
- //date_compare = graphDataItem.category;
282
- }
283
-
284
- var metric_value = graphDataItem.dataContext[metric];
285
- metric_value = metric_value.toString().indexOf(".") > 0 ? metric_value.toFixed(2) : metric_value;
286
- var metric_value_change = metric_value;
287
- if(metric == 'Avg Session Duration' || metric == 'Avg Page Load Time' || metric == 'Avg Server Response Time' || metric == 'Avg Redirection Time' || metric == 'Avg Page Download Time'){
288
- metric_value = sec_to_normal(metric_value);
289
- }
290
- if(dimension == "sessionDurationBucket"){
291
- date = date == '1801' ? date + '+ seconds' : date + " sessions";
292
- }
293
- var compare = '';
294
- if (metric_compare != 0) {
295
- metric_compare = metric_compare.replace(/([A-Z])/g, " $1").trim();
296
- metric_compare = metric_compare.charAt(0).toUpperCase() + metric_compare.slice(1);
297
- metric_compare = metric_compare.replace(/ +/g, ' ');
298
- var metric_compare_value = typeof graphDataItem.dataContext[metric_compare] == 'undefined' ? '' : graphDataItem.dataContext[metric_compare];
299
- metric_compare_value = metric_compare_value.toString().indexOf(".") > 0 ? metric_compare_value.toFixed(3) : metric_compare_value;
300
- var metric_compare_value_change = metric_compare_value;
301
- if(metric_compare == 'Avg Session Duration compare' || metric + " compare" == 'Avg Page Load Time compare' || metric + " compare" == 'Avg Server Response Time compare' || metric + " compare" == 'Avg Redirection Time compare' || metric + " compare" == 'Avg Page Download Time compare'){
302
- metric_compare_value = sec_to_normal(metric_compare_value);
303
- }
304
- metric_compare_value = metric_compare == "Bounce Rate compare" || metric_compare == "Percent New Sessions compare" ? metric_compare_value +'%' : metric_compare_value;
305
- var compare = date_compare.toString().indexOf("GMT") > -1 ? '' : metric_compare + ': ' + metric_compare_value.toLocaleString();
306
- }
307
- metric_value = metric == "Bounce Rate" || metric == "Percent New Sessions" ? parseFloat(metric_value).toLocaleString() +'%' : metric != 'Avg Session Duration' ? parseFloat(metric_value).toLocaleString() : metric_value;
308
-
309
- date_compare = date_compare.toString().indexOf("GMT") > -1 ? '' : date_compare;
310
- date = date.toString().indexOf('GMT') > -1 ? '' : date;
311
- week = typeof week == 'undefined' ? '' : week != '' ? week + ', ' : '';
312
- week_compare = typeof week_compare == 'undefined' ? '' : week_compare != '' ? week_compare + ', ' : '';
313
- if(gawd_admin.default_date_format == 'ymd_without_week'){
314
- week = '';
315
- week_compare = '';
316
- }
317
- else if(gawd_admin.default_date_format == 'month_name_without_week' || gawd_admin.default_date_format == 'month_name_with_week'){
318
- var dates = date.split('-');
319
- var dates_compare = date_compare.split('-');
320
- if(typeof dates != 'undefined' && typeof dates_compare != 'undefined' && dates.length>2 && dates_compare.length>2){
321
- dates[2] = dates[2].indexOf('0') == 0 ? dates[2].substring(1) : dates[2];
322
- dates[1] = dates[1].indexOf('0') == 0 ? dates[1].substring(1) : dates[1];
323
- date = monthnames[dates[1]] + ' ' + dates[2] + ', ' + dates[0];
324
- dates_compare[2] = dates_compare[2].indexOf('0') == 0 ? dates_compare[2].substring(1) : dates_compare[2];
325
- dates_compare[1] = dates_compare[1].indexOf('0') == 0 ? dates_compare[1].substring(1) : dates_compare[1];
326
- date_compare = monthnames[dates_compare[1]] + ' ' + dates_compare[2] + ', ' + dates_compare[0];
327
- }
328
-
329
- if(gawd_admin.default_date_format == 'month_name_without_week'){
330
- week = '';
331
- week_compare = '';
332
- }
333
- }
334
- var change_percent = (((metric_value_change - metric_compare_value_change )/metric_compare_value_change)*100).toFixed(2);
335
- change_percent = isNaN(change_percent) ? '100%' : isFinite(change_percent) ? change_percent + "%" : '100%';
336
- change_percent = metric_value_change == 0 && metric_compare_value_change == 0 ? 0 : change_percent + "%";
337
- var metric_compare_class = compare != "" ? "class='chart_point_hover_metric_compare'" : '';
338
- return "<div style='word-break:break-word; margin:10px; text-align:left'>" + week + "<span style='font-size:11px'>" + date + "</span><br><span class='chart_point_hover_metric' style='font-size:11px'>" + metric + ': ' + metric_value + "</span><br>" + week_compare + "<span style='font-size:11px'>" + date_compare + "</span><br><span style='font-size:11px'><span style='font-size:11px' " + metric_compare_class + ">" + compare + "</span><br><span>change: "+change_percent+"</span></div>"
339
- },
340
- //"hideBulletsCount": 50,
341
- "lineThickness": 5,
342
- "title": metric == "Percent New Sessions" ? '% New Sessions' : metric,
343
- "useLineColorForBulletBorder": true,
344
- "valueField": metric,
345
- }, {
346
- "type": chartType,
347
- "fillAlphas": fillAlphas,
348
- "valueAxis": "g2",
349
- "bullet": "round",
350
- "bulletBorderAlpha": 1,
351
- "bulletColor": "#FFFFFF",
352
- "bulletSize": 5,
353
- "showBalloon": true,
354
- "balloonText": "",
355
- //"hideBulletsCount": 50,
356
-
357
- "lineThickness": 2,
358
- "title": metric + ' compare' == "Percent New Sessions compare" ? '% New Sessions compare' : metric + ' compare',
359
- "useLineColorForBulletBorder": true,
360
- "valueField": metric + ' compare',
361
- "duration": duration,
362
- "durationUnits": durationUnits,
363
- }],
364
- "chartCursor": {
365
- "pan": false,
366
- "valueLineEnabled": false,
367
- "valueLineBalloonEnabled": false,
368
- "cursorAlpha": 1,
369
- "cursorColor": "#258cbb",
370
- "limitToGraph": "g1",
371
- "valueLineAlpha": 0.2
372
- },
373
- "categoryField": dimension,
374
- "categoryAxis": {
375
- "autoRotateCount": 10,
376
- "autoRotateAngle": 45,
377
- "parseDates": parseDates,
378
- "dashLength": 1,
379
- "minorGridEnabled": true,
380
- "labelFunction": function(valueText, serialDataItem, categoryAxis) {
381
- if(typeof valueText != 'undefined'){
382
- if (valueText.length > 15)
383
- return valueText.substring(0, 15) + '...';
384
- else
385
- return valueText;
386
- }
387
- },
388
- "boldLabels":true,
389
- },
390
- "legend": {
391
- 'switchable': false
392
- },
393
- "zoomControl": {
394
- "zoomControlEnabled": false
395
- }
396
- }
397
- if(metric == "Percent New Sessions" || metric == "Bounce Rate"){
398
- var valueAxes = chartOptions["valueAxes"][0];
399
- valueAxes["maximum"] = 100;
400
- }
401
- if(typeof chartOptions["valueAxes"][1] != "undefined" && (metric + ' compare' == "Percent New Sessions compare" || metric + ' compare' == "Bounce Rate compare")){
402
- var valueAxes = chartOptions["valueAxes"][1];
403
- valueAxes["maximum"] = 100;
404
- }
405
- var chart_compare = AmCharts.makeChart("chartdiv", chartOptions);
406
- //CANVAS//
407
- jQuery("#chartdiv").find('a').remove();
408
- jQuery('svg').find('desc').remove();
409
- var svg = document.getElementsByTagName('svg')[0];
410
- var canvas = document.getElementById("canvass");
411
- draw_canvas(svg, canvas);
412
- url = canvas.toDataURL();
413
- //CANVAS URL//
414
- var tab_name = window.location.href.split('tab=');
415
-
416
- d_start_date = start_date_compare;
417
- d_end_date = end_date_compare;
418
- d_metric_export = metric_export;
419
- d_metric_compare_export = metric_compare_export;
420
- d_dimension_export = dimension_export;
421
- d_tab_name = tab_name;
422
- d_filter_type = filter_type;
423
-
424
- if (metric_compare == 0) {
425
- //jQuery('.amChartsLegend svg g g g:last-child').hide();
426
- }
427
- jQuery("#chartdiv").find('a').hide();
428
- jQuery("#gbox_griddiv").remove();
429
- var grid = '<table id="griddiv"></table><div id="pager"></div>';
430
- jQuery('.gawd_chart_conteiner').append(grid);
431
- gawd_draw_table(JSON.stringify(data_compare), metric, metric + ' compare', dimension, dataSums);
432
- }
433
- })
434
- }
435
- function gawd_draw_analytics_compact(metric, metric_compare, dimension, chart_type, chart_id) {
436
- var _end_date = (Date.today().add(-1).days()).toString("yyyy-MM-dd");
437
- var start_date_7 = (Date.today().add(-1).days()).add(-7).days().toString("yyyy-MM-dd");
438
- var start_end_date = typeof jQuery('#gawd_start_end_date_compact').val() != 'undefined' ? jQuery('#gawd_start_end_date_compact').val() : start_date_7 + '/-/' + _end_date;
439
-
440
- var start_end_date = start_end_date.split('/-/');
441
- var start_date = start_end_date[0];
442
- var end_date = start_end_date[1];
443
- metrics = [];
444
- metrics.push("ga:" + metric);
445
- if (metric_compare != 0) {
446
- metrics.push("ga:" + metric_compare);
447
- }
448
-
449
- if (dimension == 'date') {
450
- var parseDates = true;
451
- var rotateAngle = 90;
452
- } else {
453
- var parseDates = false;
454
- var rotateAngle = 90;
455
- }
456
- if (chart_type == 'column') {
457
- var fillAlphas = 1;
458
- }
459
- var timezone = -(new Date().getTimezoneOffset() / 60);
460
- jQuery.post(gawd_admin.ajaxurl, {
461
- action: 'show_data_compact',
462
- start_date: start_date,
463
- end_date: end_date,
464
- metric: metrics,
465
- dimension: dimension,
466
- security: gawd_admin.ajaxnonce,
467
- timezone: timezone,
468
- beforeSend: function () {
469
- jQuery('#' + chart_id).closest(".postbox").find('.opacity_div_compact').show();
470
- jQuery('#' + chart_id).closest(".postbox").find('.loading_div_compact').show();
471
- }
472
- }).done(function (result) {
473
- jQuery('.opacity_div_compact').hide();
474
- jQuery('.loading_div_compact').hide();
475
- dimension = dimension.replace(/([A-Z])/g, " $1").trim();
476
- dimension = dimension.charAt(0).toUpperCase() + dimension.slice(1);
477
- metric = metric.replace(/([A-Z])/g, " $1").trim();
478
- metric = metric.charAt(0).toUpperCase() + metric.slice(1);
479
- metric = metric.replace(/ +/g, ' ');
480
- metric_compare = metric_compare.replace(/([A-Z])/g, " $1").trim();
481
- metric_compare = metric_compare.charAt(0).toUpperCase() + metric_compare.slice(1);
482
- metric_compare = metric_compare.replace(/ +/g, ' ');
483
- if(dimension == 'Date'){
484
- var data = JSON.parse(result);
485
- var c = '';
486
- var duration = "";
487
- var durationUnits = "";
488
- if(metric == 'Avg Session Duration'){
489
- duration = "ss";
490
- durationUnits = {
491
- "mm": "m ",
492
- "ss": "s"
493
- };
494
- }
495
- if (metric_compare != '' && metric_compare != 0) {
496
- var _duration = '';
497
- var _durationUnits = '';
498
- metric_compare = metric_compare.replace(/([A-Z])/g, "$1").trim();
499
- metric_compare = metric_compare.charAt(0).toUpperCase() + metric_compare.slice(1);
500
- metric_compare = metric_compare.replace(/ +/g, ' ');
501
- metric_compare_title = /* ' vs ' + */ metric_compare.charAt(0).toUpperCase() + metric_compare.slice(1) == "Percent New Sessions" ? '% New Sessions' : metric_compare.charAt(0).toUpperCase() + metric_compare.slice(1);
502
- if(metric_compare == 'Avg Session Duration'){
503
- _duration = "ss";
504
- _durationUnits = {
505
- "mm": "m ",
506
- "ss": "s"
507
- };
508
- }
509
- c = {
510
- "id": "g2",
511
- "axisAlpha": 0.4,
512
- "position": "right",
513
- "title": metric_compare_title,
514
- "ignoreAxisWidth": false,
515
- "duration": _duration,
516
- "durationUnits": _durationUnits,
517
- 'minimum': 0
518
- };
519
-
520
- }
521
- else{
522
- if(chart_id == 'gawd_date_meta')
523
- setTimeout(function(){jQuery('#gawd_date_meta .amChartsLegend svg g g g:last-child').hide()},1);
524
- }
525
- jQuery("#_sum_comp_" + chart_id).remove();
526
- jQuery('#_sum_comp_' + chart_id).remove();
527
-
528
- if(typeof data.data_sum != 'undefined'){
529
- var float = '';
530
- if (metric_compare != '' && metric_compare != 0){
531
- float="style='float:left'";
532
- var total = data.data_sum[metric_compare];
533
- var avg = '';
534
- var diff = ((Date.parse(end_date).getTime() - Date.parse(start_date).getTime()) / 3600 / 24 / 1000)+1;
535
- var show_hide = 'gawd_show_total';
536
- if(metric == 'Bounce Rate' || metric == 'Percent New Sessions' || metric == 'Pageviews Per Session'){
537
- avg = parseFloat(total).toFixed(2);
538
- if(metric != 'Pageviews Per Session'){
539
- avg = avg + '%';
540
- }
541
- show_hide = 'gawd_hide_total';
542
- }
543
- else if(metric_compare == 'Avg Session Duration'){
544
- avg = sec_to_normal(avg);
545
- show_hide = 'gawd_hide_total';
546
- }
547
- else{
548
- //avg = Math.ceil(total/diff);
549
- avg = parseFloat(total/diff).toFixed(2);
550
- }
551
- var percent_color = total == 0 || metric_compare == 'Bounce Rate' ? "gawd_red" : "gawd_green";
552
- var sumBox = "<div class='_sum_box' id='_sum_comp_" + chart_id + "'>";
553
- metric_compare_title = metric_compare == 'Percent New Sessions' ? '% New Sessions' : metric_compare;
554
- sumBox += "<div class='box_metric'>" + metric_compare_title + "</div>"
555
- sumBox += "<div class='_box_left " + show_hide + "'>";
556
- sumBox += "<div class='box_title'>Total</div>";
557
- sumBox += "<div class='" + percent_color + "'>" + parseInt(total) + "</div>";
558
- sumBox += "</div>";
559
-
560
- sumBox += "<div class='_box_right'>";
561
- sumBox += "<div class='box_title'>Average</div>";
562
- sumBox += "<div class='" + percent_color + "'>" + avg + "</div>";
563
- sumBox += "</div>";
564
- sumBox += "<div class='clear'></div>";
565
- sumBox += "</div>";
566
- sumBox += "<div class='clear'></div>";
567
- jQuery('#'+chart_id).after(sumBox);
568
- }
569
- var total = data.data_sum[metric];
570
- var avg = '';
571
- var diff = ((Date.parse(end_date).getTime() - Date.parse(start_date).getTime()) / 3600 / 24 / 1000)+1;
572
- var show_hide = 'gawd_show_total';
573
- if(metric == 'Bounce Rate' || metric == 'Percent New Sessions' || metric == 'Pageviews Per Session'){
574
- avg = parseFloat(total).toFixed(2);
575
- if(metric != 'Pageviews Per Session'){
576
- avg = avg + '%';
577
- }
578
- show_hide = 'gawd_hide_total';
579
- }
580
- else if(metric == 'Avg Session Duration'){
581
- avg = sec_to_normal(avg);
582
- show_hide = 'gawd_hide_total';
583
- }
584
- else{
585
- //avg = Math.ceil(total/diff);
586
- avg = parseFloat(total/diff).toFixed(2);
587
- }
588
- var percent_color = total == 0 || metric == 'Bounce Rate' ? "gawd_red" : "gawd_green";
589
- jQuery('#_sum_' + chart_id).remove();
590
- var sumBox = "<div " + float + " class='_sum_box' id='_sum_" + chart_id + "'>";
591
- var metric_title = metric == 'Percent New Sessions' ? '% New Sessions' : metric;
592
- sumBox += "<div class='box_metric'>" + metric_title + "</div>"
593
- sumBox += "<div class='_box_left " + show_hide + "'>";
594
- sumBox += "<div class='box_title'>Total</div>";
595
- sumBox += "<div class='" + percent_color + "'>" + parseInt(total) + "</div>";
596
- sumBox += "</div>";
597
-
598
- sumBox += "<div class='_box_right'>";
599
- sumBox += "<div class='box_title'>Average</div>";
600
- sumBox += "<div class='" + percent_color + "'>" + avg + "</div>";
601
- sumBox += "</div>";
602
- sumBox += "<div class='clear'></div>";
603
- sumBox += "</div>";
604
- jQuery('#'+chart_id).after(sumBox);
605
- }
606
-
607
- data = data.chart_data;
608
-
609
- AmCharts.addInitHandler(function(chart) {
610
- var maxDP = {};
611
- var max = 0;
612
- for(var i = 0; i < data.length; i++) {
613
- var dp = data[i];
614
- if (dp[metric] > max) {
615
- maxDP = dp;
616
- max = dp[metric];
617
- }
618
- }
619
- maxDP.color = "#cc2525";
620
- }, ["serial"]);
621
- var chartOptions = {
622
- "dataProvider": data,
623
- "type": "serial",
624
- "theme": "light",
625
- "percentPrecision": 1,
626
- "precision": 0,
627
- "export": {
628
- "enabled": true
629
- },
630
- "dataDateFormat": "YYYY-MM-DD",
631
- "valueAxes": [{
632
- "id": "g1",
633
- "axisAlpha": 0.4,
634
- "position": "left",
635
- "title": metric == "Percent New Sessions" ? '% New Sessions' : metric,
636
- "ignoreAxisWidth": false,
637
- "duration": duration,
638
- "durationUnits": durationUnits,
639
- 'minimum':0,
640
- "boldLabels": true,
641
- },c],
642
- "graphs": [{
643
- "type": chart_type,
644
- "fillAlphas": fillAlphas,
645
- "valueAxis": "g1",
646
- "bullet": "round",
647
- "bulletBorderAlpha": 1,
648
- "bulletColor": "#FFFFFF",
649
- "bulletSize": 5,
650
- "balloonFunction": function (graphDataItem, graph) {
651
- //var metric = jQuery("#gawd_metric_compact").val();
652
- //var metric_compare = jQuery("#gawd_metric_compare_compact").val();
653
- metric = metric.replace(/([A-Z])/g, "$1").trim();
654
- metric = metric.charAt(0).toUpperCase() + metric.slice(1);
655
- metric = metric.replace(/ +/g, ' ');
656
- var filter_type = jQuery("#gawd_filter_val").val();
657
-
658
- var week = weekdays[new Date(graphDataItem.category).getDay()];
659
-
660
- var date = graphDataItem.dataContext[dimension.replace(/([A-Z])/g, " $1").trim().charAt(0).toUpperCase() + dimension.replace(/([A-Z])/g, " $1").trim().slice(1)]
661
- if (filter_type == 'week' || filter_type == 'month') {
662
- week = '';
663
- date = graphDataItem.category;
664
- }
665
- date = typeof date == 'undefined' ? graphDataItem.category : date;
666
- date = date == 0 ? dimension.replace(/([A-Z])/g, " $1").trim().charAt(0).toUpperCase() + dimension.replace(/([A-Z])/g, " $1").trim().slice(1) : date;
667
- week = dimension != 'Date' && dimension != 'week' && dimension != 'month' ? '' : week + ', ';
668
-
669
- var metric_value = typeof graphDataItem.dataContext[metric] != 'undefined' ? graphDataItem.dataContext[metric].toLocaleString() : '';
670
- if(metric == 'Avg Session Duration'){
671
- metric_value = sec_to_normal(metric_value);
672
- }
673
- else if(metric == 'Bounce Rate' || metric == 'Percent New Sessions'){
674
- metric_value = parseFloat(metric_value).toFixed(2) + '%';
675
- }
676
- if(dimension == "sessionDurationBucket"){
677
- date = date == '1801' ? date + '+ seconds' : date + " seconds";
678
- }
679
- var compare = '';
680
- if (metric_compare != 0) {
681
- metric_compare = metric_compare.replace(/([A-Z])/g, "$1").trim();
682
- metric_compare = metric_compare.charAt(0).toUpperCase() + metric_compare.slice(1);
683
- metric_compare = metric_compare.replace(/ +/g, ' ');
684
- var metric_compare_value = graphDataItem.dataContext[metric_compare];
685
- if(typeof metric_compare_value != 'undefined'){
686
- metric_compare_value = metric_compare_value.toString().indexOf(".") > 0 ? metric_compare_value.toLocaleString() : metric_compare_value.toLocaleString();
687
- }
688
- else{
689
- metric_compare_value = '';
690
- }
691
- if(metric_compare == 'Avg Session Duration'){
692
- metric_compare_value = sec_to_normal(metric_compare_value);
693
- }
694
- else if(metric_compare == 'Bounce Rate' || metric_compare == 'Percent New Sessions'){
695
- metric_compare_value = parseFloat(metric_compare_value).toFixed(2) + '%';
696
- }
697
- var compare = metric_compare + ': ' + metric_compare_value;
698
- }
699
- var metric_compare_class = compare != "" ? "class='chart_point_hover_metric_compare'" : '';
700
- if(gawd_admin.default_date_format == 'ymd_without_week'){
701
- week = '';
702
- }
703
- else if(gawd_admin.default_date_format == 'month_name_without_week' || gawd_admin.default_date_format == 'month_name_with_week'){
704
- var dates = date.split('-');
705
- if(typeof dates != 'undefined' && dates.length>2){
706
- dates[2] = dates[2].indexOf('0') == 0 ? dates[2].substring(1) : dates[2];
707
- dates[1] = dates[1].indexOf('0') == 0 ? dates[1].substring(1) : dates[1];
708
- date = monthnames[dates[1]] + ' ' + dates[2] + ', ' + dates[0];
709
- }
710
- if(gawd_admin.default_date_format == 'month_name_without_week'){
711
- week = '';
712
- }
713
- }
714
- return "<div style='margin:10px; text-align:left'>" + week + " <span style='font-size:11px'>" + date + "</span><br><span class='chart_point_hover_metric' style='font-size:11px'>" + metric + ': ' + metric_value + "</span><br><span " + metric_compare_class + " style='font-size:11px'>" + compare + "</span></div>"
715
- },
716
- //"hideBulletsCount": 50,
717
- "lineThickness": 5,
718
- "title": metric == "Percent New Sessions" ? '% New Sessions' : metric,
719
- "useLineColorForBulletBorder": true,
720
- "valueField": metric,
721
- },
722
- {"type": chart_type,
723
- "fillAlphas": fillAlphas,
724
- "valueAxis": "g2",
725
- "bullet": "round",
726
- "bulletBorderAlpha": 1,
727
- "bulletColor": "#FFFFFF",
728
- "bulletSize": 5,
729
- "showBalloon": true,
730
- "balloonText": "",
731
- //"hideBulletsCount": 50,
732
- "lineThickness": 2,
733
- "title": metric_compare == "Percent New Sessions" ? '% New Sessions' : metric_compare,
734
- "useLineColorForBulletBorder": true,
735
- "valueField": metric_compare
736
- }],
737
- "chartCursor": {
738
- "pan": true,
739
- "valueLineEnabled": true,
740
- "valueLineBalloonEnabled": true,
741
- "cursorAlpha": 1,
742
- "cursorColor": "#258cbb",
743
- "limitToGraph": "g1",
744
- "valueLineAlpha": 0